Multidimensional Logic:

A model for Paraconsistent Logic

Carlos Gershenson

Versión en Espańol


Multidimensional logic is a new logic system proposed for modelling paraconsistent logic. A brief definition of paraconsistent logic and examples of when it is used are given. Multidimensional logic principles and properties, such as multidimensional logic variables are defined. The logical operators AND, OR, NOT, IF... THEN, and IF AND ONLY IF are defined and explained for multidimensional logic. Also, equivalence, degree of contradiction, and the projection of multidimensional in fuzzy logic are defined. The precedence of operators is defined, too, and the properties of the multidimensional AND and OR are demonstrated. Furthermore, many examples are given using multidimensional logic, pointing where it is useful, and projections of multidimensional in fuzzy logic are defined and explained. This includes a simple program that uses multidimensional logic.


Until a few years ago, people tried to restrict the rules that provoked paradoxes and antinomies [7]. But paraconsistent logic was developed to better comprehend contradictions instead of trying to exclude them. A logic is said to be paraconsistent if it admits that a conclusion may be obtained from contradictory premises [6]. For example:

If A & ~A then B

Other example could be the liar paradox:

This phrase is false.

If this phrase is true, then it says that its false. But if it's false, then the phrase tells us that the falseness is false, and thus, true. Paraconsistent logics admit this and other kinds of contradictions.

Yet another example is based in one version of Gödel's first incompleteness theorem:

This sentence is not provable

This is similar as the liar paradox. If the sentence is provable, then it is true, and thus not provable. And if it is not provable, then the sentence would be proved.

Finally, let's see Russell's paradox:

A set which doesn't has itself as one of his elements is said to be respectable.

Let R be the set which contains all respectable sets.

Is R respectable?

If R is respectable, it contains all respectable sets, and thus, it contains itself, and thus it is not respectable. If R isn't respectable, since R contains all respectable sets, R can't contain itself, and thus R is respectable.

As we see, there are plenty of cases when a logic system would fail to reach a conclusion.

Classic, intuitionistic, boolean, and fuzzy logics only found in this a contradiction or paradox. Multidimensional logic is developed to comprehend contradictions, as paraconsistent logic does, and to be able to make operations with them, as in fuzzy or boolean logics.

Why Multidimensional?

This name was given because there's the idea to extend the idea of more than one truth value not just for 2, but for n. This idea isn't mature enough to be exposed here, but there's the intention of generalizing the actual model.

Multidimensional Logic

We shall now define multidimensional logical variables (mdlv):

X is a mdlv if and only if X M={(x,y) | x,y [0,1]}

This is a two dimensional vector, which each element is in the interval [0,1]. We can represent a mdlv in the next plane (similar to the complex numbers plane):

Unlike linear logic (boolean and fuzzy, not Girard's linear logic), Multidimensional logic accepts more than one value of truthness. It can handle contradictions and uncertainties. The blue line that goes from (0,1) to (1,0) represents fuzzy logic, we'll call it the "fuzzy line", since we will be mentioning it. This is, when the values of truthness complement each other (their sum is 1), and thus, there's no contradiction. Each axis represents a condition. For example: true and false. So, when the value of truthness complements the value of falseness, there's no contradiction, and fuzzy logic can deal with these statements. So we can state that multidimensional logic is a meta-set of fuzzy logic. For example, with the liar paradox:

This phrase is false.

This cannot be handled by fuzzy logic. We say, as in Asenjo's many-valued logic [1], it is true AND it is false. We can assign it's value of truth with the vector (1,1).

Multidimensional Logical Operators

We can now define the multidimensional logical operators AND (&), OR(|), and NOT(~). We base them on the fuzzy logical operators proposed by Zadeh [8].

By applying the fuzzy logical operators to each element of a truth vector, we will obtain the multidimensional logical operators. This is:

(x1,y1) & (x2,y2) = (x1 & x2, y1 & y2) = (min(x1,x2), min(y1,y2))

(x1,y1) | (x2,y2) = (x1 | x2, y1 | y2) = (max(x1,x2), max(y1,y2))

~(x1,y1) = (~(x1), ~(y1)) = (1-x1, 1-y1)

Now let's see some examples with the next propositions:

(true) This phrase is false (1,1)

(true) This phrase is true (1,0)

We can conclude that:

This phrase is true and false (1,0)

Note that the truth value of (1,0) is concluded by the reasoning of the propositions, not by reasoning the conclusion alone.

We can also conclude that:

This phrase is true or false (1,1)

This, as in the last example (and every logical reasoning), is also concluded by reasoning the propositions only.

For the negation we can observe that for any vector (x, y) of truth, its negation is in the line that passes through (x, y) and (0.5,0.5). The negation is at the same distance as (x, y) is from (0.5,0.5), but in the opposite direction. Note that for all points in the line x=y, its negation is the same as its equivalent. And since (0.5,0.5) is its own equivalent, because it is the fuzzy line, it is also its own negation.

For the IF... THEN ( -> ), and IF AND ONLY IF ( <-> ), we use the equivalent logical propositions:

A -> B = ~A | B

A <-> B = (A->B) & (B->A))

