proposition: Lemma fmapP V (f g : {fmap K -> V}) : (forall k, f.[? k] = g.[? k]) <-> f = g.
proof: Proof. split=> [fnd_fg|-> //]; apply: getfP => [|k kMf kMg]. by apply/fsetP => x; rewrite -!fndSome fnd_fg. by apply: Some_inj; rewrite !Some_fnd. Qed.
imports: HB(structures) mathcomp(ssreflect ssrbool ssrnat eqtype ssrfun seq) mathcomp(choice path finset finfun fintype bigop)