Well-definedness of uncomputable functions.












1












$begingroup$


I have been reading about Rayo's function and uncomputable functions in general, and have gotten very confused. There is apparently concern over the well-definedness of Rayo's function, but I never had any doubt that things such as the busy beaver function were well-defined. Then I read this article where it was stated that two numbers described by uncomputable functions like BB might be incomparable within a certain system of axioms - it could be independent of the system which one was larger. This was taken to mean that one might not be larger than the other at all. I took this to suggest that even a simple uncomputable function like BB(n) could be undefined in a sense.



However, it seems to me that, given two numbers, it should always be possible to decide which is bigger. It also seems like the busy beaver function should be well-defined since it is making a precise statement about machines which could theoretically be implemented in the physical world.



So, are uncomputable functions well-defined in general? What characteristics would make one well-defined or not, and is there something I'm conceptually missing in the way that I am approaching these questions? Thank you for helping me understand!










share|cite|improve this question











$endgroup$








  • 2




    $begingroup$
    Assuming you are not an ultra-finitist, the busy beaver function is definitely well-defined mathematically. Well-definedness as an integer-valued function is not the same as being uncomputable
    $endgroup$
    – Brevan Ellefsen
    Jan 17 at 4:30










  • $begingroup$
    You are able to always tell which number I should bigger, assuming a universe with nigh infinite data storage and assuming you have a lot of spare time (and I mean a lot)...
    $endgroup$
    – L. McDonald
    Jan 19 at 9:25










  • $begingroup$
    @L.McDonald This depends on what you mean by 'given two numbers'. If the meaning is 'given two properties that each provably define a unique number', then it is not necessarily effectively decidable which number is bigger.
    $endgroup$
    – spaceisdarkgreen
    Jan 19 at 19:20


















1












$begingroup$


I have been reading about Rayo's function and uncomputable functions in general, and have gotten very confused. There is apparently concern over the well-definedness of Rayo's function, but I never had any doubt that things such as the busy beaver function were well-defined. Then I read this article where it was stated that two numbers described by uncomputable functions like BB might be incomparable within a certain system of axioms - it could be independent of the system which one was larger. This was taken to mean that one might not be larger than the other at all. I took this to suggest that even a simple uncomputable function like BB(n) could be undefined in a sense.



However, it seems to me that, given two numbers, it should always be possible to decide which is bigger. It also seems like the busy beaver function should be well-defined since it is making a precise statement about machines which could theoretically be implemented in the physical world.



So, are uncomputable functions well-defined in general? What characteristics would make one well-defined or not, and is there something I'm conceptually missing in the way that I am approaching these questions? Thank you for helping me understand!










share|cite|improve this question











$endgroup$








  • 2




    $begingroup$
    Assuming you are not an ultra-finitist, the busy beaver function is definitely well-defined mathematically. Well-definedness as an integer-valued function is not the same as being uncomputable
    $endgroup$
    – Brevan Ellefsen
    Jan 17 at 4:30










  • $begingroup$
    You are able to always tell which number I should bigger, assuming a universe with nigh infinite data storage and assuming you have a lot of spare time (and I mean a lot)...
    $endgroup$
    – L. McDonald
    Jan 19 at 9:25










  • $begingroup$
    @L.McDonald This depends on what you mean by 'given two numbers'. If the meaning is 'given two properties that each provably define a unique number', then it is not necessarily effectively decidable which number is bigger.
    $endgroup$
    – spaceisdarkgreen
    Jan 19 at 19:20
















1












1








1





$begingroup$


I have been reading about Rayo's function and uncomputable functions in general, and have gotten very confused. There is apparently concern over the well-definedness of Rayo's function, but I never had any doubt that things such as the busy beaver function were well-defined. Then I read this article where it was stated that two numbers described by uncomputable functions like BB might be incomparable within a certain system of axioms - it could be independent of the system which one was larger. This was taken to mean that one might not be larger than the other at all. I took this to suggest that even a simple uncomputable function like BB(n) could be undefined in a sense.



