While I'm not an expert, my guess is that the major uses of 0-based arrays are in computer science and some computer programming languages, where they can offer an advantage for some algorithms.
But mathematics is meant for humans, and humans tend to count from 1. That's why we number the proof steps on our web pages starting with 1. Having the "first" step numbered with 0 would seem unnatural to me. As AV pointed out, we haven't been able to find a linear algebra textbook with matrices numbered from 0. On Wikipedia, there are 4 subtopics listed under https://en.wikipedia.org/wiki/Vector#Mathematics_and_physics which are: https://en.wikipedia.org/wiki/Euclidean_vector https://en.wikipedia.org/wiki/Row_and_column_vectors https://en.wikipedia.org/wiki/Vector_space https://en.wikipedia.org/wiki/Vector_field These all show 1-based indices. I have always wanted to see set.mm to be as close to mathematical literature as possible or practical. Apparently almost all of linear algebra literature uses 1-based matrices and vectors, so I think that is what set.mm should do. Even if for some purposes it would be more convenient to have matrices 0-based, it hasn't seemed to have harmed the field. My vote is to conform to the literature and have matrices and vectors 1-based. On Friday, August 28, 2020 at 2:20:35 PM UTC-4 di.... gmail.com wrote: > My vote is also in favor of starting with 0, or even better, doing > everything over generic finite sets when possible and falling back on ( 0 > ..^ N ). I realize that close correspondence with papers is considered > important here but mathematicians write for their own ease. In a math > paper, you can write either a_0, ..., a_(n-1) or a_1, ..., a_n - which is > easier? Besides the strictness of a few inequalities this is probably the > only difference, so a_1, ..., a_n is preferred because it is very slightly > shorter. > > In formalization, we should also write for our own ease. In this case, > that means better interfacing with the theory of finite words, which uses ( > 0 ..^ N ). There are also other reasons to prefer 0 based indexing but in > this case I think consistency with words (viewed as 1D vectors) is more > important than that. > > On Fri, Aug 28, 2020 at 1:43 PM Benoit wrote: > >> I'm still in favor of words starting at 0. As for matrix rows and >> columns, it would be more...wait for it... natural to start at 0, but since >> the literature overwhelmingly prefers to start at 1, maybe it's better to >> conform with it (there are a few "historical accidents" like that, for >> instance defining \pi as half what it should be, and since the consequences >> are very mild, it stays like that). >> And to state the obvious: since most results using the fact that rows and >> columns are natural numbers have them intervene in the form (-1)^{i+j}, >> shifting both row and column indices by 1 does not change the parity of the >> sum, so these statements are unaffected. >> >> Benoit >> >> On Friday, August 28, 2020 at 6:14:57 PM UTC+2 Alexander van der Vekens >> wrote: >> >>> >>> There was a discussion in >>> https://groups.google.com/g/metamath/c/UwTUuNPgaB0/m/NdWefzG4AgAJ about >>> the indices for words. Currently, the indices for words start with 0, and >>> the proposal to change this was not accepted. >>> >>> For matrices, however, the things are different: The indices for rows >>> and colums usually start with 1, as Thierry explained, so I agree with >>> Thierry. And having the planned conversion function should dispel any doubt. >>> >>> Alexander >>> >>> On Friday, August 28, 2020 at 9:45:33 AM UTC+2 Thierry Arnoux wrote: >>> >>>> Hi all, >>>> >>>> I recently formalized a proof of the Laplace expansion of determinants >>>> (~ mdetlap), which I think would be useful to pull to the main part of >>>> set.mm. Because the formula makes calculation based on the row and >>>> column indices of the element of the matrix, I'm using matrix with integer >>>> indices (in contrast with the rest of the development on matrices which is >>>> based on arbitrary sets). >>>> >>>> I chose indices in ` ( 1 ... N ) ` , so that the top-left matrix >>>> element is a11 (in set.mm written ` ( 1 A 1 ) ` ). It seems using >>>> indices starting from one is the convention used for mathematics, I have >>>> not found yet a reference with indices starting at zero (and neither did >>>> Norm), however we would like to run this through the community. Most >>>> programming languages start indices with zero, with the exception of R and >>>> several others. >>>> >>>> In set.mm words indices start with zero. >>>> >>>> What's your opinion? Should matrix indices start with one or zero? >>>> >>>> Thanks for your input! >>>> >>>> BR, >>>> _ >>>> Thierry >>>> >>>> >>>> PS. I would later like to define a "literal" matrix function which >>>> would be used like this to transform words (for any matrix size up to 8x8) >>>> into matrices : >>>> >>>> ( litMat ` <" <" A B C "> <" D E F "> <" G H I "> "> ) >>>> >>>> This would allow a bridge/conversion. >>>> >>> -- >> >> -- You received this message because you are subscribed to the Google Groups "Metamath" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/metamath/7eeabd5a-29c3-431b-aaba-87f457827d53n%40googlegroups.com.
