Zulip Chat Archive
Stream: maths
Topic: finite cyclic structure
Alex Kontorovich (Apr 09 2023 at 14:16):
Here's a structural question: suppose I have a map f say from Z/7 to some Type X (it's important for the application to have a cyclic structure for the domain), and I want to make a map g from Z/3 to X by setting g 0 = f 2, g 1 = f 4, and g 2 = f 5 (or whatever). More generally I want to be able to define maps between finite cyclic (or totally ordered) sets. Does Lean have a good structure for that? Thanks!
Kevin Buzzard (Apr 09 2023 at 14:34):
You don't say what you mean by Z/7 but if you mean fin 7 then there is some API for this; you just need a map from fin 3 to fin 7 and you can use vector notation for this.
Anatole Dedecker (Apr 09 2023 at 14:35):
I guess "it is important to have a cyclic structure" means that it has to be docs#zmod right?
Anatole Dedecker (Apr 09 2023 at 14:36):
Fortunately docs#zmod is (almost always) defeq to docs#fin so you can do what Kevin says
Alex Kontorovich (Apr 09 2023 at 14:45):
Oh Fin 7 already has the structure of ZMod 7? How can I combine vector notation with abstract things? For example, if f is a map from ZMod n to X and i < j < n, and I want to make a map g from ZMod (j-i) to X by setting g k = f (k+i), except if k=5, in which case I want it to be f 0. Or something like that. I suppose I answered my own question, as long as I really can replace ZMod's above with Fin...? Thanks!
Adam Topaz (Apr 09 2023 at 16:19):
You can always use if then else.
Last updated: May 02 2025 at 03:31 UTC