# Rethinking Computer Science Part 5: The Provenance of Computation

What is the most primitive provenance of computation and how does it extend to the complexities of life and mathematics?

Differentness
Everything begins with differentness. Nothing arises from sameness. Differentness is appreciated in interaction. Nothing accrues from not interacting. Interaction of differentness manifests with change. Interaction without change is a non sequitur. Change is differentness in time, an after that is different from a before. Change is appreciated by a persistence spanning the change. Without spanning persistence there is no referent for change. Change occurs with constraining rules of interaction. Unconstrained change has no significance.

Change manifests in relation to spanning persistence. Persistence manifests in relation to encompassing change. This counterpoint of persistence relating change relating persistence relating change … is the essence of differentness and the foundation of computation.

Locus and Value
The primitive of this counterpoint is a persistent locus that can assert one at a time of two of more values which transition according to value interaction rules. A locus asserting a value might be a wire asserting a voltage, a protein asserting a shape, a molecule asserting a chemical, a digit asserting a numeral, a human asserting speech and so on. A value interaction rule might be a logic function, a shape sensitivity, a chemical affinity, a multiplication table, and ideal and so on.

Computation begins with interaction rules that appreciate combinations of differentness. Loci associate and combine their asserted values to form the name of a value interaction rule. The named rule is invoked and the specified value transitions occur.

The spectrum of differentiation
A locus is differentiated by its place of association in relation to all other loci. A values is differentiated by its interaction behavior in relation to all other values. Two domains of differentiation interpenetrating through loci asserting values. Together they weave a tapestry of computation along a spectrum of expression, below, that is purely in terms of value differentiation on one end and purely in terms of association differentiation on the other end with varying proportions of differentiation along the spectrum. A computation can map anywhere onto the spectrum by altering its proportions of value differentiation and association differentiation (numeric radix for instance).

Spectrum of differentiation.

Value Differentiation
In pure value differentiation all differentness is represented with values and their interaction rules. Each value is different from every other value by virtue of its interaction behavior with all other values as expressed by the value interaction rules.

The loci of pure value differentiation are all mutually associated at a single place of association. There is no way to tell one locus from another in terms of association relationship and hence no association differentiation. The loci are constrained and agitated such that all loci will eventually associate and all possible value interactions will eventually occur. Warm matter in a gravity well or cytoplasm within a cell membrane are examples. This is illustrated with the shaking bag below. The bag is the constraining place of mutual association. The shaking of the bag is the search of values to find interaction partners.

Mutually associated loci.

Roman numerals
The pure value end of the spectrum is illustrated with Roman Numeral addition considered without the subtractive principle: 9 is VIIII instead of IX. The value of a Roman numeral is represented by loci asserting values but the loci are not associated in any particular relationships.

XLII = LXII = ILXI = IILX = LIIX = LIXI = IXIL = XILI = XIIL = IIXL = …

The value interaction rules are represented as:

name of rule -> result of interaction

Roman numeral addition is expressed as a set of value interaction rules.

IIIII  ->  V
VV   ->  X
XXXXX   ->  L
LL   ->  C
CCCCC   ->  D
DD   ->  M

Given two Roman numerals these rules will reduce them to a minimal single numeral representation. The numbers 1878 and 122 are used as examples.

MDCCCLXXVIII + CXXII = MM

Each symbol is a locus asserting a value. If two loci are asserting V and they associate, then their values form the name of interaction rule VV. The rule is invoked, the Vs disappear and X appears. The values and the loci embody the interaction rules. When 2 Vs meet they spontaneously transform into X, similar to 2 molecules of hydrogen and one molecule of oxygen spontaneously transforming into 2 molecules of water when they meet.

One can place the two numerals into a shaking bag as in Figure 3 below. The five Is will form the name IIIII, invoke the rule named IIIII and transform into a V. There are then two Vs that will transform to an X. The five Xs will transform to an L, the two Ls to a C the five Cs to a D and finally the two Ds transform to an M. What remains are two Ms. There is no transform rule with the name MM so no more names can be formed and the addition is completed. Names are formed, rules are invoked, values transform and eventually the sum appears.

Roman numeral addition in shaking bag.

The loci randomly associate in the bag yet a fully determined numerical computation occurs in terms of a progression of formed names and value transitions in terms of the value interaction rules. However, the expression itself cannot determine when its resolution is completed. The only way to determine the progress of the addition is to open the bag and count the values. When there are four or fewer of I, X, C and one or fewer of V, L, D the addition is completed.

The expression itself, however, can be enhanced to express appropriate coordination behavior and determine itself when it is done. This requires that there be a progression of name formation and resolution such that there is a necessarily last name formed and resolved. With the present form of the expression there might not even be a first name formed. VI + XII = XVIII with no names formed and resolved at all. There must be a completeness of behavior at each stage of name formation and resolution to insure that every name in the progression is formed and appreciated in an orderly progression.

