(** %\tocdef{is\_{\em[in]}finite\_dimensional}% *)
Definition is_finite_dimensional (F : field) (V : vectorspace F) :=
  exists beta : basis V, (exists n : Nat, has_n_elements n beta).Definition is_infinite_dimensional (F : field) (V : vectorspace F) :=
  forall (beta : basis V) (n : Nat), ~ has_n_elements n beta.(** %\tocdef{has\_dim}% *)
Definition has_dim (F : field) (n : Nat) (V : vectorspace F) :=
  exists beta : basis V, has_n_elements n beta.

Lemma dimension_bounds_generating_set_size : forall (F : field) (V : vectorspace F) (n : Nat), has_dim n V -> forall S : part_set V, generates S (full V) -> has_at_most_n_elements n S -> is_basis S /\ has_n_elements n S.