Zulip Chat Archive

Stream: new members

Topic: group problem


BANGJI HU (Jul 11 2024 at 16:11):

import Mathlib.Algebra.Group.Basic
import Mathlib.Algebra.Group.Defs
import Mathlib

example {G:Type} [Group G] {g:G}:oderOf g=1g=1:=by
constructor
intro h
rw[ @orderOf_eq_one_iff]

BANGJI HU (Jul 11 2024 at 16:12):

why does assumption doesnt work

Johan Commelin (Jul 11 2024 at 16:18):

Please post a #mwe

Edward van de Meent (Jul 11 2024 at 16:24):

the answer is that you're misspelling orderOf g as oderOfg

BANGJI HU (Jul 11 2024 at 16:56):

import Mathlib.Algebra.Group.Basic
import Mathlib.Algebra.Group.Defs
import Mathlib

example {G:Type} [Group G] {g:G}:oder Of g=1g=1:=by
constructor
intro h
rw[ @orderOf_eq_one_iff]

Edward van de Meent (Jul 11 2024 at 17:24):

you're still misspelling it... note the second r and lack of space in orderOf. here is the fixed version:

import Mathlib.GroupTheory.OrderOfElement

example {G:Type} [Group G] {g:G}: orderOf g=1g=1:=by
  constructor
  . intro h
    rw[ orderOf_eq_one_iff]
    assumption
  sorry

BANGJI HU (Jul 12 2024 at 02:36):

import Mathlib.GroupTheory.OrderOfElement


example {G : Type*} [Group G] {a b c:G} : oderOf (a* b* c)=oderOf (b*c*a) :=by

BANGJI HU (Jul 12 2024 at 02:37):

expected type?

Notification Bot (Jul 12 2024 at 03:41):

2 messages were moved here from #new members > group by Johan Commelin.

Johan Commelin (Jul 12 2024 at 03:43):

@hand bob Please

  • Do not post your messages in random threads but start a new appropriate thread
  • Write orderOf instead of oderOf. This mistake has been pointed out before
  • Give more details about what exactly your question is. Where are you stuck? What have you tried? "expected type?" is not a question.

BANGJI HU (Jul 12 2024 at 04:46):

what do you mean by start a new appropriate thread,and sorry i am chiness just afresh

BANGJI HU (Jul 12 2024 at 09:28):

i want to prove that let a be an element of a group G.prove ord(a)=1 iff a=1

Edward van de Meent (Jul 12 2024 at 09:34):

did this not help?

BANGJI HU (Jul 12 2024 at 09:37):

import Mathlib.Tactic
import Mathlib.Algebra.Group.Basic
import Mathlib.Algebra.Group.Defs
import Mathlib.GroupTheory.OrderOfElement

example {G:Type} [Group G] {m n:}{a b :G}: orderOf a=orderOf (b*a*b⁻¹):=by
let n   :=orderOf a
have : aⁿ=1 :=by sorry
have : b*aⁿn*b⁻¹=b*1*b⁻¹ :=by sorry
have : b*aⁿ*b⁻¹=1 :=by sorry
calc (b*a*b⁻¹)ⁿ=b*aⁿ*b⁻¹ :=by sorry
have :orderOf (b*a*b⁻¹)=n :=by sorry

Daniel Weber (Jul 12 2024 at 09:39):

There's no notation - you need to write a ^ n = 1.

BANGJI HU (Jul 12 2024 at 09:42):

i just want to step by step to proof

Edward van de Meent (Jul 12 2024 at 09:49):

import Mathlib.Tactic
import Mathlib.Algebra.Group.Basic
import Mathlib.Algebra.Group.Defs
import Mathlib.GroupTheory.OrderOfElement

lemma orderOf_eq_of_Semiconjby {G:Type} [Group G] (a:G) {x y :G} (h : SemiconjBy a x y) :
    orderOf  x = orderOf y := by
  rw [orderOf_eq_orderOf_iff]
  intro n
  have : a * (x ^ n) * a⁻¹ = (y^n) := by calc
    a * x ^ n * a⁻¹
      = (a * x * a⁻¹) ^ n := by rw [conj_pow]
    _ = (y * a * a⁻¹) ^ n := by rw [h.eq]
    _ = y ^ n := by rw [mul_inv_cancel_right]
  rw [ this]
  rw [conj_eq_one_iff]


example {G:Type} [Group G] {m n:}{a b :G}: orderOf a=orderOf (b*a*b⁻¹):=by
  apply orderOf_eq_of_Semiconjby b
  exact SemiconjBy.conj_mk b a

Ruben Van de Velde (Jul 12 2024 at 10:00):

With another lemma:

import Mathlib.GroupTheory.OrderOfElement

variable {G:Type*} [Group G] (a:G) {x y :G} (h : SemiconjBy a x y)
lemma SemiconjBy.eq_one_iff : x = 1  y = 1 := by
  rw [ conj_eq_one_iff (a := a) (b := x), h.eq, mul_inv_cancel_right]
#find_home SemiconjBy.eq_one_iff -- Mathlib.Algebra.Group.Semiconj.Basic

lemma SemiconjBy.orderOf_eq : orderOf x = orderOf y := by
  rw [orderOf_eq_orderOf_iff]
  intro n
  exact (h.pow_right n).eq_one_iff
#find_home! SemiconjBy.orderOf_eq -- Mathlib.GroupTheory.OrderOfElement

example {G:Type} [Group G] {m n:}{a b :G}: orderOf a=orderOf (b*a*b⁻¹):=
  SemiconjBy.conj_mk b a |>.orderOf_eq

Ruben Van de Velde (Jul 12 2024 at 10:02):

@Edward van de Meent , do you want to PR those two lemmas to mathlib?

Ralf Stephan (Jul 12 2024 at 10:52):

(deleted)

Edward van de Meent (Jul 12 2024 at 10:53):

Ruben Van de Velde said:

Edward van de Meent , do you want to PR those two lemmas to mathlib?

#14674

Edward van de Meent (Jul 12 2024 at 10:54):

ah, should these lemmas be protected?

Ruben Van de Velde (Jul 12 2024 at 10:59):

Maybe?

Notification Bot (Jul 12 2024 at 12:11):

Eric Wieser has marked this topic as unresolved.

Eric Wieser (Jul 12 2024 at 12:11):

Edward van de Meent said:

did this not help?

@hand bob, I've merged your repeated questions into a single thread, because I think they're all the same question

Notification Bot (Jul 12 2024 at 14:01):

hand bob has marked this topic as resolved.

Notification Bot (Jul 17 2024 at 03:28):

hand bob has marked this topic as unresolved.

BANGJI HU (Jul 17 2024 at 03:30):

import Mathlib.Algebra.Group.Basic
import Mathlib.Algebra.Group.Defs
import Mathlib
import Mathlib.Tactic

open Set
open Subgroup MonoidHom
open Subgroup
theorem eqord3 {G : Type*} [Group G] (a b: G)(h:orderOf a  =2 ): ( b:G,orderOf (b⁻¹ * a * b)=2)
:=by

BANGJI HU (Jul 17 2024 at 03:32):

Special cases are more difficult than ordinary ones


Last updated: May 02 2025 at 03:31 UTC