The first question of an addition is, how many Is are present in the bag. The computation must count the Is and somehow determine that it has considered all the Is and has not missed any Is in the bag. This can be done if the number of Is to be counted is a constant which can be arranged with zero place holder values which allows there to be a constant number of each value and its zero place holder values in each number. The corresponding lower case letter will be used as the zero place holder value for each numeral value as shown in Table 1.

Numeral    Zero
value      value
I               i
V              v
X              x
L              l
C              c
D             d
M             m
Roman numerals with associated zero values

The zero value i is used such that there is always exactly four of I and/or i in a number: iiii, Iiii, IIii, IIIi, IIII. When two numbers are added there will always be exactly eight of I and/or i. The criterion for completeness can now be pre expressed in the value interaction rule names. The name of each I.i rule, shown in Table 2 below, is exactly eight values. Each name is an association of values but this does not imply any position dependency of the values. The rule name IIIiiiii means that there is three of I and five of i in no particular order. An I rule will be invoked only when its name is completely formed by all eight values. This requirement of completeness of name formation is the mechanism of behavior coordination.

The V or v is the carry to the V,v addition. There are one each of V and/or v in the two numbers and there will always be a carry value of V or v so there will always be exactly three of V and/or v present after the carry. The names of the value transform rules, shown in Table 2 below requires 3 of V and/or v. Because of the completeness requirement the V,v addition occurs strictly after the I,i addition is completed. The carry values express the necessary progression of name formations and resolutions.

There will be four of X,x in each Roman number so adding two numbers will involve 8 values and the carry value will make exactly nine values to form the X,x addition names as shown in Table 2. Again, the X,x addition will occur strictly after the V,v addition.

Rules for I        rules for V                  rules for X
iiiiiiii -> iiiiv           vvv -> vx                  xxxxxxxxx -> xxxxl
Iiiiiiii -> Iiiiv           Vvv -> Vx                 Xxxxxxxxx -> Xxxxl
IIiiiiii -> IIiiv           VVv -> vX]                XXxxxxxxx -> XXxxl
IIIiiiii -> IIIiv           VVV -> VX                XXXxxxxxx -> XXXxl
IIIIiiii -> IIIIv                                          XXXXxxxxx -> XXXXl
IIIIIiii -> iiiiV                                          XXXXXxxxx -> xxxxL
IIIIIIii -> IiiiV                                          XXXXXXxxx -> XxxxL
IIIIIIIi -> IIiiV                                          XXXXXXXxx -> XXxxL
IIIIIIII -> IIIiV]                                        XXXXXXXXx -> XXXxL
;                                                             XXXXXXXXX -> XXXXL

The remaining rule sets, shown below 3 can be similarly derived except for M,m which poses a difficulty because it does not have an inherent maximal form. One can put as many Ms as one likes in a number and the only way to pre-determine how many Ms there are is to limit the number of M,ms allowed in a number. In this discussion the number of M,ms will be limited to five so that, with the carry, there are always exactly eleven of M and/or m. The addition rules for M clip any result greater than five Ms to five Ms without considering the lesser numerals.  Notice that the carry out value for the M rules is Z which indicates the completion of the addition.

Rules for L                  rules for C          rules for D                      rules for M
lll -> lc                       ccccccccc -> iiiiv       ddd -> dm           mmmmmmmmmm -> mmmmmZ
Lll -> Lc                    Ccccccccc -> Iiiiv       Ddd -> Dm          Mmmmmmmmmm -> MmmmmZ
LLl -> lC                  CCccccccc -> IIiiv       DDd -> dM           MMmmmmmmmm -> MMmmmZ
LL L-> LC                CCCcccccc -> IIIiv       DDD -> DM          MMMmmmmmmm- > MMMmmZ
;                              CCCCccccc -> IIIIv                                    MMMMmmmmmm -> MMMMmZ
;                              CCCCCcccc -> iiiiV                                   MMMMMmmmmm -> MMMMMZ
;                              CCCCCCccc -> IiiiV                                  MMMMMMmmmm -> MMMMMZ
;                              CCCCCCCcc -> IIiiV                                 MMMMMMMmmm -> MMMMMZ
;                              CCCCCCCCc -> IIIiV                                MMMMMMMMmm -> MMMMMZ
;                              CCCCCCCCC -> IIIiV                                MMMMMMMMMm -> MMMMMZ
;                                                                                                 MMMMMMMMMm -> MMMMMZ

