Chapter 3 - Tensor andDeduction
In[]:=
CloudGet["ArTensorLogic.wl"]
In the previous chapters we introduced predicates and individuals, the four judgment forms A, E, I, and O, and the tensor representation implemented in ArTensorLogic.wl. So far, however, we have used the function fixedPointTensorAEIO without explaining how it arises. In this chapter we make the underlying idea explicit. We study minimal Aristotelian deduction rules and interpret these rules as transformations of tensors. The fixed point construction will then appear as the closure of a tensor under repeated rule application.
3.1 Building a Tensor
3.1 Building a Tensor
To keep the examples executable and close to ArTensorLogic.wl, we use the actual package convention for judgments. A judgment is represented as a triple {r,j,c}, where r is a row index, j is one of the four judgment sections, and c is a column index. The tensor itself has number of terms n, yielding a tensor of shape <n,4,n> that is created by createArTensor[n].
We begin with a small tensor of <3,4,3>. This gives us room for several judgment positions while keeping the display easy to read.
In[]:=
t0=createArTensor[3];displayArTensor[t0]
Out[]=
A |
E |
I |
O |
The tensor t0 is empty. It contains the four judgment sections A, E, I, and O in tensor form. A single judgment can now be inserted by addJudgment.
Example 3.2.1: Adding One Judgment
Example 3.2.1: Adding One Judgment
The command below adds a single judgment at row 1, judgment section A, column 2.
In[]:=
t1=addJudgment[t0,{1,"A",2}];displayArTensor[t1]
Out[]=
A |
E |
I |
O |
The triple {1, "A", 2} means: row 1, judgment section A, column 2. In this notation, the package works directly with tensor positions rather than with symbolic placeholders such as S and P inside executable code.
Example 3.2.2: Checking Membership
Example 3.2.2: Checking Membership
The predicate inT can be used to check whether a given judgment is already present in the tensor.
In[]:=
inT[t1,"A",1,2]inT[t1,"I",1,2]
Out[]=
True
Out[]=
False
The first query checks whether the A-judgment at position (1,2) is present. The second query checks the corresponding I-position. This is useful when we want to study how deduction rules change the tensor.
3.2 Judgment Sections and Local Rules
3.2 Judgment Sections and Local Rules
Since the tensor is organized into four judgment sections, it is often useful to inspect one section at a time. The function matJ[t,j] returns the matrix corresponding to the judgment section j.
In[]:=
matJ[t1,"A"]matJ[t1,"I"]
Out[]=
{{0,1,0},{0,0,0},{0,0,0}}
Out[]=
{{0,0,0},{0,0,0},{0,0,0}}
This separation into judgment sections makes it natural to think of deduction rules as local tensor transformations. A rule may inspect one section, add a judgment to another section, or test whether a related position is already occupied.
For example, the subalternation relation between A(S,P) and I(S,P) suggests that an A-entry at a given tensor position may support the corresponding I-entry at the same position. Likewise, the subalternation relation between E(S,P) and O(S,P) suggests a propagation from E to O.
3.3 From One Step to Closure
3.3 From One Step to Closure
A single rule application is only the beginning. Aristotelian closure arises when such local steps are applied repeatedly until the tensor no longer changes. This is the point at which the fixed point idea enters the picture.
The package function fixedPointTensorAEIO[t] computes exactly this kind of stable result. Starting from a tensor t, it derives an Aristotelian closed tensor by iterating the relevant deduction behavior.
Example 3.4.1: Closing a Tensor
Example 3.4.1: Closing a Tensor
We now apply the fixed point construction to the tensor t1.
In[]:=
t2=fixedPointTensorAEIO[t1];displayArTensor[t2]
Out[]=
A |
E |
I |
O |
The passage from t1 to t2 should be read as a passage from an initial tensor to its closure under Aristotelian deduction rules. This is why fixedPointTensorAEIO should not be treated as a black box. It expresses the stable result of repeated rule application.
3.4 Sets of Judgments and Reconstruction
3.4 Sets of Judgments and Reconstruction
The tensor formalism can also be related to explicit lists of judgments. This is useful when we want to move between a set-theoretic description and its tensor representation.
In[]:=
pset={{1,"A",2},{2,"E",3}};t3=psetToTensor[pset,3];displayArTensor[t3]
Out[]=
A |
E |
I |
O |
Conversely, tensorToPset[t] derives the list of judgments represented by a tensor, and tensorToMinimalPset[t] produces a minimized list. These operations help us compare the explicit and the tensorial presentation of Aristotelian judgment data.
In[]:=
tensorToPset[t2]tensorToMinimalPset[t2]
Out[]=
{{1,A,2},{1,I,2},{2,I,1}}
Out[]=
{{1,A,2}}
Out[]=
Move the slider downward to remove judgments from the end of the explicit list. This shows how the same tensor formalism can be reconstructed from shorter or longer judgment prefixes, and how the recovered full and minimal lists change accordingly.
3.5 Transition to the Next Chapter
3.5 Transition to the Next Chapter
We can now describe the role of fixedPointTensorAEIO in conceptual terms. We begin with an initial tensor that contains some AEIO judgments. We then apply Aristotelian deduction rules repeatedly. Some rules propagate judgment forms along subalternation relations. Other rules register oppositional patterns in the tensor. The process continues until further rule applications no longer change the tensor.
The stable result can be viewed as a fixed point of the combined deduction rules. In the next chapter we will introduce the square of judgments and show how the interaction between the square and fixed points leads to the paraconsistent behavior of Aristotle's World.

