diff --git a/channel/heap_lang.v b/channel/heap_lang.v index 45a1f8ba54fb0e969cc57c5dc7e031d5d9ddd913..9e8d8833bcac9c0fa4154c2782433c133835a5f8 100644 --- a/channel/heap_lang.v +++ b/channel/heap_lang.v @@ -46,7 +46,7 @@ Inductive expr := | Fork (e : expr) (* Heap *) | Loc (l : loc) -| Ref (e : expr) +| Alloc (e : expr) | Load (e : expr) | Store (e1 : expr) (e2 : expr) | Cas (e0 : expr) (e1 : expr) (e2 : expr) @@ -140,7 +140,7 @@ Inductive ectx := | InjLCtx (K : ectx) | InjRCtx (K : ectx) | CaseCtx (K : ectx) (e1 : {bind expr}) (e2 : {bind expr}) -| RefCtx (K : ectx) +| AllocCtx (K : ectx) | LoadCtx (K : ectx) | StoreLCtx (K1 : ectx) (e2 : expr) | StoreRCtx (v1 : value) (K2 : ectx) @@ -164,7 +164,7 @@ Fixpoint fill (K : ectx) (e : expr) := | InjLCtx K => InjL (fill K e) | InjRCtx K => InjR (fill K e) | CaseCtx K e1 e2 => Case (fill K e) e1 e2 - | RefCtx K => Ref (fill K e) + | AllocCtx K => Alloc (fill K e) | LoadCtx K => Load (fill K e) | StoreLCtx K1 e2 => Store (fill K1 e) e2 | StoreRCtx v1 K2 => Store (v2e v1) (fill K2 e) @@ -188,7 +188,7 @@ Fixpoint comp_ctx (Ko : ectx) (Ki : ectx) := | InjLCtx K => InjLCtx (comp_ctx K Ki) | InjRCtx K => InjRCtx (comp_ctx K Ki) | CaseCtx K e1 e2 => CaseCtx (comp_ctx K Ki) e1 e2 - | RefCtx K => RefCtx (comp_ctx K Ki) + | AllocCtx K => AllocCtx (comp_ctx K Ki) | LoadCtx K => LoadCtx (comp_ctx K Ki) | StoreLCtx K1 e2 => StoreLCtx (comp_ctx K1 Ki) e2 | StoreRCtx v1 K2 => StoreRCtx v1 (comp_ctx K2 Ki) @@ -255,7 +255,7 @@ Inductive prim_step : expr -> state -> expr -> state -> option expr -> Prop := | ForkS e σ: prim_step (Fork e) σ LitUnit σ (Some e) | RefS e v σ l (Hv : e2v e = Some v) (Hfresh : σ !! l = None): - prim_step (Ref e) σ (Loc l) (<[l:=v]>σ) None + prim_step (Alloc e) σ (Loc l) (<[l:=v]>σ) None | LoadS l v σ (Hlookup : σ !! l = Some v): prim_step (Load (Loc l)) σ (v2e v) σ None | StoreS l e v σ (Hv : e2v e = Some v) (Halloc : is_Some (σ !! l)): @@ -333,7 +333,7 @@ End step_by_value. (** Atomic expressions *) Definition atomic (e: expr) := match e with - | Ref e => is_Some (e2v e) + | Alloc e => is_Some (e2v e) | Load e => is_Some (e2v e) | Store e1 e2 => is_Some (e2v e1) /\ is_Some (e2v e2) | Cas e0 e1 e2 => is_Some (e2v e0) /\ is_Some (e2v e1) /\ is_Some (e2v e2)