A modified Roman numeral is always exactly 20 values. four of I or i, one of V or v, four of X or x, one of L or l, four of C or c, one of D or d, and five of M or m. The number one is mmmmmdcccclxxxxviiiI. The number zero is mmmmmdcccclxxxxviiii. This is analogous to a 2s complement binary number represented in a 32 bit computer which is always 32 bits regardless of its magnitude.

The Roman numbers.

MDCCCLXXVIII and CXXII

now become

mmmmMDCCCcLxxXXViIII and mmmmmdCccclxxXXviiII

mmmmMDCCCcLxxXXViIII + mmmmmdCccclxxXXviiII = mmmMMdcccclxxxxviiii.

The addition process accepts two completely represented numbers and produces one completely represented number preserving the number representation convention. The I,i addition is the necessarily first interaction. As shownbelow  the successive carry values shepherd a coordinated progression of interactions leading to the addition of the M,ms which is the necessarily last interaction.

Modified Roman numeral addition in shaking bag.

No matter how long it takes for the names to form and resolve the expression autonomously resolves in an orderly progression of name formations and resolutions to a necessarily last name formation and resolution which generates the coordination value Z to indicate that the addition is completed. The behavior is directed, discrete and fully determined. Z might open the bag and spill the results, into another bag emptying the current bag which can now receive a new computation to resolve.

Roman numeral summary
Classical Roman Numeral addition requires a human to manage the addition and coordinate its behavior. More values, value transform rules and conventions of expression express the coordination behavior previously expressed by a human. The Roman Numeral addition, or any other pure value computation, can be complete in itself, expressing a fully determined computation as a progression of spontaneous behaviors which unambiguously produces a correct result.

Loci jumbling around in the bag trying to form an interactable name is the pure value search. The loci spontaneously appreciate when a name is formed, invoke the appropriate interaction rule and transition their values. (physical chemistry, biochemistry, particle interaction). A search failure (name not formed) does not leave any lingering conditions such as partially formed names to be accounted.

Binary place value numerals – shorter rule names
With pure value binary encoding, which already includes zero, each binary place has a unique set of values.  Rules with only three value names make name formation more likely. Three loci meeting to form a name in the shaking bag is more likely to occur than 8 or 9 loci meeting to form a name. Most chemical and biological interactions are a convergence of 2 or 3 loci.

Pure value interaction rules for binary addition.

Pure value representation:

L0H1E1A0 + M1J1F0B1 = N1Z0Y0X1W1

Corresponding binary place value representation:

0110 + 1101 = 10011

Pure value summary
The differentness of computation is expressed and its behavior fully determined solely in terms of values interacting in accordance with value interaction rules. The value interaction rules are the persistent referent for the changing values. The loci of a pure value expression, all mutually associated at a single place, serve simply as a medium of value assertion and do not contribute to computation differentiation. Computation flows through a progression of names formed of unique values resolved with value interaction rules.

No new expressional primitives have been postulated. A process expression is just associated loci asserting values transforming according to value interaction rules.

Association Differentiation
In pure association differentiation all differentness is expressed in terms of loci in static structures of association relationships. Each locus is different from every other locus by virtue of its place in the structure of association relationships.

The behavior of statically associated loci
A locus has no structure, no input or output, no top or bottom, no right or left. Each locus sees a name continually formed of its own value and the unordered values of the loci directly associated with it and changes its own value in response to the formed name. There is never an instant of no presented name. If associated loci assert the same values and resolve the same names as illustrated at the left below then value change flows in all directions continually and might cease flowing all together (all loci asserting 1).

If directly associated loci assert different values change can flow with circular interaction as in the middle below. Only with three linearly associated loci asserting different values, as on the right below is the flow of change directed such that the output value does not feedback and participate in forming the input name.

Directionalizing the behavior of statically associated loci.

The result is a directionalized locus providing directed value transition flow in the context of a common set of values as below. The output values and input values are not differentiated in terms of value but are different in terms of association place in relation to the directionalized locus.

Directionalized locus.

The Switch
A switch is a directionalized locus. A manual switch in a power plant does not electrocute the human switcher.

An electromagnetic switch receives an input current value that influences a magnetic field value which influences a physical position value which influences a result current value. The output current is isolated from the input current by interaction through two different value domains.

Switches isolate and directionalize value transition flow.

An electronic tube receives a voltage value which influences a charge value in a vacuum which influences current flow value through the vacuum which influences the output voltage value which does not feed back and influence the input voltage value.

The voltage on the transistor gate influences the charge value in the channel which influences the electron flow value through the channel which influences the voltage value at the output which does not feed back and influence the input voltage value.

Multi input directionalized loci can be implemented in terms of networks of single input switches as with CMOS implementation of Boolean logic gates for instance.

