Section defs.
Variable F : field.
Variable V : vectorspace F.
(** %\tocdef{lin\_{\em[in]}dep}% *)
Definition lin_dep (X : part_set V) :=
exists n : Nat,
(exists a : seq (S n) F,
(exists v : seq (S n) X,
distinct v /\
~ a =' const_seq (S n) (zero F) in _ /\
sum (mult_by_scalars a (Map_embed v)) =' (zero V) in _)).
Definition lin_indep (X : part_set V) := ~ lin_dep X.
Definition lin_indep' (X : part_set V) :=
forall (n : Nat) (a : seq (S n) F) (v : seq (S n) X),
distinct v ->
~ a =' const_seq (S n) (zero F) in _ ->
~ sum (mult_by_scalars a (Map_embed v)) =' (zero V) in _.
intros.
red in |- *.
red in H0.
inversion_clear H0.
exists x.
inversion_clear H1.
exists x0.
inversion_clear H0.
exists (Map_to_equal_subsets H x1).
split.
inversion_clear H1.
repeat red in H0.
repeat red in |- *.
intros.
apply (H0 i j); auto with algebra.
simpl in |- *.
red in |- *.
simpl in H3.
red in H3.
apply Trans with (subtype_elt (x1 i)); auto with algebra.
apply Trans with (subtype_elt (Map_to_equal_subsets H x1 i));
auto with algebra.
apply Trans with (subtype_elt (x1 j)); auto with algebra.
apply Trans with (subtype_elt (Map_to_equal_subsets H x1 j));
auto with algebra.
split.
inversion_clear H1.
inversion_clear H2.
auto.
inversion_clear H1.
inversion_clear H2.
apply Trans with (sum (mult_by_scalars x0 (Map_embed x1))); auto with algebra.
Qed.
intros.
red in |- *.
red in |- *.
red in H0.
red in H0.
intro.
apply H0.
apply lin_dep_comp with Y; auto with algebra.
Qed.

Lemma lin_dep_defs_eqv : forall X : part_set V, lin_indep X <-> lin_indep' X.