algebra.module.pointwise_piMathlib.Algebra.Module.PointwisePi

This file has been ported!

Changes since the initial port

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

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2021 Alex J. Best. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Alex J. Best
 -/
-import Data.Set.Pointwise.Smul
+import Data.Set.Pointwise.SMul
 import GroupTheory.GroupAction.Pi
 
 #align_import algebra.module.pointwise_pi from "leanprover-community/mathlib"@"f2f413b9d4be3a02840d0663dace76e8fe3da053"
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2021 Alex J. Best. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Alex J. Best
 -/
-import Mathbin.Data.Set.Pointwise.Smul
-import Mathbin.GroupTheory.GroupAction.Pi
+import Data.Set.Pointwise.Smul
+import GroupTheory.GroupAction.Pi
 
 #align_import algebra.module.pointwise_pi from "leanprover-community/mathlib"@"f2f413b9d4be3a02840d0663dace76e8fe3da053"
 
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2021 Alex J. Best. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Alex J. Best
-
-! This file was ported from Lean 3 source module algebra.module.pointwise_pi
-! leanprover-community/mathlib commit f2f413b9d4be3a02840d0663dace76e8fe3da053
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Data.Set.Pointwise.Smul
 import Mathbin.GroupTheory.GroupAction.Pi
 
+#align_import algebra.module.pointwise_pi from "leanprover-community/mathlib"@"f2f413b9d4be3a02840d0663dace76e8fe3da053"
+
 /-!
 # Pointwise actions on sets in Pi types
 
Diff
@@ -32,6 +32,7 @@ open Set
 
 variable {K ι : Type _} {R : ι → Type _}
 
+#print smul_pi_subset /-
 @[to_additive]
 theorem smul_pi_subset [∀ i, SMul K (R i)] (r : K) (s : Set ι) (t : ∀ i, Set (R i)) :
     r • pi s t ⊆ pi s (r • t) := by
