Nuprl Definition : HofstadterM

This is an example of definition that uses  mutual recursion
(see HofstadterF).

The two functions are called "married" functions by Douglas Hofstadter.

We prove joint well-formedness lemma Error :Hofstadter_wf
from which we then derive the typing lemma Error :HofstadterM_wf.

We use explict callbyvalue in the definition because otherwise the
computation is extremely inefficient.
Even with callbyvalue, the recursion is inefficent without memoization.

The memoized version is given in Error :HofstadterL (see Error :HofstadterL_wf)⋅

HofstadterM(n) ==
  if (n) < (1)  then 0  else eval in eval HofstadterM(p) in eval HofstadterF(m) in   f



Definitions occuring in Statement :  HofstadterF: HofstadterF(n) callbyvalue: callbyvalue less: if (a) < (b)  then c  else d subtract: m natural_number: $n
Definitions occuring in definition :  less: if (a) < (b)  then c  else d natural_number: $n callbyvalue: callbyvalue HofstadterF: HofstadterF(n) subtract: m
FDL editor aliases :  HofstadterM

Latex:
HofstadterM(n)  ==
    if  (n)  <  (1)
          then  0
          else  eval  p  =  n  -  1  in
                    eval  m  =  HofstadterM(p)  in
                    eval  f  =  HofstadterF(m)  in
                        n  -  f



Date html generated: 2018_05_21-PM-09_07_02
Last ObjectModification: 2018_01_13-PM-01_54_31

Theory : general


Home Index