Earlier quoted context omitted.
It has been called many things ("general abstract nonsense", etc.), but I don't know if it has ever been called "an easier way to explain things to non-mathematicians." :)
Nobody thinks category theory is easy for nonmathematicians, but the point of it is that it provides a common language for talking about common behaviors across many different, seemingly disparate, fields of mathematics, for mathematicians .
Parallels Between Math and Software Engineering
71–80 of 97 posts
Re: Parallels Between Math and Software Engineering
#72Earlier quoted context omitted.
I think it's probably just that you have far more relevant experience with reading code. Math is its own language, and math departments only really start teaching how to read and write it in Real Analysis classes. As my math professor stepfather said his advisor once put it, "Everything before that is just to keep the children from running in the halls."
I've always wondered why Real Analysis isn't introduced earlier in math education. It might make it easier to grasp concepts introduced in upper-level math.
Re: Parallels Between Math and Software Engineering
#73Mathematical truths and objects are real things with existence independent of our minds that we "discover," not just designed things. The author seems to believe that the language used to describe mathematics (which is indeed a designed thing, just like software) is the only thing "there." She is probably a formalist. I think it is important to remember this, because mathematics, like a computer, "fights back." You c…
>Mathematical truths and objects are real things with existence independent of our minds that we "discover," not just designed things. While its almost certainly true that the content of mathematics is mind independent, it is far from obvious that these objects are "real things".The real meat of the issue is how exactly the mind-independence is cashed out. Different ideas paint a vastly different picture of mathemati…
True, it is our observation and our model which are similar, so I suppose the philosophical question then is up to what point we can trust our observations. And if we trust our observations, I would conclude that the similarity of our observations and math means that the real world can at least exhibit 'maths', which means our minds are not the only place where math can exist.
The smartphone I'm typing this on leads me to conclude that lots of our observations are highly trustworthy :)
Re: Parallels Between Math and Software Engineering
#74Earlier quoted context omitted.
> And just like mathematics, adding an another "axiom" to the law has far, far-reaching consequences. Actually mathematicians virtually never do this. Almost all of mathematics (from arithmetic to calculus to category theory) operates in the confines of ZFC[1] and adds no further axioms. All of these fields may add definitions , but these are just shorthand; the are conservative and have no actual consequences. It is…
>Actually mathematicians virtually never do this. Almost all of mathematics (from arithmetic to calculus to category theory) operates in the confines of ZFC[1] and adds no further axioms. Except for all the non-ZFC foundations, like type theory or category-theoretic foundations.
Re: Parallels Between Math and Software Engineering
#75At the end of the article, the author mentions how we could possibly find other designs of mathematics. Well, some people already have! Some mathematicians did not like the law of excluded middle, which states that for any proposition A, either A is true or A is false. So they invented intuitionistic logic, which is normal logic without the excluded middle, and started rewriting mathematical proofs in this new system…
Re: Parallels Between Math and Software Engineering
#76Earlier quoted context omitted.
I don't think you can say of any topic in mathematics that it's the best example of why learning math is useful. What about calculus? It's an immensely powerful tool that, by harnessing the power of the infinite and the infinitesimal, unlocks a massive body of practical applications in nearly every field of quantitative knowledge. And what about discrete math? Without it there would be no such thing as a computer. Di…
> What about calculus [...and...] differential equations ? I agree that calculus and diff. equations techniques are important, but if you look closely, you'll see they are only "necessary" for engineers and physicists, and other "hard" sciences, and not so essential for non-science studies. Imagine "pitching" the benefits of learning university-level math to a class of Arts students. Can you honestly say their lives…
Re: Parallels Between Math and Software Engineering
#77Earlier quoted context omitted.
These are generally called axioms, but these are totally distinct from axioms in the sense of ZFC's axioms. They are simply part of the definition of a group, commutative group, etc. Since they are just part of the definition of the structure, choosing the "wrong axioms" will only result in a structure which has no actual instances, not in inconsistency of the underlying theory. As such, they most certainly don't hav…
This is a really hair-splitting distinction that only makes sense if mathematicians wrote proofs (e.g., about commutative group theory) while keeping ZFC's axioms in mind. But even then, it's not really an appropriate distinction -- accidentally assuming inconsistency and moving forward with it is exactly as far-reaching as assuming inconsistency at the foundations. And, doing some obscure work on an inconsistent fou…
They may not do so explicitly, but it is easy to see where the axioms become important when dealing with mathematical structures. For example, if you are considering the group of integers with addition, the existence of this group is predicated on the existence of the integers, which is predicated on the existence of the natural numbers as a set, which is an axiom of ZFC (axiom of infinity[1]). The case for other foundations is similar.
> But even then, it's not really an appropriate distinction -- accidentally assuming inconsistency and moving forward with it is exactly as far-reaching as assuming inconsistency at the foundations.
No, because when studying a mathematical structure we always consider concrete instances of it, which are usually in fact the motivation for the definition of the structure. So mathematics based on possibly (relatively) inconsistent structures (other than foundational systems) is not really a thing; group theory was not initiated prior to the discovery of structures satisfying the groups axioms, and neither was the study of rings, fields, modules, topological spaces etc. On the other hand, we cannot consider models of ZFC unless we build it within the assumptions of a foundational system (possibly ZFC itself). So at some point we have to pick a set of axioms to be the bottom of our ladder of turtles, and the axioms of that system are very special indeed.
Another difference is that the axioms of a group (or a field, or a topological space) cannot stand on their own; they clearly reference sets and functions. ZFC's axioms only reference sets, all of the fundamental properties of which are enumerated in the axioms themselves. If you gave an (english speaking) alien the definition of a group, he would need to ask you what the definition of sets and functions were. So even if we wanted the group axioms to be our foundations, this would not be possible.
Re: Parallels Between Math and Software Engineering
#78Earlier quoted context omitted.
I think it's probably just that you have far more relevant experience with reading code. Math is its own language, and math departments only really start teaching how to read and write it in Real Analysis classes. As my math professor stepfather said his advisor once put it, "Everything before that is just to keep the children from running in the halls."
I've always wondered why Real Analysis isn't introduced earlier in math education. It might make it easier to grasp concepts introduced in upper-level math.
Re: Parallels Between Math and Software Engineering
#79At the end of the article, the author mentions how we could possibly find other designs of mathematics. Well, some people already have! Some mathematicians did not like the law of excluded middle, which states that for any proposition A, either A is true or A is false. So they invented intuitionistic logic, which is normal logic without the excluded middle, and started rewriting mathematical proofs in this new system…
Those aren't arguments. All of those are very standard things to do.
There's a Spiked Math comic with some good mathematics-engineering trash talk, though, with the mathematicians shooing away a hapless engineer with comments like "do you even know how to spell 'imaginary'?" and "why don't you go jmagine you have friends?" Again, I wouldn't describe this as an area of active debate.
Re: Parallels Between Math and Software Engineering
#801. An ancestor of Djinn is automated theorem proving. Why can't machines prove math theorems for us? This quest goes back to the dawn of computing science.
2. A more recent development is the Curry-Howard Correspondence. Programming in a (typed) FP language is like playing tetris. Solving symbolic logic problems [1] is also like playing tetris. Djinn exposes the connection in a REPL you can play with. And see how the computer plays tetris for you!
3. Don't want to install Djinn? No problem, just hop over to the Haskell IRC [2]. Lambdabot has a working Djinn plugin.
[0] https://hackage.haskell.org/package/djinn