order.rel_iso.groupMathlib.Order.RelIso.Group

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2017 Mario Carneiro. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Mario Carneiro
 -/
-import Mathbin.Algebra.Group.Defs
-import Mathbin.Order.RelIso.Basic
+import Algebra.Group.Defs
+import Order.RelIso.Basic
 
 #align_import order.rel_iso.group from "leanprover-community/mathlib"@"448144f7ae193a8990cb7473c9e9a01990f64ac7"
 
Diff
@@ -27,7 +27,7 @@ instance : Group (r ≃r r) where
   mul_assoc f₁ f₂ f₃ := rfl
   one_mul f := ext fun _ => rfl
   mul_one f := ext fun _ => rfl
-  mul_left_inv f := ext f.symm_apply_apply
+  hMul_left_inv f := ext f.symm_apply_apply
 
 #print RelIso.coe_one /-
 @[simp]
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2017 Mario Carneiro. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Mario Carneiro
-
-! This file was ported from Lean 3 source module order.rel_iso.group
-! leanprover-community/mathlib commit 448144f7ae193a8990cb7473c9e9a01990f64ac7
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Algebra.Group.Defs
 import Mathbin.Order.RelIso.Basic
 
+#align_import order.rel_iso.group from "leanprover-community/mathlib"@"448144f7ae193a8990cb7473c9e9a01990f64ac7"
+
 /-!
 # Relation isomorphisms form a group
 
Diff
@@ -32,29 +32,39 @@ instance : Group (r ≃r r) where
   mul_one f := ext fun _ => rfl
   mul_left_inv f := ext f.symm_apply_apply
 
+#print RelIso.coe_one /-
 @[simp]
 theorem coe_one : ⇑(1 : r ≃r r) = id :=
   rfl
 #align rel_iso.coe_one RelIso.coe_one
+-/
 
+#print RelIso.coe_mul /-
 @[simp]
 theorem coe_mul (e₁ e₂ : r ≃r r) : ⇑(e₁ * e₂) = e₁ ∘ e₂ :=
   rfl
 #align rel_iso.coe_mul RelIso.coe_mul
+-/
 
+#print RelIso.mul_apply /-
 theorem mul_apply (e₁ e₂ : r ≃r r) (x : α) : (e₁ * e₂) x = e₁ (e₂ x) :=
   rfl
 #align rel_iso.mul_apply RelIso.mul_apply
+-/
 
+#print RelIso.inv_apply_self /-
 @[simp]
 theorem inv_apply_self (e : r ≃r r) (x) : e⁻¹ (e x) = x :=
   e.symm_apply_apply x
 #align rel_iso.inv_apply_self RelIso.inv_apply_self
+-/
 
+#print RelIso.apply_inv_self /-
 @[simp]
 theorem apply_inv_self (e : r ≃r r) (x) : e (e⁻¹ x) = x :=
   e.apply_symm_apply x
 #align rel_iso.apply_inv_self RelIso.apply_inv_self
+-/
 
 end RelIso
 
Diff
@@ -32,55 +32,25 @@ instance : Group (r ≃r r) where
   mul_one f := ext fun _ => rfl
   mul_left_inv f := ext f.symm_apply_apply
 
-/- warning: rel_iso.coe_one -> RelIso.coe_one is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {r : α -> α -> Prop}, Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (RelIso.{u1, u1} α α r r) (fun (_x : RelIso.{u1, u1} α α r r) => α -> α) (RelIso.hasCoeToFun.{u1, u1} α α r r) (OfNat.ofNat.{u1} (RelIso.{u1, u1} α α r r) 1 (OfNat.mk.{u1} (RelIso.{u1, u1} α α r r) 1 (One.one.{u1} (RelIso.{u1, u1} α α r r) (MulOneClass.toHasOne.{u1} (RelIso.{u1, u1} α α r r) (Monoid.toMulOneClass.{u1} (RelIso.{u1, u1} α α r r) (DivInvMonoid.toMonoid.{u1} (RelIso.{u1, u1} α α r r) (Group.toDivInvMonoid.{u1} (RelIso.{u1, u1} α α r r) (RelIso.group.{u1} α r))))))))) (id.{succ u1} α)
-but is expected to have type
-  forall {α : Type.{u1}} {r : α -> α -> Prop}, Eq.{succ u1} (α -> α) (FunLike.coe.{succ u1, succ u1, succ u1} (RelIso.{u1, u1} α α r r) α (fun (_x : α) => α) (RelHomClass.toFunLike.{u1, u1, u1} (RelIso.{u1, u1} α α r r) α α r r (RelIso.instRelHomClassRelIso.{u1, u1} α α r r)) (OfNat.ofNat.{u1} (RelIso.{u1, u1} α α r r) 1 (One.toOfNat1.{u1} (RelIso.{u1, u1} α α r r) (RightCancelMonoid.toOne.{u1} (RelIso.{u1, u1} α α r r) (CancelMonoid.toRightCancelMonoid.{u1} (RelIso.{u1, u1} α α r r) (Group.toCancelMonoid.{u1} (RelIso.{u1, u1} α α r r) (RelIso.instGroupRelIso.{u1} α r))))))) (id.{succ u1} α)
-Case conversion may be inaccurate. Consider using '#align rel_iso.coe_one RelIso.coe_oneₓ'. -/
 @[simp]
 theorem coe_one : ⇑(1 : r ≃r r) = id :=
   rfl
 #align rel_iso.coe_one RelIso.coe_one
 
