Mailing List Archive: 49091 messages

# What is Mathematics?

### [1/9] from: joel::neely::fedex::com at: 3-Jul-2001 12:54

OK, I apologize for opening my mouth... ;-) [JELINEM1--nationwide--com] wrote:
> Mathematics is included in programming to be sure, but I > don't see Mathematics as a superset of programming... > So, I do not see any reason to choose programming > implementations based on mathematics (probably better > stated as "numerics"). >
NO NO NO NO NO NO NO NO NO! Arithmetic ("numerics") is the least interesting and most trivial aspect of Mathematics. (And IMHO number-crunching is the least interesting aspect of programming.) As one example of the kind of relevant (non-arithmetic) math, I'd highly recommend Carl's article in REBOL/Zine 1.2. The process of transforming code from the original form either (mode) [ data: find data "Active" ][ data: find data "Passive" ] into the final data: find data pick ["Active" "Passive"] mode has been known in the Forth world (for at least 10 years) as factoring and more recently in the OO and extreme programming worlds as "refactoring" by direct analogy with the kind of algebraic process that allows one to transform (a * b + c) - (d * b + c) into (a - d) * b (I trust I needn't add the reminder that algebra is NOT about arithmetic nor numbers, but about formal manipulations of strings of symbols.) As another example, the algebraic law that lets me refactor if any [a <= b none? find p q not same? x y] ... into if all [a > b find p q same? x y] is known as DeMorgan's law (about which more later). I can't imagine programming without being able to perform such transformations and having the logical underpinnings on which they rest.
> Just as "art" can be described in the terms of physics... >
I know a number of folks in both the Artificial Intelligence and Physics worlds who'd love to argue that point with you! ;-)
> > Logic values do have an implicit integer meaning, 0 false, > > and 1 true. This is firmly accepted amongst electronics > > world. > > Absolutely! This makes great sense in the world of > electronics. But why, in the abstract world of logic, should > this relation be valid? >
Ever heard of George Boole (1815 1864), after whom Boolean algebra is named? His work considerably predates electronics (and TLTMNBM), and is rightly regarded as the foundation of mathmatical (symbolic) logic. In conjunction with Boole, another British mathematician, Augustus DeMorgan, formalized a the principles now known as DeMorgan's laws. As the Encyclopedia Britannica says: "A renascence of logical studies came about almost entirely because of Boole and DeMorgan." Boole used 1 for true and 0 for false, allowing such notation as (1 - x) for not x and (1 - x)(1 - y) for (not x) and (not y) The relation is far more valid in the abstract world of logic than it is in the approximate world of electronic circuits whose variable voltages must be interpreted as being "close enough" to the values chosen to represent logical 1 or 0!
> ... This came from firm roots in BASIC as a first language... >
I can't resist referring to http://www.cs.utexas.edu/users/EWD/ewd04xx/EWD498.PDF whenever BASIC -- or its successor, Visual SickBay -- is mentioned (or at least thinking of it ;-) Of course, since you made me think of EWD papers, I must also refer you to http://www.cs.utexas.edu/users/EWD/ewd08xx/EWD831.PDF Enjoy! -jn- -- It's turtles all the way down! joel'dot'neely'at'fedex'dot'com

### [2/9] from: jelinem1:nationwide at: 3-Jul-2001 13:58

> Mathematics is included in programming to be sure, but I > don't see Mathematics as a superset of programming... > So, I do not see any reason to choose programming > implementations based on mathematics (probably better > stated as "numerics"). >
NO NO NO NO NO NO NO NO NO! Arithmetic ("numerics") is the least interesting and most trivial aspect of Mathematics. (And IMHO number-crunching is the least interesting aspect of programming.) As one example of the kind of relevant (non-arithmetic) math, I'd highly recommend Carl's article in REBOL/Zine 1.2. The process of transforming code from the original form either (mode) [ data: find data "Active" ][ data: find data "Passive" ] into the final data: find data pick ["Active" "Passive"] mode has been known in the Forth world (for at least 10 years) as factoring and more recently in the OO and extreme programming worlds as "refactoring" by direct analogy with the kind of algebraic process that allows one to transform (a * b + c) - (d * b + c) into (a - d) * b (I trust I needn't add the reminder that algebra is NOT about arithmetic nor numbers, but about formal manipulations of strings of symbols.) As another example, the algebraic law that lets me refactor if any [a <= b none? find p q not same? x y] ... into if all [a > b find p q same? x y] is known as DeMorgan's law (about which more later). I can't imagine programming without being able to perform such transformations and having the logical underpinnings on which they rest.
> Just as "art" can be described in the terms of physics... >
I know a number of folks in both the Artificial Intelligence and Physics worlds who'd love to argue that point with you! ;-)
> > Logic values do have an implicit integer meaning, 0 false, > > and 1 true. This is firmly accepted amongst electronics > > world. > > Absolutely! This makes great sense in the world of > electronics. But why, in the abstract world of logic, should > this relation be valid? >
Ever heard of George Boole (1815 1864), after whom Boolean algebra is named? His work considerably predates electronics (and TLTMNBM), and is rightly regarded as the foundation of mathmatical (symbolic) logic. In conjunction with Boole, another British mathematician, Augustus DeMorgan, formalized a the principles now known as DeMorgan's laws. As the Encyclopedia Britannica says: "A renascence of logical studies came about almost entirely because of Boole and DeMorgan." Boole used 1 for true and 0 for false, allowing such notation as (1 - x) for not x and (1 - x)(1 - y) for (not x) and (not y) The relation is far more valid in the abstract world of logic than it is in the approximate world of electronic circuits whose variable voltages must be interpreted as being "close enough" to the values chosen to represent logical 1 or 0!
> ... This came from firm roots in BASIC as a first language... >
I can't resist referring to http://www.cs.utexas.edu/users/EWD/ewd04xx/EWD498.PDF whenever BASIC -- or its successor, Visual SickBay -- is mentioned (or at least thinking of it ;-) Of course, since you made me think of EWD papers, I must also refer you to http://www.cs.utexas.edu/users/EWD/ewd08xx/EWD831.PDF Enjoy! -jn- -- It's turtles all the way down! joel'dot'neely'at'fedex'dot'com

### [3/9] from: jeff:rebol at: 3-Jul-2001 12:26

Howdy, Joel:
> As another example, the algebraic law that lets me refactor > > if any [a <= b none? find p q not same? x y] ... > > into > > if all [a > b find p q same? x y]
maybe into: if NOT all [ a > b find p q same? x y ] ... DM is ~(p or q) = ~p and ~q ~(p and q) = ~p or ~q Working backwards, though: ~( ~p and ~q ) == ~(~(p or q)) [DM] == (p or q) [Double negation] Therefore: (p or q) == ~ ( ~ p and ~q ) :-) -jeff

### [4/9] from: joel:neely:fedex at: 3-Jul-2001 14:55

Hi, Michael, I trust my citation was understood as sympathy with the implied difficulty of overcoming "firm roots in BASIC" and not as a value judgment on your progress in that quest! ;-) We need not cover the list of programming languages that I've used and tried to recover from! Said list includes COBOL, the language that was hyped as allowing managers to read their subordinates' code to verify its correctness!!!! (Contributing to my skepticism toward the notion of "computer programming for non-programmers"!) -jn- [JELINEM1--nationwide--com] wrote:
> Reading the first link now ("How do we tell truths that might > hurt?"). Just got to the statement:
<<quoted lines omitted: 4>>
> You must now read the article or I'll be held liable. > <snicker> I'm mentally mutiliated! ...
Not really! You're using REBOL now, and "recognizing that you need help is half the cure!" ;-) -jn- ___________________________________________________________________ The purpose of computing is insight, not numbers! - R. W. Hamming joel'dot'neely'at'fedex'dot'com

