Ktransformation
Geometrically, we may consider x_{1}, x_{2}, …, x_{n} as coordinates in a space S.
Also, let A, B and C be any positive constants and a, b and c be any integer such that the variables K_{1}, K_{2}, …, K_{n} are given by
Four Lemmas
Let x_{i}'' be another point in the Kspace such that
If the point generated by x_{i}' is
x_{i} = K̄_{i} x_{i}''
Therefore, any point x_{i} derived from point x_{i}' by a Ktransformation may also be derived from the point x_{i}'' by a Ktransformation provided that the point x_{i}'' lies in the same Kspace as the point x_{i}'.∎
Also, π is dimensionally homogeneous
Since dimensionless products of x's are constants througout a Kspace, if π_{1}, π_{2}, …, π_{p} is a complete set of dimensionless products of the x's, then to each Kspace of the space S there is a corresponding single set of values of the π's. This is restated in the next theorem.
π_{h}' = (x_{1}'')^{k1h} (x_{2}'')^{k2h} … (x_{n}'')^{knh}
or
(x_{1}')^{k1h} (x_{2}')^{k2h} … (x_{n}')^{knh} = (x_{1}'')^{k1h} (x_{2}'')^{k2h} … (x_{n}'')^{knh}
or
k_{1}^{h} [log(x_{1}') − log(x_{1}'')] + k_{2}^{h} [log(x_{2}') − log(x_{2}'')] + … + k_{n}^{h} [log(x_{n}') − log(x_{n}'')] = 0
or
k_{1}^{h} log(x_{1}'/x_{1}'') + k_{2}^{h} log(x_{2}'/x_{2}'') + … + k_{n}^{h} log(x_{n}'/x_{n}'') = 0
of a complete set of dimensionless products of the independent variables x_{1}, x_{2}, …, x_{n}
are a fundamental system of solutions of
a_{1}k_{1} + a_{2}k_{2} + … + a_{n}k_{n} = 0
b_{1}k_{1} + b_{2}k_{2} + … + b_{n}k_{n} = 0
c_{1}k_{1} + c_{2}k_{2} + … + c_{n}k_{n} = 0
x_{i}' = x_{i}'' 10^{(αai + βbi + γci)}
x_{i}' = K_{i} x_{i}''
Therefore, points x_{i}' and x_{i}'' belong in the same Kspace.∎
Buckingham's Theorem
Furthermore because of lemma
And from lemma
Thus, each set of values of π_{1}, π_{2}, …, π_{p} will correspond to a single value of π. That is, π is a singlevalued function of π_{1}, π_{2}, …, π_{p}.
Therefore, an arbitrary dimensionally homogeneous equation y = f(x_{1}, x_{2}, …, x_{n}) is reduced to the form π = F(x_{1}, x_{2}, …, x_{n}). Alternatively, an equation that relates dimensionless products is dimensionally homogeneous.∎
Since^{(ibid. 6.)}
Systematic steps for deriving a complete set of dimensionless products
The illustration is made using the example by Langhaar (1951d). Imagine that the investigation involves a unknown function f which is dependent a collection of variables and/or parameters: P, Q, R, S, T, U, V and all of them can be derived from three base dimensions M, L, T. Thus, the problem f(P, Q, R, S, T, U, V) is a MLTdimensional system.
The relationship of all of the independent variables/parameters of the f to the three base dimensions can be summarized as
P  Q  R  S  T  U  V  

M  2  −1  3  0  0  −2  1 
L  1  0  −1  0  2  1  2 
T  0  1  0  3  1  −1  2 
From the earlier discussions we know that the dimensionless products about to be derived will be of the form
k_{1} + 0k_{2} − k_{3} + 0k_{4} + 2k_{5} + k_{6} + 2k_{7} = 0
0k_{1} + k_{2} + 0k_{3} + 3k_{4} + k_{5} − k_{6} + 2k_{7} = 0
k_{6} = 5k_{1} − 4k_{2} + 5k_{3} − 6k_{4}
k_{7} = 8k_{1} − 7k_{2} + 7k_{3} − 12k_{4}
To get the solution we start from k_{1} = 1 and set the rest to 0 and then set k_{2} and rest to 0 and so on until k_{4} = 1 as follows
Set: k_{2} = 1, rest to 0 Then: k_{5} = 9, k_{6} = −4, k_{7} = −7
Set: k_{3} = 1, rest to 0 Then: k_{5} = −9, k_{6} = 5, k_{7} = 7
Set: k_{4} = 1, rest to 0 Then: k_{5} = 15, k_{6} = −6, k_{7} = −12
k_{1}  k_{2}  k_{3}  k_{4}  k_{5}  k_{6}  k_{7}  

1  0  0  0  −11  5  8  
0  1  0  0  9  −4  −7  
0  0  1  0  −9  5  7  
0  0  0  1  15  −6  −12 
k_{1}  k_{2}  k_{3}  k_{4}  k_{5}  k_{6}  k_{7}  

P  Q  R  S  T  U  V  
π_{1}  1  0  0  0  −11  5  8 
π_{2}  0  1  0  0  9  −4  −7 
π_{3}  0  0  1  0  −9  5  7 
π_{4}  0  0  0  1  15  −6  −12 
π_{2} = QT^{9}U^{−4}V^{−7}
π_{3} = RT^{−9}U^{5}V^{7}
π_{4} = ST^{15}U^{−6}V^{−12}
diman^{©} is capable of performing dimensional consistency checks and derive dimensionless products. The program aims at simplifying the tedious computational steps particularly while deriving dimensionless products.
Accomplishing the steps in diman^{©}
For a given problem before on can get the results of a complete set of dimensionless products the user must perform some minimum initialization steps.Setting up the dimensional formulae of all the independent variables of the unknown function f
(def formula_of_manifold_eqn
[{:quantity "termp", :dimension "[M^(2)*L^(1)]"}
{:quantity "termq", :dimension "[M^(1)*T^(1)]"}
{:quantity "termr", :dimension "[M^(3)*L^(1)]"}
{:quantity "terms", :dimension "[T^(3)]"}
{:quantity "termt", :dimension "[L^(2)*T^(1)]"}
{:quantity "termu", :dimension "[M^(2)*L^(1)*T^(1)]"}
{:quantity "termv", :dimension "[M^(1)*L^(2)*T^(2)]"}])
Since these are derived dimensional formulae, it must be placed temporarily inside the standard_formula
entity. This is done with
(updatesformula formula_of_manifold_eqn)
Finally, to call the dimensions for respective independent variable of f we define
(def varpars
[{:symbol "P", :quantity "termp"}
{:symbol "Q", :quantity "termq"}
{:symbol "R", :quantity "termr"}
{:symbol "S", :quantity "terms"}
{:symbol "T", :quantity "termt"}
{:symbol "U", :quantity "termu"}
{:symbol "V", :quantity "termv"}])
Steps1, 2 and 3 in one code
The processes for generating the dimensional matrix, solving the homogeneous equation and determining the solution matrix can be achieved in one code block as shown
(def solution_matrix (getsolvedmatrix
(solve (getaugmentedmatrix
(generatedimmat varpars)))))
The solution matrix is therefore
=> (viewmatrix solution_matrix)
[1 0 0 0 11N 5N 8N]
[0 1 0 0 9N 4N 7N]
[0 0 1 0 9N 5N 7N]
[0 0 0 1 15N 6N 12N]
Size > 4 x 7
For the final Step4: Get the Dimensionless Products we use getdimensionlessproducts
. Thus,
=> (pprint (getdimensionlessproducts solution_matrix varpars))
[{:symbol "pi0", :expression "P^(1)*T^(11)*U^(5)*V^(8)"}
{:symbol "pi1", :expression "Q^(1)*T^(9)*U^(4)*V^(7)"}
{:symbol "pi2", :expression "R^(1)*T^(9)*U^(5)*V^(7)"}
{:symbol "pi3", :expression "S^(1)*T^(15)*U^(6)*V^(12)"}]
Therefore, diman^{©} saves the analyst from labouring in computational tasks but at the same time provides the ability to follow each step of the derivation process.
✪
Anton, H. (1977a). Elementary Linear Algebra (2nd ed.). John Wiley & Sons, Inc.
As of 2021 this book is in its 11th edition but I consider the earlier editions particular those published in the 1970s to be an excellent pedagogical text for a learner interested in the concepts of Linear Algebra. Calculus is not a prerequisite for this text.

Anton, H. (1977b). Vector Spaces. In Elementary Linear Algebra (2nd ed., pp. 121–204). John Wiley & Sons, Inc.
The concepts of vector space discussed here^{(ibid. 4.)} were based on this chapter.

BIPM (2020). Base unit definitions. Retrieved from https://www.bipm.org/en/measurementunits/baseunits.html
Bureau International des Poids et Mesures is the organization whose mission is to provide standards on matters related to measurement science. diman^{©} is a software for doing dimensional analysis; It can do consistency checks and derive dimensionless products. Diman^{(c)} is based on the Internation System of Units (SI), base units.

Buckingham, E. (1914). On Physically Similar Systems; Illustrations of the Use of Dimensional Equations. Phys. Rev., 4(4), 345–376. https://doi.org/10.1103/PhysRev.4.345
This is the paper where Buckingham illustrates the possibility of reducing a given dimensionally homogeneous equation into a relationship among the complete set of dimensionless products of the equation. This has come to be known as Buckingham's Theorem.

Jerrard, H. G., & McNeill, D. B. (1992). Dictionary of Scientific Units: Including dimensionless numbers and scales (6th ed.). Chapman & Hall.
This is a good resource for someone doing science let alone dimensional analysis.

Langhaar, H. L. (1951a). Algebraic Theory of Dimensional Analysis. In Dimensional Analysis and Theory of Models (pp. 47–59). John Wiley & Sons, Inc.
Most of the materials for this lecture "Theory of Dimensionless Products" were influenced by this chapter.

Langhaar, H. L. (1951b). General Remarks on Dimensional Analysis. In Dimensional Analysis and Theory of Models (pp. 14–16). John Wiley & Sons, Inc.
This section provides the definition of dimensional analysis.

Langhaar, H. L. (1951c). Principles and Illustrations of Dimensional Analysis. In Dimensional Analysis and Theory of Models (pp. 13–28). John Wiley & Sons, Inc.
This preliminary chapter provides an overall view of why one might want to consider using dimensionless products. The section "General Remarks on Dimensional Analysis" is part of this chapter.

Langhaar, H. L. (1951d). Systematic Calculation of Dimensionless Products. In Dimensional Analysis and Theory of Models (pp. 2946). John Wiley & Sons, Inc.
This chapter provides the steps for deriving dimensionless products. It has two examples. This chapter and the chapter on algebraic theory (Langhaar, 1951a) were the foundation for how diman^{©} can derive dimensionless products.

McNish, A. G. (1957, April 1). Dimensions units and standards. Physics Today, 10(4), 19. https://doi.org/10.1063/1.3060330
This is from a talk at the National Bureau of Standards, 1956. The talk addresses various fundamental questions like What is a dimension? What is the purpose of a dimensional system? Why should there be at least seven base/elemental dimensions? How should we choose the minimum number of quantities and hence the "absolute" units to build a consistent system of units for the given experimentally derived equations?

Preussner, G. M. (2018, May 24). Dimensional Analysis in Programming Languages. Personal Homepage. https://gmpreussner.com/research/dimensionalanalysisinprogramminglanguages
This article provides a fairly exaustive landscape of the software implementation — in terms of available packages that deal with dimensions or dimensional analysis and in some cases at the level of some highlevel programming language — with regards to dimensional analysis. From this paper one notices that the notion of "dimensional analysis" used for most softwares are often not defined or poorly defined and hence vague and not necessarily alligned to its mathematical definition. Consequently, out of more than fifty or so dimensional analysis related softwares mentioned in the article only a very few addressed dimensionless product.