order.rel_iso.group
⟷
Mathlib.Order.RelIso.Group
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.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -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]
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/730c6d4cab72b9d84fcfb9e95e8796e9cd8f40ba
@@ -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 :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -13,7 +13,7 @@ import Mathlib.Order.RelIso.Basic
-/
-variable {α : Type _} {r : α → α → Prop}
+variable {α : Type*} {r : α → α → Prop}
namespace RelIso
@@ -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
-/
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
.
@@ -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
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
@@ -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
All dependencies are ported!