It’s endlessly fascinating to read the AI transcript of an expert who _really_ knows how to cut to the chase. It just shows how much you can potentially squeeze out of these models. I’m also surprised to see that even Terrence Tao seems to use it in a way that resembles, in progression, how I use llms in my area of expertise (emphasis on progression and usage patterns, not absolute skill, obv I don’t match that): short pointed questions that goes all in on the jargon and machinery of the field and steers the llm hard (eg no softballs). I’ve noticed that llms switch their tone and meet you basically more or less on your level.
Correctamundo. That's EXACTLY what I just wrote about. And how we'll create the next generation of people who know how to evaluate responses when we're creating a generation of people who are increasingly reliant on LLMs to do the work makes for a strange paradox.
It's so obvious to some and may never be considered by others.
If someone asks about AI I tell them step 1 is ask it how to do something you know all about. Step 2 is consider everything else you ask will be that inaccurate.
As a dev with three decades experience writing code, I use it for stuff I know all about all the time. And these days, the majority of the time it is more correct than I would've been without a few iterations of trial and error.
GP is saying that when you use it in a domain where you're familiar, you'll naturally spot bad or lazy approaches and heavily steer the LLM, so you should keep that in mind when using it in domains you aren't an expert in (and thus can't as easily spot those things). I'm not sure why the tone of your reply is so uncharitable.
>The skills to do so, however, are a function of someone who has experienced the friction and challenges over time that culminate in "good taste".
It's certainly sometimes true, but I don't think it's a general rule. Sometimes friction is just friction and sometimes you spend 1000 hours learning something that disappears and becomes obsolete or at least irrelevant to the goal.
Programmers used to need to know the instruction set of the CPU, assembly language and so on. Some still do but for most developers today that's not useful. Everything you know about 6800 assembly will not make your note-taking app any better.
I think we are in a state where AI tools so easily mimic what we used to do by hand that we think the friction is gone, but that's because we haven't raised the bar yet. One day we'll look at the Fable one-shot that's better than anything we ever made by hand ourselves and say "It could be even better".
And then the friction is back, just on a new level.
> Everything you know about 6800 assembly will not make your note-taking app any better.
It could. It could make a simple note-taking app not take gigabytes of memory and take visible delay on each click. Most people don't bother of course because simple note-taking app is not worth the effort. It's possible to do better, it's just often not practical.
I am not sure if I'm ignorant or have too much self esteem, but in cases where domain is not my expertise I try to cross challenge using different models to get less-biased and hopefully more correct insights.
I’m not trying to be snarky, but.. I wouldn’t try to upgrade an answer from a stranger you can’t fully trust to an expert answer you can trust by asking more strangers who have all only read the same books and use the same system for summarizing the books.
Similarly, sometimes I have to manually validate the output of an ai tool, analyzed over a large text I can’t practically read and understand, and best way I’ve found is to ask the tool (or another ai) to ‘show your work,’ ie make it help me make the determination by showing places in the text I have to read to follow its reasoning. We can never trust another ai directly to assess the validity of another ai.
This is some work that I want to see in education. How do you validate if something is true or not.
A lot of times that will take physical tests. Or in the case of math/logic, tests to validate each line or validated sources of previously proved theorems
The paradox is analogous to AI poisoning its own training data as more and more AI generated content is released on the Internet. Indeed, I see a hard terminus for both man and machine at some point.
Absolutely right. First gen models are trained on 'virgin' non-LLM output. Subsequent models are tainted by ingesting AI replies. Rinse and repeat, and all you end up with is AI copies of AI replies, and the noise will completely overtake the signal.
Great article… been worrying about this one quite a bit:
> If these tools demand expertise, yet the tools can actively circumvent the friction that cultivates expertise, then what is the path for one to become an expert so they can effectively use these tools?
I agree. I (15+ years of coding) feel like I'm 100x more productive now using LLMs to code.
But I don't think a beginner would have the same experience. The AI still makes A LOT of stupid mistakes and decisions, but I catch them early enough (sometimes while it's still showing it's reasoning steps), stop the prompt, guide it on the right path, rinse and repeat.
Sometimes I am lazy and give the AI a broader prompt, let it do its thing, and then I come back to see that it spent 90% of the time working on some part/feature/implementation that was not really needed and that it over-engineered the solution.
I rarely write any line of code know or manually change any code, I tell the AI how to do it and what to watch out for. Many times it catches some edge-cases before I even haven to think about them. I do still feel like both me and the AI could miss some edge-cases now, because I'm thinking less about the implementation and what problems can arise, but I feel like 90% of "gotchas" are already engrained in my planning after so many years of coding and problem solving.
More and more the skill of being able to ask the right question seems critical to me, and I don't know how one can do that without deeper and deeper domain expertise.
Asking the right questions has almost always been one of if not the most important skills. There are often an almost infinite list of possible approaches, but knowing the domain, you can get close to optimum very quickly. If you just rely on the LLM, it will give you the most common bog standard approach, including the usual bugs and usual quirks.
That is probably not going to be the important difference.
You can't use it for theoretical physics because you have no meaningful question and there is no result that you can do anything with.
In contrast you don't need to be a coder to understand if your to-do list for cats works: You have an idea of what you want. You know the rough shape of what an app is and what it can do. You can put it in front of your can and look at it go. Or not.
There are still some interesting pitfalls though. A friend of mine vibe coded a small browser based app to track something personal over a long time period. Eventually he plans to share the app with others. It worked, but I was curious where it stored the data and he didn't know.
It turned out it was using LocalStorage, which is not entirely unreasonable, but there are obvious drawbacks (e.g if you move the file it might become inaccessible, if you switch machines there's no convenient way to transfer the data, there are all kinds of ways to lose it, etc..).
In this case "how is this storing my data" is a fundamental question with plenty of implications for your app over its lifetime, but most non-computer people don't think to ask it at all. These days many users enter CS programs without knowing how to manage files and folders on their computer, because even that is often abstracted away.
Depends on what you are building. Yes, a todo app is easy. What would the physics version be? Probably ask ”what are the acceleration of a failing object?”
But if you are building some complex data science statistical model and you don’t have any domain knowledge you won’t even know what to ask for.
> I can't use it for theoretical physics because I can't evaluate the responses.
I think pretty much the opposite. I can ask it to explain to me in ways I understand it. Even drill down the simplest of equations. Since llms have infinite patience. All I need to learn anything is patience.
It's not just what they output, it's also what they omit. I've unfortunately seen this when doing research on medical issues, and it gives you a false sense of having an understanding. It never warned me to watch out for symptoms that weren't specifically discussed in the context, or that some symptoms could be a different underlying condition.
Math professors are remarkably good at answering math questions or solving ad hoc math puzzles correctly. Also at stepping back and asking, why are you trying to show this result, what do you think it has to do with the thing we are trying to prove. Much better at knowing when the student has gone off the path in some subtle way than the LLM (without a Prof Tao in the chat).
Professor Tao also put out some YouTubes of him working with an older LLM to do Lean proofs, and his intelligence matters - things where I would be stuck for hours trying to understand what was failing in the model proof were just instantly clear to him and fixed in thirty seconds.
And I am an ok coder (rather than a bad maths grad student), but the LLM will happily thrash around the edges of a problem with me with no clear convergence when I don’t have that clear insight and the problem is weirdly presented enough; I still find the trick to walk around the block and disengage and then return knowing exactly what to do (now prompting it to the right thing) to be a super power for getting what I want out of the coding system.
Yes, when you use a standard theoretical physics textbook / course sequence, it is 100% correct.
More broadly, LLMs or anything at all, needs a verifier. If the task can be automatically verified, great, then anyone can use them. If you can't automate the verification, then you need to be able to verify it using your knowledge. Knowledge required to verify is lower than the knowledge required to create in very few cases. This is why you still need a fully trained human verifier. We are yet to reorganise the overall "tasks" in the economy such that verification can be done with much lesser knowledge, for no reason other than that there was never demand for this until creation became automatic few years ago. It is possible and is slowly being done, there are many many startups working on automating verification in different fields and in many cases we will see fields reorganise themselves to be more amenable to automatic verification. Note that _effort_ required to verify is much lower than what is required to create, for almost anybody, and LLMs have economic use just due to that alone, albeit in the hands of a knowledgeable human.
I asked Opus 4.8 to critique my algebra notes (these are definitely not masters level- just undergrad second year). It hallucinated an error it claimed I made in the notes and then put in a correction I didn't need because what I had written was correct.
What I said in my notes was:
Notice that a cyclic group is a degenerate (in the sense of "smallest
non-trivial") case of a finitely generated group where the generating set is
a singleton.
It left-off the "non-trivial" and said that what I said was this was the smallest case of a finitely-generated group which is incorrect because it excludes the trivial group.
The point is I see the LLMs as a "smart friend"/colleague I can work with but I do think critically about what I get told and don't just take it as face value because it's not always correct for sure even in relatively basic cases like this.
Both fable and sol are confidently wrong all the time in their most cherished domain - software engineering - I can’t quote anything because they’re working on my employer’s code bases. They’re much less wrong than their predecessors and they’re also quite good at point out their mistakes, but they’re still wrong a lot.
they are wrong on the specific nuance of my codebase too, i am talking about learning something - i can still learn everything about software engineering talking to a bot.
One area that LLMs tend to do badly in still is sailing. I sail casually and I have friends who are instructors, basically all the LLMs we tried gave really unsafe advice for a particular manoeuvre. Claude was the notable exception getting it mostly right, but even so I wouldn't rely on it there.
This deduction is baseless, there is no reason to think an LLM will only hallucinate on complex topics. They still get the "number of es in seventeen" question wrong regularly. The kind of mistakes an LLM makes has no clear resemblance to the kind of mistakes a human makes, because they are not doing the same thing.
And for the harder maths you want something not just to explain the answer but to diagnose your conceptual error behind your questions. Asking the teacher after class or tutorial type systems work efficiently for a reason.
Indeed that’s the case but most of the programming problems are solved problems and unless you care how things are done someone with less/no knowledge can still make great use of programming to do what it needs to do.
Let’s not pretend you need to be programmer to use AI for programming like mathematicians need to solve math problems. Programming (most of the time)solves real problems rather than abstract constructs.
AI is already good enough to create the next “Facebook”(v1 and maybe v2 as well) without any real programmer. This makes the AI a big enabler and reduces the need for programmers vastly in the early stages of any business.
That being said as more online businesses will flourish these will require actual programmers after they get enough traction so the debate is still on if it will lead to massive layoffs in our industry.
That seems only partially true. I have no doubt it could crank out a UI like Facebook, but having it work for high volume is less well represented in the training data. Things that seems obvious to us, like sharding, using asynchronous messaging systems to provide more durability at the cost of instant consistency, traffic shedding, intelligent clients, conscious decisions on CAP properties in the light of user experience. etc., are not going to be requested by that non-technical founder.
Facebooks early years were dominated by a concern for users per engineer ratio; the rather florid style of LLMs suggest that they will generate so many systems of such a high complexity you will get Hadoop levels of non-application support needed - forget self healing, it’ll need constant LLM spend just to keep running at scale.
I call it BS. When you are hitting real scalability issues that the AI can no longer help you are already a successful business. The non technical found will not know about async message passing but will ask the AI why the site is loading so slowly and sure enough the AI is able to implement caching and various mechanism to improve the performance and observability.
You are hitting a wall when you do novel stuff (I.e a special search engine) but something like Facebook which is more or less a CRUD app is not a problem at all.
I recently prompted ChatGPT about theoretical physics because I wanted some examples of AI slop. It affirmed my hypothesis that dark energy results from the nonzero VEV of the Higgs field. Wow! I'm so smart! I solved dark energy!
Any actual physicist would probably be able to tell me why that's a category error. I don't know why because I'm not one. But there are actual mathematics underlying a statement like that and I'm 99% sure the maths don't work like that.
By the way I think that's why everyone thinks of so many weird physics ideas more than other fields. It's because things are explained in words that hide math, and you can make hypotheses in words that would be obviously nonsense at the level of maths. Like your boss asking why you don't just recompile the cloud.
Yes but, AI can still be used for relatively common applications (coding basic pages), and furthermore you can build agentic loops to check more difficult code, or explain the conceptual order of the code, and I imagine over time the domains which will be considered “basic” for the AI will continue to grow, but perhaps so will the abilities of its users…
But someone who is not well versed in coding can evaluate the output simply by running the built app and testing it, which is an oversimplification and omits the tech debt and eventual issues that an experienced developer would catch or restrict the output.
Ah, yes, "experienced developers" see all the problems and resolve all the tech debt preemptively, which is why the state of software (even pre-LLM) was so great.
> I can use AI for coding after decades of coding. I can't use it for theoretical physics because I can't evaluate the responses.
That is what will happen though to future generations: they won't be able to use it for anything because none of them will have the "decades of coding" experience that you have had the privelege to have without AI.
One of the concerns of the new LLM made lean proofs is ensuring they are using standard MathLib formulations in the theorem, so (quoting something in I longer recall the source of) a Grothendieck scheme is indeed what the reader and world know as a Grothendieck scheme.
> I’m also surprised to see that even Terrence Tao seems to use it in a way that resembles, in progression, how I use llms in my area of expertise
I didn't understood anything about the thread, but reading Terrence's messages was weird because it looked exactly like the discussions I have with LLMs
I've mostly seen people trying to oneshot a result, while I'll quickly experienced that going through steps/discovery was more effective and more satisfying, since you can always steer it back in the right direction; while oneshotting is hit (and it kind feel like magic) or miss (and you'll have to rework your prompt).
I was struck in the same way but I think it makes sense in terms of a thinking partner.
It is still ultimately Terence that is steering things.
What is crazy to me is how few of other people's conversations like this I have actually read.
Tao is really great for this because the anti-AI crowd can't really chime in and take the thread in a pointless direction. It is hard to think of another human alive who can carry the weight of unassailable authority in the same way.
I encountered something fairly similar working with Claude a few days ago. For a current project I've been fairly hand-wavy with requirements since I was getting good results, but it seemed to be failing hard on some key points, so I started to be more strict with it. Even after the fails were resolved, I've noticed that Claude now behaves differently within that project, carefully checking and rechecking things up front and also looking to me for guidance more often. Mildly irritating, but if it works...
The most powerful way to use Fable in particular seems to be to pit it against Sol as a reviewer (or, I suppose, vice versa.) After going back and forth a half-dozen times, the result tends to be pretty much bulletproof.
What's somewhat disturbing is just how much Fable's code really does benefit from the review. It tends to leave a lot of low-hanging fruit, and you can see it getting kind of impatient when repeatedly called on it.
"We've now re-explored this question three times. While there were small differences along the way, one more would be pathological. Perhaps meditation or therapy would be more fitting."
This is basically how Fable told me to get therapy.
The problem with that approach, the code becomes over-complex, over-engineered and more often than not, it will take a specific point and iterate over it.
It's still what I do 90% of the case until I feel it's good enough for my usage.
One of the prompting guides I came across early on was to ask your questions using vernacular of the domain not lay terms because the correct data you are looking for will be more likely to be around/near the expert terms rather than in the pop/lay/newbie terms next token wise.
Well said! After a few years of LLM sycophancy convincing laypeople they've managed to make progress on or fully crack famous math problems it's satisfying to see a world-class mathematician really put it through its paces. It's all the more impressive that Tao seems satisfied with the conversation.
Yes, the AI models are so useful in areas where you are an expert and can guide it in a useful way. I use multiple chats delay to help figure out client projects.
It's a really interesting world. You can spam GPT to get novel math results but here I am trying to scroll up to the beginning of the conversation and 5 minutes in I still don't know if I'm near the top yet.
Scroll... wait for render... scroll... wait for render... repeat...
We live in a world where there's so much crazy technology but few people use it to make products better or to improve people's lives. Most people use it to just make more money. It's funny too, because there's a million things we could use that tech for that actually reduce costs. Hell, what would be the economic impact of putting ML systems into streetlights so they properly coordinate. Don't even need LLMs for that, and I'm sure it'd save billions of dollars a year. Just a lack of will. I wonder if this will ever change. Is this how we create the high tech low life future?
(FWIW, no problems if I jump into the app. It's purely a web thing, but my point more illustrative than specific)
On my mac if you scroll slightly a blob appears on a slider on the right and you slide it to the top to go to the top. I'm not sure about these hidden user interface features that you only find through trial and error.
The architecture of our modern technological society lies on top of pure maths. One cannot say “resolving the physicality of the Navier-Stokes equation” will lead to x, y or Zed human improvements, but for hundreds of years it has. It is like Bach making his fugues for beauty and pleasure but occasionally you get chip technology or mathematical ecology or GPS falling out of it.
Like it was so correlated back in 1600? Under the Romans? But perhaps you just mean that the increased financialization of the US economy means that the percentage of economic wealth devoted to actions without value is increasing? Sort of a modern trajectory to 1789 with the foppish nobles not realizing how much everyone else can get along without them?
And yet you still want to be paid in your currency and use it to purchase the goods and services that give you the best bang for your buck at any given moment. Funny how that goes.
In an ideal world, that would be true, but the actual world is very far from that. As an extreme example, AI is very useful to automate scamming people.
It always is about money. As long as there's money it will always be about it. LLMs are big techs attempt of shifting money from the people further up, by getting rid of jobs. We're all not angry enough because some of yall are so delusional about the whole thing, by thinking we will get some kind of Utopia.
"The model family was reconstructed programmatically (parameterized cuboid stack) and swept over 2,304 configurations — extrusion directions, workplane-normal orientations, sketch windings, D's plane/height/depth/extent, including all the exact-coincidence heights. Zero failures with the fix; 576 failing configurations without it. The generator is available on request."
It looks like it wrote a python script to generate test cases in our file format for testing. Just... you know, as a side quest.
> It looks like it wrote a python script to generate test cases in our file format for testing. Just... you know, as a side quest.
On the one hand, agents have done this sort of thing for a year+, if you pushed them to check their work. On the other, I absolutely can feel Fable and Sol have crossed a threshold where they can be trusted far more than before. Huge difference between plans written by Opus or Fable.
Accumulated AI slop can simply be cleaned up by better models. Real cost of technical debt is shrinking due to the the inflationary devaluation of code!
I’m a bit surprised OpenAI isn’t finding these big results far faster than the product’s user base. With no limits on runtime, access to dev models, custom tuning, and top talent, you’d think there’d be a constantly running internal project with the goal of solving famous math problems. And who knows, perhaps there is, but it would be interesting to compare the rate of success per unit “effort” of the internal mathematics work with that of the user base.
"OpenAI's internal team solves famous maths problem" is technically impressive but dispiriting. Non-experts solving a problem by just throwing resources at it is kind of the worst possible optics for knowledge workers. It's just disempowering.
"Famous mathematician uses ChatGPT to solve famous math problem" is equally technically impressive, but now you're telling those very same knowledge workers "that famous mathematician could've been you". It puts you in the driver's seat, and provides a clear path forward — subscribe, use our product, and reap the rewards.
I don't think they care if it's disempowering. They'd gain more in market share by indicating that this is God than missing out on a few subscriptions from math theory people.
My guess is they don't do this because they don't have time. They're all trying to build a company that makes them generationally wealthy before the music stops.
Note, in posts like the following, the author indicates they are able to get free subscriptions from OpenAI
As an aside, there's this idea in math that when you create a new field you shouldn't solve all the easy problems - you need to entice other people to learn about the field!
I expect there's some element of that here. It's much better for OpenAI and Anthropic if their users are the ones discovering and writing up the results of the AI solving hard math. Look at the high school and college age students who have become ai power users and potentially learned how to use git to contribute ai generated solutions
(Related: I believe Terry has also gotten all of the subscriptions gifted to him)
You're surprised they didn't eat the tokens to churn on lots of open problems instead of asking others to pay for those tokens? They're in the token business. If they're eating the tokens, it's in support of a marketing effort, not in support of innovation across the frontier of all the other academic disciplines. The collective frontier is way too big for them to just "solve it" without asking society to at least help them break even on such an enormous public good.
It's also much better to distribute the challenge of identifying problems amenable to which prompts
Could they do it? Sure, but to what end? It would make more people hate them and feel even more "take our interesting work." Pitching it as a useful tool just makes more sense on all levels
Had you heard of these “famous unsolved problems” before now? If you aren’t a trained mathematician, you won’t know where to point the LLM towards achievable goals. Having it solve some Erdos problems is pretty different than a Millenium prize, and even some of those might be unknown to the general non-mathematical public. Finding counter examples, unattended, to various algebraic geometry conjectures is amazing but still a ways off from the a definitive disposition of the Riemann hypothesis, P vs NP, the Navier-Stokes problem (although I wouldn’t be shocked if Professor Tao put an LLM towards a counter example for that based on his technique of encoding machines into initial conditions of PDEs).
Although if I were a mathematical quantum physicist I might be trying to prompt one into a % mathematical field formalized quantum field theory. Weirdly this sort of obvious step has not been accomplished in the last 100 years.
Confirmation bias. There's likely a wide portion of chats in which "keep going" derails to madness. We then stop saying "keep going" because we notice there is something wrong, and we start another chat. In the end, we largely remember much better the interactions in which "keep going" resulted in something good, and forget about our role in stopping the train when it derails, which is something much harder to do unattended by a human.
Just relax and welcome the nondeterministic world as a non-programmer. Also, forget what you were taught in Theory of Computation, no one needs it anymore. AI will do everything for you. /s
Marketing for huge bucks sounds like this.
You will own nothing and will be happy (that you are still alive). Probably.
I have a pi extension that just runs the same prompt in a loop 25 times. I tried giving it a loop breaker but I found that it'd give up too readily. When the task is actually complete each iteration didn't do a lot of work so it was efficient enough. I suppose another way is to call out to a separate context to check if the task is complete?
Commands like /goal and similar are the more complex version of this; you write a prompt like it was a singular iteration, it runs one iteration, then runs an "evaluator" to determine if the goal has been reached, then runs the prompt again with a little extra to make it go again - and so on. The evaluator is just an LLM with most of the result or context looking at the original goal and the state and answering the question "has the goal been met".
The interesting part of this: while some leading implementations use the same LLM and context for the evaluator, some call out to a different context, some to a tuned LLM and different context; so which is better? many blog-scale benchmarks are calling it a toss-up that is highly dependent on the primary model.
What I am thinking is the way you make it 'keep going' and when you have people of the calibre of Tao doing it I kept thinking how many breakthroughs is he going to cause the LLM to find with his targetted questions :D Amazing that we have the privilege of witnessing a true expert in such a way question the LLM.
I’ll have to try this exact phrasing. I had a lot of trouble with GPT 5.5 more or less completely ignoring similar prompts and instructions and entering a sort of “doom loop” or just consistently trying to prematurely end the chat.
I would love any tips for other folks who have successfully used similar approaches.
Without any more context, "keep going" seems to be doing a lot of work. The user is placing a lot of faith in the LLM to not make subtle logic mistakes and to take good approaches to each problem. In my experience, even frontier models (such as Fable) are quite capable of getting confused during even simple technical work I've done in the dev ops world. For example:
LLM: This package hasn't made it to production.
ME: are you sure? i see it right here!
LLM: You're right to push back. I inferred that based on weak data. I see now that the package has been deployed!
If the above conversation is typical for me, how could one expect to achieve a sound result by repeatedly prompting an LLM to simply "keep going" in dense mathematical proofs? Perhaps the user in this case had actually checked the LLM's work before issuing the prompt, but I think you see my point anyway.
There may be something(s) about mathematics (proofs) that makes it particularly amenable to LLM reasoning - highly inductive from facts that are explicitly within-context/associative space? Being an unusually well documented discipline in general, with less influence from tacit knowledge or idiosyncratic “it works however the opinionated human made it work +- bugs” processes? Something about simulating even the smallest non-pure-inductive leaps necessarily risking simulating mistakes due to the nature of context “perception”?
There’s also probably a lot less noise from casual internet conversations. I imagine a nontrivial amount of what LLMs know about certain technologies comes directly from forums like reddit where quality of response isn’t guaranteed.
I mean, just the way Tao phrases these inqueries seems to imply a weighting towards an extremely abstract and high level rigorous corpus. In a way, prompt engineering really is the big unlock here.
Maybe! But I suspect you can write a little LLM assisted helper to at least make your prompts sound more like Tao's. (Your ideas won't necessarily be better, but you can probably 'imply a weighting towards an extremely abstract and high level rigorous corpus'.)
Not likely. You run the risk of bleeding into the crank mathematics language pool which is well represented in the training. I mean the prompts may sound good to you and me, but they will have low probability words in respect to the Tao level maths.
Agreed, often you have to step in and stop it from reasoning itself into dumb directions, but occasionally it goes just like the transcript in question.
That’s probably not interesting anymore, but 5.6 wasn’t able to name the conjecture when presented the notation only, but confirmed the proof and when told what it was, agreed it works. Much less psychosis than when given the Jacobian counterexample, at least.
Maybe, but I want to point out that even the lesser models are capable of hunting this stuff down. The most important thing is that you provide a decent path for them to follow.
If I understand correctly the conversation, ChatGPT had to compute for quite some time, meaning a large amount of computations. What kind of resources would be we needed to achieve the same results with a local LLM? Is it even feasible with current open models?
For instance, would it be affordable for a research lab to not rely on OpenAI?
Is this the same as Dinitz Theorem[1] which seems to have been proved in 1994? This is the only result I keep stumbling upon when trying to understand the problem formulation
I've noticed GPT specifically has more of a tendency to stop partway through things than many other models do. Although my most recent experience with it was 4.X I believe.
Hearing "here's what I've done, here's the completely unambiguous next steps, I'll wait for you to send a pointless message before I continue" over and over again is a real pain.
That was a tendency of 5.4 and earlier, OpenAI specifically worked to avoid it in 5.5 and I find it happens rarely know. It really felt like 5.4 had been intentionally trained to stop and check, I believe it wasn't the system prompt.
I disagree. The various questioners in The Last Question all hope for/expect an answer; what they don't expect is the "insufficient" response.
I am talking about someone jokingly asking AI `HOW TO ACHIEVE COLD FUSION` (or `A UNIVERSAL CANCER VACCINE`, or `AN AI FRAMEWORK SUPERIOR TO THE TRANSFORMER`), and getting a usable answer.
Even the standard RSI prompt will be like (or probably already is): "Improve yourself, make some breakthroughs, think really hard and don't give up until you are improved and make no mistakes."
Eventually there will be an AI that will be able solve those sorts of questions as simply stated, like "cure all human diseases. also, make no mistakes!".
That would only be physically possible if all the data about biology was accessible. Given we routinely find new biological facts that contradict prior beliefs about how cells work, it seems likely that this day of total biological information access by humans and our creations is some time off. Reasoning ability is a limit sometimes, but we have had reason for a long long time - a solid persistent corpus of good data about the mechanical details of cells and planets and chemistry is also needed, along with a good method for validating existing ideas. LLMs will absolutely speed this up, but I can’t quite see how they will replace it.
That bothered me decades ago, when I heard people suggesting we no longer needed animal trials, we could just simulate human biology for testing.
Don't get me wrong, the way we collectively treat animals is evil, but the idea that somehow we know enough about biology even today to reliably simulate drug behaviors seems unlikely.
At Mozilla, we had a set of whiteboard tags we could set on bugs, like "[crash]" or "[compat]" or "[leave-open]". That last was used when there were multiple patches attached to the bug, and we wanted to land only some of them without automation closing the bug once they landed. (It's common to have alternate approaches or test cases also attached to the bug, so you normally don't want to wait for all of them to land before closing the bug.)
I started using "[leave-open" for those.
It lasted for a couple of years, until someone went through and "fixed" them all.
Terrance Tao's chatgpt conversation is really interesting for a variety of reasons:
1. The counter example wasn't just a brute force selection, the polynomial is structured in a very specific way that ends up getting the result.
2. Terry Tao's questions are very specific and prompts the AI in a useful way, that without high math training you are not going to get the same information out of it. Terry seems to see some aspects of the problem and counter example and uses AI to brute force some parts of it.
It feels very humbling that here is one of the smartest humans on the planet asking questions, and the LLM keeps answering in this "Yes, it's really simple if you think about it" way, like a professor talking to a talented student.
I had a similar reaction with the language but also response times and language. It reminded me of a quote about Jon von Neumann from Edward Teller:
"Von Neumann would carry on a conversation with my 3-year-old son, and the two of them would talk as equals, and I sometimes wondered if he used the same principle when he talked to the rest of us."
Von Neumann is an interesting historical character that nobody has ever heard of, e.g: for such an accomplished inventor, that so few minutes of video footage exist of him.
>I sometimes wondered if he used the same principle when he talked to the rest of us.
I can come pretty close to a humbler example of this, as the more-extroverted "bad twin," of an identical set: my own genetic equal is bored to tears interacting with 90% of daily interactions... we both started with good brains/IQ, then went to the same college; but while twin spent the next decades solving EE problems (and co-founding startups), I "kicked back" and smoked myself sillyretarded, electricianing, relying upon bullshit and sheer luck to get to where I [barely maintain] am.
Watching my twin deal with any normal-intelligence persons is such an unpredictable shitshow, but I pretty much always know he's "dealing with us toddlers" who mostly never grew up. His patience is limited but willing.
Glad he can get by among us mere mortals. I have other similarly-minded brothers, but only this one identical twin.
What? Every CS grad learns of Von Neumman architecture and by extension of the man himself, at least I recall doing so, in much the same way as Turing and Church.
It is ~a meme on subreddits that developers struggling to get good results out of any given model is a "skills issue."
But I think your comment drives at some authentic take on this. Skill with AI is not only crafting iterative prompts the agent will understand, but also very high domain-specific knowledge of what the prompts explore.
One without the other can result in frustration or worse.
It is a skill issue. Such developers have to take a problem, isolate it and explain it to someone/something else with enough context to be able to work with it.
It is perplexing how many developers lack this basic skill, some of them borderline lack theory of mind and are incapable to understand that other people can't see the unspoken part in their heads.
It has been a good long while, but in my undergrad the engineering dept did not put a lot of emphasis on being a well rounded individual. It was more about passing physics and getting through all of the math.
One of my first jobs out of undergrad was technical writing on EDA tools for Mentor Graphics Calibre product. For many years, I did not appreciate that experience--it seemed orthogonal to what I'd gone to school.
Once I did become a professional SWE, something that took me too long to realize was that writing documentation and tutorials for people and looking after the quality of onboarding materials was almost never rewarded.
I came to see it more of a liability with ~all emphasis being on human code gen.
I listened to an interview with Steve Yegge earlier this year, one of his concerns was that many people just don't type very fast or read very quickly. IIRC, he expressed concern this would continue to be a big barrier to successful use of AI.
I previously commented on annotation for coding agents that an important skill was knowing the beat of a conversation.
I think that extends into critical reading. For example, it is not that unusual for a Washington Post article to put some ~explosive detail deep in the article--this is called "burying the lede."
I see this regularly reading AI output. That is: the AI will lead with the strongest claim it can state cleanly, but not the most explosive implication.
With Claude Code and Codex, you're looking essentially neverending walls of text dense with technical information.
So now you have to have high domain expertise, a good understanding of written communication, a sense for the beat of a conversation (which assists in identifying understatements or overstatements), and the ability to dense text outputs quickly and then highlight critical statements for further exploration.
I'd almost describe part of this work as that of a skilled interviewer.
A naive hope is: you see that the LLM is so good at coding that all you need to do is supply a "yes/no" on what you want.
Turns out that understanding the technical domain is important to getting good results, even if the LLM is more capable at producing output. -- It's still a case of "garbage in, garbage out".
I think for many newbies, they see the LLM is so good at programming and so figure they don't need to learn anything. Apparently not so.
He is well known for the large numbers of collaborators he has worked with to develop new math in all sorts of fields. Grad students in general wouldn’t be sharp enough to benefit maximally from his skills, but other math professors.
I think we have a couple of years of "being good at talking to the LLM about your field of expertise" being a useful human skill, until that too gets washed away
At the end of the day, even if they are some insane oracle (pun intended), they're still bounded by training data and how it relates to the real world. Even if they're a near perfect tool, we are still the interface between them and our lived experience. If that stops being the case then why do we care about the output?
This assumes it doesn't graduate to just killing all of us and doing it's own thing, but within this paradigm it doesn't really have goals.
>Even if they're a near perfect tool, we are still the interface between them and our lived experience.
Until they are embedded into automatons that can interact with the world.
(To be clear, I'm both on board with this, and I think it's the natural progression. Currently they are bounded by their training set, but interaction with the world is the imperative for theory -> test -> analysis -> update that is essential for growth and creativity.)
Of course they can't just talk to themselves and improve the knowledge of the world. They are just stochastics parrots that give you an average answer.
LLMs giving you something novel would be like if you let a model play chess against itself and become the best player in the world this way. Totally impossible.
Yes, but the point being for the LLM to be useful to us it has to do something relevant for us and we have to define what is relevant. Even if you view them as fully human level or beyond (in terms of agency) there's still some purpose that we have to help provide them with.
To put it differently, if you have some idealized model in front of you that can do anything a team of humans can do, what do you say to it? It's still just a model that takes an input and provides an output.
I don't understand. You will ask it for something you want, and instead of needing to pay a the team of people with expertise, it will just do it for you.
Someone will still need to ask for something (or maybe it will just run autonomously making things it thinks we'll like) but it won't require any expertise in the field.
I can’t help but believe that reality will keep the interactions more useful when coming from a person with expertise in the field, e
At least for technical questions.
For things like sickness, old age and death, generally the lacks are not knowledge but the consistent will of the group. Like global warming, there is no real profound knowledge gap except how to get everyone to agree to mitigating the carbon burn. Perhaps it is likely LLMs would be able to persuade the group to stop burning the carbon before it’s [more] uncomfortable, but the small group of people committed to accelerating the carbon burn can also pay for LLM persuasiveness.
It's crazy how he suggests simplifications over and over and gets led through the finding. Absolutely bonkers how you can use AI to understand something and map it to your own mental map so efficiently, and of course he's most interested in generalizing or finding a simpler sub-result that would explain it.
Just awesome to see new knowledge hit an incredible mind like this. Having these "what if" discussions is what I miss most from JPL and academia.
> you can use AI to understand something and map it to your own mental map
This "symbiosis" (for lack of better word) of human with AI seems to be an emergent value proposition of AI. In the process of doing stuff with AI, producing artefacts like code diffs, we are continuously able to decide how strong the mental map is of the current stage of the production process.
I could probably have worded this better but I'm sure it's something others have noticed... this choice we are able to make of how high fidelity our own understanding needs to be of the current working problem, and how that choice never really existed prior to AI.
"used" is a bit loaded, but this is just how people talk to eachother when they are thinking really hard about something they want to solve. So, I'm fairly sure it goes back as far as speech. It's just debugging - "What if it was caused by xyz", "What if we tried abc"
Math has some of the most insanely dense and impenetrable nomenclature. I can generally keep my head mostly above water or at least near the surface reading from most STEM fields, perhaps leaning on google/wikipedia a bit, but man, mathematics just so quickly decouples from all common tractable understanding it's insane.
Sorry it's a bit of an aside, but I imagine many other otherwise "technical" folks feel the same unfamiliar sense of total loss like when encountering hard mathematics.
This is also true for almost every other field, even within computer science. The only difference is that a lot of people operate at a very surface level without realizing just how much background knowledge they have accumulated. Think about the number of keywords your average SWE is expected to know. It is rather insane.
Every sub fields (web/kernel/backend/etc.) has a million/bazillion weird words used in a dozen different contexts and if you read a paragraph of even semi technical software text you will feel like an over stuffed turkey.
Even cache could mean the CPU caches, the page cache, a browser cache, a CDN cache, a Redis cache, or imagine the flurry of words we have that have real world meaning. Session, handle, pool, buffer, stream, channel, event, task, worker, or queue. Generally there is some overlapping meaning but often there isn't.
Most people, especially non-tech technical people, could crash through the TCP article and come out the other side with at least a high level understanding of it.
Most people, even technical ones, could not even get through the first line of the rees article, heck the first statement of the article. And then if they try, they need to know about algebraic rings. And digging into rings becomes totally intractable. None of the words or symbols in any of the articles track to anything even many technical people can grab onto. And this pattern is all over the place in mathematics.
It's not about mastering the difficulty of a topic or it's relative depth, it's about how abstract and removed from anything tangible it is. Anything with math it is always seemingly impossible to get a foothold on the idea anywhere within 10 degrees of explanation. Hell you cannot even clearly understand the problem that is being solved, or anything within 10 degrees of that.
As mathematician, I actually agree. We could do a lot more to communicate ideas in a way non-experts can understand.
For instance, most people are familiar with polynomials. Take a polynomial in x (with integer coefficients) and substitute x for 5t everywhere. So for instance, 2x^3 - 8x + 3 becomes 250t^3 - 40t + 3.
The Rees algebra Z[5t] (here Z is the integers) is then just the set of all polynomials you can get this way.
If Wikipedia introduced it like this, I don't think most people would have a problem understanding.
The concept is not (at least not always) actually that complicated, like others are implying. It's our communication that is lacking.
And Wikipedia is particularly bad for this. It is a good reference for things I already learned, but for learning, if I am not able to get to a professor, I find math/stack overflow to have many more examples and explanations, and sometimes for an overview YouTube lectures. And really for concrete things like polynomial rings over R, I often found starting up Mathematica and just playing around with some computation is sometimes useful. (Forget about p-adic things tho).
I sometimes think it would be good to rename some of the things that have historical names to mnemonics more descriptive than a proper name. But that would be difficult.
As a hobby mathematician, I agree. I know quite a bit about rings and ideals, but I don't understand much from the article on Rees algebras. Wikipedia has a lot of articles on mathematics that are explained badly, I prefer to find information elsewhere, typically I ask an AI for a good introduction on a subject (and usually that links to PDFs with over 100 pages that keep me going for hours).
I'm sure you're right that there's poor terminology, and Wikipedia math is certainly daunting. But in general the many mathematical exposition PDFs scattered across the Internet are beautifully written by careful, intelligent people. I'm a software engineer who's spent many hours reading them and also trying to do graduate classes as an adult. It's unfortunately common on Hacker News to encounter people who think that "I'd be good at math if only they used code to explain it" or "I'd be good at math if it used better terminology/notation".
The truth is that math is hard: few other subjects have anything close to its crazy conceptual breadth and depth, with hardish concepts being built upon hardish concepts in many layers.
I've had quite some success during my CS BSc math classes with inventing/using verbose but clearer notation and rewriting things more explicitly, programming things up, playing with Mathematica etc.
For example, Fourier is more clear to me as: F{t -> sin(t)} = omega -> (...) instead of F(sin(t)) = (...). Or D{x -> x^2}(x) = 2x instead of (x^2)' = 2x
Abuse of notation is very common, like using f(x) both as the function and as the return value at some input x etc. For example, the chain rule is often notated in a way that hides a lot. Math uses so many single letter variables, uses huge formulas instead of factoring out parts and using multiple lines, math people don't seem to appreciate namespaces and dislike nested variable scoping etc.
It's not magic that makes everything super easy, but it helps.
I agree with this - real analysis and functional analysis with have the cognitive complexity of three months worth of the cognitive of software puzzles in each weekly problem set.
Yeah, as a scientist I can read most Science or Nature articles in most fields, and get a rough idea. Not every piece of jargon, but I can understand roughly what they did, read the graphs and figure out the result. A friend sent me his maths PhD and I did not understand a single sentence.
That's not because the nomenclature is bad, it's because the concepts in advanced mathematics are further from our familiarity zone. In other words because it's hard.
Definitely agreed. I have a bachelor's in math and took an abstract algebra course as part of it. I also took a couple computer science courses in college and work as a data engineer. My only real exposure to networking is from an AWS cert I did years ago.
I can tease apart the Rees Algebra article one bit of half remembered terminology at a time and come out of it feeling like I just barely understand what the topic even is.
I can read the TCP article and feel like I have a thorough overview of the topic and could explain it at a high level to someone else.
This is perhaps more a comment on Wikipedia's coverage of mathematics. They have some general guidelines in their manual of style, but it's really hard to write math articles in a way such that something like the Rees algebra without defining 1000 thinks beforehand.
To understand the definition of the Rees algebra, you would need to define, mostly in order: sets, groups, abelian groups, rings, ideals of rings, algebras over rings, direct sums of rings, adjoining things to rings, etc.
This is just to understand the definition; to understand its significance in algebraic geometry (which I have no idea of), there are a thousand more definitions.
The issue with trying to understand a concept in math is there is a massive directed acyclic graph of prerequisites leading to these concepts, and one needs to traverse this graph in the right order. Unfortunately, knowing the right order is almost tantamount to understanding the concept itself.
> Most people, especially non-tech technical people, could crash through the TCP article and come out the other side with at least a high level understanding of it.
I agree with you here, but what's special about tech is that many of us learned all these terms fully casually while using computers as children and teenagers, which would be much less common for a chemist. That makes programmers see a lot of things as computer literacy that most people have rather than specialized knowledge.
My argument is that all the vocabulary for computer science are things. Even if they are virtual, they are tangible. You can draw a picture and label a box "bytes".
Nothing in the ChatGPT conversation is tangible. It's all in the realm of concepts.
A ‘Byte’ is not a concrete thing and the fact you think it is speaks to the degree to which you have immersed yourself in a mental model which thinks of ‘information’ as if it is a real concrete thing, to the extent that you don’t even realize the levels of conceptual abstraction you needed to build in order to internalize what a ‘byte’ is.
Such a small sentence and yet it means very little to me. I understand some constituent pieces, but I don't understand what Z is here other than a 'ring' and I don't really grasp how t^-1 converts this into a generalized family of algebra. It would take me a lot of effort to understand this and use it practically. I find that fascinating because it really is such a small statement that seems perfectly cromulent, but there's a lot packed in there that someone like me is totally missing.
I suppose there may be similar concepts in computer science, but nothing comes to mind that ever stumped me. To be frank, the field has been relatively accessible to me because it hasn't been too challenging. Not sure if that's a personal aptitude thing or it is genuinely simpler.
Z is the ring of integers, t is a formal variable allowing us to discuss polynomials whose coefficients are in some ring. That’s what R[t] means: the ring of polynomials of the formal variable t with coefficients in R. Adding in t^-1 lets us include inverted terms like 2t^-3.
An algebra over a ring (call it S so we don’t confuse it with R from the previous paragraph) is a like a vector space over S, with the added structure that you can multiply elements of the algebra together (vector spaces only let you add their elements together). So for example the collection of even integers 2Z is an algebra over the ring of all integers Z. The collection of all polynomials with integer coefficients, Z[t], is another algebra over Z.
This is a great example of how dense language gets in math. There are tons of concepts hiding in the unstated background. Many are quite simple to explain individually, but there are so many of them that an outsider won’t know where to start to tease them apart. There’s a good reason to do it this way though; it would take a very long time to say anything in math without ever increasing levels of information density.
Absolutely agree. All formal statements (like mathematical ones) are going to have some level of assumed background. And as the assumed background expands, the language naturally becomes more information dense.
As for your specific questions, I believe Wikipedia does a great job of answering two of them for a layperson:
For the others, I’ll say that a formal variable is just a symbol (literally, like the letter t). With such a symbol, we can construct polynomials like 2t^2 - t + 3. Also, there’s no need to only use integers as the allowed coefficients; you can use any ring you like instead.
An “algebra over the ring R” is what I was attempting to define in my comment above. The algebra is “over” R if we can multiply an element of the algebra by an element of R. The useful analogy here is scalar multiplication in a vector space: you can multiply a vector by 2 to double it or -1/2 to reflect and shorten it. More generally, it makes perfect sense to consider some more general version of vectors which can be scalar multiplied by elements of any ring R.
Fair enough! At a super high level, a ring is just a collection that has a similar structure to what you’re used to “numbers” having. That is, you can add, subtract, and multiply them. Not divide! If we restrict ourselves to just whole numbers then 2/3 is not allowed. We also require that something like 0 and 1 have to be there. “Like zero” means 0 + x = x for every x in your collection, and “like one” means 1x = x for every x. And lastly, we require that the distributive property holds.
Examples include the set of whole numbers (Z), the rationals aka fractions (Q), the reals (R), complex numbers (C). These are all infinite rings, but there are also finite rings such as the set of whole numbers modulo a fixed number n, denoted Z/nZ. For instance, Z/2Z has only two elements, namely 0 and 1, with rules like 1 + 1 = 0. There are also polynomial rings, like Z[t], whose elements are all polynomials with integer coefficients (e.g. 3t^3 - t - 2). You can add, subtract, and multiply such polynomials and the result is more polynomials, so this collection is indeed a ring.
> But... what is a ring? What is a formal variable? What is a vector space? What does "algebra over the ring" mean?
All these terms were taught to computer science (and of course math, physics, ...) students as part of getting their degree in computer science, because these concepts are important for many algorithms.
Having studied CS and maths to post-grad, I think you exaggerate. Although a CS course might use these tools, they didn't in my experience go into explaining or defining them. The only use of linear algebra I can remember was in analysis of recurrence relations for algorithms, and for some graph theory. And I had one CS course on multivariate generating functions (formal variables) but most CS students would have been terrified of that. Abstract algebra is also used in combinatorial or search algorithms, but they would never use terminology like "ring".
> Having studied CS and maths to post-grad, I think you exaggerate. Although a CS course might use these tools, they didn't in my experience go into explaining or defining them.
I studied computer science (and mathematics) in Germany. I am very certain that this was taught to computer science students, even though (compared to the lectures for math students) the lecturer did not get very deep into these topics.
> most CS students would have been terrified of that.
This is a feature, not a bug. :-)
Seriously: In Germany, the "math for ..." lectures often are intended to be "weed-out lectures" so that students who simply are not qualified for their major get to quit their degree course fast (either by realizing that the degree course is too hard for them, or by (typically) failing math exams so that they get exmatriculated), so that they don't waste many semesters on a degree course which they simply are not suited for.
Do you think weed-out courses are a good thing? If these courses are so important, they should be taught in a way that students can understand. If they made it to college, and can program, they're clearly smart and motivated.
> If they made it to college, and can program, they're clearly smart and motivated.
You clearly write from the perspective of the US-American university system.
In Germany, basically everybody can enroll into a computer science program at a university, assuming the person has a Abitur (Allgemeine Hochschulreife) certificate (these terms are difficult to translate into English) from the grammar school [1]. So, "have it made to college" is like "not having been a complete failure in school". [2]
So, making it to the university is no achievement in Germany, and also no sign of motivation either.
> If these courses are so important, they should be taught in a way that students can understand.
These courses are taught in a way that students can understand, but not in a way where you can afford to slack off.
It is basically a consensus in Germany that a university is clearly a wrong place for you if you are incapable of closing knowledge gaps on your own (for example by reading books from the library), and you don't have the self-motivation to sit over the lecture material for hours to finally understand it.
So yes, I would say that among the possible options, weed-out courses in mathematics are in my opinion likely the least bad one.
---
[1] In years where there was an insane demand for places at the university to study computer science such as during the dot-com bubble, there were some restrictions (numerus clausus), but for computer science, this was always the exception to the rule.
[2] There exist good reasons for puns like "Abitur: nichts gerafft und doch geschafft" (Abitur: Didn't get a thing, yet still passed) or "A-bier-tur" (a portmenteau of "Abitur" and "beer", which suggests that even pupils who are more into drinking than learning typically get their Abitur certificate).
I studied a lot of abstract algebra in college and grad school and I’m surprised that rings and algebras would come up in a CS degree. What algorithms topics used those concepts? Something about polynomials?
Algebra is useful because graphs are algebraic objects, and a lot of CS is about graphs, in particular search/planning. But no, I never saw rings mentioned except for generating functions, which are used for analysing recurrence relations.
For example in search algorithms where you want to search a space without visiting state nodes twice. Each state in the search space is produced by the sequence (a product of) of operators from the start state: elements of a monoid (or group if actions are invertible) which define the primitive steps. Trivial example being generating all permutations of a list. More interesting, enumerate all graphs with some property with pathwidth at most k, by adding one edge or vertex at a time. So now you want to know the structure of this group so you know which sequences of elements simplify and don't need to be tried, and you want to canonicalise each state to throw out duplicates.
And you can think in terms of orbits: if there are some symmetries then you might want to factor by the symmetry group and only visit one node in each orbit, grouping states into orbits with a single representative state.
See eg. Pochter, Zohar and Rosenschein, Exploiting Problem Symmetries in State-Based Planners.
Thanks for the reply, this is very illuminating. I never got to this depth in algorithms. I’m but a humble programmer with a math background, but no CS degree.
- The Samuelson–Berkowitz algorithm is best understood in terms of general rings
- The Faddeev–LeVerrier algorithm and determinant calculation using Gaussian elimination work on rings with specific properties (for the Faddeev–LeVerrier algorithm the restriction is on the characteristic of the ring, for Gaussian elimination the ring must be an integral domain (ideally a field)).
* Ring-learning with errors (for post-quantum cryptography and homomorphic cryptography). Here, a specific ring is the central object.
* Number-Theoretic Transform (NTT): Basically a generalization of the Fourier Transform to the ring Z_n. Important for arbitrary-precision integer arithmetic
* Chinese Remainder Theorem. Often only formulated for the ring Z, but it can be generalized to larger classes of rings. Used for example in Shamir’s scheme for secret sharing (cryptography)
* The theory of BCH and Reed-Solomon codes uses a specific ring
* The AKS Primality Test (a really deep result in computational number theory) uses the ring Z_n[X]/(x^r-1).
---
Algebras:
Very often, a ring is constructed from another ring. Examples:
* the polynomial ring R[X_1, ..., X_n]
* The ring of (square) matrices over a ring R
So, using algebras in algorithms often means: "we want to make use use of this additional structure that our (more sophisticated) ring has)". (Associative) R-algebras formalize this concept of "ring with additional structure".
To just give one algorithm for polynomials:
* Buchberger algorithm for computing a Gröbner basis
Other examples:
* Clifford algebras for a lot of geometric problems (special case: quaternions (a 4-dimensional \mathbb{R}-algebra) for rotations in \mathbb{R}^3).
* If you are willing to also consider semi-rings (in this case: tropical semi-rings): the Floyd-Warshall algorithm for finding shortest paths and the Viterbi algorithm for finding the most likely sequence of states in a Hidden-Markov Model (HMM) can very elegantly formulated using the matrix semiring over the tropical semiring.
> The tropical semiring has various applications (see tropical analysis), and forms the basis of tropical geometry. The name tropical is a reference to the Hungarian-born computer scientist Imre Simon, so named because he lived and worked in Brazil.[1]
I'm convinced half the reason people find CS terminology more accessible and Math terminology less so, is that CS terminology tends to be named after stuff, and Math terminology tends to be named after people, and ... sometimes whether the place they lived is a tropical place.
> I'm convinced half the reason people find CS terminology more accessible and Math terminology less so, is that CS terminology tends to be named after stuff, and Math terminology tends to be named after people, and ... sometimes whether the place they lived is a tropical place.
In my opinion: a lot of math terminology is much older than computer science terminology, so the origin of the names of many concepts in math is much more obscure for today's people than CS terminology currently is (and least if you are not into history of science/math).
On the other hand, in my observation a lot more terms in computer science are based on obscure (often pop-cultural) puns. I guess in 50-100 years these CS terminology might seem even more obscure for then-contemporary people than math terminology is today.
(At least some) error-correcting codes are based on polynomials over finite fields. I couldn't say much more, but it's at least intuitively plausible since e.g. an nth degree polynomial is defined by any n+1 points, so if you know say n+1+p ("p" for "parity") points, you can lose up to p and still recover the polynomial.
It's a class with an array of integers in it with .length() == t - 1 and the same methods as Matrix.
In lean4, even without mathlib4, TCP/IP is way more code than a Rees algebra.
Math uses dense notation that is gigaoverloaded, and the disambiguating context was historically the leisure and proximity to have someone explain what the lexemes even mean.
lean4 is proving to be very revealing as an uncorruptible referee on a lot of things, including the relative difficulty of computer science and complex analysis.
-- A Rees algebra over ℤ[t⁻¹] is this.
-- That's it. That's the whole thing.
structure ReesAlgebra where
coeffs : Array Int -- integers, indexed by grade
-- grade k means the coefficient sits at t^k
-- negative indices are the t⁻¹ part
-- The "algebra" part: you can add them
def ReesAlgebra.add (a b : ReesAlgebra) : ReesAlgebra :=
⟨a.coeffs.zipWith b.coeffs (· + ·)⟩
-- And multiply them (convolution, same as polynomial multiplication)
def ReesAlgebra.mul (a b : ReesAlgebra) : ReesAlgebra :=
sorry -- it's Array.foldl over index pairs (i,j) summing into slot (i+j)
-- exactly how you'd multiply polynomials in a job interview
-- That's the entire mathematical content of
-- "The Rees algebra is an algebra over Z[t^{-1}]"
--
-- Compare: a minimal TCP SYN handshake in Lean4 would be
-- ~200 lines before you even get to retransmission.
--
-- The notation is the gate, not the math.
That's false. Z[n] in rings does not mean "an array of integers of length n", it means the subring generated by Z union with {n}, where n is an element of some other set. For example:
Z[i], the Gaussian integers, is the subring (of C) generated by Z union {i} where i is the imaginary unit in C, the complex numbers. The Gaussian integers correspond to the integer grid-points of the complex plane, if you want to visualize them.
You are comparing TCP a relatively basic topic in the grand scheme of computing with Rees_algebra which is fairly specialized, we could take a simpler topic more foundational and clearer to understand and compare them.
I can understand that this feels like one is so much more complicated part of it is also how the articles were written, wikipedia is not known for quality maths explanations.
But beyond that this comparison to me feels unfair.
Let's take Euclidean algorithm or just modular arthimetic for example what a lot of computing even is based on I feel like that's a fairer comparison. No?
Perhaps that's too easy but I just find this specific comparison very unfair to both Math's intuitive-ness and Computing's complexity. Perhaps I am the one being delusional.
I think you are snagging on thinking this is an observation about difficulty, time-to-mastery, or mental firepower requirements. It's not.
It's a plain observation that math exists on mostly it's own path with little to zero overlap with our lived experiences. If mathematics was a vector, it would have similar magnitude to other vectors, but it's direction would be much more removed from the typical knowledge pack, forcing you to get really close to the origin before you can "hop" over to that math vector. Other "knowledge" vectors, by virtue of being more bunched up, are closer together much further up, if that poor analogy at all makes sense.
Mathematics has a lot of knowledge points that do connect to the "real world" very deeply, but perhaps the nature of their linkage to other mathematical pieces of knowledge is best left to the mathematicians. But we can still use the pearls of wisdom that come out of the process.
Very true, I feel like the sense that Computing is easy comes from the inherent closeness of our lives experiences to it. Everyone uses a Phone they see ram understand memory, can understand process and processing.
We often designed various protocols and other stuff in IT as per 'lets come up with some simple chat to validate things and go ahead', or principle of least complexity (apart from classics like IBM and Microsoft but they were done specifically to make vendor lock in as big as acceptable). Its also ie in telco protocols - designed around trivial Hello handshakes, I can explain protocols like that to a child and it would grok it. Not great for advanced security but thats another topic. Or SSL handshake which is way more modern.
Math just represents this reality on most abstract level, it doesn't care if complexity for some human brains is trivial or almost fractal-like.
No, the problem with mathematics is that it is basically its own language separate from your native tongue. You have to learn dozens of symbols and greek letters and such and memorize what their meaning is in the context of mathematics in order to "follow" a mathematical conversation.
Mathematics would be much more approachable if it just used plain English like `sum(0, Infinity, my_func)` instead of a big Greek sigma with nested function nomenclature. But on the flip side, mathematics being its own language means that a mathematician from any country can read and understand mathematics from a different country without needing to translate words such as "sum" and "infinity"
Mathematics would be much more approachable if it just used plain English like `sum(0, Infinity, my_func)` instead of a big Greek sigma with nested function nomenclature
First of all, no, mathematics would be far less approachable if it did that. Most of the Greek letters used in mathematics don't have a universal meaning, they're context-specific and defined by convention or just prior to use.
Second of all, mathematics is optimized for hand calculation on paper, not long-term programming and code maintenance. Writing out long names over and over on a whiteboard gets tiring extremely quickly, so mathematicians prefer to stick to single-letter symbols.
To second this, most (non-applied) mathematicians work first with paper and pencil or on a chalkboard, and the act of writing out the symbols is a part of thinking about them. Typing doesn't wire into the brain in the same way. Think of how you learned algebra in school. You wrote out much of what you were thinking, often in ways that would be hard to flexibly format on a computer, and the act of writing your thoughts solidified them in your memory.
Mathematicians pretty much universally view typesetting as a distinct step from the thinking part of math, and something you do at the end once you have figured everything out.
Your translation only makes intuitive sense to you because you are well versed in programming.
I suspect if I showed a non-technical person with no background in either math or programming they would think both are nonsense until you explained it to them
> I suspect if I showed a non-technical person with no background in either math or programming they would think both are nonsense until you explained it to them
I doubt it. Greek letters convey almost no information, whereas (one hopes) the function and variable names are chosen by a programmer to help the reader. The Greek letters used by mathematicians (and physicists) weren't used to convey information, they were used because typesetting, publishing and paper were expensive. They are optimised for brevity over readability.
It was a perfectly reasonable trade-off at the time, but times have changed.
As an aside, some programming languages (such as APL, and to a lesser extent Perl) did emulate the old Greek letter style. "Line noise" is a typical description of the result. No computer language aimed at software engineers and computer scientists does that now.
The thing is that you basically cannot explain the math like you can the programming.
Tables, algos, and variables are all things people can generally quickly grasp. The construction is abstract but the function is tangible.
The math is working entirely on abstract objects, using abstract tools, governed by abstract rules. It's just all so desperately far away from anything even technical people have contact with.
This is true. Math is more abstract. Some aspects are more tangible; this is what they teach at school and undergrad university... But once you get to master level and PhD, it tends to become increasingly abstract... The utility is only visible to PhD engineers in very specific areas and in those cases, even the mathematicians themselves can't fully grasp the utility of their work and they probably don't really need to.
They don't seem to have any desire to reconcile their 'craft' with real world applications and this is probably why they're particularly good at it.
My example was contrived, I'm sure some smart people could come up with a SQL-esque language that is even more readable to non-technical folks than programming syntax. At a certain point though, your layman has to know the "atomic" (as in, you can't break them down further) mathematical concepts like "functions" and "infinity":
I am a research mathematician. In my field (abstract algebra, computational group theory), a sum or some such notation is like the most trivial of trivial things in terms of notation. There are a few things like sums that could in theory be made to "look more like what a computer programmer would expect", but that'd be just a tiny corner of it.
And if you think about how summation would look in Lisp or APL (which some smart people use to this day), I am not even convinced your argument for the "sum function" notation being superior holds in general.
I'm sure some smart people could come up with a SQL-esque language that is even more readable to non-technical folks than programming syntax.
And somehow, none of the thousands of very smart mathematicians have done that, or if they had, it has not seen wide adoption. I recommend contemplating on this: if math could be made easier by changing notation, why hasn't this already happened?
Momentum, mainly. Richard Feynman invented a more intuitive triangle-based syntax for sin/cos/tan/etc but eventually abandoned it and conformed with mathematical norms for the sake of ubiquity.
"tcp" can take roughly 3-4 weeks of heads-down dedicated study to have some reasonable familiarity with. Same is true with most of the other concepts. Being able to speak with expertise on that list of topics is 3-4 years of really focused study and work.
I think what happens is that people often have passing familiarity with a word or topic and presume knowledge, and years (decades) later they realize they knew almost nothing.
I will say that Mathematics is different (for me at least) because unlike the infrastructure computing concepts (IETF type, not IEEE)- which mostly require studying, lab work, and some coding to get your hands dirty - advanced math is just ... really hard. There are IQ issues at play.
Obviously a lot of computing turns out to be mathematics - so there is clearly convergence/overlap as well...
You could get a surface level understanding of TCP, or 99% of topic areas in computing, in less than 4 weeks of study. You could not get a surface level understanding of literally any of the maths in the link in less than 4 weeks of study.
The vast majority of what computers do just isn't that complex. I'm not saying it isn't "complex" just that any reasonably smart person can understand how a computer works and still have other hobbies, basically no one can understand phd level mathematics without dedicating their entire lives to it.
Speaking as someone who has run courses designed to take late teens / early 20somethings with a variety of backgrounds and tried to teach them 1st semester programming concepts in two weeks, I think anyone who thinks tcp/ip an easy four week dunk for most doesn’t remember how much they’ve already learned and take for granted.
Sure, if you’ve already learned enough groundwork, tcp/ip is accessible in weeks. The same is true of most of the algebraic concepts in play here. And both have rabbit holes you can also spend a much longer time going down (though here I am willing to give the edge to math which offers much greater opportunities for hypergeneralization and new vistas of abstraction along which not only specific rabbit holes but entire new generalizations of both rabbits and holes may be found).
This is not true, 99% is very exaggerated claim, but yeah you can learn 50-60% of the field at a surface level in months rather than years.
But you can have a surface level understanding of mathematical topics as well, ofc some topics might require deeper understanding, but that's true for both.
Any claims of being able to learn 99% of computing in a just 4 weeks even at surface level, is greatly underestimating your own knowledge built over the years perhaps, or perhaps underestimating your own ignorance.
The claim isn’t knowing 99% of the field but that 99% of topics are ones you could do a quick-and-dirty crash course and come out with some understanding.
Definitely a lot of people have very surface level understanding of tcp and computer science concepts.
I have had folks tell me cache is just cache in actual interviews. When I have asked them to explain the concept to me, but even beyond that I feel like we tend to think less of our own knowledge of topics once we have acquired it.
Especially ones acquired over years, alongside other work.
I second this and would add that it's really easy to catastrophically forget things in math. I'm pretty sure that most CS knowledge I have I will retain at a level where I won't forget the general ideas and re-reading materials can quickly refresh the details. This is not true for advanced math. I did a pure math PhD and my own thesis is impenetrable to me 20 years later. It would take months, if not years, of focused effort for me to regain the understanding.
I think one of the key differences is that math is abstract whereas CS is relatively concrete.
CS examples are often easy to picture and understand the motivation for. You can use tools to visualize or play around with them and test them.
Math gets abstract so fast you have to spend a week of research to even understand the problem statement. The the motivations themselves can be completely unclear until you have a lot of context.
I majored in math (B.S.) and upper level math is completely foreign to me.
I think so is upper level CS, there are fields in CS that are foreign to me too, there is a lot of depth in CS, computing is a very deep field for instance ML research although may seem simple isn't quite so intuition based as people make it out to be. Similarly there are dozens of topics where sophisticated research happens where we don't interact with at all as regular software developers.
Every slice has so much depth to it, in Maths it all seems like all of it is required at once but in computing it feels like so little is needed to get started which I honestly feel like is failure of our modern education systems.
But yes Computers being so easily accessible and compilers, documentation and libraries have made computer science so easy to get started with.
Imagine having to implement your own network layer to communicate with someone, you would have had to understand ip, tcp, network layer to an extent like http and etc. and then you finally would have been able to communicate.
In maths that's our reality for a lot of the field, there aren't good libraries, interfaces to help skip the unnecessary details. Hopefully AI might solve it I don't know though. It's fun to hope for it.
As a counterpoint, i've worked with enough math PhD's over my career who couldn't wrap their head intuitively around many concepts from software engineering, while others had no problems in doing so even from folks without any stem background. We often undererstimate how much field knowledge we aquire over the years and overestimate how easy it is for others to catch up.
Again, you are underestimating how much effort it takes to understand how an 8086 CPU works. There are a lot of foundational concepts that you are simply assuming the person already understands. That may be a reasonable assumption for a CS undergraduate, but the average person does not understand binary arithmetic, registers, memory addressing, instruction execution, calling conventions, or even what a CPU is doing at a meaningful level to even start to understand 8086.
Also, understanding an 8086 CPU is not even remotely comparable to the level of mathematics Terence Tao was discussing above. The 8086 is a relatively basic and concrete topic. You can build a workable mental model of it from a finite instruction set, a handful of registers, and a reasonably straightforward memory model.
From my perspective folks here on HN and in CS often think they should somehow be able to understand advanced mathematics papers at a glance, merely because they are good at basics of programming or computer science (8086). That is not how it works. Most mathematics is not inherently much harder than computer science; both fields require you to accumulate a large amount of foundational knowledge before advanced material becomes comprehensible.
There is an enormous amount of computer science that most programmers are completely unfamiliar with, especially within academic CS: programming-language theory, type theory, formal semantics, compiler theory, algorithmic research, complexity theory, distributed computing theory, verification, cryptography, computational geometry, numerical methods, and so on. Being proficient in one narrow area does not automatically give you the prerequisites for another.
A web developer would not be expected to casually understand a research paper on type theory or approximation algorithms without first learning the relevant notation, terminology, and foundational results. Mathematics is no different. The feeling that mathematical writing is uniquely impenetrable mostly comes from encountering it without the years of accumulated context that mathematicians have silently built-up.
I can show you a paper about an advanced algorithms or chip design, that is large made up of fundamental cs concepts and general physics and even you likely someone with pretty in-depth understanding of CS would find hard. There are orthogonal subjects, for instance my mathematician friends things I am insane reading so much about weird computing topics, and I find his research in some weird number theory thing completely mind-bending.
Try and explain to a lay friend how registers & isa works in-depth with all the details not a hypothetical higher level model so that they can understand the nuance of looking at assembly, limit it to 8086 perhaps, it will take significantly longer than a weekend.
Ofc Terence Tao and his level of intelligence is beyond me, I wouldn't compare but general advanced mathematics is not something folks here couldn't pick up if they actually tried to work on it, just give it a shot (though I would recommend don't start with advanced topics build up slowly I think most people can understand most maths papers even the bleeding edge ones within a few months of serious self-study, and won't even feel that it's after a few years, compare that to the time spent learning software and computing 6-8 hours a days for several years)...
> There is an enormous amount of computer science that most programmers are completely unfamiliar with, especially within academic CS: programming-language theory, type theory, formal semantics, compiler theory, algorithmic research, complexity theory, distributed computing theory, verification, cryptography, computational geometry, numerical methods, and so on. Being proficient in one narrow area does not automatically give you the prerequisites for another.
And the difficult part of all those areas of computing is the mathematics part. Which I think is what I am arguing, mathematics is a fundamentally different type of "difficult" to any other subject.
PLT and such isn't math conceptually sure it's all logical maths of some kind but largely it's not maths in the traditinal sense of how we understand maths.
Because otherwise if you think about it all of computing is Maths but with computers...
I don't think people who read the Wireless Fidelity spec can understand any of it in a weekend or anything even to a rough extent.
Similarly with websockets, quic etc. the most you can take away without much prior knowledge is what it does which maps into Maths as well.
Every quantifiable science has some amount of math, but it's by definition applied math. I think this was more of a debate between applied and more abstract math.
I was amused and irritated in equal measure when a senior manager at $LAST_JOB demanded that documents include "no jargon", then went on to use many terms like those you've listed here with no indication of awareness of the contradiction.
Just like the famous observation that "anyone driving slower than me is an idiot, and anyone driving faster than me is a maniac" - "jargon" is just any term-of-art that you're not currently familiar with. Attempting to communicate like Up Goer Five is inefficient. The solution is not to ban jargon - it's to:
* Cultivate a glossary for any terms that were introduced _within_ the domain/company, which are not in common usage outside
* Normalize a culture that does not shame asking what something means
> I was amused and irritated in equal measure when a senior manager at $LAST_JOB demanded that documents include "no jargon", then went on to use many terms like those you've listed here with no indication of awareness of the contradiction.
"No jargon" is alwys in reference to some assumed knowledge model.
For example, when I claim that my own math texts include "no jargon", this assumes the knowledge of a person who has studied, say, mathematics, physics or computer science.
Computer science is not a great example for this. I could ELI5 most of the terms you listed (and I actually have done so for many of them!) This is because it's pretty easy to map these concepts to everyday physical objects. Once a child understands any of those objects in their lives, it's pretty easy to explain in those terms.
Like, just the concept of "books" gets you very far. E.g. a file is a like a book, a folder is like a shelf to keep books, a stack is literally a stack of books, a heap is just a place you can pile books in willy-nilly, a database is like a library, a cache is books on your desk versus books in the library, replication is having multiple copies of a book so we can afford to lose some copies, indexing/sharding is like arranging books alphabetically, and so on.
Others are trickier but not much: a process is an app that is running on your device, a socket / tcp / http / websocks is a way to exchange information between devices, a namespace is how the name "Tom" in Tom Sawyer is different from "Tom" in Tom & Jerry, DNS is a way to get an address from a name, etc. etc.
You'll also notice that many of the terms you mentioned are already derived from well-known real-world concepts like pool, stream, channel, stack, queue, worker, transactions. You can mix those with other everyday concepts to make useful analogies.
But I could not even begin making analogies for most topics in Mathematics. I guess this is because advanced topics in Mathematics are just too abstract to map to everyday things.
Just be thankful that we don't share the penchant for giving credit to discoverers. Imagine calling a cache a "Murphy/Steinman/Sokolov structure" (made-up names).
I mean, we do for some things, especially algorithms (Boyer-Moore). Probably for the same reason the mathematicians do -- there aren't readily available real-world analogies.
And I won't even mention the branded future, with its "Google HyperZipper String Search" and "OpenAI/Red Bull speedmaxx distributed consensus algorithm"...
Huffman Coding, Turing Machines, Knuth Devices, Bayesian networks, B-tree (named after Bayer), AVL Trees, so many data structures and algorithms, even relatively new ones like Timsort, Jaccard similarity, MapReduce (thankfully but I have seen people call it Dean-Ghemawatt MapReduce in literature).
Well people even name stuff after themselves as well, Fil-C, raylib, etc (I like both Filip and Ray just pointing it out).
Aside: If I butchered some spellings I am sorry. :3
Yeah. In math at least it's clear that you don't know what's going on. In other fields, it's very easy to think you understand without knowing how much you're missing.
Exactly. Everyone should experience having to teach something they're so used to doing that they don't even consciously think about it anymore. It makes it very visible how much we rely on unconscious models of the systems we deal with and how difficult it can be to convey that model.
It's why less experienced devs are sometimes mystified seeing a seasoned dev, given a vague description of a bug, guess the cause in code they didn't even write.
I studied math through college before learning to program as an adult and becoming a software engineer, and I strongly disagree.
I don't know how to say this in a way that won't sound insulting, but I don't mean it to be insulting. Programming, even systems engineering, is a surprisingly shallow field.
I don't mean that it's easy--it's not, it can be incredibly difficult. Difficult and deep are just different concepts. Difficult refers to how challenged you are. Depth, at least as it appears in math, is closer to a structure where concepts build on each other so that if you don't understand one concept, you can't understand further ones.
Programming can be difficult, and it can be intricate, but it is rarely deep in this fashion. Being deep in this way isn't the most important thing.
If I go into an area of programming that I don't have a lot of experience in (graphics, or the linux desktop environment), I will not be particularly useful, and it will not be easy. But I'll not experience the same type of impenetrability I experience when I try to read a paper on topos theory.
One more way of putting it: people are giving the example of TCP. You can spend a decade learning about TCP (or SQL semantics, or web standards). But what is happening is that you're filling in gaps in your knowledge. Meanwhile, in math, you do four years of undergrad, and even if you're a strong student at a typical university, there are topics that are still years away from you being able to touch them.
Computer science is a mix. Parts are deep, parts are shallow. Parts just are math. The odds that I can read a dissertation in computer science are decent. For math, they're much much much worse.
> Programming, even systems engineering, is a surprisingly shallow field.
I agree, and I don't think we should be at all ashamed of this.
The beauty of programming is that we can produce incredibly complex and powerful things by manipulating a small set of simple constructs together. There are only a few core tools--iteration, conditionals, etc.--but they can be snapped together into much more capable configurations.
Good programming is the art of deconstructing complex behaviour into these few constructs, and that's really fascinating.
Most of things that are impenetrable in programming aren't about... programming. They are about some actually complex field like math being applied to programming.
For example, a library that does stuff with geometry. You need to know geometry to understand the program, but the program itself will never be complicated. It's the geometry that is complicated.
In cryptography, it's not the program that is complicated, it's the field of cryptography. In AI, it's statistics.
In graphics programming, math is the most impenetrable part, not programming anything. You can be a very good programmer in the sense that you know how to architect information systems and still fail to write a shader because shader programming requires you to know what a "dot" product is and you haven't heard about that since high school.
I'd slightly disagree. Here's an example of a programming task that is incredibly complicated:
Your job is to maintain and modernize a system while delivering a constant stream of new features. Your system is several million lines of code, with some multi-thousand line classes, a rulesengine that can trigger nearly unlimited effects at any time, a persistence system that's weirder than anything any of your friends have ever worked with, and hundreds of customers delivering tens of millions in revenue who use the system in incredibly varied ways.
You can't stop to rewrite the thing, you can't just throw features out there and pray, because you'll cause regressions and your existing customers will hate you. You have to fix the thing as you're building on top of it.
But where I agree is that there's no single deep concept that unlocks it all, it's not like you'll fix it by reading a textbook about it. It's complicated, and it's going to stay complicated, no matter how long you work on it.
If we take amateur level of understanding as a threshold, a sum of all of these concepts is not even a fraction of complexity required to understand a single non-trivial concept in mathematics.
This is also true for almost every other field, even within computer science. The only difference is that a lot of people operate at a very surface level without realizing just how much background knowledge they have accumulated. Think about the number of keywords your average SWE is expected to know. It is rather insane.
Nah, math is much harder because there is not just the lingo, but also all the math machinery behind it. Each math definition represents some long process behind it, which builds on another process, etc. The knowledge builds on itself , too much more so than computer science.
Barely scratching the surface. I think I could probably keep typing all the technical terms I know for at least 24 hours straight. For most of the topics above, I could probably give a 1 or 2 hour lecture on each one from memory. Some I could give a day-long lecture each.
To explain all the terms I know to a basic degree, I would probably need to give a whole year of lectures back-to-back from 9am to 5pm. And I'm just a rank-and-file senior engineer with 15 years of experience.
It's also why the vast majority of software systems are insecure. The average senior software engineer doesn't know everything that they need to know to build secure software. Last time I poked around Coinbase APIs on HackerOne, I found a DoS vulnerability in less than 30 minutes. That's Coinbase, not some startup built by a bunch of recent graduates.
AI cannot avoid vulnerabilities either since it is trained on average engineer code. There's not enough high quality code available on the entire internet to train AI to implement secure code IMO. As impressive as Mythos may be, it's not enough. I don't even think formal verification would provide protection since sometimes issues with the spec itself can provide an opening for a vulnerability.
Nice list. I like it how you also included some made up terms. For completeness, those are not real:
ETag, SAML, CSP, BGP, haproxy, helm file, k8s, SOCKS5, Lamport OTS, Winternitz OTS, SPHINCS, lattice-based, pg-vector, sameSite, httpOnly. (Or, at least, i have no idea what those are ::)
Not at all! All of these are real.
ETag: expiry tag on HTTP(s), SAML: auth protocol, CSP: constraint sat, BGP: border gateway protocol, haproxy: load balancer, helm: k8s package manager, SOCKS5: http proxy protocol, sameSite/httpOnly: configs for HTTP security… and so on.
Never mind. The answer before me did a much better job.
Apologies if I am simply missing a joke (which I think is true with p~=0.3), but:
At least some of these are definitely real things. For instance: "BGP" is the Boundary Gateway Protocol. "Lamport OTS" is a one-time digital signature scheme due to Leslie Lamport. k8s is an abbreviation for a piece of software called Kubernetes.
ETag is the HTTP response header which provides the shasum (hash) of a resource in order to allow the client to check if the resource has changed without having to load the resource. It's for client side (browser) caching.
SAML is Security Assertion Markup Language; an XML based SSO (Single Sign On mechanism).
CSP (Content Security Policy) which allows the application to specify additional security constraints for the browser to enforce.
BGP; border gateway protocol.
Haproxy is a load balancer.
Helm file; another word for helm chart.
SOCKS5 is a tunnelling protocol which allows you to tunnel through a machine over SSH; you can use it to browse the net or access remote services via another machine (hiding your IP)... It's a bit like a basic VPN. Very easy to setup, you can configure your browser (e.g. Firefox) to access the net via a SOCKS5 proxy so if the remote instance is in a different country, websites will treat you as though you are in that country... Just like a VPN except you have to control the remote machine yourself and log into it via SSH with the -D flag.
Lamport OTS is Lamport One Time Signature algorithm.
Winternitz serves a similar purpose but different tradeoffs and smaller signature size.
SPHINCS is a stateless hash-based signature scheme which works by building a tree of OTS keys (Lamport, Winternitz or other) which can be generated deterministically, on-demand.
Lattice-based cryptography is real.
pg-vector is a plugin for Postgres for vector embeddings and it provides some operators for finding records based on the nearest vector.
sameSite and httpOnly are cookie security settings.
Coinbase not a startup built by recent graduates...
You overestimate Coinbase's engineering rigor.
But yes security in modern software systems is a joke. I don't even get paid to fix security bugs everytime I raise them the answer is to slap a sandbox and proxy and call it done.
Yep, about 10 years ago, the security of most major systems was relatively robust; I could not have hacked them. The people who worked there knew much more than I did and they didn't leave many gaps.
Now I could hack essentially any system I want. At least DoS or crash them for sure, with minimal computing on my end. They're much more complex than they used to be. Security-through-obscurity used to be a no-no and sometime in the last 10 years it became the main security paradigm.
They could drag it out by telling stories of situations they faced but information density would be low and repetitive. As someone who cleaned boats professionally for a year in my early days, I'm pretty sure I could convey all I know about cleaning in under an hour. That's very different from one year of back-to-back lectures.
Cleaning boats, the learning tapered off after a few weeks. With software, I'm 15 years in and it barely tapered at all and it's much more intense. I've been pulling nights and weekends too.
With software knowledge, it would be high information density with little to no repetition. Every piece would provide useful concrete knowledge which would serve to increase technical capabilities and/or security.
At least a lot of those are common words that allow some level of meaning inference with a little bit of adjacent knowledge, like cache and queue make sense with the barest of explanations because their everyday definitions are still applicable. Many of these terms aren’t entirely opaque until you drill down into specific niches.
I had a few moments of this in the past. For example, in my quantum class the teacher wrote "H Psi = E Psi" on the board, we all laughed, "just cancel the psi" but it turns out one was a multiplcation and the other was a matrix multiplication (operator) and so we had to learn all new nomenclature.
Similarly, at some point somebody pointed out to me "the reason you're confused is that the bold on that variable means it's a matrix"
That is why Iverson invented APL.
As a notation to get rid of all those inconsistencies in math notation.
And for years he taught math classes with APL on the blackboard without computers.
whether he succeeded, is debatable.
But APL is definitely powerful, succinct and "regular".
In APL you don't infer the operation from the types at all. × is elementwise, +.× is inner product /always/, on scalars, vectors, matrices, whatever. The glyph tells you what happens. Nothing is bold, nothing is inferred, nothing depends on what your professor assumed you'd absorbed.
I've been trying to get into Iversonian languages myself with the book: Calculous on J
I mean, unfortunately being completely explicit and pedantic does not scale.
Imagine that instead of being able to use high-level programming languages, you had to write in assembly everywhere, all the time.
That's what software engineers and computer scientists' suggestions of redoing mathematical notation fee like to mathematicians.
These efforts also don't go anywhere because research mathematics moves beyond elementary arithmetic very quickly, and once you're there, "descriptive" notation becomes as incomprehensible as whatever mathematicians use.
My favorite moment of this kind was when the teacher said 'Ok, and for the rest of the course we will look at a completely different problem', and the equation he wrote down was exactly the same as before. Except that the letters referred to vectors/matrices now.
A decade or so ago I wondered if the reason maths was hard was the names being optimised for writing by hand. Everything's single letters if they can get away with it, so when mathematicians run out of Latin alphabet, they use Greek, bold, etc.
Even integration's ∫ is a fancy elongated s.
CS version would be e.g. integral(function=some_named_function, from=a, to=b, with_respect_to=argument_of_function), which may be longer, but is less opaque, especially when you get in so deep there's 3 other people in the world who've looked into this specific problem and you had to invent your own operations.
But that's all an outsider's perspective. I stopped with two A-levels in maths and further maths.
Nope, math notations are optimized for reading, not writing (consider that people still use symbols on computers despite it being quite a bit more tedious to type). The conciseness makes it easier for you to see structural patterns and do symbolic manipulation in your mind's eye. Even something basic like the wave equation would become completely illegible with an expanded notation like that.
Same reason why we write 5-3, not subtract(minuend=five, subtrahend=three).
For those of us with strong verbal processing and weak symbolic/pattern processing, this makes math much more difficult to approach.
Interestingly, discrete math feels the most "verbal" of all the subfields of math I've encountered (I haven't gone very deep). I think this is because notation in discrete math is is somehow closer to compressed prose or logic, whereas other forms of math use notation to fill in for long sequences of symbolic manipulation.
Not sure if that makes sense... I'm curious whether anyone else experiences it that way.
No, math is difficult to approach because it's genuinely deep. Trying to verbalize what is going on is extremely difficult, because you end up saying stuff like "and then do that to all of these things, and then do it again to all of the results, and so on ad infinitum, and then take the collection of all of that, and join it with the collection of doing the same procedure as before starting with a different set of objects, and then join those to yet another set of objects and the results of their operations, ad infinitum, ad infinitum..."
People genuinely struggle to think verbally or visually once we extend beyond 3 dimensions and start talking about infinite-dimensional constructs, uncountable sets, and so on...
Of course, I understand this, and I hope that my comment didn't come across as saying that math would be easier to "do" if it were all fully verbal. Symbolic reasoning and interpretation are necessary for complex reasoning.
And math is, as you know, a deep but traversable graph. The traversal inherently requires a familiarity with the nodes you pass through when reaching a foreign or more difficult concept.
However, I'll give you an example. If I read through more complex math that I’m not comfortable with in Sage, I can build an intuition for the structure of the problem more easily than if I view the “raw” notation. In that sense, it is easier to for me to “approach” — but approaching something is very different from fluently using it — and I’m under no illusion that approaching a topic is the same as beginning to understand it.
Again, this is definition-dependent. To me, “approaching” something means beginning to glean how I might one day understand it. E.g. watching a 3B1B video feels like “approaching” a topic. Here we reach the limits of language already :)
I did study math at university for a while. Dropped out eventually. In the beginning I was super annoyed by the brevity and hated it. But after like 3 months it suddenly became natural. I also appreciate the clarity of how mathematicians introduce new ways to write things. That is sometimes even more verbose than some random API docs for a new function…
yes! I really find when computer science ppl start using math notation to describe algorithm very pretentious. we have programming languages in comp sci, we don't need it!
I was reading about Tao's efforts to get more people to use Lean and apparently a big roadblock for people is that Lean uses very specific static typing.
e.g. to use a very simple example on a white board "3" is "overloaded" as:
- the integer 3
- the rational number 3
- the whole number 3
- etc
When you write a proof in Lean, you have to specify the the type of "3" you mean.
Having using Python/Perl and Java over the years, I get that some math folks found handling this daunting or at a minimum friction to getting into using Lean.
LLMs seem to have been a big help here just for the "translate my math notation into a proof" feature.
Sometimes I wonder if mathematics would have been significantly more improved if they hadn't insisted on notating their variables as single letters and also indicated variable types out-of-line (or at all)...
but then I take a look at literally anything the Haskell people do and realize that it probably wouldn't have helped.
For what it's worth, it's not a problem with multiple kinds of multiplication (multiplication by a scalar can be viewed as multiplication by a specific kind of matrix), but with the idea that one can cancel in a multiplication. Since you can't cancel in matrix multiplication, you run into unexpected trouble when you try to do so, even if that's the only multiplication in sight. (In fact, you can't cancel in scalar multiplication either unless you've checked that you aren't multiplying by 0 …. Also, I'll note that surely no young mathematician has encountered the P = NP problem without thinking for a sophomoric moment that the solution is N = 1.)
P = NP is actually one of the worst abuses of symbology I've seen in math.
"""During his own Google interview, Jeff Dean was asked the implications if P=NP were true. He said "P = 0 or N = 1." Then, before the interviewer had even finished laughing, Jeff examined Google's public certificate and wrote the private key on the whiteboard."""
I'd call P = NP computer science rather than math, but perhaps it's reasonable to call it sufficiently on the theoretical side of CS that it really is math.
>For example, in my quantum class the teacher wrote "H Psi = E Psi" on the board, we all laughed, "just cancel the psi" but it turns out one was a multiplcation and the other was a matrix multiplication (operator) and so we had to learn all new nomenclature.
This is one of the great things about Lean becoming used for more and more mathematics: understanding exactly how an operator/function is defined is just an IDE click or few away. It completely removes the ambiguity present in hand-written proofs, although it still can require a lot of reading to actually meaningfully understand the definitions.
I would expand on this. AI is great for me because it can read the equations I don't understand and turn it into code I can understand. I've worked in science for decades and it's still like pulling teeth to replicate a competitor's paper when they are vague and sloppy with their description (often intentionally).
ugh, I had some text book that used R for a scalar value and (edit: \u{MATHEMATICAL BOLD FRAKTUR CAPITAL R} here) for a matrix that was related to the scalar and I had to go back and re-learn a month of material once I figured out that the font was being used with intent
A term that gets tossed around in math is "mathematical maturity." It's similar to what you see in other fields - e.g. learning how to program, learning how to make music, learning how to cook - that involves many "aha" moments and reshapes your perspective. Math is full of such steps, moreso than most other endeavors, probably because the main limit is the abstract reasoning itself.
The abstraction is by necessity. Our puny brains have only a very small working memory. The only way we can reason about many problems is by creating multiple levels of hierarchy. That is actually the essence of what mathematics is.
Math strives to minimize ambiguity, which other fields don't do as much. Non-math fields tend to reuse regular words as jargon (i.e. with specificity of meaning that may fly over the laymen's heads). Social sciences and humanities are most notorious for this, often resulting in non-practitioners not realizing they are out of their depth because they are not looking at symbols from non-Roman alphabets.
That's something only someone who's never studied advanced math could say. Math notation and jargon can be extremely ambiguous and overloaded. "Normal" has about 20 different meanings.
No, I'd say ambiguous means "context dependent" and the context is unclear.
Pronouns like you/me/he/she/they/them are context dependent in everyday English writing but they're only ambiguous when the context is unclear, otherwise most people have no trouble dealing with them at all!
I haven't seen much of this "striving". Notation use is largely passed down from instructor to student, and there isn't much interest in the mathematical community to standardize.
Yeah it is a lot of simple ideas stacked one on top of the other, but the edifice is so large from some vantages that the building blocks aren't visible, or tractable to think about independently. And sometimes the ideas are very subtle, so you can only develop fluency partly by spending lots of time playing with those blocks by building your own little structures. You also develop fluency by talking to other mathematicians
I like to emphasize that the ideas are usually very simple at their core. Sometimes they map to kinds of objects or reasoning that non-mathematicians use implicitly all the time in their daily lives, mathematicians just have words for them and so are able to use them explicitly.
And I suspect the density of the language/terminology may give the wrong impression about how mathematicians think about the math they are working on. I mean, different people think / experience / practice math differently of course but IME the underlying thought about a particular problem tends to be much looser and concrete than formal math writing would imply.
That more formal language is needed of course because at the end of the day, it is how we communicate our thoughts in the way that other mathematicians can understand them, not to mention how we can check our own thinking
Yeah this is pretty much where I am at. Take the phrase from one of the responses
"The special fiber is the associated graded ring.....and that the filtration admits sufficiently simple homogeneous lifts of the three generators, then one might prove"
In any other context I would at least have some degree of intuition about what is being discussed, but in in math? Absolutely no idea. And usually if I start digging and turning over stones to uncover meaning, I'm just met with even more totally dense code-word language. Unlike other fields were digging is usually quick to relieve ignorance, somehow in math it tends to get worse.
I'm sure I am capable of grasping this if I took the time, and perhaps even what is being discussed it rather intuitive, but the incredibly density of the nomenclatic swamp you have to trudge through for math is totally unrivaled.
The basic problem is that to get to the objects you mention here is at least 3 or 4 years of full-time study away from the kind of math people learn for a typical college degree in science or engineering. If you really want to understand them, to make your "digging" efficient you should probably just get a pure math degree, but setting aside several years to satisfy occasional curiosity is not feasible for most people for various reasons.
One unfortunate feature of published pure math research is that often the ideas are quite accessible and straightforward and don't really require special abstractions or terminology, but those get used anyway because for someone who already has a math PhD it saves a bit of effort.
I agree, the nomenclature is impenetrable, it's like reading software that is not well commented. Perhaps LLMs are very good at "challenging" mathematics because what we perceive as challenging is primarily the language component and not the conceptualization.
Is there something that translates math formula into code? There are many (comparatively) "simple" algorithms I simply cannot make heads or tails when they are described via math prose or math formula, but when it's code I basically instantly know how to rewrite it into any other language I know, at least, and sometimes that's a starting point for poking at it to understand it a bit better, if not the same way would if you understood all the underlying math.
For poor old me, too many wikipedia articles on algorithms useful mostly or only for programming are described in formulas rather than simply code with detailed comments. Scrap the whole page and just gimme the code :( Not even to copy and paste, because that's a language I can understand, and enjoy learning.
I agree. I think the distance in capabilities between great mathematicians can be so much more vast than other fields as well. Some of them need every step to be derived, while others can skip ten in their head.
Isn't it just what you studied in depth? I am not in this area but can understand what's going on "at a high level" here. But I studied no other science formally since the age of 15 (this is possible in the UK school system). So physics and biology just go over my head unless they are sufficiently mathematical.
There is a lot of verbal commonality between the classic sciences, classic engineering disciplines, and everyday life. I suppose they all share the common substrate of working in/with mother nature all day. A molecular biologist, civil engineer, and oceanographer can mostly keep pace with each other at least for a while in discussing what they are working on. These "mother nature" systems have tons and tons of overlap, and the nomenclature generally tracks this, or is one or two steps away from it.
Computer science/engineering strays from this, binary systems don't really track nature much, and hence a lot of their own unrelateable nomenclature arises, and then there is math, which is just way far out there on it's own plane of existance.
I once didn't understand the task given in an exercise sheet for a CS logic lecture, so I googled the topic, and all Google did was send me back to that exact exercise sheet.
It can't be one language, and that's the big problem. It's inescapably a bunch of tiny DSLs. Once you see both the inconsistency and the necessity for inconsistency, it becomes much easier to just roll with it.
Yes, the nomenclature in math is atrocious. It isn’t much better in physics or biology however. As a species, we suck at naming and classification, and keep starting new trends atop old ones.
There is certainly need for the many abstractions of math to be as complex and well specified as they are.
There’s no reason for their nomenclature to be so bad. The end result is a substantial portion of the population, which can certainly hold and manipulate abstractions, fails to even contend with pure math.
I do think visualization tools will help in the future, to demystify some of this. But as with all sciences, the need for personal glory/mentor deification often conflicts with broader explainability.
This is a very notorious area for dense definitions and concepts that interrelate closely and have to be memorized. Mathematicians from other areas are going to have difficulty but may have some idea of what the concepts try to capture.
Some areas are hard in different ways. I could never quite wrap my head around the way logicians have to think. A clever combinatorial bijection is a work of art you probably can explain to a undergrad class easily but good luck coming up with it. And number theorists will throw the kitchen sink at their problems: no area of math is safe from getting used by them.
People who do this have spent years of their life thinking in this language and studying it, so it is going to be hard. We're also not good at communicating the intuition which for algebraic geometry often comes from other fields.
That is one of the things that fascinates me most about mathematics compared with other fields, and it led me to discuss the subject with professional mathematicians. The funny thing is that they admitted it is the same for them...stray even slightly outside their own specialized area, and within two or three lemmas, they also feel completely lost.
People in their second year of graduate school only get to about the early 20th century in terms of understanding. Third year is getting to about the mid-century. Fourth and fifth years get kind of to modern times but with increasingly smaller breadth.
It's just language. Mathematicians don't invent notation for fun, they do it because they naturally start thinking at a higher level of abstraction. If you're not thinking at that level then, well, it will be all Greek to you.
IMO, it's just the notation. Something I've actually found ChatGPT useful for is to create mathematics lessons for me in the form of computer programs. When broken down into a series of readable almost-plain-English steps, it's so much easier to understand. And it's easy to tinker with programs and get a hands-on feel for things quickly.
I'm sure having a compact notation is absolutely invaluable for people who dedicate their lives to maths, but for someone with just a passing interest, I find it more obscuring than helpful. I feel the same way about music notation.
I mentioned this in a sibling comment but even for mathematicians, the intimidating notation and the more formal language might give the wrong impression about how we think about math. Actual thinking and even discussions with other mathematicians tend to be looser and more concrete and tactile, but the notation and language are there in part to act as a sort of lingua franca to help everyone stay on the same page, since everyone thinks at least a little bit differently. It also helps to keep you honest and catch situations where your thinking was muddied, since this language is so specific and writing things down has a funny way of catching things. And good notation goes a long way towards making the simplicity of an idea clear, or completely muddy in the case of bad notation.
Math isn’t necessarily hard, but it’s incredibly dense
A simple statement like let f(x) be a continuous function can carry a lot of definitions
In that statement, if you missed the day in class where they covered continuous functions it might not even register that it’s a well defined term
And that’s the most over simplistic example I could think of
As a math major, I remember that being one of the first lessons I learned, that every single word could be carrying a lot of weight so to look things up in detail if I was ever struggling on a problem. One of the oldest entries in my memory.md file
What was most remarkable to me from this transcript, was how strong of an equal the AI agent comes across compared to the user (Tao). And Tao is one of the top mathematicians of modern times.
Yes, Tao is guiding it to where he wants to go. But also, Tao is actively learning from it and relying on its explaining, analysis, and inference abilities. You can easily imagine this conversation having taken place between Tao and a PhD thesis student, or even another professor, explaining their results.
What can we imagine and predict about the future anymore? Maybe a year - or two model releases - from now, the AI assistant will be undeniably stronger than Tao, and not an equal anymore.
>Maybe a year - or two model releases - from now, the AI assistant will be undeniably stronger than Tao, and not an equal anymore.
we're kind of well past that (in my opinion), if you consider that this is the same ai assistant that can help you with a recipe, diagnose a weird sound in your car, help with biology homework, translate languages, and so on.
even in math alone, i think its indisputably already stronger than Tao, considering it has approximately this much depth in ~all of the math subfields.
Agreed, it's stronger "horizontally". But I also think that we're not far away from it being stronger vertically; i.e. superior to Tao, in that such turn-by-turn guidance by him in solving sophisticated and difficult problems will not be necessary for long.
I strongly suspect that the horizontal and the vertical strength are not perpendicular. I suspect having a very wide knowledge gives you access to patterns that reproduce across fields that an expert would lack.
It only has that depth because you prompt it towards the experts that understand that depth.
An example that happened 10 minutes ago: contracts in racket, it kept arguing that you can't use -> in a contract of a function with a rest argument. I had to mention ... explicitly that it wrote the code correctly.
Yeah...I know I should be massively impressed, and I am to a degree, but isn't this what we should expect? LLMs can pick up on patterns that no human can see. In that sense, they really are a type of "search engine", but I use that term loosely. Tao is using them as a way to sift and sort theories and information that the model has a plethora of training data on. It's like being able to converse with the codex of humanity, and extract data via an algorithm that is highly adept at sorting through it.
Also I feel like people are not noticing in Tao's chat that chatGPT fairly often is doing web searches. So it literally is acting as search engine sometimes, and that too is incredibly effective when done right. So in addition to Tao using his prompts to "search/sift through vector space" the LLM is also literally just searching the web to augment its "knowledge" at inference time too.
Which, to me, again demystifies these tools. They are incredible tools, but still "just" such.
> It's like being able to converse with the codex of humanity, and extract data via an algorithm that is highly adept at sorting through it.
Bingo
Thanks for laying it out so clearly.
This is what I feel LLMs are really good at yea. Almost to the point that I'd say this is what they are. But I'm not quite convinced that it is that, but it seems to point that way
Interestingly enough, ChatGPT started his answer like this only once:
"This is exactly the question I would ask next. My impression is:
Most standard invariants are...."
And this was a response to this prompt:
"Is there a chance of an indirect argument of X ~ A^3 coming from computing some invariant of X that forces it to be A^3? (I am not all that expert in algebraic geometry but I'm thinking like degree or Betti numbers or something.)"
I find it helpful to think of LLMs as reflections. If you can talk like an expert mathematician at the model it will respond like one. While Terrance's first prompt looks trivial I expect a first year Uni student would be hard pressed to provide something that good.
I guess it is kind of the inverse of the "you are an expert mathematician" prompt engineering of gpt3.5. Since no one ever says that to an expert mathematician when they are doing expert math the model immediately reflects that it is not an expert mathematician.
Isn't LLM doing something like argmax{x} P(x|context) where x is the next word, and context is the words before including your instructions? Thus, the LLM output is heavily depending on your instructions, and if you input an expert context it would produce an expert result. Consequently, domain expertise has a significant bearing on what you can achieve from LLM.
I dunno. To me, this seems like kind of a counterexample (pun intended?) to that thesis. Would a conversation with another AI have been as fruitful as this conversation with Tao? Certainly not! Will that change in a year? I dunno, but it seems like those goal posts keep moving, and I'm a bit skeptical.
I think you're mostly right, and there is still a lot of "cope" in this thread about how much he needed to guide it.
But I would say that in some ways it's already obviously superhuman. The reason I think it's lacking in some jagged ways still at the expert level is because although it's highly optimized to be incredibly capable in many domains, it still doesn't have quite the same raw capacity for complexity in understanding one problem that humans do.
I believe that LLMs (really should be called VLMs for most of them) can still get much larger, and that will push the absolute complexity level and general IQ way over human level.
They are maxing out at like 5 or 10 trillion parameters right now. I believe we will see 50 and 100 trillion parameter models and models with large portions of that active. It will round out the jaggedness and probably more than double the raw intelligence that a human can achieve. It's not a linear scaling but who knows what the limit is and can go significantly higher with the same architecture I think given continued improvements in training and hardware scale.
Jeez. While I obviously can't talk at all about the math, I've noticed a few things:
a) The model thinks on some questions while straight answers on others. (I wish I'd knew from the questions if this is somehow correlated to hard tasks or "inventive" tasks, but that's way out of my league).
b) The model sometimes pushes back. Again, I'd wish I knew if it was warranted, but I counted 2 instances where it said "yes, but with caveats", one where it said "mostly yes but with this correction" and one where it said "careful here, because x y z".
c) The model did q&a + pdf ingestion + code writing + more q&a + thinking + more q&a, for a looong while, while seemingly staying on topic (at least Terrence Tao seems to think they're still productive, so I'll trust that).
This is what model progress is, not number goes up on xBency or yBencher. Damn.
The "yes, with caveats" thing is boilerplate for both Codex and Claude since this current generation.
It's actually a bit annoying because it primes you to think that the caveats are real, but most of the time it's just something terribly obvious and not a real caveat, but the model probably has some system prompt that tells it to always consider caveats or something like that.
Same as the model starting every reply with a commitment to be "honest". LLMism are fun but I tend to just suppress them via AGENTS.md because they distract me
At least Opus up to 4.7 or so, my experience is that Claude often uses "yes, with caveats" in place of "no, you numbskull".
"Is a meter the same as a foot?"
"Yes, exactly, you have it now, except they're different distances."
Maybe it's because I ask it to quiz me, and it really doesn't like to tell me I'm wrong. I also got a fair amount of
Claude: Ok, I will test your understanding. Question A? Question B? Question C? Question D?
Me: A=10. B=2. C=121. D is not solvable.
Claude: You got most of them right! You're very astute in saying that A=10, but actually it's 7. B=2 is exactly right! C could be 121 if we were talking base 4, but we're actually in base 10 so it's 25. D is trivially solvable and is 0.
Me: ...isn't that like 1 out of 4? How is that "most of them right"?
Oh, GPT-3.5, recognizable in so many old screenshots by the green icon. If ever a popular model deserved the term "stochastic parrot", it was GPT-3.5. I wonder what percentage of people today still base their opinions of AI capabilities on their experiences with that model. That model was the only option for free ChatGPT users for the first year and a half of ChatGPT's existence, from November 2022 to May 2024.
GPT-3.5 was so nice because the safeguards were so easy to bypass and it wasn't lobotomized by RLHF. Newer models really don't hit the same spot and I'm not sure what I liked so much about that initial release. I look back at conversation logs I saved and I just can't replicate them nowadays.
"I’ve activated Pro. Can you continue to look for a potential geometric explanation of the X_3 ~ A3 miracle that avoids coordinates or other unmotivated constructions ?"
I just do very laconic questions about advanced topics, this seems to prompt it a bit more towards reducing fluff in the answers. But that + the activated pro could be an improvement
Yeah. I also only use pro in very specific situations. Not (just) because it's slow, but if the question is too simple or vague, pro responses are sometimes overfitting to the noise in my question. Until there is lots of context and the basics are laid out, high or xhigh somehow work better. Pro gives you the last 10%.
It's not so obvious. Taking my parent comment literally (as he said "the other way around"), one can assume that ChatGPT the platform itself would pay Terrence, rather than OpenAI.
I would guess almost none, less than single digit percent. Only a small fraction of undergraduate math majors who happen to be interested in algebraic geometry would be able to understand this. The average HN user knows far less math than an average undergraduate math major. Of course there are also math PhDs and the like on here, but vanishingly few compared to the bulk of the site.
Similar to how Cypher puts it: I know this is “just” next token inference, matrix mult and just software, ie there’s no “intelligence” there BUT, looking at this convo … damn!
The fascinating this is that the LLM is not acting as a tool here AFAIk, but very much like a colleague.
I have no knowledge of the domain and have only PhD EE level math knowledge, so maybe my bar is too low.
I think the "But this is not intelligence because it is known math" is not a correct argument. It is unknown how the overall higher intelligence of humans works.
What I do notice however is that LLMs are becoming capable of doing an increasing part of the intellectual work I can do, and usually a lot faster.
Just today I presented an agent framework that can take an informal incident statement and propose infrastructure changes to fix it, all evidence backed. This did nothing I could not to, but it did all 5 test cases in 6 - 12 minutes each. I would have found all of the monitoring indications it did, but it would have taken me a day per test case. The LLM also included sass to silly tickets. ("This is not even worth spending monitoring resources on. It's obviously a configuration problem.")
That's how this is reading to me as well. It's just fast at slogging through a certain level of "simple" transformations.
That argument says very little, emergent behavior is a thing in complex systems with billions of parts.
Humans can also be reduced to voltage potentials propagating along of tubes of fat and synapses getting rewired.
What does "predicting the next token" mean? I ask this every time people say "LLMs are just predicting the next token" and it's maddening that nobody can give a straight answer. Predicting it according to what probability distribution? Every process that produces a sequence of actions (including e.g. a human writing) can be modeled by some probability distribution and therefore their actions are indistinguishable from "predicting the next token" emitted by that distribution.
> to predict the next token you first need to model the universe
Exactly. The "most likely next" series of tokens, for example, when given the first half of a correct mathematical proof, is the correct rest of the proof. I have never seen anyone define "most likely next token" in such a way that this isn't true.
It's like saying that thinking cannot generate new knowledge because all thought is just rearranging the information we get from our senses, or memory of previous information from our senses, and we do nothing more than figure out the most likely word to say next in a conversation.
Either humans are not capable of intelligence or computers are capable of becoming intelligent. Neither or both.
i think people say that thinking that only training to produce the next likely word would end up producing some local minimum word that generally fits but doesn't actually lead to intelligent thought.
that feels like a misunderstanding of how the loss function behaves when used within a sequence
There is clearly intelligence there. We have no way to recognise intelligence other than the appearance of intelligence and this very clearly displays that.
It's also quite clearly different to human intelligence in some notable ways, but not in any that preclude describing it as intelligent. At least for normal non-pedantic definitions of the word.
Everyone uses "intelligence" to mean something slightly different, so for this to be a useful claim to make or refute we need to come up with new, intentionally-pedantic, terms (or new domain-specific definitions for vague existing ones).
Yes, trying to communicate (or watching others try to communicate) about these topics is incredibly frustrating because it's pretty much impossible to make any progress without interrogating people's different definitions, but nobody wants to do that because it would mean being pedantic, splitting hairs, etc.
It's not like this is a new problem. Turing had a definition most of a century ago, he wasn't the first and certainly wasn't the last. I don't think we need new terms necessarily, and I doubt we're all going to agree on a definition tomorrow.
I'm no intelligence researcher or philosopher; but, I think LLMs make us confront the (IMO, now clear) distinction between cleverness (intuition), reasoning (rational argument), and consciousness. I suspect that we think of "intelligence" as either of the first two welded to the latter. In that vein, I'd say that consciousness may be just another emotion: happiness, sadness, egoness.
I'd say an entity capable of instructing one of the leading mathematicians of his era is pretty clearly intelligent by any reasonable measure - however it might be arriving at its output.
I think we have wildly different conclusions about what happened here. You see the machine as instructing Terrence Tao, as if it were Plato teaching Socrates about the theory of forms; I see Terrence Tao using the machine to teach himself, like an intelligent student uses a book. In this case, it's just a book that fools us into believing it can think and reason like we do, because it generates language in much the same way we do when we think and reason.
> that's some Harry Potter kind of "writes itself" book.
I'm sure people thought calculators and, indeed, computers themselves were very Harry Potter as well when they first came out. But in the fullness of time the magic and mystique has drained away, and we're left with the understanding that they're just tools.
> at this point, for me, any comment about LLMs that begins with "it's just ..." is hard to take seriously.
Similarly I have a hard time taking seriously the people who make breathless claims of intelligence where there's only a text calculator with weights applied. It's like watching the devout cry "miracle!" at every strangely shaped piece of toast.
I haven't even been convinced it's fundamentally different from biological intelligence. But it's clearly still missing a few ingredients. But we are really close.
> If AI researchers cared about scientific thinking, they would be intensely focused on the brains of bees.
Basically every academic AI researcher in history was doing what you described. The AI industrialists stopped caring 6 years ago once they realized LLMs seem to have been the only thing in 80 years that actually seems to work at any useful level.
There are plenty of pioneering scientists who are either returning to actual AI research (Yann Lecun, Ilya, etc), and plenty who never left (Richard Sutton) who are doing exactly what you are talking about.
> Basically every academic AI researcher in history was doing what you described.
That is not true. Alan Turing did not view things that way, his test would say that a dog has zero intelligence. Neither did any of the MIT Lispers. And neither do Lecun or Sutskever or Sutton! They are all focused on human intelligence. None of them are even slightly concerned about an AI which is intelligent before it learns any language.
> the only thing in 80 years that actually seems to work at any useful level
This isn't true either! Mathematica / Maple / etc are "old-fashioned AI" and they obviously work. The Lisp expert systems were also useful, though less so than an LLM.
> And neither do Lecun or Sutskever or Sutton! They are all focused on human intelligence. None of them are even slightly concerned about an AI which is intelligent before it learns any language.
??? https://www.youtube.com/watch?v=GvibIstOn_E his arguemtn here is clearly built around using some sort of sensory data to build a model of the world like humans (animals) do. also you clearly decline to mention Lecun who has made this point ad-infinitum
> This isn't true either! Mathematica / Maple / etc are "old-fashioned AI" and they obviously work. The Lisp expert systems were also useful, though less so than an LLM.
i personally find it very strange that non-deep learning AI approaches which essentially boiled down to a giant bundle of if statements, or some very simple statistical modeling were called AI in the first place.
There is no intelligence. If anything, this just shows that natural language and mathematics are both fields which are structured in a logically computable way. And if you have a machine that can compute symbolic logic, you can process both natural language and mathematics.
A second corollary is that rational consciousness and thought is less likely to be contained in language than previously thought, because if language is so simple that a machine can process it, it can't contain consciousness.
If natural language was structured in a logically computable way, we'd have had interesting chatbots by the late 80s, basically as soon as a dictionary fit in local RAM, and for the same reason we got compilers.
Da hole raisin y nat-lang be v. hard is dat i kan rite lik dis an it be cool 4 native engrish speekrs 2 unerstand. LLMs are of course fine with this sentence in exactly the way that Zork's engine couldn't be.
The underlying structure of language, which is grammar, is obviously logical. That the symbols used to represent this grammar can be sometimes fuzzy or ambiguous, is no problem for a machine that takes context and probability into account when translating words to the underlying grammar structure.
It's not "obviously logical", it's a pattern which we mimic to avoid mockery.
example For, semi-randomise I word order can this like, Yoda worse than, and be understood.
> is no problem for a machine that takes context and probability into account when translating words to the underlying grammar structure.
We had to invent Transformers to be able to do that with reliability anything close to being worth caring about. Transformers have to learn from examples, not be pre-programmed.
That's just defining intelligence or consciousness as whatever we specifically can't put in a machine. It's not a very useful definition. (And it's one that completely breaks down to nothing if we do manage to fully put these things into machines or somehow prove it's possible.)
I'll have a blog post up tomorrow about it but the Jacobian Conjecture counterexample is a very funny cognitohazard for LLM assistants. It's a paradox for modern LLMs: they have enough math skills such that they can easily compute the Jacobian to formally verify the counterargument, but its own knowledge base is locked prior July 19th 2026 where all it knows is that the Jacobian Conjecture is unsolved and a random chat user providing such a proof is highly unlikely.
I wonder whether when the fact that AIs have started solving conjectures will enter the training data, they will become more confident in their abilities.
The models are just a reflection of how you prompt them. When I posted the counterexample, in dry language with a dry personality setting, claiming credit for it with search disabled, GPT simply verified that it was correct but noted that it could not ascertain novelty or priority and that external verification was required. "Model reacts in crazy ways when my prompt influences it to" is really, really not interesting.
Similar to the story of George Dantzig, who was late to class and solved two open problems in statistics because he mistook them for homework, I think the current batch of frontier LLMs are chained up by knowing which problems are supposed to be unsolved. If they're let free (probably via some targeted RLHF) we might get a flurry of solutions to open problems.
But a property of intelligence is to know when to stop, if we treat intelligence as some sort of search and not some a priori intuition of the entire space. Seems kind of hard, if not impossible, to train for specifically that.
It's astonishing to me that a technical conversation at that level can be had with a machine that is performing computations to statistically determine what tokens it should use based on numerical weights and relationships. It just doesn't seem like it should be able to come up with details and insights like this, assisting one of the most intelligent humans on the planet to work through something so detailed.
probably like a minute or two? im pretty sure someone unironically said stochastic parrot on the HN post with the tweet announcing the counterexample, and ive read several comments with similar sentiments today (including in this thread)
I don't understand any of the math here, but I had two thoughts. Soon we'll have explainer agents that translate these according to my level so I can, with effort and interest, follow along and stretch my understanding boundary bit by bit.
Two, at some point AIs will be able to use other context like the fact that this is Terrence Tao and not your average Joe and change how it answers, either in tone or structure.
Fork Tao’s convo and prompt this (with your own math level described).
GPT did a great job of translating Tao’s questions and concepts (e.g. “pre image”) into a progression I could understand.
“Ok I have a PhD in financial math and undergrad in engineering math. I have almost zero knowledge of polynomial algebra / geometry, I know what a polynomial is and what roots are but not much beyond that. Could you try and explain to my level what questions the user I the conversation has asked and what the agent has responded with, we can probably go user query by user query to build up”
One thing I've repeatedly told people is that chatbots are often the most patient teachers we'll ever get (especially when explaining "stupid" questions) — compared to what we've encountered on StackOverflow or Reddit.
Ok, that's fair, and I think that AI isn't that useful for people who don't really know what they want to learn or do.
What I had in mind (and found personally useful myself) was being able to ask a chatbot to break something down into simpler and simpler concepts, until my weak fundamentals or lack of formal education could grasp some bit of it.
I'm not sure many humans (or colleagues at a workplace) would have the patience to tolerate the stupid questions I've been asking.
Maybe that's a point in favor of LLMs? "XY problems" are my pet peevee, because nearly universally whenever I see one called out, it's actually the responder not being able to comprehend that the asker may actually just need X.
I want to be able to take a conversation and ask for subconversations as red pen annotations "on the side". The linear nature of the context tends to frustrate this.
Soon we'll have explainer agents that translate these according to my level so I can, with effort and interest, follow along and stretch my understanding boundary bit by bit.
That's not going to happen. Mathematics isn't just unfamiliar, it's truly difficult to understand. You have to put in a lot of work to understand each concept and the concepts build upon each other to form a vast tower of abstractions that has been growing for thousands of years. Just as there is no royal road to geometry, there is no elevator to the top of the tower.
I'm not sure an AI will speed things up much. You would probably still need years of layers of foundational understanding to get the advanced material. We don't go through years of school to learn math just because teachers are bad - it's because complex subtle ideas are built on countless other ideas, and aren't necessarily compressible to something every layman can understand.
The years are broad though, the nice thing with AI explanations is that they can go deep quickly, and quite precisely down the path you need for your prior experience.
It's not a path, it's a tree, and a downward-facing one at that. To understand the root, you have to understand all of the leaves first, and all of the nodes above them, all the way up.
Most people, if they haven't studied mathematics in university, would need to learn hundreds of concepts just to get to the leaves of the tree, and many of these concepts are truly difficult to understand, requiring weeks of study and practice.
Oh for sure, I'm not denying the value of AI as a teacher, just saying that it's not going to speed things up much over a quality personal teacher/tutor.
Oh, but it will. Especially in math you depend on definitions and concepts defined earlier, and if you fall behind, perhaps in a class setting, it is hard to catch up, without having somebody who can explain it to you.
But, now, with world class knowledge possessing tutor, you can ask for an explanation of missed concepts, even embarrassingly stupid questions you would never ask a person.
Are any of ChatGPT's statements erroneous? (how come Terence Tao gets this high quality output but I get hallucinations when I ask simpler math stuff?)
I’ve had a similar experience using LLMs to have mini personal breakthroughs.
One thing I notice is many models say statements along the lines of “okay we have exhausted this thread it’s diminishing returns from here and we should stop and move on”
It’s funny because I’ve been building a tiny neural network maze solver (23 bytes solves 92.75% of unseen 2D mazes)
When I asked ChatGPT/Fable if we had anymore threads to pull to increase capability and decrease byte size, they both basically said no way - back when I was at ~166 byte models with a ~85% solve rate.
Throughout the experiment I just kept trying different approaches and eventually had 3 mini “breakthroughs” in this particular niche. But if I had listened to the models…
Anyway, these models are amazing to experiment with quickly, but they are dumb as hell and so absolute
LLMs do match the level of sophistication of the user and the quality of questions they ask. So questions about, how do you improve the level of question? You see the answer in Terry's exchange, both AI and humans are doing an exchange that is thought provoking on both sides for what interesting questions to ask. That is the most startling thing about this -- they are exploring the solution space with the same naivete, to some degree.
Physics, they describe general relativity as a two way street. Space tells mass how to move, and mass tells space how to bend.
Here, Terence tells AI what question to explore, AI tells him what questions to ask next.
Thousands of words and piles of equations and not a single mistake pointed out? I have zero domain knowledge here, but enough interactions with AI agents to think this is wildly crazy.
This is fascinating. I'm having a very hard time wrapping my head round how a statistical model designed to predict tokens creates output that contains such deep reasoning and insight about complex ideas that we'd think only humans can understand!
Yes, I know it's not just a dumb statistical model like a simple neural network. Yes, I know all about the vectors Q, K, V and how they contain long range contexts. But still! How does all of this emerge into something that can produce such insightful output? I still can't wrap my head around this. Am I dreaming? Am I living in a science fiction?
The most important prompt lesson everyone should take away: never ask yes / no / leading questions.
Almost all of Tao's questions begin with what, or why. That forces an open ended response, which is a great way to reduce or eliminate sycophancy and severe hallucinations. The less you steer, the more accurate it gets.
Imagine the AI's of the next century trying to explain incomprehensible dark matter math to the smartest humans of the time. David Deutsch says the human mind can comprehend _anything_. I think the next decades of AI-driven math research might put that assumption to the test.
I find it amazing how people can use AI to do things that seem hard but yesterday I could not figure out how to install a package on my system. It kept suggesting dependencies that don't exist, and telling me to use functions that are not in the system. The math does not math...
How were you expecting it to know what your system setup was? Did you ask it for some bash commands to get it the info it would need to get unstuck? Or were you just expecting magic?
What's worse is that HN doesn't even try to figure out how such a result could be obtained. They just take it at face value and go into dear diary mode.
Words and sentences to an LLM are like witchcraft. There are certain words, sentences that make LLMs go a certain way and do vastly better. Sometimes its not at all apparent what set of words will work to do what you want it to do. An example I have been using to do design at a high level is to say to claude.
```
A question is salient to the degree that its answer changes what we do next. Operationally, saliency = the product of four things:
- Decision-leverage — would resolving it one way vs another force a different design or invalidate a stated decision? (No leverage → drop, however interesting.)
- Residual uncertainty given current evidence — is it still genuinely open after reading the docs and the code? (Already settled → drop, however deep.)
- Load-bearing-ness — how much rests on the premise.
- Cost of finding out late — architecture-deciding / expensive-to-unwind raises priority; cheap-to-fix-later lowers it.
```
There are a few things to note about this prompt
1. There is no reason from looking at it that it should work, it even has the word load-bearing which people loathe, but it remarkably produces a stable design with questions from claude (atleast from claude Opus 4.8 and even better from Fable5). Otherwise the design document claude likes to really write are implementation level(code or otherwise). I usually pair this with matt pocock's grilling skill to make claude behave.
2. From design -> implementation, its is generally about understanding when claude is trying to trick you into making something sound like a good/easy solution but has tons of untested assumptions. Here you have to read and patiently spot if a how you would get to the solution is not clear. A common error here are when claude makes a big deal based on what it read and interpreted too seriously without questioning the assumptions. There are several more.
But it also comes down to your experience as a SWE, much like a mathematician's. The frustrating thing about it is, it feels tha a skilled mathematician working with AI can make them productive in ways that are more reliable as compared to a SWE (e.g. lean is deterministic and can provide very strong feedback and LLMs are very good at using that feedback). Maybe a mathematician can chime in on that?
Hey, Mr. Tao, where would you put the intelligence of the current models compared to top humans you surely mush have worked with? Perhaps given in the count of people you know that are higher than the newest LLMs? Also, how would you rate the speed of work compared to what your speed is, if this makes any sense?
I recall several mathematicians (possibly including Terence Tao) mentioning that fields in mathematics have become so specialized and isolated that a conference like the ICM feels more like a collection of mini-conferences. An expert in one area can barely understand a talk in another.
Modern AI feels like a godsend to mathematicians. It helps them break down boundaries and connect concepts in ways a mere mortal couldn't imagine.
I was a chemistry researcher this is true in all science.
I'm not sure LLMs can transform this, the incentive is to get more results in your nich, jumping topics don't help unless you have genuine interest and reason to.
The background is that a counterexample to a famous mathematical conjecture was recently posted on X by an Anthropic employee. The counterexample, in form of a polynomial, is easy to validate by doing simple calculations, but it's not clear why it works and why it is the way it is, from a deeper mathematical perspective. Specifically, the properties of the polynomial suggest that it's not just an accidental finding but has some involved geometric construction behind it.
This is what Terry Tao's conversation with ChatGPT starts with: "does this polynomial have any symmetry or structure that makes the counterexample seem less miraculous?".
Using the counterexample, work backwards to get the intuition behind it so that it can be constructed by an explicit procedure rather than taken out of thin air.
The result is his blog post, discussed here: https://news.ycombinator.com/item?id=48998362
Maybe Terrence is chasing too many red herrings. Maybe he should just have asked it to find a counter example to the conjecture and on success explain how it was found.
Web clipper is great. just tried the reader mode on this chatgpt transcript, it only shows 1 page of it. Is the purpose of reader mode to enable interactive annotation before saving to notes?
Presumably this entire conversation is at least somewhat typical of the way high level mathematicians talk to each other in ego-less fashion? Although, it would be interesting to what extent the model was trained on math conversation as opposed to just analysis and proofs.
The flow of the whole conversation, with Tao guiding and the model calculating, gave me the feel of Tao perhaps talking to himself - just that each of those model responses would have taken him much longer to calculate by hand.
It would be fascinating to hear Tao talk about what he may have learnt from this, and if it suggests approaches to other problems he might not have considered, as well as an analysis of the original Fable counter-example construction.
> If the Jacobian is a nonzero constant everywhere this means that nowhere does the the function flatten out. [...] What was conjectured is that this local invertibility property everywhere would mean global invertibility.
> it doesn't overturn much. [...] the resolution of this is a "surprise" in that it is a very long open with many failed proof attempts. But the direction it resolved was not surprising.
> From a comment by j2kun https://news.ycombinator.com/item?id=49000833 , someone asked Fable and there was an almost counterexample in 2d but it uses division too. [Instead of f=x^2+7xy they have something like f=x^2+7x/y so it's not a polynomial.] It looks like the new trick was to use a third variable to avoid the division.
I'm watching how Tao uses AI, and it's interesting.
Expand the entire expression, then change the representation to find the core axis. You can't see the axis from just one perspective, so you change the representation. In programming terms, it's like applying multiple domain models. Then break it down into small contract units. Why is it a Jacobian monomial? Why does x satisfy a cubic equation? And so on.
Then swap out the modeling under a hypothesis, assemble it all back together, and verify it through the equation.
This feels similar to modeling in programming.
Observe the whole -> explore better modeling -> decompose local problem -> verify independently -> reason about the highre level structure -> integrate back into the original problem.
This feels similar to when I receive work from a client and write a programming proposal
Been doing something similar and I would add that playing multiple LLMs off on each other gets a far superior result.
One LLM would suggest a tightening of a particular axiom, and I would ask the rest what the consequences are: what is gained, what is lost and decide whether to use it. Often another would suggest a tweak that then goes back and a recursion.
To me, this shows that extremely talented and qualified mathematicians (can) use frontier-level LLMs to automate their personal grind-y workloads that would otherwise (probably) take more time to accomplish with natural intelligence.
By itself, no consequence. But over time, provided we keep pumping out talented and qualified mathematicians and keep subsidizing costs, we could maybe hit a breakthrough... somewhere... that has real impact.
It's an indicator of AI progress. The solutions aren't especially revolutionary, but no person had been able to solve them after decades of collective attempts.
To be fair I don’t think there were too many people really trying to. Symbolically, one could make a parameterization of the Jacobian determinant and then brute force a solution, if one had known such a polynomial existed in only three dimensions.
This is not true at all. The parameter space is absolutely MASSIVE. The counterexample is a degree 7 polynomial in 3 variables, which means 360 coefficients. There's no particular way to bound these coefficients or even the degree or number of variables apriori, but assume you somehow did. Also assume you were confident that it would work with integer coefficients bounded from -12 to 12. Now you have to iterate over 360 degrees of freedom, verify that the Jacobian is a nonzero constant, and somehow show uninvertibility of the transformation, which is not a particularly simple task.
If you searched for coefficients from -12 to 12, this would be 25^360 = 2 * 10^503 different possibilities. A common reference point is that there are 10^80 atoms in the observable universe. Sure you could probably reduce this a bit with clever tricks, but the starting point makes the method completely unviable, even with the knowledge: A) a counterexample exists, B) it's in 3 variables, C) it's in degree 7 or less, D) it's in integer coefficients, E) those coefficients are 12 or lower.
Here the search wouldn't have been chosing the coefficients independently. Note that one intermediate variable is a polynomial in the input variables, and it is used in other polynomials. A search over expressions like the ones in the counterexample would have a much smaller search space.
No, I’m not saying you would know in advance that it was possible, but sometimes you visit the crystal cave and the diamond is just sitting there, so why not work out the odds?
I learned from poking around that checking the invertibility of a system in C is a much, much harder problem than I thought. Nonetheless if that were no object, let’s say coefficients from -16 to 15 (5 bits) times eight terms times choosing up to cubes (64) times three equations is searchable, especially since you have only the final combination of coefficients in the determinant. It’s not impossible to generate the equations like this Fizzbuzz style.
Edit: no. 2048 possible monomials, to the 24th power, not times 24. Fine, can’t brute force it.
If I pull out the two terms 1+xy and 3 + 4xy as new variables, then make three polynomials that are <= 3 terms in each with coefficients in the range -3 to 3, then there are something like 10^19 possibilities. Multiply this by the various simple possibilities for the definitions of those two new variables.
The coefficients are mostly 1, so biasing toward that would make it much faster.
Oh yes there were. The Jacobian conjecture is "notorious for the large number of published and unpublished false proofs which turned out to contain subtle errors."
It's not quite the Reimann hypothesis, but many prominent mathematicians have spent years working on this problem. Yitang Zhang wrote his PhD thesis on it.
That’s the counterexample. Low integer coefficients, power 7 in three variables. If someone said it was there, couldn’t we all have written a pretty simple brute force solution for the search space, especially with the constraints that the symbolic determinant had to cancel to a constant?
I don't think you even understand the problem. The determinant needs to be a non-zero constant AND you need to prove that particular map is not globally injective, meaning you have to find at least two points mapping to the same value. Of course it looks easy when someone shows you the counterexample.
Some materials are readily available on eMazon and aBay, so I've taken the liberty of ordering those for you. Your credit card bill will be a bit high this month, but it'll be worth it. There weren't any sellers for the advanced EUV lithography machines, so I've hacked into the only place on earth that makes them, changed their records and had them ship it to you. Expect to receive a "pinball machine" from Amsterdam, soon. I've instructed the roomba connected to the local network to start assembling stuff while we wait for the other materials. Oh, and you're gonna need a new toaster.
"I’ve activated pro. Can you continue to look for a potential geometric explanation of the X_3 ~ A3 miracle that avoids coordinates or other unmotivated constructions ?"
It's awesome to publish this kind of thing - great PR at least. Even if you don't understand the details, it's interesting to be able to peek into a technical conversation that a world class mathematician is having about their work with a "colleague". It's also the clearest demonstration I've seen of the vision AI people have about a future with truly intelligent copilots in super technical fields.
Is ChatGPT's interface always this atrociously jittery? Or is it just because this page is getting an HN hug-of-death right now? Every time I try to scroll the whole page goes blank for a few seconds and then re-renders.
I think that's partly because it's a fairly long conversation and partly because of all the LaTeX. There's enough formulas there to fill a small text book, and I doubt their renderer is all that efficient.
So, the Jacobian Conjecture was done, via an counterexample. Can we now put the models to work on an even more difficult problem: Scrolling 100k of text, on a 128GB 24 core processor, smoothly in a browser?
I expect Centaur Field Medals to be awarded. It's not clear how much steering Levent Alpöge did to get the result. In math it's very common to hide the search pattern and show only a simplified path to reach the final result.
Specifically, if the eigenvalues all have real parts that are negative, then the system is stable near the stationary point. If any eigenvalue has a real part that is positive, then the point is unstable. If the largest real part of the eigenvalues is zero, then the Jacobian matrix does not allow for an evaluation of the stability.
Yes—for a continuous-time autonomous system
x
˙
=f(x),f(x
∗
)=0,
this is the standard linearization criterion, with J=Df(x
∗
):
If every eigenvalue of J has strictly negative real part, then x
∗
is locally exponentially asymptotically stable.
If at least one eigenvalue has strictly positive real part, then x
∗
is unstable.
If no eigenvalue has positive real part but at least one has real part 0, linearization is generally inconclusive. Nonlinear terms or a center-manifold analysis are needed.
The last case really can go either way. For example, all three scalar equations below have Jacobian J=0 at x=0:
x
˙
=−x
3
,
x
˙
=x
3
,
x
˙
=0.
Yet 0 is respectively asymptotically stable, unstable, and neutrally stable.
A slightly more precise wording is therefore:
If the spectral abscissa
α(J)=
λ∈σ(J)
max
Reλ
is negative, the equilibrium is locally exponentially stable. If α(J)>0, it is unstable. If α(J)=0, the Jacobian test is inconclusive.
This criterion concerns the Jacobian matrix of a dynamical system at an equilibrium; it is unrelated to the “constant Jacobian determinant” condition in the Jacobian conjecture.
It's fun if you ask ChatGPT to guess the identity of its interlocutor :) It will guess math researcher or paper author without hints, but if you give it some additional hints, "this was shared over the internet", "it's someone willing to work with AI", it will guess Terence Tao as the first choice.
/-!
# A counterexample to the Jacobian conjecture in dimension three
We formalize the polynomial map
F : ℂ³ → ℂ³
whose Jacobian determinant is the constant `-2`, but which is not injective.
The final theorem `jacobianConjecture3_false` states the failure of the
polynomial-inverse formulation of the Jacobian conjecture in dimension three.
-/
namespace MvPolynomial
variable {R : Type} {σ : Type}
/-- The formal Jacobian matrix of a family of multivariate polynomials. -/
def jacobianMatrix [CommSemiring R] [DecidableEq σ]
(F : σ → MvPolynomial σ R) :
Matrix σ σ (MvPolynomial σ R) :=
Matrix.of fun i j ↦ pderiv j (F i)
/-- Evaluation of a polynomial map at a point. -/
def evalMap [CommSemiring R]
(F : σ → MvPolynomial σ R) (p : σ → R) : σ → R :=
fun i ↦ eval p (F i)
end MvPolynomial
open MvPolynomial
namespace JacobianCounterexample
variable (K : Type) [Field K]
/--
The three components of the polynomial counterexample.
The variables `X 0`, `X 1`, `X 2` correspond respectively to `x`, `y`, `z`.
-/
def F : Fin 3 → MvPolynomial (Fin 3) K :=
![
(1 + X 0 X 1) ^ 3 * X 2
+ X 1 ^ 2 * (1 + X 0 * X 1)
* (C 4 + C 3 * (X 0 * X 1)),
X 1
+ C 3 * X 0 * (1 + X 0 * X 1) ^ 2 * X 2
+ C 3 * X 0 * X 1 ^ 2
* (C 4 + C 3 * (X 0 * X 1)),
C 2 * X 0
- C 3 * X 0 ^ 2 * X 1
- X 0 ^ 3 * X 2
]
/--
The formal Jacobian determinant of `F` is the constant polynomial `-2`.
-/
theorem jacobianDet_F :
jacobianDet (F K) = C (-2) := by
simp only [
jacobianDet,
jacobianMatrix,
det_fin_three,
of_apply,
F,
cons_val_zero,
cons_val_one,
cons_val_two,
head_cons,
tail_cons,
map_add,
map_sub,
Derivation.map_one_eq_zero,
pderiv_mul,
pderiv_pow,
pderiv_C,
pderiv_X_self,
pderiv_X_of_ne,
ne_eq,
Fin.reduceEq,
not_false_eq_true
]
simp only [map_neg, map_ofNat]
ring
variable {K}
/--
The point `(0, 0, -1/4)` maps to `(-1/4, 0, 0)`.
-/
theorem evalMap_F_p0 :
evalMap (F K) ![0, 0, -(1 / 4)] =
![-(1 / 4), 0, 0] := by
funext i
fin_cases i <;> simp [evalMap, F]
/--
Provided `2 ≠ 0`, the point `(1, -3/2, 13/2)` also maps to
`(-1/4, 0, 0)`.
-/
theorem evalMap_F_p1 (h2 : (2 : K) ≠ 0) :
evalMap (F K) ![1, -(3 / 2), 13 / 2] =
![-(1 / 4), 0, 0] := by
have h4 : (4 : K) ≠ 0 :=
(by norm_num : (2 : K) * 2 = 4) ▸ mul_ne_zero h2 h2
funext i
fin_cases i <;>
simp [evalMap, F] <;>
field_simp [h4] <;>
ring
end JacobianCounterexample
open JacobianCounterexample
/--
The Jacobian determinant of the displayed map over `ℂ` is a unit.
Indeed, it is the nonzero constant `-2`.
-/
theorem F_jacobian_isUnit :
IsUnit (jacobianDet (F ℂ)) := by
rw [jacobianDet_F]
exact
(isUnit_iff_ne_zero.mpr
(by norm_num : (-2 : ℂ) ≠ 0)).map C
/--
The polynomial map `F : ℂ³ → ℂ³` is not injective.
-/
theorem F_not_injective :
¬ Injective (evalMap (F ℂ)) := by
intro hInjective
have hp :
(![0, 0, -(1 / 4)] : Fin 3 → ℂ) =
![1, -(3 / 2), 13 / 2] :=
hInjective
((evalMap_F_p0 (K := ℂ)).trans
(evalMap_F_p1 (K := ℂ) (by norm_num)).symm)
exact zero_ne_one (congrFun hp 0)
/--
The injectivity consequence of the dimension-three Jacobian conjecture
is false over `ℂ`.
-/
theorem unitJacobian_does_not_imply_injective :
¬ ∀ P : Fin 3 → MvPolynomial (Fin 3) ℂ,
IsUnit (jacobianDet P) →
Injective (evalMap P) := by
intro h
exact F_not_injective (h (F ℂ) F_jacobian_isUnit)
/-!
We now formulate the polynomial-inverse version explicitly.
-/
/-- Polynomial self-maps of affine three-space over `ℂ`. -/
abbrev PolyMap3 :=
Fin 3 → MvPolynomial (Fin 3) ℂ
/--
A polynomial map has a polynomial two-sided inverse, viewed as functions
on `ℂ³`.
-/
def HasPolynomialInverse (P : PolyMap3) : Prop :=
∃ Q : PolyMap3,
LeftInverse (evalMap Q) (evalMap P) ∧
RightInverse (evalMap Q) (evalMap P)
/--
The polynomial-inverse formulation of the Jacobian conjecture in
dimension three.
-/
def JacobianConjecture3 : Prop :=
∀ P : PolyMap3,
IsUnit (jacobianDet P) →
HasPolynomialInverse P
/--
The Jacobian conjecture in dimension three is false.
-/
theorem jacobianConjecture3_false :
¬ JacobianConjecture3 := by
intro hJC
unfold JacobianConjecture3 at hJC
apply unitJacobian_does_not_imply_injective
intro P hP
rcases hJC P hP with ⟨Q, hleft, _⟩
exact hleft.injective
Imagine getting free tokens from OpenAI and the special flag on your account that tells it to "never nerf you" ?
To be clear, I've had some great success using these tools, they're amazing, but it's also very obvious that (despite it being a stochastic tool) they're clearly changing things behind the scenes a lot. GPT-5.6 for example should not be constantly tweaked without telling us. Make it 5.6.1 or something, and if you're over capacity, just say so rather than returning lower quality results.
The big take away for is the fact that the ONLY reason why chatgpt was able to get to this counterexample was because of the knowledge of the person driving the conversation.
I don't think chatgpt could have come to this on its own without the amount of steering he did, which just validates the idea that AI is not a replacement for human expertise but an amplifier.
Has the conversation that originally led to the counterexample been released? Surely it was similar to this one, also driven by a highly knowledgeable mathematician.
No AI would have been able to find it if asked to "Find a counterexample to the Jacobian conjecture. Make no mistakes".
> I don't think chatgpt could have come to this on its own without the amount of steering he did, which just validates the idea that AI is not a replacement for human expertise but an amplifier.
The problem is that, what happens to human expertise as people start to use AI earlier and earlier in their careers, so that in 50 years? The problem is that Terry Tao spent decades as a mathematician before ever encoutering AI. Of course he and people his age will be able to drive AI somewhat sanely and use it to their advantage.
But as more people grow up with AI, they will likely not reach levels like Terry Tao because their exposure to AI and the temptation to use it will certainly dull raw human intellect over time.
I don't know if I agree with the premise that having access to AI results in dulling human intellect.
I feel like to get to Terry's level you need a combination of passion and aptitude for the subject. People that don't want to learn about a topic will always look for shortcuts, which I think represents the vast majority of people. Terry Tao is quite exceptional, and I think exceptional people will still exist even when the "easy" button is bigger than it's ever been.
The problem is that learning never stops. You can't just go through school, become a junior in X field, then start using AI. Then you'll forever be a junior. You have to make a choice when you're working a job: either use AI-first workflows to increase your productivity, or don't and increase your knowledge and skill.
My wording is specific. You can use AI and increase knowledge and skill, but this requires you to be driving the AI at such a low level you don't get the full speedup. As an example, you can write code yourself with AI as an assistant, but it's not as fast as AI writing everything.
So now we end up stuck in a situation where every professional needs to choose between long term skill growth or speed, as anyone who's worked a job before knows, speed will always be the one chosen.
I agree with that. However, even people who want to learn will take shortcuts, only to a lesser degree. And I do think that will dull their ability to work on their own. Even if there are one or two people who have some Luddite bent (like myself) who avoid many technologies like AI, a much larger proportion of people with dulled intellects will likely make the entire environment worse as well for those top people that still need healthy environments to survive.
I can use AI for coding after decades of coding. I can't use it for theoretical physics because I can't evaluate the responses.
https://larsfaye.com/articles/ai-coding-will-prevent-experti...
If someone asks about AI I tell them step 1 is ask it how to do something you know all about. Step 2 is consider everything else you ask will be that inaccurate.
I wonder if this key point actually holds though:
>The skills to do so, however, are a function of someone who has experienced the friction and challenges over time that culminate in "good taste".
It's certainly sometimes true, but I don't think it's a general rule. Sometimes friction is just friction and sometimes you spend 1000 hours learning something that disappears and becomes obsolete or at least irrelevant to the goal.
Programmers used to need to know the instruction set of the CPU, assembly language and so on. Some still do but for most developers today that's not useful. Everything you know about 6800 assembly will not make your note-taking app any better.
I think we are in a state where AI tools so easily mimic what we used to do by hand that we think the friction is gone, but that's because we haven't raised the bar yet. One day we'll look at the Fable one-shot that's better than anything we ever made by hand ourselves and say "It could be even better".
And then the friction is back, just on a new level.
It could. It could make a simple note-taking app not take gigabytes of memory and take visible delay on each click. Most people don't bother of course because simple note-taking app is not worth the effort. It's possible to do better, it's just often not practical.
Similarly, sometimes I have to manually validate the output of an ai tool, analyzed over a large text I can’t practically read and understand, and best way I’ve found is to ask the tool (or another ai) to ‘show your work,’ ie make it help me make the determination by showing places in the text I have to read to follow its reasoning. We can never trust another ai directly to assess the validity of another ai.
A lot of times that will take physical tests. Or in the case of math/logic, tests to validate each line or validated sources of previously proved theorems
But they did get good and this seems like a non-issue.
> If these tools demand expertise, yet the tools can actively circumvent the friction that cultivates expertise, then what is the path for one to become an expert so they can effectively use these tools?
But I don't think a beginner would have the same experience. The AI still makes A LOT of stupid mistakes and decisions, but I catch them early enough (sometimes while it's still showing it's reasoning steps), stop the prompt, guide it on the right path, rinse and repeat.
Sometimes I am lazy and give the AI a broader prompt, let it do its thing, and then I come back to see that it spent 90% of the time working on some part/feature/implementation that was not really needed and that it over-engineered the solution.
I rarely write any line of code know or manually change any code, I tell the AI how to do it and what to watch out for. Many times it catches some edge-cases before I even haven to think about them. I do still feel like both me and the AI could miss some edge-cases now, because I'm thinking less about the implementation and what problems can arise, but I feel like 90% of "gotchas" are already engrained in my planning after so many years of coding and problem solving.
You can't use it for theoretical physics because you have no meaningful question and there is no result that you can do anything with.
In contrast you don't need to be a coder to understand if your to-do list for cats works: You have an idea of what you want. You know the rough shape of what an app is and what it can do. You can put it in front of your can and look at it go. Or not.
It turned out it was using LocalStorage, which is not entirely unreasonable, but there are obvious drawbacks (e.g if you move the file it might become inaccessible, if you switch machines there's no convenient way to transfer the data, there are all kinds of ways to lose it, etc..).
In this case "how is this storing my data" is a fundamental question with plenty of implications for your app over its lifetime, but most non-computer people don't think to ask it at all. These days many users enter CS programs without knowing how to manage files and folders on their computer, because even that is often abstracted away.
But if you are building some complex data science statistical model and you don’t have any domain knowledge you won’t even know what to ask for.
I think pretty much the opposite. I can ask it to explain to me in ways I understand it. Even drill down the simplest of equations. Since llms have infinite patience. All I need to learn anything is patience.
And if we (LLM tool operators) don’t know the subject matter in question, we can’t easily distinguish what they are right or wrong about.
Professor Tao also put out some YouTubes of him working with an older LLM to do Lean proofs, and his intelligence matters - things where I would be stuck for hours trying to understand what was failing in the model proof were just instantly clear to him and fixed in thirty seconds.
And I am an ok coder (rather than a bad maths grad student), but the LLM will happily thrash around the edges of a problem with me with no clear convergence when I don’t have that clear insight and the problem is weirdly presented enough; I still find the trick to walk around the block and disengage and then return knowing exactly what to do (now prompting it to the right thing) to be a super power for getting what I want out of the coding system.
More broadly, LLMs or anything at all, needs a verifier. If the task can be automatically verified, great, then anyone can use them. If you can't automate the verification, then you need to be able to verify it using your knowledge. Knowledge required to verify is lower than the knowledge required to create in very few cases. This is why you still need a fully trained human verifier. We are yet to reorganise the overall "tasks" in the economy such that verification can be done with much lesser knowledge, for no reason other than that there was never demand for this until creation became automatic few years ago. It is possible and is slowly being done, there are many many startups working on automating verification in different fields and in many cases we will see fields reorganise themselves to be more amenable to automatic verification. Note that _effort_ required to verify is much lower than what is required to create, for almost anybody, and LLMs have economic use just due to that alone, albeit in the hands of a knowledgeable human.
Edit: do give counter examples if you have any in maths, physics, chemistry, biology etc
I asked Opus 4.8 to critique my algebra notes (these are definitely not masters level- just undergrad second year). It hallucinated an error it claimed I made in the notes and then put in a correction I didn't need because what I had written was correct.
What I said in my notes was:
It left-off the "non-trivial" and said that what I said was this was the smallest case of a finitely-generated group which is incorrect because it excludes the trivial group.The point is I see the LLMs as a "smart friend"/colleague I can work with but I do think critically about what I get told and don't just take it as face value because it's not always correct for sure even in relatively basic cases like this.
I think you guys are misunderstanding me, you can still talk to a llm to learn everything about physics or maths.
Let’s not pretend you need to be programmer to use AI for programming like mathematicians need to solve math problems. Programming (most of the time)solves real problems rather than abstract constructs.
AI is already good enough to create the next “Facebook”(v1 and maybe v2 as well) without any real programmer. This makes the AI a big enabler and reduces the need for programmers vastly in the early stages of any business.
That being said as more online businesses will flourish these will require actual programmers after they get enough traction so the debate is still on if it will lead to massive layoffs in our industry.
Facebooks early years were dominated by a concern for users per engineer ratio; the rather florid style of LLMs suggest that they will generate so many systems of such a high complexity you will get Hadoop levels of non-application support needed - forget self healing, it’ll need constant LLM spend just to keep running at scale.
Any actual physicist would probably be able to tell me why that's a category error. I don't know why because I'm not one. But there are actual mathematics underlying a statement like that and I'm 99% sure the maths don't work like that.
By the way I think that's why everyone thinks of so many weird physics ideas more than other fields. It's because things are explained in words that hide math, and you can make hypotheses in words that would be obviously nonsense at the level of maths. Like your boss asking why you don't just recompile the cloud.
Most people posting on the internet, especially people who know about more complex subjects, are terrible teachers. Teaching is it's own skill
That is what will happen though to future generations: they won't be able to use it for anything because none of them will have the "decades of coding" experience that you have had the privelege to have without AI.
to which betteridge's law of headlines says: NO.
A tool, even if it is a chisel, in the hands of a master sculptor would obviously result in a wildly different outcome.
I've mostly seen people trying to oneshot a result, while I'll quickly experienced that going through steps/discovery was more effective and more satisfying, since you can always steer it back in the right direction; while oneshotting is hit (and it kind feel like magic) or miss (and you'll have to rework your prompt).
It is still ultimately Terence that is steering things.
What is crazy to me is how few of other people's conversations like this I have actually read.
Tao is really great for this because the anti-AI crowd can't really chime in and take the thread in a pointless direction. It is hard to think of another human alive who can carry the weight of unassailable authority in the same way.
What's somewhat disturbing is just how much Fable's code really does benefit from the review. It tends to leave a lot of low-hanging fruit, and you can see it getting kind of impatient when repeatedly called on it.
This is basically how Fable told me to get therapy.
It's still what I do 90% of the case until I feel it's good enough for my usage.
I think it's not even about the ability to steer the AI. Just the ability to ask the right questions
The first one was someone proving another conjecture false by just repeatedly saying "keep going" to ChatGPT: https://x.com/DmitryRybin1/status/2079904005652893709
What a world we live in.
Scroll... wait for render... scroll... wait for render... repeat...
We live in a world where there's so much crazy technology but few people use it to make products better or to improve people's lives. Most people use it to just make more money. It's funny too, because there's a million things we could use that tech for that actually reduce costs. Hell, what would be the economic impact of putting ML systems into streetlights so they properly coordinate. Don't even need LLMs for that, and I'm sure it'd save billions of dollars a year. Just a lack of will. I wonder if this will ever change. Is this how we create the high tech low life future?
(FWIW, no problems if I jump into the app. It's purely a web thing, but my point more illustrative than specific)
Did Tao do that?
We recently had some bugs fixed in the geometry kernel of solvespace. Not much conversation, but the analysis from the AI was amazing:
https://github.com/solvespace/solvespace/pull/1729
https://github.com/solvespace/solvespace/pull/1730
https://github.com/solvespace/solvespace/pull/1731
From the Validation section of PR 1730:
"The model family was reconstructed programmatically (parameterized cuboid stack) and swept over 2,304 configurations — extrusion directions, workplane-normal orientations, sketch windings, D's plane/height/depth/extent, including all the exact-coincidence heights. Zero failures with the fix; 576 failing configurations without it. The generator is available on request."
It looks like it wrote a python script to generate test cases in our file format for testing. Just... you know, as a side quest.
On the one hand, agents have done this sort of thing for a year+, if you pushed them to check their work. On the other, I absolutely can feel Fable and Sol have crossed a threshold where they can be trusted far more than before. Huge difference between plans written by Opus or Fable.
Accumulated AI slop can simply be cleaned up by better models. Real cost of technical debt is shrinking due to the the inflationary devaluation of code!
For posterity, this indeed works for most problems where an agent might give up. LLMs don't inherently know something is impossible.
The phrase I tend to use in my harder prompts to automate this with a sane loop breaker:
> **REPEAT THIS PROCESS UNTIL CONVERGENCE AND YOU ARE OUT OF OPTIMIZATION IDEAS.** You have permission to keep iterating.
"Famous mathematician uses ChatGPT to solve famous math problem" is equally technically impressive, but now you're telling those very same knowledge workers "that famous mathematician could've been you". It puts you in the driver's seat, and provides a clear path forward — subscribe, use our product, and reap the rewards.
My guess is they don't do this because they don't have time. They're all trying to build a company that makes them generationally wealthy before the music stops.
EDIT: oh, they do offer grants of $1000 of API credits to researchers https://help.openai.com/en/articles/10139500-researcher-acce...
As an aside, there's this idea in math that when you create a new field you shouldn't solve all the easy problems - you need to entice other people to learn about the field!
I expect there's some element of that here. It's much better for OpenAI and Anthropic if their users are the ones discovering and writing up the results of the AI solving hard math. Look at the high school and college age students who have become ai power users and potentially learned how to use git to contribute ai generated solutions
(Related: I believe Terry has also gotten all of the subscriptions gifted to him)
https://xenaproject.wordpress.com/2026/07/20/human-mathemati...
Depends. The headline 'some rando solved a famous problem with a consumer grade subscription' might be a really good way to sell these subscriptions.
"Some already famous guy with special access solved a problem" might not be as inspiring.
Could they do it? Sure, but to what end? It would make more people hate them and feel even more "take our interesting work." Pitching it as a useful tool just makes more sense on all levels
Although if I were a mathematical quantum physicist I might be trying to prompt one into a % mathematical field formalized quantum field theory. Weirdly this sort of obvious step has not been accomplished in the last 100 years.
That's why the free market works, millions of agents in parallel beats any planned economy (by humans)
https://openai.com/index/model-disproves-discrete-geometry-c...
Marketing for huge bucks sounds like this.
You will own nothing and will be happy (that you are still alive). Probably.
The interesting part of this: while some leading implementations use the same LLM and context for the evaluator, some call out to a different context, some to a tuned LLM and different context; so which is better? many blog-scale benchmarks are calling it a toss-up that is highly dependent on the primary model.
(Of course LLMs can help there, get it right etc, just a caveat that people have to keep in mind)
I would love any tips for other folks who have successfully used similar approaches.
LLM: This package hasn't made it to production.
ME: are you sure? i see it right here!
LLM: You're right to push back. I inferred that based on weak data. I see now that the package has been deployed!
If the above conversation is typical for me, how could one expect to achieve a sound result by repeatedly prompting an LLM to simply "keep going" in dense mathematical proofs? Perhaps the user in this case had actually checked the LLM's work before issuing the prompt, but I think you see my point anyway.
I'll have a third for you soon, here's the obligatory result in a tweet. A detailed post about it is in the works.
For instance, would it be affordable for a research lab to not rely on OpenAI?
[1]: https://en.wikipedia.org/wiki/Dinitz_theorem
"Worked for 88m 24s... >"
"<h1>Complete finite counterexample</h1>"
...
Hearing "here's what I've done, here's the completely unambiguous next steps, I'll wait for you to send a pointless message before I continue" over and over again is a real pain.
> You should do a breakthrough
This is just as funny and ridiculous as those "make no mistake" prompts.
I am talking about someone jokingly asking AI `HOW TO ACHIEVE COLD FUSION` (or `A UNIVERSAL CANCER VACCINE`, or `AN AI FRAMEWORK SUPERIOR TO THE TRANSFORMER`), and getting a usable answer.
Eventually there will be an AI that will be able solve those sorts of questions as simply stated, like "cure all human diseases. also, make no mistakes!".
Don't get me wrong, the way we collectively treat animals is evil, but the idea that somehow we know enough about biology even today to reliably simulate drug behaviors seems unlikely.
> Construct a counterexample to the Collatz conjecture. You should do a breakthrough and find a structured counterexample.
without someone independently verifying it, it just dangles there
...
I started using "[leave-open" for those.
It lasted for a couple of years, until someone went through and "fixed" them all.
>What a world we live in.
Not sure, it sounds pretty boring to me...
1. The counter example wasn't just a brute force selection, the polynomial is structured in a very specific way that ends up getting the result.
2. Terry Tao's questions are very specific and prompts the AI in a useful way, that without high math training you are not going to get the same information out of it. Terry seems to see some aspects of the problem and counter example and uses AI to brute force some parts of it.
"Von Neumann would carry on a conversation with my 3-year-old son, and the two of them would talk as equals, and I sometimes wondered if he used the same principle when he talked to the rest of us."
>I sometimes wondered if he used the same principle when he talked to the rest of us.
I can come pretty close to a humbler example of this, as the more-extroverted "bad twin," of an identical set: my own genetic equal is bored to tears interacting with 90% of daily interactions... we both started with good brains/IQ, then went to the same college; but while twin spent the next decades solving EE problems (and co-founding startups), I "kicked back" and smoked myself sillyretarded, electricianing, relying upon bullshit and sheer luck to get to where I [barely maintain] am.
Watching my twin deal with any normal-intelligence persons is such an unpredictable shitshow, but I pretty much always know he's "dealing with us toddlers" who mostly never grew up. His patience is limited but willing.
Glad he can get by among us mere mortals. I have other similarly-minded brothers, but only this one identical twin.
I think lots of people have heard of him. I agree, that he is probably not as famous as some of the other scientists of the era though.
huh? He's pretty famous to anyone who has studied either the history of computing or of the development of the atomic bomb.
I mean that.
But I think your comment drives at some authentic take on this. Skill with AI is not only crafting iterative prompts the agent will understand, but also very high domain-specific knowledge of what the prompts explore.
One without the other can result in frustration or worse.
It is perplexing how many developers lack this basic skill, some of them borderline lack theory of mind and are incapable to understand that other people can't see the unspoken part in their heads.
One of my first jobs out of undergrad was technical writing on EDA tools for Mentor Graphics Calibre product. For many years, I did not appreciate that experience--it seemed orthogonal to what I'd gone to school.
Once I did become a professional SWE, something that took me too long to realize was that writing documentation and tutorials for people and looking after the quality of onboarding materials was almost never rewarded.
I came to see it more of a liability with ~all emphasis being on human code gen.
I listened to an interview with Steve Yegge earlier this year, one of his concerns was that many people just don't type very fast or read very quickly. IIRC, he expressed concern this would continue to be a big barrier to successful use of AI.
I previously commented on annotation for coding agents that an important skill was knowing the beat of a conversation.
I think that extends into critical reading. For example, it is not that unusual for a Washington Post article to put some ~explosive detail deep in the article--this is called "burying the lede."
I see this regularly reading AI output. That is: the AI will lead with the strongest claim it can state cleanly, but not the most explosive implication.
With Claude Code and Codex, you're looking essentially neverending walls of text dense with technical information.
So now you have to have high domain expertise, a good understanding of written communication, a sense for the beat of a conversation (which assists in identifying understatements or overstatements), and the ability to dense text outputs quickly and then highlight critical statements for further exploration.
I'd almost describe part of this work as that of a skilled interviewer.
Turns out that understanding the technical domain is important to getting good results, even if the LLM is more capable at producing output. -- It's still a case of "garbage in, garbage out".
I think for many newbies, they see the LLM is so good at programming and so figure they don't need to learn anything. Apparently not so.
*GIT GUD* (at prompting)
At the end of the day, even if they are some insane oracle (pun intended), they're still bounded by training data and how it relates to the real world. Even if they're a near perfect tool, we are still the interface between them and our lived experience. If that stops being the case then why do we care about the output?
This assumes it doesn't graduate to just killing all of us and doing it's own thing, but within this paradigm it doesn't really have goals.
Until they are embedded into automatons that can interact with the world.
(To be clear, I'm both on board with this, and I think it's the natural progression. Currently they are bounded by their training set, but interaction with the world is the imperative for theory -> test -> analysis -> update that is essential for growth and creativity.)
Yes and no. They can extrapolate and build upon the training data, as was the case with the last dozens of math proofs
LLMs giving you something novel would be like if you let a model play chess against itself and become the best player in the world this way. Totally impossible.
/sacrasm
To put it differently, if you have some idealized model in front of you that can do anything a team of humans can do, what do you say to it? It's still just a model that takes an input and provides an output.
Someone will still need to ask for something (or maybe it will just run autonomously making things it thinks we'll like) but it won't require any expertise in the field.
For things like sickness, old age and death, generally the lacks are not knowledge but the consistent will of the group. Like global warming, there is no real profound knowledge gap except how to get everyone to agree to mitigating the carbon burn. Perhaps it is likely LLMs would be able to persuade the group to stop burning the carbon before it’s [more] uncomfortable, but the small group of people committed to accelerating the carbon burn can also pay for LLM persuasiveness.
Just awesome to see new knowledge hit an incredible mind like this. Having these "what if" discussions is what I miss most from JPL and academia.
This "symbiosis" (for lack of better word) of human with AI seems to be an emergent value proposition of AI. In the process of doing stuff with AI, producing artefacts like code diffs, we are continuously able to decide how strong the mental map is of the current stage of the production process.
I could probably have worded this better but I'm sure it's something others have noticed... this choice we are able to make of how high fidelity our own understanding needs to be of the current working problem, and how that choice never really existed prior to AI.
Sorry it's a bit of an aside, but I imagine many other otherwise "technical" folks feel the same unfamiliar sense of total loss like when encountering hard mathematics.
Cache, stack, heap, process, thread, socket, file, tcp, http, tls, websocks, socks, soc2???, deadlock, stack, queue, race, atomic, event loop, coroutine, async, database, transaction, index, replication, sharding, consistency, serialization, DNS, load balancer, container, namespace, and so on.
Every sub fields (web/kernel/backend/etc.) has a million/bazillion weird words used in a dozen different contexts and if you read a paragraph of even semi technical software text you will feel like an over stuffed turkey.
Even cache could mean the CPU caches, the page cache, a browser cache, a CDN cache, a Redis cache, or imagine the flurry of words we have that have real world meaning. Session, handle, pool, buffer, stream, channel, event, task, worker, or queue. Generally there is some overlapping meaning but often there isn't.
compare to
>https://en.wikipedia.org/wiki/Rees_algebra
Most people, especially non-tech technical people, could crash through the TCP article and come out the other side with at least a high level understanding of it.
Most people, even technical ones, could not even get through the first line of the rees article, heck the first statement of the article. And then if they try, they need to know about algebraic rings. And digging into rings becomes totally intractable. None of the words or symbols in any of the articles track to anything even many technical people can grab onto. And this pattern is all over the place in mathematics.
It's not about mastering the difficulty of a topic or it's relative depth, it's about how abstract and removed from anything tangible it is. Anything with math it is always seemingly impossible to get a foothold on the idea anywhere within 10 degrees of explanation. Hell you cannot even clearly understand the problem that is being solved, or anything within 10 degrees of that.
For instance, most people are familiar with polynomials. Take a polynomial in x (with integer coefficients) and substitute x for 5t everywhere. So for instance, 2x^3 - 8x + 3 becomes 250t^3 - 40t + 3.
The Rees algebra Z[5t] (here Z is the integers) is then just the set of all polynomials you can get this way.
If Wikipedia introduced it like this, I don't think most people would have a problem understanding.
The concept is not (at least not always) actually that complicated, like others are implying. It's our communication that is lacking.
I sometimes think it would be good to rename some of the things that have historical names to mnemonics more descriptive than a proper name. But that would be difficult.
The truth is that math is hard: few other subjects have anything close to its crazy conceptual breadth and depth, with hardish concepts being built upon hardish concepts in many layers.
For example, Fourier is more clear to me as: F{t -> sin(t)} = omega -> (...) instead of F(sin(t)) = (...). Or D{x -> x^2}(x) = 2x instead of (x^2)' = 2x
Abuse of notation is very common, like using f(x) both as the function and as the return value at some input x etc. For example, the chain rule is often notated in a way that hides a lot. Math uses so many single letter variables, uses huge formulas instead of factoring out parts and using multiple lines, math people don't seem to appreciate namespaces and dislike nested variable scoping etc.
It's not magic that makes everything super easy, but it helps.
I can tease apart the Rees Algebra article one bit of half remembered terminology at a time and come out of it feeling like I just barely understand what the topic even is.
I can read the TCP article and feel like I have a thorough overview of the topic and could explain it at a high level to someone else.
To understand the definition of the Rees algebra, you would need to define, mostly in order: sets, groups, abelian groups, rings, ideals of rings, algebras over rings, direct sums of rings, adjoining things to rings, etc.
This is just to understand the definition; to understand its significance in algebraic geometry (which I have no idea of), there are a thousand more definitions.
The issue with trying to understand a concept in math is there is a massive directed acyclic graph of prerequisites leading to these concepts, and one needs to traverse this graph in the right order. Unfortunately, knowing the right order is almost tantamount to understanding the concept itself.
Careful, I think you might be committing an https://xkcd.com/2501/ error.
What even is a protocol? What is a host? What is a ‘stream of octets’? Wiki helpfully tells you octets are also known as ‘bytes’.
Nothing in the ChatGPT conversation is tangible. It's all in the realm of concepts.
Now days of course the chips are small so you have to point to where the multiple gigabyte chips are at.
But they are still quite physically.
Heck a C pointer points to an actual physical location on your machine, if you ignore the MMU.
I’m not sure this gets us any closer to a jargon-free explanation of what TCP does.
Such a small sentence and yet it means very little to me. I understand some constituent pieces, but I don't understand what Z is here other than a 'ring' and I don't really grasp how t^-1 converts this into a generalized family of algebra. It would take me a lot of effort to understand this and use it practically. I find that fascinating because it really is such a small statement that seems perfectly cromulent, but there's a lot packed in there that someone like me is totally missing.
I suppose there may be similar concepts in computer science, but nothing comes to mind that ever stumped me. To be frank, the field has been relatively accessible to me because it hasn't been too challenging. Not sure if that's a personal aptitude thing or it is genuinely simpler.
An algebra over a ring (call it S so we don’t confuse it with R from the previous paragraph) is a like a vector space over S, with the added structure that you can multiply elements of the algebra together (vector spaces only let you add their elements together). So for example the collection of even integers 2Z is an algebra over the ring of all integers Z. The collection of all polynomials with integer coefficients, Z[t], is another algebra over Z.
This is a great example of how dense language gets in math. There are tons of concepts hiding in the unstated background. Many are quite simple to explain individually, but there are so many of them that an outsider won’t know where to start to tease them apart. There’s a good reason to do it this way though; it would take a very long time to say anything in math without ever increasing levels of information density.
His point is the terms are dense too
As for your specific questions, I believe Wikipedia does a great job of answering two of them for a layperson:
https://en.wikipedia.org/wiki/Ring_(mathematics)
https://en.wikipedia.org/wiki/Vector_space
For the others, I’ll say that a formal variable is just a symbol (literally, like the letter t). With such a symbol, we can construct polynomials like 2t^2 - t + 3. Also, there’s no need to only use integers as the allowed coefficients; you can use any ring you like instead.
An “algebra over the ring R” is what I was attempting to define in my comment above. The algebra is “over” R if we can multiply an element of the algebra by an element of R. The useful analogy here is scalar multiplication in a vector space: you can multiply a vector by 2 to double it or -1/2 to reflect and shorten it. More generally, it makes perfect sense to consider some more general version of vectors which can be scalar multiplied by elements of any ring R.
Not like a drink with jam and bread.
I'm glad you answered them.
It finally makes sense to me, and now I realize I didn't even understand "over" in that context. That Ring wiki page though, um, nope... :D
Fair enough! At a super high level, a ring is just a collection that has a similar structure to what you’re used to “numbers” having. That is, you can add, subtract, and multiply them. Not divide! If we restrict ourselves to just whole numbers then 2/3 is not allowed. We also require that something like 0 and 1 have to be there. “Like zero” means 0 + x = x for every x in your collection, and “like one” means 1x = x for every x. And lastly, we require that the distributive property holds.
Examples include the set of whole numbers (Z), the rationals aka fractions (Q), the reals (R), complex numbers (C). These are all infinite rings, but there are also finite rings such as the set of whole numbers modulo a fixed number n, denoted Z/nZ. For instance, Z/2Z has only two elements, namely 0 and 1, with rules like 1 + 1 = 0. There are also polynomial rings, like Z[t], whose elements are all polynomials with integer coefficients (e.g. 3t^3 - t - 2). You can add, subtract, and multiply such polynomials and the result is more polynomials, so this collection is indeed a ring.
All these terms were taught to computer science (and of course math, physics, ...) students as part of getting their degree in computer science, because these concepts are important for many algorithms.
I studied computer science (and mathematics) in Germany. I am very certain that this was taught to computer science students, even though (compared to the lectures for math students) the lecturer did not get very deep into these topics.
> most CS students would have been terrified of that.
This is a feature, not a bug. :-)
Seriously: In Germany, the "math for ..." lectures often are intended to be "weed-out lectures" so that students who simply are not qualified for their major get to quit their degree course fast (either by realizing that the degree course is too hard for them, or by (typically) failing math exams so that they get exmatriculated), so that they don't waste many semesters on a degree course which they simply are not suited for.
You clearly write from the perspective of the US-American university system.
In Germany, basically everybody can enroll into a computer science program at a university, assuming the person has a Abitur (Allgemeine Hochschulreife) certificate (these terms are difficult to translate into English) from the grammar school [1]. So, "have it made to college" is like "not having been a complete failure in school". [2]
So, making it to the university is no achievement in Germany, and also no sign of motivation either.
> If these courses are so important, they should be taught in a way that students can understand.
These courses are taught in a way that students can understand, but not in a way where you can afford to slack off.
It is basically a consensus in Germany that a university is clearly a wrong place for you if you are incapable of closing knowledge gaps on your own (for example by reading books from the library), and you don't have the self-motivation to sit over the lecture material for hours to finally understand it.
So yes, I would say that among the possible options, weed-out courses in mathematics are in my opinion likely the least bad one.
---
[1] In years where there was an insane demand for places at the university to study computer science such as during the dot-com bubble, there were some restrictions (numerus clausus), but for computer science, this was always the exception to the rule.
[2] There exist good reasons for puns like "Abitur: nichts gerafft und doch geschafft" (Abitur: Didn't get a thing, yet still passed) or "A-bier-tur" (a portmenteau of "Abitur" and "beer", which suggests that even pupils who are more into drinking than learning typically get their Abitur certificate).
For example in search algorithms where you want to search a space without visiting state nodes twice. Each state in the search space is produced by the sequence (a product of) of operators from the start state: elements of a monoid (or group if actions are invertible) which define the primitive steps. Trivial example being generating all permutations of a list. More interesting, enumerate all graphs with some property with pathwidth at most k, by adding one edge or vertex at a time. So now you want to know the structure of this group so you know which sequences of elements simplify and don't need to be tried, and you want to canonicalise each state to throw out duplicates.
And you can think in terms of orbits: if there are some symmetries then you might want to factor by the symmetry group and only visit one node in each orbit, grouping states into orbits with a single representative state. See eg. Pochter, Zohar and Rosenschein, Exploiting Problem Symmetries in State-Based Planners.
> https://en.wikipedia.org/w/index.php?title=Algebra_over_a_fi...
> https://en.wikipedia.org/w/index.php?title=Algebra_over_a_fi...
> https://en.wikipedia.org/w/index.php?title=Associative_algeb...
The latter is what aground asked for in https://news.ycombinator.com/user?id=agrounds
> I’m surprised that rings and algebras would come up in a CS degree. What algorithms topics used those concepts?
* Determinant calculation:
- The Samuelson–Berkowitz algorithm is best understood in terms of general rings
- The Faddeev–LeVerrier algorithm and determinant calculation using Gaussian elimination work on rings with specific properties (for the Faddeev–LeVerrier algorithm the restriction is on the characteristic of the ring, for Gaussian elimination the ring must be an integral domain (ideally a field)).
* Ring-learning with errors (for post-quantum cryptography and homomorphic cryptography). Here, a specific ring is the central object.
* Number-Theoretic Transform (NTT): Basically a generalization of the Fourier Transform to the ring Z_n. Important for arbitrary-precision integer arithmetic
* Chinese Remainder Theorem. Often only formulated for the ring Z, but it can be generalized to larger classes of rings. Used for example in Shamir’s scheme for secret sharing (cryptography)
* The theory of BCH and Reed-Solomon codes uses a specific ring
* The AKS Primality Test (a really deep result in computational number theory) uses the ring Z_n[X]/(x^r-1).
---
Algebras:
Very often, a ring is constructed from another ring. Examples:
* the polynomial ring R[X_1, ..., X_n]
* The ring of (square) matrices over a ring R
So, using algebras in algorithms often means: "we want to make use use of this additional structure that our (more sophisticated) ring has)". (Associative) R-algebras formalize this concept of "ring with additional structure".
To just give one algorithm for polynomials:
* Buchberger algorithm for computing a Gröbner basis
Other examples:
* Clifford algebras for a lot of geometric problems (special case: quaternions (a 4-dimensional \mathbb{R}-algebra) for rotations in \mathbb{R}^3).
* If you are willing to also consider semi-rings (in this case: tropical semi-rings): the Floyd-Warshall algorithm for finding shortest paths and the Viterbi algorithm for finding the most likely sequence of states in a Hidden-Markov Model (HMM) can very elegantly formulated using the matrix semiring over the tropical semiring.
I'm convinced half the reason people find CS terminology more accessible and Math terminology less so, is that CS terminology tends to be named after stuff, and Math terminology tends to be named after people, and ... sometimes whether the place they lived is a tropical place.
In my opinion: a lot of math terminology is much older than computer science terminology, so the origin of the names of many concepts in math is much more obscure for today's people than CS terminology currently is (and least if you are not into history of science/math).
On the other hand, in my observation a lot more terms in computer science are based on obscure (often pop-cultural) puns. I guess in 50-100 years these CS terminology might seem even more obscure for then-contemporary people than math terminology is today.
In lean4, even without mathlib4, TCP/IP is way more code than a Rees algebra.
Math uses dense notation that is gigaoverloaded, and the disambiguating context was historically the leisure and proximity to have someone explain what the lexemes even mean.
lean4 is proving to be very revealing as an uncorruptible referee on a lot of things, including the relative difficulty of computer science and complex analysis.
Z[i], the Gaussian integers, is the subring (of C) generated by Z union {i} where i is the imaginary unit in C, the complex numbers. The Gaussian integers correspond to the integer grid-points of the complex plane, if you want to visualize them.
I can understand that this feels like one is so much more complicated part of it is also how the articles were written, wikipedia is not known for quality maths explanations.
But beyond that this comparison to me feels unfair.
Let's take Euclidean algorithm or just modular arthimetic for example what a lot of computing even is based on I feel like that's a fairer comparison. No?
Perhaps that's too easy but I just find this specific comparison very unfair to both Math's intuitive-ness and Computing's complexity. Perhaps I am the one being delusional.
It's a plain observation that math exists on mostly it's own path with little to zero overlap with our lived experiences. If mathematics was a vector, it would have similar magnitude to other vectors, but it's direction would be much more removed from the typical knowledge pack, forcing you to get really close to the origin before you can "hop" over to that math vector. Other "knowledge" vectors, by virtue of being more bunched up, are closer together much further up, if that poor analogy at all makes sense.
Math just represents this reality on most abstract level, it doesn't care if complexity for some human brains is trivial or almost fractal-like.
Mathematics would be much more approachable if it just used plain English like `sum(0, Infinity, my_func)` instead of a big Greek sigma with nested function nomenclature. But on the flip side, mathematics being its own language means that a mathematician from any country can read and understand mathematics from a different country without needing to translate words such as "sum" and "infinity"
First of all, no, mathematics would be far less approachable if it did that. Most of the Greek letters used in mathematics don't have a universal meaning, they're context-specific and defined by convention or just prior to use.
Second of all, mathematics is optimized for hand calculation on paper, not long-term programming and code maintenance. Writing out long names over and over on a whiteboard gets tiring extremely quickly, so mathematicians prefer to stick to single-letter symbols.
Mathematicians pretty much universally view typesetting as a distinct step from the thinking part of math, and something you do at the end once you have figured everything out.
I suspect if I showed a non-technical person with no background in either math or programming they would think both are nonsense until you explained it to them
I doubt it. Greek letters convey almost no information, whereas (one hopes) the function and variable names are chosen by a programmer to help the reader. The Greek letters used by mathematicians (and physicists) weren't used to convey information, they were used because typesetting, publishing and paper were expensive. They are optimised for brevity over readability.
It was a perfectly reasonable trade-off at the time, but times have changed.
As an aside, some programming languages (such as APL, and to a lesser extent Perl) did emulate the old Greek letter style. "Line noise" is a typical description of the result. No computer language aimed at software engineers and computer scientists does that now.
Tables, algos, and variables are all things people can generally quickly grasp. The construction is abstract but the function is tangible.
The math is working entirely on abstract objects, using abstract tools, governed by abstract rules. It's just all so desperately far away from anything even technical people have contact with.
They don't seem to have any desire to reconcile their 'craft' with real world applications and this is probably why they're particularly good at it.
`sum function(x) from x=0 to x=infinity`
And if you think about how summation would look in Lisp or APL (which some smart people use to this day), I am not even convinced your argument for the "sum function" notation being superior holds in general.
And somehow, none of the thousands of very smart mathematicians have done that, or if they had, it has not seen wide adoption. I recommend contemplating on this: if math could be made easier by changing notation, why hasn't this already happened?
If mathematics used plain language, the ability to meaningfully manipulate and understand would go way down. Proofs would become massively tedius.
Of course, notation is hard. Any good mathematician should put a lot of work into it.
Learning anything in maths requires weeks of hard effort, learning enough to be broadly comfortable in how an 8086 CPU works can be done in a weekend.
I think what happens is that people often have passing familiarity with a word or topic and presume knowledge, and years (decades) later they realize they knew almost nothing.
I will say that Mathematics is different (for me at least) because unlike the infrastructure computing concepts (IETF type, not IEEE)- which mostly require studying, lab work, and some coding to get your hands dirty - advanced math is just ... really hard. There are IQ issues at play.
Obviously a lot of computing turns out to be mathematics - so there is clearly convergence/overlap as well...
The vast majority of what computers do just isn't that complex. I'm not saying it isn't "complex" just that any reasonably smart person can understand how a computer works and still have other hobbies, basically no one can understand phd level mathematics without dedicating their entire lives to it.
Sure, if you’ve already learned enough groundwork, tcp/ip is accessible in weeks. The same is true of most of the algebraic concepts in play here. And both have rabbit holes you can also spend a much longer time going down (though here I am willing to give the edge to math which offers much greater opportunities for hypergeneralization and new vistas of abstraction along which not only specific rabbit holes but entire new generalizations of both rabbits and holes may be found).
But you can have a surface level understanding of mathematical topics as well, ofc some topics might require deeper understanding, but that's true for both.
Any claims of being able to learn 99% of computing in a just 4 weeks even at surface level, is greatly underestimating your own knowledge built over the years perhaps, or perhaps underestimating your own ignorance.
I have had folks tell me cache is just cache in actual interviews. When I have asked them to explain the concept to me, but even beyond that I feel like we tend to think less of our own knowledge of topics once we have acquired it.
Especially ones acquired over years, alongside other work.
CS examples are often easy to picture and understand the motivation for. You can use tools to visualize or play around with them and test them.
Math gets abstract so fast you have to spend a week of research to even understand the problem statement. The the motivations themselves can be completely unclear until you have a lot of context.
I majored in math (B.S.) and upper level math is completely foreign to me.
Every slice has so much depth to it, in Maths it all seems like all of it is required at once but in computing it feels like so little is needed to get started which I honestly feel like is failure of our modern education systems.
But yes Computers being so easily accessible and compilers, documentation and libraries have made computer science so easy to get started with.
Imagine having to implement your own network layer to communicate with someone, you would have had to understand ip, tcp, network layer to an extent like http and etc. and then you finally would have been able to communicate.
In maths that's our reality for a lot of the field, there aren't good libraries, interfaces to help skip the unnecessary details. Hopefully AI might solve it I don't know though. It's fun to hope for it.
Also, understanding an 8086 CPU is not even remotely comparable to the level of mathematics Terence Tao was discussing above. The 8086 is a relatively basic and concrete topic. You can build a workable mental model of it from a finite instruction set, a handful of registers, and a reasonably straightforward memory model.
From my perspective folks here on HN and in CS often think they should somehow be able to understand advanced mathematics papers at a glance, merely because they are good at basics of programming or computer science (8086). That is not how it works. Most mathematics is not inherently much harder than computer science; both fields require you to accumulate a large amount of foundational knowledge before advanced material becomes comprehensible.
There is an enormous amount of computer science that most programmers are completely unfamiliar with, especially within academic CS: programming-language theory, type theory, formal semantics, compiler theory, algorithmic research, complexity theory, distributed computing theory, verification, cryptography, computational geometry, numerical methods, and so on. Being proficient in one narrow area does not automatically give you the prerequisites for another.
A web developer would not be expected to casually understand a research paper on type theory or approximation algorithms without first learning the relevant notation, terminology, and foundational results. Mathematics is no different. The feeling that mathematical writing is uniquely impenetrable mostly comes from encountering it without the years of accumulated context that mathematicians have silently built-up.
I can show you a paper about an advanced algorithms or chip design, that is large made up of fundamental cs concepts and general physics and even you likely someone with pretty in-depth understanding of CS would find hard. There are orthogonal subjects, for instance my mathematician friends things I am insane reading so much about weird computing topics, and I find his research in some weird number theory thing completely mind-bending.
Try and explain to a lay friend how registers & isa works in-depth with all the details not a hypothetical higher level model so that they can understand the nuance of looking at assembly, limit it to 8086 perhaps, it will take significantly longer than a weekend.
Ofc Terence Tao and his level of intelligence is beyond me, I wouldn't compare but general advanced mathematics is not something folks here couldn't pick up if they actually tried to work on it, just give it a shot (though I would recommend don't start with advanced topics build up slowly I think most people can understand most maths papers even the bleeding edge ones within a few months of serious self-study, and won't even feel that it's after a few years, compare that to the time spent learning software and computing 6-8 hours a days for several years)...
And the difficult part of all those areas of computing is the mathematics part. Which I think is what I am arguing, mathematics is a fundamentally different type of "difficult" to any other subject.
Because otherwise if you think about it all of computing is Maths but with computers...
I don't think people who read the Wireless Fidelity spec can understand any of it in a weekend or anything even to a rough extent.
Similarly with websockets, quic etc. the most you can take away without much prior knowledge is what it does which maps into Maths as well.
Just like the famous observation that "anyone driving slower than me is an idiot, and anyone driving faster than me is a maniac" - "jargon" is just any term-of-art that you're not currently familiar with. Attempting to communicate like Up Goer Five is inefficient. The solution is not to ban jargon - it's to:
* Cultivate a glossary for any terms that were introduced _within_ the domain/company, which are not in common usage outside
* Normalize a culture that does not shame asking what something means
"No jargon" is alwys in reference to some assumed knowledge model.
For example, when I claim that my own math texts include "no jargon", this assumes the knowledge of a person who has studied, say, mathematics, physics or computer science.
Like, just the concept of "books" gets you very far. E.g. a file is a like a book, a folder is like a shelf to keep books, a stack is literally a stack of books, a heap is just a place you can pile books in willy-nilly, a database is like a library, a cache is books on your desk versus books in the library, replication is having multiple copies of a book so we can afford to lose some copies, indexing/sharding is like arranging books alphabetically, and so on.
Others are trickier but not much: a process is an app that is running on your device, a socket / tcp / http / websocks is a way to exchange information between devices, a namespace is how the name "Tom" in Tom Sawyer is different from "Tom" in Tom & Jerry, DNS is a way to get an address from a name, etc. etc.
You'll also notice that many of the terms you mentioned are already derived from well-known real-world concepts like pool, stream, channel, stack, queue, worker, transactions. You can mix those with other everyday concepts to make useful analogies.
But I could not even begin making analogies for most topics in Mathematics. I guess this is because advanced topics in Mathematics are just too abstract to map to everyday things.
I mean, we do for some things, especially algorithms (Boyer-Moore). Probably for the same reason the mathematicians do -- there aren't readily available real-world analogies.
And I won't even mention the branded future, with its "Google HyperZipper String Search" and "OpenAI/Red Bull speedmaxx distributed consensus algorithm"...
Well people even name stuff after themselves as well, Fil-C, raylib, etc (I like both Filip and Ray just pointing it out).
Aside: If I butchered some spellings I am sorry. :3
It's why less experienced devs are sometimes mystified seeing a seasoned dev, given a vague description of a bug, guess the cause in code they didn't even write.
I don't know how to say this in a way that won't sound insulting, but I don't mean it to be insulting. Programming, even systems engineering, is a surprisingly shallow field.
I don't mean that it's easy--it's not, it can be incredibly difficult. Difficult and deep are just different concepts. Difficult refers to how challenged you are. Depth, at least as it appears in math, is closer to a structure where concepts build on each other so that if you don't understand one concept, you can't understand further ones.
Programming can be difficult, and it can be intricate, but it is rarely deep in this fashion. Being deep in this way isn't the most important thing.
If I go into an area of programming that I don't have a lot of experience in (graphics, or the linux desktop environment), I will not be particularly useful, and it will not be easy. But I'll not experience the same type of impenetrability I experience when I try to read a paper on topos theory.
One more way of putting it: people are giving the example of TCP. You can spend a decade learning about TCP (or SQL semantics, or web standards). But what is happening is that you're filling in gaps in your knowledge. Meanwhile, in math, you do four years of undergrad, and even if you're a strong student at a typical university, there are topics that are still years away from you being able to touch them.
Computer science is a mix. Parts are deep, parts are shallow. Parts just are math. The odds that I can read a dissertation in computer science are decent. For math, they're much much much worse.
I agree, and I don't think we should be at all ashamed of this.
The beauty of programming is that we can produce incredibly complex and powerful things by manipulating a small set of simple constructs together. There are only a few core tools--iteration, conditionals, etc.--but they can be snapped together into much more capable configurations.
Good programming is the art of deconstructing complex behaviour into these few constructs, and that's really fascinating.
Most of things that are impenetrable in programming aren't about... programming. They are about some actually complex field like math being applied to programming.
For example, a library that does stuff with geometry. You need to know geometry to understand the program, but the program itself will never be complicated. It's the geometry that is complicated.
In cryptography, it's not the program that is complicated, it's the field of cryptography. In AI, it's statistics.
In graphics programming, math is the most impenetrable part, not programming anything. You can be a very good programmer in the sense that you know how to architect information systems and still fail to write a shader because shader programming requires you to know what a "dot" product is and you haven't heard about that since high school.
Your job is to maintain and modernize a system while delivering a constant stream of new features. Your system is several million lines of code, with some multi-thousand line classes, a rulesengine that can trigger nearly unlimited effects at any time, a persistence system that's weirder than anything any of your friends have ever worked with, and hundreds of customers delivering tens of millions in revenue who use the system in incredibly varied ways.
You can't stop to rewrite the thing, you can't just throw features out there and pray, because you'll cause regressions and your existing customers will hate you. You have to fix the thing as you're building on top of it.
But where I agree is that there's no single deep concept that unlocks it all, it's not like you'll fix it by reading a textbook about it. It's complicated, and it's going to stay complicated, no matter how long you work on it.
That's me when I try reading a trendy computer graphics paper.
Nah, math is much harder because there is not just the lingo, but also all the math machinery behind it. Each math definition represents some long process behind it, which builds on another process, etc. The knowledge builds on itself , too much more so than computer science.
... communication protocol, method signatures, web components, ssh, CSS media queries, HTTP headers, WebSockets, timeouts, ETag, iterables, async iterables, middleware, CI/CD, build, consistent hashing, signatures, JWT, SSO, OAuth, SAML, XML, YAML, JSON, block cipher, ETL pipeline, SQL, SQL transactions (atomic), relational databases, foreign keys, schema normalization, referential integrity, 1-to-1, 1-to-n, n-to-n, document databases, compound indexes, idempotency, offset-based pagination, cursor-based pagination, P2P, Kademlia, structured vs unstructured network topology, message routing, frontend router, message storm, reconnect storm, locality, encapsulation, cohesion, coupling, design patterns, modularity, Big O notation, raytracing, shaders, VPN, VPC, data schema, schema validation, CORS, preflight-requests, CSRF, ASCII, UFT8, CSP, CPU context-switching, BIOS, bootloader, interrupt controller, ports, BIND protocol, BGP protocol, assembly language, big endian, little endian, register, signals, embarrassingly parallel, serial processing, event loop, binary trees, tree rebalancing, graph traversal algorithms, sorting algorithms, string character escaping and encoding, blob, base64, UUID, timestamp, CLI, Bash, unit tests, integration tests, e2e tests, TDD, stateful, stateless, proxy, nginx, haproxy, config, helm file, k8s, staging, git, push, commit, merge, rebase, cherry-pick, pub/sub, diff, honeypot, buffer overflow, pointer, file descriptor, authentication, certificates, TLS certificates, DNS Zone files, A record, CNAME, TXT record, SMTP, POP3, SOCKS5, Sha256, HMAC, Merkle trees, Merkle Signature Trees, Lamport OTS, Winternitz OTS, SPHINCS, lattice-based cryptography, pg-vector, vector embeddings, API, rate limiting, cookies, sameSite, httpOnly, localStorage, XSS attack, SQL injection, fetch API, module preloading, bundling...
Barely scratching the surface. I think I could probably keep typing all the technical terms I know for at least 24 hours straight. For most of the topics above, I could probably give a 1 or 2 hour lecture on each one from memory. Some I could give a day-long lecture each.
To explain all the terms I know to a basic degree, I would probably need to give a whole year of lectures back-to-back from 9am to 5pm. And I'm just a rank-and-file senior engineer with 15 years of experience.
It's also why the vast majority of software systems are insecure. The average senior software engineer doesn't know everything that they need to know to build secure software. Last time I poked around Coinbase APIs on HackerOne, I found a DoS vulnerability in less than 30 minutes. That's Coinbase, not some startup built by a bunch of recent graduates.
AI cannot avoid vulnerabilities either since it is trained on average engineer code. There's not enough high quality code available on the entire internet to train AI to implement secure code IMO. As impressive as Mythos may be, it's not enough. I don't even think formal verification would provide protection since sometimes issues with the spec itself can provide an opening for a vulnerability.
ETag, SAML, CSP, BGP, haproxy, helm file, k8s, SOCKS5, Lamport OTS, Winternitz OTS, SPHINCS, lattice-based, pg-vector, sameSite, httpOnly. (Or, at least, i have no idea what those are ::)
Never mind. The answer before me did a much better job.
At least some of these are definitely real things. For instance: "BGP" is the Boundary Gateway Protocol. "Lamport OTS" is a one-time digital signature scheme due to Leslie Lamport. k8s is an abbreviation for a piece of software called Kubernetes.
SAML is Security Assertion Markup Language; an XML based SSO (Single Sign On mechanism).
CSP (Content Security Policy) which allows the application to specify additional security constraints for the browser to enforce.
BGP; border gateway protocol.
Haproxy is a load balancer.
Helm file; another word for helm chart.
SOCKS5 is a tunnelling protocol which allows you to tunnel through a machine over SSH; you can use it to browse the net or access remote services via another machine (hiding your IP)... It's a bit like a basic VPN. Very easy to setup, you can configure your browser (e.g. Firefox) to access the net via a SOCKS5 proxy so if the remote instance is in a different country, websites will treat you as though you are in that country... Just like a VPN except you have to control the remote machine yourself and log into it via SSH with the -D flag.
Lamport OTS is Lamport One Time Signature algorithm.
Winternitz serves a similar purpose but different tradeoffs and smaller signature size.
SPHINCS is a stateless hash-based signature scheme which works by building a tree of OTS keys (Lamport, Winternitz or other) which can be generated deterministically, on-demand.
Lattice-based cryptography is real.
pg-vector is a plugin for Postgres for vector embeddings and it provides some operators for finding records based on the nearest vector.
sameSite and httpOnly are cookie security settings.
You overestimate Coinbase's engineering rigor.
But yes security in modern software systems is a joke. I don't even get paid to fix security bugs everytime I raise them the answer is to slap a sandbox and proxy and call it done.
Now I could hack essentially any system I want. At least DoS or crash them for sure, with minimal computing on my end. They're much more complex than they used to be. Security-through-obscurity used to be a no-no and sometime in the last 10 years it became the main security paradigm.
Cleaning boats, the learning tapered off after a few weeks. With software, I'm 15 years in and it barely tapered at all and it's much more intense. I've been pulling nights and weekends too.
With software knowledge, it would be high information density with little to no repetition. Every piece would provide useful concrete knowledge which would serve to increase technical capabilities and/or security.
Similarly, at some point somebody pointed out to me "the reason you're confused is that the bold on that variable means it's a matrix"
whether he succeeded, is debatable. But APL is definitely powerful, succinct and "regular".
In APL you don't infer the operation from the types at all. × is elementwise, +.× is inner product /always/, on scalars, vectors, matrices, whatever. The glyph tells you what happens. Nothing is bold, nothing is inferred, nothing depends on what your professor assumed you'd absorbed.
I've been trying to get into Iversonian languages myself with the book: Calculous on J
https://www.jsoftware.com/help/learning/23.htm is the closest i've found, but wondering if i'm missing something perhaps, Julia?
tyvm
https://t3x.org/klong/
Imagine that instead of being able to use high-level programming languages, you had to write in assembly everywhere, all the time.
That's what software engineers and computer scientists' suggestions of redoing mathematical notation fee like to mathematicians.
These efforts also don't go anywhere because research mathematics moves beyond elementary arithmetic very quickly, and once you're there, "descriptive" notation becomes as incomprehensible as whatever mathematicians use.
A decade or so ago I wondered if the reason maths was hard was the names being optimised for writing by hand. Everything's single letters if they can get away with it, so when mathematicians run out of Latin alphabet, they use Greek, bold, etc.
Even integration's ∫ is a fancy elongated s.
CS version would be e.g. integral(function=some_named_function, from=a, to=b, with_respect_to=argument_of_function), which may be longer, but is less opaque, especially when you get in so deep there's 3 other people in the world who've looked into this specific problem and you had to invent your own operations.
But that's all an outsider's perspective. I stopped with two A-levels in maths and further maths.
Same reason why we write 5-3, not subtract(minuend=five, subtrahend=three).
Interestingly, discrete math feels the most "verbal" of all the subfields of math I've encountered (I haven't gone very deep). I think this is because notation in discrete math is is somehow closer to compressed prose or logic, whereas other forms of math use notation to fill in for long sequences of symbolic manipulation.
Not sure if that makes sense... I'm curious whether anyone else experiences it that way.
People genuinely struggle to think verbally or visually once we extend beyond 3 dimensions and start talking about infinite-dimensional constructs, uncountable sets, and so on...
And math is, as you know, a deep but traversable graph. The traversal inherently requires a familiarity with the nodes you pass through when reaching a foreign or more difficult concept.
However, I'll give you an example. If I read through more complex math that I’m not comfortable with in Sage, I can build an intuition for the structure of the problem more easily than if I view the “raw” notation. In that sense, it is easier to for me to “approach” — but approaching something is very different from fluently using it — and I’m under no illusion that approaching a topic is the same as beginning to understand it.
Again, this is definition-dependent. To me, “approaching” something means beginning to glean how I might one day understand it. E.g. watching a 3B1B video feels like “approaching” a topic. Here we reach the limits of language already :)
e.g. to use a very simple example on a white board "3" is "overloaded" as:
- the integer 3
- the rational number 3
- the whole number 3
- etc
When you write a proof in Lean, you have to specify the the type of "3" you mean.
Having using Python/Perl and Java over the years, I get that some math folks found handling this daunting or at a minimum friction to getting into using Lean.
LLMs seem to have been a big help here just for the "translate my math notation into a proof" feature.
but then I take a look at literally anything the Haskell people do and realize that it probably wouldn't have helped.
"""During his own Google interview, Jeff Dean was asked the implications if P=NP were true. He said "P = 0 or N = 1." Then, before the interviewer had even finished laughing, Jeff examined Google's public certificate and wrote the private key on the whiteboard."""
This is one of the great things about Lean becoming used for more and more mathematics: understanding exactly how an operator/function is defined is just an IDE click or few away. It completely removes the ambiguity present in hand-written proofs, although it still can require a lot of reading to actually meaningfully understand the definitions.
That, as well as how long we've been doing it (thousands of years!) and so how much of the more accessible parts we've explored very thoroughly.
Pronouns like you/me/he/she/they/them are context dependent in everyday English writing but they're only ambiguous when the context is unclear, otherwise most people have no trouble dealing with them at all!
Isn’t this the field with a “closed” “set”, an “open” “set”, oh and also a “clopen” “set” for some reason?
I like to emphasize that the ideas are usually very simple at their core. Sometimes they map to kinds of objects or reasoning that non-mathematicians use implicitly all the time in their daily lives, mathematicians just have words for them and so are able to use them explicitly.
And I suspect the density of the language/terminology may give the wrong impression about how mathematicians think about the math they are working on. I mean, different people think / experience / practice math differently of course but IME the underlying thought about a particular problem tends to be much looser and concrete than formal math writing would imply.
That more formal language is needed of course because at the end of the day, it is how we communicate our thoughts in the way that other mathematicians can understand them, not to mention how we can check our own thinking
"The special fiber is the associated graded ring.....and that the filtration admits sufficiently simple homogeneous lifts of the three generators, then one might prove"
In any other context I would at least have some degree of intuition about what is being discussed, but in in math? Absolutely no idea. And usually if I start digging and turning over stones to uncover meaning, I'm just met with even more totally dense code-word language. Unlike other fields were digging is usually quick to relieve ignorance, somehow in math it tends to get worse.
I'm sure I am capable of grasping this if I took the time, and perhaps even what is being discussed it rather intuitive, but the incredibly density of the nomenclatic swamp you have to trudge through for math is totally unrivaled.
One unfortunate feature of published pure math research is that often the ideas are quite accessible and straightforward and don't really require special abstractions or terminology, but those get used anyway because for someone who already has a math PhD it saves a bit of effort.
For poor old me, too many wikipedia articles on algorithms useful mostly or only for programming are described in formulas rather than simply code with detailed comments. Scrap the whole page and just gimme the code :( Not even to copy and paste, because that's a language I can understand, and enjoy learning.
Computer science/engineering strays from this, binary systems don't really track nature much, and hence a lot of their own unrelateable nomenclature arises, and then there is math, which is just way far out there on it's own plane of existance.
Some areas are hard in different ways. I could never quite wrap my head around the way logicians have to think. A clever combinatorial bijection is a work of art you probably can explain to a undergrad class easily but good luck coming up with it. And number theorists will throw the kitchen sink at their problems: no area of math is safe from getting used by them.
People who do this have spent years of their life thinking in this language and studying it, so it is going to be hard. We're also not good at communicating the intuition which for algebraic geometry often comes from other fields.
It doesn't matter if natural numbers include 0 or not, what matters is how you define them, not how you call them.
This makes them also bad at naming things because...there's a definition anyway.
Most other fields do not have or can't have the same luxury, so naming might be more thoughtful.
People in their second year of graduate school only get to about the early 20th century in terms of understanding. Third year is getting to about the mid-century. Fourth and fifth years get kind of to modern times but with increasingly smaller breadth.
Big wrapping operations like sums, integrals, and matrices, then what's nearby them, give you a very good idea of where things are going context wise.
I'm sure having a compact notation is absolutely invaluable for people who dedicate their lives to maths, but for someone with just a passing interest, I find it more obscuring than helpful. I feel the same way about music notation.
Many mathematicians do what you do as well!
Math isn’t necessarily hard, but it’s incredibly dense
A simple statement like let f(x) be a continuous function can carry a lot of definitions
In that statement, if you missed the day in class where they covered continuous functions it might not even register that it’s a well defined term
And that’s the most over simplistic example I could think of
As a math major, I remember that being one of the first lessons I learned, that every single word could be carrying a lot of weight so to look things up in detail if I was ever struggling on a problem. One of the oldest entries in my memory.md file
Yes, Tao is guiding it to where he wants to go. But also, Tao is actively learning from it and relying on its explaining, analysis, and inference abilities. You can easily imagine this conversation having taken place between Tao and a PhD thesis student, or even another professor, explaining their results.
What can we imagine and predict about the future anymore? Maybe a year - or two model releases - from now, the AI assistant will be undeniably stronger than Tao, and not an equal anymore.
we're kind of well past that (in my opinion), if you consider that this is the same ai assistant that can help you with a recipe, diagnose a weird sound in your car, help with biology homework, translate languages, and so on.
even in math alone, i think its indisputably already stronger than Tao, considering it has approximately this much depth in ~all of the math subfields.
An example that happened 10 minutes ago: contracts in racket, it kept arguing that you can't use -> in a contract of a function with a rest argument. I had to mention ... explicitly that it wrote the code correctly.
Which, to me, again demystifies these tools. They are incredible tools, but still "just" such.
Bingo
Thanks for laying it out so clearly.
This is what I feel LLMs are really good at yea. Almost to the point that I'd say this is what they are. But I'm not quite convinced that it is that, but it seems to point that way
"This is exactly the question I would ask next. My impression is: Most standard invariants are...."
And this was a response to this prompt:
"Is there a chance of an indirect argument of X ~ A^3 coming from computing some invariant of X that forces it to be A^3? (I am not all that expert in algebraic geometry but I'm thinking like degree or Betti numbers or something.)"
I guess it is kind of the inverse of the "you are an expert mathematician" prompt engineering of gpt3.5. Since no one ever says that to an expert mathematician when they are doing expert math the model immediately reflects that it is not an expert mathematician.
But I would say that in some ways it's already obviously superhuman. The reason I think it's lacking in some jagged ways still at the expert level is because although it's highly optimized to be incredibly capable in many domains, it still doesn't have quite the same raw capacity for complexity in understanding one problem that humans do.
I believe that LLMs (really should be called VLMs for most of them) can still get much larger, and that will push the absolute complexity level and general IQ way over human level.
They are maxing out at like 5 or 10 trillion parameters right now. I believe we will see 50 and 100 trillion parameter models and models with large portions of that active. It will round out the jaggedness and probably more than double the raw intelligence that a human can achieve. It's not a linear scaling but who knows what the limit is and can go significantly higher with the same architecture I think given continued improvements in training and hardware scale.
a) The model thinks on some questions while straight answers on others. (I wish I'd knew from the questions if this is somehow correlated to hard tasks or "inventive" tasks, but that's way out of my league).
b) The model sometimes pushes back. Again, I'd wish I knew if it was warranted, but I counted 2 instances where it said "yes, but with caveats", one where it said "mostly yes but with this correction" and one where it said "careful here, because x y z".
c) The model did q&a + pdf ingestion + code writing + more q&a + thinking + more q&a, for a looong while, while seemingly staying on topic (at least Terrence Tao seems to think they're still productive, so I'll trust that).
This is what model progress is, not number goes up on xBency or yBencher. Damn.
It's actually a bit annoying because it primes you to think that the caveats are real, but most of the time it's just something terribly obvious and not a real caveat, but the model probably has some system prompt that tells it to always consider caveats or something like that.
Same as the model starting every reply with a commitment to be "honest". LLMism are fun but I tend to just suppress them via AGENTS.md because they distract me
"Is a meter the same as a foot?"
"Yes, exactly, you have it now, except they're different distances."
Maybe it's because I ask it to quiz me, and it really doesn't like to tell me I'm wrong. I also got a fair amount of
Claude: Ok, I will test your understanding. Question A? Question B? Question C? Question D?
Me: A=10. B=2. C=121. D is not solvable.
Claude: You got most of them right! You're very astute in saying that A=10, but actually it's 7. B=2 is exactly right! C could be 121 if we were talking base 4, but we're actually in base 10 so it's 25. D is trivially solvable and is 0.
Me: ...isn't that like 1 out of 4? How is that "most of them right"?
Claude: You're absolutely right! ...blah blah blah
Every answer is met with "But did you think about X", or "One more thing to consider" and it almost starts to feel manic as you dig down that hole.
Multiple times I've had to literally say "Stop with the follow-ups and suggestions. Just answer the questions clearly".
Where will we be in another 4 years? What a time to be alive!
Possibly somewhere amazing, but see also: https://x.com/pronounced_kyle/status/1768852493092680036
What image hosts work for you? Imgbb? Postimages?
As someone who lives here it's very annoying but also good on them.
/s
Another satisfied customer!
"What am I going to do with these?"
"Try to trade them up for a Volkswagen?"
High IQ bros.
https://terrytao.wordpress.com/2026/07/21/a-digestion-of-the...
I wonder how many ppl can actually follow what's happening, I mean the math.
The fascinating this is that the LLM is not acting as a tool here AFAIk, but very much like a colleague.
I have no knowledge of the domain and have only PhD EE level math knowledge, so maybe my bar is too low.
What I do notice however is that LLMs are becoming capable of doing an increasing part of the intellectual work I can do, and usually a lot faster.
Just today I presented an agent framework that can take an informal incident statement and propose infrastructure changes to fix it, all evidence backed. This did nothing I could not to, but it did all 5 test cases in 6 - 12 minutes each. I would have found all of the monitoring indications it did, but it would have taken me a day per test case. The LLM also included sass to silly tickets. ("This is not even worth spending monitoring resources on. It's obviously a configuration problem.")
That's how this is reading to me as well. It's just fast at slogging through a certain level of "simple" transformations.
[0] https://gwern.net/scaling-hypothesis#gwern-difference--effic...
Exactly. The "most likely next" series of tokens, for example, when given the first half of a correct mathematical proof, is the correct rest of the proof. I have never seen anyone define "most likely next token" in such a way that this isn't true.
Either humans are not capable of intelligence or computers are capable of becoming intelligent. Neither or both.
that feels like a misunderstanding of how the loss function behaves when used within a sequence
There is clearly intelligence there. We have no way to recognise intelligence other than the appearance of intelligence and this very clearly displays that.
It's also quite clearly different to human intelligence in some notable ways, but not in any that preclude describing it as intelligent. At least for normal non-pedantic definitions of the word.
But there's no way the thinking times would have been that short, of course.
It's clearly much more than that.
that's some Harry Potter kind of "writes itself" book.
at this point, for me, any comment about LLMs that begins with "it's just ..." is hard to take seriously.
Terrence is impressed. Good enough for me.
I'm sure people thought calculators and, indeed, computers themselves were very Harry Potter as well when they first came out. But in the fullness of time the magic and mystique has drained away, and we're left with the understanding that they're just tools.
> at this point, for me, any comment about LLMs that begins with "it's just ..." is hard to take seriously.
Similarly I have a hard time taking seriously the people who make breathless claims of intelligence where there's only a text calculator with weights applied. It's like watching the devout cry "miracle!" at every strangely shaped piece of toast.
Terrence is impressed, but he's not a believer.
nobody thought that
Yeah that would be relevant if AI were an animal...
As I said, it's clearly intelligent, but a quite different intelligence to that shared by animals.
Basically every academic AI researcher in history was doing what you described. The AI industrialists stopped caring 6 years ago once they realized LLMs seem to have been the only thing in 80 years that actually seems to work at any useful level.
There are plenty of pioneering scientists who are either returning to actual AI research (Yann Lecun, Ilya, etc), and plenty who never left (Richard Sutton) who are doing exactly what you are talking about.
That is not true. Alan Turing did not view things that way, his test would say that a dog has zero intelligence. Neither did any of the MIT Lispers. And neither do Lecun or Sutskever or Sutton! They are all focused on human intelligence. None of them are even slightly concerned about an AI which is intelligent before it learns any language.
> the only thing in 80 years that actually seems to work at any useful level
This isn't true either! Mathematica / Maple / etc are "old-fashioned AI" and they obviously work. The Lisp expert systems were also useful, though less so than an LLM.
??? https://www.youtube.com/watch?v=GvibIstOn_E his arguemtn here is clearly built around using some sort of sensory data to build a model of the world like humans (animals) do. also you clearly decline to mention Lecun who has made this point ad-infinitum
> This isn't true either! Mathematica / Maple / etc are "old-fashioned AI" and they obviously work. The Lisp expert systems were also useful, though less so than an LLM.
i personally find it very strange that non-deep learning AI approaches which essentially boiled down to a giant bundle of if statements, or some very simple statistical modeling were called AI in the first place.
A second corollary is that rational consciousness and thought is less likely to be contained in language than previously thought, because if language is so simple that a machine can process it, it can't contain consciousness.
Da hole raisin y nat-lang be v. hard is dat i kan rite lik dis an it be cool 4 native engrish speekrs 2 unerstand. LLMs are of course fine with this sentence in exactly the way that Zork's engine couldn't be.
example For, semi-randomise I word order can this like, Yoda worse than, and be understood.
> is no problem for a machine that takes context and probability into account when translating words to the underlying grammar structure.
We had to invent Transformers to be able to do that with reliability anything close to being worth caring about. Transformers have to learn from examples, not be pre-programmed.
Two, at some point AIs will be able to use other context like the fact that this is Terrence Tao and not your average Joe and change how it answers, either in tone or structure.
Fork Tao’s convo and prompt this (with your own math level described).
GPT did a great job of translating Tao’s questions and concepts (e.g. “pre image”) into a progression I could understand.
“Ok I have a PhD in financial math and undergrad in engineering math. I have almost zero knowledge of polynomial algebra / geometry, I know what a polynomial is and what roots are but not much beyond that. Could you try and explain to my level what questions the user I the conversation has asked and what the agent has responded with, we can probably go user query by user query to build up”
I've given private math lessons and seen students struggle with ai, even though ai gave the right answers.
My intuition is that humans spot xy problems easier when teaching (user ask x but really needs y), whereas llms will oblige writing about x.
What I had in mind (and found personally useful myself) was being able to ask a chatbot to break something down into simpler and simpler concepts, until my weak fundamentals or lack of formal education could grasp some bit of it.
I'm not sure many humans (or colleagues at a workplace) would have the patience to tolerate the stupid questions I've been asking.
"Be aware of 'xy problems': when the user asks x but really, they need the answer to y to further their understanding. ..."
The models are so capable now I think a lot of these real limitations can be solved by prompting, harnesses or fine-tuning.
That's not going to happen. Mathematics isn't just unfamiliar, it's truly difficult to understand. You have to put in a lot of work to understand each concept and the concepts build upon each other to form a vast tower of abstractions that has been growing for thousands of years. Just as there is no royal road to geometry, there is no elevator to the top of the tower.
Most people, if they haven't studied mathematics in university, would need to learn hundreds of concepts just to get to the leaves of the tree, and many of these concepts are truly difficult to understand, requiring weeks of study and practice.
But, now, with world class knowledge possessing tutor, you can ask for an explanation of missed concepts, even embarrassingly stupid questions you would never ask a person.
One thing I notice is many models say statements along the lines of “okay we have exhausted this thread it’s diminishing returns from here and we should stop and move on”
It’s funny because I’ve been building a tiny neural network maze solver (23 bytes solves 92.75% of unseen 2D mazes)
When I asked ChatGPT/Fable if we had anymore threads to pull to increase capability and decrease byte size, they both basically said no way - back when I was at ~166 byte models with a ~85% solve rate.
Throughout the experiment I just kept trying different approaches and eventually had 3 mini “breakthroughs” in this particular niche. But if I had listened to the models…
Anyway, these models are amazing to experiment with quickly, but they are dumb as hell and so absolute
Physics, they describe general relativity as a two way street. Space tells mass how to move, and mass tells space how to bend.
Here, Terence tells AI what question to explore, AI tells him what questions to ask next.
The exchange that ensues is just magic to watch.
Yes, I know it's not just a dumb statistical model like a simple neural network. Yes, I know all about the vectors Q, K, V and how they contain long range contexts. But still! How does all of this emerge into something that can produce such insightful output? I still can't wrap my head around this. Am I dreaming? Am I living in a science fiction?
Is there any way to tell a conversation's model and thinking level?
Almost all of Tao's questions begin with what, or why. That forces an open ended response, which is a great way to reduce or eliminate sycophancy and severe hallucinations. The less you steer, the more accurate it gets.
(Yes. Chess champions are stronger than ever, even though none of them have been able to beat a computer for decades.)
Reddit has some good discussions on the topic.
```
A question is salient to the degree that its answer changes what we do next. Operationally, saliency = the product of four things:
- Decision-leverage — would resolving it one way vs another force a different design or invalidate a stated decision? (No leverage → drop, however interesting.)
- Residual uncertainty given current evidence — is it still genuinely open after reading the docs and the code? (Already settled → drop, however deep.)
- Load-bearing-ness — how much rests on the premise.
- Cost of finding out late — architecture-deciding / expensive-to-unwind raises priority; cheap-to-fix-later lowers it.
```
There are a few things to note about this prompt
1. There is no reason from looking at it that it should work, it even has the word load-bearing which people loathe, but it remarkably produces a stable design with questions from claude (atleast from claude Opus 4.8 and even better from Fable5). Otherwise the design document claude likes to really write are implementation level(code or otherwise). I usually pair this with matt pocock's grilling skill to make claude behave.
2. From design -> implementation, its is generally about understanding when claude is trying to trick you into making something sound like a good/easy solution but has tons of untested assumptions. Here you have to read and patiently spot if a how you would get to the solution is not clear. A common error here are when claude makes a big deal based on what it read and interpreted too seriously without questioning the assumptions. There are several more.
But it also comes down to your experience as a SWE, much like a mathematician's. The frustrating thing about it is, it feels tha a skilled mathematician working with AI can make them productive in ways that are more reliable as compared to a SWE (e.g. lean is deterministic and can provide very strong feedback and LLMs are very good at using that feedback). Maybe a mathematician can chime in on that?
Modern AI feels like a godsend to mathematicians. It helps them break down boundaries and connect concepts in ways a mere mortal couldn't imagine.
I'm not sure LLMs can transform this, the incentive is to get more results in your nich, jumping topics don't help unless you have genuine interest and reason to.
Classic Gabe-bot
And a new system prompt stanza was fledged.
(I'm not talking about OpenAI/Anthropic at this point, but maybe a <10 people startup.)
The flow of the whole conversation, with Tao guiding and the model calculating, gave me the feel of Tao perhaps talking to himself - just that each of those model responses would have taken him much longer to calculate by hand.
It would be fascinating to hear Tao talk about what he may have learnt from this, and if it suggests approaches to other problems he might not have considered, as well as an analysis of the original Fable counter-example construction.
Is this a breakthrough of something or 'kinda interesting'?
I'll cherry pick a few comment I like. I think they are worth reading but I'll quote a highlight of each one.
From kingstnap https://news.ycombinator.com/item?id=49000867
> If the Jacobian is a nonzero constant everywhere this means that nowhere does the the function flatten out. [...] What was conjectured is that this local invertibility property everywhere would mean global invertibility.
From mswphd https://news.ycombinator.com/item?id=48999959
> it doesn't overturn much. [...] the resolution of this is a "surprise" in that it is a very long open with many failed proof attempts. But the direction it resolved was not surprising.
Can I quote myself? https://news.ycombinator.com/item?id=49007165
> From a comment by j2kun https://news.ycombinator.com/item?id=49000833 , someone asked Fable and there was an almost counterexample in 2d but it uses division too. [Instead of f=x^2+7xy they have something like f=x^2+7x/y so it's not a polynomial.] It looks like the new trick was to use a third variable to avoid the division.
Expand the entire expression, then change the representation to find the core axis. You can't see the axis from just one perspective, so you change the representation. In programming terms, it's like applying multiple domain models. Then break it down into small contract units. Why is it a Jacobian monomial? Why does x satisfy a cubic equation? And so on.
Then swap out the modeling under a hypothesis, assemble it all back together, and verify it through the equation.
This feels similar to modeling in programming.
Observe the whole -> explore better modeling -> decompose local problem -> verify independently -> reason about the highre level structure -> integrate back into the original problem.
This feels similar to when I receive work from a client and write a programming proposal
One LLM would suggest a tightening of a particular axiom, and I would ask the rest what the consequences are: what is gained, what is lost and decide whether to use it. Often another would suggest a tweak that then goes back and a recursion.
Is it something "revolutionary" or just another small brick that will pile up until something really "revolutionary" will happen?
By itself, no consequence. But over time, provided we keep pumping out talented and qualified mathematicians and keep subsidizing costs, we could maybe hit a breakthrough... somewhere... that has real impact.
If you searched for coefficients from -12 to 12, this would be 25^360 = 2 * 10^503 different possibilities. A common reference point is that there are 10^80 atoms in the observable universe. Sure you could probably reduce this a bit with clever tricks, but the starting point makes the method completely unviable, even with the knowledge: A) a counterexample exists, B) it's in 3 variables, C) it's in degree 7 or less, D) it's in integer coefficients, E) those coefficients are 12 or lower.
2) You are starting at 10^500 possibilities. "Much" smaller is not enough, the order of magnitude of the order of magnitude needs to be changed.
3) You still need all of the other assumptions, which were completely unfounded
Impossible.
I learned from poking around that checking the invertibility of a system in C is a much, much harder problem than I thought. Nonetheless if that were no object, let’s say coefficients from -16 to 15 (5 bits) times eight terms times choosing up to cubes (64) times three equations is searchable, especially since you have only the final combination of coefficients in the determinant. It’s not impossible to generate the equations like this Fizzbuzz style.
Edit: no. 2048 possible monomials, to the 24th power, not times 24. Fine, can’t brute force it.
The coefficients are mostly 1, so biasing toward that would make it much faster.
It's not quite the Reimann hypothesis, but many prominent mathematicians have spent years working on this problem. Yitang Zhang wrote his PhD thesis on it.
F1 = x^3y^3z + 3x^2y^4 + 3x^2y^2z + 7xy^3 + 3xyz + 4y^2 + z
F2 = 3x^3y^2z + 9x^2y^3 + 6x^2yz + 12xy^2 + 3xz + y
F3 = -x^3z - 3x^2y + 2x
That’s the counterexample. Low integer coefficients, power 7 in three variables. If someone said it was there, couldn’t we all have written a pretty simple brute force solution for the search space, especially with the constraints that the symbolic determinant had to cancel to a constant?
Maybe they'll find a solution where P=NP.
That could really throw a wrench into the whole internet thing.
It seems they need an expert human driver for now.
I do not think so.
In this case, it takes me 12 seconds to see content when first opening the link, and about 18 to re-render content when scrolling.
Yes—for a continuous-time autonomous system
x ˙ =f(x),f(x ∗ )=0,
this is the standard linearization criterion, with J=Df(x ∗ ):
If every eigenvalue of J has strictly negative real part, then x ∗ is locally exponentially asymptotically stable. If at least one eigenvalue has strictly positive real part, then x ∗ is unstable. If no eigenvalue has positive real part but at least one has real part 0, linearization is generally inconclusive. Nonlinear terms or a center-manifold analysis are needed.
The last case really can go either way. For example, all three scalar equations below have Jacobian J=0 at x=0:
x ˙ =−x 3 , x ˙ =x 3 , x ˙ =0.
Yet 0 is respectively asymptotically stable, unstable, and neutrally stable.
A slightly more precise wording is therefore:
If the spectral abscissa
α(J)= λ∈σ(J) max
Reλ
is negative, the equilibrium is locally exponentially stable. If α(J)>0, it is unstable. If α(J)=0, the Jacobian test is inconclusive.
This criterion concerns the Jacobian matrix of a dynamical system at an equilibrium; it is unrelated to the “constant Jacobian determinant” condition in the Jacobian conjecture.
noncomputable section
open Matrix Function
/-! # A counterexample to the Jacobian conjecture in dimension three
We formalize the polynomial map
whose Jacobian determinant is the constant `-2`, but which is not injective.The final theorem `jacobianConjecture3_false` states the failure of the polynomial-inverse formulation of the Jacobian conjecture in dimension three. -/
namespace MvPolynomial
variable {R : Type} {σ : Type}
/-- The formal Jacobian matrix of a family of multivariate polynomials. -/ def jacobianMatrix [CommSemiring R] [DecidableEq σ] (F : σ → MvPolynomial σ R) : Matrix σ σ (MvPolynomial σ R) := Matrix.of fun i j ↦ pderiv j (F i)
/-- The formal Jacobian determinant. -/ def jacobianDet [CommRing R] [Fintype σ] [DecidableEq σ] (F : σ → MvPolynomial σ R) : MvPolynomial σ R := (jacobianMatrix F).det
/-- Evaluation of a polynomial map at a point. -/ def evalMap [CommSemiring R] (F : σ → MvPolynomial σ R) (p : σ → R) : σ → R := fun i ↦ eval p (F i)
end MvPolynomial
open MvPolynomial
namespace JacobianCounterexample
variable (K : Type) [Field K]
/-- The three components of the polynomial counterexample.
The variables `X 0`, `X 1`, `X 2` correspond respectively to `x`, `y`, `z`. -/ def F : Fin 3 → MvPolynomial (Fin 3) K := ![ (1 + X 0 X 1) ^ 3 * X 2 + X 1 ^ 2 * (1 + X 0 * X 1) * (C 4 + C 3 * (X 0 * X 1)),
/-- The formal Jacobian determinant of `F` is the constant polynomial `-2`. -/ theorem jacobianDet_F : jacobianDet (F K) = C (-2) := by simp only [ jacobianDet, jacobianMatrix, det_fin_three, of_apply, F, cons_val_zero, cons_val_one, cons_val_two, head_cons, tail_cons, map_add, map_sub, Derivation.map_one_eq_zero, pderiv_mul, pderiv_pow, pderiv_C, pderiv_X_self, pderiv_X_of_ne, ne_eq, Fin.reduceEq, not_false_eq_true ] simp only [map_neg, map_ofNat] ringvariable {K}
/-- The point `(0, 0, -1/4)` maps to `(-1/4, 0, 0)`. -/ theorem evalMap_F_p0 : evalMap (F K) ![0, 0, -(1 / 4)] = ![-(1 / 4), 0, 0] := by funext i fin_cases i <;> simp [evalMap, F]
/-- Provided `2 ≠ 0`, the point `(1, -3/2, 13/2)` also maps to `(-1/4, 0, 0)`. -/ theorem evalMap_F_p1 (h2 : (2 : K) ≠ 0) : evalMap (F K) ![1, -(3 / 2), 13 / 2] = ![-(1 / 4), 0, 0] := by have h4 : (4 : K) ≠ 0 := (by norm_num : (2 : K) * 2 = 4) ▸ mul_ne_zero h2 h2 funext i fin_cases i <;> simp [evalMap, F] <;> field_simp [h4] <;> ring
end JacobianCounterexample
open JacobianCounterexample
/-- The Jacobian determinant of the displayed map over `ℂ` is a unit. Indeed, it is the nonzero constant `-2`. -/ theorem F_jacobian_isUnit : IsUnit (jacobianDet (F ℂ)) := by rw [jacobianDet_F] exact (isUnit_iff_ne_zero.mpr (by norm_num : (-2 : ℂ) ≠ 0)).map C
/-- The polynomial map `F : ℂ³ → ℂ³` is not injective. -/ theorem F_not_injective : ¬ Injective (evalMap (F ℂ)) := by intro hInjective
/-- The injectivity consequence of the dimension-three Jacobian conjecture is false over `ℂ`. -/ theorem unitJacobian_does_not_imply_injective : ¬ ∀ P : Fin 3 → MvPolynomial (Fin 3) ℂ, IsUnit (jacobianDet P) → Injective (evalMap P) := by intro h exact F_not_injective (h (F ℂ) F_jacobian_isUnit)/-! We now formulate the polynomial-inverse version explicitly. -/
/-- Polynomial self-maps of affine three-space over `ℂ`. -/ abbrev PolyMap3 := Fin 3 → MvPolynomial (Fin 3) ℂ
/-- A polynomial map has a polynomial two-sided inverse, viewed as functions on `ℂ³`. -/ def HasPolynomialInverse (P : PolyMap3) : Prop := ∃ Q : PolyMap3, LeftInverse (evalMap Q) (evalMap P) ∧ RightInverse (evalMap Q) (evalMap P)
/-- The polynomial-inverse formulation of the Jacobian conjecture in dimension three. -/ def JacobianConjecture3 : Prop := ∀ P : PolyMap3, IsUnit (jacobianDet P) → HasPolynomialInverse P
/-- The Jacobian conjecture in dimension three is false. -/ theorem jacobianConjecture3_false : ¬ JacobianConjecture3 := by intro hJC unfold JacobianConjecture3 at hJC
#print axioms jacobianDet_F #print axioms F_not_injective #print axioms jacobianConjecture3_falseTo be clear, I've had some great success using these tools, they're amazing, but it's also very obvious that (despite it being a stochastic tool) they're clearly changing things behind the scenes a lot. GPT-5.6 for example should not be constantly tweaked without telling us. Make it 5.6.1 or something, and if you're over capacity, just say so rather than returning lower quality results.
I don't think chatgpt could have come to this on its own without the amount of steering he did, which just validates the idea that AI is not a replacement for human expertise but an amplifier.
No AI would have been able to find it if asked to "Find a counterexample to the Jacobian conjecture. Make no mistakes".
The problem is that, what happens to human expertise as people start to use AI earlier and earlier in their careers, so that in 50 years? The problem is that Terry Tao spent decades as a mathematician before ever encoutering AI. Of course he and people his age will be able to drive AI somewhat sanely and use it to their advantage.
But as more people grow up with AI, they will likely not reach levels like Terry Tao because their exposure to AI and the temptation to use it will certainly dull raw human intellect over time.
I feel like to get to Terry's level you need a combination of passion and aptitude for the subject. People that don't want to learn about a topic will always look for shortcuts, which I think represents the vast majority of people. Terry Tao is quite exceptional, and I think exceptional people will still exist even when the "easy" button is bigger than it's ever been.
My wording is specific. You can use AI and increase knowledge and skill, but this requires you to be driving the AI at such a low level you don't get the full speedup. As an example, you can write code yourself with AI as an assistant, but it's not as fast as AI writing everything.
So now we end up stuck in a situation where every professional needs to choose between long term skill growth or speed, as anyone who's worked a job before knows, speed will always be the one chosen.