However, it seems to me that, given two numbers, it should always be possible to decide which is bigger. It also seems like the busy beaver function should be well-defined since it is making a precise statement about machines which could theoretically be implemented in the physical world.



So, are uncomputable functions well-defined in general? What characteristics would make one well-defined or not, and is there something I'm conceptually missing in the way that I am approaching these questions? Thank you for helping me understand!










share|cite|improve this question











$endgroup$




I have been reading about Rayo's function and uncomputable functions in general, and have gotten very confused. There is apparently concern over the well-definedness of Rayo's function, but I never had any doubt that things such as the busy beaver function were well-defined. Then I read this article where it was stated that two numbers described by uncomputable functions like BB might be incomparable within a certain system of axioms - it could be independent of the system which one was larger. This was taken to mean that one might not be larger than the other at all. I took this to suggest that even a simple uncomputable function like BB(n) could be undefined in a sense.



However, it seems to me that, given two numbers, it should always be possible to decide which is bigger. It also seems like the busy beaver function should be well-defined since it is making a precise statement about machines which could theoretically be implemented in the physical world.



So, are uncomputable functions well-defined in general? What characteristics would make one well-defined or not, and is there something I'm conceptually missing in the way that I am approaching these questions? Thank you for helping me understand!







set-theory computability foundations






share|cite|improve this question















share|cite|improve this question













share|cite|improve this question




share|cite|improve this question








edited Jan 17 at 13:59







CyborgOctopus

















asked Jan 17 at 4:00









CyborgOctopusCyborgOctopus

856




856








  • 2




    $begingroup$
    Assuming you are not an ultra-finitist, the busy beaver function is definitely well-defined mathematically. Well-definedness as an integer-valued function is not the same as being uncomputable
    $endgroup$
    – Brevan Ellefsen
    Jan 17 at 4:30










  • $begingroup$
    You are able to always tell which number I should bigger, assuming a universe with nigh infinite data storage and assuming you have a lot of spare time (and I mean a lot)...
    $endgroup$
    – L. McDonald
    Jan 19 at 9:25










  • $begingroup$
    @L.McDonald This depends on what you mean by 'given two numbers'. If the meaning is 'given two properties that each provably define a unique number', then it is not necessarily effectively decidable which number is bigger.
    $endgroup$
    – spaceisdarkgreen
    Jan 19 at 19:20
















  • 2




    $begingroup$
    Assuming you are not an ultra-finitist, the busy beaver function is definitely well-defined mathematically. Well-definedness as an integer-valued function is not the same as being uncomputable
    $endgroup$
    – Brevan Ellefsen
    Jan 17 at 4:30










  • $begingroup$
    You are able to always tell which number I should bigger, assuming a universe with nigh infinite data storage and assuming you have a lot of spare time (and I mean a lot)...
    $endgroup$
    – L. McDonald
    Jan 19 at 9:25










  • $begingroup$
    @L.McDonald This depends on what you mean by 'given two numbers'. If the meaning is 'given two properties that each provably define a unique number', then it is not necessarily effectively decidable which number is bigger.
    $endgroup$
    – spaceisdarkgreen
    Jan 19 at 19:20










2




2




$begingroup$
Assuming you are not an ultra-finitist, the busy beaver function is definitely well-defined mathematically. Well-definedness as an integer-valued function is not the same as being uncomputable
$endgroup$
– Brevan Ellefsen
Jan 17 at 4:30




$begingroup$
Assuming you are not an ultra-finitist, the busy beaver function is definitely well-defined mathematically. Well-definedness as an integer-valued function is not the same as being uncomputable
$endgroup$
– Brevan Ellefsen
Jan 17 at 4:30












$begingroup$
You are able to always tell which number I should bigger, assuming a universe with nigh infinite data storage and assuming you have a lot of spare time (and I mean a lot)...
$endgroup$
– L. McDonald
Jan 19 at 9:25




$begingroup$
You are able to always tell which number I should bigger, assuming a universe with nigh infinite data storage and assuming you have a lot of spare time (and I mean a lot)...
$endgroup$
– L. McDonald
Jan 19 at 9:25












