Definition pred2p (p: preds) : fpreds (pred rmap) :=
match p with SomeP A P => existT _ A P end.
Definition p2pred (p: fpreds (pred rmap)) : preds :=
match p with existT A P => SomeP A P end.
Definition ghost2g (r: ghost): SM.ghost (pred rmap) :=
map (option_map (fun '(a, b) => (a, pred2p b))) r.
Definition g2ghost (r: SM.ghost (pred rmap)) : ghost :=
map (option_map (fun '(a, b) => (a, p2pred b))) r.

Lemma g2ghost2g: forall x, ghost2g (g2ghost x) = x.