-/- warning: rel_iso.coe_mul -> RelIso.coe_mul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {r : α -> α -> Prop} (e₁ : RelIso.{u1, u1} α α r r) (e₂ : RelIso.{u1, u1} α α r r), Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (RelIso.{u1, u1} α α r r) (fun (_x : RelIso.{u1, u1} α α r r) => α -> α) (RelIso.hasCoeToFun.{u1, u1} α α r r) (HMul.hMul.{u1, u1, u1} (RelIso.{u1, u1} α α r r) (RelIso.{u1, u1} α α r r) (RelIso.{u1, u1} α α r r) (instHMul.{u1} (RelIso.{u1, u1} α α r r) (MulOneClass.toHasMul.{u1} (RelIso.{u1, u1} α α r r) (Monoid.toMulOneClass.{u1} (RelIso.{u1, u1} α α r r) (DivInvMonoid.toMonoid.{u1} (RelIso.{u1, u1} α α r r) (Group.toDivInvMonoid.{u1} (RelIso.{u1, u1} α α r r) (RelIso.group.{u1} α r)))))) e₁ e₂)) (Function.comp.{succ u1, succ u1, succ u1} α α α (coeFn.{succ u1, succ u1} (RelIso.{u1, u1} α α r r) (fun (_x : RelIso.{u1, u1} α α r r) => α -> α) (RelIso.hasCoeToFun.{u1, u1} α α r r) e₁) (coeFn.{succ u1, succ u1} (RelIso.{u1, u1} α α r r) (fun (_x : RelIso.{u1, u1} α α r r) => α -> α) (RelIso.hasCoeToFun.{u1, u1} α α r r) e₂))
-but is expected to have type
-  forall {α : Type.{u1}} {r : α -> α -> Prop} (e₁ : RelIso.{u1, u1} α α r r) (e₂ : RelIso.{u1, u1} α α r r), Eq.{succ u1} (α -> α) (FunLike.coe.{succ u1, succ u1, succ u1} (RelIso.{u1, u1} α α r r) α (fun (_x : α) => α) (RelHomClass.toFunLike.{u1, u1, u1} (RelIso.{u1, u1} α α r r) α α r r (RelIso.instRelHomClassRelIso.{u1, u1} α α r r)) (HMul.hMul.{u1, u1, u1} (RelIso.{u1, u1} α α r r) (RelIso.{u1, u1} α α r r) (RelIso.{u1, u1} α α r r) (instHMul.{u1} (RelIso.{u1, u1} α α r r) (MulOneClass.toMul.{u1} (RelIso.{u1, u1} α α r r) (Monoid.toMulOneClass.{u1} (RelIso.{u1, u1} α α r r) (DivInvMonoid.toMonoid.{u1} (RelIso.{u1, u1} α α r r) (Group.toDivInvMonoid.{u1} (RelIso.{u1, u1} α α r r) (RelIso.instGroupRelIso.{u1} α r)))))) e₁ e₂)) (Function.comp.{succ u1, succ u1, succ u1} α α α (FunLike.coe.{succ u1, succ u1, succ u1} (RelIso.{u1, u1} α α r r) α (fun (_x : α) => α) (RelHomClass.toFunLike.{u1, u1, u1} (RelIso.{u1, u1} α α r r) α α r r (RelIso.instRelHomClassRelIso.{u1, u1} α α r r)) e₁) (FunLike.coe.{succ u1, succ u1, succ u1} (RelIso.{u1, u1} α α r r) α (fun (_x : α) => α) (RelHomClass.toFunLike.{u1, u1, u1} (RelIso.{u1, u1} α α r r) α α r r (RelIso.instRelHomClassRelIso.{u1, u1} α α r r)) e₂))
-Case conversion may be inaccurate. Consider using '#align rel_iso.coe_mul RelIso.coe_mulₓ'. -/
 @[simp]
 theorem coe_mul (e₁ e₂ : r ≃r r) : ⇑(e₁ * e₂) = e₁ ∘ e₂ :=
   rfl
 #align rel_iso.coe_mul RelIso.coe_mul
 