And then we can define as follows:

(x1,y1) -> (x2,y2) = (max ((1-x1),x2),max ((1-y1),y2))

(x1,y1) <-> (x2,y2) = (min(max((1-x1) ,x2), max((1-x2), x1),max((1-y1), y2),max((1-y2), y1)))


If you "flip" the plane over the fuzzy line, the points that would be next to each other, are equivalent. For example, let's define the two dimensional vector of truthness as (true , false). (0,0) and (1,1) are equivalent. This is because if false is 0, then true is 1, and if true is 0, false is 1. The same happens with (0.25,1) and (0, 0.75). We can define the operator equivalence as:


We can also see that::


Note that vectors with no contradiction, don't have a equivalent different that themselves.

Degree of Contradiction

Let a value of truth be given by the vector (x,y). We can define the degree of contradiction C with:


C can be seen as "how far do you get from fuzzy logic". If C is 0, then the point belongs to the fuzzy line, there's no contradiction, and it is contained by fuzzy logic. As C increases, you go farther from the fuzzy line, until you reach total contradiction. With C, we can see "how contradictory" a proposition is.

Note that C is a function that goes from ([0,1],[0,1]) to [0,1].

Dunn proposed a many-valued logic with 4 truth values[2]: true, false, true and false, and neither true nor false. We could assign them the vectors (1,0), (0,1), (1,1), and(0,0). And we have seen that these last two are equivalent.

Projection in Fuzzy Logic

We can use as an example plotting the values of something that's white AND black at the same time, or none of them.

If white is 0, then it is considered as black. If black is 0, it is considered as white. Here it might seem that all points of a line parallel to y=x are equivalent. This is because black and white are added, but you can't see in the graphic it's total amount of contradiction. For example, in (1,1), we say that we have 100% of white and 100% of black. This gives us gray. The same tone of gray as in (0.5,0.5) But its not the same 100% gray than 200% gray.

We can also observe the projection of two-dimensional logic in fuzzy logic. This is, the "tone" of truthness the contradiction we would have in fuzzy logic. But as we said, it is not equivalent. We can find the projection by making a line parallel to y=x. This is, of pendent 1. Then, the projection would be it's intersection with the fuzzy line.

Similarly, we can find the projection of contradictions in fuzzy logic. For example, the liar paradox, which is true and false, we say it has a truth value of (1,1). It's projection would be (0.5,0.5). That is, half true and half false.

We can see that the projection P(x1,y1) is the solution of the system



These last equations are the lines that must intersect in the projection point. By solving the system, we can see that

P(x1,y1) = ((x1-y1+1)/2,(y1-x1+1)/2)

Precedence of operators

The monadic operators (~, C, E, P) have priority over the dyadic (&, |). For operators of the same level of precedence, there must be parenthesis indicating which operation goes first. We can see that if A, B, C are mdlv,

(A & B) | C A & (B | C)

Properties of Multidimensional AND and OR

Let A, B, C be mdlv. We will now see the properties of the dyadic operators we have just defined (&, |).


A & B = (min(a1,b1), min(a2,b2)) = (a1 or b1, a2 or b2)

Since A and B are mdlv, a1, b1, a2, and b2 [0, 1], and thus,

(A & B) is also a mdlv. :. QED

A | B = (max(a1,b1), max(a2,b2)) = (a1 or b1, a2 or b2)

Since A and B are mdlv, a1, b1, a2, and b2 [0, 1], and thus,

(A | B) is also a mdlv. :. QED

Identity element:

For & it's (1,1), and for | it's (0,0)

A & (1,1) = A

(min(a1,1), min(a2,1)) = (a1,a2) = A :. QED

A | (0,0) = A

(max(a1,0), max(a2,0)) = (a1,a2) = A :. QED

Null element:

For & it's (0,0), and for | it's (1,1)

A & (0,0) = (0,0)

