Instance Perm_env {PA: Perm_alg A}: @Perm_alg env Join_env.Instance Sep_env {SA: Sep_alg A}: @Sep_alg env Join_env.Instance Sing_env {SA: Sep_alg A}: @Sing_alg env Join_env Sep_env.Instance Canc_env {PA: Perm_alg A}{CA: Canc_alg A}: @Canc_alg env Join_env.Instance Disj_env {PA: Perm_alg A}{DA: Disj_alg A}: @Disj_alg env Join_env.Instance Cross_env: Cross_alg env.Definition _env_mapsto {KE: EqDec key} (id: key) (sh: Share.t) (v: A) : pred env :=
    fun rho => exists p,
   forall id', env_get rho id' = if eq_dec id id' then Some (exist _ sh p,v) else None.

Lemma _env_mapsto_get_neq {KE: EqDec key} : forall (id1 id2: key) (sh: Share.t) (v: A) rho, id1 <> id2 -> _env_mapsto id1 sh v rho -> env_get rho id2 = None.