Mathematics is less precise than Programming
Mathematics is less precise than Programming
Aside from the fact that "precision" is not precisely definable...
“Mathematics is much less formally complete and precise than computer programs.” — William Thurston, 1994
"Math is less precise than Programming." --Cody Roux (echoed by Andrej Bauer), 2021
“Mathematics is much less formally complete and precise than computer programs.” — William Thurston, 1994
"Math is less precise than Programming." --Cody Roux (echoed by Andrej Bauer), 2021
Re: Mathematics is less precise than Programming
Since you have little idea what these guys are saying one has to wonder whose arse are you blowing smoke up?
Probably your own.
This enuntians apparenti is so god damn obvious that ex se intellegitur.
You can state the reason in a few words.
Probably your own.
This enuntians apparenti is so god damn obvious that ex se intellegitur.
You can state the reason in a few words.
Re: Mathematics is less precise than Programming
Do you need some toilet paper to wipe your mouth with? An enema for your brain perhaps?
What these guys are saying is THAT Mathematics is less precise than Programming. This is really easy to grasp if you understand what "precision" means (maybe you don't).
WHY this is true is a separate matter from the fact THAT it is true.
-
- Posts: 8330
- Joined: Sun Sep 25, 2011 3:08 pm
- Location: Professional Underdog Pound
Re: Mathematics is less precise than Programming
Perhaps math is to programing as DOS was to Windows 3.1, a building block?Skepdick wrote: ↑Sat Jul 10, 2021 6:04 pmDo you need some toilet paper to wipe your mouth with? An enema for your brain perhaps?
What these guys are saying is THAT Mathematics is less precise than Programming. This is really easy to grasp if you understand what "precision" means (maybe you don't).
WHY this is true is a separate matter from the fact THAT it is true.
Re: Mathematics is less precise than Programming
I can't account for Thurston's remark. Perhaps you can provide the context. Bauer of course is a famous advocate of constructive math, so his remark at least makes some sense in terms of his professional beliefs.
In any event, programming can only represent computable numbers, and even those only to finite precision. Whereas math can represent numbers to infinite precision. So the opposite case can be made.
Programs only represent a tiny portion of the world of math, since programs are limited to that which is computable. So if programming is more "formally complete," whatever that means, it's only because it's applicable over a very small domain, relative to math, which includes the uncomputable. The Halting function is perfectly well defined in math, even though there is no such thing in programming.
Without more context, your quotes aren't very helpful in terms of gaining insight into the nature of math or programming.
I will say, having done a bit of both, that I always found programming easier. Because when you're stuck, you can just type something in, play around, see what works. Whereas with math, when you're stuck, you need an idea or an insight. I always found the experience of being able to run a program very satisfying. Whereas doing math is like writing programs without ever being able to execute them. Executing a program is a visceral experience that came more naturally to me. "Bam, it works." Or, "Darn, it doesn't work." Then you debug it. Debugging is kind of mindless, you just drill down till you figure out what's wrong. Programming requires much less cognitive effort than math, for me anyway. But others have had the opposite experience so there's no general lesson to be learned.
Re: Mathematics is less precise than Programming
Page 10 of this paper: https://www.math.toronto.edu/mccann/199/thurston.pdf
This is not quite the case. Representation is not the problem. Manipulation (of mathematical objects) is the problem.wtf wrote: ↑Sat Jul 10, 2021 11:24 pm In any event, programming can only represent computable numbers, and even those only to finite precision. Whereas math can represent numbers to infinite precision. So the opposite case can be made. Programs only represent a tiny portion of the world of math, since programs are limited to that which is computable.
. So if programming is more "formally complete," whatever that means, it's only because it's applicable over a very small domain, relative to math, which includes the uncomputable. The Halting function is perfectly well defined in math, even though there is no such thing in programming.
The point about representing non-computable objects and non-halting functions is made by Bauer in this post. Relevant quote:
As to the "domains of applicability" (of functions) well.... That's Dana Scott's domain theory from the 60s.It is meaningless to discuss representations of a set by a datatype without also considering operations that we want to perform on the set.
The context not really about "Math" and "Programming" because we might end up figuring out that we are both talking about the exact same activity using different language.
What the context is of what it means to be precise and what it means to define something. In fact, what modern proof assistants primarily concern themselves with is proving whether a concept/term/idea is "well-defined" in a certain, precise sense. Proofs assistants *do not* concern themselves with side-effects.
In a broader context, what I am pointing out is the very same thing Lakatos was demonstrating through the dialogue in "Proofs and Refutations" that informal proofs/definitions have all sorts of implicit assumptions and corner cases which lead to minor; or major disagreements once one tries to be "precise" about Mathematics. When one uses a proof assistant - one is forced to make the implicit explicit.
I am thinking on an abstract level above that. In my mind there is an explicit distinction between function definition and function application.wtf wrote: ↑Sat Jul 10, 2021 11:24 pm I will say, having done a bit of both, that I always found programming easier. Because when you're stuck, you can just type something in, play around, see what works. Whereas with math, when you're stuck, you need an idea or an insight. I always found the experience of being able to run a program very satisfying. Whereas doing math is like writing programs without ever being able to execute them. Executing a program is a visceral experience that came more naturally to me. "Bam, it works." Or, "Darn, it doesn't work." Then you debug it. Debugging is kind of mindless, you just drill down till you figure out what's wrong. Programming requires much less cognitive effort than math, for me anyway. But others have had the opposite experience so there's no general lesson to be learned.
"Running a program" is function application. "Running a program" is the manipulation of the data as per Bauer's blog post.
When we talk about any existing programming language implementation you are already committed to some sort of runtime (in Mathematics you call that a Kernel I think - inverse image of a homomorphism). The runtime has some inherent computational properties/behaviours/axioms assumed in its design - these are either encoded in the compiler or interpreter.
When I speak about "precise definition" what I have in mind is the process of formal language design itself. Specifying the compiler/language. Defining the Computable function which determines whether a formal expression is well-defined or not.
Re: Mathematics is less precise than Programming
I was trying to take you seriously till you said a kernel is the inverse image of a homomorphism and that it's like a runtime. Methinks you are slinging buzzwords without much comprehension. FWIW nobody's arguing against proof assistants. What exactly is the point of all this? Also Bauer is a constructivist. Quoting him to make a point is like quoting the Pope to argue for the existence of God. He's biased. But again, what point are you trying to make?Skepdick wrote: ↑Sun Jul 11, 2021 7:39 am\
When we talk about any existing programming language implementation you are already committed to some sort of runtime (in Mathematics you call that a Kernel I think - inverse image of a homomorphism). The runtime has some inherent computational properties/behaviours/axioms assumed in its design - these are either encoded in the compiler or interpreter.
Re: Mathematics is less precise than Programming
Huh?!?! Where did I say that?
I said that your runtime already has assumptions built-in. I said that your runtime has already made choices for you. Choices that you can't unmake.
You a trapped in a model of computation NOT of your own choosing.
In the trivial case I am not saying anything other than the fact that in one runtime 1+1 evaulates to 2 and in another runtime 1+1 evaluates to 10.
Or like if you are executing a binary on an X86 computer you have a strong memory model, but if you are running it on an M1 Apple you a have a weak memory model. And so the same source code compiled for two different runtimes can (and will!) behave differently.
Methinks it's your comprehension that's limited. I am trying to transpile my understanding into your language.
You know what a compiler is - yes? A formal language specification.
Input: source code.
Output: something your runtime can comprehend
A compiler proves your expressions are well-defined. A compiler cannot prove that the resulting output will play nicely with your runtime.
The point is that Programming is more precise than Mathematics. It says so in the topic.
Proving theorems with a proof assistants IS programming.
Proofs done in theorem provers are more verbose/concise than informal proofs.
That's called a strawman. Which part of his argument do you disagree with?
Informally speaking bias means exactly the same thing as choice. Every axiom you choose to accept is a "bias" - for you can just as easily choose to reject it.
Also, I also quoted Thurston saying what Bauer said 27 prior. Ah! The conspiracy.
The point THAT Programming is more precise than Mathematics.
Re: Mathematics is less precise than Programming
Somebody operating your keyboard wrote:
Do you have a cat? Cats often type things into online forums when their humans aren't looking. Accounts for so many people writing things then claiming they didn't when the absurdity of what they wrote is pointed out to them.
I quoted exactly what you or your cat wrote. No denying it now, it's there for all to see.
You don't even know what a runtime is. Your buzzword to knowledge ratio is off the charts.
That is deep, man.Skepdick wrote: ↑Sun Jul 11, 2021 7:56 pm Or like if you are executing a binary on an X86 computer you have a strong memory model, but if you are running it on an M1 Apple you a have a weak memory model. And so the same source code compiled for two different runtimes can (and will!) behave differently.
I have no problem with your advocacy for constructive math or computer-assisted math. I just wonder what is the point of your post here. And then I was troubled by your equating of a mathematical kernel with a runtime in programming. Those are apples and rutabagas.
A compiler is a formal language specification? My friend, that's pathetic. You don't even know what a compiler is. Would you perhaps agree that a compiler is a particular implementation of a formal language specification? Do you know you just embarrassed yourself? Again?
You know so little about all this it's pathetic. That's actually not what the runtime does.
The Thurston quote was about carefulness with respect to data types and such. A very limited point. Bauer of course is a constructivist so he's extremely biased in these matters. You quote-mined one sentence and extrapolated far beyond its intended meaning.
Ok. And?
Actually that's not a strawman.
Bias is choice? I said do you speaka my language? He just smiled and gave me a vegemite sandwich.
You quote-mined Thurston to make a point he didn't make. You probably didn't expect me to check, but I did, since I'm already familiar with the essay you quote-stripped.
Yeah ok man. Tell me in your own words, without paraphrasing Wiki, anything about Dana Scott's ideas.
Re: Mathematics is less precise than Programming
AAHAHAHAHAHAHAHA... Idiot.
No. I do not agree.
A compiler is a computable function which admits formal expressions as "well-formed" and "not well formed", then translates them into some target langauge. For all I care it can translate into Sheffer strokes.
If I can find ANY formal expression where compiler A admits and compiler B rejects - that's evidence that they are different formal languages.
If I can find you ANY formal expression which behaves one way when compiled by implemnetation A and another way when compiled by implementation B - that is evidence that they are different formal languages.
That's precision! A difference that makes a difference.
The rest of what you said is not worth tackling.
Re: Mathematics is less precise than Programming
dbl post
Last edited by wtf on Sun Jul 11, 2021 8:47 pm, edited 1 time in total.
Re: Mathematics is less precise than Programming
Man there is irony. I know precisely what I am talking about because Programming is more precise than Mathematics.
And I know what a compiler is because I have implemented a bunch of self-compiling compilers.
On the other hand, you are holdin your dick in your hand when I ask you: What is Mathematics ABOUT exactly?
Last edited by Skepdick on Sun Jul 11, 2021 8:47 pm, edited 2 times in total.
Re: Mathematics is less precise than Programming
Your ignorance is beyond belief. You don't know what a compiler is. Incredible. You don't know what a kernel is in math, nor a homomorphism. You don't know what a language runtime does. You quote-stripped a paper you didn't understand to make a point the paper didn't express. You namedropped Dana Scott but when challenged could not even spell the guy's name, let alone give an account of his work. Have a nice life. Regret interacting with you, won't do it again. To any readers of this thread, this guy has no idea what he's talking about. Just a buzzword jock.
Re: Mathematics is less precise than Programming
That's a long way to backtrack on your stupid.wtf wrote: ↑Sun Jul 11, 2021 8:44 pm Your ignorance is beyond belief. You don't know what a compiler is. Incredible. You don't know what a kernel is in math, nor a homomorphism. You don't know what a language runtime does. You quote-stripped a paper you didn't understand to make a point that the paper didn't express. You namedropped Dana Scott but when challenged could not even spell the guy's name, let alone give an account of his work. Have a nice life. Regret interacting with you, won't do it again. To any readers of this thread, this guy has no idea what he's talking about. Just a buzzword jock.
If two computable functions (and compilers are computable functions) produce different outputs for the same input that's empirical evidence that they are different functions.
If two runtimes produce different behaviour when executing the same executable that's empirical evidence that they are different runtimes.
Different implementations of "the same" specification do that. A LOT.
You can't answer the question "What is Mathematics ABOUT?" because Mathematics isn't about anything other than man-made constructions.
Re: Mathematics is less precise than Programming
This idiot admits that his area of expertise doesn't concern itself with time, then acuses me that "I don't know what I am talking about".
It's a diversionary tactic precisely because Mathematics cannot speak about what happens to a formal language expression at COMPILE TIME and at RUNTIME.
https://en.wikipedia.org/wiki/Compile_time
https://en.wikipedia.org/wiki/Runtime_system
Of course, I sympathise - his religion is under attack. The cracks in the Church of Mathematics are beginning to show.