Zulip Chat Archive

Stream: Is there code for X?

Topic: closure of element of infinite order


Joachim Breitner (Mar 21 2022 at 10:10):

If I have a group element with infinite order (order_of a = 0), where would I find lemmas about subgroup.closure {a}? In particular that it is isomorphic to Z?

Kyle Miller (Mar 21 2022 at 10:22):

The only relevant theorem I've found is docs#subgroup.mem_closure_singleton

Joachim Breitner (Mar 21 2022 at 10:27):

Looks like I need to do some yak-shaving :-D

Yaël Dillies (Mar 21 2022 at 10:28):

The mathlib community truly in need of a :yak: emoji.

Eric Rodriguez (Mar 21 2022 at 10:34):

I had never heard of yak-shaving before, it is very relatable!

Kyle Miller (Mar 21 2022 at 10:42):

This wasn't my yak to shave, but I needed a little break from grading final exams:

import group_theory.subgroup.basic
import group_theory.order_of_element

variables {G : Type*} [group G] (x : G)

lemma zpow_inj_iff_of_order_of_eq_zero (h : order_of x = 0) {n m : } :
  x ^ n = x ^ m  n = m :=
begin
  cases n; cases m;
  simp [pow_inj_iff_of_order_of_eq_zero, h],
  sorry,
  sorry,
end

noncomputable
def inf_cyclic (h : order_of x = 0) :
  multiplicative  ≃* subgroup.closure ({x} : set G) :=
{ to_fun := λ n, x ^ n.to_add, begin rw subgroup.mem_closure_singleton, use n, refl, end⟩,
  inv_fun := λ x, (subgroup.mem_closure_singleton.mp x.2).some,
  left_inv := begin
    intro n,
    simp,
    generalize_proofs h',
    have h' := h'.some_spec,
    simp only at h',
    rwa zpow_inj_iff_of_order_of_eq_zero _ h at h',
  end,
  right_inv := begin
    rintro x, hx⟩,
    simp,
    generalize_proofs h',
    exact h'.some_spec,
  end,
  map_mul' := begin
    intros m n,
    simp [zpow_add],
  end }

Reid Barton (Mar 21 2022 at 10:48):

For your first lemma surely there should already be something about x^m = x^n <-> order_of x \| m - n?

Eric Rodriguez (Mar 21 2022 at 10:52):

docs#pow_eq_pow_iff_modeq I think is the closest nope

Floris van Doorn (Mar 21 2022 at 10:54):

docs#zpow_eq_mod_order_of is pretty close, it's for zpow.

Eric Rodriguez (Mar 21 2022 at 10:55):

docs#pow_inj_iff_of_order_of_eq_zero seems the closest, but needs generalising to zpow

Reid Barton (Mar 21 2022 at 11:10):

Why are there like a dozen lemmas about "finite cancellative monoids"? Isn't there a better-known name for these objects?

Reid Barton (Mar 21 2022 at 11:11):

Anyways it looks to me like docs#order_of_dvd_iff_zpow_eq_one is on the right track

Eric Rodriguez (Mar 21 2022 at 11:28):

Reid Barton said:

Why are there like a dozen lemmas about "finite cancellative monoids"? Isn't there a better-known name for these objects?

funnily enough we have docs#fintype.group_with_zero_of_cancel but I don't think we have it for just normal groups

Eric Rodriguez (Mar 21 2022 at 11:28):

there's even a todo above docs#exists_pow_eq_one

Eric Wieser (Mar 25 2022 at 17:14):

Is it helpful to show that closure {a} = subgroup.powers a and state the lemma in terms of docs#subgroup.powers?


Last updated: Dec 20 2023 at 11:08 UTC