Max P.L. Haslbeck, Simon Wimmer
June 28, 2021
Armaël Guéneau
Fabian Huch
Github repository with solutions: https://github.com/wimmers/proofground2021-solutions
Send us a pull request with your own!
Submitted by: Simon Wimmer
Originally from a student project, kudos to Alexander Gehrlein
Submitted by: Floris van Doorn
lemma group_theory_problem {G H : Type*} [group G] [group H] (f : G →* H)
(h1 : ∀ a b, a * b * a⁻¹ * b⁻¹ ∈ center G) (h2 : ∀ x ∈ center G, f x = 1 → x = 1) :
injective f :=
begin
suffices : ∀ (a : G), f a = 1 → a = 1,
{ rwa [monoid_hom.injective_iff] },
intros a ha,
have : a ∈ center G,
{ intro b,
have : f (a * b * a⁻¹ * b⁻¹) = 1,
{ simp [ha] },
have : a * b * a⁻¹ * b⁻¹ = 1,
{ refine h2 _ (h1 a b) this },
rw [eq_comm],
simpa [mul_inv_eq_iff_eq_mul] using this },
exact h2 a this ha
end
No group theory in Coq stdlib :(
Submitted by: Armaël Guéneau
Submitted by: Fabian Huch
From a course @TUM
Submitted by: Simon Wimmer
Thought of it while working on dynamic programming algorithms.
Had to reformulate for Coq to avoid indices and sets.
We are looking for: