proposition: Remark measure_map_add: forall m x v m', ~IdentMap.In x m -> IMProp.Add x v m m' -> measure_map m' = (V.measure v + measure_map m)%nat.
proof: Proof. intros. unfold measure_map; eapply IMProp.fold_Add with (f := fun x v n => (V.measure v + n)%nat); eauto. repeat (hnf; intros). congruence. hnf; intros. lia. Qed.
imports: Coq(ZArith Psatz Bool String List FMaps) Coq(FunctionalExtensionality) CDF(Sequences IMP)