Vector logic[1][2] is an algebraic model of elementary logic based on matrix algebra. Vector logic assumes that the truth values map on vectors, and that the monadic and dyadic operations are executed by matrix operators. "Vector logic" has also been used to refer to the representation of classical propositional logic as a vector space,[3][4] in which the unit vectors are propositional variables. Predicate logic can be represented as a vector space of the same type in which the axes represent the predicate letters and .[5] In the vector space for propositional logic the origin represents the false, F, and the infinite periphery represents the true, T, whereas in the space for predicate logic the origin represents "nothing" and the periphery represents the flight from nothing, or "something".
Classic binary logic is represented by a small set of mathematical functions depending on one (monadic) or two (dyadic) variables. In the binary set, the value 1 corresponds to true and the value 0 to false. A two-valued vector logic requires a correspondence between the truth-values true (t) and false (f), and two q-dimensional normalized real-valued column vectors s and n, hence:
(where is an arbitrary natural number, and "normalized" means that the length of the vector is 1; usually s and n are orthogonal vectors). This correspondence generates a space of vector truth-values: V2 = {s,n}. The basic logical operations defined using this set of vectors lead to matrix operators.
The operations of vector logic are based on the scalar product between q-dimensional column vectors: : the orthonormality between vectors s and n implies that if , and if , where .
The monadic operators result from the application , and the associated matrices have q rows and q columns. The two basic monadic operators for this two-valued vector logic are the identity and the negation:
The 16 two-valued dyadic operators correspond to functions of the type ; the dyadic matrices have q2 rows and q columns. The matrices that execute these dyadic operations are based on the properties of the Kronecker product. Two properties of this product are essential for the formalism of vector logic:
If A, B, C and D are matrices of such size that one can form the matrix products AC and BD, then
Using these properties, expressions for dyadic logic functions can be obtained:
The matrices S and P correspond to the Sheffer (NAND) and the Peirce (NOR) operations, respectively:
Here are numerical examples of some basic logical gates implemented as matrices for two different sets of 2-dimensional orthonormal vectors for s and n.
Set 1:
In this case the identity and negation operators are the identity and anti-diagonal identity matrices:,
and the matrices for conjunction, disjunction and implication are
Set 2:
Here the identity operator is the identity matrix, but the negation operator is no longer the anti-diagonal identity matrix :
The resulting matrices for conjunction, disjunction and implication are:
In the two-valued logic, the conjunction and the disjunction operations satisfy the De Morgan's law: p∧q≡¬(¬p∨¬q), and its dual: p∨q≡¬(¬p∧¬q)). For the two-valued vector logic this law is also verified:
The Kronecker product implies the following factorization:
Then it can be proved that in the two-dimensional vector logic the De Morgan's law is a law involving operators, and not only a law concerning operations:[6]
In the classical propositional calculus, the law of contraposition p → q ≡ ¬q → ¬p is proved because the equivalence holds for all the possible combinations of truth-values of p and q.[7] Instead, in vector logic, the law of contraposition emerges from a chain of equalities within the rules of matrix algebra and Kronecker products, as shown in what follows:
This result is based in the fact that D, the disjunction matrix, represents a commutative operation.
Many-valued logic was developed by many researchers, particularly by Jan Łukasiewicz and allows extending logical operations to truth-values that include uncertainties.[8] In the case of two-valued vector logic, uncertainties in the truth values can be introduced using vectors with s and n weighted by probabilities.
Let , with be this kind of "probabilistic" vectors. Here, the many-valued character of the logic is introduced a posteriori via the uncertainties introduced in the inputs.[1]
The outputs of this many-valued logic can be projected on scalar functions and generate a particular class of probabilistic logic with similarities with the many-valued logic of Reichenbach.[9][10][11] Given two vectors and and a dyadic logical matrix , a scalar probabilistic logic is provided by the projection over vector s:
Here are the main results of these projections:
The associated negations are:
If the scalar values belong to the set {0, ½, 1}, this many-valued scalar logic is for many of the operators almost identical to the 3-valued logic of Łukasiewicz. Also, it has been proved that when the monadic or dyadic operators act over probabilistic vectors belonging to this set, the output is also an element of this set.[6]
This operator was originally defined for qubits in the framework of quantum computing.[12][13] In vector logic, this operator can be extended for arbitrary orthonormal truth values.[2][14] There are, in fact, two square roots of NOT:
with . and are complex conjugates: , and note that , and . Another interesting point is the analogy with the two square roots of -1. The positive root corresponds to , and the negative root corresponds to ; as a consequence, .
Early attempts to use linear algebra to represent logic operations can be referred to Peirce and Copilowish,[15] particularly in the use of logical matrices to interpret the calculus of relations.
The approach has been inspired in neural network models based on the use of high-dimensional matrices and vectors.[16][17] Vector logic is a direct translation into a matrix–vector formalism of the classical Boolean polynomials.[18] This kind of formalism has been applied to develop a fuzzy logic in terms of complex numbers.[19] Other matrix and vector approaches to logical calculus have been developed in the framework of quantum physics, computer science and optics.[20][21]
The Indian biophysicist G.N. Ramachandran developed a formalism using algebraic matrices and vectors to represent many operations of classical Jain logic known as Syad and Saptbhangi; see Indian logic.[22] It requires independent affirmative evidence for each assertion in a proposition, and does not make the assumption for binary complementation.
George Boole established the development of logical operations as polynomials.[18] For the case of monadic operators (such as identity or negation), the Boolean polynomials look as follows:
The four different monadic operations result from the different binary values for the coefficients. Identity operation requires f(1) = 1 and f(0) = 0, and negation occurs if f(1) = 0 and f(0) = 1. For the 16 dyadic operators, the Boolean polynomials are of the form:
The dyadic operations can be translated to this polynomial format when the coefficients f take the values indicated in the respective truth tables. For instance: the NAND operation requires that:
These Boolean polynomials can be immediately extended to any number of variables, producing a large potential variety of logical operators. In vector logic, the matrix-vector structure of logical operators is an exact translation to the format of linear algebra of these Boolean polynomials, where the x and 1−x correspond to vectors s and n respectively (the same for y and 1−y). In the example of NAND, f(1,1)=n and f(1,0)=f(0,1)=f(0,0)=s and the matrix version becomes: