<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.formulasearchengine.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=192.12.88.158</id>
	<title>formulasearchengine - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://en.formulasearchengine.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=192.12.88.158"/>
	<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/wiki/Special:Contributions/192.12.88.158"/>
	<updated>2026-05-22T01:45:24Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0-wmf.28</generator>
	<entry>
		<id>https://en.formulasearchengine.com/index.php?title=Disgregation&amp;diff=15368</id>
		<title>Disgregation</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/index.php?title=Disgregation&amp;diff=15368"/>
		<updated>2012-10-10T20:33:10Z</updated>

		<summary type="html">&lt;p&gt;192.12.88.158: Somebody came to this page and changed a date that Carnot did something from 1824 to 1879. Carnot was dead in 1879. Vandalism?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In [[computer science]] and [[recursion theory]] the &#039;&#039;&#039;McCarthy Formalism&#039;&#039;&#039; (1963) of [[computer]] scientist [[John McCarthy (computer scientist)|John McCarthy]] clarifies the notion of [[recursion (computer science)|recursive function]]s by use of the IF-THEN-ELSE construction common to computer science, together with four of the operators of [[primitive recursive function]]s: zero, successor, equality of numbers and composition. The conditional operator replaces both [[primitive recursion]] and the [[mu-operator]].&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
===McCarthy&#039;s notion of &#039;&#039;conditional expression&#039;&#039;===&lt;br /&gt;
McCarthy (1960)&amp;lt;ref&amp;gt;The 1963 reference has not been located.&amp;lt;/ref&amp;gt; described his formalism this way:&lt;br /&gt;
:&amp;quot;In this article, we first describe a formalism for defining recursively. We believe this formalism has advantages both as a programming language and as a vehicle for developing a theory of computation....&lt;br /&gt;
:&amp;quot; We shall need a number of mathematical ideas and notations concerning functions in general. Most of the ideas are well known, but the notion of &#039;&#039;conditional expression&#039;&#039; is believed to be new, and the use of &#039;&#039;conditional expressions&#039;&#039; permits functions to be defined recursively in a new and convenient way.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Minsky&#039;s explanation of the &amp;quot;formalism&amp;quot;===&lt;br /&gt;
In his 1967 &#039;&#039;Computation: Finite and Infinite Machines&#039;&#039;, [[Marvin Minsky]] in his §10.6 &#039;&#039;&#039;Conditional Expressions: The McCarthy Formalism&#039;&#039;&#039; describes the &amp;quot;formalism&amp;quot; as follows:&lt;br /&gt;
: &amp;quot;Practical computer languages do not lend themselves to formal mathematical treatment--they are not designed to make it easy to prove theorems about the procedures they describe. In a paper by McCarthy [1963] we find a formalism that enhances the practical aspect of the recursive-function concept, while preserving and improving its mathematical clarity. ¶ McCarthy introduces &amp;quot;conditional expressions&amp;quot; of the form&lt;br /&gt;
:: f = (&#039;&#039;&#039;if&#039;&#039;&#039; &#039;&#039;p&#039;&#039;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &#039;&#039;&#039;then&#039;&#039;&#039; &#039;&#039;e&#039;&#039;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &#039;&#039;&#039;else&#039;&#039;&#039; &#039;&#039;e&#039;&#039;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;)&lt;br /&gt;
: where the &#039;&#039;e&#039;&#039;&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; are expressions and &#039;&#039;p&#039;&#039;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; is a statement (or equation) that may be true or false. ¶ This expression means&lt;br /&gt;
:: See if &#039;&#039;p&#039;&#039;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; is true; if so the value of &#039;&#039;f&#039;&#039; is given by &#039;&#039;e&#039;&#039;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;.&lt;br /&gt;
:: IF &#039;&#039;p1&#039;&#039; is false, the value of &#039;&#039;f&#039;&#039; is given by &#039;&#039;e&#039;&#039;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;.&lt;br /&gt;
:This conditional expression . . . has also the power of the minimization operator. . ..&lt;br /&gt;
:The McCarthy formalism is like the general recursive (Kleene) system, in being based on some basic functions, composition, and equality, but with the conditional expression alone replacing both the primitive-recursive scheme and the minimization operator.&amp;quot; (Minsky 1967:192-193)&lt;br /&gt;
&lt;br /&gt;
Minsky uses the following operators in his demonstrations:&amp;lt;ref&amp;gt;Minsky (1967) does not include the identity operator in his description of [[primitive recursive function]]s. Why this is the case is not known.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Zero&lt;br /&gt;
* Successor&lt;br /&gt;
* Equality of numbers&lt;br /&gt;
* Composition (substitution, replacement, assignment)&amp;lt;ref&amp;gt;Various authors use various names for this operation. Kleene calls it: &amp;quot;the schema of &#039;&#039;definition by substitution&#039;&#039;. The expression for the ambiguous value of φ is obtained by substitution of expressions for the ambiguous values of χ&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;, . . ., χ&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt; for the variables of ψ . . .. the function φ defined by an application of this schema we sometimes write ast &#039;&#039;&#039;S&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;&#039;&#039;&#039;(ψ, &amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;, . . ., χ&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;.&amp;quot; (Kleene 1952:220). Knuth names it the &amp;quot;all-important &#039;&#039;replacement&#039;&#039; operation (sometimes called &#039;&#039;assignment&#039;&#039; or &#039;&#039;substitution&#039;&#039;)&amp;quot;, and he symbolizes it with the &amp;quot; ← &amp;quot; arrow, e.g. &amp;quot;m ← n&amp;quot; means the value of variable &#039;&#039;m&#039;&#039; is to be replaced by the current value of variable &#039;&#039;n&#039;&#039;&amp;quot; (cf Knuth 1973:3).&amp;lt;/ref&amp;gt; &lt;br /&gt;
* Conditional expression&lt;br /&gt;
From these he shows how to derive the &#039;&#039;predecessor&#039;&#039; function (i.e. DECREMENT); with this tool he derives the minimization operator necessary for &amp;quot;general&amp;quot; [[recursion]], as well as primitive-recursive definitions.&lt;br /&gt;
&lt;br /&gt;
===Expansion of IF-THEN-ELSE to the CASE operator===&lt;br /&gt;
In his 1952 &#039;&#039;Introduction of Meta-Mathematics&#039;&#039; [[Stephen Kleene]] provides a definition of what it means to be a primitive recursive function:&lt;br /&gt;
:&amp;quot;A function φ is &#039;&#039;primitive recursive in&#039;&#039; ψ&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;, ...,ψ&amp;lt;sub&amp;gt;l&amp;lt;/sub&amp;gt; (briefly &#039;&#039;&#039;Ψ&#039;&#039;&#039;), if there is a finite sequence φ&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;, ...,φ&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt; of (occurrences of) functions ... such that each function of the sequence is either one of the functions &#039;&#039;&#039;Ψ&#039;&#039;&#039; (the assumed functions), or an initial function, or an immediate dependent of preceding functions, and the last function φ&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt; is φ.&amp;quot; (Kleene 1952:224)&lt;br /&gt;
In other words, given a &amp;quot;basis&amp;quot; function (it can be a constant such as 0), primitive recursion uses either the base or the previous value of the function to produce the value of the function; primitive recursion is sometimes called [[mathematical induction]]&lt;br /&gt;
&lt;br /&gt;
Minsky (above) is describing a two-CASE operator. A demonstration that the &#039;&#039;nested&#039;&#039; IF-THEN-ELSE—the &amp;quot;[[case statement]]&amp;quot; (or &amp;quot;switch statement&amp;quot;)--is [[primitive recursive]] can be found in Kleene 1952:229&amp;lt;ref&amp;gt;Kleene&#039;s 5 primitive recursion &amp;quot;schema&amp;quot; include the following:&lt;br /&gt;
*(I) zero constant: 0 or may be 0()&lt;br /&gt;
*(II) successor: S(0) = &amp;quot;1&amp;quot;, S(1) = &amp;quot;2&amp;quot;, etc.&lt;br /&gt;
*(III) projection: U&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; ( x&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; , ..., x&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; ) = x&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;, the x&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;s are &amp;quot;parameters&amp;quot; fixed throughout the calculation, and U&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; project one of them out, the notation &amp;lt;math&amp;gt;\pi_i^n (x_1,\ldots,x_n) = x_i&amp;lt;/math&amp;gt; is also used.&lt;br /&gt;
*(IV) substitution φ( x&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; , ..., x&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; ) = ψ ( χ&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;( x&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; , ..., x&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; ), ..., χ&amp;lt;sub&amp;gt;m&amp;lt;/sub&amp;gt;( x&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; , ..., x&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt; ))&lt;br /&gt;
*(V) primitive recursion; cf Kleene 1952:219.&amp;lt;/ref&amp;gt; at &amp;quot;#F (&#039;mutually-exclusive predicates&#039;)&amp;quot;. The CASE operator behaves like a logical [[multiplexer]] and is simply an extension of the simpler two-case logical operator sometimes called AND-OR-SELECT (see more at [[Propositional formula]]). The CASE operator for three cases would be verbally described as: &amp;quot;If X is CASE 1 then DO &amp;quot;p&amp;quot; else if X is CASE 2 then do &amp;quot;q&amp;quot; else if X is CASE &amp;quot;3&amp;quot; then do &amp;quot;r&amp;quot; else do &amp;quot;default&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Boolos-Burgess-Jeffrey 2002 observe that in a particular instance the CASE operator, or a sequence of nested IF-THEN-ELSE statements, must be both [[mutually exclusive]], meaning that only one &amp;quot;case&amp;quot; holds (is true), and [[collectively exhaustive]], meaning &#039;&#039;every&#039;&#039; possible situation or &amp;quot;case&amp;quot; is &amp;quot;covered&amp;quot;. These requirements are a consequence of the determinacy of [[Propositional logic]]; the correct implementation requires the use of [[truth table]]s and [[Karnaugh map]]s to specify and simplify the cases; see more at [[Propositional formula]]. The authors point out the power of &amp;quot;definition by cases&amp;quot;:&lt;br /&gt;
:&amp;quot;...in more complicated examples, definition by cases makes it far easier to establish the (primitive) recursiveness of important functions. This is mainly because there are a variety of processes for defining new relations from old that can be shown to produce new (primitive) recursive relations when applied to (primitive) recursive relations.&amp;quot; (Boolos-Burgess-Jeffrey 2002:74)&lt;br /&gt;
They prove, in particular, that the processes of [[substitution of variables|substitution]], [[graph relation]] (similar to the [[identity relation]] that plucks out (the value of) a particular variable from a list of variables), [[negation]] (logical NOT), [[Logical conjunction|conjunction]] (logical AND), [[disjunction]] (logical OR), bounded [[universal quantification]], or bounded [[existential quantification]] can be used together with definition by cases to create new primitive recursive functions (cf Boolos-Burgess-Jeffrey 2002:74-77).&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
*[[George S. Boolos]], [[John P. Burgess]], and [[Richard C. Jeffrey]], 2002, &#039;&#039;Computability and Logic: Fourth Edition&#039;&#039;, Cambridge University Press, Cambridge UK, ISBN 0-521-00758-5 paperback.&lt;br /&gt;
*[[John McCarthy (computer scientist)|John McCarthy]] (1960), &#039;&#039;Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I&#039;&#039;, Communications of the ACM, 3, 184-195 (April 1960).&lt;br /&gt;
*[[Marvin Minsky]] (1967), &#039;&#039;Computation: Finite and Infinite Machines&#039;&#039;, Prentice-Hall Inc, Englewood Cliffs, NJ.&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Mccarthy Formalism}}&lt;br /&gt;
[[Category:Computability theory]]&lt;/div&gt;</summary>
		<author><name>192.12.88.158</name></author>
	</entry>
</feed>