Draft: Ci/tree borrows
Merge request reports
Activity
59 59 Global Instance subG_bor_stateΣ Σ : 60 60 subG bor_stateΣ Σ → bor_stateGpreS Σ. 61 61 Proof. solve_inG. Qed. 62 62 63 Section utils. 64 65 Record item_for_loc : Type := { 66 lperm : lazy_permission; 67 tg : tag; 68 cid : option protector; 69 }. 70 71 Inductive item_for_loc_in_tree (i : item_for_loc) (tree : tree item) (l' : Z) : Prop := 72 is_in_tree item : 73 exists_node (IsTag i.(tg)) tree → 74 every_node (λ i', i.(tg) = i'.(itag) → i' = item) tree → 67 tg : tag; 68 cid : option protector; 69 }. 70 71 Inductive item_for_loc_in_tree (i : item_for_loc) (tree : tree item) (l' : Z) : Prop := 72 is_in_tree item : 73 exists_node (IsTag i.(tg)) tree → 74 every_node (λ i', i.(tg) = i'.(itag) → i' = item) tree → 75 i.(cid) = item.(iprot) → 76 i.(lperm) = default {| initialized := PermLazy; perm := item.(initp) |} 77 (item.(iperm) !! l') → 78 item_for_loc_in_tree i tree l'. 79 80 Inductive item_for_loc_in_trees (i : item_for_loc) (t : trees) (l : loc) : Prop := 81 is_in_trees tree : 82 t !! (fst l) = Some tree → item_for_loc_in_tree i tree (snd l) → item_for_loc_in_trees i t l. 82 t !! (fst l) = Some tree → item_for_loc_in_tree i tree (snd l) → item_for_loc_in_trees i t l. 83 84 Context (C : gset call_id). 85 86 Inductive protected_by: option protector → Prop := 87 is_protected_by p : 88 p.(call) ∈ C → protected_by (Some p). 89 90 Inductive pseudo_conflicted (tr : tree item) (l : Z) (tg1 : tag) : res_conflicted → option protector → Prop := 91 pseudo_conflicted_conflicted c : 92 protected_by c → 93 pseudo_conflicted tr l tg1 ResConflicted c 94 | pseudo_conflicted_cousin_init conf c it : 95 protected_by c → 96 item_for_loc_in_tree it tr l → 97 rel_dec tr it.(tg) tg1 = Uncle → 68 129 Section defs. 69 130 (* We need all the maps from the tag interpretation here.... 70 131 TODO: can we make that more beautiful? all the different invariants are interleaved in subtle ways, which makes modular reasoning really hard... *) 71 Context (M_tag : gmap ptr_id (tag_kind * unit)) (M_t M_s : gmap (ptr_id * loc) scalar) (Mcall_t : gmap call_id (gmap ptr_id (gset loc))). 132 Context (M_tag : gmap nat (tag_kind * unit)) (M_t M_s : gmap (nat * loc) scalar) (Mcall_t : gmap call_id (gmap nat (gset loc))). assigned to @neven
added 1 commit
- 0664130f - Merge branch 'ci/tree-borrows' of gitlab.mpi-sws.org:iris/simuliris into ci/tree-borrows
added 1 commit
- b3f8fe3a - Remove intermediate unneeded commented-out proof
added 1 commit
- e57d0566 - Make definition of same_blocks have less casts (to make things see through it better)
added 1 commit
- 477e090b - lift per-node access success to the full tree
added 2 commits
Please register or sign in to reply