User:Jon Awbrey/Cactus Language Semantics Work
Cactus Language • Semantics
Alas, and yet what are you, my written and painted thoughts! It is not long ago that you were still so many‑coloured, young and malicious, so full of thorns and hidden spices you made me sneeze and laugh — and now? You have already taken off your novelty and some of you, I fear, are on the point of becoming truths: they already look so immortal, so pathetically righteous, so boring! |
— Nietzsche, Beyond Good and Evil, [Nie-2, ¶ 296] |
The discussion to follow describes a particular semantics for painted cactus languages, showing one way to link logical meanings with the bare syntactic forms of linguistic expressions. Forging those links between signs and intents gives the parametric family of formal languages in question one of its principal interpretations.
We'll keep that interpretation in our sights for the time being but it must be remembered it forms just one of many such interpretations which may be conceivable and even viable in the long run. Indeed, the distinction between the sign domain and the object domain can be observed in the fact that many languages can be deployed to depict the same set of objects while any language worth its salt is bound to give rise to a host of salient interpretations.
It is common in formal settings to speak of interpretation as if it created a direct connection from the signs of a formal language to the objects of the intended domain, in effect, as if it determined the denotative component of a sign relation. But closer attention to what goes on reveals that the process of interpretation is more indirect, that what it does is provide each sign of a prospectively meaningful source language with a translation into an already established target language, where already established means its relationship to pragmatic objects is taken for granted at the moment in question.
With that in mind, it is clear interpretation is an affair of signs which at best respects the objects of all the signs entering into it, and so it is the connotative aspect of semiotics we find to embody the process. There is nothing wrong with our saying we interpret expressions of a formal language as signs referring to functions or propositions or other objects so long as we understand the reference is generally achieved by way of more familiar and perhaps less formal signs we already take to denote those objects.
On entering a context where a logical interpretation is intended for the sentences of a formal language there are a few conventions that make it easier to make the translation from abstract syntactic forms to their intended semantic senses. Although these conventions are expressed in unnecessarily colorful terms, from a purely abstract point of view, they do provide a useful array of connotations that help to negotiate what is otherwise a difficult transition. This terminology is introduced as the need for it arises in the process of interpreting the cactus language.
The task before us is to specify a semantic function for the cactus language \(\mathfrak{L} = \mathfrak{C}(\mathfrak{P}),\) in other words, to define a mapping from the space of syntactic expressions to a space of logical statements which “interprets” each expression of \(\mathfrak{C}(\mathfrak{P})\) as an expression which says something, an expression which bears a meaning, in short, an expression which denotes a proposition, and is in the end a sign of an indicator function.
When the syntactic expressions of a formal language are given a referent significance in logical terms, for example, as denoting propositions or indicator functions, then each form of syntactic combination takes on a corresponding form of logical significance.
A handy way of providing a logical interpretation for the expressions of any given cactus language is to introduce a family of operators on indicator functions called propositional connectives, to be distinguished from the associated family of syntactic combinations called sentential connectives, where the relationship between the two realms of connection is exactly that between objects on the one hand and their signs on the other.
A propositional connective, as an entity of a well‑defined functional and operational type, can be treated in every way as a logical or mathematical object and thus as the type of object which can be denoted by the corresponding form of syntactic entity, namely, the sentential connective appropriate to the case at hand.
There are two basic types of connectives, called the blank connectives and the bound connectives, respectively, with one connective of each type for each natural number \(k = 0, 1, 2, 3, \ldots.\)
- Blank Connective
- The blank connective of \(k\) places is signified by the concatenation of the \(k\) sentences filling those places.
- For the initial case \(k = 0,\) the blank connective is an empty string or a blank symbol, both of which have the same denotation among propositions.
- For the generic case \(k > 0,\) the blank connective takes the form \(s_1 \cdot \ldots \cdot s_k.\) In the type of data called a text, the use of the center dot “⋅” is generally supplanted by whatever number of spaces and line breaks serve to improve the readability of the resulting text.
- Bound Connective
- The bound connective of \(k\) places is signified by the surcatenation of the \(k\) sentences filling those places.
- For the initial case \(k = 0,\) the bound connective is an empty closure, an expression taking one of the forms \(\texttt{()}, \texttt{(~)}, \texttt{(~~)}, \ldots\) with any number of spaces between the parentheses, all of which have the same denotation among propositions.
- For the generic case \(k > 0,\) the bound connective takes the form \(\texttt{(} s_1 \texttt{,} \ldots \texttt{,} s_k \texttt{)}.\)
At this point we have two distinct dialects, scripts, or modes of presentation for the typical cactus language \(\mathfrak{C} (\mathfrak{P}),\) each of which needs to be interpreted, that is to say, equipped with a semantic function defined on its domain.
- \(\mathrm{PARCE} (\mathfrak{P})\)
- There is the language of strings in \(\mathrm{PARCE} (\mathfrak{P}),\) the painted and rooted cactus expressions collectively forming the language \(\mathfrak{L} = \mathfrak{C} (\mathfrak{P}) \subseteq \mathfrak{A}^* = (\mathfrak{M} \cup \mathfrak{P})^*.\)
- \(\mathrm{PARC} (\mathfrak{P})\)
- There is the language of graphs in \(\mathrm{PARC} (\mathfrak{P}),\) the painted and rooted cacti themselves, a family of graphs or species of data structures formed by parsing the language of strings.
Those two modalities of formal language, like written and spoken natural languages, are meant to have compatible interpretations, which means it is generally sufficient to give the meanings of just one or the other.
All that remains is to provide a codomain or target space for the intended semantic function, that is, to supply a suitable range of logical meanings for the memberships of those languages to map into. One way to do that proceeds by making the following definitions.
- Logical Conjunction
- The conjunction \(\mathrm{Conj}_j^J q_j\) of a set of propositions \(\{ q_j : j \in J \}\) is a proposition which is true if and only if every one of the \(q_j\) is true.
\(\mathrm{Conj}_j^J q_j\) is true \(\Leftrightarrow\) \(q_j\) is true for every \(j \in J.\)
- Logical Surjunction
- The surjunction \(\mathrm{Surj}_j^J q_j\) of a set of propositions \(\{ q_j : j \in J \}\) is a proposition which is true if and only if exactly one of the \(q_j\) is untrue.
\(\mathrm{Surj}_j^J q_j\) is true \(\Leftrightarrow\) \(q_j\) is untrue for unique \(j \in J.\)
If the set of propositions \(\{ q_j : j \in J \}\) is finite then the logical conjunction and logical surjunction can be represented by means of sentential connectives, incorporating the sentences which represent the propositions into finite strings of symbols.
If \(J\) is finite, for instance, if \(J\) consists of the integers in the interval \(j = 1 ~\text{to}~ k,\) and if each proposition \(q_j\) is represented by a sentence \(s_j,\) then the following forms of expression are possible.
- Logical Conjunction
- The conjunction \(\mathrm{Conj}_j^J q_j\) can be represented by a sentence which is constructed by concatenating the \(s_j\) in the following fashion.
\(\mathrm{Conj}_j^J q_j ~\leftrightsquigarrow~ s_1 s_2 \ldots s_k.\)
- Logical Surjunction
- The surjunction \(\mathrm{Surj}_j^J q_j\) can be represented by a sentence which is constructed by surcatenating the \(s_j\) in the following fashion.
\(\mathrm{Surj}_j^J q_j ~\leftrightsquigarrow~ \texttt{(} s_1 \texttt{,} s_2 \texttt{,} \ldots \texttt{,} s_k \texttt{)}.\)
If one opts for a mode of interpretation which moves more directly from the parse graph of a sentence to the potential logical meaning of both the PARC and the PARCE then the following specifications are in order.
A cactus graph rooted at a particular node is taken to represent what that node represents, namely, its logical denotation.
- Denotation of a Node
- The logical denotation of a node is the logical conjunction of that node's arguments, which are defined as the logical denotations of that node's attachments.
- The logical denotation of either a blank symbol or empty node is the boolean value \(1 = \mathrm{true}.\)
- The logical denotation of the paint \(\mathfrak{p}_j\) is the proposition \(p_j,\) a proposition regarded as primitive, at least, with respect to the level of analysis represented in the current instance of \(\mathfrak{C} (\mathfrak{P}).\)
- Denotation of a Lobe
- The logical denotation of a lobe is the logical surjunction of that lobe's arguments, which are defined as the logical denotations of that lobe's appendants.
- As a corollary, the logical denotation of the parse graph of \(\texttt{()},\) also known as a needle, is the boolean value \(0 = \mathrm{false}.\)
If one takes the point of view that PARCs and PARCEs amount to a pair of intertranslatable languages for the same domain of objects, then denotation brackets of the form \(\downharpoonleft \ldots \downharpoonright\) can be used to indicate the logical denotation \(\downharpoonleft C_j \downharpoonright\) of a cactus \(C_j\) or the logical denotation \(\downharpoonleft s_j \downharpoonright\) of a sentence \(s_j.\)
Tables 14 and 15 summarize the relations that serve to connect the formal language of sentences with the logical language of propositions. Between these two realms of expression there is a family of graphical data structures that arise in parsing the sentences and that serve to facilitate the performance of computations on the indicator functions. The graphical language supplies an intermediate form of representation between the formal sentences and the indicator functions, and the form of mediation that it provides is very useful in rendering the possible connections between the other two languages conceivable in fact, not to mention in carrying out the necessary translations on a practical basis. These Tables include this intermediate domain in their Central Columns. Between their First and Middle Columns they illustrate the mechanics of parsing the abstract sentences of the cactus language into the graphical data structures of the corresponding species. Between their Middle and Final Columns they summarize the semantics of interpreting the graphical forms of representation for the purposes of reasoning with propositions.
| ||||||||||
| ||||||||||
| ||||||||||
|
| ||||||||||
| ||||||||||
| ||||||||||
|
Aside from their common topic, the two Tables present slightly different ways of conceptualizing the operations that go to establish their maps. Table 14 records the functional associations that connect each domain with the next, taking the triplings of a sentence \(s_j,\) a cactus \(C_j,\) and a proposition \(q_j\) as basic data, and fixing the rest by recursion on these. Table 15 records these associations in the form of equations, treating sentences and graphs as alternative kinds of signs, and generalizing the denotation bracket operator to indicate the proposition that either denotes. It should be clear at this point that either scheme of translation puts the sentences, the graphs, and the propositions that it associates with each other roughly in the roles of the signs, the interpretants, and the objects, respectively, whose triples define an appropriate sign relation. Indeed, the "roughly" can be made "exactly" as soon as the domains of a suitable sign relation are specified precisely.
A good way to illustrate the action of the conjunction and surjunction operators is to demonstrate how they can be used to construct the boolean functions on any finite number of variables. Let us begin by doing this for the first three cases, \(k = 0, 1, 2.\)
A boolean function \(F^{(0)}\) on \(0\) variables is just an element of the boolean domain \(\mathbb{B} = \{ 0, 1 \}.\) Table 16 shows several different ways of referring to these elements, just for the sake of consistency using the same format that will be used in subsequent Tables, no matter how degenerate it tends to appear in the initial case.
\(F\) | \(F\) | \(F()\) | \(F\) |
\(0\) | \(F_0^{(0)}\) | \(0\) | \(\texttt{(~)}\) |
\(1\) | \(F_1^{(0)}\) | \(1\) | \(\texttt{((~))}\) |
Column 1 lists each boolean element or boolean function under its ordinary constant name or under a succinct nickname, respectively.
Column 2 lists each boolean function in a style of function name \(F_j^{(k)}\) that is constructed as follows: The superscript \((k)\) gives the dimension of the functional domain, that is, the number of its functional variables, and the subscript \(j\) is a binary string that recapitulates the functional values, using the obvious translation of boolean values into binary values.
Column 3 lists the functional values for each boolean function, or possibly a boolean element appearing in the guise of a function, for each combination of its domain values.
Column 4 shows the usual expressions of these elements in the cactus language, conforming to the practice of omitting the underlines in display formats. Here I illustrate also the convention of using the expression \(\text{“} ((~)) \text{”}\) as a visible stand-in for the expression of the logical value \(\mathrm{true},\) a value that is minimally represented by a blank expression that tends to elude our giving it much notice in the context of more demonstrative texts.
Table 17 presents the boolean functions on one variable, \(F^{(1)} : \mathbb{B} \to \mathbb{B},\) of which there are precisely four.
\(F\) | \(F\) | \(F(x)\) | \(F\) | |
\(F(1)\) | \(F(0)\) | |||
\(F_0^{(1)}\) | \(F_{00}^{(1)}\) | \(0\) | \(0\) | \(\texttt{(~)}\) |
\(F_1^{(1)}\) | \(F_{01}^{(1)}\) | \(0\) | \(1\) | \(\texttt{(} x \texttt{)}\) |
\(F_2^{(1)}\) | \(F_{10}^{(1)}\) | \(1\) | \(0\) | \(x\) |
\(F_3^{(1)}\) | \(F_{11}^{(1)}\) | \(1\) | \(1\) | \(\texttt{((~))}\) |
Here, Column 1 codes the contents of Column 2 in a more concise form, compressing the lists of boolean values, recorded as bits in the subscript string, into their decimal equivalents. Naturally, the boolean constants reprise themselves in this new setting as constant functions on one variable. Thus, one has the synonymous expressions for constant functions that are expressed in the next two chains of equations:
\(\begin{matrix} F_0^{(1)} & = & F_{00}^{(1)} & = & 0 ~:~ \mathbb{B} \to \mathbb{B} \\ \\ F_3^{(1)} & = & F_{11}^{(1)} & = & 1 ~:~ \mathbb{B} \to \mathbb{B} \end{matrix}\) |
As for the rest, the other two functions are easily recognized as corresponding to the one-place logical connectives, or the monadic operators on \(\mathbb{B}.\) Thus, the function \(F_1^{(1)} = F_{01}^{(1)}\) is recognizable as the negation operation, and the function \(F_2^{(1)} = F_{10}^{(1)}\) is obviously the identity operation.
Table 18 presents the boolean functions on two variables, \(F^{(2)} : \mathbb{B}^2 \to \mathbb{B},\) of which there are precisely sixteen.
\(F\) | \(F\) | \(F(x, y)\) | \(F\) | |||
\(F(1, 1)\) | \(F(1, 0)\) | \(F(0, 1)\) | \(F(0, 0)\) | |||
\(F_{0}^{(2)}\) | \(F_{0000}^{(2)}\) | \(0\) | \(0\) | \(0\) | \(0\) | \(\texttt{(~)}\) |
\(F_{1}^{(2)}\) | \(F_{0001}^{(2)}\) | \(0\) | \(0\) | \(0\) | \(1\) | \(\texttt{(} x \texttt{)(} y \texttt{)}\) |
\(F_{2}^{(2)}\) | \(F_{0010}^{(2)}\) | \(0\) | \(0\) | \(1\) | \(0\) | \(\texttt{(} x \texttt{)} y\) |
\(F_{3}^{(2)}\) | \(F_{0011}^{(2)}\) | \(0\) | \(0\) | \(1\) | \(1\) | \(\texttt{(} x \texttt{)}\) |
\(F_{4}^{(2)}\) | \(F_{0100}^{(2)}\) | \(0\) | \(1\) | \(0\) | \(0\) | \(x \texttt{(} y \texttt{)}\) |
\(F_{5}^{(2)}\) | \(F_{0101}^{(2)}\) | \(0\) | \(1\) | \(0\) | \(1\) | \(\texttt{(} y \texttt{)}\) |
\(F_{6}^{(2)}\) | \(F_{0110}^{(2)}\) | \(0\) | \(1\) | \(1\) | \(0\) | \(\texttt{(} x \texttt{,} y \texttt{)}\) |
\(F_{7}^{(2)}\) | \(F_{0111}^{(2)}\) | \(0\) | \(1\) | \(1\) | \(1\) | \(\texttt{(} x y \texttt{)}\) |
\(F_{8}^{(2)}\) | \(F_{1000}^{(2)}\) | \(1\) | \(0\) | \(0\) | \(0\) | \(x y\) |
\(F_{9}^{(2)}\) | \(F_{1001}^{(2)}\) | \(1\) | \(0\) | \(0\) | \(1\) | \(\texttt{((} x \texttt{,} y \texttt{))}\) |
\(F_{10}^{(2)}\) | \(F_{1010}^{(2)}\) | \(1\) | \(0\) | \(1\) | \(0\) | \(y\) |
\(F_{11}^{(2)}\) | \(F_{1011}^{(2)}\) | \(1\) | \(0\) | \(1\) | \(1\) | \(\texttt{(} x \texttt{(} y \texttt{))}\) |
\(F_{12}^{(2)}\) | \(F_{1100}^{(2)}\) | \(1\) | \(1\) | \(0\) | \(0\) | \(x\) |
\(F_{13}^{(2)}\) | \(F_{1101}^{(2)}\) | \(1\) | \(1\) | \(0\) | \(1\) | \(\texttt{((} x \texttt{)} y \texttt{)}\) |
\(F_{14}^{(2)}\) | \(F_{1110}^{(2)}\) | \(1\) | \(1\) | \(1\) | \(0\) | \(\texttt{((} x \texttt{)(} y \texttt{))}\) |
\(F_{15}^{(2)}\) | \(F_{1111}^{(2)}\) | \(1\) | \(1\) | \(1\) | \(1\) | \(\texttt{((~))}\) |
As before, all of the boolean functions of fewer variables are subsumed in this Table, though under a set of alternative names and possibly different interpretations. Just to acknowledge a few of the more notable pseudonyms:
- The constant function \(0 ~:~ \mathbb{B}^2 \to \mathbb{B}\) appears under the name \(F_{0}^{(2)}.\)
- The constant function \(1 ~:~ \mathbb{B}^2 \to \mathbb{B}\) appears under the name \(F_{15}^{(2)}.\)
- The negation and identity of the first variable are \(F_{3}^{(2)}\) and \(F_{12}^{(2)},\) respectively.
- The negation and identity of the second variable are \(F_{5}^{(2)}\) and \(F_{10}^{(2)},\) respectively.
- The logical conjunction is given by the function \(F_{8}^{(2)} (x, y) = x \cdot y.\)
- The logical disjunction is given by the function \(F_{14}^{(2)} (x, y) = \texttt{((} ~x~ \texttt{)(} ~y~ \texttt{))}.\)
Functions expressing the conditionals, implications, or if-then statements are given in the following ways:
\[[x \Rightarrow y] = F_{11}^{(2)} (x, y) = \texttt{(} ~x~ \texttt{(} ~y~ \texttt{))} = [\mathrm{not}~ x ~\mathrm{without}~ y].\]
\[[x \Leftarrow y] = F_{13}^{(2)} (x, y) = \texttt{((} ~x~ \texttt{)} ~y~ \texttt{)} = [\mathrm{not}~ y ~\mathrm{without}~ x].\]
The function that corresponds to the biconditional, the equivalence, or the if and only statement is exhibited in the following fashion:
\[[x \Leftrightarrow y] = [x = y] = F_{9}^{(2)} (x, y) = \texttt{((} ~x~,~y~ \texttt{))}.\]
Finally, there is a boolean function that is logically associated with the exclusive disjunction, inequivalence, or not equals statement, algebraically associated with the binary sum operation, and geometrically associated with the symmetric difference of sets. This function is given by:
\[[x \neq y] = [x + y] = F_{6}^{(2)} (x, y) = \texttt{(} ~x~,~y~ \texttt{)}.\]
Let me now address one last question that may have occurred to some. What has happened, in this suggested scheme of functional reasoning, to the distinction that is quite pointedly made by careful logicians between (1) the connectives called conditionals and symbolized by the signs \((\rightarrow)\) and \((\leftarrow),\) and (2) the assertions called implications and symbolized by the signs \((\Rightarrow)\) and \((\Leftarrow)\), and, in a related question: What has happened to the distinction that is equally insistently made between (3) the connective called the biconditional and signified by the sign \((\leftrightarrow)\) and (4) the assertion that is called an equivalence and signified by the sign \((\Leftrightarrow)\)? My answer is this: For my part, I am deliberately avoiding making these distinctions at the level of syntax, preferring to treat them instead as distinctions in the use of boolean functions, turning on whether the function is mentioned directly and used to compute values on arguments, or whether its inverse is being invoked to indicate the fibers of truth or untruth under the propositional function in question.