← Session 35 — ii′-6-R: Lagarias 6.1 right-tail re-proof (E-032/D-073)
thinking (2542 chars)
`map_div [Group G] [DivisionMonoid H] [MonoidHomClass F G H] (f : F) : f (x / y) = f x / f y` — the domain G must be a GROUP! ℂ under multiplication is NOT a group (0 has no inverse). So `map_div` does NOT apply to starRingEnd ℂ on division of arbitrary complexes. That's why it never matched.
The right lemma for RingHom on a field: `map_div₀`? For RingHoms (MonoidWithZeroHom): division of possibly-zero elements — `map_div₀`? Let me think — for ring homs between fields there's `map_div` requiring division-ring structures via MonoidWithZero: actually `map_div₀` doesn't ring a bell... There is `RingHom.map_div`? Hmm — for ring homomorphisms between fields: `map_div` used to work for field homs. In current Mathlib the right one is probably `map_div₀ (f : G₀ →*₀ G₁)` — for MonoidWithZero homs between groups-with-zero. starRingEnd ℂ is ℂ →+* ℂ — there should be a MonoidWithZeroHomClass instance for ring homs between division rings... The lemma at Hom/Defs.lean:461 is `map_div [Group G] [DivisionMonoid H] [MonoidHomClass F G H]` — GROUP domain only. For groups-with-zero there'd be `map_div₀`. Let me grep map_div₀.
Actually simpler and robust: avoid the whole issue — the division is fine because I can rewrite using the DEFINITION of division: a/b = a * b⁻¹, then map_mul + map_inv₀ (which works for ring homs: `map_inv₀` for division rings: `map_inv₀ (f : G₀ →+* G₁)`? or map_inv₀ [GroupWithZero]...). For starRingEnd ℂ on ℂ: map_inv₀ exists: `map_inv₀ (f : G₀ →+* G₀') (x) : f x⁻¹ = (f x)⁻¹` for DivisionRing? I recall `map_inv₀` for ring homs between division rings: yes — `map_inv₀ (f : K →+* L) (a : K) : f (a⁻¹) = (f a)⁻¹` when K L are DivisionRing? Hmm, but division ring homs are monoid-with-zero homs.
So: rw [div_eq_mul_inv, map_mul, map_inv₀] style. The goal RHS: star(kFun n s * -(deriv ζ s * (ζ s)⁻¹))... Let me write:
```
unfold Jlag
rw [kFun_conj, _root_.riemannZeta_conj, h1]
simp only [map_mul, map_neg, div_eq_mul_inv, map_inv₀]
```
Hmm — simp only [div_eq_mul_inv] rewrites BOTH sides' divisions: LHS's (star(deriv ζ s)/star(ζ s)) → star(deriv ζ s) * (star(ζ s))⁻¹ ✓ and RHS's inside-star division → (deriv ζ s) * (ζ s)⁻¹ inside star ✓ then map_inv₀: star((ζ s)⁻¹) → (star(ζ s))⁻¹ ✓. Then both sides: star(kFun) * -(star(deriv ζ s) * (star(ζ s))⁻¹) = star(kFun) * -(star(deriv ζ s) * (star(ζ s))⁻¹) ✓ rfl.
Does map_inv₀ exist in this Mathlib? `map_inv₀ : f a⁻¹ = (f a)⁻¹` for [GroupWithZero] homs — let me check quickly. Also `div_eq_mul_inv` ✓ standard simp lemma.
Alternatively — `map_div₀`: grep.
`map_div` needs a Group domain — ℂ isn't one under × (0 has no inverse). Checking `map_inv₀`/`map_div₀` for the ring-hom version.
tool: Bash
input
{
"command": "cd D:/Python/Quantum/zeta-23-lean && grep -rn \"theorem map_inv\u2080\\|theorem map_div\u2080\\|lemma map_inv\u2080\\|lemma map_div\u2080\" .lake/packages/mathlib/Mathlib/Algebra/ 2>/dev/null | head -5",
"description": "Find map_inv\u2080 / map_div\u2080 in Mathlib"
}
raw content_json (database row)
[{"type":"thinking","thinking":"`map_div [Group G] [DivisionMonoid H] [MonoidHomClass F G H] (f : F) : f (x / y) = f x / f y` — the domain G must be a GROUP! ℂ under multiplication is NOT a group (0 has no inverse). So `map_div` does NOT apply to starRingEnd ℂ on division of arbitrary complexes. That's why it never matched.\n\nThe right lemma for RingHom on a field: `map_div₀`? For RingHoms (MonoidWithZeroHom): division of possibly-zero elements — `map_div₀`? Let me think — for ring homs between fields there's `map_div` requiring division-ring structures via MonoidWithZero: actually `map_div₀` doesn't ring a bell... There is `RingHom.map_div`? Hmm — for ring homomorphisms between fields: `map_div` used to work for field homs. In current Mathlib the right one is probably `map_div₀ (f : G₀ →*₀ G₁)` — for MonoidWithZero homs between groups-with-zero. starRingEnd ℂ is ℂ →+* ℂ — there should be a MonoidWithZeroHomClass instance for ring homs between division rings... The lemma at Hom/Defs.lean:461 is `map_div [Group G] [DivisionMonoid H] [MonoidHomClass F G H]` — GROUP domain only. For groups-with-zero there'd be `map_div₀`. Let me grep map_div₀.\n\nActually simpler and robust: avoid the whole issue — the division is fine because I can rewrite using the DEFINITION of division: a/b = a * b⁻¹, then map_mul + map_inv₀ (which works for ring homs: `map_inv₀` for division rings: `map_inv₀ (f : G₀ →+* G₁)`? or map_inv₀ [GroupWithZero]...). For starRingEnd ℂ on ℂ: map_inv₀ exists: `map_inv₀ (f : G₀ →+* G₀') (x) : f x⁻¹ = (f x)⁻¹` for DivisionRing? I recall `map_inv₀` for ring homs between division rings: yes — `map_inv₀ (f : K →+* L) (a : K) : f (a⁻¹) = (f a)⁻¹` when K L are DivisionRing? Hmm, but division ring homs are monoid-with-zero homs.\n\nSo: rw [div_eq_mul_inv, map_mul, map_inv₀] style. The goal RHS: star(kFun n s * -(deriv ζ s * (ζ s)⁻¹))... Let me write:\n\n```\n unfold Jlag\n rw [kFun_conj, _root_.riemannZeta_conj, h1]\n simp only [map_mul, map_neg, div_eq_mul_inv, map_inv₀]\n```\n\nHmm — simp only [div_eq_mul_inv] rewrites BOTH sides' divisions: LHS's (star(deriv ζ s)/star(ζ s)) → star(deriv ζ s) * (star(ζ s))⁻¹ ✓ and RHS's inside-star division → (deriv ζ s) * (ζ s)⁻¹ inside star ✓ then map_inv₀: star((ζ s)⁻¹) → (star(ζ s))⁻¹ ✓. Then both sides: star(kFun) * -(star(deriv ζ s) * (star(ζ s))⁻¹) = star(kFun) * -(star(deriv ζ s) * (star(ζ s))⁻¹) ✓ rfl.\n\nDoes map_inv₀ exist in this Mathlib? `map_inv₀ : f a⁻¹ = (f a)⁻¹` for [GroupWithZero] homs — let me check quickly. Also `div_eq_mul_inv` ✓ standard simp lemma.\n\nAlternatively — `map_div₀`: grep.","signature":""},{"type":"text","text":"`map_div` needs a Group domain — ℂ isn't one under × (0 has no inverse). Checking `map_inv₀`/`map_div₀` for the ring-hom version."},{"type":"tool_use","id":"Bash_184","name":"Bash","input":{"command":"cd D:/Python/Quantum/zeta-23-lean && grep -rn \"theorem map_inv₀\\|theorem map_div₀\\|lemma map_inv₀\\|lemma map_div₀\" .lake/packages/mathlib/Mathlib/Algebra/ 2>/dev/null | head -5","description":"Find map_inv₀ / map_div₀ in Mathlib"},"extra_content":null}]