Section Defs.
(** %\tocdef{is\_basis}% *)
Definition is_basis (X : part_set V) : Prop :=
generates X (full V) /\ lin_indep X.
intros.
red in |- *; red in H0.
inversion_clear H0; split.
apply generates_comp with X (full V); auto with algebra.
apply lin_indep_comp with X; auto with algebra.
Qed.
(** %\tocdef{basis}% *)
Record basis : Type :=
{basis_carrier :> Predicate V; is_basis_prf : is_basis basis_carrier}.
End Defs.
intros.
red in |- *.
elim X.
clear X.
intros X H.
red in H.
inversion_clear H.
red in H0.
unfold span in H0.
unfold is_lin_comb in H0.
simpl in H0.
red in H0.
simpl in H0.
generalize (H0 x).
clear H0.
unfold is_lin_comb in |- *.
intros (H', H0).
apply H0; auto with algebra.
Qed.

Lemma basis_prop_strong :
forall (n : Nat) (v : seq n V),
is_basis (seq_set v) ->
forall x : V, exists a : seq n F, sum (mult_by_scalars a v) =' x in _.