intros A B m f; induction m; simpl; intros;
destruct x; simpl in *; try discriminate.
apply IHm2; auto.
apply IHm1; auto.
destruct o; simpl.
congruence.
discriminate.
Qed.

(* Specifications: *)
Lemma fmap_eqn2 : forall A B (m:map A) (f:A->B) x b,
(map_fmap A B f m)#x = Some b ->
exists a, m#x = Some a /\ f a = b.
Lemma fmap_eqn2 : forall A B (m:map A) (f:A->B) x b,
(map_fmap A B f m)#x = Some b ->
exists a, m#x = Some a /\ f a = b.
Lemma fmap_eqn2 : forall A B (m:map A) (f:A->B) x b,
(map_fmap A B f m)#x = Some b ->
exists a, m#x = Some a /\ f a = b.