Combinational composition
Directionalized loci, can be connected, output to input, to form networks of directly associated directionalized loci with a common set of values and value interaction rules expressing progressive value transition flow as in the left below. The directionalized loci can be graphically stylized to show directionality and rule set behavior as in the center below and ignoring the internal buffering values, which need not be explicitly expressed nor even be common across loci, can be graphically formalized into primitive logic behaviors as on the right below.

Stylized presentations of networks of directionalized loci.

The NULL value – ends and beginnings
With interaction rule sets in terms of data values loci continually assert  data values, form computation names and resolve the formed names with no indication of when a computation begins or when a computation ends.

A value, null, is added to the mutually exclusive set of data values which is defined to mean “not a data value” establishing two disjoint domains of name formation completeness; data completeness and null completeness. A null convention is established in which name formation alternates between a completely formed data name and a completely formed null name (all values null) as below. A computation begins when values transition from all null to a completely formed data name. A computation ends when values transition from a formed data name to all null. Successive wavefronts of value transition alternating between data completeness and null completeness representing successive computations.

Null Convention value transition wavefront flow.

The completeness criterion
In relation to the null value a locus is defined that transitions its output to a data value only when a completely formed data name is presented and that transitions its output to null only when a completely formed null name is presented. Otherwise it maintains its current output value.

The transition of the output to a data value implies the presence of a completely formed data name presented to the input. The transition of the output to null implies the presence of a completely formed null name presented to the input.

Pure association differentiation and threshold logic
In pure association differentiation there is only one data value and the null value. There cannot be combinations of different data values presented so the only appreciable differentness of a formed data name is how many data values are present. Therefore the completeness of a formed data name is recognized by a threshold  criterion (the requisite quantity of presented values at data). The completeness of  the null name is also recognized with a threshold criterion (all presented values at null)

The result is a dual threshold logic with a data completeness threshold, a completely null threshold and an output maintaining behavior. A dual threshold locus beginning with its presented input completely null and its asserted output value at null will transition its output value to data when a specific number of its input values transition to data fulfilling the data completeness threshold. It will maintain its output value at data until all of its input values transition to null at which point it will transition its output value to null. It will then maintain its output value at null until its input values transition to data meeting the completeness threshold at which point it will transition it output value to data and so on.

Some dual threshold loci are represented graphically below with their value interaction rules represented as mapping tables in which D represents the data value, N represents the null value and a dash represents no transition. The number in the graphic is the data completeness threshold. The input rails indicate the number of inputs. A branched input indicates a weighted input.

Dual threshold loci.

If the inputs to a dual threshold locus monotonically transition between data completeness and completely null with an appropriate delay between transitions then the output of the dual threshold locus will monotonically transition between data and null presenting a monotonically transitioning input to any succeeding loci.

Two interpenetrating domains of differentness were defined with the locus and its values. Loci were combined in specific structures to express directionalized interaction behavior. Now directionalized behaviors with data assigned to 1 and null assigned to 0 are combined in specific structures with cross coupled feedback to express dual threshold behaviors with result holding hysteresis behavior. A data completeness, quantity of 1s network transitions the output to data and a null completeness, all 0s network transitions the output to null. Other wise the dual threshold behavior maintains its output as below.

Dual threshold locus implemented with directionalized loci.

From the simple fact of differentness an effective computation primitive, Null Convention Logic, has been constructed.

Multi-Rail Variable Representation
The mutually exclusive values of a variable which cannot now be represented with different values are represented with different rails, as below, each rail representing one value which is asserted when its rail becomes data. It is illegal for more than one rail of a variable to transition to data at a time. When all rails are null the variable is null or empty (not containing or asserting a data value).

Multi-rail variables.

Combinational Logic
I n multi-rail variable interactions each rail represents a value so associations of rails represent combinations of values forming a name. Each variable will transition a single rail to data. Each rail (value) of each variable fans out associating with rails of other variables attempting to form a name. Of the possible combinations of rails of interacting variables only one combination will transition all its rails to data forming a complete name which can be recognized by a dual threshold locus. This fanning out and associating of rails is the association version of the search to form a resolvable name. The unsuccessful fanout paths forming incomplete names are search failures called orphans. There is a delay issue with the orphan that does not fit into this discussion. See part 2.

The combinational network below, specified by a set of value interaction rules and their corresponding table representation at its left, adds a binary variable to a trinary variable producing a quaternary variable. It begins with all rails asserting null. When one rail each of the trinary and the binary variables transitions from null to data. The transitions to data fanout searching to form a name only one of which will be completely formed. One dual threshold locus in the first rank will meet its data completeness threshold (recognize the formed name) and transition its output to data which will ultimately transition one rail of the quaternary output variable to data (data completeness) indicating that the input variables are data complete and that the quaternary value is the correct resolution of the presented input.