@@ -39,7 +40,9 @@ theorem smul_pi_subset [∀ i, SMul K (R i)] (r : K) (s : Set ι) (t : ∀ i, Se
   exact smul_mem_smul_set (h i hi)
 #align smul_pi_subset smul_pi_subset
 #align vadd_pi_subset vadd_pi_subset
+-/
 
+#print smul_univ_pi /-
 @[to_additive]
 theorem smul_univ_pi [∀ i, SMul K (R i)] (r : K) (t : ∀ i, Set (R i)) :
     r • pi (univ : Set ι) t = pi (univ : Set ι) (r • t) :=
@@ -50,7 +53,9 @@ theorem smul_univ_pi [∀ i, SMul K (R i)] (r : K) (t : ∀ i, Set (R i)) :
     · exact (Classical.choose_spec (h i _)).right
 #align smul_univ_pi smul_univ_pi
 #align vadd_univ_pi vadd_univ_pi
+-/
 
+#print smul_pi /-
 @[to_additive]
 theorem smul_pi [Group K] [∀ i, MulAction K (R i)] (r : K) (S : Set ι) (t : ∀ i, Set (R i)) :
     r • S.pi t = S.pi (r • t) :=
@@ -58,9 +63,12 @@ theorem smul_pi [Group K] [∀ i, MulAction K (R i)] (r : K) (S : Set ι) (t : 
     ⟨r⁻¹ • x, fun i hiS => mem_smul_set_iff_inv_smul_mem.mp (h i hiS), smul_inv_smul _ _⟩
 #align smul_pi smul_pi
 #align vadd_pi vadd_pi
+-/
 
+#print smul_pi₀ /-
 theorem smul_pi₀ [GroupWithZero K] [∀ i, MulAction K (R i)] {r : K} (S : Set ι) (t : ∀ i, Set (R i))
     (hr : r ≠ 0) : r • S.pi t = S.pi (r • t) :=
   smul_pi (Units.mk0 r hr) S t
 #align smul_pi₀ smul_pi₀
+-/
 
Diff
@@ -26,7 +26,7 @@ set multiplication, set addition, pointwise addition, pointwise multiplication,
 -/
 
 
-open Pointwise
+open scoped Pointwise
 
 open Set
 
Diff
@@ -32,12 +32,6 @@ open Set
 
 variable {K ι : Type _} {R : ι → Type _}
 
-/- warning: smul_pi_subset -> smul_pi_subset is a dubious translation:
-lean 3 declaration is
-  forall {K : Type.{u1}} {ι : Type.{u2}} {R : ι -> Type.{u3}} [_inst_1 : forall (i : ι), SMul.{u1, u3} K (R i)] (r : K) (s : Set.{u2} ι) (t : forall (i : ι), Set.{u3} (R i)), HasSubset.Subset.{max u2 u3} (Set.{max u2 u3} (forall (i : ι), R i)) (Set.hasSubset.{max u2 u3} (forall (i : ι), R i)) (SMul.smul.{u1, max u2 u3} K (Set.{max u2 u3} (forall (i : ι), R i)) (Set.smulSet.{u1, max u2 u3} K (forall (i : ι), R i) (Pi.instSMul.{u2, u3, u1} ι K (fun (i : ι) => R i) (fun (i : ι) => _inst_1 i))) r (Set.pi.{u2, u3} ι (fun (i : ι) => R i) s t)) (Set.pi.{u2, u3} ι (fun (i : ι) => R i) s (SMul.smul.{u1, max u2 u3} K (forall (i : ι), Set.{u3} (R i)) (Pi.instSMul.{u2, u3, u1} ι K (fun (i : ι) => Set.{u3} (R i)) (fun (i : ι) => Set.smulSet.{u1, u3} K (R i) (_inst_1 i))) r t))
-but is expected to have type
-  forall {K : Type.{u3}} {ι : Type.{u1}} {R : ι -> Type.{u2}} [_inst_1 : forall (i : ι), SMul.{u3, u2} K (R i)] (r : K) (s : Set.{u1} ι) (t : forall (i : ι), Set.{u2} (R i)), HasSubset.Subset.{max u1 u2} (Set.{max u1 u2} (forall (i : ι), R i)) (Set.instHasSubsetSet.{max u1 u2} (forall (i : ι), R i)) (HSMul.hSMul.{u3, max u2 u1, max u1 u2} K (Set.{max u1 u2} (forall (i : ι), R i)) (Set.{max u1 u2} (forall (i : ι), R i)) (instHSMul.{u3, max u1 u2} K (Set.{max u1 u2} (forall (i : ι), R i)) (Set.smulSet.{u3, max u1 u2} K (forall (i : ι), R i) (Pi.instSMul.{u1, u2, u3} ι K (fun (i : ι) => R i) (fun (i : ι) => _inst_1 i)))) r (Set.pi.{u1, u2} ι (fun (i : ι) => R i) s t)) (Set.pi.{u1, u2} ι (fun (i : ι) => R i) s (HSMul.hSMul.{u3, max u1 u2, max u1 u2} K (forall (i : ι), Set.{u2} (R i)) (forall (i : ι), Set.{u2} (R i)) (instHSMul.{u3, max u1 u2} K (forall (i : ι), Set.{u2} (R i)) (Pi.instSMul.{u1, u2, u3} ι K (fun (i : ι) => Set.{u2} (R i)) (fun (i : ι) => Set.smulSet.{u3, u2} K (R i) (_inst_1 i)))) r t))
-Case conversion may be inaccurate. Consider using '#align smul_pi_subset smul_pi_subsetₓ'. -/
 @[to_additive]
 theorem smul_pi_subset [∀ i, SMul K (R i)] (r : K) (s : Set ι) (t : ∀ i, Set (R i)) :
     r • pi s t ⊆ pi s (r • t) := by
@@ -46,12 +40,6 @@ theorem smul_pi_subset [∀ i, SMul K (R i)] (r : K) (s : Set ι) (t : ∀ i, Se
 #align smul_pi_subset smul_pi_subset
 #align vadd_pi_subset vadd_pi_subset
 
-/- warning: smul_univ_pi -> smul_univ_pi is a dubious translation:
-lean 3 declaration is
-  forall {K : Type.{u1}} {ι : Type.{u2}} {R : ι -> Type.{u3}} [_inst_1 : forall (i : ι), SMul.{u1, u3} K (R i)] (r : K) (t : forall (i : ι), Set.{u3} (R i)), Eq.{succ (max u2 u3)} (Set.{max u2 u3} (forall (i : ι), R i)) (SMul.smul.{u1, max u2 u3} K (Set.{max u2 u3} (forall (i : ι), R i)) (Set.smulSet.{u1, max u2 u3} K (forall (i : ι), R i) (Pi.instSMul.{u2, u3, u1} ι K (fun (i : ι) => R i) (fun (i : ι) => _inst_1 i))) r (Set.pi.{u2, u3} ι (fun (i : ι) => R i) (Set.univ.{u2} ι) t)) (Set.pi.{u2, u3} ι (fun (i : ι) => R i) (Set.univ.{u2} ι) (SMul.smul.{u1, max u2 u3} K (forall (i : ι), Set.{u3} (R i)) (Pi.instSMul.{u2, u3, u1} ι K (fun (i : ι) => Set.{u3} (R i)) (fun (i : ι) => Set.smulSet.{u1, u3} K (R i) (_inst_1 i))) r t))
-but is expected to have type
-  forall {K : Type.{u3}} {ι : Type.{u1}} {R : ι -> Type.{u2}} [_inst_1 : forall (i : ι), SMul.{u3, u2} K (R i)] (r : K) (t : forall (i : ι), Set.{u2} (R i)), Eq.{max (succ u1) (succ u2)} (Set.{max u1 u2} (forall (i : ι), R i)) (HSMul.hSMul.{u3, max u2 u1, max u1 u2} K (Set.{max u1 u2} (forall (i : ι), R i)) (Set.{max u1 u2} (forall (i : ι), R i)) (instHSMul.{u3, max u1 u2} K (Set.{max u1 u2} (forall (i : ι), R i)) (Set.smulSet.{u3, max u1 u2} K (forall (i : ι), R i) (Pi.instSMul.{u1, u2, u3} ι K (fun (i : ι) => R i) (fun (i : ι) => _inst_1 i)))) r (Set.pi.{u1, u2} ι (fun (i : ι) => R i) (Set.univ.{u1} ι) t)) (Set.pi.{u1, u2} ι (fun (i : ι) => R i) (Set.univ.{u1} ι) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} K (forall (i : ι), Set.{u2} (R i)) (forall (i : ι), Set.{u2} (R i)) (instHSMul.{u3, max u1 u2} K (forall (i : ι), Set.{u2} (R i)) (Pi.instSMul.{u1, u2, u3} ι K (fun (i : ι) => Set.{u2} (R i)) (fun (i : ι) => Set.smulSet.{u3, u2} K (R i) (_inst_1 i)))) r t))
-Case conversion may be inaccurate. Consider using '#align smul_univ_pi smul_univ_piₓ'. -/
 @[to_additive]
 theorem smul_univ_pi [∀ i, SMul K (R i)] (r : K) (t : ∀ i, Set (R i)) :
     r • pi (univ : Set ι) t = pi (univ : Set ι) (r • t) :=
@@ -63,12 +51,6 @@ theorem smul_univ_pi [∀ i, SMul K (R i)] (r : K) (t : ∀ i, Set (R i)) :
 #align smul_univ_pi smul_univ_pi
 #align vadd_univ_pi vadd_univ_pi
 
-/- warning: smul_pi -> smul_pi is a dubious translation:
-lean 3 declaration is
-  forall {K : Type.{u1}} {ι : Type.{u2}} {R : ι -> Type.{u3}} [_inst_1 : Group.{u1} K] [_inst_2 : forall (i : ι), MulAction.{u1, u3} K (R i) (DivInvMonoid.toMonoid.{u1} K (Group.toDivInvMonoid.{u1} K _inst_1))] (r : K) (S : Set.{u2} ι) (t : forall (i : ι), Set.{u3} (R i)), Eq.{succ (max u2 u3)} (Set.{max u2 u3} (forall (i : ι), R i)) (SMul.smul.{u1, max u2 u3} K (Set.{max u2 u3} (forall (i : ι), R i)) (Set.smulSet.{u1, max u2 u3} K (forall (i : ι), R i) (Pi.instSMul.{u2, u3, u1} ι K (fun (i : ι) => R i) (fun (i : ι) => MulAction.toHasSmul.{u1, u3} K (R i) (DivInvMonoid.toMonoid.{u1} K (Group.toDivInvMonoid.{u1} K _inst_1)) (_inst_2 i)))) r (Set.pi.{u2, u3} ι (fun (i : ι) => R i) S t)) (Set.pi.{u2, u3} ι (fun (i : ι) => R i) S (SMul.smul.{u1, max u2 u3} K (forall (i : ι), Set.{u3} (R i)) (Pi.instSMul.{u2, u3, u1} ι K (fun (i : ι) => Set.{u3} (R i)) (fun (i : ι) => Set.smulSet.{u1, u3} K (R i) (MulAction.toHasSmul.{u1, u3} K (R i) (DivInvMonoid.toMonoid.{u1} K (Group.toDivInvMonoid.{u1} K _inst_1)) (_inst_2 i)))) r t))
-but is expected to have type
-  forall {K : Type.{u3}} {ι : Type.{u1}} {R : ι -> Type.{u2}} [_inst_1 : Group.{u3} K] [_inst_2 : forall (i : ι), MulAction.{u3, u2} K (R i) (DivInvMonoid.toMonoid.{u3} K (Group.toDivInvMonoid.{u3} K _inst_1))] (r : K) (S : Set.{u1} ι) (t : forall (i : ι), Set.{u2} (R i)), Eq.{max (succ u1) (succ u2)} (Set.{max u1 u2} (forall (i : ι), R i)) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} K (Set.{max u1 u2} (forall (i : ι), R i)) (Set.{max u1 u2} (forall (i : ι), R i)) (instHSMul.{u3, max u1 u2} K (Set.{max u1 u2} (forall (i : ι), R i)) (Set.smulSet.{u3, max u1 u2} K (forall (i : ι), R i) (Pi.instSMul.{u1, u2, u3} ι K (fun (i : ι) => R i) (fun (i : ι) => MulAction.toSMul.{u3, u2} K (R i) (DivInvMonoid.toMonoid.{u3} K (Group.toDivInvMonoid.{u3} K _inst_1)) (_inst_2 i))))) r (Set.pi.{u1, u2} ι (fun (i : ι) => R i) S t)) (Set.pi.{u1, u2} ι (fun (i : ι) => R i) S (HSMul.hSMul.{u3, max u1 u2, max u1 u2} K (forall (i : ι), Set.{u2} (R i)) (forall (i : ι), Set.{u2} (R i)) (instHSMul.{u3, max u1 u2} K (forall (i : ι), Set.{u2} (R i)) (Pi.instSMul.{u1, u2, u3} ι K (fun (i : ι) => Set.{u2} (R i)) (fun (i : ι) => Set.smulSet.{u3, u2} K (R i) (MulAction.toSMul.{u3, u2} K (R i) (DivInvMonoid.toMonoid.{u3} K (Group.toDivInvMonoid.{u3} K _inst_1)) (_inst_2 i))))) r t))
-Case conversion may be inaccurate. Consider using '#align smul_pi smul_piₓ'. -/
 @[to_additive]
 theorem smul_pi [Group K] [∀ i, MulAction K (R i)] (r : K) (S : Set ι) (t : ∀ i, Set (R i)) :
     r • S.pi t = S.pi (r • t) :=
