axiom-developer
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]