When the input variables transition to null the completely null name will form and the dual threshold locus in the first rank that had transitioned to data will transition its output to null, transitioning the output quaternary variable to null. All rails are again null and the combinational network is ready to accept a next transition of input variables to data.

A simple multi-rail pure association computation.

If the input variables monotonically transition between data completeness and completely null with an appropriate delay between transitions then the output variable will monotonically transition between data and null. The behavior of the network as a whole is deterministically coordinated (no glitching) by the monotonic input behavior, by the completeness behavior of individual dual threshold loci and by the logical structure of the network. The network fulfills the completeness criterion.

Greater Combinational Composition
Networks fulfilling the completeness criterion can be combined into greater networks that, in turn, fulfill the completeness criterion.

The figure below is the pure association expression of I,i value interaction rules above. The I,I values of input variables A and B are represented as dual rail pairs. One rail of each pair will become data presenting four of I and or i to the input for each variable. Only one dual threshold loci for each input variable will transition to data recognizing the presented name of each variable.

The next rank of behaviors implements the search to recognize the combination of names from inputs A and B. One threshold behavior of this rank will transition to data recognizing the specific value interaction rule name. This one rail at data, through the last rank of behaviors, transitions the output rails to values specified by the value interaction rule including the V,v carry.

Notice that places in the network are labeled with the value names of the pure value interaction rules. The differentness relations of the computation previously represented with unique values are now expressed by unique places in a structure of association relationships. There is a direct mapping of expression of differentness between the two expressions as exhibited with the labeling.

Pure association expression of Roman numeral I,i addition.

The pure association expression for binary addition is shown in Figure 16 below that corresponds to the pure value interaction rules of binary addition above. Again the places in the network are labeled with corresponding pure value names.

Pure association expression for dual-rail binary addition.

Completeness behavior scales.
A greater network as a whole behaves with the same completeness behavior as its component combinational networks which in turn behave with the same completeness behavior as their component dual threshold loci. Networks with fully determined flow behavior emerge atop networks of dual threshold loci.

For each network input transition (to data or to null) a wavefront of correct monotonic transitions propagates through the greater network. There are no incorrect or spurious transitions. The transition completeness of the output variables of the greater network implies that its input variables have completely transitioned to data, that the data transitions have propagated through the network and that the output is the correct resolution of the presented input.

This is also true for the null wavefront. When the input transitions to null an orderly wavefront of transitions to null flows through the network. There are no transitions of null to data. When the output is completely transitioned to null it means that the input is all null and the null transitions have propagated through the network.

A combinational network as a whole fulfills the completeness criterion.

Pure association summary
Computation is expressed and its behavior fully determined solely in terms of a structure of associated loci interacting with direct neighbors. The network of associated loci is the persistent referent for the changing values flowing through it. The one computation value serves simply to assert differentness of place in the association network and does not contribute to computation differentiation. Computation flows through a progression of names formed of combined rails resolved with dual threshold loci.

Invocation Model
Two domains of differentiation form a spectrum of pure value at one end and pure association at the other end with the two domains interweaving in various proportion along the spectrum, shown below, unifying natural and artificial forms of computation in a single model. The computation of a living cell is not fundamentally different from the computation of an artificial computer.

The spectrum of differentiation.

No new expressional primitives have been introduced: no time referent, no explicit control, no state space, no humans with pencils. In the beginning there is no meta referent, no privileged differentness, no overarching rule of interaction, no referent of time, no metric of space. There are only primitives, mutually interacting, building their own universe of significance. While some conventions have been established, computation is still just associated loci asserting values forming names causing change according to value interaction rules.

Value differentiation and association differentiation are interdependent forms of differentiation. Associated loci cannot express differentness without changing values. Changing values cannot express differentness without the spanning referent of associated loci. Values are associated through and isolated by loci. The same values can be reused over and over between loci. Loci are associated through and isolated by values. The same loci can be reused over and over between values. This interdependent weave of mutually isolating and renewing each other is illustrated with a full adder as halfadd,halfadd,OR circuit in Figure 18.

Alternately reused loci and values expressing a dual-rail full adder.

The consequence is that a few loci, a few values and a few interaction rules can weave patterns of differentness into the complexities of life and mathematics.

Differentness is information. Interacting differentnesses is information transforming. Spontaneously interacting differentnesses are no less symbolic than are passive symbols of differentness manipulated by a human or a computer. Spontaneously interacting proteins compute just as a human or computer manipulating passive symbols computes. Its all about differentness.

# Rethinking Computer Science Part 2: A Sufficiently Expressive Logic

Part 2 presents a logical foundation for computation that does not exhibit the difficulties discussed in part 1.

