menu Home chevron_right
SCIENCE

Are There Problems That Computers Can’t Solve?

Tom Scott | October 2, 2025



All about Hilbert’s Decision Problem, Turing’s solution, and a machine that vanishes in a puff of logic. MORE BASICS: https://www.youtube.com/playlist?list=PL96C35uN7xGLLeET0dOWaKHkAlPsrkcha

Written with Sean Elliott https://twitter.com/SeanMElliott/
Graphics by William Marler https://wmad.co.uk
Audio mix by Graham Haerther https://haerther.net/

🟥 MORE FROM TOM: https://www.tomscott.com/
(you can find contact details and social links there too)

📰 WEEKLY NEWSLETTER with good stuff from the rest of the internet: https://www.tomscott.com/newsletter/
❓ LATERAL, free weekly podcast: https://lateralcast.com/ https://youtube.com/lateralcast/
➕ TOM SCOTT PLUS: https://youtube.com/tomscottplus
👥 THE TECHNICAL DIFFICULTIES: https://youtube.com/techdif

Written by Tom Scott

Comments

This post currently has 30 comments.

  1. @FriedMonkey362

    October 2, 2025 at 5:27 pm

    I may ne missing something but when you feed a program into "halts" weather or not it halts depends on the input of said program

    Because a program can halt based on its input

    When you dont give said input also to halts its impossible to say if itll halt

    If you had a program

    If (input == "something")
    {
    while(true)
    {
    print("something rude");
    }
    }
    else
    {
    print("hello world");
    }

    This when you feed this program to halts it doesn't know the input and therefore cannot determine if something will halt

    If you made "halts" but also made it take the given input that would be something thats possible to create

    So when you feed "oposite" to "oposite" you must also provide the program that youd feed the "oposite" with and the input for that program as well

  2. @nagyandras8857

    October 2, 2025 at 5:27 pm

    That ain't no question . Computers can solve any problem , as long as we can properly ask them to do so. So the question is , can we describe every roblem properly ?
    And Tourings findings says no.

  3. @tosendeelemente7586

    October 2, 2025 at 5:27 pm

    I can solve this problem:

    Yes it will halt
    As every thing dose at some point the computer, humanity, the earth , the universe everything will halt it might restart but it will halt

  4. @obscureskeleton

    October 2, 2025 at 5:27 pm

    how did you explain the halting problem in like 3 minutes and make it more understandable and simple then that animation i keep seeing explaining the same thing in the slowest most convoluted way possible.

  5. @WatermelonEnthusiast9

    October 2, 2025 at 5:27 pm

    Okay so, the machine reads the code right? So when it's looking at the code, the machine should not be changing it's own answer, you did not feed it itself in some Ouroboros type fashion, you just fed it the code. The machine will look at the code, see that there is a point somewhere it will halt, output yes, and loop forever. There is no paradox. There is no reason for it to change it's answer because it was not fed itself, it was fed it's code.

    You can argue with me if it and it's code are different, I think that they are, you can argue if I'm being pedantic, I think it's an important distinction, but from what I can tell there is no paradox here.

    Also I know I spell Ouroboros wrong, I don't know how to spell it, it's some weird Greek word. My point still remains.

  6. @Pesti_Donat

    October 2, 2025 at 5:27 pm

    I dont think, this proof is true. What did I miss?

    If this proof were true, that would mean we can prove with the same logic:

    bool f( g : function ){
    return not g();
    }
    is also an uncomputable function (simply by asking what f(f) returns).

    Which makes no sense. If this were true, computability wouldn't have any practical meaning.

    So the proof in those videos does not say anything about the problem of determining if a program will halt, but about the problem of recursively feeding a program itself as a parameter.

    —————————————————–

    Side note, in case my pseudo code is not clear:

    The meaning of

    bool f( g : function ){
    return not g();
    }

    Is a program which needs a program as an input parameter. It runs the program, and returns with the negation of the result.

  7. @legendgames128

    October 2, 2025 at 5:27 pm

    If you think Alan Turing is wrong, prove him wrong! All it takes is ONE counter example! I'll be waiting =)

    bool decision_problem_solver(string program, string inputs[]) // written in C++, you could write this with Javascript, Python, or even on a Turing Machine, etc.
    {
    bool result;
    // put your code here to look at "program" and determine if, given "inputs[]", does "program" halt? "result" should be true if it does halt, and "result" should be false if it doesn't.
    return result;
    }

  8. @davidothus191

    October 2, 2025 at 5:27 pm

    The problem is that Turing was trying to constrain the answer to yes / no when the answer to this and many other problems is outside of that paradigm and requires a greater description to give proper clarity. Often, like in the case of this paradox, the answer is outside of the scope of a simple yes / no..

Comments are closed.




This area can contain widgets, menus, shortcodes and custom content. You can manage it from the Customizer, in the Second layer section.

 

 

 

  • play_circle_filled

    92.9 : The Torch

  • play_circle_filled

    AGGRO
    'Til Deaf Do Us Part...

  • play_circle_filled

    SLACK!
    The Music That Made Gen-X

  • play_circle_filled

    KUDZU
    The Northwoods' Alt-Country & Americana

  • play_circle_filled

    BOOZHOO
    Indigenous Radio

  • play_circle_filled

    THE FLOW
    The Northwoods' Hip Hop and R&B

play_arrow skip_previous skip_next volume_down
playlist_play