Definition heap : Type := fpm nat nat.Instance Join_heap: Join heap := Join_fpm (Join_discrete _).Instance Perm_heap: Perm_alg heap := Perm_fpm _ (Perm_discrete nat).Definition mapsto  (x y: nat) : pred heap :=
 fun h => forall z, if eq_dec z x then lookup_fpm h z = Some y else lookup_fpm h z = None.

(* Specifications: *)
Lemma covariant_lisfun: covariant lisfun.