@@ -77,12 +59,6 @@ theorem smul_pi [Group K] [∀ i, MulAction K (R i)] (r : K) (S : Set ι) (t : 
 #align smul_pi smul_pi
 #align vadd_pi vadd_pi
 
-/- warning: smul_pi₀ -> smul_pi₀ is a dubious translation:
-lean 3 declaration is
-  forall {K : Type.{u1}} {ι : Type.{u2}} {R : ι -> Type.{u3}} [_inst_1 : GroupWithZero.{u1} K] [_inst_2 : forall (i : ι), MulAction.{u1, u3} K (R i) (MonoidWithZero.toMonoid.{u1} K (GroupWithZero.toMonoidWithZero.{u1} K _inst_1))] {r : K} (S : Set.{u2} ι) (t : forall (i : ι), Set.{u3} (R i)), (Ne.{succ u1} K r (OfNat.ofNat.{u1} K 0 (OfNat.mk.{u1} K 0 (Zero.zero.{u1} K (MulZeroClass.toHasZero.{u1} K (MulZeroOneClass.toMulZeroClass.{u1} K (MonoidWithZero.toMulZeroOneClass.{u1} K (GroupWithZero.toMonoidWithZero.{u1} K _inst_1)))))))) -> (Eq.{succ (max u2 u3)} (Set.{max u2 u3} (forall (i : ι), R i)) (SMul.smul.{u1, max u2 u3} K (Set.{max u2 u3} (forall (i : ι), R i)) (Set.smulSet.{u1, max u2 u3} K (forall (i : ι), R i) (Pi.instSMul.{u2, u3, u1} ι K (fun (i : ι) => R i) (fun (i : ι) => MulAction.toHasSmul.{u1, u3} K (R i) (MonoidWithZero.toMonoid.{u1} K (GroupWithZero.toMonoidWithZero.{u1} K _inst_1)) (_inst_2 i)))) r (Set.pi.{u2, u3} ι (fun (i : ι) => R i) S t)) (Set.pi.{u2, u3} ι (fun (i : ι) => R i) S (SMul.smul.{u1, max u2 u3} K (forall (i : ι), Set.{u3} (R i)) (Pi.instSMul.{u2, u3, u1} ι K (fun (i : ι) => Set.{u3} (R i)) (fun (i : ι) => Set.smulSet.{u1, u3} K (R i) (MulAction.toHasSmul.{u1, u3} K (R i) (MonoidWithZero.toMonoid.{u1} K (GroupWithZero.toMonoidWithZero.{u1} K _inst_1)) (_inst_2 i)))) r t)))
-but is expected to have type
-  forall {K : Type.{u3}} {ι : Type.{u1}} {R : ι -> Type.{u2}} [_inst_1 : GroupWithZero.{u3} K] [_inst_2 : forall (i : ι), MulAction.{u3, u2} K (R i) (MonoidWithZero.toMonoid.{u3} K (GroupWithZero.toMonoidWithZero.{u3} K _inst_1))] {r : K} (S : Set.{u1} ι) (t : forall (i : ι), Set.{u2} (R i)), (Ne.{succ u3} K r (OfNat.ofNat.{u3} K 0 (Zero.toOfNat0.{u3} K (MonoidWithZero.toZero.{u3} K (GroupWithZero.toMonoidWithZero.{u3} K _inst_1))))) -> (Eq.{max (succ u1) (succ u2)} (Set.{max u1 u2} (forall (i : ι), R i)) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} K (Set.{max u1 u2} (forall (i : ι), R i)) (Set.{max u1 u2} (forall (i : ι), R i)) (instHSMul.{u3, max u1 u2} K (Set.{max u1 u2} (forall (i : ι), R i)) (Set.smulSet.{u3, max u1 u2} K (forall (i : ι), R i) (Pi.instSMul.{u1, u2, u3} ι K (fun (i : ι) => R i) (fun (i : ι) => MulAction.toSMul.{u3, u2} K (R i) (MonoidWithZero.toMonoid.{u3} K (GroupWithZero.toMonoidWithZero.{u3} K _inst_1)) (_inst_2 i))))) r (Set.pi.{u1, u2} ι (fun (i : ι) => R i) S t)) (Set.pi.{u1, u2} ι (fun (i : ι) => R i) S (HSMul.hSMul.{u3, max u1 u2, max u1 u2} K (forall (i : ι), Set.{u2} (R i)) (forall (i : ι), Set.{u2} (R i)) (instHSMul.{u3, max u1 u2} K (forall (i : ι), Set.{u2} (R i)) (Pi.instSMul.{u1, u2, u3} ι K (fun (i : ι) => Set.{u2} (R i)) (fun (i : ι) => Set.smulSet.{u3, u2} K (R i) (MulAction.toSMul.{u3, u2} K (R i) (MonoidWithZero.toMonoid.{u3} K (GroupWithZero.toMonoidWithZero.{u3} K _inst_1)) (_inst_2 i))))) r t)))
-Case conversion may be inaccurate. Consider using '#align smul_pi₀ smul_pi₀ₓ'. -/
 theorem smul_pi₀ [GroupWithZero K] [∀ i, MulAction K (R i)] {r : K} (S : Set ι) (t : ∀ i, Set (R i))
     (hr : r ≠ 0) : r • S.pi t = S.pi (r • t) :=
   smul_pi (Units.mk0 r hr) S t