-/- warning: rel_iso.mul_apply -> RelIso.mul_apply is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {r : α -> α -> Prop} (e₁ : RelIso.{u1, u1} α α r r) (e₂ : RelIso.{u1, u1} α α r r) (x : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (RelIso.{u1, u1} α α r r) (fun (_x : RelIso.{u1, u1} α α r r) => α -> α) (RelIso.hasCoeToFun.{u1, u1} α α r r) (HMul.hMul.{u1, u1, u1} (RelIso.{u1, u1} α α r r) (RelIso.{u1, u1} α α r r) (RelIso.{u1, u1} α α r r) (instHMul.{u1} (RelIso.{u1, u1} α α r r) (MulOneClass.toHasMul.{u1} (RelIso.{u1, u1} α α r r) (Monoid.toMulOneClass.{u1} (RelIso.{u1, u1} α α r r) (DivInvMonoid.toMonoid.{u1} (RelIso.{u1, u1} α α r r) (Group.toDivInvMonoid.{u1} (RelIso.{u1, u1} α α r r) (RelIso.group.{u1} α r)))))) e₁ e₂) x) (coeFn.{succ u1, succ u1} (RelIso.{u1, u1} α α r r) (fun (_x : RelIso.{u1, u1} α α r r) => α -> α) (RelIso.hasCoeToFun.{u1, u1} α α r r) e₁ (coeFn.{succ u1, succ u1} (RelIso.{u1, u1} α α r r) (fun (_x : RelIso.{u1, u1} α α r r) => α -> α) (RelIso.hasCoeToFun.{u1, u1} α α r r) e₂ x))
-but is expected to have type
-  forall {α : Type.{u1}} {r : α -> α -> Prop} (e₁ : RelIso.{u1, u1} α α r r) (e₂ : RelIso.{u1, u1} α α r r) (x : α), Eq.{succ u1} α (FunLike.coe.{succ u1, succ u1, succ u1} (RelIso.{u1, u1} α α r r) α (fun (_x : α) => α) (RelHomClass.toFunLike.{u1, u1, u1} (RelIso.{u1, u1} α α r r) α α r r (RelIso.instRelHomClassRelIso.{u1, u1} α α r r)) (HMul.hMul.{u1, u1, u1} (RelIso.{u1, u1} α α r r) (RelIso.{u1, u1} α α r r) (RelIso.{u1, u1} α α r r) (instHMul.{u1} (RelIso.{u1, u1} α α r r) (MulOneClass.toMul.{u1} (RelIso.{u1, u1} α α r r) (Monoid.toMulOneClass.{u1} (RelIso.{u1, u1} α α r r) (DivInvMonoid.toMonoid.{u1} (RelIso.{u1, u1} α α r r) (Group.toDivInvMonoid.{u1} (RelIso.{u1, u1} α α r r) (RelIso.instGroupRelIso.{u1} α r)))))) e₁ e₂) x) (FunLike.coe.{succ u1, succ u1, succ u1} (RelIso.{u1, u1} α α r r) α (fun (_x : α) => α) (RelHomClass.toFunLike.{u1, u1, u1} (RelIso.{u1, u1} α α r r) α α r r (RelIso.instRelHomClassRelIso.{u1, u1} α α r r)) e₁ (FunLike.coe.{succ u1, succ u1, succ u1} (RelIso.{u1, u1} α α r r) α (fun (_x : α) => α) (RelHomClass.toFunLike.{u1, u1, u1} (RelIso.{u1, u1} α α r r) α α r r (RelIso.instRelHomClassRelIso.{u1, u1} α α r r)) e₂ x))
-Case conversion may be inaccurate. Consider using '#align rel_iso.mul_apply RelIso.mul_applyₓ'. -/
 theorem mul_apply (e₁ e₂ : r ≃r r) (x : α) : (e₁ * e₂) x = e₁ (e₂ x) :=
   rfl
 #align rel_iso.mul_apply RelIso.mul_apply
 
-/- warning: rel_iso.inv_apply_self -> RelIso.inv_apply_self is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {r : α -> α -> Prop} (e : RelIso.{u1, u1} α α r r) (x : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (RelIso.{u1, u1} α α r r) (fun (_x : RelIso.{u1, u1} α α r r) => α -> α) (RelIso.hasCoeToFun.{u1, u1} α α r r) (Inv.inv.{u1} (RelIso.{u1, u1} α α r r) (DivInvMonoid.toHasInv.{u1} (RelIso.{u1, u1} α α r r) (Group.toDivInvMonoid.{u1} (RelIso.{u1, u1} α α r r) (RelIso.group.{u1} α r))) e) (coeFn.{succ u1, succ u1} (RelIso.{u1, u1} α α r r) (fun (_x : RelIso.{u1, u1} α α r r) => α -> α) (RelIso.hasCoeToFun.{u1, u1} α α r r) e x)) x
-but is expected to have type
-  forall {α : Type.{u1}} {r : α -> α -> Prop} (e : RelIso.{u1, u1} α α r r) (x : α), Eq.{succ u1} α (FunLike.coe.{succ u1, succ u1, succ u1} (RelIso.{u1, u1} α α r r) α (fun (_x : α) => α) (RelHomClass.toFunLike.{u1, u1, u1} (RelIso.{u1, u1} α α r r) α α r r (RelIso.instRelHomClassRelIso.{u1, u1} α α r r)) (Inv.inv.{u1} (RelIso.{u1, u1} α α r r) (DivInvMonoid.toInv.{u1} (RelIso.{u1, u1} α α r r) (Group.toDivInvMonoid.{u1} (RelIso.{u1, u1} α α r r) (RelIso.instGroupRelIso.{u1} α r))) e) (FunLike.coe.{succ u1, succ u1, succ u1} (RelIso.{u1, u1} α α r r) α (fun (_x : α) => α) (RelHomClass.toFunLike.{u1, u1, u1} (RelIso.{u1, u1} α α r r) α α r r (RelIso.instRelHomClassRelIso.{u1, u1} α α r r)) e x)) x
-Case conversion may be inaccurate. Consider using '#align rel_iso.inv_apply_self RelIso.inv_apply_selfₓ'. -/
 @[simp]
 theorem inv_apply_self (e : r ≃r r) (x) : e⁻¹ (e x) = x :=
   e.symm_apply_apply x
 #align rel_iso.inv_apply_self RelIso.inv_apply_self
 
