Canonical Structure union_form s1 s2 h1 h2 :=
Form (@union_pf s1 s2 h1 h2).

(* Specifications: *)
Lemma ptr_pf A x (v : A) : axiom (ptr_tag (x :-> v)) [:: x].
Canonical Structure ptr_form A x (v : A) :=
Form (@ptr_pf A x v).
Lemma default_pf h : axiom (default_tag h) [::].
Canonical Structure foundx_form x y (s : Search.form y) :=
Form (foundx_pf x s).
Lemma foundy_pf x y (s : Search.form x) : axiom x y (foundy_tag (y :: s)).
Canonical Structure foundy_form x y (s : Search.form x) :=
Form (foundy_pf y s).
Lemma foundz_pf x y z (s : form x y) : axiom x y (foundz_tag (z :: s)).
Canonical Structure foundz_form x y z (s : form x y) :=
Form (foundz_pf z s).
Lemma find2E x y (s : form x y) : uniq s -> x != y.
Arguments noaliasR_fwd1 [s f] D x y [g].