### [5/9] from: joel:neely:fedex at: 3-Jul-2001 14:58

Yes, Jeff, thanks for catching the hideous typo!!! My REBOL theorem-prover was temporarily down so that I could run my email client! (That's my story, and I'm stickin' to it! ;-) -jn- Jeff Kreis wrote:
> > As another example, the algebraic law that lets me refactor > >
<<quoted lines omitted: 3>>
> > > if NOT all [ a > b find p q same? x y ] ...
-- ___________________________________________________________________ The purpose of computing is insight, not numbers! - R. W. Hamming joel'dot'neely'at'fedex'dot'com

### [6/9] from: bard:papegaaij:austarnet:au at: 4-Jul-2001 8:43

Hi guys, My first introduction to programming was through the book "Structure and Interpretation of Computer Programs" by Abelson and Sussman. This is an excellent book that clearly demonstrates the intimate link between mathematics and programming. My motto: "no good programmer should be without it". For those interested, it is available on-line at: http://scip.arsdigita.org. Have a look at it, I'm sure you'll love it (if you don't know it already, of course). Bard

### [7/9] from: bard:papegaaij:austarnet:au at: 4-Jul-2001 9:04

Sorry, got the address wrong, it should be: http://sicp.arsdigita.org Sorry for the typo. Bard

### [8/9] from: larry:ecotope at: 3-Jul-2001 18:31

Hi Bard, Yes, I agree. SICP is one of my favorite programming books, possibly the best one in print. In addition, being based on the symbolic language Scheme, it is particulary appropriate for REBOL, which is in many ways similar to Scheme. Thanks for drawing folks attention to it. As you noted in a subsequent post the correct link is http://sicp.arsdigita.org For those interested in recent activities of the co-inventor (with Guy Lewis Steele) of Scheme, there is an April 2, 2001 video lecture by Gerald Sussman, discussing his "big picture" view of programming at http://aduni.org/about/colloquium_schedule.tcl Toward the end, he discusses his new book The Structure and Interpretation of Classical Mechanics which uses Scheme to formalize thinking about advanced mechanics. There are also lectures by Stallman, Parmenter, and others. Cheers -Larry

### [9/9] from: meekerdb:rain at: 3-Jul-2001 20:27

Hello Larry On 03-Jul-01, Larry Palmiter wrote:
> Hi Bard, > > Yes, I agree. SICP is one of my favorite programming books, possibly > the best one in print. In addition, being based on the symbolic > language Scheme, it is particulary appropriate for REBOL, which is in > many ways similar to Scheme.
It's one of my favorite books too! I note that in Scheme indexing starts with 0 and booleans are a separate datatype with values #T and #F. I like both conventions. Brent Meeker

Notes
• Quoted lines have been omitted from some messages.
View the message alone to see the lines that have been omitted