destruct n.
intros.
apply False_ind; auto with algebra.
induction  n as [| n Hrecn].
simpl in |- *.
unfold head in |- *.
intros.
elim i.
intros.
apply SGROUP_comp; auto with algebra.
intros M.
generalize (Hrecn M); clear Hrecn; intros.
case i.
intro x; case x.
intro.
apply Trans with (head s +' sum (Seqtl s)); auto with algebra.
intros n0 l.
apply
Trans
with
(Seqtl s (Build_finiteT (lt_S_n _ _ l)) +' sum (omit s (Build_finiteT l))).
2: apply SGROUP_comp; auto with algebra.
apply
Trans
with
(Seqtl s (Build_finiteT (lt_S_n _ _ l)) +'
sum (head s;; omit (Seqtl s) (Build_finiteT (lt_S_n _ _ l))));
auto with algebra.
apply
Trans
with
(Seqtl s (Build_finiteT (lt_S_n _ _ l)) +'
(head s +' sum (omit (Seqtl s) (Build_finiteT (lt_S_n _ _ l)))));
auto with algebra.
apply
Trans
with
(head s +'
(Seqtl s (Build_finiteT (lt_S_n _ _ l)) +'
sum (omit (Seqtl s) (Build_finiteT (lt_S_n _ _ l)))));
auto with algebra.
apply Trans with (head s +' sum (Seqtl s)); auto with algebra.
Qed.

(* Specifications: *)
Lemma seqsum_min_elt_is_omitseq :
forall (n : Nat) (AG : abelian_group) (s : seq n AG) (i : fin n),
sum s +' (min s i) =' sum (omit s i) in _.