Zulip Chat Archive
Stream: general
Topic: function.injective.mul_action on two functions
Eric Wieser (Mar 26 2021 at 13:54):
Does this generalization make sense?
/-- Pullback a multiplicative action along an injective map respecting `•`, while pulling the base monoid along g. -/
protected def function.injective.mul_action₂ [monoid α] [mul_action α β] [monoid γ] [has_scalar γ δ] (f : δ → β) (g : γ →* α)
(hf : injective f) (smul : ∀ (c : γ) x, f (c • x) = g c • f x) :
mul_action γ δ :=
{ smul := (•),
one_smul := λ x, hf $ by rw [smul, g.map_one, one_smul _ (f x)],
mul_smul := λ c₁ c₂ x, hf $ by simp only [smul, g.map_mul, mul_smul] }
Or does this factor into docs#function.injective.mul_action and some other definition that doesn't exist yet?
Eric Wieser (Mar 26 2021 at 13:56):
The application: I want to transport semimodule (⨁ i, A i) (⨁ i, A i)
(aka docs#semiring.to_semimodule applied to docs#direct_sum.semiring) to semimodule (A 0) (A i)
Eric Wieser (Mar 26 2021 at 14:40):
Ah nevermind, it does factor - so this is now a "do we have the thing it factors to" queston: https://leanprover.zulipchat.com/#narrow/stream/217875-Is-there.20code.20for.20X.3F/topic/Transporting.20.60mul_action.60.20along.20a.20.60monoid_hom.60/near/231975342
Last updated: Dec 20 2023 at 11:08 UTC