Zulip Chat Archive

Stream: Is there code for X?

Topic: From map to AddAction


Marcello Seri (Jun 19 2024 at 13:45):

Given f:ααf : \alpha \to \alpha, is there a convenient way to construct an AddAction  N  α\mathrm{AddAction}\; \mathbb{N}\;\alpha from it?

Eric Wieser (Jun 19 2024 at 16:37):

Can you make a #mwe that shows the assumptions on \a and specified what you want the action to mean?

Adam Topaz (Jun 19 2024 at 16:40):

I assume you want n to act on alpha as n * x = f^[n](x)?

Adam Topaz (Jun 19 2024 at 16:54):

You can define it as follows:

import Mathlib.Algebra.Group.Nat
import Mathlib.Algebra.Group.Action.Defs

def foo {α : Type*} (f : α  α) : AddAction  α where
  vadd n x := f^[n] x
  zero_vadd := fun _ => rfl
  add_vadd := by
    intros a b _
    show f^[a+b] _ = _
    rw [Function.iterate_add]
    rfl

Adam Topaz (Jun 19 2024 at 16:54):

It may be worthwhile to add somewhere if we don't already have it.

Eric Wieser (Jun 19 2024 at 17:16):

def foo {α : Type*} (f : α  α) : AddAction  α :=
  AddAction.compHom _ <| MonoidHom.toAdditive'' <| powersHom (Function.End α) f

example (n a) : (foo f).vadd n a = f^[n] a := rfl

Marcello Seri (Jun 19 2024 at 20:54):

Thanks a lot, that's the kind of example I was looking for. Is it worth adding AddAction.ofFun (and maybe MulAction.ofFun) on the false line of foo to mathlib? This can get quite handy in the dynamics section

Eric Wieser (Jun 19 2024 at 21:50):

My initial impression is that AddAction is unlikely to be helpful to you here since you can't reasonably make it an instance, and so you should perhaps be working with

def foo {α : Type*} (f : α  α) :  →+ Additive (Function.End α) :=
  MonoidHom.toAdditive'' <| powersHom (Function.End α) f

instead

Eric Wieser (Jun 19 2024 at 21:52):

@Yury G. Kudryashov might have some more informed opinions here about dynamics than I do

Yury G. Kudryashov (Jun 19 2024 at 22:23):

We don't have a canonical way to talk about it. One possible approach is docs#Flow.fromIter but Flow is used in a very small part of the library.


Last updated: May 02 2025 at 03:31 UTC