Definition empty_fpm : fpm.Instance Sep_fpm : @Sep_alg fpm Join_fpm.Instance Sing_fpm:  @Sing_alg fpm _ _.Instance Canc_fpm {CA_B: Canc_alg B}: Canc_alg fpm.Instance Disj_fpm {DA_B: Disj_alg B}: Disj_alg fpm.Definition lookup_fpm (f:fpm) : A -> Rng := proj1_sig f.Definition insert_fpm (a:A) (b: B) (f:fpm) : fpm.Definition insert'_fpm (a:A)(b: option B) (f: fpm) : fpm.Definition remove_fpm (a:A) (f:fpm) : fpm.

Lemma fpm_gss: forall i v rho, lookup_fpm (insert_fpm i v rho) i = Some v.