Then "U" has a partial order given by  In fact, "U" forms a Boolean algebra with the operations and & or between two matrices applied component-wise. The complement of a logical matrix is obtained by swapping all zeros and ones for their opposite. Every logical matrix a = ( a i j  ) has an transpose aT = ( a j i ). Suppose "a" is a logical matrix with no columns or rows identically zero. Then the matrix product, using Boolean arithmetic, aT a contains the "m" × "m" identity matrix, and the product a aT contains the "n" × "n" identity. As a mathematical structure, the Boolean algebra "U" forms a lattice ordered by inclusion; additionally it is a multiplicative lattice due to matrix multiplication. Every logical matrix in "U" corresponds to a binary relation. These listed operations on "U", and ordering, correspond to a calculus of relations, where the matrix multiplication represents composition of relations. If "m" or "n" equals one, then the "m" × "n" logical matrix (Mi j) is a logical vector. If "m" = 1 the vector is a row vector, and if "n" = 1 it is a column vector. In either case the index equaling one is dropped from denotation of the vector. Suppose formula_4 are two logical vectors. The outer product of "P" and "Q" results in an "m" × "n" rectangular relation:  Let "h" be the vector of all ones. Then if "v" is an arbitrary logical vector, the relation "R" = "v h"T has constant rows determined by "v". In the calculus of relations such an "R" is called a vector. A particular instance is the universal relation "h h"T. For a given relation "R", a maximal, rectangular relation contained in "R" is called a concept in R. Relations may be studied by decomposing into concepts, and then noting the induced concept lattice. Consider the table of group-like structures, where "unneeded" can be denoted 0, and "required" denoted by 1, forming a logical matrix "R". To calculate elements of "R R"T it is necessary to use the logical inner product of pairs of logical vectors in rows of this matrix. If this inner product is 0, then the rows are orthogonal. In fact, semigroup is orthogonal to loop, small category is orthogonal to quasigroup, and groupoid is orthogonal to magma.