Record SF_seq := mkSF_seq {SF_h : R ; SF_t : seq (R * T)}.Record SF_seq := mkSF_seq {SF_h : R ; SF_t : seq (R * T)}.Record SF_seq := mkSF_seq {SF_h : R ; SF_t : seq (R * T)}.Record SF_seq := mkSF_seq {SF_h : R ; SF_t : seq (R * T)}.Definition SF_lx (s : SF_seq) : seq R := (SF_h s)::(unzip1 (SF_t s)).Definition SF_ly (s : SF_seq) : seq T := unzip2 (SF_t s).Definition SF_make (lx : seq R) (ly : seq T) (Hs : size lx = S (size ly)) : SF_seq :=
  mkSF_seq (head 0 lx) (zip (behead lx) ly).

Lemma SF_seq_bij_lx (lx : seq R) (ly : seq T) (Hs : size lx = S (size ly)) : SF_lx (SF_make lx ly Hs) = lx.