Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master' into finite-colimits-of-…
Browse files Browse the repository at this point in the history
…filtered
  • Loading branch information
TwoFX committed Oct 28, 2024
2 parents 1f02852 + 3458918 commit d81177a
Show file tree
Hide file tree
Showing 27 changed files with 1,090 additions and 50 deletions.
4 changes: 4 additions & 0 deletions Mathlib.lean
Original file line number Diff line number Diff line change
Expand Up @@ -1005,6 +1005,7 @@ import Mathlib.Analysis.CStarAlgebra.Classes
import Mathlib.Analysis.CStarAlgebra.ContinuousFunctionalCalculus.Basic
import Mathlib.Analysis.CStarAlgebra.ContinuousFunctionalCalculus.Instances
import Mathlib.Analysis.CStarAlgebra.ContinuousFunctionalCalculus.Integral
import Mathlib.Analysis.CStarAlgebra.ContinuousFunctionalCalculus.Isometric
import Mathlib.Analysis.CStarAlgebra.ContinuousFunctionalCalculus.NonUnital
import Mathlib.Analysis.CStarAlgebra.ContinuousFunctionalCalculus.Order
import Mathlib.Analysis.CStarAlgebra.ContinuousFunctionalCalculus.PosPart
Expand Down Expand Up @@ -1197,6 +1198,7 @@ import Mathlib.Analysis.Convex.StrictConvexBetween
import Mathlib.Analysis.Convex.StrictConvexSpace
import Mathlib.Analysis.Convex.Strong
import Mathlib.Analysis.Convex.Topology
import Mathlib.Analysis.Convex.TotallyBounded
import Mathlib.Analysis.Convex.Uniform
import Mathlib.Analysis.Convolution
import Mathlib.Analysis.Distribution.AEEqOfIntegralContDiff
Expand Down Expand Up @@ -2554,6 +2556,7 @@ import Mathlib.Data.Nat.Prime.Defs
import Mathlib.Data.Nat.Prime.Factorial
import Mathlib.Data.Nat.Prime.Infinite
import Mathlib.Data.Nat.Prime.Int
import Mathlib.Data.Nat.Prime.Nth
import Mathlib.Data.Nat.Prime.Pow
import Mathlib.Data.Nat.PrimeFin
import Mathlib.Data.Nat.Set
Expand Down Expand Up @@ -3976,6 +3979,7 @@ import Mathlib.RingTheory.Bezout
import Mathlib.RingTheory.Bialgebra.Basic
import Mathlib.RingTheory.Bialgebra.Equiv
import Mathlib.RingTheory.Bialgebra.Hom
import Mathlib.RingTheory.Bialgebra.TensorProduct
import Mathlib.RingTheory.Binomial
import Mathlib.RingTheory.ChainOfDivisors
import Mathlib.RingTheory.ClassGroup
Expand Down
32 changes: 31 additions & 1 deletion Mathlib/Algebra/BigOperators/Pi.lean
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Copyright (c) 2018 Simon Hudon. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Simon Hudon, Patrick Massot
-/
import Mathlib.Algebra.BigOperators.Group.Finset
import Mathlib.Algebra.BigOperators.GroupWithZero.Finset
import Mathlib.Algebra.Group.Action.Pi
import Mathlib.Algebra.Ring.Pi

Expand All @@ -14,6 +14,9 @@ This file contains theorems relevant to big operators in binary and arbitrary pr
of monoids and groups
-/

open scoped Finset

variable {ι κ α : Type*}

namespace Pi

