I love math but the symbology and notations get in my way. 2 ideas:
1. Can we reinvent notation and symbology? No superscripts or subscripts or greek letters and weird symbols? Just functions with input and output? Verifiable by type systems AND human readable
2. Also, make the symbology hyperlinked i.e. if it uses a theorem or axiom that's not on the paper - hyperlink to its proof and so on..
Notation an symbology comes out of a minmax optimisation. Minimizing complexity maximizing reach. As with every local critical point, it is probably not the only state we could have ended at.
For example, for your point 1: we could probably start there, but once you get familiar with the notation you dont want to keep writing a huge list of parameters, so you would probably come up with a higher level data structure parameter which is more abstract to write it as an input. And then the next generation would complain that the data structure is too abstract/takes too much effort to be comunicated to someone new to the field, because they did not live the problem that made you come with a solution first hand.
And for you point 2: where do you draw the line with your hyperlinks. If you mention the real plane, do you reference the construction of the real numbers? And dimensionl? If you reason a proof by contradiction, do you reference the axioms of logic? If you say "let {xn} be a converging sequence" do you reference convergence, natural numbers and sets? Or just convergence? Its not that simple, so we came up with a minmax solution which is what everybody does now.
Having said this, there are a lot of articles books that are not easy to understand. But that is probably more of an issue of them being written by someone who is bad at communicating, than because of the notation.
(1) I always tell my students that if they don't understand why things are done a certain way, that they should try to do it in the way most natural to them and then iterate to improve it. Eventually they will settle on something very similar to most common practice.
(2) Higher-level proofs are using so many ideas simultaneously that doing this would be tantamount to writing Lean code from scratch: painful.
1. I work in finance and here people sometimes write math using words as variable names. I can tell you it gets extremely cumbersome to do any significant amount of formula manipulation or writing with this notation. Keep in mind that pen and paper are still pretty much universally used in actual mathematical work and writing full words takes a lot of time compared to single Greek letters.
Large part of math notation is to compress the writing so that you can actually fit a full equation in your vision.
Also, something like what you want already exists, see e.g. Lean: https://lean-lang.org/doc/reference/latest/. It is used to write math for the purpose of automatically proving theorems. No-one wants to use this for actually studying math or manually proving theorems, because it looks horrible compared to conventional mathematics notation (as long as you are used to the conventional notation).
I'd love getting rid of all the weird symbols in favor of clear text functions or whatever. As someone who never learnt all the weird symbols its really preventing me from getting into math again... It is just not intuitive.
Those are used since it makes things easier, if you write everything out basically nobody would manage to learn math, that is how it used to be and then everything got shortened and suddenly average people could learn calculus.
There has to be a happy medium between the tersness of the current notation systems and the verbosity of code-like expressions. We just need to rethink this so more people can learn it. Math still stands a bit like writing did in ancient culture. It's a domain reserved for a few high priests inducted into the craft and completely inaccessible to everyone else.
I wonder why so many people are under the impression that the notation is what is keeping them away and if only the notation was easier then the underlying concepts would be clear. For example, if you don't know what the pullback of a differential form is, it doesn't matter if I write it in clear text or if I write the common notation φ^* ω.
> It's a domain reserved for a few high priests inducted into the craft and completely inaccessible to everyone else.
It's a domain reserved for people who want to learn it, and there's ton of resources to learn it. Expecting to understand it without learning it does not make any sense.
φ^* ω is just 2 weird symbols. There are tons of symbols to learn. I gave up trying to learn the Russian alphabet after a few days so why do u think I am capable of memorizing the Greek one?
The theories are learnable, making sense of all the weird symbols is what's breaking my brain. I tried to get into set theory thrice now, not happening with all the math lingo, hieroglyphs and dry ass content. Learning can be incredibly fun if it was designed fun. Math is a dry and slow process. Make it fun, make it readable and people will be capable to learn it easier.
> why do u think I am capable of memorizing the Greek one
No one memorizes the Greek alphabet. We just learn it as we go because it’s useful to have different types of letters to refer to different types of objects. That’s it.
> I tried to get into set theory thrice now, not happening with all the math lingo, hieroglyphs and dry ass content.
That sounds like you’re trying to learn a specific field without actually having any of the prerequisites to learn it. I don’t know what you’re specifically referring to when you say “set theory” as that’s an incredibly wide field, and depending on what you’re trying to learn it can be quite technical.
> Learning can be incredibly fun if it was designed fun. Math is a dry and slow process.
This sounds like someone complaining that getting to run a marathon is tiresome and hard. Yes, teaching mathematics can always be improved and nothing is perfect, but it will still be hard work.
The problem is that math is not some universal language, it is a broad field with various sub domains with their own conventions, assumptions, and needs.
Polysemy vs Homonymy vs Context Dependency will always be a problem.
There are lots of areas to improve, but one of the reasons learning math is hard is that in the elementary forms we pretend that there is a singular ubiquitous language, only to change it later.
That is why books that try to be rigorous tend to dedicate so much room at the start to definitions.
Abstract algebra is what finally help it click for me, but it is rare for people to be exposed to it.
That is exactly it, a long text is much harder to understand than a one liner, we see that time and time again in problem solving if you write the same problem as a long text many fewer students manage to solve it than if you write it as a one liner.
I'm not sure that symbols are the thing actually keeping you away. Clear text functions might not be as clear, as it will be harder to scan and it will still contain names that you might not be familiar with. Those "weird symbols" are not there because people liked to make weird symbols. No one likes them, it's just that it makes things easier to understand.
Probably not. The conventional math notation has three major advantages over the "[n]o superscripts or subscripts or [G]reek letters and weird symbols" you're proposing:
1. It's more human-readable. The superscripts and subscripts and weird symbols permit preattentive processing of formula structures, accelerating pattern recognition.
2. It's familiar. Novel math notations face the same problem as alternative English orthographies like Shavian (https://en.wikipedia.org/wiki/Shavian_alphabet) in that, however logical they may be, the audience they'd need to appeal to consists of people who have spent 50 years restructuring their brains into specialized machines to process the conventional notation. Aim t3mpted te rait qe r3st ev q1s c0m3nt 1n mai on alterned1v i6gl1c orx2grefi http://canonical.org/~kragen/alphanumerenglish bet ai qi6k ail rez1st qe t3mpt8cen because, even though it's a much better way to spell English, nobody would understand it.
3. It's optimized for rewriting a formula many times. When you write a computer program, you only write it once, so there isn't a great burden in using a notation like (eq (deriv x (pow e y)) (mul (pow e y) (deriv x y)) 1), which takes 54 characters to say what the conventional math notation¹ says in 16 characters³. But, when you're performing algebraic transformations of a formula, you're writing the same formula over and over again in different forms, sometimes only slightly transformed; the line before that one said (eq (deriv x (pow e y)) (deriv x x) 1), for example². For this purpose, brevity is essential, and as we know from information theory, brevity is proportional to the logarithm of the number of different weird symbols you use.
We could certainly improve conventional math notation, and in fact mathematicians invent new notation all the time in order to do so, but the direction you're suggesting would not be an improvement.
People do make this suggestion all the time. I think it's prompted by this experience where they have always found math difficult, they've always found math notation difficult, and they infer that the former is because of the latter. This inference, although reasonable, is incorrect. Math is inherently difficult, as far as anybody knows (an observation famously attributed to Euclid) and the difficult notation actually makes it easier. Undergraduates routinely perform mental feats that defied Archimedes because of it.
> ... It's optimized for rewriting a formula many times.
It's not just "rewriting" arbitrarily either, but rewriting according to well-known rules of expression manipulation such as associativity, commutativity, distributivity of various operations, the properties of equality and order relations, etc. It's precisely when you have such strong identifiable properties that you tend to resort to operator-like notation in any formalism (including a programming language) - not least because that's where a notion of "rewriting some expression" will be at its most effective.
(This is generally true in reverse too; it's why e.g. text-like operators such as fadd() and fmul() are far better suited to the actual low-level properties of floating-point computation than FORTRAN-like symbolic expressions, which are sometimes overly misleading.)
Hmm, I'm not sure whether operator-like notation has any special advantage for commutativity and distributivity other than brevity. a + b and add(a, b) are equally easy to rewrite as b + a and add(b, a).
Maybe there is an advantage for associativity, in that rewriting add(a, add(b, c)) as add(add(a, b), c) is harder than rewriting a + b + c as a + b + c. Most of the time you would have just written add(a, b, c) in the first place. That doesn't handle a + b - c (add(a, sub(b, c)) vs. sub(add(a, b), c)) but the operator syntax stops helping in that case when your expression is a - b + c instead, which is not a - (b + c) but a - (b - c).
Presumably the notorious non-associativity of floating-point addition is what you're referring to with respect to fadd() and fmul()?
I guess floating-point multiplication isn't quite commutative either, but the simplest example I could come up with was 0.0 * 603367941593515.0 * 2.9794309755910265e+293, which can be either 0 or NaN depending on how you associate it. There are also examples where you lose bits of precision to gradual underflow, like 8.329957634267304e-06 * 2.2853928075274668e-304 * 6.1924494876619e+16. But I feel like these edge cases matter fairly rarely?
On my third try I got 3.0 * 61.0 * 147659004176083.0, which isn't an edge case at all, and rounds differently depending on the order you do the multiplications in. But it's an error of about one part in 10⁻¹⁶, and I'd think that algorithms that would be broken by such a small amount of rounding error are mostly broken in floating point anyway?
I am pretty sure that both operators are commutative.
We do often find add(a, b, c), just written as Σ(a, b, c). Similar for mul and Π. The binary sub operator can be simply rewritten in terms of add and unary minus; the fact that we write (a - b) instead of (a + [-b]) or perhaps Σ(a, [-b]) is ultimately a matter of notational convenience, but comes at some cost in mathematical elegance. Considering operators that are commutative yet not associative is not very useful; ultimately we want more from our expression rewriting than just flipping left and right subexpressions within an expression tree while keeping the overall complexity unchanged.
Usually you'd have to write that as \sum_{v \in \{a, b, c\}} v; one of the ways I think conventional math notation could in fact be improved would be by separating the aggregate function of summation from the generation of the items, allowing you to write \sum \{a, b, c\}, at the minor cost of having to write \sum_{i = 1}^N i^2 as something like \sum |_{i=1}^N i^2.
It's not conventional to write commutative-but-not-associative functions as infix operators, but I don't think that's due to some principled reason, but just because they're not very common; non-associative operators such as subtraction and function application are almost universally written with infix operators, even the empty-string operator in the case of function application. The most common one is probably the Sheffer stroke for NAND (although Sheffer himself used it to mean NOR in his 01913 paper: https://www.ams.org/journals/tran/1913-014-04/S0002-9947-191...).
You can go a bit further in the direction of logical manipulability, as George Spencer Brown did with "Laws of Form" (LoF): his logical connective, the "cross", is an N-ary negation function whose arguments are written under the operation symbol without separators between them, and he denotes one of the elementary boolean values as the empty string (let's call it false, making the cross NOR). ASCII isn't good at reproducing his "cross" notation, but if we use brackets instead, we can represent his two axioms as:
[][] = [] (not false or not false is not false)
[[]] = (not not false is false)
In this way Spencer Brown harnesses the free monoid on his symbols: the empty string is the identity element of the free monoid, so appending it to the arguments of a cross doesn't change them and thus can't change the cross's value. Homomorphically, false is the identity element of disjunction, which is a bounded semilattice, and thus a monoid.
This allows not only the associative axiom but also the identity axiom to be simple string identity, which seems like a real notational advantage. (Too bad there isn't any equivalent for the commutative axiom.) It allows Spencer Brown to derive all of Boolean logic from those two simple axioms.
However, so far, I haven't found that the LoF notation is an actual improvement over conventional algebraic notation. Things like normalization to disjunctive normal form seem much more confusing:
a(b + c) → ab + ac (conventional notation, rewrite rule towards DNF)
[[a][bc]] → [[a][b]][[a][c]] (LoF notation)
It's a little less noisy in Spencer Brown's original two-dimensional representation (note that the vertical breaks between the U+2502 BOX DRAWINGS LIGHT VERTICAL characters are not supposed to be there; possibly if you paste this into a text editor or terminal it will look better)
A thing I didn't appreciate the first time I read Spencer-Brown's book is that he actually cites Sheffer's 01913 paper, and proves Sheffer's postulates within his system in an appendix. This situates him significantly closer to the mathematical mainstream than I had thought previously, however flawed his proof of the four-color theorem may have been.
His first statement of the first axiom in the book is a little more general than the version I reproduced earlier and which is inscribed on his gravestone; rather than his "form of condensation"
[][] = []
his "law of calling" is general idempotence, i.e.,
AA = A
although the two statements are equipotent within the system he constructs. Similarly, before stating his "form of cancellation"
[[]] =
he phrases it as the "law of crossing", which I interpret as
When you render it for proper typesetting, do the parentheses around dy/dx disappear? (Oh, I guess you've removed them in your edit.)
If they do, it seems like an error-prone way to write your math.
If they don't, it seems like it will make your math look terrible.
Supposing that the parentheses aren't necessary, as implied by your edit: how does AsciiMath determine that e^y isn't in the numerator in "e^y dy/dx", or (worse) in the denominator in "d/dx e^y"?
It seems somewhat less noisy than the LaTeX version, but not much; assuming I can insert whitespace harmlessly:
The rules are basically the same as LaTeX, with saner symbol names, support for fractions, \ is not needed before symbols and () can be used instead of {}.
> Supposing that the parentheses aren't necessary, as implied by your edit: how does AsciiMath determine that e^y isn't in the numerator in "e^y dy/dx"
It seems to me that dx,dy,dz,dt behave like numbers, single letter variables and symbols (probably they are symbols, but not listed for some reason). Just as LaTeX doesn't need {} parentheses for numbers, single letter variables and symbols, AsciiMath allows omitting them too.
So `/` captures a single number/symbol/variable left to it, and that is `dy`. But if there was `du` for example it would only capture u, and you would need to put du between parentheses.
Thanks! It does better than I expected on tricky input like [0, 1/2). It seems like there are a lot of special cases, though. It does indeed remove parentheses from the output in some cases but not others.
Probably figuring out how to write things in AsciiMath is more trouble than copying and pasting them from Wikipedia though. (The alt text on equation images is the LaTeX source preceded with \displaystyle.)
How do you do \bigg(\big((4x + 2)x + 1\big)x - 3\bigg)x + 5 in AsciiMath? (((4x + 2)x + 1)x - 3)x + 5 makes all the parens the same size.
Why would you want to manually set the sizes of parens? I always use \left \right when writing LaTeX (and having to do it is one of the reasons I hate LaTeX math notation).
1. Can we reinvent notation and symbology? No superscripts or subscripts or greek letters and weird symbols? Just functions with input and output? Verifiable by type systems AND human readable
2. Also, make the symbology hyperlinked i.e. if it uses a theorem or axiom that's not on the paper - hyperlink to its proof and so on..