A Sufficiently Expressive Logic
Consider the possibilities of a logic that manages its own flow of concurrent computation, that does not exhibit incorrect behavior, that  determines its own completeness of resolution and that stably maintains its flowing data. A logic that is sufficiently expressive to completely determine the behavior of any computation solely in terms of the logic itself. No time interval. No registers. No state machine. No timing closure. No emulated mathematician. Might we accept such a logic as a foundation of computational expression and its logically determined behavior as a foundation of computational confidence?

Such a logic is defined by introducing the notion of emptiness to variables and the notion of completeness and value holding to operators on variables.

Variable Emptiness
The current computer science notion of a variable is as a container of a data value that always contains and always asserts a data value. The contained data value can change but the container, the variable, persists and is never empty. The validity or invalidity of a variable’s data value is determined by some control behavior apart from the variable.

A value is added to the variable’s value set that explicitly means “not a data value” which will be called empty. A variable can now explicitly indicate that it does not contain a data value, that it is “empty”. A computation begins when a data value flows into an empty variable and ends when an empty value flows into the variable.

Operator Completeness and Emptiness
A computation primitive operator must now relate to this new “not data value” and the fullness and emptiness of its variables. So the notion of completeness and value holding behavior is introduced.

Each operator fulfills a completeness criterion. Only when its input variables are completely data will an operator transition its output variable to a data value that is the correct resolution of the presented input values. Only when its input variables are completely empty will an operator transition its output value to empty. For all conditions of mixed data/empty input an operator will maintain its current output value.

The output of an operator transitioning to data implies that its input is completely data and that its output is the correct resolution of the presented input. The output of an operator transitioning to empty implies that its input is completely empty and that it is ready to receive a next data input.

If the input variables to an operator monotonically transition between data completeness and completely empty then the output variable of the operator will monotonically transition between data and empty fulfilling the completeness criterion.

Each operator exhibits completeness behavior (control), value holding behavior (memory) and transformation behavior (data value transition mapping). An operator is still represented as a mapping but now the mapping includes the empty value and there are mappings for which the output does not transition.

A Dual Threshold Logic
Considering electronic implementation, the two electronic values that a wire/rail can assert are designated as logical values data (non-zero voltage) and empty (zero voltage) in contrast to 0 and 1 or True and False. Since there is only one data value there cannot be combinations of different data values presented to an operator, there can only be quantities of the one data value. Therefore the operator data completeness criterion is a quantity of inputs transitioned to data: a threshold operator.

The new operator is a dual threshold behavior with an input data completeness threshold and an input completely empty threshold. A dual threshold operator beginning with its output empty will transition its output to data when a specific number of its input rails transition to data fulfilling the data completeness threshold. It will maintain its output data value until all of its input rails transition to empty at which point it will transition its output to empty. It will then maintain its output empty value until its input rails transition to data completeness at which point it will transition it output to data … and so on.

Some dual threshold operators are represented graphically below with their mapping tables in which a dash represents no transition. The number in the graphic is the data completeness threshold. The input rails indicate the number of inputs. A branched rail indicates a weighted input.

Monotonic Value Completeness Transitioning
If the input rails to a dual threshold operator monotonically transition between data completeness and completely empty with an appropriate delay between transitions then the output rail of the dual threshold operator will monotonically transition between data and empty.

Multi-Rail Variable Representation
The mutually exclusive values of a variable are represented with multiple rails each representing one value which is asserted when its rail is data. It is illegal for more than one rail to transition to data at a time. When all rails are empty the variable is empty. A variable monotonically transitions between data completeness (one rail at data) and empty (all rails at empty). Below are examples of multi-rail variables.

Combinational Logic
Multi-rail variable interactions can be characterized as combinations of rails (values) transitioning to data each of which combination can be recognized by a dual threshold operator.A universal mapping can be assummed for the transition to empty (transition outputs to empty only when all inputs are empty) so a combinational network of dual threshold operator can be specified as a transition table of data value (rail) interactions

The combinational network below, specified by the table at its left, adds a binary variable to a trinary variable producing a quaternary variable. Computation begins with the input variables and the output variable and the operators empty (all rails empty). When the trinary and the binary variables transition from empty to data completeness only one dual threshold operator in the first rank will meet its data completeness threshold and transition its output to data ultimately transitioning the quaternary output variable to data completeness (one rail data) indicating that the input variables are data complete and that the quaternary value is the correct resolution of the presented input.

When the input variables transition to empty, the dual threshold operator in the first rank that had transitioned to data will transition its output to empty, emptying the output quaternary variable. The input and output variables and the operator are again empty (all rails empty) and ready to accept a next transition of input variables to data.

