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.
intros; move n after W.
induction n.
simpl in |- *.
auto.
generalize dependent IHn.
set (re := rep_ext n H) in *.
change
(match re with
| existT i (existT w _) => i <= n
end ->
match match re with
| existT i (existT w H') => try_extend H'
end with
| existT i (existT w _) => i <= S n
end) in |- *.
case re.
intros x s.
destruct s.
intros.
generalize dependent (extend_prop a).
case (try_extend a).
intros x1 s; destruct s.
case (classic (span (V:=W) (seq_set x0) =' full W in part_set W)).
intros.
inversion_clear H2.
clear H4; elim H3; intros p q.
generalize dependent (q H1); intro r; simpl in r.
rewrite r.
auto with arith.
intros.
inversion_clear H2.
clear H3; elim H4; intros p q.
generalize dependent (q H1); intro r; simpl in r.
rewrite r.
auto with arith.
Qed.
Let n := the_dim V.

(** - %\intoc{\bf Theorem 1.11}% *)
Lemma subspace_preserves_findimvecsp : sigT (fun m => m <= n /\ has_dim m W).