Definition lisfun (Q: nat -> pred heap) (p: nat)  : pred heap:=
(!!(p=0) && emp || !!(p<>0) && EX r:nat, mapsto p r * Q r)%pred.

Lemma lis_fold_unfold:
forall p, lis p =  (!!(p=0) && emp || !!(p<>0) && EX r:nat, mapsto p r * lis r)%pred.