algebra.star.pointwise
⟷
Mathlib.Algebra.Star.Pointwise
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)
(last sync)
This generalizes some typeclass arguments from field
to semifield
and division_ring
to division_semiring
.
The proof for map_inv_nat_cast_smul
had to be rewritten, as it was previously proved in terms of map_inv_int_cast_smul
.
The latter is now instead proved in terms of the former.
Forward-ported in https://github.com/leanprover-community/mathlib4/pull/2926
Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@@ -117,7 +117,7 @@ instance [has_star α] [has_trivial_star α] : has_trivial_star (set α) :=
protected lemma star_inv [group α] [star_semigroup α] (s : set α) : (s⁻¹)⋆ = (s⋆)⁻¹ :=
by { ext, simp only [mem_star, mem_inv, star_inv] }
-protected lemma star_inv' [division_ring α] [star_ring α] (s : set α) : (s⁻¹)⋆ = (s⋆)⁻¹ :=
+protected lemma star_inv' [division_semiring α] [star_ring α] (s : set α) : (s⁻¹)⋆ = (s⋆)⁻¹ :=
by { ext, simp only [mem_star, mem_inv, star_inv'] }
end set
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(first ported)
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,9 +3,9 @@ Copyright (c) 2022 Jireh Loreaux. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Jireh Loreaux
-/
-import Mathbin.Algebra.Star.Basic
-import Mathbin.Data.Set.Finite
-import Mathbin.Data.Set.Pointwise.Basic
+import Algebra.Star.Basic
+import Data.Set.Finite
+import Data.Set.Pointwise.Basic
#align_import algebra.star.pointwise from "leanprover-community/mathlib"@"30413fc89f202a090a54d78e540963ed3de0056e"
mathlib commit https://github.com/leanprover-community/mathlib/commit/442a83d738cb208d3600056c489be16900ba701d
@@ -164,7 +164,7 @@ theorem star_singleton {β : Type _} [InvolutiveStar β] (x : β) : ({x} : Set
-/
#print Set.star_mul /-
-protected theorem star_mul [Monoid α] [StarSemigroup α] (s t : Set α) : (s * t)⋆ = t⋆ * s⋆ := by
+protected theorem star_mul [Monoid α] [StarMul α] (s t : Set α) : (s * t)⋆ = t⋆ * s⋆ := by
simp_rw [← image_star, ← image2_mul, image_image2, image2_image_left, image2_image_right,
star_mul, image2_swap _ s t]
#align set.star_mul Set.star_mul
@@ -182,7 +182,7 @@ instance [Star α] [TrivialStar α] : TrivialStar (Set α)
where star_trivial s := by rw [← star_preimage]; ext1; simp [star_trivial]
#print Set.star_inv /-
-protected theorem star_inv [Group α] [StarSemigroup α] (s : Set α) : s⁻¹⋆ = s⋆⁻¹ := by ext;
+protected theorem star_inv [Group α] [StarMul α] (s : Set α) : s⁻¹⋆ = s⋆⁻¹ := by ext;
simp only [mem_star, mem_inv, star_inv]
#align set.star_inv Set.star_inv
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,16 +2,13 @@
Copyright (c) 2022 Jireh Loreaux. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Jireh Loreaux
-
-! This file was ported from Lean 3 source module algebra.star.pointwise
-! leanprover-community/mathlib commit 30413fc89f202a090a54d78e540963ed3de0056e
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Algebra.Star.Basic
import Mathbin.Data.Set.Finite
import Mathbin.Data.Set.Pointwise.Basic
+#align_import algebra.star.pointwise from "leanprover-community/mathlib"@"30413fc89f202a090a54d78e540963ed3de0056e"
+
/-!
# Pointwise star operation on sets
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -32,7 +32,6 @@ namespace Set
open scoped Pointwise
--- mathport name: «expr ⋆»
local postfix:max "⋆" => star
variable {α : Type _} {s t : Set α} {a : α}
@@ -101,15 +100,19 @@ theorem image_star [InvolutiveStar α] : Star.star '' s = s⋆ := by simp only [
#align set.image_star Set.image_star
-/
+#print Set.inter_star /-
@[simp]
theorem inter_star [Star α] : (s ∩ t)⋆ = s⋆ ∩ t⋆ :=
preimage_inter
#align set.inter_star Set.inter_star
+-/
+#print Set.union_star /-
@[simp]
theorem union_star [Star α] : (s ∪ t)⋆ = s⋆ ∪ t⋆ :=
preimage_union
#align set.union_star Set.union_star
+-/
#print Set.iInter_star /-
@[simp]
@@ -125,10 +128,12 @@ theorem iUnion_star {ι : Sort _} [Star α] (s : ι → Set α) : (⋃ i, s i)
#align set.Union_star Set.iUnion_star
-/
+#print Set.compl_star /-
@[simp]
theorem compl_star [Star α] : (sᶜ)⋆ = s⋆ᶜ :=
preimage_compl
#align set.compl_star Set.compl_star
+-/
@[simp]
instance [InvolutiveStar α] : InvolutiveStar (Set α)
@@ -161,27 +166,35 @@ theorem star_singleton {β : Type _} [InvolutiveStar β] (x : β) : ({x} : Set
#align set.star_singleton Set.star_singleton
-/
+#print Set.star_mul /-
protected theorem star_mul [Monoid α] [StarSemigroup α] (s t : Set α) : (s * t)⋆ = t⋆ * s⋆ := by
simp_rw [← image_star, ← image2_mul, image_image2, image2_image_left, image2_image_right,
star_mul, image2_swap _ s t]
#align set.star_mul Set.star_mul
+-/
+#print Set.star_add /-
protected theorem star_add [AddMonoid α] [StarAddMonoid α] (s t : Set α) : (s + t)⋆ = s⋆ + t⋆ := by
simp_rw [← image_star, ← image2_add, image_image2, image2_image_left, image2_image_right,
star_add]
#align set.star_add Set.star_add
+-/
@[simp]
instance [Star α] [TrivialStar α] : TrivialStar (Set α)
where star_trivial s := by rw [← star_preimage]; ext1; simp [star_trivial]
+#print Set.star_inv /-
protected theorem star_inv [Group α] [StarSemigroup α] (s : Set α) : s⁻¹⋆ = s⋆⁻¹ := by ext;
simp only [mem_star, mem_inv, star_inv]
#align set.star_inv Set.star_inv
+-/
+#print Set.star_inv' /-
protected theorem star_inv' [DivisionSemiring α] [StarRing α] (s : Set α) : s⁻¹⋆ = s⋆⁻¹ := by ext;
simp only [mem_star, mem_inv, star_inv']
#align set.star_inv' Set.star_inv'
+-/
end Set
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -30,7 +30,7 @@ if `s t : set α`, then under suitable assumption on `α`, it is shown
namespace Set
-open Pointwise
+open scoped Pointwise
-- mathport name: «expr ⋆»
local postfix:max "⋆" => star
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -101,23 +101,11 @@ theorem image_star [InvolutiveStar α] : Star.star '' s = s⋆ := by simp only [
#align set.image_star Set.image_star
-/
-/- warning: set.inter_star -> Set.inter_star is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α} [_inst_1 : Star.{u1} α], Eq.{succ u1} (Set.{u1} α) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α _inst_1) (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) s t)) (Inter.inter.{u1} (Set.{u1} α) (Set.hasInter.{u1} α) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α _inst_1) s) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α _inst_1) t))
-but is expected to have type
- forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α} [_inst_1 : Star.{u1} α], Eq.{succ u1} (Set.{u1} α) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α _inst_1) (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) s t)) (Inter.inter.{u1} (Set.{u1} α) (Set.instInterSet.{u1} α) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α _inst_1) s) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α _inst_1) t))
-Case conversion may be inaccurate. Consider using '#align set.inter_star Set.inter_starₓ'. -/
@[simp]
theorem inter_star [Star α] : (s ∩ t)⋆ = s⋆ ∩ t⋆ :=
preimage_inter
#align set.inter_star Set.inter_star
-/- warning: set.union_star -> Set.union_star is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α} [_inst_1 : Star.{u1} α], Eq.{succ u1} (Set.{u1} α) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α _inst_1) (Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) s t)) (Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α _inst_1) s) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α _inst_1) t))
-but is expected to have type
- forall {α : Type.{u1}} {s : Set.{u1} α} {t : Set.{u1} α} [_inst_1 : Star.{u1} α], Eq.{succ u1} (Set.{u1} α) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α _inst_1) (Union.union.{u1} (Set.{u1} α) (Set.instUnionSet.{u1} α) s t)) (Union.union.{u1} (Set.{u1} α) (Set.instUnionSet.{u1} α) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α _inst_1) s) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α _inst_1) t))
-Case conversion may be inaccurate. Consider using '#align set.union_star Set.union_starₓ'. -/
@[simp]
theorem union_star [Star α] : (s ∪ t)⋆ = s⋆ ∪ t⋆ :=
preimage_union
@@ -137,12 +125,6 @@ theorem iUnion_star {ι : Sort _} [Star α] (s : ι → Set α) : (⋃ i, s i)
#align set.Union_star Set.iUnion_star
-/
-/- warning: set.compl_star -> Set.compl_star is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {s : Set.{u1} α} [_inst_1 : Star.{u1} α], Eq.{succ u1} (Set.{u1} α) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α _inst_1) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) s)) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.booleanAlgebra.{u1} α)) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α _inst_1) s))
-but is expected to have type
- forall {α : Type.{u1}} {s : Set.{u1} α} [_inst_1 : Star.{u1} α], Eq.{succ u1} (Set.{u1} α) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α _inst_1) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) s)) (HasCompl.compl.{u1} (Set.{u1} α) (BooleanAlgebra.toHasCompl.{u1} (Set.{u1} α) (Set.instBooleanAlgebraSet.{u1} α)) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α _inst_1) s))
-Case conversion may be inaccurate. Consider using '#align set.compl_star Set.compl_starₓ'. -/
@[simp]
theorem compl_star [Star α] : (sᶜ)⋆ = s⋆ᶜ :=
preimage_compl
@@ -179,23 +161,11 @@ theorem star_singleton {β : Type _} [InvolutiveStar β] (x : β) : ({x} : Set
#align set.star_singleton Set.star_singleton
-/
-/- warning: set.star_mul -> Set.star_mul is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : Monoid.{u1} α] [_inst_2 : StarSemigroup.{u1} α (Monoid.toSemigroup.{u1} α _inst_1)] (s : Set.{u1} α) (t : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarSemigroup.toHasInvolutiveStar.{u1} α (Monoid.toSemigroup.{u1} α _inst_1) _inst_2))) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) s t)) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarSemigroup.toHasInvolutiveStar.{u1} α (Monoid.toSemigroup.{u1} α _inst_1) _inst_2))) t) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarSemigroup.toHasInvolutiveStar.{u1} α (Monoid.toSemigroup.{u1} α _inst_1) _inst_2))) s))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : Monoid.{u1} α] [_inst_2 : StarSemigroup.{u1} α (Monoid.toSemigroup.{u1} α _inst_1)] (s : Set.{u1} α) (t : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toStar.{u1} α (StarSemigroup.toInvolutiveStar.{u1} α (Monoid.toSemigroup.{u1} α _inst_1) _inst_2))) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) s t)) (HMul.hMul.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHMul.{u1} (Set.{u1} α) (Set.mul.{u1} α (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toStar.{u1} α (StarSemigroup.toInvolutiveStar.{u1} α (Monoid.toSemigroup.{u1} α _inst_1) _inst_2))) t) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toStar.{u1} α (StarSemigroup.toInvolutiveStar.{u1} α (Monoid.toSemigroup.{u1} α _inst_1) _inst_2))) s))
-Case conversion may be inaccurate. Consider using '#align set.star_mul Set.star_mulₓ'. -/
protected theorem star_mul [Monoid α] [StarSemigroup α] (s t : Set α) : (s * t)⋆ = t⋆ * s⋆ := by
simp_rw [← image_star, ← image2_mul, image_image2, image2_image_left, image2_image_right,
star_mul, image2_swap _ s t]
#align set.star_mul Set.star_mul
-/- warning: set.star_add -> Set.star_add is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : AddMonoid.{u1} α] [_inst_2 : StarAddMonoid.{u1} α _inst_1] (s : Set.{u1} α) (t : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α _inst_1 _inst_2))) (HAdd.hAdd.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHAdd.{u1} (Set.{u1} α) (Set.add.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α _inst_1)))) s t)) (HAdd.hAdd.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHAdd.{u1} (Set.{u1} α) (Set.add.{u1} α (AddZeroClass.toHasAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α _inst_1)))) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α _inst_1 _inst_2))) s) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α _inst_1 _inst_2))) t))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : AddMonoid.{u1} α] [_inst_2 : StarAddMonoid.{u1} α _inst_1] (s : Set.{u1} α) (t : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toStar.{u1} α (StarAddMonoid.toInvolutiveStar.{u1} α _inst_1 _inst_2))) (HAdd.hAdd.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHAdd.{u1} (Set.{u1} α) (Set.add.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α _inst_1)))) s t)) (HAdd.hAdd.{u1, u1, u1} (Set.{u1} α) (Set.{u1} α) (Set.{u1} α) (instHAdd.{u1} (Set.{u1} α) (Set.add.{u1} α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α _inst_1)))) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toStar.{u1} α (StarAddMonoid.toInvolutiveStar.{u1} α _inst_1 _inst_2))) s) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toStar.{u1} α (StarAddMonoid.toInvolutiveStar.{u1} α _inst_1 _inst_2))) t))
-Case conversion may be inaccurate. Consider using '#align set.star_add Set.star_addₓ'. -/
protected theorem star_add [AddMonoid α] [StarAddMonoid α] (s t : Set α) : (s + t)⋆ = s⋆ + t⋆ := by
simp_rw [← image_star, ← image2_add, image_image2, image2_image_left, image2_image_right,
star_add]
@@ -205,22 +175,10 @@ protected theorem star_add [AddMonoid α] [StarAddMonoid α] (s t : Set α) : (s
instance [Star α] [TrivialStar α] : TrivialStar (Set α)
where star_trivial s := by rw [← star_preimage]; ext1; simp [star_trivial]
-/- warning: set.star_inv -> Set.star_inv is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] [_inst_2 : StarSemigroup.{u1} α (Monoid.toSemigroup.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)))] (s : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarSemigroup.toHasInvolutiveStar.{u1} α (Monoid.toSemigroup.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))) _inst_2))) (Inv.inv.{u1} (Set.{u1} α) (Set.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))) s)) (Inv.inv.{u1} (Set.{u1} α) (Set.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarSemigroup.toHasInvolutiveStar.{u1} α (Monoid.toSemigroup.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))) _inst_2))) s))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] [_inst_2 : StarSemigroup.{u1} α (Monoid.toSemigroup.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)))] (s : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toStar.{u1} α (StarSemigroup.toInvolutiveStar.{u1} α (Monoid.toSemigroup.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))) _inst_2))) (Inv.inv.{u1} (Set.{u1} α) (Set.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_1))))) s)) (Inv.inv.{u1} (Set.{u1} α) (Set.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_1))))) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toStar.{u1} α (StarSemigroup.toInvolutiveStar.{u1} α (Monoid.toSemigroup.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))) _inst_2))) s))
-Case conversion may be inaccurate. Consider using '#align set.star_inv Set.star_invₓ'. -/
protected theorem star_inv [Group α] [StarSemigroup α] (s : Set α) : s⁻¹⋆ = s⋆⁻¹ := by ext;
simp only [mem_star, mem_inv, star_inv]
#align set.star_inv Set.star_inv
-/- warning: set.star_inv' -> Set.star_inv' is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : DivisionSemiring.{u1} α] [_inst_2 : StarRing.{u1} α (Semiring.toNonUnitalSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1))] (s : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonUnitalSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1))))) (StarRing.toStarAddMonoid.{u1} α (Semiring.toNonUnitalSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1)) _inst_2)))) (Inv.inv.{u1} (Set.{u1} α) (Set.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (GroupWithZero.toDivInvMonoid.{u1} α (DivisionSemiring.toGroupWithZero.{u1} α _inst_1)))) s)) (Inv.inv.{u1} (Set.{u1} α) (Set.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (GroupWithZero.toDivInvMonoid.{u1} α (DivisionSemiring.toGroupWithZero.{u1} α _inst_1)))) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonUnitalSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1))))) (StarRing.toStarAddMonoid.{u1} α (Semiring.toNonUnitalSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1)) _inst_2)))) s))
-but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : DivisionSemiring.{u1} α] [_inst_2 : StarRing.{u1} α (Semiring.toNonUnitalSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1))] (s : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toStar.{u1} α (StarAddMonoid.toInvolutiveStar.{u1} α (AddMonoidWithOne.toAddMonoid.{u1} α (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} α (NonAssocSemiring.toAddCommMonoidWithOne.{u1} α (Semiring.toNonAssocSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1))))) (StarRing.toStarAddMonoid.{u1} α (Semiring.toNonUnitalSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1)) _inst_2)))) (Inv.inv.{u1} (Set.{u1} α) (Set.inv.{u1} α (DivisionSemiring.toInv.{u1} α _inst_1)) s)) (Inv.inv.{u1} (Set.{u1} α) (Set.inv.{u1} α (DivisionSemiring.toInv.{u1} α _inst_1)) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toStar.{u1} α (StarAddMonoid.toInvolutiveStar.{u1} α (AddMonoidWithOne.toAddMonoid.{u1} α (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} α (NonAssocSemiring.toAddCommMonoidWithOne.{u1} α (Semiring.toNonAssocSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1))))) (StarRing.toStarAddMonoid.{u1} α (Semiring.toNonUnitalSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1)) _inst_2)))) s))
-Case conversion may be inaccurate. Consider using '#align set.star_inv' Set.star_inv'ₓ'. -/
protected theorem star_inv' [DivisionSemiring α] [StarRing α] (s : Set α) : s⁻¹⋆ = s⋆⁻¹ := by ext;
simp only [mem_star, mem_inv, star_inv']
#align set.star_inv' Set.star_inv'
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -96,9 +96,7 @@ theorem star_preimage [Star α] : Star.star ⁻¹' s = s⋆ :=
#print Set.image_star /-
@[simp]
-theorem image_star [InvolutiveStar α] : Star.star '' s = s⋆ :=
- by
- simp only [← star_preimage]
+theorem image_star [InvolutiveStar α] : Star.star '' s = s⋆ := by simp only [← star_preimage];
rw [image_eq_preimage_of_inverse] <;> intro <;> simp only [star_star]
#align set.image_star Set.image_star
-/
@@ -176,9 +174,7 @@ theorem Finite.star [InvolutiveStar α] {s : Set α} (hs : s.Finite) : s⋆.Fini
-/
#print Set.star_singleton /-
-theorem star_singleton {β : Type _} [InvolutiveStar β] (x : β) : ({x} : Set β)⋆ = {x⋆} :=
- by
- ext1 y
+theorem star_singleton {β : Type _} [InvolutiveStar β] (x : β) : ({x} : Set β)⋆ = {x⋆} := by ext1 y;
rw [mem_star, mem_singleton_iff, mem_singleton_iff, star_eq_iff_star_eq, eq_comm]
#align set.star_singleton Set.star_singleton
-/
@@ -207,10 +203,7 @@ protected theorem star_add [AddMonoid α] [StarAddMonoid α] (s t : Set α) : (s
@[simp]
instance [Star α] [TrivialStar α] : TrivialStar (Set α)
- where star_trivial s := by
- rw [← star_preimage]
- ext1
- simp [star_trivial]
+ where star_trivial s := by rw [← star_preimage]; ext1; simp [star_trivial]
/- warning: set.star_inv -> Set.star_inv is a dubious translation:
lean 3 declaration is
@@ -218,9 +211,7 @@ lean 3 declaration is
but is expected to have type
forall {α : Type.{u1}} [_inst_1 : Group.{u1} α] [_inst_2 : StarSemigroup.{u1} α (Monoid.toSemigroup.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1)))] (s : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toStar.{u1} α (StarSemigroup.toInvolutiveStar.{u1} α (Monoid.toSemigroup.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))) _inst_2))) (Inv.inv.{u1} (Set.{u1} α) (Set.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_1))))) s)) (Inv.inv.{u1} (Set.{u1} α) (Set.inv.{u1} α (InvOneClass.toInv.{u1} α (DivInvOneMonoid.toInvOneClass.{u1} α (DivisionMonoid.toDivInvOneMonoid.{u1} α (Group.toDivisionMonoid.{u1} α _inst_1))))) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toStar.{u1} α (StarSemigroup.toInvolutiveStar.{u1} α (Monoid.toSemigroup.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))) _inst_2))) s))
Case conversion may be inaccurate. Consider using '#align set.star_inv Set.star_invₓ'. -/
-protected theorem star_inv [Group α] [StarSemigroup α] (s : Set α) : s⁻¹⋆ = s⋆⁻¹ :=
- by
- ext
+protected theorem star_inv [Group α] [StarSemigroup α] (s : Set α) : s⁻¹⋆ = s⋆⁻¹ := by ext;
simp only [mem_star, mem_inv, star_inv]
#align set.star_inv Set.star_inv
@@ -230,9 +221,7 @@ lean 3 declaration is
but is expected to have type
forall {α : Type.{u1}} [_inst_1 : DivisionSemiring.{u1} α] [_inst_2 : StarRing.{u1} α (Semiring.toNonUnitalSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1))] (s : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toStar.{u1} α (StarAddMonoid.toInvolutiveStar.{u1} α (AddMonoidWithOne.toAddMonoid.{u1} α (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} α (NonAssocSemiring.toAddCommMonoidWithOne.{u1} α (Semiring.toNonAssocSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1))))) (StarRing.toStarAddMonoid.{u1} α (Semiring.toNonUnitalSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1)) _inst_2)))) (Inv.inv.{u1} (Set.{u1} α) (Set.inv.{u1} α (DivisionSemiring.toInv.{u1} α _inst_1)) s)) (Inv.inv.{u1} (Set.{u1} α) (Set.inv.{u1} α (DivisionSemiring.toInv.{u1} α _inst_1)) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toStar.{u1} α (StarAddMonoid.toInvolutiveStar.{u1} α (AddMonoidWithOne.toAddMonoid.{u1} α (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} α (NonAssocSemiring.toAddCommMonoidWithOne.{u1} α (Semiring.toNonAssocSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1))))) (StarRing.toStarAddMonoid.{u1} α (Semiring.toNonUnitalSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1)) _inst_2)))) s))
Case conversion may be inaccurate. Consider using '#align set.star_inv' Set.star_inv'ₓ'. -/
-protected theorem star_inv' [DivisionSemiring α] [StarRing α] (s : Set α) : s⁻¹⋆ = s⋆⁻¹ :=
- by
- ext
+protected theorem star_inv' [DivisionSemiring α] [StarRing α] (s : Set α) : s⁻¹⋆ = s⋆⁻¹ := by ext;
simp only [mem_star, mem_inv, star_inv']
#align set.star_inv' Set.star_inv'
mathlib commit https://github.com/leanprover-community/mathlib/commit/e3fb84046afd187b710170887195d50bada934ee
@@ -125,18 +125,18 @@ theorem union_star [Star α] : (s ∪ t)⋆ = s⋆ ∪ t⋆ :=
preimage_union
#align set.union_star Set.union_star
-#print Set.interᵢ_star /-
+#print Set.iInter_star /-
@[simp]
-theorem interᵢ_star {ι : Sort _} [Star α] (s : ι → Set α) : (⋂ i, s i)⋆ = ⋂ i, (s i)⋆ :=
- preimage_interᵢ
-#align set.Inter_star Set.interᵢ_star
+theorem iInter_star {ι : Sort _} [Star α] (s : ι → Set α) : (⋂ i, s i)⋆ = ⋂ i, (s i)⋆ :=
+ preimage_iInter
+#align set.Inter_star Set.iInter_star
-/
-#print Set.unionᵢ_star /-
+#print Set.iUnion_star /-
@[simp]
-theorem unionᵢ_star {ι : Sort _} [Star α] (s : ι → Set α) : (⋃ i, s i)⋆ = ⋃ i, (s i)⋆ :=
- preimage_unionᵢ
-#align set.Union_star Set.unionᵢ_star
+theorem iUnion_star {ι : Sort _} [Star α] (s : ι → Set α) : (⋃ i, s i)⋆ = ⋃ i, (s i)⋆ :=
+ preimage_iUnion
+#align set.Union_star Set.iUnion_star
-/
/- warning: set.compl_star -> Set.compl_star is a dubious translation:
mathlib commit https://github.com/leanprover-community/mathlib/commit/55d771df074d0dd020139ee1cd4b95521422df9f
@@ -228,7 +228,7 @@ protected theorem star_inv [Group α] [StarSemigroup α] (s : Set α) : s⁻¹
lean 3 declaration is
forall {α : Type.{u1}} [_inst_1 : DivisionSemiring.{u1} α] [_inst_2 : StarRing.{u1} α (Semiring.toNonUnitalSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1))] (s : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonUnitalSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1))))) (StarRing.toStarAddMonoid.{u1} α (Semiring.toNonUnitalSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1)) _inst_2)))) (Inv.inv.{u1} (Set.{u1} α) (Set.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (GroupWithZero.toDivInvMonoid.{u1} α (DivisionSemiring.toGroupWithZero.{u1} α _inst_1)))) s)) (Inv.inv.{u1} (Set.{u1} α) (Set.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (GroupWithZero.toDivInvMonoid.{u1} α (DivisionSemiring.toGroupWithZero.{u1} α _inst_1)))) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonUnitalSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1))))) (StarRing.toStarAddMonoid.{u1} α (Semiring.toNonUnitalSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1)) _inst_2)))) s))
but is expected to have type
- forall {α : Type.{u1}} [_inst_1 : DivisionRing.{u1} α] [_inst_2 : StarRing.{u1} α (NonUnitalRing.toNonUnitalSemiring.{u1} α (Ring.toNonUnitalRing.{u1} α (DivisionRing.toRing.{u1} α _inst_1)))] (s : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toStar.{u1} α (StarAddMonoid.toInvolutiveStar.{u1} α (AddMonoidWithOne.toAddMonoid.{u1} α (AddGroupWithOne.toAddMonoidWithOne.{u1} α (Ring.toAddGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α _inst_1)))) (StarRing.toStarAddMonoid.{u1} α (NonUnitalRing.toNonUnitalSemiring.{u1} α (Ring.toNonUnitalRing.{u1} α (DivisionRing.toRing.{u1} α _inst_1))) _inst_2)))) (Inv.inv.{u1} (Set.{u1} α) (Set.inv.{u1} α (DivisionRing.toInv.{u1} α _inst_1)) s)) (Inv.inv.{u1} (Set.{u1} α) (Set.inv.{u1} α (DivisionRing.toInv.{u1} α _inst_1)) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toStar.{u1} α (StarAddMonoid.toInvolutiveStar.{u1} α (AddMonoidWithOne.toAddMonoid.{u1} α (AddGroupWithOne.toAddMonoidWithOne.{u1} α (Ring.toAddGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α _inst_1)))) (StarRing.toStarAddMonoid.{u1} α (NonUnitalRing.toNonUnitalSemiring.{u1} α (Ring.toNonUnitalRing.{u1} α (DivisionRing.toRing.{u1} α _inst_1))) _inst_2)))) s))
+ forall {α : Type.{u1}} [_inst_1 : DivisionSemiring.{u1} α] [_inst_2 : StarRing.{u1} α (Semiring.toNonUnitalSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1))] (s : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toStar.{u1} α (StarAddMonoid.toInvolutiveStar.{u1} α (AddMonoidWithOne.toAddMonoid.{u1} α (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} α (NonAssocSemiring.toAddCommMonoidWithOne.{u1} α (Semiring.toNonAssocSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1))))) (StarRing.toStarAddMonoid.{u1} α (Semiring.toNonUnitalSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1)) _inst_2)))) (Inv.inv.{u1} (Set.{u1} α) (Set.inv.{u1} α (DivisionSemiring.toInv.{u1} α _inst_1)) s)) (Inv.inv.{u1} (Set.{u1} α) (Set.inv.{u1} α (DivisionSemiring.toInv.{u1} α _inst_1)) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toStar.{u1} α (StarAddMonoid.toInvolutiveStar.{u1} α (AddMonoidWithOne.toAddMonoid.{u1} α (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} α (NonAssocSemiring.toAddCommMonoidWithOne.{u1} α (Semiring.toNonAssocSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1))))) (StarRing.toStarAddMonoid.{u1} α (Semiring.toNonUnitalSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1)) _inst_2)))) s))
Case conversion may be inaccurate. Consider using '#align set.star_inv' Set.star_inv'ₓ'. -/
protected theorem star_inv' [DivisionSemiring α] [StarRing α] (s : Set α) : s⁻¹⋆ = s⋆⁻¹ :=
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/02ba8949f486ebecf93fe7460f1ed0564b5e442c
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Jireh Loreaux
! This file was ported from Lean 3 source module algebra.star.pointwise
-! leanprover-community/mathlib commit 63f84d91dd847f50bae04a01071f3a5491934e36
+! leanprover-community/mathlib commit 30413fc89f202a090a54d78e540963ed3de0056e
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -226,11 +226,11 @@ protected theorem star_inv [Group α] [StarSemigroup α] (s : Set α) : s⁻¹
/- warning: set.star_inv' -> Set.star_inv' is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} [_inst_1 : DivisionRing.{u1} α] [_inst_2 : StarRing.{u1} α (NonUnitalRing.toNonUnitalSemiring.{u1} α (Ring.toNonUnitalRing.{u1} α (DivisionRing.toRing.{u1} α _inst_1)))] (s : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} α (NonUnitalRing.toNonUnitalSemiring.{u1} α (Ring.toNonUnitalRing.{u1} α (DivisionRing.toRing.{u1} α _inst_1)))))) (StarRing.toStarAddMonoid.{u1} α (NonUnitalRing.toNonUnitalSemiring.{u1} α (Ring.toNonUnitalRing.{u1} α (DivisionRing.toRing.{u1} α _inst_1))) _inst_2)))) (Inv.inv.{u1} (Set.{u1} α) (Set.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (DivisionRing.toDivInvMonoid.{u1} α _inst_1))) s)) (Inv.inv.{u1} (Set.{u1} α) (Set.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (DivisionRing.toDivInvMonoid.{u1} α _inst_1))) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} α (NonUnitalRing.toNonUnitalSemiring.{u1} α (Ring.toNonUnitalRing.{u1} α (DivisionRing.toRing.{u1} α _inst_1)))))) (StarRing.toStarAddMonoid.{u1} α (NonUnitalRing.toNonUnitalSemiring.{u1} α (Ring.toNonUnitalRing.{u1} α (DivisionRing.toRing.{u1} α _inst_1))) _inst_2)))) s))
+ forall {α : Type.{u1}} [_inst_1 : DivisionSemiring.{u1} α] [_inst_2 : StarRing.{u1} α (Semiring.toNonUnitalSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1))] (s : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonUnitalSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1))))) (StarRing.toStarAddMonoid.{u1} α (Semiring.toNonUnitalSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1)) _inst_2)))) (Inv.inv.{u1} (Set.{u1} α) (Set.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (GroupWithZero.toDivInvMonoid.{u1} α (DivisionSemiring.toGroupWithZero.{u1} α _inst_1)))) s)) (Inv.inv.{u1} (Set.{u1} α) (Set.inv.{u1} α (DivInvMonoid.toHasInv.{u1} α (GroupWithZero.toDivInvMonoid.{u1} α (DivisionSemiring.toGroupWithZero.{u1} α _inst_1)))) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toHasStar.{u1} α (StarAddMonoid.toHasInvolutiveStar.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonUnitalSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1))))) (StarRing.toStarAddMonoid.{u1} α (Semiring.toNonUnitalSemiring.{u1} α (DivisionSemiring.toSemiring.{u1} α _inst_1)) _inst_2)))) s))
but is expected to have type
forall {α : Type.{u1}} [_inst_1 : DivisionRing.{u1} α] [_inst_2 : StarRing.{u1} α (NonUnitalRing.toNonUnitalSemiring.{u1} α (Ring.toNonUnitalRing.{u1} α (DivisionRing.toRing.{u1} α _inst_1)))] (s : Set.{u1} α), Eq.{succ u1} (Set.{u1} α) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toStar.{u1} α (StarAddMonoid.toInvolutiveStar.{u1} α (AddMonoidWithOne.toAddMonoid.{u1} α (AddGroupWithOne.toAddMonoidWithOne.{u1} α (Ring.toAddGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α _inst_1)))) (StarRing.toStarAddMonoid.{u1} α (NonUnitalRing.toNonUnitalSemiring.{u1} α (Ring.toNonUnitalRing.{u1} α (DivisionRing.toRing.{u1} α _inst_1))) _inst_2)))) (Inv.inv.{u1} (Set.{u1} α) (Set.inv.{u1} α (DivisionRing.toInv.{u1} α _inst_1)) s)) (Inv.inv.{u1} (Set.{u1} α) (Set.inv.{u1} α (DivisionRing.toInv.{u1} α _inst_1)) (Star.star.{u1} (Set.{u1} α) (Set.star.{u1} α (InvolutiveStar.toStar.{u1} α (StarAddMonoid.toInvolutiveStar.{u1} α (AddMonoidWithOne.toAddMonoid.{u1} α (AddGroupWithOne.toAddMonoidWithOne.{u1} α (Ring.toAddGroupWithOne.{u1} α (DivisionRing.toRing.{u1} α _inst_1)))) (StarRing.toStarAddMonoid.{u1} α (NonUnitalRing.toNonUnitalSemiring.{u1} α (Ring.toNonUnitalRing.{u1} α (DivisionRing.toRing.{u1} α _inst_1))) _inst_2)))) s))
Case conversion may be inaccurate. Consider using '#align set.star_inv' Set.star_inv'ₓ'. -/
-protected theorem star_inv' [DivisionRing α] [StarRing α] (s : Set α) : s⁻¹⋆ = s⋆⁻¹ :=
+protected theorem star_inv' [DivisionSemiring α] [StarRing α] (s : Set α) : s⁻¹⋆ = s⋆⁻¹ :=
by
ext
simp only [mem_star, mem_inv, star_inv']
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
A mix of various changes; generated with a script and manually tweaked.
@@ -30,7 +30,7 @@ local postfix:max "⋆" => star
variable {α : Type*} {s t : Set α} {a : α}
-/-- The set `(star s : Set α)` is defined as `{x | star x ∈ s}` in locale `pointwise`.
+/-- The set `(star s : Set α)` is defined as `{x | star x ∈ s}` in the locale `Pointwise`.
In the usual case where `star` is involutive, it is equal to `{star s | x ∈ s}`, see
`Set.image_star`. -/
protected def star [Star α] : Star (Set α) := ⟨preimage Star.star⟩
Typically a * operation on a mathematical structure R
equipped with a multiplication is an involutive anti-automorphism i.e.
∀ r s : R, star (r * s) = star s * star r
Currently mathlib defines a class StarSemigroup
to be a semigroup satisfying this property. However, the requirement for the multiplication to be associative is unnecessarily restrictive. There are important classes of star-algebra which are not associative (e.g. JB*-algebras).
This PR removes the requirement for a StarSemigroup
to be a semigroup, merely requiring it to have a multiplication.
I've changed the name from StarSemigroup
to StarMul
since it's no longer a semigroup.
Previously opened as a mathlib PR https://github.com/leanprover-community/mathlib/pull/17949
Co-authored-by: Christopher Hoskin <mans0954@users.noreply.github.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@@ -117,7 +117,7 @@ theorem star_singleton {β : Type*} [InvolutiveStar β] (x : β) : ({x} : Set β
rw [mem_star, mem_singleton_iff, mem_singleton_iff, star_eq_iff_star_eq, eq_comm]
#align set.star_singleton Set.star_singleton
-protected theorem star_mul [Monoid α] [StarSemigroup α] (s t : Set α) : (s * t)⋆ = t⋆ * s⋆ := by
+protected theorem star_mul [Mul α] [StarMul α] (s t : Set α) : (s * t)⋆ = t⋆ * s⋆ := by
simp_rw [← image_star, ← image2_mul, image_image2, image2_image_left, image2_image_right,
star_mul, image2_swap _ s t]
#align set.star_mul Set.star_mul
@@ -134,7 +134,7 @@ instance [Star α] [TrivialStar α] : TrivialStar (Set α) where
ext1
simp [star_trivial]
-protected theorem star_inv [Group α] [StarSemigroup α] (s : Set α) : s⁻¹⋆ = s⋆⁻¹ := by
+protected theorem star_inv [Group α] [StarMul α] (s : Set α) : s⁻¹⋆ = s⋆⁻¹ := by
ext
simp only [mem_star, mem_inv, star_inv]
#align set.star_inv Set.star_inv
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -28,7 +28,7 @@ open Pointwise
local postfix:max "⋆" => star
-variable {α : Type _} {s t : Set α} {a : α}
+variable {α : Type*} {s t : Set α} {a : α}
/-- The set `(star s : Set α)` is defined as `{x | star x ∈ s}` in locale `pointwise`.
In the usual case where `star` is involutive, it is equal to `{star s | x ∈ s}`, see
@@ -81,12 +81,12 @@ theorem union_star [Star α] : (s ∪ t)⋆ = s⋆ ∪ t⋆ := preimage_union
#align set.union_star Set.union_star
@[simp]
-theorem iInter_star {ι : Sort _} [Star α] (s : ι → Set α) : (⋂ i, s i)⋆ = ⋂ i, (s i)⋆ :=
+theorem iInter_star {ι : Sort*} [Star α] (s : ι → Set α) : (⋂ i, s i)⋆ = ⋂ i, (s i)⋆ :=
preimage_iInter
#align set.Inter_star Set.iInter_star
@[simp]
-theorem iUnion_star {ι : Sort _} [Star α] (s : ι → Set α) : (⋃ i, s i)⋆ = ⋃ i, (s i)⋆ :=
+theorem iUnion_star {ι : Sort*} [Star α] (s : ι → Set α) : (⋃ i, s i)⋆ = ⋃ i, (s i)⋆ :=
preimage_iUnion
#align set.Union_star Set.iUnion_star
@@ -112,7 +112,7 @@ theorem Finite.star [InvolutiveStar α] {s : Set α} (hs : s.Finite) : s⋆.Fini
hs.preimage <| star_injective.injOn _
#align set.finite.star Set.Finite.star
-theorem star_singleton {β : Type _} [InvolutiveStar β] (x : β) : ({x} : Set β)⋆ = {x⋆} := by
+theorem star_singleton {β : Type*} [InvolutiveStar β] (x : β) : ({x} : Set β)⋆ = {x⋆} := by
ext1 y
rw [mem_star, mem_singleton_iff, mem_singleton_iff, star_eq_iff_star_eq, eq_comm]
#align set.star_singleton Set.star_singleton
@@ -147,7 +147,7 @@ protected theorem star_inv' [DivisionSemiring α] [StarRing α] (s : Set α) : s
end Set
@[simp]
-lemma StarMemClass.star_coe_eq {S α : Type _} [InvolutiveStar α] [SetLike S α]
+lemma StarMemClass.star_coe_eq {S α : Type*} [InvolutiveStar α] [SetLike S α]
[StarMemClass S α] (s : S) : star (s : Set α) = s := by
ext x
simp only [Set.mem_star, SetLike.mem_coe]
@@ -2,16 +2,13 @@
Copyright (c) 2022 Jireh Loreaux. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Jireh Loreaux
-
-! This file was ported from Lean 3 source module algebra.star.pointwise
-! leanprover-community/mathlib commit 30413fc89f202a090a54d78e540963ed3de0056e
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Algebra.Star.Basic
import Mathlib.Data.Set.Finite
import Mathlib.Data.Set.Pointwise.Basic
+#align_import algebra.star.pointwise from "leanprover-community/mathlib"@"30413fc89f202a090a54d78e540963ed3de0056e"
+
/-!
# Pointwise star operation on sets
NonUnitalStarSubalgebra
s and develop basic API (#5537)
This continues the non-unital-ization of mathlib
This PR also redefines StarSubalgebra.centralizer
so that it no longer requires the set s
provided to be closed under star
, and instead the carrier is just the Set.centralizer (s ∪ star s)
. Consequently, this changes some things in von Neumann algebras, where we now need to see that Set.centralizer (↑S ∪ star ↑S) = Set.centralizer ↑S
, where S
is a StarSubalgebra
. Therefore we add the simp
lemma StarMemClass.star_coe_eq
.
@@ -148,3 +148,10 @@ protected theorem star_inv' [DivisionSemiring α] [StarRing α] (s : Set α) : s
#align set.star_inv' Set.star_inv'
end Set
+
+@[simp]
+lemma StarMemClass.star_coe_eq {S α : Type _} [InvolutiveStar α] [SetLike S α]
+ [StarMemClass S α] (s : S) : star (s : Set α) = s := by
+ ext x
+ simp only [Set.mem_star, SetLike.mem_coe]
+ exact ⟨by simpa only [star_star] using star_mem (s := s) (r := star x), star_mem⟩
@@ -94,7 +94,7 @@ theorem iUnion_star {ι : Sort _} [Star α] (s : ι → Set α) : (⋃ i, s i)
#align set.Union_star Set.iUnion_star
@[simp]
-theorem compl_star [Star α] : (sᶜ)⋆ = s⋆ᶜ := preimage_compl
+theorem compl_star [Star α] : sᶜ⋆ = s⋆ᶜ := preimage_compl
#align set.compl_star Set.compl_star
@[simp]
compile_inductive%
and compile_def%
commands (#4097)
Add a #compile inductive
command to compile the recursors of an inductive type, which works by creating a recursive definition and using @[csimp]
.
Co-authored-by: Parth Shastri <31370288+cppio@users.noreply.github.com> Co-authored-by: Mario Carneiro <di.gama@gmail.com>
@@ -97,10 +97,8 @@ theorem iUnion_star {ι : Sort _} [Star α] (s : ι → Set α) : (⋃ i, s i)
theorem compl_star [Star α] : (sᶜ)⋆ = s⋆ᶜ := preimage_compl
#align set.compl_star Set.compl_star
--- Porting note: add noncomputable to instance
@[simp]
-noncomputable instance [InvolutiveStar α] : InvolutiveStar (Set α)
- where
+instance [InvolutiveStar α] : InvolutiveStar (Set α) where
star := Star.star
star_involutive s := by simp only [← star_preimage, preimage_preimage, star_star, preimage_id']
sSup
/iSup
(#3938)
As discussed on Zulip
supₛ
→ sSup
infₛ
→ sInf
supᵢ
→ iSup
infᵢ
→ iInf
bsupₛ
→ bsSup
binfₛ
→ bsInf
bsupᵢ
→ biSup
binfᵢ
→ biInf
csupₛ
→ csSup
cinfₛ
→ csInf
csupᵢ
→ ciSup
cinfᵢ
→ ciInf
unionₛ
→ sUnion
interₛ
→ sInter
unionᵢ
→ iUnion
interᵢ
→ iInter
bunionₛ
→ bsUnion
binterₛ
→ bsInter
bunionᵢ
→ biUnion
binterᵢ
→ biInter
Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>
@@ -84,14 +84,14 @@ theorem union_star [Star α] : (s ∪ t)⋆ = s⋆ ∪ t⋆ := preimage_union
#align set.union_star Set.union_star
@[simp]
-theorem interᵢ_star {ι : Sort _} [Star α] (s : ι → Set α) : (⋂ i, s i)⋆ = ⋂ i, (s i)⋆ :=
- preimage_interᵢ
-#align set.Inter_star Set.interᵢ_star
+theorem iInter_star {ι : Sort _} [Star α] (s : ι → Set α) : (⋂ i, s i)⋆ = ⋂ i, (s i)⋆ :=
+ preimage_iInter
+#align set.Inter_star Set.iInter_star
@[simp]
-theorem unionᵢ_star {ι : Sort _} [Star α] (s : ι → Set α) : (⋃ i, s i)⋆ = ⋃ i, (s i)⋆ :=
- preimage_unionᵢ
-#align set.Union_star Set.unionᵢ_star
+theorem iUnion_star {ι : Sort _} [Star α] (s : ι → Set α) : (⋃ i, s i)⋆ = ⋃ i, (s i)⋆ :=
+ preimage_iUnion
+#align set.Union_star Set.iUnion_star
@[simp]
theorem compl_star [Star α] : (sᶜ)⋆ = s⋆ᶜ := preimage_compl
This is a forward-port of https://github.com/leanprover-community/mathlib/pull/18597
Some notes:
algebra/star/self_adjoint
; I plan to re-port this file from scratch after https://github.com/leanprover-community/mathlib/pull/18565 lands. For now, I just add some hacks to keep it compiling.algebra/periodic
were made during porting, see https://github.com/leanprover-community/mathlib4/pull/1963/files/2a6b385f555c37f3eb5e4dd9c113e0a1b5f6b958..[578a6252](https://github.com/leanprover-community/mathlib/commit/578a6252973bcdbd1a6ce4fc0fe2791295cf80e4)#r1140354814. So there is nothing to do other than update the SHA.Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com>
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Jireh Loreaux
! This file was ported from Lean 3 source module algebra.star.pointwise
-! leanprover-community/mathlib commit 2445c98ae4b87eabebdde552593519b9b6dc350c
+! leanprover-community/mathlib commit 30413fc89f202a090a54d78e540963ed3de0056e
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -144,7 +144,7 @@ protected theorem star_inv [Group α] [StarSemigroup α] (s : Set α) : s⁻¹
simp only [mem_star, mem_inv, star_inv]
#align set.star_inv Set.star_inv
-protected theorem star_inv' [DivisionRing α] [StarRing α] (s : Set α) : s⁻¹⋆ = s⋆⁻¹ := by
+protected theorem star_inv' [DivisionSemiring α] [StarRing α] (s : Set α) : s⁻¹⋆ = s⋆⁻¹ := by
ext
simp only [mem_star, mem_inv, star_inv']
#align set.star_inv' Set.star_inv'
The unported dependencies are