$begingroup$
@L.McDonald This depends on what you mean by 'given two numbers'. If the meaning is 'given two properties that each provably define a unique number', then it is not necessarily effectively decidable which number is bigger.
$endgroup$
– spaceisdarkgreen
Jan 19 at 19:20






$begingroup$
@L.McDonald This depends on what you mean by 'given two numbers'. If the meaning is 'given two properties that each provably define a unique number', then it is not necessarily effectively decidable which number is bigger.
$endgroup$
– spaceisdarkgreen
Jan 19 at 19:20












2 Answers
2






active

oldest

votes


















-1












$begingroup$

The busy-beaver-function is well-defined because every halting turing machine can only write a finite number of ones on the tape, hence there must be a champion, and $bb(n)$ is the number of ones this champion writes down.



But the busy-beaver-function is not computable because we cannot determine which turing machines halt and which do not. This (and only this) prevents us from determining the busy-beaver-champion and therefore determining $bb(n)$ in general.



"Computable" means that there is an algorithm being able for every n to either determine $f(n)$ or determine that $f(n)$ is not defined.



"Well-defined" means that there is a description guaranteeing that for every $n$ there is either only one possible value $f(n)$ or that the function is not defined. (It is not necessary that this $f(n)$ can actually be determined , if $f(n)$ is defined.)






share|cite|improve this answer











$endgroup$













  • $begingroup$
    "Computable" means that there is an algorithm being able to determine f(n) for every n. Not really, partial functions are allowed.
    $endgroup$
    – Wuestenfux
    Jan 20 at 12:20








  • 1




    $begingroup$
    @Peter I think using computable for a program halting on all inputs is fine. I think it is quite commonly used. For example, the following are equivalent: (a1) computable (a2) recursive (a3) total computable (a4) total recursive. Similarly, the following are also equivalent: (b1) partial computable (b2) partial recursive. Though there are probably some sources that use "computable" to mean "partial computable" and, quite honestly, I think that kind of usage is very confusing (and I very rarely complain about terminology). There are only a couple of exceptions to it (mentioned in next comment).
    $endgroup$
    – SSequence
    Jan 26 at 20:04






  • 1




    $begingroup$
    Sometimes when people say "collection of computable functions", it can mean "collection of partial computable functions". Otherwise I think the normal association of "computable" with "total computable" is fine. Of course it can be a bit context dependent occasionally so using "total computable" for emphasis can be useful at times. Also, "algorithm" is generally associated with a function halting on all inputs. One thing though, the general convention for a partial computable function is to take it as "undefined" only on those input values for which it does not halt. (cont.)
    $endgroup$
    – SSequence
    Jan 26 at 20:08






  • 1




    $begingroup$
    So "normally", when a total comptuable function (also called algorithm normally.... unless the context makes it clear that something else is meant) computes a function, the function is presumed to be defined for all values in its domain. Finally note that "partial computable functions" are, by convention, meant to include all functions that may or may not halt on all the inputs. In other words, the collection of partial computable functions contains collection of total compuable functions as strict subset.
    $endgroup$
    – SSequence
    Jan 26 at 20:10








  • 1




    $begingroup$
    In summary, all of this can be slightly context dependent of course, but generally speaking what I said before holds. For example, if you have a partial function from $mathbb{N}$ to $mathbb{N}$ and that function happens to be (partial) computable, then by default convention usually when you write a program for it then you would set it up so it doesn't halt on inputs where the function is partial. In practice (say a real world program), if the locations/inputs where the said function is partial are trivial/easy, you might set-up a different convention (but you would have to describe that).
    $endgroup$
    – SSequence
    Jan 26 at 20:33





















-1












$begingroup$

There are two things to separate. First, the definition of functions. A function $f:Arightarrow B$ is a relation $fsubseteq Atimes B$ which is both left-total and right-unique.



Second, the computability of a function. Here one generally considers (partial) functions $f:{Bbb N}_0^krightarrow{Bbb N}_0$. The question is whether there is an algorithm computing the function. By the thesis of Church, the computable functions are exactly those that are partially recursive.