Expand Down Expand Up @@ -57,6 +60,33 @@ theorem pi_eq_sum_univ {ι : Type*} [Fintype ι] [DecidableEq ι] {R : Type*} [S
ext
simp

section CommSemiring
variable [CommSemiring α]

lemma prod_indicator_apply (s : Finset ι) (f : ι → Set κ) (g : ι → κ → α) (j : κ) :
∏ i ∈ s, (f i).indicator (g i) j = (⋂ x ∈ s, f x).indicator (∏ i ∈ s, g i) j := by
rw [Set.indicator]
split_ifs with hj
· rw [Finset.prod_apply]
congr! 1 with i hi
simp only [Finset.inf_set_eq_iInter, Set.mem_iInter] at hj
exact Set.indicator_of_mem (hj _ hi) _
· obtain ⟨i, hi, hj⟩ := by simpa using hj
exact Finset.prod_eq_zero hi <| Set.indicator_of_not_mem hj _

lemma prod_indicator (s : Finset ι) (f : ι → Set κ) (g : ι → κ → α) :
∏ i ∈ s, (f i).indicator (g i) = (⋂ x ∈ s, f x).indicator (∏ i ∈ s, g i) := by
ext a; simpa using prod_indicator_apply ..

lemma prod_indicator_const_apply (s : Finset ι) (f : ι → Set κ) (g : κ → α) (j : κ) :
∏ i ∈ s, (f i).indicator g j = (⋂ x ∈ s, f x).indicator (g ^ #s) j := by
simp [prod_indicator_apply]

lemma prod_indicator_const (s : Finset ι) (f : ι → Set κ) (g : κ → α) :
∏ i ∈ s, (f i).indicator g = (⋂ x ∈ s, f x).indicator (g ^ #s) := by simp [prod_indicator]

end CommSemiring

section MulSingle

variable {I : Type*} [DecidableEq I] {Z : I → Type*}
Expand Down
6 changes: 6 additions & 0 deletions Mathlib/Algebra/BigOperators/Ring.lean
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,12 @@ end CommSemiring
section CommRing
variable [CommRing α]

/-- The product of `f i - g i` over all of `s` is the sum over the powerset of `s` of the product of
`g` over a subset `t` times the product of `f` over the complement of `t` times `(-1) ^ #t`. -/
lemma prod_sub [DecidableEq ι] (f g : ι → α) (s : Finset ι) :
∏ i ∈ s, (f i - g i) = ∑ t ∈ s.powerset, (-1) ^ #t * (∏ i ∈ s \ t, f i) * ∏ i ∈ t, g i := by
simp [sub_eq_neg_add, prod_add, ← prod_const, ← prod_mul_distrib, mul_right_comm]

/-- `∏ i, (f i - g i) = (∏ i, f i) - ∑ i, g i * (∏ j < i, f j - g j) * (∏ j > i, f j)`. -/
lemma prod_sub_ordered [LinearOrder ι] (s : Finset ι) (f g : ι → α) :
∏ i ∈ s, (f i - g i) =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -169,10 +169,30 @@ instance IsStarNormal.instContinuousFunctionalCalculus {A : Type*} [CStarAlgebra
AlgEquiv.spectrum_eq (continuousFunctionalCalculus a), ContinuousMap.spectrum_eq_range]
case predicate_hom => exact fun f ↦ ⟨by rw [← map_star]; exact Commute.all (star f) f |>.map _⟩

lemma cfcHom_eq_of_isStarNormal {A : Type*} [CStarAlgebra A] (a : A) [ha : IsStarNormal a] :
cfcHom ha = (elementalStarAlgebra ℂ a).subtype.comp (continuousFunctionalCalculus a) := by
refine cfcHom_eq_of_continuous_of_map_id ha _ ?_ ?_
· exact continuous_subtype_val.comp <|
(StarAlgEquiv.isometry (continuousFunctionalCalculus a)).continuous
· simp [continuousFunctionalCalculus_map_id a]

instance IsStarNormal.instNonUnitalContinuousFunctionalCalculus {A : Type*}
[NonUnitalCStarAlgebra A] : NonUnitalContinuousFunctionalCalculus ℂ (IsStarNormal : A → Prop) :=
RCLike.nonUnitalContinuousFunctionalCalculus Unitization.isStarNormal_inr

open Unitization in
lemma inr_comp_cfcₙHom_eq_cfcₙAux {A : Type*} [NonUnitalCStarAlgebra A] (a : A)
[ha : IsStarNormal a] : (inrNonUnitalStarAlgHom ℂ A).comp (cfcₙHom ha) =
cfcₙAux (isStarNormal_inr (R := ℂ) (A := A)) a ha := by
have h (a : A) := isStarNormal_inr (R := ℂ) (A := A) (a := a)
refine @UniqueNonUnitalContinuousFunctionalCalculus.eq_of_continuous_of_map_id
_ _ _ _ _ _ _ _ _ _ _ inferInstance inferInstance _ (σₙ ℂ a) _ _ rfl _ _ ?_ ?_ ?_
· show Continuous (fun f ↦ (cfcₙHom ha f : Unitization ℂ A)); fun_prop
· exact isClosedEmbedding_cfcₙAux @(h) a ha |>.continuous
· trans (a : Unitization ℂ A)
· congrm(inr $(cfcₙHom_id ha))
· exact cfcₙAux_id @(h) a ha |>.symm

end Normal

/-!
Expand Down
Loading

0 comments on commit d81177a

Please sign in to comment.