Let V be a vector space and U, W two finite-dimensional subspaces of V with the following spanning sets:

and

Finally, let
be linearly independent vectors so that
and
can be written as

and

Output
The algorithm computes the base of the sum
and a base of the intersection
.
Algorithm
The algorithm creates the following block matrix of size
:

Using elementary row operations, this matrix is transformed to the row echelon form. Then, it has the following shape:

Here,
stands for arbitrary numbers, and the vectors
for every
and
for every
are nonzero.
Then
with

is a basis of
and
with

is a basis of
.
Proof of correctness
First, we define
to be the projection to the first component.
Let
Then
and
.
Also,
is the kernel of
, the projection restricted to H.
Therefore,
.
The Zassenhaus algorithm calculates a basis of H. In the first m columns of this matrix, there is a basis
of
.
The rows of the form
(with
) are obviously in
. Because the matrix is in row echelon form, they are also linearly independent.
All rows which are different from zero (
and
) are a basis of H, so there are
such
s. Therefore, the
s form a basis of
.