Normal forms: Difference between revisions

Cmloegcmluin (talk | contribs)
link comma-basis
Cmloegcmluin (talk | contribs)
simplify inline math
Line 30: Line 30:
This is the "canonical form" for a temperament that was developed by [[Dave Keenan]] and [[Douglas Blumeyer]], formed from [[defactoring]] the matrix (aka removing [[contorsion]]) prior to putting it into Hermite form.
This is the "canonical form" for a temperament that was developed by [[Dave Keenan]] and [[Douglas Blumeyer]], formed from [[defactoring]] the matrix (aka removing [[contorsion]]) prior to putting it into Hermite form.


We may write a list of <span><math>k</math></span> vals as an <span><math>k×d</math></span> matrix, where the rows of the matrix are the vals, and <span><math>d</math></span> is the ''dimensionality'' of the system<ref>Calling the [[wikipedia: Prime-counting function|prime-counting function]], written π(x), on the prime limit will give us this number. For examples, π(2) = 1, π(3) = 2, π(5) = 3, π(7) = 4, π(11) = 5, etc.</ref>. To get the '''Defactored Hermite form''', we do the following:
We may write a list of <math>k</math> vals as an <math>k×d</math> matrix, where the rows of the matrix are the vals, and <math>d</math> is the ''dimensionality'' of the system<ref>Calling the [[wikipedia: Prime-counting function|prime-counting function]], written π(x), on the prime limit will give us this number. For examples, π(2) = 1, π(3) = 2, π(5) = 3, π(7) = 4, π(11) = 5, etc.</ref>. To get the '''Defactored Hermite form''', we do the following:


