Module docstring
{"# Indicator functions and support of a function in groups with zero "}
{"# Indicator functions and support of a function in groups with zero "}
Set.indicator_mul
theorem
(s : Set ι) (f g : ι → M₀) : indicator s (fun i ↦ f i * g i) = fun i ↦ indicator s f i * indicator s g i
Set.indicator_mul_left
theorem
(s : Set ι) (f g : ι → M₀) : indicator s (fun j ↦ f j * g j) i = indicator s f i * g i
Set.indicator_mul_right
theorem
(s : Set ι) (f g : ι → M₀) : indicator s (fun j ↦ f j * g j) i = f i * indicator s g i
Set.indicator_mul_const
theorem
(s : Set ι) (f : ι → M₀) (a : M₀) (i : ι) : s.indicator (f · * a) i = s.indicator f i * a
lemma indicator_mul_const (s : Set ι) (f : ι → M₀) (a : M₀) (i : ι) :
s.indicator (f · * a) i = s.indicator f i * a := by rw [indicator_mul_left]
Set.indicator_const_mul
theorem
(s : Set ι) (f : ι → M₀) (a : M₀) (i : ι) : s.indicator (a * f ·) i = a * s.indicator f i
lemma indicator_const_mul (s : Set ι) (f : ι → M₀) (a : M₀) (i : ι) :
s.indicator (a * f ·) i = a * s.indicator f i := by rw [indicator_mul_right]
Set.inter_indicator_mul
theorem
(f g : ι → M₀) (i : ι) : (s ∩ t).indicator (fun j ↦ f j * g j) i = s.indicator f i * t.indicator g i
lemma inter_indicator_mul (f g : ι → M₀) (i : ι) :
(s ∩ t).indicator (fun j ↦ f j * g j) i = s.indicator f i * t.indicator g i := by
rw [← Set.indicator_indicator]
simp_rw [indicator]
split_ifs <;> simp
Set.inter_indicator_one
theorem
: (s ∩ t).indicator (1 : ι → M₀) = s.indicator 1 * t.indicator 1
lemma inter_indicator_one : (s ∩ t).indicator (1 : ι → M₀) = s.indicator 1 * t.indicator 1 :=
funext fun _ ↦ by simp only [← inter_indicator_mul, Pi.mul_apply, Pi.one_apply, one_mul]; congr
Set.indicator_prod_one
theorem
{t : Set κ} {j : κ} : (s ×ˢ t).indicator (1 : ι × κ → M₀) (i, j) = s.indicator 1 i * t.indicator 1 j
lemma indicator_prod_one {t : Set κ} {j : κ} :
(s ×ˢ t).indicator (1 : ι × κ → M₀) (i, j) = s.indicator 1 i * t.indicator 1 j := by
simp_rw [indicator, mem_prod_eq]
split_ifs with h₀ <;> simp only [Pi.one_apply, mul_one, mul_zero] <;> tauto
Set.indicator_eq_zero_iff_not_mem
theorem
: indicator s 1 i = (0 : M₀) ↔ i ∉ s
lemma indicator_eq_zero_iff_not_mem : indicatorindicator s 1 i = (0 : M₀) ↔ i ∉ s := by
classical simp [indicator_apply, imp_false]
Set.indicator_eq_one_iff_mem
theorem
: indicator s 1 i = (1 : M₀) ↔ i ∈ s
lemma indicator_eq_one_iff_mem : indicatorindicator s 1 i = (1 : M₀) ↔ i ∈ s := by
classical simp [indicator_apply, imp_false]
Set.indicator_one_inj
theorem
(h : indicator s (1 : ι → M₀) = indicator t 1) : s = t
lemma indicator_one_inj (h : indicator s (1 : ι → M₀) = indicator t 1) : s = t := by
ext; simp_rw [← indicator_eq_one_iff_mem M₀, h]
Function.support_one
theorem
: support (1 : ι → R) = univ
@[simp] lemma support_one : support (1 : ι → R) = univ := support_const one_ne_zero
Function.mulSupport_zero
theorem
: mulSupport (0 : ι → R) = univ
@[simp] lemma mulSupport_zero : mulSupport (0 : ι → R) = univ := mulSupport_const zero_ne_one
Function.support_mul_subset_left
theorem
(f g : ι → M₀) : support (fun x ↦ f x * g x) ⊆ support f
lemma support_mul_subset_left (f g : ι → M₀) : supportsupport (fun x ↦ f x * g x) ⊆ support f :=
fun x hfg hf ↦ hfg <| by simp only [hf, zero_mul]
Function.support_mul_subset_right
theorem
(f g : ι → M₀) : support (fun x ↦ f x * g x) ⊆ support g
lemma support_mul_subset_right (f g : ι → M₀) : supportsupport (fun x ↦ f x * g x) ⊆ support g :=
fun x hfg hg => hfg <| by simp only [hg, mul_zero]
Function.support_mul
theorem
(f g : ι → M₀) : support (fun x ↦ f x * g x) = support f ∩ support g
@[simp] lemma support_mul (f g : ι → M₀) : support (fun x ↦ f x * g x) = supportsupport f ∩ support g :=
ext fun x ↦ by simp [not_or]
Function.support_mul'
theorem
(f g : ι → M₀) : support (f * g) = support f ∩ support g
@[simp] lemma support_mul' (f g : ι → M₀) : support (f * g) = supportsupport f ∩ support g :=
support_mul _ _
Function.support_pow
theorem
(f : ι → M₀) (hn : n ≠ 0) : support (fun a ↦ f a ^ n) = support f
@[simp] lemma support_pow (f : ι → M₀) (hn : n ≠ 0) : support (fun a ↦ f a ^ n) = support f := by
ext; exact (pow_eq_zero_iff hn).not
Function.support_pow'
theorem
(f : ι → M₀) (hn : n ≠ 0) : support (f ^ n) = support f
@[simp] lemma support_pow' (f : ι → M₀) (hn : n ≠ 0) : support (f ^ n) = support f :=
support_pow _ hn
Function.support_inv
theorem
(f : ι → G₀) : support (fun a ↦ (f a)⁻¹) = support f
@[simp] lemma support_inv (f : ι → G₀) : support (fun a ↦ (f a)⁻¹) = support f :=
Set.ext fun _ ↦ not_congr inv_eq_zero
Function.support_inv'
theorem
(f : ι → G₀) : support f⁻¹ = support f
@[simp] lemma support_inv' (f : ι → G₀) : support f⁻¹ = support f := support_inv _
Function.support_div
theorem
(f g : ι → G₀) : support (fun a ↦ f a / g a) = support f ∩ support g
@[simp] lemma support_div (f g : ι → G₀) : support (fun a ↦ f a / g a) = supportsupport f ∩ support g := by
simp [div_eq_mul_inv]
Function.support_div'
theorem
(f g : ι → G₀) : support (f / g) = support f ∩ support g
@[simp] lemma support_div' (f g : ι → G₀) : support (f / g) = supportsupport f ∩ support g :=
support_div _ _
Function.mulSupport_one_add
theorem
[AddLeftCancelMonoid R] (f : ι → R) : mulSupport (fun x ↦ 1 + f x) = support f
lemma mulSupport_one_add [AddLeftCancelMonoid R] (f : ι → R) :
mulSupport (fun x ↦ 1 + f x) = support f :=
Set.ext fun _ ↦ not_congr add_eq_left
Function.mulSupport_one_add'
theorem
[AddLeftCancelMonoid R] (f : ι → R) : mulSupport (1 + f) = support f
lemma mulSupport_one_add' [AddLeftCancelMonoid R] (f : ι → R) : mulSupport (1 + f) = support f :=
mulSupport_one_add f
Function.mulSupport_add_one
theorem
[AddRightCancelMonoid R] (f : ι → R) : mulSupport (fun x ↦ f x + 1) = support f
lemma mulSupport_add_one [AddRightCancelMonoid R] (f : ι → R) :
mulSupport (fun x ↦ f x + 1) = support f := Set.ext fun _ ↦ not_congr add_eq_right
Function.mulSupport_add_one'
theorem
[AddRightCancelMonoid R] (f : ι → R) : mulSupport (f + 1) = support f
lemma mulSupport_add_one' [AddRightCancelMonoid R] (f : ι → R) : mulSupport (f + 1) = support f :=
mulSupport_add_one f
Function.mulSupport_one_sub'
theorem
[AddGroup R] (f : ι → R) : mulSupport (1 - f) = support f
lemma mulSupport_one_sub' [AddGroup R] (f : ι → R) : mulSupport (1 - f) = support f := by
rw [sub_eq_add_neg, mulSupport_one_add', support_neg']
Function.mulSupport_one_sub
theorem
[AddGroup R] (f : ι → R) : mulSupport (fun x ↦ 1 - f x) = support f
lemma mulSupport_one_sub [AddGroup R] (f : ι → R) :
mulSupport (fun x ↦ 1 - f x) = support f := mulSupport_one_sub' f