If the input variables monotonically transition between data completeness and empty with an appropriate delay between transitions then the dual threshold operators of the network will monotonically transition between data and empty and the output variable will monotonically transition between data and empty. The behavior of the network as a whole including all the concurrency in the network is deterministically coordinated (no glitching) by the monotonic input behavior, by the completeness behavior of individual dual threshold operators and by the logical structure of the network. The combinational network exhibits the same completeness behavior as its component dual threshold operators.

Greater Combinational Composition
In a greater combinational network constructed of first level combinational networks the output of each first level combinational network presents a single correct input transition to its successor first level combinational networks fulfilling their monotonic input requirements.

For each network input transition (to data or to empty) a wavefront of correct monotonic transitions propagates through the greater network. There are no incorrect or spurious transitions. Both concurrent and ordered flow behaviors of the greater network are fully coordinated by the monotonic transition behavior and by the completeness behaviors. The transition completeness of the output variables of the greater network implies that its input variables have completely transitioned and that the output is the correct resolution of the presented input (data complete – completely empty). The requirement for monotonic transitioning with an appropriate delay between transitions is now relegated to the input environment of the greater network.

The network as a whole behaves with the same completeness behavior including the deterministic coordination of all concurrency as its component combinational networks. A composition of logically determined networks is itself logically determined. Completeness behavior scales. A network with fully determined flow behavior emerges atop the network of dual threshold operators.

The Emergent Oscillation – Liveness and Flow Control
Data completeness and emptiness of the output data variables can be recognized with dual threshold operators, fed back to the input, inverted and presented to a spanning rank of dual threshold operators which regulate the input of the network. Output data completeness will allow transitions to empty into the network. Output empty completeness will allow transitions to data into the network. Once a transition wavefront is allowed the enabling rank of dual threshold operators will maintain the allowed wavefront until the network detects the completeness of its flow and allows the next transition wavefront.

The network self regulates the monotonic transitioning of its input. The input environment still has an imposed requirement for monotonic transitioning but now the network itself determines the appropriate delay between transitions. The input environment must now wait for each input transition wavefront to be allowed into the network.

The network is a closed circuit with delay and a single inverter, the form of a ring oscillator. The closed network continually strives to transition between two states, data and empty, the behavior of a ring oscillator. However the transitioning is not necessarily periodic as is the familiar case with free unencumbered oscillators. The transitioning of these oscillators can be delayed, modulated by signals external to the oscillator. Nevertheless, they continually strive to transition and as long as their transitions are externally allowed they transition alternately between two states, oscillate, however aperiodically. The network fulfills two and a half properties of the conventional view of a ring oscillator so it will be referred to as a ring oscillator in this context.

With the inversion of the completeness feedback the network of dual threshold operators becomes a spontaneously alive ring oscillator(animation) continually striving to monotonically transition between data completeness and completely empty. The oscillation provides liveness. The input enable rank provides memory. The output completeness provides flow control. The encompassed combinational network provides value transformation behavior. It is a spontaneously alive, self regulating computation expressed solely in terms of logical relationships. No time interval. No register. No controller. No timing closure. No mathematician.

Placing the input regulation logic of one oscillation before the output completeness logic of another oscillation links the two oscillations with a shared completeness behavior coordinating their oscillation behavior. Each oscillation maintains its input and its output and does not oscillate until its output is stably passed to its successor oscillations. As oscillations individually oscillate, alternating wavefronts of data and empty flow from oscillation to oscillation with data wavefronts being transformed as they flow through the combinational logic within each oscillation.

The requirement of monotonic transitioning is now relegated to the input environment of the network of linked oscillations as a whole, and if fulfilled, successive waves of monotonic transitions will flow through the network with full coordination of all concurrent and ordered behaviors realizing a logically determined computation. In the network below, for instance, the flows of the concurrent oscillations A and B are coordinated by the completeness behavior of oscillation C.

In a network of linked oscillations the behaviors of data transformation, memory, flow coordination and liveness are fully integrated and uniformly distributed. No time interval. No registers. No controller. No timing closure. No mathematician. Only logical relationships

Structured Flow Paths and Abstract Components
A flow path can be a structure of multiple multi-rail variables with a spanning enable and spanning completeness as shown below with the 4 bit adder. Stylized operator symbols are introduced that abstractly represent computations with flow paths of any width and structure. The abstract representations can be composed and further abstracted.

The Ring: Memory
A pipeline can feed back on itself forming a ring of oscillations creating a local memory of previous behavior. A network of linked rings produces a computation with memories of previous behavior distributed throughout the network.

In the network below, implementing a state machine, the remembered previous behavior is the transition to the current state which is fed back through D, and presented as input A. The fed back transition wavefront will sit at A and wait indefinitely for a B transition wavefront to arrive and form input completeness at which point the wavefronts will flow through the update computation producing the next state. A and B are concurrent flows coordinated by the completeness behavior of oscillation C.

