Ltac canonicalize_pre :=
  match goal with |- semax _ ?P _ _ =>
      rewrite (start_canon P); autorewrite with canon
  end.

Lemma canon9: forall Q1 P Q R, local (locald_denote Q1) && (PROPx P (LOCALx Q R)) = PROPx P (LOCALx (Q1::Q) R).