-/- warning: rel_iso.apply_inv_self -> RelIso.apply_inv_self is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} {r : α -> α -> Prop} (e : RelIso.{u1, u1} α α r r) (x : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (RelIso.{u1, u1} α α r r) (fun (_x : RelIso.{u1, u1} α α r r) => α -> α) (RelIso.hasCoeToFun.{u1, u1} α α r r) e (coeFn.{succ u1, succ u1} (RelIso.{u1, u1} α α r r) (fun (_x : RelIso.{u1, u1} α α r r) => α -> α) (RelIso.hasCoeToFun.{u1, u1} α α r r) (Inv.inv.{u1} (RelIso.{u1, u1} α α r r) (DivInvMonoid.toHasInv.{u1} (RelIso.{u1, u1} α α r r) (Group.toDivInvMonoid.{u1} (RelIso.{u1, u1} α α r r) (RelIso.group.{u1} α r))) e) x)) x
-but is expected to have type
-  forall {α : Type.{u1}} {r : α -> α -> Prop} (e : RelIso.{u1, u1} α α r r) (x : α), Eq.{succ u1} α (FunLike.coe.{succ u1, succ u1, succ u1} (RelIso.{u1, u1} α α r r) α (fun (_x : α) => α) (RelHomClass.toFunLike.{u1, u1, u1} (RelIso.{u1, u1} α α r r) α α r r (RelIso.instRelHomClassRelIso.{u1, u1} α α r r)) e (FunLike.coe.{succ u1, succ u1, succ u1} (RelIso.{u1, u1} α α r r) α (fun (_x : α) => α) (RelHomClass.toFunLike.{u1, u1, u1} (RelIso.{u1, u1} α α r r) α α r r (RelIso.instRelHomClassRelIso.{u1, u1} α α r r)) (Inv.inv.{u1} (RelIso.{u1, u1} α α r r) (DivInvMonoid.toInv.{u1} (RelIso.{u1, u1} α α r r) (Group.toDivInvMonoid.{u1} (RelIso.{u1, u1} α α r r) (RelIso.instGroupRelIso.{u1} α r))) e) x)) x
-Case conversion may be inaccurate. Consider using '#align rel_iso.apply_inv_self RelIso.apply_inv_selfₓ'. -/
 @[simp]
 theorem apply_inv_self (e : r ≃r r) (x) : e (e⁻¹ x) = x :=
   e.apply_symm_apply x
Diff
@@ -36,7 +36,7 @@ instance : Group (r ≃r r) where
 lean 3 declaration is
   forall {α : Type.{u1}} {r : α -> α -> Prop}, Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (RelIso.{u1, u1} α α r r) (fun (_x : RelIso.{u1, u1} α α r r) => α -> α) (RelIso.hasCoeToFun.{u1, u1} α α r r) (OfNat.ofNat.{u1} (RelIso.{u1, u1} α α r r) 1 (OfNat.mk.{u1} (RelIso.{u1, u1} α α r r) 1 (One.one.{u1} (RelIso.{u1, u1} α α r r) (MulOneClass.toHasOne.{u1} (RelIso.{u1, u1} α α r r) (Monoid.toMulOneClass.{u1} (RelIso.{u1, u1} α α r r) (DivInvMonoid.toMonoid.{u1} (RelIso.{u1, u1} α α r r) (Group.toDivInvMonoid.{u1} (RelIso.{u1, u1} α α r r) (RelIso.group.{u1} α r))))))))) (id.{succ u1} α)
 but is expected to have type
-  forall {α : Type.{u1}} {r : α -> α -> Prop}, Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} α α) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => α) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} α α) α α (Function.instEmbeddingLikeEmbedding.{succ u1, succ u1} α α)) (RelEmbedding.toEmbedding.{u1, u1} α α r r (RelIso.toRelEmbedding.{u1, u1} α α r r (OfNat.ofNat.{u1} (RelIso.{u1, u1} α α r r) 1 (One.toOfNat1.{u1} (RelIso.{u1, u1} α α r r) (RightCancelMonoid.toOne.{u1} (RelIso.{u1, u1} α α r r) (CancelMonoid.toRightCancelMonoid.{u1} (RelIso.{u1, u1} α α r r) (Group.toCancelMonoid.{u1} (RelIso.{u1, u1} α α r r) (RelIso.instGroupRelIso.{u1} α r))))))))) (id.{succ u1} α)
+  forall {α : Type.{u1}} {r : α -> α -> Prop}, Eq.{succ u1} (α -> α) (FunLike.coe.{succ u1, succ u1, succ u1} (RelIso.{u1, u1} α α r r) α (fun (_x : α) => α) (RelHomClass.toFunLike.{u1, u1, u1} (RelIso.{u1, u1} α α r r) α α r r (RelIso.instRelHomClassRelIso.{u1, u1} α α r r)) (OfNat.ofNat.{u1} (RelIso.{u1, u1} α α r r) 1 (One.toOfNat1.{u1} (RelIso.{u1, u1} α α r r) (RightCancelMonoid.toOne.{u1} (RelIso.{u1, u1} α α r r) (CancelMonoid.toRightCancelMonoid.{u1} (RelIso.{u1, u1} α α r r) (Group.toCancelMonoid.{u1} (RelIso.{u1, u1} α α r r) (RelIso.instGroupRelIso.{u1} α r))))))) (id.{succ u1} α)
 Case conversion may be inaccurate. Consider using '#align rel_iso.coe_one RelIso.coe_oneₓ'. -/
 @[simp]
 theorem coe_one : ⇑(1 : r ≃r r) = id :=
