case F.
- unfold empty,index,get,contents;intros;apply Tget_Tempty.
- unfold push,index,get;simpl @contents.
intros a S.
rewrite Tget_Tadd.
rewrite Psucc_Gt.
intro W.
change (get (Pos.succ (index S)) S =PNone).
apply get_Full_Gt; auto.
apply Psucc_Gt.
Qed.

(* Specifications: *)
Theorem get_push_Full :
forall i a S, Full S ->
get i (push a S) =
match (i ?= index S) with
Eq => PSome a
| Lt => get i S
| Gt => PNone
end.
Lemma Full_push_compat : forall i a S, Full S ->
forall x, get i S = PSome x ->
get i (push a S) = PSome x.
Lemma Full_index_one_empty : forall S, Full S -> index S = 1 -> S=empty.
intros [ind cont] F one; inversion F.