Section Basis_vectors.
Fixpoint Kronecker (A : Setoid) (t f : A) (n m : Nat) {struct m} : A :=
match n, m with
| O, O => t
| S n', O => f
| O, S m' => f
| S n', S m' => Kronecker t f n' m'
end.
induction n; induction m; auto with algebra; intros.
inversion_clear H.
inversion_clear H.
simpl in |- *.
apply IHn; auto with algebra.
simpl in |- *; simpl in H; auto with arith.
Qed.

Lemma Kronecker_case_unequal :
forall (A : Setoid) (t f : A) (n m : Nat),
~ n =' m in _ -> Kronecker t f n m =' f in _.