@@ -47,7 +47,7 @@ theorem coe_one : ⇑(1 : r ≃r r) = id :=
 lean 3 declaration is
   forall {α : Type.{u1}} {r : α -> α -> Prop} (e₁ : RelIso.{u1, u1} α α r r) (e₂ : RelIso.{u1, u1} α α r r), Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (RelIso.{u1, u1} α α r r) (fun (_x : RelIso.{u1, u1} α α r r) => α -> α) (RelIso.hasCoeToFun.{u1, u1} α α r r) (HMul.hMul.{u1, u1, u1} (RelIso.{u1, u1} α α r r) (RelIso.{u1, u1} α α r r) (RelIso.{u1, u1} α α r r) (instHMul.{u1} (RelIso.{u1, u1} α α r r) (MulOneClass.toHasMul.{u1} (RelIso.{u1, u1} α α r r) (Monoid.toMulOneClass.{u1} (RelIso.{u1, u1} α α r r) (DivInvMonoid.toMonoid.{u1} (RelIso.{u1, u1} α α r r) (Group.toDivInvMonoid.{u1} (RelIso.{u1, u1} α α r r) (RelIso.group.{u1} α r)))))) e₁ e₂)) (Function.comp.{succ u1, succ u1, succ u1} α α α (coeFn.{succ u1, succ u1} (RelIso.{u1, u1} α α r r) (fun (_x : RelIso.{u1, u1} α α r r) => α -> α) (RelIso.hasCoeToFun.{u1, u1} α α r r) e₁) (coeFn.{succ u1, succ u1} (RelIso.{u1, u1} α α r r) (fun (_x : RelIso.{u1, u1} α α r r) => α -> α) (RelIso.hasCoeToFun.{u1, u1} α α r r) e₂))
 but is expected to have type
-  forall {α : Type.{u1}} {r : α -> α -> Prop} (e₁ : RelIso.{u1, u1} α α r r) (e₂ : RelIso.{u1, u1} α α r r), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} α α) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => α) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} α α) α α (Function.instEmbeddingLikeEmbedding.{succ u1, succ u1} α α)) (RelEmbedding.toEmbedding.{u1, u1} α α r r (RelIso.toRelEmbedding.{u1, u1} α α r r (HMul.hMul.{u1, u1, u1} (RelIso.{u1, u1} α α r r) (RelIso.{u1, u1} α α r r) (RelIso.{u1, u1} α α r r) (instHMul.{u1} (RelIso.{u1, u1} α α r r) (MulOneClass.toMul.{u1} (RelIso.{u1, u1} α α r r) (Monoid.toMulOneClass.{u1} (RelIso.{u1, u1} α α r r) (DivInvMonoid.toMonoid.{u1} (RelIso.{u1, u1} α α r r) (Group.toDivInvMonoid.{u1} (RelIso.{u1, u1} α α r r) (RelIso.instGroupRelIso.{u1} α r)))))) e₁ e₂)))) (Function.comp.{succ u1, succ u1, succ u1} α α α (FunLike.coe.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} α α) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => α) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} α α) α α (Function.instEmbeddingLikeEmbedding.{succ u1, succ u1} α α)) (RelEmbedding.toEmbedding.{u1, u1} α α r r (RelIso.toRelEmbedding.{u1, u1} α α r r e₁))) (FunLike.coe.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} α α) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => α) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} α α) α α (Function.instEmbeddingLikeEmbedding.{succ u1, succ u1} α α)) (RelEmbedding.toEmbedding.{u1, u1} α α r r (RelIso.toRelEmbedding.{u1, u1} α α r r e₂))))
+  forall {α : Type.{u1}} {r : α -> α -> Prop} (e₁ : RelIso.{u1, u1} α α r r) (e₂ : RelIso.{u1, u1} α α r r), Eq.{succ u1} (α -> α) (FunLike.coe.{succ u1, succ u1, succ u1} (RelIso.{u1, u1} α α r r) α (fun (_x : α) => α) (RelHomClass.toFunLike.{u1, u1, u1} (RelIso.{u1, u1} α α r r) α α r r (RelIso.instRelHomClassRelIso.{u1, u1} α α r r)) (HMul.hMul.{u1, u1, u1} (RelIso.{u1, u1} α α r r) (RelIso.{u1, u1} α α r r) (RelIso.{u1, u1} α α r r) (instHMul.{u1} (RelIso.{u1, u1} α α r r) (MulOneClass.toMul.{u1} (RelIso.{u1, u1} α α r r) (Monoid.toMulOneClass.{u1} (RelIso.{u1, u1} α α r r) (DivInvMonoid.toMonoid.{u1} (RelIso.{u1, u1} α α r r) (Group.toDivInvMonoid.{u1} (RelIso.{u1, u1} α α r r) (RelIso.instGroupRelIso.{u1} α r)))))) e₁ e₂)) (Function.comp.{succ u1, succ u1, succ u1} α α α (FunLike.coe.{succ u1, succ u1, succ u1} (RelIso.{u1, u1} α α r r) α (fun (_x : α) => α) (RelHomClass.toFunLike.{u1, u1, u1} (RelIso.{u1, u1} α α r r) α α r r (RelIso.instRelHomClassRelIso.{u1, u1} α α r r)) e₁) (FunLike.coe.{succ u1, succ u1, succ u1} (RelIso.{u1, u1} α α r r) α (fun (_x : α) => α) (RelHomClass.toFunLike.{u1, u1, u1} (RelIso.{u1, u1} α α r r) α α r r (RelIso.instRelHomClassRelIso.{u1, u1} α α r r)) e₂))
 Case conversion may be inaccurate. Consider using '#align rel_iso.coe_mul RelIso.coe_mulₓ'. -/
 @[simp]
 theorem coe_mul (e₁ e₂ : r ≃r r) : ⇑(e₁ * e₂) = e₁ ∘ e₂ :=
