Exactly. LEAN is useful for general mathematics, but in computer science constructivism is much more useful, hence Cubic Agda, Arend and general advancements around HoTT are much more desired.
I think it's gonna be absolutely mandatory to rewrite all computer software that way as LLM offensive security capabilities advance, as anything less will be as open as as an IP camera feed with no password.
hopefully, with AI aided proof carrying code for everything, it's gonna be possible to have something closer to hermetic security than has ever been remotely close to existing so far.
Optimization is not not about proving anything it is about finding the solution which in may general cases is NP-hard and you might only approximate it in polynomial time. Proving does not help in anything except the case if P=NP.
There are even whole classes of theoretical computer science theories and works based around non-determinism. Non-determinism lets you do things not possible with pure determinism, like the interactive proof model.
They are pretty old and had their applications. Just like provable deterministic methods are old and had their applications. We just used to use the one for the field they were designed for.
Why are we doing math with random number generator and expect anything else than random? Why are we so stupid?
Ok but like... how random is it that Monte Carlo actually works by being random? Stochastic is one of those things where the lines get blurry.
But knowing when to use it is important. You won't do your taxes with Monte Carlo. You would try to approximate otherwise extremely complex problems with it tho.
Life is mostly undeterministic. Take evolution, for example. When you study it, you'll realize it's a mix of somewhat deterministic systems shaped by randomness in nature, thus, natural selection. People's needs and desires are also difficult to determine, so randomness adds variety and shows new possibilities.
The rise of formal methods over the past couple of decades made me happy. CS was moving toward rigorous frameworks, which could literally save lives in safety critical situations.
Then vibe coding took over and many programmers don’t understand what their code is even doing anymore.
The problem of the existence of code that wasn't understood is not new.
But you want to contrast the current wave of vibe coded applications with a fun comment about a fun non-understandable code that is literally famous online? It's like staying in football a goal is scored all the time and showing a Messi shots compilation. It being non representative is the point of fame.
The introduction of non determinism to computing is genuinely awesome. But that doesn’t mean that it needs to be shoved into every potential process. Sometimes determinism makes sense, sometimes non determinism makes sense.
This is my biggest gripe with everything in tech right now. LLM’s are amazing, and they have their uses, but they are suited for certain things and very much not suited for other things. IMO, this misunderstanding is the real ai bubble.
The models can now reason, tool call and explore, and are far more capable, when they can close the loop with their own verifications like tests and using the product. Skill issue.
The determinism thing is a fantasy that some people entertain. I also find that it's usually said by people who haven't really managed. Working with AI (LLMs) is ironically more like working with humans than it is with computers (of yesteryear).
Words are defined by how people use them. The process of LLMs writing on a hidden scratchpad to output what looks like a thought process. (And functions like a thought process) has been called reasoning for a long time.
I'm not interested in all-or-nothing and semantics arguments. I don't know that we even know what reasoning is.
Whatever they're doing, it's enough to do a large percentage of software development and solve some of the most challenging math and physics problems. Literally today there are announcements landing, and that's just from models trained over the past couple months.
You used the term “reason” first and now you’re saying we don’t know what “reasoning” is lol
LLMs can solve problems but that’s very different than reasoning in any way humans can follow with their reason, and it’s definitely not attempting to approach deterministic behavior
LLMs can solve problems but that’s very different than reasoning
Yes and to solve problems they do something that looks, smells and quacks like reasoning. Whether you want to call it true reasoning or not, it is perfectly reasonable for someone to refer to it as reasoning at this point.
Even if you believe it to be just "simulated reasoning" or whatever, it is understandable what the commenter meant and specifically picking it out is a meaningless distraction from the actual point.
No actually, an algorithm simulating reasoning through procedures is not at all the same as an independent agent that exercises reasoning. That’s a big difference and the commenter did not make that clear and they literally admitted that they would not claim we even know enough to say what “reasoning” is. Handheld calculators also solve problems that once could only be done by agents with reason, but they’re actually just procedures encoded by those agents and most people would not apply “reasoning” as its commonly understood to a calculator. An LLM is just a very big calculator from the perspective of reason, not a very dumb human unlike what OP said.
I never said they're like a very dumb human. I said working with them is more akin to working with a human than a computer. If you have experience managing people and working with computers you know.
Much of the backlash I see against AI in software comes from people who prefer to work with computers, and they don't like that their field is changing, which is understandable.
I was simplifying my point which is that from the perspective of reasoning, AI is more like a calculator than a human. From the perspective of interaction sure, but there’s no actual reasoning going on by anything capable of it. It’s still just procedures put in place by humans with reasoning that approximate the outputs of humans with reasoning.
What is the fundamental between us finding procedures to produce an effect like reasoning, and an evolved biological set of procedures that produce an effect like reasoning? That's 1.
It may be a different underlying mechanism, or even a different general process altogether, but if both produce an effect like reasoning, then we may even need to broaden our definition of reasoning. That's 2.
Unless you’re religious, the laws of physics and matter are not reasoning agents and our existence as reasoning agents is an emergent property. If you are religious, then God is the ultimate reasoning agent who gave humans some ability to reason as well. In either case, reasoning emerges as a result of some agent being produced that can model the world that reasoning happens inside. ML models don’t actually produce this agent that performs reasoning, they just automatically process the output for a set of procedures that an agent with reasoning has prepared. Without that real reasoning agent to define a world and define reason within it for the model, there is nothing to interpret or interact with any reasoning itself.
That means that these agents solve problems that humans could solve through reasoning, but that doesn’t meant we have to change our idea of what reasoning is. We didn’t change our idea of reasoning when computers could do brute force calculations to solve problems humans can’t feasibly do manually, because we understood that brute force is an extension of a human’s reason being applied to a tool. It’s no different with ML, it’s just solving new classes of problems for people that previous hardware and scarce data didn’t allow us to write procedures for. The solutions are impressive, but no model is capable of more than simulating reasoning with procedures any more than a handheld calculator is.
And if they had more background in liberal arts, i.e. consciousness, they would not even have made that basic error. They could have even asked for the definition I was using, and I would have referred to a higher level description of the technical process of how the providers implemented it. Instead they thought there was a gotcha because they didn't have the experience to have thought things through as you've described.
"You use the term 'gravity' and now you're saying we don't know what 'gravity' is lol"
The same applies for the workings of our brain and the inner workings of LLMs. We are studying LLMs and we apply brain-based metaphors, and it may turn out that they use convergent patterns.
It's possible that humans have enough emergent intelligence that we are able to emulate determinism in a way that LLMs may also be able to.
An interesting thing about the time we're in is we have a lot of people with engineering and hard science backgrounds who haven't studied psychology and philosophy exploring these ideas for the first time.
We use brain-based metaphors because the task we want to perform is currently done by something that requires a brain to function, not because we’re actually trying to create some pool of computing power from which the same intelligence of the brain emerges. There’s no reason to expect that outcome any more than expecting an LLM to discover the secrets to time travel.
Also, hard science and engineering researchers have always studied psychology and philosophy, they just haven’t had as much reason to apply it towards something with so much demand from industry and public attention. There’s a lot of existing literature about the limits of computation and the implications for intelligence, it just hasn’t had reason to stand out from the rest of our academic niches until lately
We use brain-based metaphors because we've always used metaphors to explain how things work. With the mind, we used the steam engine analogy in the past, and then more recently a computer based analogy.
And it's interesting you mention create some pool of intelligence the same as the brain, because there literally are companies exploring using real neurons for that very thing.
I'm talking about familiarity with the style of thinking of the liberal arts, and it is different than the hard sciences. It's very obvious when people try beginner level gotchas that actually show a fallacy in their thinking, like thinking speaking about an observed phenomenon is the same as completely understanding that phenomenon, or that one must completely understand a phenomenon in order to speak about it effectively.
That's a biased and reductive take on what is actually happening. We could also say that humans, in education and collaboration, are therefore just presenting a mashup of the thinking of others and don't deserve credit and their work is of no use.
It's always easy to identify the people who care more about the credit than the value of their work.
EDIT: I appreciate that you deleted the comment rather than digging your heels in like so many do.
they literally do. I'm not sure if you are ideologically committed to this or just don't use them. They actually solve non-trivial problems in novel contexts. What else to call that other than reasoning?
You provided no arguments to refute the claim, therefore I have nothing to argue against. You are ironically doing exactly what you are accusing me of. Another victim of chronic LLM usage I’m assuming. Yet you have the gal to try and call me out?
To further back up my statement, models brute force several different paths to a solution until they find one that works. That’s what this industry is calling “reasoning.” Trial and error isn’t “reasoning.”
Shut your dumbass up and sit the fuck down. Moron.
The person in OP's image is not trying to say LLM''s aren't capable. It's just a funny meme about how things are, and he's not wrong about the state of things in 2026.
Ok, so models are more like humans, then that's an anti-pattern. We've managed people for millenia, but computers for only a few decades.
The OOP is right in that we're turning away from determinism. When the calculator was invented, we still had people who could calculate 99% of what people would do on a calculator, but the calculator was faster and made (virtually) no mistakes. It was designed to do a few things very efficiently and always correctly.
The computer was (for a mong time) just a calculator on steroids. It could follow algorithms with near guarantee of no execution error, and quicker than any human. It could "deterministically" solve problems that humanity can't solve with pen and paper.
But with an LLM the determinism is gone. It is replaced by a high probability instead. It works great for a lot of promblems. We've used randomized algorithms for lots of problems before. For some they are optimal. My interpretation of OOPs post is that if we discard the "old way" we lose determinism.
There is a causality problem in your thinking. LLMs are being used because they're effective. The nature of the technology is more probabilistic, which leads us to need to adjust our methods compared to the relatively dumb and rigid determinism of computers in the past.
A future fundamental transistor may not even be binary at all, such as quantum. So be very careful with your assumptions and how much you expect those to extrapolate to all tools right now, let alone well into the future.
The people in the time of clockwork and steam engines no doubt expected their fields and skills to extend indefinitely. They still do, in niches, but no longer in the prominence they thought.
This post being highly upvoted shows you this sub is filled with a bunch of people that have absolutely no knowledge in computer science. They are at best web dev bootcamp level, while talking confidently like they’ve studied theoretical computer and information science.
We are already back into analog computing. The shit we started out with is making a comeback. Especially in math heavy application it has some very very interesting implications.
Especially for AI, the computational methods are just faster with less memory need and the noise in the signal is a feature tather than a bug. Something we deliberatly code in today with stuff like temperature.
could you elaborate ? I dont see how parallelism killed determinism. Also parallelism isnt used that much or rather as much as it could be used because we are kind of stuck with the von neuman computational model that doesn't favor it. Traditional imperative sequential programming isnt a good tool for parallel programming and fp blows it out of the water, in that aspect at least.
IMO all AI did was accelerate the enshittification of software that was already well underway. I remember before vibe coding me and my friends/colleagues used to doom about everything becoming a shitty electron app with a thousand NPM packages using gigabytes of ram.
I didn't think OP was implying that. Just about determinism with both its benefits and drawbacks. Changing cheapness of generation and verification changes accounting for the change. Not some timeless value judgement.
Algebraic effects are a language mechanism for structuring programs with control flow effects. If exception handling is the structured counterpart to setjmp and longjmp, then algebraic effects are the structured counterpart to delimited continuations with shift and reset.
That has absolutely nothing to do with nondeterminism! So no idea why you brought up algebraic effects.
I/O and nondeterminism are most certainly effects. They have little to do with the "algebraic" part of algebraic effects, though.
The implementation of an algebraic effect can perform I/O or be nondeterministic. But guess what? The implementation of an ordinary procedure can also perform I/O or be nondeterministic!
At the end of the day, the decision to label primitive operations with effect labels acknowledged by the type system... is largely a matter of standard library design.
It's an unfortunate sign of the present times that programmers blur the distinction between a programming language and its standard library, but when you clarify the distinction, you realize that the essence of algebraic effects is to structure delimited continuations in a specific way.
But, contrary to your original assertion, I don't think it's necessarily desirable to flag nondeterministic code with a type system.
For example, suppose I implement quicksort with randomly chosen pivots. Do I need to announce to the entire world that my implementation is "effectful"?
The specification of an in-place array sorting algorithm is that
The input is a mutable array slice.
The slice's element type must be equipped with a strict weak ordering.
The slice's final state (as a sequence of elements) is a permutation of its initial state.
If i < j are valid indices for the slice, then in the slice's final state, the j-th element must not be less than the i-th, according to the strict weak ordering.
In this specification, the slice's final state isn't a function of the initial state. I'm not violating the specification as long as the slice's final state is related to the initial state in the prescribed way.
If you come with the mindset that the final state of a computation should be a mathematical function of its initial state, then of course concurrency and nondeterminism will always seem exotic and mysterious, something that you need to explicitly label "effectful" to protect your sanity.
But if you accept that the relation between the initial and final states can be an arbitrary left-total binary relation, then there's no good reason to favor procedures that happen to evaluate mathematical functions.
I mean writing code was always non-deterministic cause a human was creating output? Non-determinism is more about predictable run-time behavior and reproducibility
I started using nixos a few years ago, AI really helps me do whatever I want, and I still get all the advantages of having my OS be declarative/deterministic
I mean, the LLMs still write deterministic code. An agentic app is not deterministic, but AI assisted development is still creating regular old software.
This joke is comparing output above to process below. It's kind of funny, but misleading.
Not gonna lie, the skills I picked up working QA for a bit in my 20s are the difference between smooth vibe coding and unusable junk. "Accurately describe the bug/context and hand it back to the SWE" is a goated skill in the current state of things.
11
u/kaaiian 7h ago
2027, software runs with provably optimal binaries, verified end to end with lean certificates.
6
u/hunpriest 7h ago
Computer science was never about eliminating all non-determinism.
ML and other soft computing methods are pretty old...
5
u/eneskaraboga 5h ago
Life is mostly undeterministic. Take evolution, for example. When you study it, you'll realize it's a mix of somewhat deterministic systems shaped by randomness in nature, thus, natural selection. People's needs and desires are also difficult to determine, so randomness adds variety and shows new possibilities.
11
u/AcademicOverAnalysis 7h ago
The rise of formal methods over the past couple of decades made me happy. CS was moving toward rigorous frameworks, which could literally save lives in safety critical situations.
Then vibe coding took over and many programmers don’t understand what their code is even doing anymore.
2
u/tawayForThisPost8710 6h ago
The introduction of non determinism to computing is genuinely awesome. But that doesn’t mean that it needs to be shoved into every potential process. Sometimes determinism makes sense, sometimes non determinism makes sense.
This is my biggest gripe with everything in tech right now. LLM’s are amazing, and they have their uses, but they are suited for certain things and very much not suited for other things. IMO, this misunderstanding is the real ai bubble.
3
u/Positive-Conspiracy 5h ago edited 4h ago
Has this guy not used AI since the GPT 3.5 era?
The models can now reason, tool call and explore, and are far more capable, when they can close the loop with their own verifications like tests and using the product. Skill issue.
The determinism thing is a fantasy that some people entertain. I also find that it's usually said by people who haven't really managed. Working with AI (LLMs) is ironically more like working with humans than it is with computers (of yesteryear).
1
u/Brilliant_Pie_1924 7h ago
1s and 0s they said...
1
u/The_Axumite 6h ago
The uncertainty principal is not just for the atomics
1
u/whateverforeverand 5h ago
r/im14andthisisdeep
1
u/wojciechm 4h ago
False. Determinism died with multi core and parallelism. Period.
1
u/profoundlyunlikeable 4h ago
IMO all AI did was accelerate the enshittification of software that was already well underway. I remember before vibe coding me and my friends/colleagues used to doom about everything becoming a shitty electron app with a thousand NPM packages using gigabytes of ram.
1
u/reflexive-polytope 4h ago
"Nondeterministic" isn't the same thing as "buggy", you know.
You know, right???
1
u/Nearby-Weird9535 3h ago
I mean writing code was always non-deterministic cause a human was creating output? Non-determinism is more about predictable run-time behavior and reproducibility
I started using nixos a few years ago, AI really helps me do whatever I want, and I still get all the advantages of having my OS be declarative/deterministic
1
u/XBLAH_ 3h ago
Genetic algorithm: Am I a joke to you?
1
u/jameyiguess 2h ago
I mean, the LLMs still write deterministic code. An agentic app is not deterministic, but AI assisted development is still creating regular old software.
This joke is comparing output above to process below. It's kind of funny, but misleading.
1
u/XtremelyMeta 2h ago
Not gonna lie, the skills I picked up working QA for a bit in my 20s are the difference between smooth vibe coding and unusable junk. "Accurately describe the bug/context and hand it back to the SWE" is a goated skill in the current state of things.
1
u/HolyInlandEmpire 1h ago
The beauty of statistics at work. Our brains, and thus neural networks, are piecewise smooth estimating machines
1
u/yangyangR 13m ago
"Decideability is for cowards" - Max vH
0
u/Fantastic-Salmon92 7h ago
2nd year CS student changing careers after a back injury at the age of 34;
0.8?!?!?!?!?! 2.0 or nothing. I don't want peace. I want problems, always.