(** %\tocdef{is\_basis}% *)
Definition is_basis (X : part_set V) : Prop :=
  generates X (full V) /\ lin_indep X.(** %\tocdef{basis}% *)
Record basis : Type := 
  {basis_carrier :> Predicate V; is_basis_prf : is_basis basis_carrier}.(** %\tocdef{basis}% *)
Record basis : Type := 
  {basis_carrier :> Predicate V; is_basis_prf : is_basis basis_carrier}.(** %\tocdef{basis}% *)
Record basis : Type := 
  {basis_carrier :> Predicate V; is_basis_prf : is_basis basis_carrier}.

Lemma basis_prop : forall (X : basis) (x : V), is_lin_comb x X.