Author(s): Holt CM
Abstract: A constructive logic may be viewed as a means for applying the operations of logic to the general domain of values used in functional application, combining data and control structures. It is an algebra over a domain that has been partitioned into ((logical"" subdomains, e.g. T (true), U (undecided), and F (false). Pure logical functions respect this partitioning by mapping subdomains into subdomains; they satisfy truth tables. Quasi-logical functions satisfy truth tables except for specific classes of values; non-standard implication and equality are introduced as examples. Communication in a time-free expression is considered, in which the ((use"" of a name in one position is related by a logical function to its use in another position. Although it is possible to embed this kind of relation in the text of an expression, in many cases it is simpler to use a directed reference graph from uses to referents, in which each arc is associated with a logic a value indicating whether or not that path is used in the determination of the value of the name. Time sequences are introduced using this as a basis, and communication among concurrent processes follows naturally.