The state machine, realized as a network of dual threshold operators, is spontaneously alive and self sequencing with no external support except for the presentation of the input.

Self Contained Computation
If the feedback associated with the input controls the transitioning of the input (memory read request or sensor sample request) then the requirement for monotonic transitioning relegated to the input environment of the network is satisfied and is no longer imposed on the input environment. The network becomes self contained, self coordinated and spontaneously alive; independently and continually performing its computation. There is no referent for the network and its behavior other than the network itself. No external controller. No external time referent. No mathematician Within the network there is no part that is greater than any other part. There is no central anything. There is no global anything. It is a spontaneously behaving whole composed of spontaneously behaving parts.

Immersed Computation
If the input sensor is sensitive to the output behavior then an external feedback path around the network is established forming the network as a whole into a ring, part of which is the logical network and part of which is the environment; a self contained, self referential, continually computing network sensitive to its environment and, with memory of previous behavior, capable of adjusting its behavior. It is an integral locality of a larger computation that it does not, itself, encompass and, in turn is composed of localities that do not encompass its wholeness.

Computation Primitives
Variables that can indicate their own validity and invalidity of value, completeness operators that can manage their own behavior in cooperation with the variables, which combine in networks that coordinate their concurrent flow with completeness behavior, which networks close on themselves to create oscillations, which oscillations, linked with completeness behaviors, form pipeline networks, which pipeline networks, closing on themselves, form ring networks which can remember past behavior and which ring networks finally control their own input becoming independently and spontaneously behaving computations. These concepts, all encompassed in a single coherent logic(1) are primitive concepts of computation that are sufficiently expressive on their own behavioral merit, and that can serve computer science better than computation primitives that assume the behavior of a real or emulated mathematician.

Computational Confidence
We trust sequenced state, because, given knowledge of the input and the sequence one can predict the values in the state space between steps, pause the sequence of steps and observe the state values.

Why might we trust spontaneously flowing, concurrent, fully determined logic? Given knowledge of the input and the network structure of linked oscillations one can predict the sequence of values that will flow through and out of of each oscillation The output of selected oscillations can be tapped and the succession of wavefronts observed.

The mechanisms of observation are different but the predictability and observability of computational progress correspond because the structure and behavior of the state space is one of the possible sequences derived from a dependency specification and the network of linked oscillations is a direct realization of the same dependency specification.

But what if the input is random and prediction is not possible? Then confidence must reside in the expression of the computation. A key factor of sequential confidence is the “precisely defined step”. But the behavior of a step containing a Boolean network with its timing anomalies (glitches) and its reliance on external control is determined by human coordination.

An oscillation, the counterpart of step, contains a network of dual threshold logic operators and logical links with other oscillations that fully determine its behavior solely in terms of logical relationships.

Should we trust the behavior of a coherent determinate logic or the behavior of an ad hoc construction of heterogeneous parts coordinated by humans?

Summary
Mathematics is a world of abstract relations. But integral to the meaning and functioning of mathematical abstractions is a mathematician to actualize them and manage their behavior. The task of computer science is to directly actualize abstractions of computation, without the mathematician. But the mathematical abstractions without the mathematician are incomplete and do not behave correctly on their own merits. A boolean equation in the hands of a mathematician provides a single correct answer. A directly instantiated Boolean equation provides incorrect answers because of concurrent behaviors that the mathematician can coordinate but that the directly instantiated Boolean equation cannot.

Computer science has addressed this quandary by managing the unruly concurrent behavior with time and sequence. Isolating the unpredictable concurrent behavior within a time interval transforming a Boolean network, as a whole, into a predictable sequential step. One can then consider the sequential step as a primitive behavior and consider the concurrent behavior within the step as rendered inconsequential. Isolation might be a reasonable approach if the chaos of primitive concurrent behavior were an existential inevitability. But it is not. There is a logic that can manage its primitive concurrent behavior with deterministic predictability

It is a logic that serves as a primitive abstraction of computation specification as well as a primitive abstraction of computation behavior, a logic that does not assume the behavior of a mathematician but that stands on its own expressional and behavioral merits, a logic that models primitive concurrent computation behavior delivering logical determinism rather than logico-temporal-anthropic adequacy, a computer science logic in contrast to a mathematical logic.

Computer science is different from mathematics. While mathematics uses the mathematician for computation computer science strives to transcend the mathematician and, ultimately, to account for the mathematician as itself a computation. The ghost of the mathematician in computer science creates a referential circle that undermines both ambitions.

1. Karl M. Fant, Logically Determined Design: Clockless System Design with NULL Convention Logic, (Hoboken, New Jersey, Wiley Interscience, 2005).