induction n.
simpl in |- *.
auto.
intros.
simpl in |- *.
generalize dependent (IHn _ _ H H0).
case (rep_ext n H).
intros; destruct s.
generalize dependent (extend_prop a).
generalize dependent (extend_prop2 a).
case (try_extend a).
intros; destruct s.
inversion_clear H2.
inversion_clear H3.
case (classic (span (V:=V) (seq_set x0) =' full V in part_set V)).
elim H2; intros.
generalize dependent (H7 H8); intro p; simpl in p.
clear H6 H5 H2 H3 a0 a H IHn.
clear H0 v k H7 H8.
inversion_clear H4.
simpl in H; generalize dependent (H p); intros.
apply has_n_elements_comp with x (seq_set x0); simpl in |- *;
auto with algebra.
generalize dependent (seq_equal_seq_set H2).
simpl in |- *; auto.
clear H2 H4.
inversion_clear H6.
intro.
generalize dependent (H3 H4); intro p; simpl in p.
clear H2 H3.
generalize dependent x2.
rewrite p.
intros.
apply has_n_elements_comp with (S x) (seq_set (head x2;; x0)).
3: simpl in |- *; auto.
2: apply Trans with (seq_set (head x2;; Seqtl x2)); auto with algebra.
generalize dependent (H5 (Refl (S x:Nat))).
clear H4 H5; intro p'.
clear p x1 H0 H v k IHn n.
apply seq_set_n_element_subset.
exists (head x2;; x0).
split; auto with algebra.
apply distinct_comp with x2.
inversion_clear a0; auto.
apply Trans with (head x2;; Seqtl x2); auto with algebra.
Qed.
End prelim.
Section MAIN.
Variable F : field.
Variable V : findimvecsp F.
Variable W : subspace V.
Let H : lin_indep (seq_set (empty_seq W)) /\ distinct (empty_seq W).
split; try apply lin_indep_comp with (empty W); auto with algebra.
apply empty_lin_indep.
intro.
auto with algebra.
Qed.

(* Specifications: *)
Lemma grow_bound :
forall n : nat,
match rep_ext n H with
| existT i (existT w H') => i <= n
end.