Record Store : Type :=
mkStore  {index:positive;contents:Tree}.
Definition empty := mkStore xH Tempty.
Definition push a  S :=
mkStore (Pos.succ (index S)) (Tadd (index S) a (contents S)).
Definition get i S := Tget i (contents S).

(* Specifications: *)
Lemma get_empty : forall i, get i empty = PNone.
intro i; case i; unfold empty,get; simpl;reflexivity.