@@ -63,20 +63,23 @@ lemma eq_on_indicator : eq_on (indicator s f) f s := λ x hx, indicator_of_mem h
63
63
lemma support_indicator : function.support (s.indicator f) ⊆ s :=
64
64
λ x hx, hx.imp_symm (λ h, indicator_of_not_mem h f)
65
65
66
- lemma indicator_of_support_subset (h : support f ⊆ s) : s.indicator f = f :=
67
- begin
68
- ext x,
69
- by_cases hx : f x = 0 ,
70
- { rw hx,
71
- by_contradiction H,
72
- have := mem_of_indicator_ne_zero H,
73
- rw [indicator_of_mem this f, hx] at H,
74
- exact H rfl },
75
- { exact indicator_of_mem (h hx) f }
76
- end
66
+ @[simp] lemma indicator_apply_eq_self : s.indicator f a = f a ↔ (a ∉ s → f a = 0 ) :=
67
+ ite_eq_left_iff.trans $ by rw [@eq_comm _ (f a)]
68
+
69
+ @[simp] lemma indicator_eq_self : s.indicator f = f ↔ support f ⊆ s :=
70
+ by simp only [funext_iff, subset_def, mem_support, indicator_apply_eq_self, not_imp_comm]
77
71
78
72
@[simp] lemma indicator_support : (support f).indicator f = f :=
79
- indicator_of_support_subset $ subset.refl _
73
+ indicator_eq_self.2 $ subset.refl _
74
+
75
+ @[simp] lemma indicator_apply_eq_zero : indicator s f a = 0 ↔ (a ∈ s → f a = 0 ) :=
76
+ ite_eq_right_iff
77
+
78
+ @[simp] lemma indicator_eq_zero : indicator s f = (λ x, 0 ) ↔ disjoint (support f) s :=
79
+ by simp only [funext_iff, indicator_apply_eq_zero, set.disjoint_left, mem_support, not_imp_not]
80
+
81
+ @[simp] lemma indicator_eq_zero' : indicator s f = 0 ↔ disjoint (support f) s :=
82
+ indicator_eq_zero
80
83
81
84
@[simp] lemma indicator_range_comp {ι : Sort *} (f : ι → α) (g : α → β) :
82
85
indicator (range f) g ∘ f = g ∘ f :=
@@ -86,22 +89,23 @@ lemma indicator_congr (h : ∀ a ∈ s, f a = g a) : indicator s f = indicator s
86
89
funext $ λx, by { simp only [indicator], split_ifs, { exact h _ h_1 }, refl }
87
90
88
91
@[simp] lemma indicator_univ (f : α → β) : indicator (univ : set α) f = f :=
89
- funext $ λx, indicator_of_mem (mem_univ _) f
92
+ indicator_eq_self. 2 $ subset_univ _
90
93
91
94
@[simp] lemma indicator_empty (f : α → β) : indicator (∅ : set α) f = λa, 0 :=
92
- funext $ λx, indicator_of_not_mem (not_mem_empty _) f
95
+ indicator_eq_zero. 2 $ disjoint_empty _
93
96
94
97
variable (β)
95
98
96
99
@[simp] lemma indicator_zero (s : set α) : indicator s (λx, (0 :β)) = λx, (0 :β) :=
97
- funext $ λx, by { simp only [indicator], split_ifs, refl, refl }
100
+ indicator_eq_zero. 2 $ by simp only [support_zero, empty_disjoint]
98
101
99
102
@[simp] lemma indicator_zero' {s : set α} : s.indicator (0 : α → β) = 0 :=
100
103
indicator_zero β s
101
104
102
105
variable {β}
103
106
104
- lemma indicator_indicator (s t : set α) (f : α → β) : indicator s (indicator t f) = indicator (s ∩ t) f :=
107
+ lemma indicator_indicator (s t : set α) (f : α → β) :
108
+ indicator s (indicator t f) = indicator (s ∩ t) f :=
105
109
funext $ λx, by { simp only [indicator], split_ifs, repeat {simp * at * {contextual := tt}} }
106
110
107
111
lemma comp_indicator (h : β → γ) (f : α → β) {s : set α} {x : α} :
0 commit comments