Note: Here I will be using ~ to indicate logical negation, & for logical conjunction, and + for logical disjunction.
Recently I have been thinking about paraconsistent logic, especially in conjunction with my earlier definition of truth. Let us accept, for the moment, the idea that a statement is true when that statement can be proved, and false when a disproof exists. Already then we need at least a three-valued system of logic. The third value (which I have labeled here as N) applies to those statements that can neither be proved nor disproved within an axiom system; statements that Gödel showed must exist for sufficiently powerful systems. Paraconsistent logic adds an additional fourth value to the logical system, for statements that can be both proved and disproved, often called paradoxes or antinomies. I label this value here as P. We could think of such statements as both true and false, since they meet both the conditions for truth-hood and falsehood.
Of course paraconsistency is not as simple as simply adding a few more columns to our truth tables. One possible problem with allowing paradoxes such as Q&~Q to be provable is that in a traditional system of logic any statement would also be provable as a result of allowing them. I shall address this below. A more practical concern that may arise is one of terminology. Normally each line of a mathematical proof is supposed to be a statement that is true, in virtue of it being proved by the preceding statements. Now, however, we should say that each line of a mathematical proof is at best provable (Pr), meaning that it may have value T or P. It is still possible to show a statement to be true, but one must go through the additional step of demonstrating both that Pr(S) and ~Pr(~S), no easy task.
To investigate the problem of explosion (whether allowing paradoxes to be provable results in all statements being provable) we will need to reference and expanded truth table. We can extend the traditional two-valued truth table with P and N without much difficulty, resulting in the table below. Note that under this system the standard identities of ~~A = A, ~(~A+~B) = A&B, and ~(~A&~B) = A+B still hold, and that we have defined A->B as the same as ~A+B, again as we do in standard logic.
A B ~A A&B A+B ~B ~A+B (A->B) T T F T T F T T F F F T T F T P F P T P P T N F N T N N F T T F T F T F F T F F T T F P T F P P T F N T F N N T P T P P T F T P F P F P T P P P P P P P P P N P F T N T N T N N T F T N F N F N T N N P N F T P T N N N N N N N
Under a two valued system of logic if a statement such as Q&~Q was affirmed then everything would necessarily follow from it, as mentioned above, which has traditionally been the reason against allowing such paradoxes. However, as these truth tables demonstrate, this is not the case, when we allow the truth-value of a statement to be both true and false, provable and disprovable (P). Specifically, the disjunctive syllogism doesn’t hold (If we affirm ~A then ~A+B is true, and thus A->B, but since we also affirm A then B follows, where B can be any statement). Of course, strictly speaking, we are no longer dealing with affirmation or denial, when we assert ~A we are saying that there exists a proof of ~A. It does follow from ~A being provable (Pr(~A)) that ~A+B is provable, and thus that A->B. However, if A is also provable and A->B is provable that doesn’t necessarily guarantee that B is provable. You can see this by simply looking at the truth table for ~A+B where its value is P or T (provable) and where A is P or T. Those lines would be:
A B ~A+B T T T T P P P T T P F P P P P P N T
As you can see this no longer implies that B is provable. There could very well be no proof of B, or even a disproof. This doesn’t make the conditional useless, however. If we further stipulate that A is true then we can conclude that B is provable (either true or both true and false). Unfortunately it does make traditional proofs much harder to construct, since often we deduce C from B from A. But, even if A is true, this means that at best B is provable, and hence tells us nothing at all about C. I will leave that as a discussion for another day (since I haven’t done enough research / worked out the details yet).