A mathematical formalization of dimensional analysis (2012)
terrytao.wordpress.com
terrytao.wordpress.com
I enjoyed the post a lot (at least the parts that didn’t pass right over my head). But I never met a physicist with lingering unease about dimensional analysis. We get that beaten into us until it’s as natural as breathing.
There is very little that physicists have lingering unease about when it comes to (ab)using maths to get their way with the physical world.
Examples abound, and have actually led to many a new avenue in math.
Distributions (as in the Dirac distribution) are a very good example of this (IIRC convolution didn't have an identity and they needed one, and they just made up "functions" that were allowed to have infinite values as long as they had finite sums or something along those lines).
If your math objects breaks other properties of math that you don't use then it doesn't matter, you don't use those so your math is still correct.
A programmer analogy would be that you implement a special kind of list for your project, but don't implement the whole list interface because you don't need the rest. That makes the mathematicians fume, "it isn't a list!!!", and they invent a new interface name for your implementation, like "distribution" instead of function.
and you can't derive a contradiction
> you can do whatever you want with math.
Fixed.
However, regarding the Dirac delta function an other generalized functions, even though they were introduced by physicists (I think Heaviside was an early proponent) in a hand wavy fashion, they were later put in rigorous mathematical footing in the theory of distributions. Distributions are nowadays used by mathematicians without any hesitation.
This also not the first instance of something like this, and it won't be the last. Physicists have come up with ad hoc methods that work, but they can't justify why with rigor. Some time later mathematicians formalize it and it becomes part of their tool set.
Yeah some French dude called Laurent Schwarz that got the Fields medal for it.
IIRC he built the set of distributions as the dual vector space of the tiniest vector space he could think of: extremely well behaved functions (C-infinite functions with finite support - weird mathematical beasts that go to zero at the extremities of their support with all derivatives also going to zero there as well).
I never really managed to grok the intuition behind the formalization of Schwarz, whereas the hand-wavy physicist way is pretty straighforward to understand.
It counts discrete things that combine as integers, but are not convertible (commensurate) between different instances of the unit, like apples and oranges.
A hen lays 3 eggs a week (1egg/T), and a car factory makes 4,000 cars a week (1car/T). Dimensional analysis says they are both 1/T, but we know they are really not commensurable.
P.S. Things that do not combine as integers: water drops (1+1=1); rabbits (1+1=2^t for some time constant t).
Energy and torque are both N.m in SI units, but in one case the vectors are aligned, and in the other they are perpendicular.
Energy is a scalar, torque is an axial vector.
The Gibbs formulation of 3D vector analysis/calculus was certainly useful, but forgets most of the spatial structure. Using Clifford Algebra (Geometric Algebra) fixes everything.
Almost all of the value in GA comes from the use of multivectors and the wedge product. It's very hard to find a justification for the "geometric product", and there's no real geometric interpretation of it. Therefore treating it as fundamental is a difficult-to-justify choice. "Exterior Algebra" on its own has everything you want without the objectionable parts.
I suppose you could even go through the relevant laws of physics and only identify the units for quantities that need to be added together (or to make the quantities inside more complex functions unit-less).
In the case of torque and energy you basically run into the problem that torque times angle is an amount of work and angle is traditionally unit-less. You could however give angle a unit by introducing some 'unnecessary' conversion factor like 'degrees per radian', which is only used for trigonometry. In that case you could reformulate torque as 'energy per angle'.
Possibly of interest, as mentioned in Appendix C of https://www.nist.gov/publications/architecture-software-assi... there is a start to this in https://en.wikipedia.org/wiki/ISO/IEC_80000
In some cases, like vectors and axial vectors, it is less obvious because (in 3 spatial dimensions), they actually have the same number of components. But still, if you add them together you get something that does not transform in a sensible way under reflections.
"A related limitation, which is not always made explicit in physics texts, is that transcendental mathematical functions such as {\sin} or {\exp} should only be applied to arguments that are dimensionless"
But we all know they have 'units', or at least different formats, because there are also decimal degrees and integer DMS, but the S may also be decimal.
There are also unit formats for other ratios, e.g. decimal or %, road gradients like '1 in 4' and betting odds like '4 to 1' .
Dimensionless angles also mean that angular velocity is just 1/T. The fact of the rotation is lost (see my other comment about tracking spatial structure).
I think one subtle aspect here not really covered in that other article is sort of a "duality" between "scale invariance" and "carrying scale tags" along with expressions. This also happens in differential geometry or even just analytic geometry / vectors where you can often either use an abstract geometric object notation or carry along index subscripts. So, you can think of it units as carrying along scales you care to track "for whatever reason".
The most common reason for physical units is varying conventions/devices to measure something. Angle measurers care about their own devices and so their units. By carrying along the scale you make the number a surrogate for a hypothetical experimental result. Unit conversion can be seen as how to translate from one (kind of) apparatus to another.
So, while args to trig functions are dimensionless, you do not have to be as strict about angles. You could retain them and make people carry along a multiplicative factor inside the parameters which is likely what people with instruments measuring angles in non-radians do.
Similarly, you could also (probably coherently though I have not thought deeply about it) expand SI to 8 base units adding "axial-meters". The number of base units / scales to carry along is arbitrary. It just depends upon how much expressional error checking is desired as @contravariant observes. (system conversion has its own structure as per my other comment elsethread, unelaborated by both articles.)
Because the "axialness" factor is more "kind than amount" (and binary at that), besides contravariant's (probably better) angle-dimension idea, it might be more like how `i=sqrt(-1)` creates a 2nd dimension for real numbers and you carry along that factor to make the complex plane. I have no idea how popular this kind of "complex length unit" would be in terms of error catching value for its carrying-along cost, though.
This can be useful because it allows for changing units after the fact. That `ln T` can become a `ln T(S/S) = ln T/S + ln S` if you want, and `ln T/S` can have a non-zero value that actually matters.
When I was a wee lad, my parents somehow recognised that while I really took pleasure in understanding abstract math concepts, I struggled to grasp math concepts when only using written symbols (bless their hearts as my parents - my mom a security guard at a local power plant and my dad ran "warehouses" and did a sting in prison for "warehousing" the wrong "thing" - were the furthest thing from academics). They got me Cuisonaire Rod (1) instructions from a local lady who must've done it as a side gig.
We'd sit at her kitchen table and play around with shapes and I would gain true intuition for all types of basic math concepts. I believe it laid a solid foundation for my future (current work as an engineer and researcher).
I still struggle with abstract math explained using symbols. I very rarely make it through any math Wikipedia page explanations. It's like teaching an abstract concept with an abstract tool - too many layers of abstraction. I always envied the people who can.
1.) https://www.hand2mind.com/glossary-of-hands-on-manipulatives...
I wish I could tell a friend that I've had the exact same thought, but I'm sure no one would believe me. And I have no friends anyway.
I mean, your example in the context of these dim.analysis discussions would really have an output type of DurationSquared, not Duration which is what usual prog.lang modeling does for arithmetic ops.
Go also is not alone. E.g., the Nim std/times has a `*` defined for (int, Duration) but not (float, Duration).
Personally, I suspect prog.langs with native 64-bit ints are better off just using raw nanoseconds for this kind of thing (even time since the epoch gets you into Star Trek centuries.. something like 10 human generations from now).
In terms of the type creation, though, there is some hope like the Nim Unchained package: https://github.com/SciNim/Unchained
I mean, in Python you can't multiply two timedeltas and in Rust you can't multiply two time::Durations. So I'd say that it's not programming language modeling in general that's the problem but rather that Go is putting itself in a category of languages that lose the original semantics of the thing the type is modeling. I'm not sure what other languages are with Go there.
My favorite bit is his explanation of how dimensional analysis explains the relationships between powers used in Sobolev inequalities. After we get the idea of dimensions divorced from the usual physical MLT usage you can apply these techniques all over math.
Historically, there were non-decimal currencies, like British pounds-shilling-pence, with 1:20:12 ratio.
However, each value also needs a timestamp to enable conversions between currencies, or comparisons for the same currency at different times (inflation).
Eg https://en.wikipedia.org/wiki/Venezuelan_bol%C3%ADvar#Curren...
On a computer, for specific purposes. It's a reasonable way to implement certain computations correctly, but has little to do with the topic.
https://deque.blog/2017/08/17/a-study-of-4-money-class-desig...
https://en.wikipedia.org/wiki/Planck_units
you will see that probably 4-D (say Mass, Length, Duration, and Temperature or MLDT) is a more complete example. Or is it :shifts eyes:? Maybe it's 3, 4, or 7 like SI. Linear algebra by hand gets pretty tough at 4x4 .. 7x7 which operationally (with lack of software tools) probably drives the choice IRL more than anything.
In light of that, both articles are simultaneously mostly general in number of "base physical kinds" but also neglect treating the structure of projecting and inverse projecting (based on a partially known type - often known by variable naming conventions like E=energy) done with the common c=1 & dimensionless trick { projecting into the (Mass,Temp)-(DuraLen) 3-space } or c=hbar=1 "natural" or "particle physics" units. (In PLT-ese this might be thought of as partial type erasure, I suppose.)
Well, Terry's article at least mentions the erasure trade-off of dropping the `c`, but misleads by not mentioning that naming conventions can tell you how to put it back, allowing you to (almost) have your cake & eat it, too. For energy, add a c^2 factor, for momentum a 'c' factor, etc. I think it's a blurring of boundaries of a referred to object and the referring name / syntax of referral which can all kind of cut many ways, but which is very common in both physics and mathematics.
For the programming crowd, knowing what symbols are what sort of relates to IF you are willing to have "implicit" typing in FORTRAN where variables starting with 'i' .. 'n' are INTEGER and starting with the complement are REAL. That might sound like a big "IF", but in math & physics there are often all sorts of typographical conventions (like boldface vectors/capitalized matrices, Roman number classes like R,C,I, Greek & Latin sub/super-scripts, etc.). In a way, the move is really more copying part of the type from the value to the name/syntax or more splitting than erasure. From a certain point of view (with primes, subscript, syntax variants thought of as same-typed array members, not "truly new"), this isn't even that incoherent. Advisable? Harder social questions. https://en.wikipedia.org/wiki/Hungarian_notation notably does not list "suppressing all powers of 'incidental' constants" under Advantages. ;-)
Why this matters? At least 3 reasons.
1) Some physicists actually do this, and not only for fundamental constants which get the most "press coverage".. I had a professor once who (to save on chalkboard RSI / keep derivations less noisy) liked to use units such that the harmonic oscillator sprint constant was ==1 and dimensionless. In my experience, https://en.wikipedia.org/wiki/Natural_units come up at least as much as the mathematically (almost) equivalent Buckingham Pi theorem. All this usually after a flurry of symbol manipulation that might include very little renaming/truly new symbols/things.
2) 0..7 (or whatever) essentially is sort of a measure of how much type checking is happening. Mathematicians love to quantify things { as well as expound upon "almost equivalent" :-) }. I mean, they're vector spaces and transfinite cardinality says (x,y,z) is the "same infinity" as (x,y), but in more practical "finite expressional" senses "meant to be checked", 0 is like Python/Planck and 7 is like Haskell (or some other PL metaphor of your own you prefer). It's definitely a measure of how complex the linear algebra is to do unit system conversion, in regular old computational complexity senses. :) In fact, it might be covered in the "spending symmetry" cross links Terry gives, but if so that was maybe too implicit for me. :) I wouldn't have posted this if I thought it non-neglected. Maybe he needs a "symmetry buy back" article or something about name-referent type-splitting. ;-)
3) Finally, because you are doing type splitting / inverse projection with naming conventions (or other metadata) to pick up slack where your type system is weaker, it touches more on the kind of soundness-of-what-physicists-do unease that people here think Terry might have been worried about. { Only Terry knows for sure! :-) }
1, 1+1, 1+1+1, 1+1+1+1, 1+1+1+1+1, 1+1+1+1+1+1, 1+1+1+1+1+1+, 1+1+1+1+1+1+1+1, 1+1+1+1+1+1+1+1+1, 1+1+1+1+1+1+1+1+1+1, and so on...