End maps'.
(*** MAP2 ***)
Section fun2_to_map2'.
Variable A B C : Setoid'.
Definition Map2' := Map' A (Map_setoid' B C).
Variable f : A -> B -> C.
Definition Map2_congl_law' :=
forall (b1 b2 : B) (a : A), b1 =_S' b2 -> f a b1 =_S' f a b2.
Definition Map2_congr_law' :=
forall (a1 a2 : A) (b : B), a1 =_S' a2 -> f a1 b =_S' f a2 b.
Definition Map2_cong_law' :=
forall (a1 a2 : A) (b1 b2 : B),
a1 =_S' a2 -> b1 =_S' b2 -> f a1 b1 =_S' f a2 b2.
Hypothesis pgcl : Map2_congl_law'.
Hypothesis pgcr : Map2_congr_law'.

(* Specifications: *)
Lemma Map2_map_law1' : forall a : A, Map_law' (f a).
Canonical Structure Map2_map1' (a : A) := Build_Map' (Map2_map_law1' a).
Lemma Map2_map_law2' : Map_law' Map2_map1'.
Definition Build_Map2' : Map2' := Build_Map' Map2_map_law2'.