@@ -58,7 +58,7 @@ theorem coe_mul (e₁ e₂ : r ≃r r) : ⇑(e₁ * e₂) = e₁ ∘ e₂ :=
 lean 3 declaration is
   forall {α : Type.{u1}} {r : α -> α -> Prop} (e₁ : RelIso.{u1, u1} α α r r) (e₂ : RelIso.{u1, u1} α α r r) (x : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (RelIso.{u1, u1} α α r r) (fun (_x : RelIso.{u1, u1} α α r r) => α -> α) (RelIso.hasCoeToFun.{u1, u1} α α r r) (HMul.hMul.{u1, u1, u1} (RelIso.{u1, u1} α α r r) (RelIso.{u1, u1} α α r r) (RelIso.{u1, u1} α α r r) (instHMul.{u1} (RelIso.{u1, u1} α α r r) (MulOneClass.toHasMul.{u1} (RelIso.{u1, u1} α α r r) (Monoid.toMulOneClass.{u1} (RelIso.{u1, u1} α α r r) (DivInvMonoid.toMonoid.{u1} (RelIso.{u1, u1} α α r r) (Group.toDivInvMonoid.{u1} (RelIso.{u1, u1} α α r r) (RelIso.group.{u1} α r)))))) e₁ e₂) x) (coeFn.{succ u1, succ u1} (RelIso.{u1, u1} α α r r) (fun (_x : RelIso.{u1, u1} α α r r) => α -> α) (RelIso.hasCoeToFun.{u1, u1} α α r r) e₁ (coeFn.{succ u1, succ u1} (RelIso.{u1, u1} α α r r) (fun (_x : RelIso.{u1, u1} α α r r) => α -> α) (RelIso.hasCoeToFun.{u1, u1} α α r r) e₂ x))
 but is expected to have type
-  forall {α : Type.{u1}} {r : α -> α -> Prop} (e₁ : RelIso.{u1, u1} α α r r) (e₂ : RelIso.{u1, u1} α α r r) (x : α), Eq.{succ u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => α) x) (FunLike.coe.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} α α) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => α) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} α α) α α (Function.instEmbeddingLikeEmbedding.{succ u1, succ u1} α α)) (RelEmbedding.toEmbedding.{u1, u1} α α r r (RelIso.toRelEmbedding.{u1, u1} α α r r (HMul.hMul.{u1, u1, u1} (RelIso.{u1, u1} α α r r) (RelIso.{u1, u1} α α r r) (RelIso.{u1, u1} α α r r) (instHMul.{u1} (RelIso.{u1, u1} α α r r) (MulOneClass.toMul.{u1} (RelIso.{u1, u1} α α r r) (Monoid.toMulOneClass.{u1} (RelIso.{u1, u1} α α r r) (DivInvMonoid.toMonoid.{u1} (RelIso.{u1, u1} α α r r) (Group.toDivInvMonoid.{u1} (RelIso.{u1, u1} α α r r) (RelIso.instGroupRelIso.{u1} α r)))))) e₁ e₂))) x) (FunLike.coe.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} α α) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => α) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} α α) α α (Function.instEmbeddingLikeEmbedding.{succ u1, succ u1} α α)) (RelEmbedding.toEmbedding.{u1, u1} α α r r (RelIso.toRelEmbedding.{u1, u1} α α r r e₁)) (FunLike.coe.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} α α) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => α) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} α α) α α (Function.instEmbeddingLikeEmbedding.{succ u1, succ u1} α α)) (RelEmbedding.toEmbedding.{u1, u1} α α r r (RelIso.toRelEmbedding.{u1, u1} α α r r e₂)) x))
+  forall {α : Type.{u1}} {r : α -> α -> Prop} (e₁ : RelIso.{u1, u1} α α r r) (e₂ : RelIso.{u1, u1} α α r r) (x : α), Eq.{succ u1} α (FunLike.coe.{succ u1, succ u1, succ u1} (RelIso.{u1, u1} α α r r) α (fun (_x : α) => α) (RelHomClass.toFunLike.{u1, u1, u1} (RelIso.{u1, u1} α α r r) α α r r (RelIso.instRelHomClassRelIso.{u1, u1} α α r r)) (HMul.hMul.{u1, u1, u1} (RelIso.{u1, u1} α α r r) (RelIso.{u1, u1} α α r r) (RelIso.{u1, u1} α α r r) (instHMul.{u1} (RelIso.{u1, u1} α α r r) (MulOneClass.toMul.{u1} (RelIso.{u1, u1} α α r r) (Monoid.toMulOneClass.{u1} (RelIso.{u1, u1} α α r r) (DivInvMonoid.toMonoid.{u1} (RelIso.{u1, u1} α α r r) (Group.toDivInvMonoid.{u1} (RelIso.{u1, u1} α α r r) (RelIso.instGroupRelIso.{u1} α r)))))) e₁ e₂) x) (FunLike.coe.{succ u1, succ u1, succ u1} (RelIso.{u1, u1} α α r r) α (fun (_x : α) => α) (RelHomClass.toFunLike.{u1, u1, u1} (RelIso.{u1, u1} α α r r) α α r r (RelIso.instRelHomClassRelIso.{u1, u1} α α r r)) e₁ (FunLike.coe.{succ u1, succ u1, succ u1} (RelIso.{u1, u1} α α r r) α (fun (_x : α) => α) (RelHomClass.toFunLike.{u1, u1, u1} (RelIso.{u1, u1} α α r r) α α r r (RelIso.instRelHomClassRelIso.{u1, u1} α α r r)) e₂ x))
 Case conversion may be inaccurate. Consider using '#align rel_iso.mul_apply RelIso.mul_applyₓ'. -/
 theorem mul_apply (e₁ e₂ : r ≃r r) (x : α) : (e₁ * e₂) x = e₁ (e₂ x) :=
   rfl
