(** - The type of formal expressions *)
Inductive span_ind_formal : Type :=
  | Zerovector : span_ind_formal
  | Immediately : S -> span_ind_formal
  | Plusvector : span_ind_formal -> span_ind_formal -> span_ind_formal
  | Multvector : F -> span_ind_formal -> span_ind_formal.(** - The type of formal expressions *)
Inductive span_ind_formal : Type :=
  | Zerovector : span_ind_formal
  | Immediately : S -> span_ind_formal
  | Plusvector : span_ind_formal -> span_ind_formal -> span_ind_formal
  | Multvector : F -> span_ind_formal -> span_ind_formal.(** - The type of formal expressions *)
Inductive span_ind_formal : Type :=
  | Zerovector : span_ind_formal
  | Immediately : S -> span_ind_formal
  | Plusvector : span_ind_formal -> span_ind_formal -> span_ind_formal
  | Multvector : F -> span_ind_formal -> span_ind_formal.(** - The type of formal expressions *)
Inductive span_ind_formal : Type :=
  | Zerovector : span_ind_formal
  | Immediately : S -> span_ind_formal
  | Plusvector : span_ind_formal -> span_ind_formal -> span_ind_formal
  | Multvector : F -> span_ind_formal -> span_ind_formal.(** - The type of formal expressions *)
Inductive span_ind_formal : Type :=
  | Zerovector : span_ind_formal
  | Immediately : S -> span_ind_formal
  | Plusvector : span_ind_formal -> span_ind_formal -> span_ind_formal
  | Multvector : F -> span_ind_formal -> span_ind_formal.Definition span_ind_set : part_set V.(** %\tocdef{span\_ind}% *)
Definition span_ind : subspace V.Definition lin_comb_ind (v : V) : Prop := in_part v span_ind.

(* Specifications: *)
Lemma span_ind_eqv_span : forall (S : part_set V) (v : V), is_lin_comb v S <-> lin_comb_ind S v.
Lemma span_smallest_subspace_containing_subset : forall (F : field) (V : vectorspace F) (W : subspace V) (S : part_set V), included S W -> included (span S) W.
Lemma set_included_in_its_span : forall (F : field) (V : vectorspace F) (S : part_set V), included S (span S).
Lemma generated_subsets_are_subspaces : forall (F : field) (V : vectorspace F) (S W : part_set V), generates S W -> is_subspace W.
Lemma is_lin_comb_from_generates : forall (F : field) (V : vectorspace F) (S W : part_set V), generates S W -> forall x : V, in_part x W -> is_lin_comb x S.
Lemma generates_then_is_lin_comb : forall (F : field) (V : vectorspace F) (S W : part_set V), generates S W -> forall x : V, in_part x W -> is_lin_comb x S.
Lemma is_lin_comb_from_generates' : forall (F : field) (V : vectorspace F) (S : part_set V) (W : subspace V), generates S W -> forall x : W, is_lin_comb (subtype_elt x) S.