intros.
generalize replacement_theorem.
intro p.
generalize (p _ _ _ _ H); clear p; intro p.
assert (n <= n); auto.
generalize (p _ H0 _ H2 H1).
clear p.
intro.
inversion_clear H3.
inversion_clear H4.
assert (x =' empty beta in _).
red in H3.
inversion_clear H3.
inversion_clear H4.
simpl in |- *.
red in |- *.
split; intros.
simpl in |- *.
simpl in H3.
red in H3.
simpl in H3.
generalize (H3 (Build_subtype H4)).
clear H3; intro H3; inversion_clear H3.
generalize (H7 I); clear H7 H8; intro H3; inversion_clear H3.
generalize (minus_n_n n); intro.
generalize (cast_fin x2 (sym_eq H3)).
auto with algebra.
simpl in H4.
contradiction.
red in |- *.
split.
2: auto.
apply generates_comp with (union Sset (inject_subsets x)) (full V);
auto with algebra.
apply Trans with (union Sset (inject_subsets (empty beta)));
auto with algebra.
apply Trans with (union Sset (empty V)); auto with algebra.
apply union_comp; auto with algebra.
simpl in |- *.
red in |- *.
split; intro.
2: simpl in H6; contradiction.
simpl in H6.
inversion_clear H6.
inversion_clear x1.
simpl in subtype_prf.
contradiction.
Qed.

(* Specifications: *)
(** - %\intoc{Corollary 2 to 1.10}% (partly) *)
Lemma finite_basis_bounds_lin_indep_set_size :
forall (n : Nat) (beta : basis V),
has_n_elements n beta ->
forall Sset : part_set V, has_at_least_n_elements (S n) Sset -> lin_dep Sset.