[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Axiom-developer] Units and dimensions
From: |
Ralf Hemmecke |
Subject: |
[Axiom-developer] Units and dimensions |
Date: |
Sat, 19 Aug 2006 13:14:31 +0200 |
User-agent: |
Thunderbird 1.5.0.5 (X11/20060719) |
Hi Cliff,
At the end of section 4.4.2 of
http://portal.axiom-developer.org/Members/starseeker/axiomunit_diagramtest.pdf/download
where you have discussed the problem of curvature, you say that the SI
system is not a perfect one and that it is missing a dimension of
<CircularCurvature>.
At the same time you say:
Unfortunately, Axiom must work with systems as they exist and are used
rather than than their ideal implementations, we must somehow allow
the current fundamental disodance to exist in Axiom's SI definitions
and function non the less.
I understand your wish, but to my taste that is a non-mathematical
approach. As you have described, expressed in the SI base dimensions,
<Work> and <Momentum of Force> are indistinguishable. So why would you
want to implement an imperfect system? If there is nothing in SI that
helps you to distinguish <Work> and <Momentum of Force> then you cannot
express it. You are basically saying that the SI system is
7-dimensional, but the world is 8-dimensional (or even
higher-dimensional), but you want to describe your world with 7
dimensions. That with fewer dimensions you don't see everything is
clear---draw a 4-dimensional hypercube on a sheet of (two-dimensional)
paper and try to figure out from the latter, what properties the 4-dim
object has. Of course, impossible.
So if I were to implement dimensions and units, I would design a perfect
system and allow the user to add dimensions and work with them.
Depending on which system the user chooses, he/she can work with
<CircularCurvature> or leave it out. Such an open system would even
enable one to experiment whether <CircularCurvature> is the right concept.
In the SI-system plus <CircularCurvature> you could distinguish <Work>
and <Momentum of Force> in the pure SI system you cannot.
All I want to say, forget about the nature and all those systems like SI
and cgs or whatever. In Axiom you should build a system that is flexible
enough to accomodate for any system you like. If, for example, you want
to replace the "fundamental dimension" <Length> by <Force>, then that is
possible mathematically and should be allowed by Axiom. <Length> is then
simply a "derived dimension" that depends on the "fundamental
dimensions" <Force>, <Time>, and <Mass>. Where would be the problem? As
a mathematician I can choose any axioms (fundamental things) I like as
long as they are non-contradicting. Maybe a physicist thinks differently
here?
By the way, if I look at section 4.2.2, then that very much suggests
that the *type* of a unit is a *dimension*.
To my taste, that suggests to implement 7 (or 8 or how many dimensions
you like) dimension domains:
Length: Dimension == add {
Rep == -- I don't yet know.
meter: % == ...
inch: % == ...
...
}
or you don't hardcode meter, inch etc., but make those units dynamic.
Similar domains for other dimensions.
I could even imagine something like
Length(u: Unit): Dimension == add {
Rep == Unit;
unit: Unit == ...
}
where out of the many units that are possible for lengths units, u would
be the reference unit for this dimension. (So you could have the SI
system and cgs system easily by using the Length constructor with a
different unit.
I don't yet have a good idea for the domain Unit, though. :-(
Please don't take all this too serious, I am just thinking aloud.
Once you have these dimension domains, you could form an algebra with
them, ehm, a abelian group, of course. No, no, there are still no
coefficients. So with that "abelian group" you cannot express 3m or 6s.
All you could do is to express, what you probably called "derived
dimensions". So Length, Length*Time^(-1) etc. are examples for such
monomials. As you see, each "fundamental dimension" is then also a
"derived dimension", but no conversions would be possible, since you
don't have coefficients.
Now, having the monomials, you can think about quantities (= units (as
elements of dimensions) together with numbers).
I don't have a well developed idea of how I would implement what I am
writing about here, but it reminds me a bit of what I am currently doing
in aldor-combinat. There we define combinatorial species (which are
endo-functors from the category of finite sets and isomorphisms to
itself. They are implemented as domain constructors in Aldor, but as the
theory goes, one can form a semi-ring where species would be the
elements. This is in so far similar to what I was writing about above as
I like dimensions to be domains. But later on you should be able to
multiply together such domains.
Another remark concerns dimensional analysis... If in Axiom dimensions
are implemented as types, couldn't then the dimensional analysis be done
by the compiler? Types on the right and left hand side must match. What
about thinking along these lines for implementing dimensions in Axiom?
Maybe some day I'll find time to code my ideas into Aldor which would
then be open for criticism.
Ralf
- [Axiom-developer] Anybody up for a few basic Aldor questions?, C Y, 2006/08/18
- Re: [Axiom-developer] Anybody up for a few basic Aldor questions?, C Y, 2006/08/18
- Re: [Axiom-developer] Anybody up for a few basic Aldor questions?, Ralf Hemmecke, 2006/08/18
- Re: [Axiom-developer] Anybody up for a few basic Aldor questions?, C Y, 2006/08/18
- [Axiom-developer] Units and dimensions,
Ralf Hemmecke <=
- [Axiom-developer] Re: Units and dimensions, C Y, 2006/08/19
- Re: [Axiom-developer] Re: Units and dimensions, Martin Rubey, 2006/08/19
- Re: [Axiom-developer] Re: Units and dimensions, Ralf Hemmecke, 2006/08/19
- Re: [Axiom-developer] Re: Units and dimensions, C Y, 2006/08/19