(** ** SF_cat *)
Definition SF_cat (x y : SF_seq) := mkSF_seq (SF_h x) ((SF_t x) ++ (SF_t y)).

(* Specifications: *)
Lemma SF_lx_cat (x y : SF_seq) :
SF_lx (SF_cat x y) = (SF_lx x) ++ (behead (SF_lx y)).
Lemma SF_last_cat (x y : SF_seq) :
last (SF_h x) (SF_lx x) = head (SF_h y) (SF_lx y) ->
last (SF_h (SF_cat x y)) (SF_lx (SF_cat x y)) = (last (SF_h y) (SF_lx y)).
Lemma SF_cons_cat x0 (x y : SF_seq) :
SF_cons x0 (SF_cat x y) = SF_cat (SF_cons x0 x) y.