Hint Rewrite canon3 using check_nonlocal : canon.
Hint Rewrite canon3b using check_nonlocal : canon.
Hint Rewrite canon7 using check_nonlocal : canon.
Hint Rewrite <- (@sepcon_assoc (environ->mpred) _) : canon.

(* Specifications: *)
Lemma canon5: forall Q R S,
nonlocal Q ->
Q && (local R && S) = local R && (Q && S).
Lemma canon5b: forall Q R S,
nonlocal Q ->
Q && (S && local R) = local R && (Q && S).
Lemma canon5c: forall Q R,
nonlocal Q ->
(Q && local R) = local R && Q.
Lemma canon6: forall Q R S,
nonlocal Q ->
Q && (prop R && S) = prop R && (Q && S).
Lemma canon6b: forall Q R S,
nonlocal Q ->
Q && (S && prop R) = prop R && (Q && S).
Lemma canon6c: forall Q R,
nonlocal Q ->
(Q && prop R) = prop R && Q.