@@ -317,22 +317,36 @@ by { ext, refl }
317
317
@[simp] lemma equiv_congr_apply_apply {δ} (ab : α ≃ β) (cd : γ ≃ δ) (e : α ≃ γ) (x) :
318
318
ab.equiv_congr cd e x = cd (e (ab.symm x)) := rfl
319
319
320
+ section perm_congr
321
+
322
+ variables {α' β' : Type *} (e : α' ≃ β')
323
+
320
324
/-- If `α` is equivalent to `β`, then `perm α` is equivalent to `perm β`. -/
321
- def perm_congr {α : Type *} {β : Type *} (e : α ≃ β) : perm α ≃ perm β :=
325
+ def perm_congr : perm α' ≃ perm β' :=
322
326
equiv_congr e e
323
327
324
- lemma perm_congr_def {α β : Type *} (e : α ≃ β) ( p : equiv.perm α) :
328
+ lemma perm_congr_def ( p : equiv.perm α' ) :
325
329
e.perm_congr p = (e.symm.trans p).trans e := rfl
326
330
327
- @[simp] lemma perm_congr_symm {α β : Type *} (e : α ≃ β) :
331
+ @[simp] lemma perm_congr_refl :
332
+ e.perm_congr (equiv.refl _) = equiv.refl _ :=
333
+ by simp [perm_congr_def]
334
+
335
+ @[simp] lemma perm_congr_symm :
328
336
e.perm_congr.symm = e.symm.perm_congr := rfl
329
337
330
- @[simp] lemma perm_congr_apply {α β : Type *} (e : α ≃ β) ( p : equiv.perm α) (x) :
338
+ @[simp] lemma perm_congr_apply ( p : equiv.perm α' ) (x) :
331
339
e.perm_congr p x = e (p (e.symm x)) := rfl
332
340
333
- lemma perm_congr_symm_apply {α β : Type *} (e : α ≃ β) ( p : equiv.perm β) (x) :
341
+ lemma perm_congr_symm_apply ( p : equiv.perm β' ) (x) :
334
342
e.perm_congr.symm p x = e.symm (p (e x)) := rfl
335
343
344
+ lemma perm_congr_trans (p p' : equiv.perm α') :
345
+ (e.perm_congr p).trans (e.perm_congr p') = e.perm_congr (p.trans p') :=
346
+ by { ext, simp }
347
+
348
+ end perm_congr
349
+
336
350
protected lemma image_eq_preimage {α β} (e : α ≃ β) (s : set α) : e '' s = e.symm ⁻¹' s :=
337
351
set.ext $ assume x, set.mem_image_iff_of_inverse e.left_inv e.right_inv
338
352
0 commit comments