# First, [[defactor]] it (aka, make sure it is [[saturated]]). <ref>Historically, this step was not explicitly recognized as necessary for normal forms. It is quite likely that the vast majority of normal forms found on the wiki are not contorted/enfactored, but specifically defining this canonical form to include this requirement is an important step toward ensuring that, which will prevent redundant temperaments from being catalogued. In various domains, normal forms are often required to be unique, however, canonical forms are required to be unique even more often that normal forms are; according to [[Wikipedia: Canonical form]], 'the distinction between "canonical" and "normal" forms varies from subfield to subfield. In most fields, a canonical form specifies a unique representation for every object, while a normal form simply specifies its form, without the requirement of uniqueness.' This is the rationale behind defining "canonical" as opposed to merely "normal". To be more specific, The HNF does provide a unique representation of ''matrices'', i.e. from a perspective of pure mathematics, and so you will certainly find throughout mathematical literature that HNF is described as providing a unique representation, and this is correct. However, when applied to the RTT domain, i.e. to ''mappings'', the HNF sometimes fails to identify equivalent mappings as such. And the critical flaw with HNF is its failure to defactor matrices - meaning that a "contorted" mapping matrix has a different Hermite normal form than a non-contorted one with the same kernel - and this is because dividing rows is not a permitted elementary row operation when computing the HNF. See: https://math.stackexchange.com/a/685922 The canonical form as described here ''does'' defactor matrices, and therefore it delivers a truly canonical result. <br>
# First, [[defactor]] it (aka, make sure it is [[saturated]]). <ref>Historically, this step was not explicitly recognized as necessary for normal forms. It is quite likely that the vast majority of normal forms found on the wiki are not contorted/enfactored, but specifically defining this canonical form to include this requirement is an important step toward ensuring that, which will prevent redundant temperaments from being catalogued. In various domains, normal forms are often required to be unique, however, canonical forms are required to be unique even more often that normal forms are; according to [[Wikipedia: Canonical form]], 'the distinction between "canonical" and "normal" forms varies from subfield to subfield. In most fields, a canonical form specifies a unique representation for every object, while a normal form simply specifies its form, without the requirement of uniqueness.' This is the rationale behind defining "canonical" as opposed to merely "normal". To be more specific, The HNF does provide a unique representation of ''matrices'', i.e. from a perspective of pure mathematics, and so you will certainly find throughout mathematical literature that HNF is described as providing a unique representation, and this is correct. However, when applied to the RTT domain, i.e. to ''mappings'', the HNF sometimes fails to identify equivalent mappings as such. And the critical flaw with HNF is its failure to defactor matrices - meaning that a "contorted" mapping matrix has a different Hermite normal form than a non-contorted one with the same kernel - and this is because dividing rows is not a permitted elementary row operation when computing the HNF. See: https://math.stackexchange.com/a/685922 The canonical form as described here ''does'' defactor matrices, and therefore it delivers a truly canonical result. <br>
Line 36: Line 36:
In the case of a mapping, this would take the form of an extra column of all zeros to the right of any non-zero entries, or in other words, an unmapped prime higher than other mapped prime. For example you could have {{ket|{{map| 1 0 -4 0 }} {{map| 0 1 4 0 }}}} which is just 5-limit meantone but represented in the 7-limit even though prime 7 is not used. <br>
In the case of a mapping, this would take the form of an extra column of all zeros to the right of any non-zero entries, or in other words, an unmapped prime higher than other mapped prime. For example you could have {{ket|{{map| 1 0 -4 0 }} {{map| 0 1 4 0 }}}} which is just 5-limit meantone but represented in the 7-limit even though prime 7 is not used. <br>
And for a comma-basis the form this would take is rotated 90 degrees: a row of all zeros below all other nonzero entries, e.g. {{bra|{{vector|4 -4 1 0}}}}.<br>
And for a comma-basis the form this would take is rotated 90 degrees: a row of all zeros below all other nonzero entries, e.g. {{bra|{{vector|4 -4 1 0}}}}.<br>
The reason these additional zeros should be preserved and these temperaments be treated as different from their untrimmed counterparts is made clear when we consider the difference in the duals. For a comma-basis, the extra dimension implies the presence of extra generators that are unbound to the other generators. For example, a basis for the anti-null-space of {{bra|{{vector| 4 -4 1 }}}}, or in other words its mapping, as we know well is {{ket|{{map| 1 0 -4 }} {{map| 0 1 4 }}}}. But that is not a basis for the anti-null-space of {{bra|{{vector| 4 -4 1 <span><math>\color{red}0</math></span>}}}}; the mapping for that comma-basis would have to be {{ket|{{map| 1 0 -4 <span><math>\color{red}0</math></span>}} {{map| 0 1 4 <span><math>\color{red}0</math></span>}} {{map|<span><math>\color{red}0</math></span> <span><math>\color{red}0</math></span> <span><math>\color{red}0</math></span> <span><math>\color{red}1</math></span>}}}}.</ref>. We now have an <span><math>r×d</math></span> matrix, with <span><math>r</math></span> rows where <span><math>r</math></span> is the ''rank''.
The reason these additional zeros should be preserved and these temperaments be treated as different from their untrimmed counterparts is made clear when we consider the difference in the duals. For a comma-basis, the extra dimension implies the presence of extra generators that are unbound to the other generators. For example, a basis for the anti-null-space of {{bra|{{vector| 4 -4 1 }}}}, or in other words its mapping, as we know well is {{ket|{{map| 1 0 -4 }} {{map| 0 1 4 }}}}. But that is not a basis for the anti-null-space of {{bra|{{vector| 4 -4 1 <math>\color{red}0</math>}}}}; the mapping for that comma-basis would have to be {{ket|{{map| 1 0 -4 <math>\color{red}0</math>}} {{map| 0 1 4 <math>\color{red}0</math>}} {{map|<math>\color{red}0</math> <math>\color{red}0</math> <math>\color{red}0</math> <math>\color{red}1</math>}}}}.</ref>. We now have an <math>r×d</math> matrix, with <math>r</math> rows where <math>r</math> is the ''rank''.
# Then, put this result into HNF.
# Then, put this result into HNF.