Note that the number of computable functions is denumerable as they correspond to the set of C-programs and the set of C-programs (as words over the keyboard alphabet) is denumerable.






share|cite|improve this answer











$endgroup$













    Your Answer





    StackExchange.ifUsing("editor", function () {
    return StackExchange.using("mathjaxEditing", function () {
    StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
    StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
    });
    });
    }, "mathjax-editing");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "69"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    noCode: true, onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3076575%2fwell-definedness-of-uncomputable-functions%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    -1












    $begingroup$

    The busy-beaver-function is well-defined because every halting turing machine can only write a finite number of ones on the tape, hence there must be a champion, and $bb(n)$ is the number of ones this champion writes down.



    But the busy-beaver-function is not computable because we cannot determine which turing machines halt and which do not. This (and only this) prevents us from determining the busy-beaver-champion and therefore determining $bb(n)$ in general.



    "Computable" means that there is an algorithm being able for every n to either determine $f(n)$ or determine that $f(n)$ is not defined.



    "Well-defined" means that there is a description guaranteeing that for every $n$ there is either only one possible value $f(n)$ or that the function is not defined. (It is not necessary that this $f(n)$ can actually be determined , if $f(n)$ is defined.)






    share|cite|improve this answer











    $endgroup$













    • $begingroup$
      "Computable" means that there is an algorithm being able to determine f(n) for every n. Not really, partial functions are allowed.
      $endgroup$
      – Wuestenfux
      Jan 20 at 12:20








    • 1




      $begingroup$
      @Peter I think using computable for a program halting on all inputs is fine. I think it is quite commonly used. For example, the following are equivalent: (a1) computable (a2) recursive (a3) total computable (a4) total recursive. Similarly, the following are also equivalent: (b1) partial computable (b2) partial recursive. Though there are probably some sources that use "computable" to mean "partial computable" and, quite honestly, I think that kind of usage is very confusing (and I very rarely complain about terminology). There are only a couple of exceptions to it (mentioned in next comment).
      $endgroup$
      – SSequence
      Jan 26 at 20:04






    • 1




      $begingroup$
      Sometimes when people say "collection of computable functions", it can mean "collection of partial computable functions". Otherwise I think the normal association of "computable" with "total computable" is fine. Of course it can be a bit context dependent occasionally so using "total computable" for emphasis can be useful at times. Also, "algorithm" is generally associated with a function halting on all inputs. One thing though, the general convention for a partial computable function is to take it as "undefined" only on those input values for which it does not halt. (cont.)
      $endgroup$
      – SSequence
      Jan 26 at 20:08






    • 1




      $begingroup$
      So "normally", when a total comptuable function (also called algorithm normally.... unless the context makes it clear that something else is meant) computes a function, the function is presumed to be defined for all values in its domain. Finally note that "partial computable functions" are, by convention, meant to include all functions that may or may not halt on all the inputs. In other words, the collection of partial computable functions contains collection of total compuable functions as strict subset.
      $endgroup$
      – SSequence
      Jan 26 at 20:10








    • 1




      $begingroup$
      In summary, all of this can be slightly context dependent of course, but generally speaking what I said before holds. For example, if you have a partial function from $mathbb{N}$ to $mathbb{N}$ and that function happens to be (partial) computable, then by default convention usually when you write a program for it then you would set it up so it doesn't halt on inputs where the function is partial. In practice (say a real world program), if the locations/inputs where the said function is partial are trivial/easy, you might set-up a different convention (but you would have to describe that).
      $endgroup$
      – SSequence
      Jan 26 at 20:33


















    -1












    $begingroup$

    The busy-beaver-function is well-defined because every halting turing machine can only write a finite number of ones on the tape, hence there must be a champion, and $bb(n)$ is the number of ones this champion writes down.



    But the busy-beaver-function is not computable because we cannot determine which turing machines halt and which do not. This (and only this) prevents us from determining the busy-beaver-champion and therefore determining $bb(n)$ in general.



    "Computable" means that there is an algorithm being able for every n to either determine $f(n)$ or determine that $f(n)$ is not defined.



    "Well-defined" means that there is a description guaranteeing that for every $n$ there is either only one possible value $f(n)$ or that the function is not defined. (It is not necessary that this $f(n)$ can actually be determined , if $f(n)$ is defined.)






    share|cite|improve this answer











    $endgroup$













    • $begingroup$
      "Computable" means that there is an algorithm being able to determine f(n) for every n. Not really, partial functions are allowed.
      $endgroup$
      – Wuestenfux
      Jan 20 at 12:20








    • 1




      $begingroup$
      @Peter I think using computable for a program halting on all inputs is fine. I think it is quite commonly used. For example, the following are equivalent: (a1) computable (a2) recursive (a3) total computable (a4) total recursive. Similarly, the following are also equivalent: (b1) partial computable (b2) partial recursive. Though there are probably some sources that use "computable" to mean "partial computable" and, quite honestly, I think that kind of usage is very confusing (and I very rarely complain about terminology). There are only a couple of exceptions to it (mentioned in next comment).
      $endgroup$
      – SSequence
      Jan 26 at 20:04






    • 1




      $begingroup$
      Sometimes when people say "collection of computable functions", it can mean "collection of partial computable functions". Otherwise I think the normal association of "computable" with "total computable" is fine. Of course it can be a bit context dependent occasionally so using "total computable" for emphasis can be useful at times. Also, "algorithm" is generally associated with a function halting on all inputs. One thing though, the general convention for a partial computable function is to take it as "undefined" only on those input values for which it does not halt. (cont.)
      $endgroup$
      – SSequence
      Jan 26 at 20:08






    • 1




      $begingroup$
      So "normally", when a total comptuable function (also called algorithm normally.... unless the context makes it clear that something else is meant) computes a function, the function is presumed to be defined for all values in its domain. Finally note that "partial computable functions" are, by convention, meant to include all functions that may or may not halt on all the inputs. In other words, the collection of partial computable functions contains collection of total compuable functions as strict subset.
      $endgroup$
      – SSequence
      Jan 26 at 20:10








    • 1




      $begingroup$
      In summary, all of this can be slightly context dependent of course, but generally speaking what I said before holds. For example, if you have a partial function from $mathbb{N}$ to $mathbb{N}$ and that function happens to be (partial) computable, then by default convention usually when you write a program for it then you would set it up so it doesn't halt on inputs where the function is partial. In practice (say a real world program), if the locations/inputs where the said function is partial are trivial/easy, you might set-up a different convention (but you would have to describe that).
      $endgroup$
      – SSequence
      Jan 26 at 20:33
















    -1












    -1








    -1





    $begingroup$

    The busy-beaver-function is well-defined because every halting turing machine can only write a finite number of ones on the tape, hence there must be a champion, and $bb(n)$ is the number of ones this champion writes down.



    But the busy-beaver-function is not computable because we cannot determine which turing machines halt and which do not. This (and only this) prevents us from determining the busy-beaver-champion and therefore determining $bb(n)$ in general.



    "Computable" means that there is an algorithm being able for every n to either determine $f(n)$ or determine that $f(n)$ is not defined.



    "Well-defined" means that there is a description guaranteeing that for every $n$ there is either only one possible value $f(n)$ or that the function is not defined. (It is not necessary that this $f(n)$ can actually be determined , if $f(n)$ is defined.)






    share|cite|improve this answer











    $endgroup$



    The busy-beaver-function is well-defined because every halting turing machine can only write a finite number of ones on the tape, hence there must be a champion, and $bb(n)$ is the number of ones this champion writes down.



    But the busy-beaver-function is not computable because we cannot determine which turing machines halt and which do not. This (and only this) prevents us from determining the busy-beaver-champion and therefore determining $bb(n)$ in general.



    "Computable" means that there is an algorithm being able for every n to either determine $f(n)$ or determine that $f(n)$ is not defined.



    "Well-defined" means that there is a description guaranteeing that for every $n$ there is either only one possible value $f(n)$ or that the function is not defined. (It is not necessary that this $f(n)$ can actually be determined , if $f(n)$ is defined.)







    share|cite|improve this answer














    share|cite|improve this answer



    share|cite|improve this answer








    edited Jan 20 at 13:07

























    answered Jan 19 at 13:54









    PeterPeter

    48k1139133




    48k1139133












    • $begingroup$
      "Computable" means that there is an algorithm being able to determine f(n) for every n. Not really, partial functions are allowed.
      $endgroup$
      – Wuestenfux
      Jan 20 at 12:20








    • 1




      $begingroup$
      @Peter I think using computable for a program halting on all inputs is fine. I think it is quite commonly used. For example, the following are equivalent: (a1) computable (a2) recursive (a3) total computable (a4) total recursive. Similarly, the following are also equivalent: (b1) partial computable (b2) partial recursive. Though there are probably some sources that use "computable" to mean "partial computable" and, quite honestly, I think that kind of usage is very confusing (and I very rarely complain about terminology). There are only a couple of exceptions to it (mentioned in next comment).
      $endgroup$
      – SSequence
      Jan 26 at 20:04






    • 1




      $begingroup$
      Sometimes when people say "collection of computable functions", it can mean "collection of partial computable functions". Otherwise I think the normal association of "computable" with "total computable" is fine. Of course it can be a bit context dependent occasionally so using "total computable" for emphasis can be useful at times. Also, "algorithm" is generally associated with a function halting on all inputs. One thing though, the general convention for a partial computable function is to take it as "undefined" only on those input values for which it does not halt. (cont.)
      $endgroup$
      – SSequence
      Jan 26 at 20:08






    • 1




      $begingroup$
      So "normally", when a total comptuable function (also called algorithm normally.... unless the context makes it clear that something else is meant) computes a function, the function is presumed to be defined for all values in its domain. Finally note that "partial computable functions" are, by convention, meant to include all functions that may or may not halt on all the inputs. In other words, the collection of partial computable functions contains collection of total compuable functions as strict subset.
      $endgroup$
      – SSequence
      Jan 26 at 20:10








    • 1




      $begingroup$
      In summary, all of this can be slightly context dependent of course, but generally speaking what I said before holds. For example, if you have a partial function from $mathbb{N}$ to $mathbb{N}$ and that function happens to be (partial) computable, then by default convention usually when you write a program for it then you would set it up so it doesn't halt on inputs where the function is partial. In practice (say a real world program), if the locations/inputs where the said function is partial are trivial/easy, you might set-up a different convention (but you would have to describe that).
      $endgroup$
      – SSequence
      Jan 26 at 20:33




















    • $begingroup$
      "Computable" means that there is an algorithm being able to determine f(n) for every n. Not really, partial functions are allowed.
      $endgroup$
      – Wuestenfux
      Jan 20 at 12:20








    • 1




      $begingroup$
      @Peter I think using computable for a program halting on all inputs is fine. I think it is quite commonly used. For example, the following are equivalent: (a1) computable (a2) recursive (a3) total computable (a4) total recursive. Similarly, the following are also equivalent: (b1) partial computable (b2) partial recursive. Though there are probably some sources that use "computable" to mean "partial computable" and, quite honestly, I think that kind of usage is very confusing (and I very rarely complain about terminology). There are only a couple of exceptions to it (mentioned in next comment).
      $endgroup$
      – SSequence
      Jan 26 at 20:04






    • 1




      $begingroup$
      Sometimes when people say "collection of computable functions", it can mean "collection of partial computable functions". Otherwise I think the normal association of "computable" with "total computable" is fine. Of course it can be a bit context dependent occasionally so using "total computable" for emphasis can be useful at times. Also, "algorithm" is generally associated with a function halting on all inputs. One thing though, the general convention for a partial computable function is to take it as "undefined" only on those input values for which it does not halt. (cont.)
      $endgroup$
      – SSequence
      Jan 26 at 20:08






    • 1




      $begingroup$
      So "normally", when a total comptuable function (also called algorithm normally.... unless the context makes it clear that something else is meant) computes a function, the function is presumed to be defined for all values in its domain. Finally note that "partial computable functions" are, by convention, meant to include all functions that may or may not halt on all the inputs. In other words, the collection of partial computable functions contains collection of total compuable functions as strict subset.
      $endgroup$
      – SSequence
      Jan 26 at 20:10








    • 1




      $begingroup$
      In summary, all of this can be slightly context dependent of course, but generally speaking what I said before holds. For example, if you have a partial function from $mathbb{N}$ to $mathbb{N}$ and that function happens to be (partial) computable, then by default convention usually when you write a program for it then you would set it up so it doesn't halt on inputs where the function is partial. In practice (say a real world program), if the locations/inputs where the said function is partial are trivial/easy, you might set-up a different convention (but you would have to describe that).
      $endgroup$
      – SSequence
      Jan 26 at 20:33


















    $begingroup$
    "Computable" means that there is an algorithm being able to determine f(n) for every n. Not really, partial functions are allowed.
    $endgroup$
    – Wuestenfux
    Jan 20 at 12:20






    $begingroup$
    "Computable" means that there is an algorithm being able to determine f(n) for every n. Not really, partial functions are allowed.
    $endgroup$
    – Wuestenfux
    Jan 20 at 12:20






    1




    1




    $begingroup$
    @Peter I think using computable for a program halting on all inputs is fine. I think it is quite commonly used. For example, the following are equivalent: (a1) computable (a2) recursive (a3) total computable (a4) total recursive. Similarly, the following are also equivalent: (b1) partial computable (b2) partial recursive. Though there are probably some sources that use "computable" to mean "partial computable" and, quite honestly, I think that kind of usage is very confusing (and I very rarely complain about terminology). There are only a couple of exceptions to it (mentioned in next comment).
    $endgroup$
    – SSequence
    Jan 26 at 20:04




    $begingroup$
    @Peter I think using computable for a program halting on all inputs is fine. I think it is quite commonly used. For example, the following are equivalent: (a1) computable (a2) recursive (a3) total computable (a4) total recursive. Similarly, the following are also equivalent: (b1) partial computable (b2) partial recursive. Though there are probably some sources that use "computable" to mean "partial computable" and, quite honestly, I think that kind of usage is very confusing (and I very rarely complain about terminology). There are only a couple of exceptions to it (mentioned in next comment).
    $endgroup$
    – SSequence
    Jan 26 at 20:04




    1




    1




    $begingroup$
    Sometimes when people say "collection of computable functions", it can mean "collection of partial computable functions". Otherwise I think the normal association of "computable" with "total computable" is fine. Of course it can be a bit context dependent occasionally so using "total computable" for emphasis can be useful at times. Also, "algorithm" is generally associated with a function halting on all inputs. One thing though, the general convention for a partial computable function is to take it as "undefined" only on those input values for which it does not halt. (cont.)
    $endgroup$
    – SSequence
    Jan 26 at 20:08




    $begingroup$
    Sometimes when people say "collection of computable functions", it can mean "collection of partial computable functions". Otherwise I think the normal association of "computable" with "total computable" is fine. Of course it can be a bit context dependent occasionally so using "total computable" for emphasis can be useful at times. Also, "algorithm" is generally associated with a function halting on all inputs. One thing though, the general convention for a partial computable function is to take it as "undefined" only on those input values for which it does not halt. (cont.)
    $endgroup$
    – SSequence
    Jan 26 at 20:08




    1




    1




    $begingroup$
    So "normally", when a total comptuable function (also called algorithm normally.... unless the context makes it clear that something else is meant) computes a function, the function is presumed to be defined for all values in its domain. Finally note that "partial computable functions" are, by convention, meant to include all functions that may or may not halt on all the inputs. In other words, the collection of partial computable functions contains collection of total compuable functions as strict subset.
    $endgroup$
    – SSequence
    Jan 26 at 20:10






    $begingroup$
    So "normally", when a total comptuable function (also called algorithm normally.... unless the context makes it clear that something else is meant) computes a function, the function is presumed to be defined for all values in its domain. Finally note that "partial computable functions" are, by convention, meant to include all functions that may or may not halt on all the inputs. In other words, the collection of partial computable functions contains collection of total compuable functions as strict subset.
    $endgroup$
    – SSequence
    Jan 26 at 20:10






    1




    1




    $begingroup$
    In summary, all of this can be slightly context dependent of course, but generally speaking what I said before holds. For example, if you have a partial function from $mathbb{N}$ to $mathbb{N}$ and that function happens to be (partial) computable, then by default convention usually when you write a program for it then you would set it up so it doesn't halt on inputs where the function is partial. In practice (say a real world program), if the locations/inputs where the said function is partial are trivial/easy, you might set-up a different convention (but you would have to describe that).
    $endgroup$
    – SSequence
    Jan 26 at 20:33






    $begingroup$
    In summary, all of this can be slightly context dependent of course, but generally speaking what I said before holds. For example, if you have a partial function from $mathbb{N}$ to $mathbb{N}$ and that function happens to be (partial) computable, then by default convention usually when you write a program for it then you would set it up so it doesn't halt on inputs where the function is partial. In practice (say a real world program), if the locations/inputs where the said function is partial are trivial/easy, you might set-up a different convention (but you would have to describe that).
    $endgroup$
    – SSequence
    Jan 26 at 20:33













    -1












    $begingroup$

    There are two things to separate. First, the definition of functions. A function $f:Arightarrow B$ is a relation $fsubseteq Atimes B$ which is both left-total and right-unique.



    Second, the computability of a function. Here one generally considers (partial) functions $f:{Bbb N}_0^krightarrow{Bbb N}_0$. The question is whether there is an algorithm computing the function. By the thesis of Church, the computable functions are exactly those that are partially recursive.



    Note that the number of computable functions is denumerable as they correspond to the set of C-programs and the set of C-programs (as words over the keyboard alphabet) is denumerable.






    share|cite|improve this answer











    $endgroup$


















      -1












      $begingroup$

      There are two things to separate. First, the definition of functions. A function $f:Arightarrow B$ is a relation $fsubseteq Atimes B$ which is both left-total and right-unique.



      Second, the computability of a function. Here one generally considers (partial) functions $f:{Bbb N}_0^krightarrow{Bbb N}_0$. The question is whether there is an algorithm computing the function. By the thesis of Church, the computable functions are exactly those that are partially recursive.



      Note that the number of computable functions is denumerable as they correspond to the set of C-programs and the set of C-programs (as words over the keyboard alphabet) is denumerable.






      share|cite|improve this answer











      $endgroup$
















        -1












        -1








        -1





        $begingroup$

        There are two things to separate. First, the definition of functions. A function $f:Arightarrow B$ is a relation $fsubseteq Atimes B$ which is both left-total and right-unique.



        Second, the computability of a function. Here one generally considers (partial) functions $f:{Bbb N}_0^krightarrow{Bbb N}_0$. The question is whether there is an algorithm computing the function. By the thesis of Church, the computable functions are exactly those that are partially recursive.



        Note that the number of computable functions is denumerable as they correspond to the set of C-programs and the set of C-programs (as words over the keyboard alphabet) is denumerable.






        share|cite|improve this answer











        $endgroup$



        There are two things to separate. First, the definition of functions. A function $f:Arightarrow B$ is a relation $fsubseteq Atimes B$ which is both left-total and right-unique.



        Second, the computability of a function. Here one generally considers (partial) functions $f:{Bbb N}_0^krightarrow{Bbb N}_0$. The question is whether there is an algorithm computing the function. By the thesis of Church, the computable functions are exactly those that are partially recursive.



        Note that the number of computable functions is denumerable as they correspond to the set of C-programs and the set of C-programs (as words over the keyboard alphabet) is denumerable.







        share|cite|improve this answer














        share|cite|improve this answer



        share|cite|improve this answer








        edited Jan 21 at 9:34

























        answered Jan 20 at 12:41









        WuestenfuxWuestenfux

        4,7311513




        4,7311513






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Mathematics Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            Use MathJax to format equations. MathJax reference.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3076575%2fwell-definedness-of-uncomputable-functions%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            MongoDB - Not Authorized To Execute Command

            in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith

            How to fix TextFormField cause rebuild widget in Flutter