Skip to content

Commit eda72c2

Browse files
committed
feat: Equiv.symm_trans (leanprover-community#39591)
Add theorem `Equiv.symm_trans`, which says `(f.trans g).symm = g.symm.trans f.symm`. See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/.60Equiv.2Esymm_trans.60/near/596266434).
1 parent b0a0c20 commit eda72c2

2 files changed

Lines changed: 5 additions & 3 deletions

File tree

Mathlib/GroupTheory/Perm/Sign.lean

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -349,8 +349,7 @@ theorem signAux3_symm_trans_trans [Finite α] [DecidableEq β] [Finite β] (f :
349349
rcases Finite.exists_equiv_fin β with ⟨n, ⟨e'⟩⟩
350350
rw [← signAux_eq_signAux2 _ _ e' fun _ _ => ht _,
351351
← signAux_eq_signAux2 _ _ (e.trans e') fun _ _ => hs _]
352-
exact congr_arg signAux
353-
(Equiv.ext fun x => by simp [symm_trans_apply])
352+
simp [trans_assoc]
354353

355354
/-- `SignType.sign` of a permutation returns the signature or parity of a permutation, `1` for even
356355
permutations, `-1` for odd permutations. It is the unique surjective group homomorphism from

Mathlib/Logic/Equiv/Defs.lean

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,9 +271,12 @@ theorem Perm.coe_subsingleton {α : Type*} [Subsingleton α] (e : Perm α) : (e
271271
e ∘ (e : α ≃ β).symm = id :=
272272
(e : α ≃ β).self_comp_symm
273273

274-
@[simp, grind =] theorem symm_trans_apply (f : α ≃ β) (g : β ≃ γ) (a : γ) :
274+
theorem symm_trans_apply (f : α ≃ β) (g : β ≃ γ) (a : γ) :
275275
(f.trans g).symm a = f.symm (g.symm a) := rfl
276276

277+
@[simp, grind =]
278+
theorem symm_trans (f : α ≃ β) (g : β ≃ γ) : (f.trans g).symm = g.symm.trans f.symm := rfl
279+
277280
theorem symm_symm_apply (f : α ≃ β) (b : α) : f.symm.symm b = f b := rfl
278281

279282
theorem apply_eq_iff_eq (f : α ≃ β) {x y : α} : f x = f y ↔ x = y := EquivLike.apply_eq_iff_eq f

0 commit comments

Comments
 (0)