@@ -68,7 +68,7 @@ theorem mul_apply (e₁ e₂ : r ≃r r) (x : α) : (e₁ * e₂) x = e₁ (e₂
 lean 3 declaration is
   forall {α : Type.{u1}} {r : α -> α -> Prop} (e : RelIso.{u1, u1} α α r r) (x : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (RelIso.{u1, u1} α α r r) (fun (_x : RelIso.{u1, u1} α α r r) => α -> α) (RelIso.hasCoeToFun.{u1, u1} α α r r) (Inv.inv.{u1} (RelIso.{u1, u1} α α r r) (DivInvMonoid.toHasInv.{u1} (RelIso.{u1, u1} α α r r) (Group.toDivInvMonoid.{u1} (RelIso.{u1, u1} α α r r) (RelIso.group.{u1} α r))) e) (coeFn.{succ u1, succ u1} (RelIso.{u1, u1} α α r r) (fun (_x : RelIso.{u1, u1} α α r r) => α -> α) (RelIso.hasCoeToFun.{u1, u1} α α r r) e x)) x
 but is expected to have type
-  forall {α : Type.{u1}} {r : α -> α -> Prop} (e : RelIso.{u1, u1} α α r r) (x : α), Eq.{succ u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => α) (FunLike.coe.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} α α) α (fun (a : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => α) a) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} α α) α α (Function.instEmbeddingLikeEmbedding.{succ u1, succ u1} α α)) (RelEmbedding.toEmbedding.{u1, u1} α α r r (RelIso.toRelEmbedding.{u1, u1} α α r r e)) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} α α) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => α) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} α α) α α (Function.instEmbeddingLikeEmbedding.{succ u1, succ u1} α α)) (RelEmbedding.toEmbedding.{u1, u1} α α r r (RelIso.toRelEmbedding.{u1, u1} α α r r (Inv.inv.{u1} (RelIso.{u1, u1} α α r r) (DivInvMonoid.toInv.{u1} (RelIso.{u1, u1} α α r r) (Group.toDivInvMonoid.{u1} (RelIso.{u1, u1} α α r r) (RelIso.instGroupRelIso.{u1} α r))) e))) (FunLike.coe.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} α α) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => α) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} α α) α α (Function.instEmbeddingLikeEmbedding.{succ u1, succ u1} α α)) (RelEmbedding.toEmbedding.{u1, u1} α α r r (RelIso.toRelEmbedding.{u1, u1} α α r r e)) x)) x
+  forall {α : Type.{u1}} {r : α -> α -> Prop} (e : RelIso.{u1, u1} α α r r) (x : α), Eq.{succ u1} α (FunLike.coe.{succ u1, succ u1, succ u1} (RelIso.{u1, u1} α α r r) α (fun (_x : α) => α) (RelHomClass.toFunLike.{u1, u1, u1} (RelIso.{u1, u1} α α r r) α α r r (RelIso.instRelHomClassRelIso.{u1, u1} α α r r)) (Inv.inv.{u1} (RelIso.{u1, u1} α α r r) (DivInvMonoid.toInv.{u1} (RelIso.{u1, u1} α α r r) (Group.toDivInvMonoid.{u1} (RelIso.{u1, u1} α α r r) (RelIso.instGroupRelIso.{u1} α r))) e) (FunLike.coe.{succ u1, succ u1, succ u1} (RelIso.{u1, u1} α α r r) α (fun (_x : α) => α) (RelHomClass.toFunLike.{u1, u1, u1} (RelIso.{u1, u1} α α r r) α α r r (RelIso.instRelHomClassRelIso.{u1, u1} α α r r)) e x)) x
 Case conversion may be inaccurate. Consider using '#align rel_iso.inv_apply_self RelIso.inv_apply_selfₓ'. -/
 @[simp]
 theorem inv_apply_self (e : r ≃r r) (x) : e⁻¹ (e x) = x :=
@@ -79,7 +79,7 @@ theorem inv_apply_self (e : r ≃r r) (x) : e⁻¹ (e x) = x :=
 lean 3 declaration is
   forall {α : Type.{u1}} {r : α -> α -> Prop} (e : RelIso.{u1, u1} α α r r) (x : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (RelIso.{u1, u1} α α r r) (fun (_x : RelIso.{u1, u1} α α r r) => α -> α) (RelIso.hasCoeToFun.{u1, u1} α α r r) e (coeFn.{succ u1, succ u1} (RelIso.{u1, u1} α α r r) (fun (_x : RelIso.{u1, u1} α α r r) => α -> α) (RelIso.hasCoeToFun.{u1, u1} α α r r) (Inv.inv.{u1} (RelIso.{u1, u1} α α r r) (DivInvMonoid.toHasInv.{u1} (RelIso.{u1, u1} α α r r) (Group.toDivInvMonoid.{u1} (RelIso.{u1, u1} α α r r) (RelIso.group.{u1} α r))) e) x)) x
 but is expected to have type