Changes in mathlib4

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

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

This has nice performance benefits.

Diff
@@ -23,7 +23,7 @@ open Pointwise
 
 open Set
 
-variable {K ι : Type _} {R : ι → Type _}
+variable {K ι : Type*} {R : ι → Type*}
 
 @[to_additive]
 theorem smul_pi_subset [∀ i, SMul K (R i)] (r : K) (s : Set ι) (t : ∀ i, Set (R i)) :
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2021 Alex J. Best. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Alex J. Best
-
-! This file was ported from Lean 3 source module algebra.module.pointwise_pi
-! leanprover-community/mathlib commit 9003f28797c0664a49e4179487267c494477d853
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Data.Set.Pointwise.SMul
 import Mathlib.GroupTheory.GroupAction.Pi
 
+#align_import algebra.module.pointwise_pi from "leanprover-community/mathlib"@"9003f28797c0664a49e4179487267c494477d853"
+
 /-!
 # Pointwise actions on sets in Pi types
 
chore: bye-bye, solo bys! (#3825)

This PR puts, with one exception, every single remaining by that lies all by itself on its own line to the previous line, thus matching the current behaviour of start-port.sh. The exception is when the by begins the second or later argument to a tuple or anonymous constructor; see https://github.com/leanprover-community/mathlib4/pull/3825#discussion_r1186702599.

Essentially this is s/\n *by$/ by/g, but with manual editing to satisfy the linter's max-100-char-line requirement. The Python style linter is also modified to catch these "isolated bys".

Diff
@@ -40,8 +40,7 @@ theorem smul_pi_subset [∀ i, SMul K (R i)] (r : K) (s : Set ι) (t : ∀ i, Se
 @[to_additive]
 theorem smul_univ_pi [∀ i, SMul K (R i)] (r : K) (t : ∀ i, Set (R i)) :
     r • pi (univ : Set ι) t = pi (univ : Set ι) (r • t) :=
-  (Subset.antisymm (smul_pi_subset _ _ _)) fun x h ↦
-    by
+  (Subset.antisymm (smul_pi_subset _ _ _)) fun x h ↦ by
     refine' ⟨fun i ↦ Classical.choose (h i <| Set.mem_univ _), fun i _ ↦ _, funext fun i ↦ _⟩
     · exact (Classical.choose_spec (h i <| Set.mem_univ i)).left
     · exact (Classical.choose_spec (h i <| Set.mem_univ i)).right
chore: add #align statements for to_additive decls (#1816)

Co-authored-by: Floris van Doorn <fpvdoorn@gmail.com>

Diff
@@ -34,6 +34,7 @@ theorem smul_pi_subset [∀ i, SMul K (R i)] (r : K) (s : Set ι) (t : ∀ i, Se
   rintro x ⟨y, h, rfl⟩ i hi
   exact smul_mem_smul_set (h i hi)
 #align smul_pi_subset smul_pi_subset
+#align vadd_pi_subset vadd_pi_subset
 
 -- Porting note: Lean 4 can't synthesize `Set.mem_univ i`?
 @[to_additive]
@@ -45,6 +46,7 @@ theorem smul_univ_pi [∀ i, SMul K (R i)] (r : K) (t : ∀ i, Set (R i)) :
     · exact (Classical.choose_spec (h i <| Set.mem_univ i)).left
     · exact (Classical.choose_spec (h i <| Set.mem_univ i)).right
 #align smul_univ_pi smul_univ_pi
+#align vadd_univ_pi vadd_univ_pi
 
 @[to_additive]
 theorem smul_pi [Group K] [∀ i, MulAction K (R i)] (r : K) (S : Set ι) (t : ∀ i, Set (R i)) :
@@ -52,6 +54,7 @@ theorem smul_pi [Group K] [∀ i, MulAction K (R i)] (r : K) (S : Set ι) (t : 
   (Subset.antisymm (smul_pi_subset _ _ _)) fun x h ↦
     ⟨r⁻¹ • x, fun i hiS ↦ mem_smul_set_iff_inv_smul_mem.mp (h i hiS), smul_inv_smul _ _⟩
 #align smul_pi smul_pi
+#align vadd_pi vadd_pi
 
 theorem smul_pi₀ [GroupWithZero K] [∀ i, MulAction K (R i)] {r : K} (S : Set ι) (t : ∀ i, Set (R i))
     (hr : r ≠ 0) : r • S.pi t = S.pi (r • t) :=
feat: port Algebra.Module.PointwisePi (#1557)

Dependencies 3 + 157

158 files ported (98.1%)
65358 lines ported (98.4%)
Show graph

The unported dependencies are