(min(a1,0),min(a2,0) = (0,0) :. QED

A | (1,1) = (1,1)

(max(a1,1),max(a2,1) = (1,1) :. QED


A & B = B & A

(min(a1,b1),min(a2,b2)) = (min(a1,b1),min(a2,b2)) :. QED

A | B = B | A

(max(a1,b1),max(a2,b2)) = (max(a1,b1),max(a2,b2)) :. QED


(A & B) & C = A & (B & C)

(min(a1,b1),min(a2,b2)) & C = A & (min(b1,c1),min(b2,c2))

(min(a1,b1,c2),min(a2,b2,c2)) = (min(a1,b1,c2),min(a2,b2,c2)) :. QED

We can see that the same property applies to |, and that

A1 & A2 & ... & An=(min(a11,a21,...,an1), min(a12,a22,...,an2))

A1 | A2 | ... | An=(max(a11,a21,...,an1), max(a12,a22,...,an2))


A & (B | C) = (A & B) | (A & C)

A & (max(b1,c1), max(b2,c2)) = (min(a1,b1), min(a2,b2)) | (min(a1,c1), min(a2,c2))

(min(a1,max(b1,c1)), min(a2,max(b2,c2))) = (max((min(a1,b1),(min(a1,c1)), max((min(a2,b2),(min(a2,c2)))

Since min and max are also distributive,

(min(a1,max(b1,c1)), min(a2,max(b2,c2))) = (min(a1,max(b1,c1)), min(a2,max(b2,c2))) :. QED

And similarly for A | (B & C) = (A | B) & (A | C).

Note that there is only one inverse element for & (1,1)

(1,1) & (1,1) = (1,1)

and one for | (0,0)

(0,0) | (0,0) = (0,0)

De Morgan's laws:

~(A&B) = ~A | ~B

~(min(a1,b1),min(a2,b2)) = (1-a1,1-a2) | (1-b1,1-b2)

Since the De Morgan's laws also apply to min and max

(max (1-a1,1-b1),max (1-a2,1-b2)) = (max (1-a1,1-b1),max (1-a2,1-b2))

:. QED

And similarly for ~(A | B) = ~A & ~B.

Other properties:

~(~A) = A

~(1-a1,1-a2) = A

(1-(1-a1),1-(1-a2)) = A

(a1,a2)= A :. QED

A | (A & B) = A

A | (min (a1,b1),min(a2,b2)) = A

(max(a1,min (a1,b1)),max(a2,min (a2,b2))) = A

(a1,a2)= A :. QED


We can see that if we exchange in a property | for &, & for |, and a given mdlv for it's equivalent (e.g. (1,1), not A), the result is another property, the dual of the first one. For example, for the last property, we can obtain it's dual:

A | (A & B) = A

A & (A | B) = A

Another example would be:

A & ~A = E(A | ~A)


In fuzzy logic, as we increase one measure, we have to decrease it's opposite in the same degree. Here, we cas see, that as the value of youth decreases, it's opposite, oldness, has to increase at the same rate. If not, we would have a contradiction of some degree.

But in multidimensional logic, one condition doesn't necessarily affects its opposite. We can trace different behaviours for opposite conditions.

Based in this idea, a very simple program was made in C++ (mdlages.cpp). It asks for certain people who is older than who, and who is younger than who. It uses multidimensional logic to detect contradictions, and shows the results that would be in fuzzy logic, in multidimensional, and it's projection. You can download the code and the executable for DOS at

Other example may be a short-tall rule with contradictory values. We could say someone is 0.7 tall, and 0.5 short.

Or when we say: "I care for my beloved one more than I care for myself". You say you care more for you beloved, but that´s what you care about.

This can be very helpful for many kinds of systems, which need flexibility in their processes. An example could be a decision support system which is able to support contradictions.


As we can see, multidimensional logic is a valuable tool for modelling paraconsistent logic. This can be very useful in complex systems which might overcome to contradictions, and would help to find the most suitable solution for such problems. Also, as it was shown with the simple program mdlages.cpp that a "more logical" meaning can be given to contradictions. Multidimensional logic is useful even only for detecting them.

There are plans for defining it for more than two dimensions, and to define the arithmetical operators for multidimensional logic. Who knows? Maybe we will be able even to understand women.


I'd like to thank Jaime Lagunez, Roberto Murcio, Jacobo Hernández, Raúl Rojas, and everyone who supported and criticized this work.


For more information, please refer to:

  1. Asenjo, F. G. "A Calculus on Antinomies", Notre Dame Journal of Formal Logic, Vol. XVI, pp. 103-5, 1966.
  2. Dunn, J. M. "Intuitive Semantics for First Degree Entailment and Coupled Trees", Philosophical Studies, Vol. XXIX, pp. 149-68, 1976.
  3. Mares, E. D. "Relevance Logic", Stanford Encyclopedia of Philosophy, 1998.
  4. Mortensen, C. "Inconsistent Mathematics", Stanford Encyclopedia of Philosophy, 1996.
  5. Nagel, E. And Newman, J. "El Teorema de Gödel", 1956.
  6. Priest, G. and Tanaka, K. "Paraconsistent Logic", Stanford Encyclopedia of Philosophy, 1996.
  7. Quine, W. V. "Paradoja", 1962.
  8. Zadeh, L. A. "Fuzzy Sets", Inf. Control, Vol. 8, pp. 338-53, 1965.



Multidimensional Logic resources at:

Big Brother is Watching you!