-  forall {α : Type.{u1}} {r : α -> α -> Prop} (e : RelIso.{u1, u1} α α r r) (x : α), Eq.{succ u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => α) (FunLike.coe.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} α α) α (fun (a : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => α) a) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} α α) α α (Function.instEmbeddingLikeEmbedding.{succ u1, succ u1} α α)) (RelEmbedding.toEmbedding.{u1, u1} α α r r (RelIso.toRelEmbedding.{u1, u1} α α r r (Inv.inv.{u1} (RelIso.{u1, u1} α α r r) (DivInvMonoid.toInv.{u1} (RelIso.{u1, u1} α α r r) (Group.toDivInvMonoid.{u1} (RelIso.{u1, u1} α α r r) (RelIso.instGroupRelIso.{u1} α r))) e))) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} α α) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => α) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} α α) α α (Function.instEmbeddingLikeEmbedding.{succ u1, succ u1} α α)) (RelEmbedding.toEmbedding.{u1, u1} α α r r (RelIso.toRelEmbedding.{u1, u1} α α r r e)) (FunLike.coe.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} α α) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => α) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} α α) α α (Function.instEmbeddingLikeEmbedding.{succ u1, succ u1} α α)) (RelEmbedding.toEmbedding.{u1, u1} α α r r (RelIso.toRelEmbedding.{u1, u1} α α r r (Inv.inv.{u1} (RelIso.{u1, u1} α α r r) (DivInvMonoid.toInv.{u1} (RelIso.{u1, u1} α α r r) (Group.toDivInvMonoid.{u1} (RelIso.{u1, u1} α α r r) (RelIso.instGroupRelIso.{u1} α r))) e))) x)) x
+  forall {α : Type.{u1}} {r : α -> α -> Prop} (e : RelIso.{u1, u1} α α r r) (x : α), Eq.{succ u1} α (FunLike.coe.{succ u1, succ u1, succ u1} (RelIso.{u1, u1} α α r r) α (fun (_x : α) => α) (RelHomClass.toFunLike.{u1, u1, u1} (RelIso.{u1, u1} α α r r) α α r r (RelIso.instRelHomClassRelIso.{u1, u1} α α r r)) e (FunLike.coe.{succ u1, succ u1, succ u1} (RelIso.{u1, u1} α α r r) α (fun (_x : α) => α) (RelHomClass.toFunLike.{u1, u1, u1} (RelIso.{u1, u1} α α r r) α α r r (RelIso.instRelHomClassRelIso.{u1, u1} α α r r)) (Inv.inv.{u1} (RelIso.{u1, u1} α α r r) (DivInvMonoid.toInv.{u1} (RelIso.{u1, u1} α α r r) (Group.toDivInvMonoid.{u1} (RelIso.{u1, u1} α α r r) (RelIso.instGroupRelIso.{u1} α r))) e) x)) x
 Case conversion may be inaccurate. Consider using '#align rel_iso.apply_inv_self RelIso.apply_inv_selfₓ'. -/
 @[simp]
 theorem apply_inv_self (e : r ≃r r) (x) : e (e⁻¹ x) = x :=

Changes in mathlib4

mathlib3
mathlib4
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -13,7 +13,7 @@ import Mathlib.Order.RelIso.Basic
 -/
 
 
-variable {α : Type _} {r : α → α → Prop}
+variable {α : Type*} {r : α → α → Prop}
 
 namespace RelIso
 
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2017 Mario Carneiro. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Mario Carneiro
-
-! This file was ported from Lean 3 source module order.rel_iso.group
-! leanprover-community/mathlib commit 62a5626868683c104774de8d85b9855234ac807c
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Algebra.Group.Defs
 import Mathlib.Order.RelIso.Basic
 
+#align_import order.rel_iso.group from "leanprover-community/mathlib"@"62a5626868683c104774de8d85b9855234ac807c"
+
 /-!
 # Relation isomorphisms form a group
 -/
fix: reintroduce to_fun_as_coe as simp lemma (#931)

This is a proposed fix for the broken simp calls in #922. See https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/.60simp.60.20calls.20broken.20in.20mathlib4.23922/near/314783451 for more details. Note that to_fun_as_coe was a syntactic tautology when it was ported, but this is no longer the case because we now have FunLike.

Diff
@@ -30,14 +30,14 @@ instance : Group (r ≃r r) where
   mul_left_inv f := ext f.symm_apply_apply
 
 @[simp]
-theorem toFun_one : (1 : r ≃r r).toFun = id :=
+theorem coe_one : ((1 : r ≃r r) : α → α) = id :=
   rfl
-#align rel_iso.coe_one RelIso.toFun_one
+#align rel_iso.coe_one RelIso.coe_one
 
 @[simp]
-theorem toFun_mul (e₁ e₂ : r ≃r r) : (e₁ * e₂).toFun = e₁ ∘ e₂ :=
+theorem coe_mul (e₁ e₂ : r ≃r r) : ((e₁ * e₂) : α → α) = e₁ ∘ e₂ :=
   rfl
-#align rel_iso.coe_mul RelIso.toFun_mul
+#align rel_iso.coe_mul RelIso.coe_mul
 
 theorem mul_apply (e₁ e₂ : r ≃r r) (x : α) : (e₁ * e₂) x = e₁ (e₂ x) :=
   rfl
chore: add source headers to ported theory files (#1094)

The script used to do this is included. The yaml file was obtained from https://raw.githubusercontent.com/wiki/leanprover-community/mathlib/mathlib4-port-status.md

Diff
@@ -2,6 +2,11 @@
 Copyright (c) 2017 Mario Carneiro. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Mario Carneiro
+
+! This file was ported from Lean 3 source module order.rel_iso.group
+! leanprover-community/mathlib commit 62a5626868683c104774de8d85b9855234ac807c
+! Please do not edit these lines, except to modify the commit id
+! if you have ported upstream changes.
 -/
 import Mathlib.Algebra.Group.Defs
 import Mathlib.Order.RelIso.Basic

Dependencies 24

25 files ported (100.0%)
12198 lines ported (100.0%)

All dependencies are ported!