Why undoing things is hard:
I am inherently, a very lazy person. And I cannot stand being bored. This has, of course, resulted in me being really into coding and automation.
And when I begin my journey as a mathematician, thirteen-year-old me was really sure I'd figure out how to write just the right algorithm that would automatically solve all math problems. But this is actually really hard.
Now, naively, it's really easy. You just write a code that takes the axioms of a system, your premises, and then just tries to apply every single possible rule to generate more statements until it either proves or disproves what you want.
But two problems arise: halting problem, and the fact that it takes a really, really, long time to get anything done.
Maybe you can mitigate the halting problem somehow or something, you could additionally try adding proving the statement is unprovable as a stopping condition, but maybe it is unprovable that it's unprovable, or maybe it's unprovable that it's ... I'll stop.
But that doesn't much matter if it's going to take a twenty years to prove a single statement. At that point, you might as well prove it yourself.
Let's say we have a proof checker, it starts with a proof and then tells you that it is valid. If we run this algorithm backwards, then... shouldn't we get a valid proof?
This, quite obviously, doesn't work. Or at least, doesn't work easily. (The fact that it doesn't work is tied with P vs NP) It's less obvious when you're trying to do this without realising you're trying to do this. But for some reason it took me a while to realise why that wasn't 'easier'.
The reason it doesn't work finally clicked with a Rubik's cube. If I run an algorithm like CFOP on a cube to solve it, then I can run CFOP backwards to get the original position, starting from a solved cube? Nope. Mathematically, the best I can do is reduce it to 1/12th of the states, leaving some 43 quintillion (43,252,003,274,489,856,000) possible starting points which all end up in the same ending point. Running an algorithm backward isn't just some trivial thing. It's a whole millennium problem, you get a million dollars if you figure all of this out, since running verification backwards is what all of P vs NP is.
At some point after that, I learned there's a whole field of math devoted to this.
And today, I watched a YouTube video about someone trying to run Conway's Game of Life backwards. It's not easy to find even one possible backwards step. And I remembered this.
So, to everyone here, I suggest learning about SAT solvers! They're cool! That's a whole branch of math devoted to doing this.
















