com put able functions

Upload: kayugayu

Post on 07-Apr-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/6/2019 Com Put Able Functions

    1/46

  • 8/6/2019 Com Put Able Functions

    2/46

    C O N S C I O U S N E S S - B A S E D E D U CA I O N A N D C O M P U E R S C I E N C E

    242

    A B O U H E A U H O R

    Paul Corazza received his Bachelor o Arts degree in Western Philosophy rom Maharishi International University in 1978 and his M.S. andPh.D. degrees in Mathematics rom Auburn University in 1981 and1988, respectively. He was awarded a Van Vleck Assistant Proessorship at University o Wisconsin or the years 19871990. He workedin the Mathematics Department at Maharishi International University in the years 199095. Following a career as a sotware engineer,he rejoined aculty at Maharishi University o Management in 2004

    and currently serves a joint appointment in the Departments o Mathematics and Computer Science. Dr. Corazza has published more than adozen papers in Set heory, ocused primarily on the quest or providing an axiomatic oundation or large cardinals based on a paradigmderived rom Maharishi Vedic Science.

  • 8/6/2019 Com Put Able Functions

    3/46

    C O M P U A B LE F U N C I O N S I N H E H E O R Y OF A L G O R I H M S

    243

    A B S R A C

    According to Maharishi Vedic Science, creation arises in the collapse o the in-

    nite unbounded value o wholeness to a point, rom which creation emergesin a sequential unoldment. By analogy, the creative dynamics ound in theeld o computation arise rom the collapse o a vast unction eldwhoseelements are almost entirely indescribableto a tiny packet o unctions thatare actually used: the polynomial time bounded unctions. Te class o unc-tions that are actually used in Computer Science arises rom a much vasterclass o number-theoretic unctions through a sequence o collapses to succes-sively narrower unction classes. Te vast majority o number-theoretic unc-

    tions are essentially indescribable. By contrast, it is possible to know in ulldetail the behavior o the unctions belonging to the much more restricted classo denable unctions. Restricting urther to the class o computable unc-tions, it becomes possible to describe the behavior o each unction in terms oa computer program; that is, one can describe how to compute each unctionin this class. And the narrowest class o unctionsthe class o polynomialtime bounded unctionsconsists o unctions that can be computed in a ea-sible way, eciently enough to be o practical value in real applications. We

    discuss how this sequence o collapses parallels the creative dynamics o pureconsciousness itsel, as described by Maharishi Vedic Science, as it brings orthcreation through the collapse o the abstract, indescribable innite value o wholeness to the concrete, specic point value within its nature.

    Introduction

    A

    ccording to Maharishi Vedic Science, all that we see in thismaniest world o existence arises because o the transormational dynamics o a single eld, the eld o pure consciousness,

    the Unied Field o all the Laws o Nature (see Maharishi, 1996, pp.252, 504). Tese creative dynamics arise rom a undamental movement within pure consciousness, which repeats over and over again:the innite expanded value o this eld collapses to its own point value,and then emerges into innite diversity. What we see in the orm osequential unoldment o lie in the maniest world is an expression ounseen selreerral dynamics at the level o pure consciousness. In thisintroduction to Algorithms, we examine how core notions in the eld

    o computer science arise as a kind o collapse o expanded, noncomputable mathematical domains to a highly restricted domain in which

  • 8/6/2019 Com Put Able Functions

    4/46

    C O N S C I O U S N E S S - B A S E D E D U CA I O N A N D C O M P U E R S C I E N C E

    244

    the usual orms o computation and computational analysis becomepossible.

    Te starting point or our investigation into these various classes ounctions is the simple idea o a computer program. A computer programcan be understood as a procedure or taking certain inputsperhapsnumbers, character strings, or other typesand transorming them ina sequential manner to produce welldened output values. Tis simpleidea is the core notion at the root o all o todays complex and remarkable sotware.

    Tis idea o a computer program is a modernday way o express

    ing the mathematical notion o a unction. A unction, like a computer program, acts on certain inputs and outputs welldened values.A simple example is the unction that acts on the natural numbers0, 1, 2, . . . according to the ollowing rule: Te unction transormsany natural number input to the natural number that is twice as big asthe input. Formally, we express this rule by the ormula (n) = 2 n.Tus, or example, (3) = 2 3 = 6 and(7) = 2 7 = 14 the unctiontransorms each input to an output value twice as big.

    As we will discuss in more detail later, it is not true that every unction dened on the natural numbers can be computed using a computerprogram. Tis insight leads to a remarkable discovery: the eld o allunctions on the natural numbers is a kind o wholeness, a kind ovast eld, whose contents are undamentally indescribable. o emphasize the point, we can say that, i one were to place all natural numberunctions in a bucket, and choose one rom the bucket at random, theprobability that this unctions behavior could actually be representedin a computer program is 0! Tat is, there is zero probability that, or aunction chosen at random rom the bucket, a computer program couldproduce exactly the same outputs as the given unction on given inputs.As we will show more ormally, the unctions that can be computedusing computer programs represent an innitesimal speck in the vastwholeness o all numbertheoretic unctions.

    Tis phenomenon provides a striking analogy to the parallel journey rom the eld o maniest existence that we experience with thesenses back to its source in the innitely expanded value o intelli

    gence itsel. Tis innitely expanded value is truly beyond description,

  • 8/6/2019 Com Put Able Functions

    5/46

    C O M P U A B LE F U N C I O N S I N H E H E O R Y OF A L G O R I H M S

    245

    indeed, beyond the intellect itsel. In the BhagavadGita, Lord Krishnadescribes this eld with the words (Maharishi, 1969),

    Te senses, they say, are subtle; more subtle than the senses is mind; yetner than mind is intellect; that which is beyond even the intellect is he.

    BhagavadGita, 3.42

    In this paper, we describe the stages through which this undamentally indescribable eld o all unctions as i collapses to the innitesimal package o unctions that we actually use in the eld o computer

    science and in the context o sotware development.We will describe the mechanics o singling out successively smallercollections o unctions until we arrive at the class o unctions thatwill be our primary concernthe class o polynomial time computableunctions.

    We will begin by discussing the class odenable unctionsthoseunctions that can be specied at all in a reasonable way. Te class odenable unctions can be said to emerge rom the class o all numbertheoretic unctions in a way analogous to the emergence o the notiono two rom oneexistence and intelligence rom oneness o consciousness as Samhitaas described in Maharishis Vedic Mathematics (Maharishi, 1972, Lesson 8).1 Each unction can be viewed as acollection o ordered pairs, but when a unction is denable, this meansthat there is, associated with the existence o the unction as a set oordered pairs, a ormula that embodies the intelligence that underliesthe operation o that unction; the ormula denes the unction.

    We will then discuss the computable unctionsthose unctions

    whose input/output behavior can be captured by an algorithm or computer program. Tis class o unctions is distinct rom the class o denable unctions in the sense that these unctions are in act derivable; byway o sequential steps o logic, each unction in this class, with theunique eatures that characterize each, can be derived. By analogy, thisquality o emergence by way o sequential unoldment is characteristic o three emerging rom two in Maharishis Vedic Mathematics.In the togetherness o intelligence and existence, intelligence becomes

    1 Te emergence o two rom one is also expressed elsewhere by Maharishi (Nader, 1995, p. 33)in terms o the sprouting o innite silence and innite dynamism rom thstill as the emergence ounity and diversity (Maharishi, 1996, p. 345).

  • 8/6/2019 Com Put Able Functions

    6/46

    C O N S C I O U S N E S S - B A S E D E D U CA I O N A N D C O M P U E R S C I E N C E

    246

    intelligent, becomes aware o its existence, by the very nature o intelligence as pure awareness. In other words, the togetherness o intelligence and existence results in a ow o intelligence. Tis ow is theow o the knower toward the known, and introduces a third element:the process o knowing. In Sanskrit, knower, process o knowing, andobject o knowledge have the names Rishi, Devata, and Chhandas,respectively (Maharishi, 1992, pp. 2021). Being aspects o pure awareness, each o these is capable o being aware o any o the others; Rishisees Devata and Chhandas; Devata sees Rishi and Chhandas; and soorth. In the act o knowing, the knower aects the known, and so, or

    example, the Chhandas that is seen by Rishi is now a slightly modiedvalue o Chhandas, which in turn sees each o the other values, and inturn has an eect on each o them. In this way, all possible combinations and avors o pure awareness sequentially unold and give rise toall possible expressions. It is thereore at the level o the threeRishi,Devata, Chhandasthat sequential unoldment o the universe beginsto take place. And, by analogy, we nd that the distinguishing eatureo the class o computable unctions is their derivability in a sequence o

    logical steps or computations. Moreover, we will see that, using one oseveral ormalizations o computable unctions, all such unctions canbe shown to be derivable rom just three.

    Finally, we will discuss the class o polynomial time computableunctionsthose computable unctions that can be implemented in aeasible way.

  • 8/6/2019 Com Put Able Functions

    7/46

    C O M P U A B LE F U N C I O N S I N H E H E O R Y OF A L G O R I H M S

    247

    Te concept o a unction in this course will be intimately related tocertain kinds o problems that we may wish to solve. Our analysis willshow that certain kinds o problems are inherently unsolvable; others,though solvable in principle, are not known to be solvable in a easibleway; while still others are solvable, with solutions that can be implemented practically.

    Te course will ocus primarily on the techniques or solving theproblems that have easible solutions, and demonstrating the degree oeasibility o the solutions. However, we will also discuss the appliedvalue o problems with no known easible solutionsparticularly in the

    case o cryptography.

    Defnability vs. ComputabilityRecall that N = N1 is the set { 0, 1, 2, . . . } o natural numbers,N N = N2 is the set { (m, n) | m, n are natural numbers }, and oreach k 2, Nk is the set { (a

    1, a

    2, . . . , a

    k) | a

    1, a

    2, . . . , a

    kare natural

    numbers } o all ktuples o natural numbers. Let Abe a subset o Nk.A unction : A N is an assignment o a unique natural num

    ber b to each ktuple (a1, . . . , ak) in A; we write (a1, . . . , ak) = b.Such an is called a partial unction Nk N. IA = Nk, is calleda total unction Nk N. Intuitively, i we can give a description othe input/output behavior ousing just natural number concepts,then is said to be denable(we give a more precise denition below).

    As a nal warmup denition, let us say that, given natural numbersa, b, adividesb, and write a | b, i there is a number csuch that b = ac(inother words, b is divisible bya with no remainder).

    o a large extent, the signicance o denability o a unction is thatit inorms us, in a mathematical way, that it exists. Tis mathematicalway begins with a mathematical ormula; this ormula represents theundamental intelligence underlying the behavior o that unction. Aproo o the existence o the unction depends critically on the presenceo such a ormula; the ormula gives a precise description o how theunction behaves, and without this inormation, there would be no wayto provide a proo that such a unction exists. Tereore, although thereare in reality a vast number o numbertheoretic unctions, the collection o those that we can actually get our hands on is much narrower,and these are called the denable unctions.

  • 8/6/2019 Com Put Able Functions

    8/46

    C O N S C I O U S N E S S - B A S E D E D U CA I O N A N D C O M P U E R S C I E N C E

    248

    Interestingly, the denability o a unction, though it inorms us oits precise input/output behavior and is the basis or a proo o the existence o the unction, does not necessarily provide us with a procedureor computing the values o the unction; denability inorms us aboutwhat the unction is and does, but does not tell us how it does it (or howits behavior could be simulated computationally).

    o illustrate the distinction between our ability to demonstrate theexistence o a unction using a dening ormula on the one hand andbeing able to compute the values o the unction on the other, we consider the ollowing assertion:

    Assertion. Tere is a partial unction gcd : N N N, which, on

    input (m, n), outputs the greatest number dthat divides both m and n.

    Te gcd unction is the unction that, on input m, n, outputs thegreatest common divisor om and n. We give a proo o the existence othis unction without giving any idea about how to compute its values.As we will see, the proo relies entirely on the denition o the unc

    tion.

    Teorem. LetA= { (m, n) | either m or n is not 0 }. Ten there is a unc

    tion gcd :A N such that, on input (m, n), gcd outputs the greatest

    integer dthat divides both m and n.

    Proo. Given natural numbers m, n, not both 0, it is clear that 1 divides

    them both. Since at least one o them is not 0, it is also clear that thereare ewer than m + n divisors o both m and n. So there must be a larg

    est divisor.

    Te proo o the theorem establishes that the partial gcd unctionexists, but does not tell how to go about computing gcd(m, n) or particular values om and n. As we will illustrate in a moment, the proo isounded on the precise denition o the unction in question, and this

    denition can be represented as a ormula. In act, a ormula (m, n,g)can be given inormally here to illustrate the point:

  • 8/6/2019 Com Put Able Functions

    9/46

    C O M P U A B LE F U N C I O N S I N H E H E O R Y OF A L G O R I H M S

    249

    (m, n,g) :gdivides m and n and, ih also divides m and n, then h g.

    Te ormula denes the gcd unction in the sense that or any naturalnumbers m, n,g, gcd(m, n) = gi and only i(m, n,g) is true. Noticethat tells us the characteristic and dening eatures ogcd withouttelling us how to compute values procedurally. For instance, it doesnttell us how to compute the gcd o 2342 and 54.

    For some theoretical purposes in mathematics, just knowing thata certain unction exists is all that is necessary. Usually though, it isdesirable to come up with a procedure or computing the values o a

    unction, once it has been demonstrated to be denable. Coming upwith a procedure is another way o saying nding an algorithm thatcomputes the unction.

    ypically, once one has a (denable) unction in hand, i the input/output values o the unction can indeed be computed at all, there willbe many dierent algorithms that can be used or this purpose. Weshow here two dierent ways to compute values o the gcd unction. Te rst approach is naturally called a brute orce method that onemight think o based on the existence proo just presented.

    public static int gcd1(int m, int n) {

    if(m==0 && n==0) {

    while(true) { ; } //infinite loop

    }

    int gcd = 1;

    for(int i = 1; i < m + n; ++i) {

    if(divides(i,m) && divides(i,n)){

    gcd = i;

    }}

    return gcd;

    }

    public static boolean divides(int i, int n){

    return n % i == 0;

    }

    It turns out that there is a much more efcient way o computinggcd:

  • 8/6/2019 Com Put Able Functions

    10/46

    C O N S C I O U S N E S S - B A S E D E D U CA I O N A N D C O M P U E R S C I E N C E

    250

    public static void gcd2(int m, int n) {if(m==0 && n==0) {

    while(true){ ; } //infinite loop}

    return computeGcd(m,n);

    }

    public static int computeGcd(int m, int n) {

    if(n==0) return m;

    return computeGcd(n, m % n);

    }

    As an example o the increased efciency o the second approach, ona Windows XP laptop, computing gcd(123055509, 222535599) withthe rst algorithm requires more than 10 seconds, but with the secondalgorithm, less than a millisecond is necessary. Tis example motivatesone o the main objectives o the course: to learn techniques or efcientalgorithm design and or analyzing algorithm efciency.

    As a nal observation about this example, we remark that the gcdunction is indeedpartialin the sense that it is not dened on all pos

    sible pairs (m, n) belonging to N N. In particular, gcd is not denedon the input (0, 0). Tis is the reason why, in both programs above, wehave put the unction into an innite loop when the input is (0, 0); thisis the conventional way o indicating, in a programmatic way, that theinput value does not belong to the domain o the unction.

    Te Standard Model o ArithmeticIn order to make the concept o denability more precise, we take a

    short detour and dene the standard model o arithmetic. As we willsee, when we say that a unction is denable, what we actually mean inthis paper2 is that it is denable in the standard model o arithmetic.oward this goal, we give a brie introduction to the rstorder logic oarithmetic (see Keisler and Robbins, 1996, or Enderton, 1972, or moreon this topic).

    1Tere are several ways to make the notion o denability precise. Te way we discuss here is standard incomputability theory, but in set theory a broader denition is used; in that context, one would say that anumbertheoretic unction is denable i it belongs to the constructible universe (again, there are other

    variants). We mention this here because our computation o the size o the set o denable unctionsdepends on our denition o denable. See the second ootnote about this point later in the paper.

  • 8/6/2019 Com Put Able Functions

    11/46

    C O M P U A B LE F U N C I O N S I N H E H E O R Y OF A L G O R I H M S

    251

    We begin with a languagethe language o arithmeticthat provides special symbols or the binary operations o addition and multiplication, the unary successor unction, and the constants 0 and 1. Inparticular:

    L = { s, +, , 0, 1 }

    Our language L consists oormal symbols. Te symbols are chosen tosuggest a particular intended interpretation. For instance the symbol +suggests addition, even though, as a symbol belonging to L, it has notyet been interpreted as addition (and could actually be interpreted to be

    virtually any operation).Another part o the language is an innite set ovariables. Formally,

    these variables can be listed as v1, v

    2, v

    3, . . . , but or our purposes, it

    will be good enough to use boldace letters at the end o the alphabet,such asx,y, z.

    We will now give rules or combining the various symbols (languageelements and variables) to orm terms, and then introduce some additional logical symbols that will allow us to create ormulas. Once we

    have these terms and ormulas, we will describe how they will be givenmeaning by interpreting them in the standard model o arithmetic. Allthis eort will then allow us to state precisely, in the next section, whatit means or a unction to be denable.

    We give the ollowing recursive denition o terms: A term tis oneo the ollowing:

    (1) one o the constant symbols 0, 1;(2) a variable;(3) s(u), where u is another term;(4) either (u + v) or (uv), where u and v are other terms.

    Tis recursion is legitimate because, in the recursive clauses (3) and(4), the term tmust always end up being longer than any o its component terms.

    Here are some examples o terms:

    0y

  • 8/6/2019 Com Put Able Functions

    12/46

    C O N S C I O U S N E S S - B A S E D E D U CA I O N A N D C O M P U E R S C I E N C E

    252

    s(0)((x + 1) y).

    We now build up ormulas. We begin with atomic ormulas. Anatomic ormula is an expression o the orm (t= u) where t, u are terms.Here is an example o an atomic ormula:

    (s(s(0)) = (1 + 1)).

    We introduce the ollowing symbols rom mathematical logic: Tesymbol stands or and; the symbol stands or or; the symbol

    stands or implies; the symbol stands or not; stands oror each; and stands or there exists. and are called quantiers.Starting rom atomic ormulas, we build up all ormulas recursively asollows:

    A ormula is one o the ollowing:

    (1) an atomic ormula;

    (2) , where is a ormula;

    (3) (), ( ), or (), where , are ormulas;

    (4) x or x, where is a ormula andxis a variable.

    Te recursive steps (2)(4) are legitimate because new ormulas arelonger than the ormulas rom which they are built. Here are someexamples o ormulas:

    ((1 + 0) = 1)

    (s(1) = 0)

    ((0 = 1) (0 = 1))

    Now we give meaning to terms and ormulas by interpreting thesymbols we have dened so ar in a model. Te standard model oarithmetic, denoted, consists o a base set N (the set o natural num

    bers 0, 1, 2, . . . ), together with the usual operations o addition (+),multiplication (), and a successor unction s : N N dened bys(n)

  • 8/6/2019 Com Put Able Functions

    13/46

    C O M P U A B LE F U N C I O N S I N H E H E O R Y OF A L G O R I H M S

    253

    = n + 1. We think o the addition operation as an interpretation o theaddition symbol + dened above. Likewise, ordinary multiplication isan interpretation o; the successor unction is an interpretation os.And we will consider the two ordinary natural numbers 0 and 1 to beinterpretations o the symbols 0 and 1, respectively.

    More ormally, we write:

    0= 0

    1= 1

    += +

    =

    s= s.

    Given a term t, we give an interpretation tot. We wish to denean interpretation in such a way that the term is evaluated to a number.However, i the term happens to contain a variable, we cannot hope to

    determine the value. For instance, the term s(x) cannot be evaluateduniquely to a single number. Recall that s is a symbol whose standardinterpretation is the successor unction. So, it ollows that, once weknow which number the variable x is supposed to stand or, we canevaluate the term as 1 plus the value ox, but not until then. So, aspart o our interpretation scheme, we dene how terms are to be evaluated when particular numbers are used to replace the variables.

    A convention we observe is that i the variables in the term t are

    among x, y, we will express tas t(x, y). (In the general case, we woulduse n variables instead o two.) We can now nally dene how terms are to be interpreted in.

    Given a term t(x, y), we seek to interpret tas a number, but, as we justobserved, can do so only relative to an interpretation o the variablesx, yas particular numbers. Tus we ormally dene the interpretationot(x,y) at numbers a, b in, denoted t[a, b], by the ollowing recursive clauses:

    1. it(x, y) isx, t[a, b] =x[a] = a2. it(x,y) is 0, t[a, b] = 0

  • 8/6/2019 Com Put Able Functions

    14/46

    C O N S C I O U S N E S S - B A S E D E D U CA I O N A N D C O M P U E R S C I E N C E

    254

    3. it(x,y) is 1, t[a, b] = 14. it(x,y) is u(x,y) + v(x,y), then t[a, b] = u[a, b] + v[a, b]5. it(x,y) is u(x,y) v(x,y), then t[a, b] = u[a, b] v[a, b]

    (variables suppressed)

    Tis interpretation o terms denes a unction {terms} N by meanso evaluation. For example, interpreting the term

    (ss(1 + s(0)) s(x))

    at a = 1 (so that the variablexis replaced by the value a = 1) leads to the

    ollowing steps, which result nally in a natural number:

    (s(s(1 + s(0))) s(x))[1] s(s(1 + s(0))) s(1) 4 2 8

    Finally, we interpret ormulas in the standard model. Te result o

    this interpretation will be a boolean valueeither true or alse. We willexplain this step somewhat inormally, but accurately enough or ourpurposes. In order to perorm the interpretation, we need to observe adistinction in the ways in which variables are used in ormulas. o seethe distinction, consider the ollowing two ormulas:

    : x(x 1 =x) : x(x y=x).

    Notice that the variablexin is quantied by. Intuitively, saysthat, or every number, multiplying by 1 gives back the same number.Notice that the variablexin is also quantied by, but the variabley is not associated with a quantier. Intuitively, says that, or everynumber, multiplying by the (unspecied) number ywill give back theoriginal number.

    Based on our intuitive interpretations o and , it seems clear that is true, but may or may not be true, depending on which number

    the variableystands or. For instance, iyis interpreted as the number1, would be true, but iyis interpreted as 2, would be alse.

  • 8/6/2019 Com Put Able Functions

    15/46

    C O M P U A B LE F U N C I O N S I N H E H E O R Y OF A L G O R I H M S

    255

    Te ormula is an example o a sentencea sentence is a ormula inwhich no variable occurs ree. Tis means that each occurrence o eachvariable is tied to a quantier. Te ormula is an example o a ormulahaving a ree variable y. In order to interpret ormulas that have reevariables, we will need to supply numbers to ll in or these variables,so that a nal value o true or alse can be obtained.

    o acilitate this plan, we will adopt the ollowing convention: odenote a ormula whose ree variables are amongx,y, we write (x,y).Iz also occurs in but does not occur ree, we do not list z among thevariables in the presentation o.

    Now we can now interpret a ormula (x, y) inas ollows (to beormal, we should list n ree variables, but or readability, we just usetwo). Te result o interpreting (x, y) inat natural numbers a, b,denoted [a, b], is dened recursively as ollows:

    1. i(x, y) is atomic, o the orm t(x, y) = u(x, y), then [a, b]is true i and only it[a, b] = u[a, b];

    2. i is , then is true i and only iis alse;

    3. i is , then is true i and only i both and aretrue;

    4. i is , then is true i and only i at least one oand is true;

    5. i is , then is alse i and only iis true and

    is alse;6. i(y, z) is x(x,y, z), then [b, c] is true i and only i[a,

    b, c] is true or all a in N.

    7. i(y, z) is x(x, y, z), then [b, c] is true i and only i[a, b, c] is true or at least one a in N.

    Example. Consider the ollowing ormula:(x,y) : z (y=xz).

    We evaluate [3, 12] and [2, 5]:

  • 8/6/2019 Com Put Able Functions

    16/46

    C O N S C I O U S N E S S - B A S E D E D U CA I O N A N D C O M P U E R S C I E N C E

    256

    [3, 12] is true i (z (y=xz))[3, 12] is truei (y=xz)[a, 3, 12] or some a in Ni (12 = 3 a)or some a in Ni 12 = 3 a or some a in N.

    Clearly, the last line is true, since 12 = 3 4. So the ormula is trueat 3, 12.

    However:

    [2, 5] is true i (z (y=xz))[2, 5] is true

    i (y=xz)[a, 2, 5] or some a in Ni (5 = 2 a)or some a in Ni 5 = 2 a or some a in N.

    In the second case, since there is no integer a or which 5 = 2 a, weconclude that is alse at 2, 5. Tese considerations lead to the observation that the ormula is true inat numbers b, c i and only ibdivides c.

    Defning Functions and Relations in the Standard ModelWe can now explain what it means or a unction to be denable in thestandard model o arithmetic. We will give this explanation or unctions o two variables, but generalizing to n variables is a straightorward exercise. Also, we explain what it means or twoplace relations(which are a generalization o unary unctions) to be denable in; inact the latter will be a natural starting point or understanding denability o unctions in.

    Suppose R is a subset o N N. (A amiliar example is the lessthan relation, expressed as ordered pairs: dene R to consist o thosepairs (a, b) or which a < b.) We say that R is denable ini there is aormula (x,y) such that, or all pairs o natural numbers (a, b), we have

    (a, b) is a member oR i and only i[a, b] is true.

    Example. Let R be the set o all ordered pairs (a, b) or which it istrue that a divides b. Let (x, y) be the ormula dened in the previous

    example, namely(x, y) : z (y=xz).

  • 8/6/2019 Com Put Able Functions

    17/46

    C O M P U A B LE F U N C I O N S I N H E H E O R Y OF A L G O R I H M S

    257

    Ten, as the previous example explains, we have

    (a, b) is a member oR i and only i

    [a, b] is true.Tereore, the divides relation is denable in.

    Exercise. Let R be the set o all ordered pairs (a, b) or which a b. Let(x,y) be the ormula dened by

    (x, y) : z (y=x+z).

    Show that

    (a, b) R i and only i [a, b].

    Tereore the relation is denable in.

    Suppose: N N N is a partial unction, with domainA. Tenwe sayis denable ini there is a ormula (x,y, z) such that, or allnatural numbers a, b, c, we have

    c=(a, b) i and only i [a, b, c].

    Example. We show that the unction gcd dened earlier is denable in. Since we already know that divides and less than or equal to aredenable relations, we will use convenient symbols or these relations(| and respectively) in the ormula we will build, with the understanding that these symbols could be replaced by the dening ormulasin a straightorward way. We dene (x,y, z) as ollows:

    (x,y, z) : (z |xz | y [u (u |xu |yu z)]).

    Now, given (a, b, c), we veriy that c= gcd(a, b) i and only i

    [a, b, c].c= gcd(a, b) ic|a and c|b and cis the largest such number

    ic|a and c|b and or anydthat divides both aand b, d c

    ic|a and c|b and or each din N (d|a and d|bimplies d c)

    i [a, b, c].

    Tis example demonstrates the pattern that we have or all denableunctions: the input/output behavior o such a unctionits existenceas a set o ordered pairsis captured in a ormula which denes the

  • 8/6/2019 Com Put Able Functions

    18/46

    C O N S C I O U S N E S S - B A S E D E D U CA I O N A N D C O M P U E R S C I E N C E

    258

    unction relative to the standard model. It is this intelligence characteristic provided by such a ormula that allows us to conceive o theunction at all. Functions that have, beyond their bare existence as a seto ordered pairs, a ormula that denes them orm a specialized subcollection o the class o all numbertheoretic unctionsa class called theclass odenable unctions.

    Is Every Function Nk N Defnable?We show here that, although its reasonably accurate to say that anyunction you can think o is denable in, in reality, nearly all unc

    tions Nk N are not denable.3 Tis observation should help provideperspective on the scope o our course. Te nely honed tools that wewill develop in our analysis o algorithms will be relevant only to a tinysliver o the world o unctions rom N N.

    For convenience, we restrict ourselves to the case k = 1: we showthat there are unctions N N that are not denable. Remember thatevery denable unction NN is dened by a ormula (x,y). itselis an expression involving nitely many symbols. We could arrange

    all ormulas in a sequence, according to length. First we list all thelength1 ormulas, then the length2 ormulas, and so orth.4 (o bemore careul in handling the act that we have innitely many variablesin our language, we can devise the list more careully as ollows: List alllength1 ormulas that use only variable v

    1rst. Ten list all length1

    and length2 ormulas that use variables only among v1, v

    2. Ten list

    all length1, length2, and length3 ormulas that use variables onlyamong v

    1, v

    2, v

    3. And so orth.) In this way, we have a list

    0, 1, 2, . . .o all ormulas that dene unctions N N. Replacing each

    iby the

    unction that it denes gives us the list:

    2 As was discussed in the rst ootnote, this point about the size o the set o denable unctionsdepends on our denition o denable. I instead we take denable to mean constructible (asa set theorist might do), the thread o reasoning still makes the same basic point but in a slightlydierent way. One shows in this case that one o the ollowing two assertions must be true: (a) Teset o denable unctions is a smaller innity than the set o all unctions. (b) Te set o computableunctions is a smaller innity than the set o denable unctions. Either way, the set o computableunctions always ends up being a tiny speck in the very large set o all numbertheoretic unctions.

    4 For anym, a length-m ormula is a ormula that has exactlym symbols.

  • 8/6/2019 Com Put Able Functions

    19/46

    C O M P U A B LE F U N C I O N S I N H E H E O R Y OF A L G O R I H M S

    259

    0,

    1,

    2, . . . .

    Now we have a list o all the denable unctions N

    N. Te question is, does this list exhaust all the unctions rom NN? I we comeup with a unction not on this list, the answer must be no.

    Consider the ollowing unctiong: N N:

    or each k,g(k) =k(k) + 1.

    Isgin the list? Notice thatg0becausegdisagrees with

    0at 0: Namely,

    g(0) =0(0) + 1

    0(0). But the same can be said or each k: g

    kbecause

    gdisagrees withk

    at k, sinceg(k) =k(k) + 1

    k(k).

    We have ound a unctiong not on the list. Tereore, not everyunction N N is denable. But we have shown much more. In actwe have shown that, no matter what list o unctions N N one comesup with,

    h0, h

    1, h

    2, . . . ,

    there will always be a unctiong, dened exactly as above, that does notlie on the list. Tis means that the collection o all unctions N N

    simply cannot be arranged in a list! Te collection o all such unctionsis too big to be put in a list. Tis act demonstrates that the size o theset o all unctions N N is a higher order o innity than the set onatural numbers (see Jech, 1978, or more on higher orders o innity).

    Te point o all these esoteric considerations is that the collection oall unctions that are denable represents only a miniscule raction othe vast collection o all unctions N N.

    Diagonalization and Fixed PointsTe result proved in the previous section uses a technique that appearsover and over in the theory o computability. We wished to show thatsome unction existed outside a particular class o unctions. Te technique or building such a unction is called diagonalizationwe builtgby examining each

    kand orcinggto disagree with it. One says that

    one builds gby diagonalizing out o the class.Diagonalization provides a rich analogy to the process o transcend

    ing. While diagonalizing out describes the phenomenon o going

    beyond, another process that arises in computability theory describes

  • 8/6/2019 Com Put Able Functions

    20/46

    C O N S C I O U S N E S S - B A S E D E D U CA I O N A N D C O M P U E R S C I E N C E

    260

    another aspect o transcending equally well: Te process o nding xed points. I : Y Y is a unction, a xed pointor is ayYsuch that (y) =y. Finding xed points involves locating the selreerral dynamics inherent in a process.

    Both the process o diagonalization and o locating xed points havebeen largely captured in a striking abstract diagram (Yanosky, 2003):

    Te ollowing two theorems (actually two variants o a single theorem), which give signicance to the diagram, are the ollowing:

    Diagonalization Teorem. Suppose: Yand : YYare

    unctions. Dene :

    by(t) = (t, t). Ten i

    has no xedpoint, there is a unction g: Ythat is not represented bythatis, there is no t

    0or which(t, t

    0) = g(t) or each t. Moreover,gcan be

    dened by .

    Fixed Point Teorem. Suppose : Yand : YYare unctions. Dene : by (t) = (t, t). I can be represented by(that is, or some t

    0,(t, t

    0) = (((t))) or everyt), then

    must have a xed point.

    By way o review, i:AB andg: BCare unctions, then thecomposition ogwith, denotedg, is dened by

    domg=Ag(a) =g((a)).

    Te diagram asserts that =g: Following the bottom arrowgrom to Yis the same as ollowing the arrow rom to , ol

    lowed by the arrowrom to Y, ollowed by the arrow rom Yto Y. For more on commutative diagrams, see (Pierce, 1991).

  • 8/6/2019 Com Put Able Functions

    21/46

    C O M P U A B LE F U N C I O N S I N H E H E O R Y OF A L G O R I H M S

    261

    As an example, we use the Diagonalization Teorem to reprove theresult in the previous section: Let

    0,

    1,

    2, . . . be a list o all the den

    able unctions (or or that matter, any list o unctions N N), asdescribed earlier. Dene F: N N N by

    F(m, n) =n(m).

    Dene : N N by(k) = k + 1. (Te connection to the diagram isthat we have set = Nand Y= N.) Te denition o makes it clearthat has no xed point. So the theorem applies, and we can nd a gthat is not represented byF; in particular,g= F does the job.

    Tis means that, or each choice on, the unction n does not agreewith g. But this is precisely what we were seeking: a unction g thatdisagrees with every one o the unctions

    non the list. (Notice how

    the composition F reveals the mechanics o diagonalizationin this case: Requiring to precede Forces us to consider the valuesF(n, n); urther applying makes sure that (F(n, n)) always diersrom F(n, n), and so, in particular, that g(n) is dierent rom

    n(n).)

    Computable FunctionsPrior to the 1950s, there was considerable interest in giving a mathematical characterization o those unctions NN (or NkNm) whoseinput/output behavior could be captured by an algorithm. An inherent difculty in making this determination was that there were manyviews about the denition o algorithm (see Rogers, 1988, and Bell& Machover, 1977).

    A natural, modernday answer to the question is: A partial unction: NN is computable i and only i there is a Java program which, oninput n, either ails to halt (in case n is not in the domain o) or haltswith output(n).

    For example, the unction dened by(n) = 2n is computablebecause the ollowing Java method demonstrates that it is:

    int f(int n) {

    return n + n;

    }

  • 8/6/2019 Com Put Able Functions

    22/46

    C O N S C I O U S N E S S - B A S E D E D U CA I O N A N D C O M P U E R S C I E N C E

    262

    For this criterion or computability to be workable, we need to introduce one abstraction in our concept o a Java programwe mustassume that the program can be run on a computer with as muchmemory as necessary. Otherwise, the program given above or 2nwill ail to compute values (correctly, or at all) once the input integerexceeds memory limits. Later in this section, we will make the necessary assumptions more precise. Historically, many classes o unctionshave been proposed as candidates or the class o all computable unctions. Te denitions o these classes have varied widely. Te ollowingis a partial list (see Bell & Machover, 1977; Rogers, 1988; and Baren

    dregt 1984).

    (1) Te class o partial unctions computable by a uring machine. uringmachines are extremely simple structures that behave like lowlevelprogramslike assembly code or an extremely simple processor. Inputand output are handled by a tape containing innitely many cells whichmay be blank or contain any character rom a predetermined nitealphabethowever, at any time, all but nitely many o the cells are

    blank. Te tape head is used both or reading and writing characters onthe tape. When the machine begins to run, it reads the current value othe tape and checks its instruction set to determine what to do next. Itsnext step depends upon the value read and its current state (it may be inany o nitely many states). Te tape head can move one cell to the letor right, erase a value, or write a value. In taking such an action, it mayenter a new state, or remain in its present state. On a given input, themachine may halt, but on other inputs it may not. A partial unction: N N is uring computablei there is a uring machine Mwhich,when started on the rst on consecutive cells containing the symbol 1(and the rest o the tape blank), the machine eventually halts with headon the rst o(n) consecutive 1s (and the rest o the tape is blank) in is in the domain o, or else never halts. Similarly, a partial unction: N2 N is uring computable i there is a uring machineMwhich,when started on the letmost 1 on a tape having m consecutive 1s ollowed by a blank ollowed byn consecutive 1s (and the rest o the tapeblank), eventually halts with head on the rst o(m, n) consecutive 1s

    (and the rest o the tape is blank) i (m, n) is in the domain o, or elsenever halts.

  • 8/6/2019 Com Put Able Functions

    23/46

    C O M P U A B LE F U N C I O N S I N H E H E O R Y OF A L G O R I H M S

    263

    (2) Te class o partial unctions computable by a nondeterministic ur-ing machine. A nondeterministic uring machine is just like a uringmachine, except that, when reading a value on the tape, and when ina particular state, its next step is not, in some cases, uniquely determinedit may do any o a number o things. In this case, is considered computable i there is a nondeterministic machine M which,when started on the rst 1 on consecutive 1s (and the rest o the tapeblank), has an execution path that will causeMto eventually halt withtape head on the rst 1 o(n) consecutive 1s (and the rest o the tape

    blank). A similar description provides a denition or a partial unction N2 N to be computable by a nondeterministic uring machine.

    (3) Te class o -denable partial unctions. Church devised a ormalsystem called the -calculus in an eort to build a oundation or allo mathematics based on the concept o a unction. Te ormal systemconsists o an innite set o variables v

    1, v

    2, . . . , together with terms

    dened recursively by:

    (a) Any variable is a term;

    (b) IMandNare terms, (MN) is a term;

    (c) IMis a term and x is a variable, (x.M) is a term.

    Te notation is a way o speciying a unction. Stepping outside theormal system or a moment, one can use the notation to speciy theunction that takes n to 2n by writing

    n.2n.(n.2n is the unction that takes argument n to 2n.)

    Clause (c) says, intuitively speaking, that iMis a term, the unction that takes x to M is also a term. Multiple applications o clause(c) are typically written in abbreviated orm. For instance x.y.M iswritten xy.M. Te number o parentheses involved in writing downterms according to rules (b) and (c) tends to become unmanageable, sothere is an association to the let convention: It is understood that the

    expressionMNPis shorthand or ((MN)P). Ix is a variable, x2

    denotesthe term xx, x3 denotes x(xx), x4 denotes x(x(xx)), and so orth.

  • 8/6/2019 Com Put Able Functions

    24/46

    C O N S C I O U S N E S S - B A S E D E D U CA I O N A N D C O M P U E R S C I E N C E

    264

    terms can oten be reduced to simpler terms. Many o these

    reductions ollow our intuitive expectation. For instance, the term(x.y)Mreduces to simplyy. Te intuitive reason is that x.y is the unction that takes anyx to constant valuey. I this unction is applied to theinputM, the output is simplyy. We write (x.y)My. As an exercise,the reader is invited to veriy intuitively why (x.x(xy))MM(My).

    Intuitively, the terms that have no ree variables correspond tounctions with actual input/output behavior. For instance, the termx.xxbinds the variable x; this makes it possible to uniquely determinean output rom a given input. In this case, still speaking intuitively,x.xx is the unction that, or any input a, outputs aa. By contrast,the term mentioned in the previous paragraphx.x(xy)has theree variable y, so any computation using this term will still leave thevalue oy undetermined. terms that have no ree variable are calledclosed terms. As was mentioned in the introduction, it can be shown thatall closed terms can be derived rom an initial set o just three closedtermsusually denoted I, K, S. For completeness o the presentation,we give their denitions here:

    I: x.xK: xy.xS: xyz.xz(yz).

    Natural numbers are represented in the calculus in the ollowingway: the natural number n is represented by the numeralxy.xny. Inthe special case on = 0, the denition asserts that 0 is represented by

    the term xy.y. A shorthand notation or the numeral or n is n.We can now dene what it means or a numbertheoretic unctionto be computable in the sense o the calculus. We do this or totalunctions; a bit o additional development would be needed to handlethe case o partial unctions. A total unction f : N N N is said tobe -denablei there is a termXsuch that or each m, nN,

    X m n f(m, n).

    (Tis denition generalizes to arbitrarily many variables in the obviousway.)

  • 8/6/2019 Com Put Able Functions

    25/46

    C O M P U A B LE F U N C I O N S I N H E H E O R Y OF A L G O R I H M S

    265

    As we will indicate shortly, the -denable unctions turn out tobe precisely the computable unctions, the unctions whose behavioris computable with an algorithm. Te act that all -denable unctions (and in act, all closed terms) are derivable rom just three is oneo many striking analogies between the way in which the selreerralcomputational dynamics o pure consciousness nd a direct parallel inthe oundational dynamics o the calculus. According to MaharishiVedic Science, the sequential unoldment o the Veda, and, ultimately,all o maniest existence, arises rom selreerral dynamics in whichpure awareness interacts with itsel, simultaneously playing the roles o

    knower (Rishi), process o knowing (Devata), and known (Chhandas).In the calculus context, the three undamental closed terms play asimilar role: Te term I, known as the identity combinator, representspure silence, the witness, the Rishi value, since its action under application is to leave its argument unchanged. Te term Kacts by orgettingits second argument; this hiding inuence corresponds naturally toChhandas. And the term Shas a strongly dynamic avor as it distributesits third argument z across the other two arguments, and so corresponds

    naturally to Devata. Moreover, all three can be seen as the play o a single termXinteracting with itsel (the denition oXis rather involved,but can be expressed succinctly using Kand Sas ollows:X =z.zKSK).

    (4) Te class o partial recursive unctions. One begins the denition othis class by speciying a Base Seto unctions, all o which are obviously computable. Ten one species a collection o undamentaloperations or building new unctions rom old ones. Te nal class

    consists o all those unctions that can be obtained by nitely manyapplications o these operations to the unctions in the Base Set. Forthis discussion, we will consider unctions Nk N, or all k 1.

    Base Set.Te Base Set Bconsists o the ollowing unctions:

    1. Te successor unction: Te unction: N N dened by(n) =n + 1.

    2. All constant unctions: For each n, the unction: NkN dened

    by(x1, x2, . . . , xk) = n.

  • 8/6/2019 Com Put Able Functions

    26/46

    C O N S C I O U S N E S S - B A S E D E D U CA I O N A N D C O M P U E R S C I E N C E

    266

    3. Allprojection unctions: For each i, with 1 i k, the unction:Nk N dened by(x

    1, x

    2, . . . , x

    k) = x

    i.

    Recursive Operations.Te recursive operations will be applied tothe Base Set to build up a large class o unctions. Here we dene theseoperations on arbitrary unctions and then speciy how partial recursiveunctions are to be built up later on.

    1. Composition. Given unctions g1, g

    2, . . ., g

    m: Nn N and a

    unction h : Nm N, the composition hg1,g

    2, . . . ,g

    m is the

    unction: Nn

    N dened by

    (x1, . . . , x

    n) = h(g

    1(x

    1, . . . , x

    n),g

    2(x

    1, . . . , x

    n), . . . ,g

    m(x

    1, . . . , x

    n)).

    For the case m = 1, we write h g

    1rather than h g

    1. For the

    case in which any or all o the gi

    are only partially dened, weadopt the convention that(x

    1, . . . , x

    n) is undened unlessg

    1(x

    1, .

    . . , xn) is dened or all i.

    2. Primitive Recursion. Given unctions g: Nn1 N and h : Nn1 N, the unction= pr(g, h) : Nn N, obtained by primitiverecursion romgand h, is dened inductively as ollows:

    (0, x2,

    . . . , xn) =g(x

    2, . . . , x

    n)

    (x1

    + 1, x2, . . . , x

    n) = h(x

    1,(x

    1, x

    2, . . . , x

    n), x

    2, . . . , x

    n).

    When n = 1, we takegto be a constant (rather than a unction).

    Igis only partially dened,(0, x2, . . . , xn) will be dened onlywheng(x

    2, . . . , x

    n) is dened, and similarly in the denition o

    (x1

    + 1, x2, . . . , x

    n).

    3. Unbounded Search. Suppose g : Nn+1 N is a partial unction.Ten= us(g) : Nn N is dened by

    (x1,

    . . . , xn) = leasty such thatg(x

    1, . . . , x

    n,y) = 0 and

    (x1, . . . , xn, z) is in the domain ogor each z y.

  • 8/6/2019 Com Put Able Functions

    27/46

    C O M P U A B LE F U N C I O N S I N H E H E O R Y OF A L G O R I H M S

    267

    Let us say that a unction : Nn N is derivable rom Band ithere are unctions

    1, . . . ,

    m, with=

    m, having the ollowing proper

    ties: For each k m, kis obtained in one o the ollowing ways:

    a. kbelongs to B;

    b. or some i1, . . . , i

    r, jall less than k, f

    k= f

    j f

    i1, . . . , f

    ir;

    c. or some i,jboth less than k,k= pr(

    i,

    j);

    d. or somej< k,k= us(

    j).

    As a simple example, we give a derivation o the unction(x

    1, x

    2) = x

    1+ x

    2rom B, :

    1

    is the successor unction.

    2: N N is dened by

    2(x) = x.

    3

    : N3 N is dened by3(x

    1, x

    2, x

    3) = x

    2.

    4

    : N3 N is obtained by composition: 4

    = 1

    3. Tereore,

    4(x

    1, x

    2, x

    3) = x

    2+ 1.

    5 : N2

    N is obtained by primitive recursion:5 = pr(2,4).Tereore,

    5(0, x) =

    2(x) = x

    5(1, x) =

    4(0,

    5(0, x), x) = x + 1

    5(2, x) =

    4(1,

    5(1, x), x) = x + 1 + 1 = x + 2

    5(n + 1, x) =

    4(n,

    5(n, x), x) = x + n + 1.

    It ollows that=5, and sohas been derived rom Band .

    Finally, the class o all partial recursive unctions is dened to be theset o all unctions that are derivable rom Band .

    It may not be obvious that some o the unctions belonging to theclass o partial recursive unctions are only partially dened, since thebase set o unctions includes only total unctions. Partially denedunctions do arise, and they do so by virtue o applications o unboundedsearch. As an example, we show how the partially dened unction

    f(x) =0 ifx 1

    ifx =

    0

    is derivable.

  • 8/6/2019 Com Put Able Functions

    28/46

    C O N S C I O U S N E S S - B A S E D E D U CA I O N A N D C O M P U E R S C I E N C E

    268

    1

    is the constant unction with one argument having value 1(i.e.

    1(x) = 1).

    2 is the constant unction with three arguments having value 0(i.e.

    2(x,y, z) = 0).

    3

    : N2 N is obtained by primitive recursion: 3

    = pr(1,

    2).

    Tereore,

    3(0,y) =

    1(y) = 1;

    3(x + 1,y) =

    2(x,

    3(x,y),y) = 0.

    4

    : N N is obtained by unbounded search:4

    = us(3).

    Notice that, by the denition o unbounded search, 4(0) = 1, butor all x > 0,

    4(x) = 0. It ollows that =

    4, and so the partially dened

    unctionhas been derived rom Band .

    (5) Te class o partial unctions that are weakly representable in PeanoArithmetic. Peano Arithmetic (PA) consists o a set o sentences in thelanguage o rstorder arithmetic (described earlier). PA is an exampleo an axiomatic theory or arithmetic. As such, it provides a way o

    systematically deriving sentences that are true in the standard model. PA begins with a set o obviously true (in) sentences as its seto axioms, and then allows one to derive one theorem (true sentence)ater another using a single rule o inerence. Kurt Gdel showed that,although nearly every true sentence o arithmetic that would ever arisein mathematical practice is derivable rom PA, PA is not rich enough toallow one to derive all the true sentences.5

    Te ollowing is a list o axioms or Peano Arithmetic (see Keisler &Robbins, 1996).

    3 Moreover, he showed that there is no recursive axiomatic theory o arithmetic rom which everytrue sentence o arithmetic can be derived. An axiomatic theory is said to be recursivei there is acomputer program that can, or any ormula in the language given as input, correctly answer thequestion: Is this ormula one o the axioms o the theory? Intuitively, this means that we have aclear idea o what the axioms are to begin with. Without this requirement, one could start with allkinds o axioms that may well permit a derivation o every true sentence in arithmetic, but wouldbe so complicated that it would be impossible to obtain proos rom the axioms, since one wouldnever know which sentences are axioms and which are not. A simple example o this phenomenonoccurs i one takes as ones set o axioms all true sentences o arithmetic!

  • 8/6/2019 Com Put Able Functions

    29/46

    C O M P U A B LE F U N C I O N S I N H E H E O R Y OF A L G O R I H M S

    269

    Axioms o Peano Arithmetic

    1. Every axiom o rstorder logic2. s(0) = 13. x(s(x) = 0)4. xy(s(x) = s(y) x=y)5. x(x + 0 =x)6. xy(x + s(y) = s(x + y))7. x(x 0 = 0)8. xy(x s(y) = (xy) + x)

    9. For each ormula (x, y), the ollowing is an axiom:y((0,y) x[(x,y) (s(x),y)] x(x,y).

    Te axioms indicated in Axiom 1 are the axioms rom which alltheorems o rstorder logicwhich must hold true in every model othe language o arithmeticcan be derived (we do not list these here).

    Axiom 9 is the Principle o Mathematical Induction. It says thati a ormula is true at 0, and i, whenever it is true at some n it can be

    shown to be true at n + 1, then the ormula must be true or all naturalnumbers.Suppose is a sentence in the language o arithmetic. We say that

    is provable rom PA, and we write PA , i there are sentences

    1, . . . ,

    n, with =

    n, such that or each m n,

    mis obtained in one

    o the ollowing ways:

    1. (axiom) m

    is one o the axioms;2. (modus ponens) there are j, k both less than m such that

    k

    is othe orm

    j

    m.

    Modus ponens says that, in our derivation list o sentences, i wend

    jsomewhere in our derivation, and somewhere else we nd

    j

    m, then it is legitimate or the sentence

    mto be included as part

    o the derivation. Tis is the only way that new sentences are derivedrom other sentences, and is called inerence by modus ponens. Modusponens says, in essence, that i you know the sentencesp andpqare

    true, you may conclude that qis true too.

  • 8/6/2019 Com Put Able Functions

    30/46

    C O N S C I O U S N E S S - B A S E D E D U CA I O N A N D C O M P U E R S C I E N C E

    270

    We can now dene weak representability. As a matter o notation, letus speciy some terms in arithmetic that will be useul. We will writes2(0) or s(s(0)), s3(0) or s(s(s(0))), and, in general, sn+1(0) or s(sn(0)).sn(0) provides us with a natural way o representing the natural numbern in the ormal language o arithmetic. Now, suppose : N2 N isa partial unction. (We can provide a similar denition or any: Nk N.) We say that is weakly representable in PA i there is a ormula(x,y, z) such that, or all natural numbers a, b, c,

    c=(a, b) i PA (sa(0), sb(0), sc(0)).

    Example. We give an example o a proo rom PA. One o the true sentences o arithmetica wellknown and popular actis that 1 + 1 = 2.Formulating this sentence in the ormal language o arithmetic gives us:

    1 + 1 = s2(0).

    For practice, let us veriy that this sentence is indeed true in. First,the term 1 + 1 evaluates to 2, because

    (1 + 1)= 1+ 1= 1 + 1 = 2.But s2(0) = s(s(0)) also evaluates to 2:

    (s(s(0)))= s(s(0)) = s(s(0)) = 2.

    Tereore,(1 + 1 = s2(0))is true.

    We now write a ormal proo o this sentence rom PA. In actualmathematical practice, proos rom any theory (PA, or any other) are written in a much more abbreviated and readable orm, but can, in

    principle, always be transormed to a ormat like the ollowing. We usea table ormat in order to make evident the reason or each step in theproo. Te proo will demonstrate that

    PA 1 + 1 = s(s(0)).

    Statement Reason

    (1) x(x +0 = x) Axiom 5

    (2) x(x + 0 = x) 1 + 0 = 1Axiom 1

    (3) 1 + 0 = 1 Modus ponens, (1), (2)

  • 8/6/2019 Com Put Able Functions

    31/46

    C O M P U A B LE F U N C I O N S I N H E H E O R Y OF A L G O R I H M S

    271

    Statement Reason

    (4) xy(x + s(y) = s(x + y))Axiom 6

    (5) xy(x + s(y) = s(x + y))

    1 + s(0) = s(1 + 0)

    Axiom 1

    (6) 1 + s(0) = s(1 + 0) Modus ponens, (4), (5)

    (7) 1 + 0 = 1 s(1 + 0) = s(1) Axiom 1

    (8) s(1 + 0) = s(1) Modus ponens, (3), (7)

    (9) 1 + s(0) = s(1 + 0)

    1 + s(0) = s(1)

    Axiom 1, (8)

    (10) 1 + s(0) = s(1) Modus ponens, (6), (9)(11) s(0) = 1 Axiom 2

    (12) 1 + s(0) = s(1) 1 + 1 = s(1) Axiom 1, (11)

    (13) 1 + 1 = s(1) Modus ponens, (10), (12)

    (14) s(0) = 1 s(s(0)) = s(1) Axiom 1

    (15) s(s(0)) = s(1) Modus ponens, (11), (14)

    (16) 1 + 1 = s(1) 1 + 1 = s(s(0)) Axiom 1, (15)

    (17) 1 + 1 = s(s(0)) Modus ponens, (13), (16)

    Having examined briey each o ve classes o unctions, let usobserve that all are obtained in signicantly dierent ways, and in somecases, their relationship to the notion o computability seems remote.One o the remarkable discoveries in mathematical logic is that theseve classes are all identical! We state this act as a theorem below. Since we would like to include among these classes the class o all partial

    unctions that are computable by a Java program, we take a moment tobe more precise about this latter notion.Suppose: Nk N is a partial unction. We declare that is com-

    putable by a Java program i, given a computer, supporting operatingsystem, and JVM in which there is no limit on memory, we can inprinciple (ignoring time constraints) write a Java method m

    (which can

    be executed by instantiating its enclosing class and making a methodcall with appropriate arguments) that accepts a BigInteger array as itsargument, has a BigInteger return value, and behaves in the ollowing

    way: I (a1, a2, . . . , ak) is in the domain o, then, on input consist

  • 8/6/2019 Com Put Able Functions

    32/46

    C O N S C I O U S N E S S - B A S E D E D U CA I O N A N D C O M P U E R S C I E N C E

    272

    ing o the BigInteger array oa1, a

    2, . . . , a

    k, m

    returns (in principle,

    ignoring time constraints) the BigInteger version o(a1, a

    2, . . ., a

    k). I

    (a1, a2, . . . , ak) is not in the domain o, then, with input consisting othe BigInteger array o a

    1, a

    2, . . . , a

    k, m

    never returns a value (this may

    occur because m

    has entered an innite loop, because an Exceptionhas been thrown, or any other reason). Such a Java method m

    will be

    called a regularJava program (even though it is just a Java method), orthe regular Java program that computes.

    As a simple example o a regular Java program that demonstratescomputability, we show that(n) = 2n is computable:

    BigInteger f(BigInteger[] n) {

    return n[0].add(n[0]);

    }

    We can now state our theorem (see Bell & Machover, 1977):

    Unifcation Teorem. Te ollowing classes o unctions Nk N,k 1, are identical:

    1. Te class o uringcomputable partial unctions.

    2. Te class o nondeterministic uringcomputable partial unctions.

    3. Te class odenable partial unctions.4. Te class o partial recursive unctions.5. Te class o partial unctions that are weakly representable in

    Peano Arithmetic.6. Te class o partial unctions that are computable by a Java pro

    gram.

    On the basis o evidence similar to our Unication Teorem, Churchproposed (1936) that the class o all partial unctions whose input/output behavior could be captured by an algorithm was also identical to each o the classes mentioned above. Tis proposal has cometo be known as Churchs Tesis. Since no denition o algorithm hasacquired universal assent, Churchs Tesis cannot actually be provedor disproved. Nonetheless, the Unication Teorem (and other evenstronger results o this kind) provides compelling evidence or the trutho Churchs Tesis. By now, it has achieved nearly universal acceptance

  • 8/6/2019 Com Put Able Functions

    33/46

    C O M P U A B LE F U N C I O N S I N H E H E O R Y OF A L G O R I H M S

    273

    by the mathematical and computer science community, and we willtake it to be true in this course.

    One general eature o all the classes o unctions mentioned here isthat the notion o computability o a unction seems always to requirethat it exhibit a sequence o steps rom a welldened starting point, inorder to arrive at a computation. Tis is apparent rom the versions ocomputable unction that involve some notion o a computing machine,such as uring machines or Java programs: o compute the value o aunction on any input, either the machine goes into an innite loop(when the input is not in the domain o the unction), or it perorms a

    nite sequence o steps to arrive at an output. In the case o the classeso partial recursive unctions and denable unctions, the derivationsinvolved have a dierent avor, but still involve nite sequences o steps.A unction is partial recursive i it can be derived rom a simple seto unctions via nitely many applications o undamental computable operations. In the case o denable unctions, all are derivable through reductions rom the three basic closed terms (see above),though the steps are restricted by the need to operate on natural num

    ber inputs rather than on arbitrary domains. Te sequential ow is seenin the orm o nitelength proos rom Peano Arithmetic or the othertwo classes. Tereore, in general, a distinguishing characteristic o theclass o computable unctions is that they arise in the context o nitesequential unoldment, expressed in various ways.

    As we discussed in the introduction, sequential unoldment, in thedynamics o pure consciousness according to Maharishi Vedic Science,begins with the emergence o three rom two; with the emergenceo Rishi, Devata, and Chhandas. For this reason, while we associatedthe class o denable unctions with the emergence o existence andintelligence, or two, rom the unied, Samhita, value o consciousness, we associate the class o computable unctions with the emergenceo the ow o intelligence in the orm o Rishi, Devata, and Chhandas,which gives rise to the sequential unoldment o creation.

    Is Every Defnable Function Computable?In this section, we show that the class o computable unctions is a

    proper subset o the class o denable unctions. Tis result shows thatthe requirement on a unction that it should be possible to compute its

  • 8/6/2019 Com Put Able Functions

    34/46

    C O N S C I O U S N E S S - B A S E D E D U CA I O N A N D C O M P U E R S C I E N C E

    274

    input/output behavior in nitelength computations is more stringentand demanding than the bare assertion that such a unction exists (inthe sense that it can be dened in the standard model). o say it anotherway, knowing the behavior o an existing unction does not sufce totell one how to compute its values. Ater showing that every computable unction is indeed denable (as might be expected), we move on toan important example o a unction that is denable but not computable(or a complete proo, see Keisler and Robbins, 1996).

    Computable Implies Defnable Teorem. Every partial unction

    Nk

    N that is computable is also denable in.

    Partial Proo. We give a proo here or total computable unctions; the proo or partial unctions is considerably more difcult. Suppose : N2 N is a computable total unction (the moregeneral case in which k is arbitrary is similar). By part (5) o theUnication Teorem, there is a ormula (x, y, z) that weakly represents in PA; namely, or all natural numbers a, b, c, we have

    () c=(a, b) i PA (sa(0), sb(0), sc(0)).

    Recall that every sentence derivable rom PA is true in. Also noticethat or any natural number e, se(0)= e. Tereore, ic=(a, b), we haveby () that PA (sa(0), sb(0), sc(0)). It ollows that (sa(0), sb(0), sc(0))istrue, and so [a, b, c] is true.

    On the other hand, suppose c(a, b). Ten, sinceis total, there issome d csuch that(a, b) = d, and again we have

    PA (sa(0), sb(0), sd(0)),and again

    [a, b, d] is true.

    Since c d, it ollows that

    [a, b, c] is alse.

    We have thereore shown that

  • 8/6/2019 Com Put Able Functions

    35/46

    C O M P U A B LE F U N C I O N S I N H E H E O R Y OF A L G O R I H M S

    275

    c=(a, b) i [a, b, c] is true,

    and sois denable.

    In order to give our example o a denable unction that is not computable, we develop an encoding scheme that will allow us to associateto each regular Java program an integer code, rom which we will beable to reconstruct the program. We make the assumption that thereare ewer than 500 distinct characters that ever occur in a regular Javaprogram. Tereore, each character can be represented as a bit string

    o length 9 (since 29 = 512). For the moment, let us assume that someassignment o characters to length9 bit strings has been made. Terst step o encoding a regular Java program is to minimize whitespaceby removing all line breaks and reducing multiple consecutive occurrences o a blank space to a single blank space, and then to translate allcharacters to length9 bit strings, and concatenating. Te result will bea long bit string. We prepend the character 1 to this long bit string sothat we can view this string as a binary number (the initial 1 takes care

    o the cases in which the long bit string happens to begin with one ormore 0s).

    Example. We show how to encode a simple regular Java program. Tereis nothing special about the way we have chosen to assign bit strings tocharacters. Codes have not been given or all possible characterswehave just given here enough codes to illustrate this example.

    BigInteger f(BigInteger[] n) {

    return n[0].add(n[0]);

    }

    Char Code Char Code Char Code

    a 000000001 d 000000010 e 000000011

    f 000000100 g 000000101 i 000000110

    n 000000111 r 000001000 t 000001001

    u 000001010 B 000001011 I 000001100

    . 000001101 { 000001110 } 000001111

    ( 000010000 ) 000010001 ; 000010010

    space 000010011 [ 000010100 ] 000010101

  • 8/6/2019 Com Put Able Functions

    36/46

    C O N S C I O U S N E S S - B A S E D E D U CA I O N A N D C O M P U E R S C I E N C E

    276

    Char Code Char Code Char Code

    0 000010110

    Te ollowing bit string (including the prepended 1) represents theregular Java program above:

    1000001011 000000110 000000101 000001100 000000111 000001001 000000011

    000000101 000000011 000001000 000010011 000000100 000010000 000001011

    000000110 000000101 000001100 000000111 000001001 000000011 000000101

    000000011 000001000 000010100 000010101 000010011 000000111 000010001000001110 000001000 000000011 000001001 000001010 000001000 000000111

    000010011 000000111 000010100 000010110 000010101 000001101 000000001000000010 000000010 000010000 000000111 000010100 000010110 000010101

    000010001 000010010 000001111.

    We shall call the bit string code or a regular Java program P theGdel number o P, and denote it #P. Notice that the code table can beused to reconstruct P rom #P. Another thing to notice is that, eventhough the Java program we have given in the example is quite short,the bit string is rather long. Tis suggests that most (binary) integers

    will not be codes or any Java program. However, it is not hard to seethat one could write a regular Java program IsGodel that accepts aninteger (by convention, this means a BigInteger type) and outputs 1i the binary equivalent o the integer is a Gdel number, or 0 i not.Such a program would have to embed the reconstructed Java methodinto a test class and attempt to compile; it would veriy that that themethod had an appropriate return value and an input argument o typeBigInteger[].

    Since all the G

    del numbers o regular Java programs are integers,they can be listed in an ordered sequence:

    g0

  • 8/6/2019 Com Put Able Functions

    37/46

    C O M P U A B LE F U N C I O N S I N H E H E O R Y OF A L G O R I H M S

    277

    lar Java program Gen which, given any integer e, generates the codeor program P

    e. Te program works like this: It examines the natural

    numbers 0, 1, 2, . . . one by one, in order, seeking Gdel numbers (itwill make use o IsGodel). Each time it nds a Gdel number, it addsa tally to an initially empty list. When the number o tallies nallybecomes e, this means that the program has located the Gdel numberg

    e. It will then reconstruct the program P

    eromg

    e(we mentioned above

    how this can be done). We will say that the number e is the index orthe Java program P

    e.

    Now observe that, by the conventions we have adopted, every regu

    lar Java program computes, in one way or another, a unction N N,another unction N2 N, another unction N3 N, etc. Althoughwe may create such a program with a unction N N in mind, nonetheless, the other types o unctions are implicitly dened as well. Asan example, consider the code given above or computing the unction: N N given by(n) = 2n. But i we pass in a 2element array ointegers, the program will still return the result o adding the 0th arrayelement to itsel.

    In other words, the program computes the unction g: N N

    Ndened byg(m, n) = m + m. With these points in mind, we will denotethe unction Nn N computed byP

    eby

    e(n). Te superscript will be

    omitted when the number o arguments o the unction is clear romthe context. Our earlier discussion shows that the nargument computable unction

    e(n) can be computed rom e: First compute P

    erom e;

    then or anynary argument (a1, . . ., a

    n), run P

    eon these arguments and

    output the result. We will say that eis the index oe(n).

    Summarizing the points above, we have the ollowing (see Rogers,1988, or Keisler & Robbins, 1996):

    Enumeration Teorem.

    1. Every regular Java program Phas a Gdel number #P, which is abinary integer (sometimes identied with its base 10 equivalent).

    2. Tere is a regular Java program IsGodel that accepts one naturalnumber or input, and returns 1 i that number is a Gdel num

    ber, 0 otherwise.

  • 8/6/2019 Com Put Able Functions

    38/46

    C O N S C I O U S N E S S - B A S E D E D U CA I O N A N D C O M P U E R S C I E N C E

    278

    3. Te regular Java programs can be eectively arranged in asequence; that is, we can write the regular Java programs in asequence P0, P1, . . ., Pe, . . . so that one can, with a regular Javaprogram, generate the Java code or program P

    erom the integer

    e.4. For each n 1, each o the nargument computable unctions

    0

    (n), 1(n) , . . .,

    e(n) , . . . can be computed rom its index by a

    regular Java program.

    Example: Te Halting Problem. We dene a unction H(x, y):

    N2

    N as ollows:

    H(e, n) =1 if program P

    ehalts on input n

    0 otherwise

    Te unction Htells whether a given program will halt on a given input.His a welldened unction and we may conclude, intuitively at least,that His denable. We will show more ormally later that it is indeed

    denable in

    . We show here, however, that there is no algorithm thatcomputes the values oH. We will use the Diagonalization Teorem toestablish this result.

    First, we create a Java program A that does the ollowing: On anyinput other than 1, the program outputs the number 1. On input 1, Agoes into an innite loop. For this example, we denote by the 1argument unction computed byA. is the partial unction N N thatis undened at 1, but has constant value 1 or all other input values.Notice that does not have a xed point. Let (x,y) = H(y, x). By theDiagonalization Teorem, the unctiong= is not representedbythat is, or each e, there is an n such thatg(n) (n, e) = H(e, n).

    Notice that and

    are computable.Now let us suppose that His computable. It ollows that bothandgare also computable. Let P

    ebe a program that computesg. We arrive

  • 8/6/2019 Com Put Able Functions

    39/46

    C O M P U A B LE F U N C I O N S I N H E H E O R Y OF A L G O R I H M S

    279

    at an absurdity in trying to determine the value o H(e, e). Tere aretwo possibilities: either H(e, e) = 1 or H(e, e) = 0. We consider eachseparately.

    IH(e, e) = 1, then by denition oH, Pe

    must halt on input e. Butby denition o the program P

    e, because H(e, e) = 1, P

    emust go into an

    innite loop on input e, and thereore does not halt on input e.IH(e, e) = 0, then by denition oH, P

    edoes not halt on input e.

    However, by the denition oPe, since H(e, e) 1, P

    emust halt on input

    e.Either way, the conclusion is absurd. Tis demonstrates that the

    assumption that His computable must be alse.Notice that the reasoning given above doesnt go through i we do

    not assume His computable. When we make this assumption, we cannd a program index e (the index or g) that leads to a paradox. Butwithout this assumption, no such paradoxical earises. Tereore, as aunction, H is entirely legitimate; the only issue is that its behavior isnot computable.

    Te denition oH given above suggests another unction that is

    both computable and extremely useul. Let us dene the partial unction U(x, y) by

    U(e, n) =

    e(n) ifx is in the domain of

    e

    otherwise

    We have already discussed an algorithm or computing U: By part (4)o the Enumeration Teorem, there is a program which, on input e, n,outputs the value that is returned rom P

    ewhen running on input n, i

    Pe halts on input n; otherwise, it does not halt. Uis called the universalunction or 1-argument unctions. Tere are similar universal unctionsor nargument unctions, or everyn.

    Using U, we can show more ormally that the halting unction Hisdenable in: Since Uis computable, it is also denable by a ormula(x,y, z). One can now show that His denable inby the ollowingormula (x,y, u):

    (x,y, u) : (z(x,y, z) u = 1) (z(x,y, z) u = 0).

    Te ormula says that iU(x, y) has a value z, then the value computed byH(x, y) will be 1, whereas iU(x, y) is undened, then the

  • 8/6/2019 Com Put Able Functions

    40/46

    C O N S C I O U S N E S S - B A S E D E D U CA I O N A N D C O M P U E R S C I E N C E

    280

    value computed byH(x,y) will be 0. Tis correctly species H, and oneproves airly easily that

    c= H(a, b) i [a, b, c].

    Te Complexity o AlgorithmsOnce we know that a unction : Nk N is computable, we can ask,Can the input/output behavior obe captured by an efcient algorithm? Earlier, we considered two algorithms that implemented theunction gcd and observed that one o them was considerably more efcient than the other. What is it that causes one algorithm to run asterthan another? Te basic measure o algorithm efciency is the relationship between the size o the input and the number o steps requiredto arrive at the output. Since dierent inputs o size n may require adierent number o steps, depending on the particulars o the input,we are most oten concerned with the perormance in the worst case.

    Defnition. Te worstcase complexity o an algorithmAis a unctionw : N N dened as ollows: For each n, w(n) denotes the maximum

    number o steps perormed byAin computing (and returning) outputwhen the size o the input is n. In other words, w(n) equals the numbero steps required to process an input o size n in the worst case.

    A amiliar example can be ound among sorting algorithms. Westart with a list o comparable objects (say, integers) and we ask ouralgorithm to produce a sorted list. Te algorithms sorting speed maydepend on the initial arrangement o integers. For instance, or many

    sorting algorithms, i the initial list is already sorted, the output will bereturned more quickly than i the initial list is ordered in some otherway, say in reverse order or randomly.

    In practice, it has been ound that algorithms with a worstcase complexity that is not bounded by a polynomial, or indeed by a unction othe orm cnk or some constants c, k, run too slowly to be useul, unlessinputs are guaranteed to be o small size. In particular, i the onlyknown algorithms or a unction have a running time that is exponential in the size o the input, implementation o the unction is viewed

    as ineasible. (See Cormen, 2001, or a ull treatment o these topics.)

  • 8/6/2019 Com Put Able Functions

    41/46

    C O M P U A B LE F U N C I O N S I N H E H E O R Y OF A L G O R I H M S

    281

    Defnition. An algorithm is polynomial-boundedi there is a polynomialp(n) such that or any input o size n, the algorithm returns outputin ewer than p(n) steps. Te class o polynomialbounded algorithmsis denoted P.

    In this course, we will ocus on polynomialbounded algorithms,and develop analytical tools or improving their efciency and investigating their degree o complexity. As a secondary topic, we will take alook at some unctions whose only known algorithms have exponentialcomplexity. Tere is a vast collection o such algorithms. Perhaps sur

    prisingly, some o these are known to be more intractable than others.Functions that admit no easible algorithm sometimes do have a tractable eature that can be exploited.

    Usually, the algorithms we study will be concerned with producing asolution to a problemproducing a sorted list, nding a shortest paththrough some data structure, optimizing a cost. ypically, then, onethinks o the class Pas representing the class o allproblems that admita polynomialbounded solution. Many o the hard problems, which

    do not belong to P, are known to have a special eature that makes themmore tractable: i a solution to the problem is given, the number o stepsrequired to check that the solution is correctis polynomial bounded. Suchproblems are called nondeterministically polynomial bounded. Te class oall such algorithms is denotedNP.

    It should be apparent that every problem in Palso belongs to NP;however the converse inclusion is not known to be true. As we havesaid, the only known algorithms or many o the problems in NPareexponentially slow, but this does not eliminate the possibility that oneday someone will discover a polynomialbounded algorithm that solvesthe problem. It is widely believed, however, that the classes PandNPare dierent. One striking eature o the class NP is the existence oNPcomplete problemsthese are problems with the remarkable property that i a polynomialbounded algorithm or the problem is everound, there will automatically be polynomialbounded algorithms orall problems in NP! We will discuss this remarkable phenomenon atthe end o the course.

    We close this section o the paper with a short list o some wellknownNPcomplete problems.

  • 8/6/2019 Com Put Able Functions

    42/46

    C O N S C I O U S N E S S - B A S E D E D U CA I O N A N D C O M P U E R S C I E N C E

    282

    Subset Sum.Te inputs are positive integers C, m1, . . .,m

    k. Te prob

    lem is: Among subsets o {m1, . . . , m

    k} having sum at most C, what is

    the largest subset sum?

    CNF-Satisfability. Consider the ollowing language. We have a listo boolean symbols p, q, r, . . . . We understand these to be variablesthat can be assigned a value o either true or alse. We have the usualconnectives and (), or (), and not (). (For this discussion, we omitthe connective implies.) A boolean combination o boolean symbolsis obtained by applying the ollowing rules:

    1. any boolean symbol is a boolean combination;

    2. iAis a boolean combination, so is A ;

    3. iAand B are boolean combinations, so areAB andAB.

    We are interested in determining the truth value o a boolean combination, given an assignment o truth values to the boolean symbols.For instance, i we make the assignment

    p = true, q= alse,

    what is the truth value o pq? Sincep is true, p is alse, and since qis also alse, we conclude that the whole statement is alse.

    Te problem we want to solve is this: Given a boolean combination,is there a truth assignment or the boolean symbols or which the boolean combination evaluates to true?

    o make the problem more tractable, theorists observed early on that

    any boolean combination is equivalent to (i.e. has the same truth values as) a boolean combination in conjunctive normal orm. A booleancombination is in conjunctive normal orm i it consists o one or moreBoolean combinations connected by ands, like this:

    ABCD . . . .

    Each o these component boolean combinations contains no and connective, and must be in the ollowing orm:

    XYZ . . . .

  • 8/6/2019 Com Put Able Functions

    43/46

    C O M P U A B LE F U N C I O N S I N H E H E O R Y OF A L G O R I H M S

    283

    Each o the components in this latter boolean combination is either aboolean symbol or the negation o a boolean symbol.

    Here is an example o a boolean combination in conjunctive normalorm:

    (pq r) (s pt) (ps).

    Finally, then, the CNFSatisability Problem is the ollowing: Teinput is a set o boolean symbols and a CNF boolean combination. Teproblem is to nd a truth assignment or the boolean symbols or whichthe CNF boolean combination evaluates to true (or the algorithm out

    puts alse i no such assignment exists).

    Knapsack. Suppose we have a knapsack o capacityC(a positive integer) and n objects with sizes s

    1, . . . , s

    nand prots p

    1, . . . , p

    n(all o

    which are positive integers). Te problem is to nd the largest totalprot o any subset o the object or which the sum o the sizes doesnot exceed C.

    raveling Salesman Problem. Suppose we have n cities. Find theshortest path that one can ollow which passes through each city onceand only once.

    ConclusionWe have shown in this article how the class o unctions that are actually used or purposes o developing sotware and that rest at the hearto a highly creative and rapidly developing industry represent a merespeck in a much vaster wholeness consisting o all numbertheoretic

    unctions. Tis act mirrors the dynamics o the unoldment o creationitsel, as described in Maharishi Vedic Science: Te innite dynamismand creativity at the basis o the sequential unoldment o maniestexistence arises in the collapse o the unbounded silent aspect o wholeness to a point. In computer science, the unbounded value o wholeness corresponds to the class o all possible numbertheoretic unctions,whereas the point corresponds to the extremely meager and narrowlydened class o polynomialtime computable unctions.

    In examining the stages o collapse rom all unctions to the polynomialtimebounded computable unctions, we have also observedanother theme o unoldment that parallels the dynamics o pure con

  • 8/6/2019 Com Put Able Functions

    44/46

    C O N S C I O U S N E S S - B A S E D E D U CA I O N A N D C O M P U E R S C I E N C E

    284

    sciousness: Just as wholeness moves rom the state o Samhita, uniedconsciousness or one, to the state o two, existence and intelligence,to the state o three as Rishi, Devata, Chhandas, rom which all possible transormations o Samhita sequentially unold as creation, solikewise does the togetherness o all unctions move to the class odenable unctions which display the duality o existence (each unction exists as a set o ordered pairs) and intelligence (each denableunctions behavior is captured in a ormula), to the class o computable unctions, which are characterized by being speciable via nitelength derivations (and in the calculus ormulation, all derivations

    arise rom threeundamental closed terms, which in turn arise rom theselinteracting dynamics o the single Xcombinator). Moreover, thisclass o computable unctions lies at the basis o all modernday creativeapplications o computability.

    Tese parallels serve to bring into ocus the hidden dynamics o pureintelligence in the workings o the modernday theory o computation.It suggests that much o the great power and creativity that inuses thebusiness o building sotware is due to a undamental collapse within

    the very structure o mathematical transormation, rom an unboundedeld o all possibilities to a point valuethe tiny packet o algorithmsthat contains only the most efciently computable types o transormations, which lend themselves to application in the concrete world osotware development.

    ReerencesBarendregt, H.P. (1984). Te lambda calculus: Its syntax and semantics.

    Amsterdam: NorthHolland.Bell, J., Machover, M. (1977). A course in mathematical logic. Amsterdam: NorthHolland.

    Church, A. (1936). An unsolvable problem o elementary number theory.American Journal o Mathematics, 58, 345363.

    Cormen, .H. (2001). Introduction to algorithms. Cambridge, Massachusetts: Te MI Press.

    Enderton, H.B. (1972).A mathematical introduction to logic. Caliornia:Academic Press.

    Jech, . (1978). Set theory. New York: Academic Press.

  • 8/6/2019 Com Put Able Functions

    45/46

    C O M P U A B LE F U N C I O N S I N H E H E O R Y OF A L G O R I H M S

    285

    Keisler, H.J., Robbins, J. (1996). Mathematical logic and computability.New York: McGrawHill.

    Maharishi Mahesh Yogi (1969). On the Bhagavad-Gita: A new transla-tion and commentary, chapters 16, with Sanskrit text. Baltimore:Penguin Press.

    Maharishi Mahesh Yogi (1972). Te Science o Creative Intelligence:Knowledge and experience(Lessons 133) [Syllabus o videotapedcourse]. Los Angeles: Maharishi International University Press.

    Maharishi Mahesh Yogi (1992). Constitution o the universe: Te sourceo all order and harmony displayed throughout the universe. Faireld,

    Iowa: Maharishi International University Press.Maharishi Mahesh Yogi (1996). Maharishi's Absolute Teory o Deence.

    Holland: Maharishi Vedic University Press.Nader, . (1995). Human physiology: Expression o Veda and the Vedic lit-

    erature. Vlodrop, Te Netherlands: Maharishi Vedic UniversityPress.

    Pierce, B.C. (1991). Basic category theory or computer scientists. Cambridge, Massachusetts: Te MI Press.

    Rogers Jr., H. (1988). Teory o recursive unctions and efective com-putability. Cambridge Massachusetts: Te MI Press. (First published 1967, Academic Press.)

    Yanosky, N.S. (2003). A universal approach to selreerential paradoxes, incompleteness, and xed points. Te Bulletin o SymbolicLogic, 9(3), 362386.

  • 8/6/2019 Com Put Able Functions

    46/46

    C O N S C I O U S N E S S - B A S E D E D U CA I O N A N D C O M P U E R S C I E N C E