From b4f5fe15c7d1362dc5f281e89a3cc1e2cf01c3fa Mon Sep 17 00:00:00 2001 From: Jacques-Henri Jourdan <jacques-henri.jourdan@normalesup.org> Date: Fri, 20 Sep 2019 18:50:25 +0200 Subject: [PATCH] First attempt at fixing compatibility with Coq master. --- opam | 2 +- theories/lang/arc.v | 16 ++++++++-------- theories/typing/lib/arc.v | 6 +++--- theories/typing/lib/rc/rc.v | 2 ++ theories/typing/lib/rwlock/rwlock.v | 4 ++-- theories/typing/lib/rwlock/rwlock_code.v | 6 +++--- .../typing/lib/rwlock/rwlockreadguard_code.v | 8 ++++---- .../typing/lib/rwlock/rwlockwriteguard_code.v | 6 +++--- theories/typing/programs.v | 2 +- 9 files changed, 27 insertions(+), 25 deletions(-) diff --git a/opam b/opam index f83032d2..fa500c00 100644 --- a/opam +++ b/opam @@ -10,5 +10,5 @@ build: [make "-j%{jobs}%"] install: [make "install"] remove: [ "sh" "-c" "rm -rf '%{lib}%/coq/user-contrib/lrust'" ] depends: [ - "coq-gpfsl" { (= "dev.2019-09-19.0.5c030976") | (= "dev") } + "coq-gpfsl" { (= "dev.2019-09-20.0.0f49245e") | (= "dev") } ] diff --git a/theories/lang/arc.v b/theories/lang/arc.v index fbb6da04..6f25bc17 100644 --- a/theories/lang/arc.v +++ b/theories/lang/arc.v @@ -1,11 +1,11 @@ From Coq.QArith Require Import Qcanon. -From iris.base_logic.lib Require Import invariants. -From iris.proofmode Require Import tactics. From iris.bi Require Import fractional. +From iris.proofmode Require Import tactics. From iris.algebra Require Import excl csum frac auth agree. -From lrust.lang Require Import notation new_delete arc_cmra. -From gpfsl.logic Require Import view_invariants. +From iris.base_logic.lib Require Import invariants. From gpfsl.gps Require Import middleware protocols. +From gpfsl.logic Require Import view_invariants. +From lrust.lang Require Import notation new_delete arc_cmra. Set Default Proof Using "Type". (* Rust Arc has a maximum number of clones to prevent overflow. We currently @@ -728,13 +728,13 @@ Section arc. { iIntros "!>" (t' [] v' [_ Ext']). rewrite /StrongTok. iIntros "!>". iSplit. - iIntros "#SI !>". iFrame "SI SMA". rewrite /StrongTok. iFrame "St". iDestruct "SI" as (st) "[% Eq]". subst v'. iExists (Z_of_arcstrong_st st). - destruct st as [[]|]; simpl; [|done]. iPureIntro. split; [done|lia]. + destruct st as [[]|]; simpl; [|done]. iPureIntro. split; [done|split]. - iDestruct 1 as (st) "(Eq1 & SA & SI)". iDestruct "Eq1" as %?. subst v'. destruct st as [[q' n]|]; simpl. + iModIntro. iFrame "SMA". rewrite /StrongTok. iFrame "St". iSplitR""; [iExists (Some (q',n))|iExists (Z.pos n)]. * iSplitL""; [done|]. by iFrame. - * iPureIntro. split; [done|lia]. + * iPureIntro. split; [done|split]. + iDestruct (StrongTok_Auth_agree with "[$SA St]") as %(?&?&EQ&?). rewrite /StrongTok. iFrame "St". done. } iIntros "!>" (t' [] v'). iDestruct 1 as "(_ & RR' & IS & Rs & St & SMA)". @@ -1723,7 +1723,7 @@ Section arc. iSplitR "SD"; [iExists _; iFrame "WU SeenU'"|]. by iExists _. + iSplitL "SDA". { rewrite /Q Pos2Z.id decide_False; [|done]. iSplitR ""; [by iExists _|done]. } - rewrite decide_False; last first. { destruct n; try lia. done. } + rewrite decide_False; last first. { by destruct n; try lia. } iDestruct "WA" as (q2 Eq2) "WA". iExists (None, Some $ Cinl (q2, Pos.pred n)). iSplitL "". { iPureIntro. f_equal. by rewrite Z.sub_1_r -Pos2Z.inj_pred. } @@ -2174,7 +2174,7 @@ Section arc. { by rewrite Qp_plus_assoc (Qp_plus_comm q2). } iFrame "HP". iExists _,_. iFrame "R' SM SD SeenD' oW". rewrite /Mt' (decide_False _ _ nEq). iFrame "SeenM'". - rewrite decide_False; last first. { simpl. destruct n; try lia. done. } + rewrite decide_False; last first. { simpl. by destruct n; try lia. } rewrite -Qp_plus_div. by iFrame "tok tok'". } (* finally done with the CAS *) diff --git a/theories/typing/lib/arc.v b/theories/typing/lib/arc.v index 967f2d59..6b25d86c 100644 --- a/theories/typing/lib/arc.v +++ b/theories/typing/lib/arc.v @@ -1,16 +1,16 @@ From Coq.QArith Require Import Qcanon. +From iris.bi Require Import fractional. From iris.proofmode Require Import tactics. From iris.algebra Require Import auth csum frac agree. -From iris.bi Require Import fractional. + +From gpfsl.gps Require Import middleware protocols escrows. From lrust.lang Require Import memcpy arc arc_cmra. From lrust.lifetime Require Import at_borrow. From lrust.typing Require Export type. From lrust.typing Require Import typing option. -From gpfsl.gps Require Import middleware protocols escrows. - Set Default Proof Using "Type". Definition arcN := lrustN .@ "arc". diff --git a/theories/typing/lib/rc/rc.v b/theories/typing/lib/rc/rc.v index b0ffc6ab..f351f1dd 100644 --- a/theories/typing/lib/rc/rc.v +++ b/theories/typing/lib/rc/rc.v @@ -6,6 +6,8 @@ From lrust.typing Require Export type. From lrust.typing Require Import typing option. Set Default Proof Using "Type". +Unset Printing Notations. + Definition rc_stR := prodUR (optionUR (csumR (prodR fracR positiveR) (exclR unitO))) natUR. Class rcG Σ := diff --git a/theories/typing/lib/rwlock/rwlock.v b/theories/typing/lib/rwlock/rwlock.v index 06fc0cbb..3da2f344 100644 --- a/theories/typing/lib/rwlock/rwlock.v +++ b/theories/typing/lib/rwlock/rwlock.v @@ -1,10 +1,10 @@ From Coq.QArith Require Import Qcanon. +From iris.bi Require Import fractional. From iris.proofmode Require Import tactics. From iris.algebra Require Import auth excl csum frac agree. -From iris.bi Require Import fractional. +From gpfsl.gps Require Import middleware protocols. From lrust.lifetime Require Import at_borrow. From lrust.typing Require Import typing. -From gpfsl.gps Require Import middleware protocols. From lrust.logic Require Import gps. Set Default Proof Using "Type". diff --git a/theories/typing/lib/rwlock/rwlock_code.v b/theories/typing/lib/rwlock/rwlock_code.v index 3d29bd59..9c66a055 100644 --- a/theories/typing/lib/rwlock/rwlock_code.v +++ b/theories/typing/lib/rwlock/rwlock_code.v @@ -1,12 +1,12 @@ +From iris.bi Require Import fractional. From iris.proofmode Require Import tactics. From iris.algebra Require Import auth csum frac agree. -From iris.bi Require Import fractional. +From gpfsl.gps Require Import middleware protocols. +From lrust.logic Require Import gps. From lrust.lang Require Import memcpy. From lrust.lifetime Require Import at_borrow. From lrust.typing Require Import typing option. From lrust.typing.lib.rwlock Require Import rwlock rwlockreadguard rwlockwriteguard. -From gpfsl.gps Require Import middleware protocols. -From lrust.logic Require Import gps. Set Default Proof Using "Type". (** SYNCHRONIZATION CONDITIONS of rwlock *) diff --git a/theories/typing/lib/rwlock/rwlockreadguard_code.v b/theories/typing/lib/rwlock/rwlockreadguard_code.v index a1d00eb5..aae742a9 100644 --- a/theories/typing/lib/rwlock/rwlockreadguard_code.v +++ b/theories/typing/lib/rwlock/rwlockreadguard_code.v @@ -1,12 +1,12 @@ From Coq.QArith Require Import Qcanon. +From iris.bi Require Import fractional. From iris.proofmode Require Import tactics. From iris.algebra Require Import auth csum frac agree. -From iris.bi Require Import fractional. +From gpfsl.gps Require Import middleware protocols. +From lrust.logic Require Import gps. From lrust.lifetime Require Import at_borrow. From lrust.typing Require Import typing. From lrust.typing.lib.rwlock Require Import rwlock rwlockreadguard. -From gpfsl.gps Require Import middleware protocols. -From lrust.logic Require Import gps. Set Default Proof Using "Type". Section rwlockreadguard_functions. @@ -161,7 +161,7 @@ Section rwlockreadguard_functions. tctx_hasty_val' //=; simpl. iFrame "Hx". iExists _,_,_,_. iFrame "Hx' Hαβ Hν H◯ H†". iExists _,_,_. iSplitL "R''". - - iExists _,_; by iDestruct "R''" as "[$ ?]". + - iExists _,_; by iDestruct "R''" as "[$ ?]". - iFrame "EqO EqS". iExists _,_. by iFrame "R'". } iApply type_jump; solve_typing. Qed. diff --git a/theories/typing/lib/rwlock/rwlockwriteguard_code.v b/theories/typing/lib/rwlock/rwlockwriteguard_code.v index 6d0fa49c..4c9a3ca3 100644 --- a/theories/typing/lib/rwlock/rwlockwriteguard_code.v +++ b/theories/typing/lib/rwlock/rwlockwriteguard_code.v @@ -1,12 +1,12 @@ From Coq.QArith Require Import Qcanon. +From iris.bi Require Import fractional. From iris.proofmode Require Import tactics. From iris.algebra Require Import auth csum frac agree. -From iris.bi Require Import fractional. +From gpfsl.gps Require Import middleware. +From lrust.logic Require Import gps. From lrust.lifetime Require Import at_borrow. From lrust.typing Require Import typing. From lrust.typing.lib.rwlock Require Import rwlock rwlockwriteguard. -From gpfsl.gps Require Import middleware. -From lrust.logic Require Import gps. Set Default Proof Using "Type". Section rwlockwriteguard_functions. diff --git a/theories/typing/programs.v b/theories/typing/programs.v index 2be078c8..1b3d3a74 100644 --- a/theories/typing/programs.v +++ b/theories/typing/programs.v @@ -1,6 +1,6 @@ From gpfsl.logic Require Import proofmode. From lrust.lang Require Export memcpy. -From lrust.typing Require Export type lft_contexts type_context cont_context. +From lrust.typing Require Export lft_contexts type_context cont_context type. Set Default Proof Using "Type". Implicit Types tid : thread_id. -- GitLab