# Support of a function #

In this file we define Function.support f = {x | f x ≠ 0} and prove its basic properties. We also define Function.mulSupport f = {x | f x ≠ 1}.

def Function.support {α : Type u_1} {A : Type u_3} [Zero A] (f : αA) :
Set α

support of a function is the set of points x such that f x ≠ 0.

Equations
• = {x : α | f x 0}
Instances For
def Function.mulSupport {α : Type u_1} {M : Type u_5} [One M] (f : αM) :
Set α

mulSupport of a function is the set of points x such that f x ≠ 1.

Equations
• = {x : α | f x 1}
Instances For
theorem Function.support_eq_preimage {α : Type u_1} {M : Type u_5} [Zero M] (f : αM) :
= f ⁻¹' {0}
theorem Function.mulSupport_eq_preimage {α : Type u_1} {M : Type u_5} [One M] (f : αM) :
= f ⁻¹' {1}
theorem Function.nmem_support {α : Type u_1} {M : Type u_5} [Zero M] {f : αM} {x : α} :
x f x = 0
theorem Function.nmem_mulSupport {α : Type u_1} {M : Type u_5} [One M] {f : αM} {x : α} :
f x = 1
theorem Function.compl_support {α : Type u_1} {M : Type u_5} [Zero M] {f : αM} :
= {x : α | f x = 0}
theorem Function.compl_mulSupport {α : Type u_1} {M : Type u_5} [One M] {f : αM} :
= {x : α | f x = 1}
@[simp]
theorem Function.mem_support {α : Type u_1} {M : Type u_5} [Zero M] {f : αM} {x : α} :
f x 0
@[simp]
theorem Function.mem_mulSupport {α : Type u_1} {M : Type u_5} [One M] {f : αM} {x : α} :
f x 1
@[simp]
theorem Function.support_subset_iff {α : Type u_1} {M : Type u_5} [Zero M] {f : αM} {s : Set α} :
∀ (x : α), f x 0x s
@[simp]
theorem Function.mulSupport_subset_iff {α : Type u_1} {M : Type u_5} [One M] {f : αM} {s : Set α} :
∀ (x : α), f x 1x s
theorem Function.support_subset_iff' {α : Type u_1} {M : Type u_5} [Zero M] {f : αM} {s : Set α} :
xs, f x = 0
theorem Function.mulSupport_subset_iff' {α : Type u_1} {M : Type u_5} [One M] {f : αM} {s : Set α} :
xs, f x = 1
theorem Function.support_eq_iff {α : Type u_1} {M : Type u_5} [Zero M] {f : αM} {s : Set α} :
(xs, f x 0) xs, f x = 0
theorem Function.mulSupport_eq_iff {α : Type u_1} {M : Type u_5} [One M] {f : αM} {s : Set α} :
(xs, f x 1) xs, f x = 1
theorem Function.support_extend_zero_subset {α : Type u_1} {M : Type u_5} {N : Type u_6} [Zero N] {f : αM} {g : αN} :
theorem Function.mulSupport_extend_one_subset {α : Type u_1} {M : Type u_5} {N : Type u_6} [One N] {f : αM} {g : αN} :
theorem Function.support_extend_zero {α : Type u_1} {M : Type u_5} {N : Type u_6} [Zero N] {f : αM} {g : αN} (hf : ) :
theorem Function.mulSupport_extend_one {α : Type u_1} {M : Type u_5} {N : Type u_6} [One N] {f : αM} {g : αN} (hf : ) :
=
theorem Function.support_disjoint_iff {α : Type u_1} {M : Type u_5} [Zero M] {f : αM} {s : Set α} :
Set.EqOn f 0 s
theorem Function.mulSupport_disjoint_iff {α : Type u_1} {M : Type u_5} [One M] {f : αM} {s : Set α} :
Set.EqOn f 1 s
theorem Function.disjoint_support_iff {α : Type u_1} {M : Type u_5} [Zero M] {f : αM} {s : Set α} :
Set.EqOn f 0 s
theorem Function.disjoint_mulSupport_iff {α : Type u_1} {M : Type u_5} [One M] {f : αM} {s : Set α} :
Set.EqOn f 1 s
@[simp]
theorem Function.support_eq_empty_iff {α : Type u_1} {M : Type u_5} [Zero M] {f : αM} :
f = 0
@[simp]
theorem Function.mulSupport_eq_empty_iff {α : Type u_1} {M : Type u_5} [One M] {f : αM} :
f = 1
@[simp]
theorem Function.support_nonempty_iff {α : Type u_1} {M : Type u_5} [Zero M] {f : αM} :
f 0
@[simp]
theorem Function.mulSupport_nonempty_iff {α : Type u_1} {M : Type u_5} [One M] {f : αM} :
f 1
theorem Function.range_subset_insert_image_support {α : Type u_1} {M : Type u_5} [Zero M] (f : αM) :
insert 0 ()
theorem Function.range_subset_insert_image_mulSupport {α : Type u_1} {M : Type u_5} [One M] (f : αM) :
insert 1 ()
theorem Function.range_eq_image_or_of_support_subset {α : Type u_1} {M : Type u_5} [Zero M] {f : αM} {k : Set α} (h : ) :
= f '' k = insert 0 (f '' k)
theorem Function.range_eq_image_or_of_mulSupport_subset {α : Type u_1} {M : Type u_5} [One M] {f : αM} {k : Set α} (h : ) :
= f '' k = insert 1 (f '' k)
@[simp]
theorem Function.support_zero' {α : Type u_1} {M : Type u_5} [Zero M] :
@[simp]
theorem Function.mulSupport_one' {α : Type u_1} {M : Type u_5} [One M] :
@[simp]
theorem Function.support_zero {α : Type u_1} {M : Type u_5} [Zero M] :
(Function.support fun (x : α) => 0) =
@[simp]
theorem Function.mulSupport_one {α : Type u_1} {M : Type u_5} [One M] :
(Function.mulSupport fun (x : α) => 1) =
theorem Function.support_const {α : Type u_1} {M : Type u_5} [Zero M] {c : M} (hc : c 0) :
(Function.support fun (x : α) => c) = Set.univ
theorem Function.mulSupport_const {α : Type u_1} {M : Type u_5} [One M] {c : M} (hc : c 1) :
(Function.mulSupport fun (x : α) => c) = Set.univ
theorem Function.support_binop_subset {α : Type u_1} {M : Type u_5} {N : Type u_6} {P : Type u_7} [Zero M] [Zero N] [Zero P] (op : MNP) (op1 : op 0 0 = 0) (f : αM) (g : αN) :
(Function.support fun (x : α) => op (f x) (g x))
theorem Function.mulSupport_binop_subset {α : Type u_1} {M : Type u_5} {N : Type u_6} {P : Type u_7} [One M] [One N] [One P] (op : MNP) (op1 : op 1 1 = 1) (f : αM) (g : αN) :
(Function.mulSupport fun (x : α) => op (f x) (g x))
theorem Function.support_comp_subset {α : Type u_1} {M : Type u_5} {N : Type u_6} [Zero M] [Zero N] {g : MN} (hg : g 0 = 0) (f : αM) :
theorem Function.mulSupport_comp_subset {α : Type u_1} {M : Type u_5} {N : Type u_6} [One M] [One N] {g : MN} (hg : g 1 = 1) (f : αM) :
theorem Function.support_subset_comp {α : Type u_1} {M : Type u_5} {N : Type u_6} [Zero M] [Zero N] {g : MN} (hg : ∀ {x : M}, g x = 0x = 0) (f : αM) :
theorem Function.mulSupport_subset_comp {α : Type u_1} {M : Type u_5} {N : Type u_6} [One M] [One N] {g : MN} (hg : ∀ {x : M}, g x = 1x = 1) (f : αM) :
theorem Function.support_comp_eq {α : Type u_1} {M : Type u_5} {N : Type u_6} [Zero M] [Zero N] (g : MN) (hg : ∀ {x : M}, g x = 0 x = 0) (f : αM) :
theorem Function.mulSupport_comp_eq {α : Type u_1} {M : Type u_5} {N : Type u_6} [One M] [One N] (g : MN) (hg : ∀ {x : M}, g x = 1 x = 1) (f : αM) :
theorem Function.support_comp_eq_of_range_subset {α : Type u_1} {M : Type u_5} {N : Type u_6} [Zero M] [Zero N] {g : MN} {f : αM} (hg : ∀ {x : M}, x (g x = 0 x = 0)) :
theorem Function.mulSupport_comp_eq_of_range_subset {α : Type u_1} {M : Type u_5} {N : Type u_6} [One M] [One N] {g : MN} {f : αM} (hg : ∀ {x : M}, x (g x = 1 x = 1)) :
theorem Function.support_comp_eq_preimage {α : Type u_1} {β : Type u_2} {M : Type u_5} [Zero M] (g : βM) (f : αβ) :
theorem Function.mulSupport_comp_eq_preimage {α : Type u_1} {β : Type u_2} {M : Type u_5} [One M] (g : βM) (f : αβ) :
theorem Function.support_prod_mk {α : Type u_1} {M : Type u_5} {N : Type u_6} [Zero M] [Zero N] (f : αM) (g : αN) :
(Function.support fun (x : α) => (f x, g x)) =
theorem Function.mulSupport_prod_mk {α : Type u_1} {M : Type u_5} {N : Type u_6} [One M] [One N] (f : αM) (g : αN) :
(Function.mulSupport fun (x : α) => (f x, g x)) =
theorem Function.support_prod_mk' {α : Type u_1} {M : Type u_5} {N : Type u_6} [Zero M] [Zero N] (f : αM × N) :
= (Function.support fun (x : α) => (f x).1) Function.support fun (x : α) => (f x).2
theorem Function.mulSupport_prod_mk' {α : Type u_1} {M : Type u_5} {N : Type u_6} [One M] [One N] (f : αM × N) :
= (Function.mulSupport fun (x : α) => (f x).1) Function.mulSupport fun (x : α) => (f x).2
theorem Function.support_along_fiber_subset {α : Type u_1} {β : Type u_2} {M : Type u_5} [Zero M] (f : α × βM) (a : α) :
(Function.support fun (b : β) => f (a, b)) Prod.snd ''
theorem Function.mulSupport_along_fiber_subset {α : Type u_1} {β : Type u_2} {M : Type u_5} [One M] (f : α × βM) (a : α) :
(Function.mulSupport fun (b : β) => f (a, b)) Prod.snd ''
theorem Function.support_add {α : Type u_1} {M : Type u_5} [] (f : αM) (g : αM) :
(Function.support fun (x : α) => f x + g x)
theorem Function.mulSupport_mul {α : Type u_1} {M : Type u_5} [] (f : αM) (g : αM) :
(Function.mulSupport fun (x : α) => f x * g x)
theorem Function.support_nsmul {α : Type u_1} {M : Type u_5} [] (f : αM) (n : ) :
(Function.support fun (x : α) => n f x)
theorem Function.mulSupport_pow {α : Type u_1} {M : Type u_5} [] (f : αM) (n : ) :
(Function.mulSupport fun (x : α) => f x ^ n)
@[simp]
theorem Function.support_neg {α : Type u_1} {G : Type u_10} (f : αG) :
(Function.support fun (x : α) => -f x) =
@[simp]
theorem Function.mulSupport_inv {α : Type u_1} {G : Type u_10} [] (f : αG) :
(Function.mulSupport fun (x : α) => (f x)⁻¹) =
@[simp]
theorem Function.support_neg' {α : Type u_1} {G : Type u_10} (f : αG) :
@[simp]
theorem Function.mulSupport_inv' {α : Type u_1} {G : Type u_10} [] (f : αG) :
theorem Function.support_add_neg {α : Type u_1} {G : Type u_10} (f : αG) (g : αG) :
(Function.support fun (x : α) => f x + -g x)
theorem Function.mulSupport_mul_inv {α : Type u_1} {G : Type u_10} [] (f : αG) (g : αG) :
(Function.mulSupport fun (x : α) => f x * (g x)⁻¹)
theorem Function.support_sub {α : Type u_1} {G : Type u_10} (f : αG) (g : αG) :
(Function.support fun (x : α) => f x - g x)
theorem Function.mulSupport_div {α : Type u_1} {G : Type u_10} [] (f : αG) (g : αG) :
(Function.mulSupport fun (x : α) => f x / g x)
@[simp]
theorem Function.support_one {α : Type u_1} (R : Type u_8) [Zero R] [One R] [] :
= Set.univ
@[simp]
theorem Function.mulSupport_zero {α : Type u_1} (R : Type u_8) [Zero R] [One R] [] :
= Set.univ
theorem Function.support_mul_subset_left {α : Type u_1} {M : Type u_5} [] (f : αM) (g : αM) :
(Function.support fun (x : α) => f x * g x)
theorem Function.support_mul_subset_right {α : Type u_1} {M : Type u_5} [] (f : αM) (g : αM) :
(Function.support fun (x : α) => f x * g x)
@[simp]
theorem Function.support_mul {α : Type u_1} {M : Type u_5} [] [] (f : αM) (g : αM) :
(Function.support fun (x : α) => f x * g x) =
@[simp]
theorem Function.support_mul' {α : Type u_1} {M : Type u_5} [] [] (f : αM) (g : αM) :
@[simp]
theorem Function.support_pow {α : Type u_1} {M : Type u_5} [] [] {n : } (f : αM) (hn : n 0) :
(Function.support fun (a : α) => f a ^ n) =
@[simp]
theorem Function.support_pow' {α : Type u_1} {M : Type u_5} [] [] {n : } (f : αM) (hn : n 0) :
@[simp]
theorem Function.support_inv {α : Type u_1} {G₀ : Type u_12} [] (f : αG₀) :
(Function.support fun (a : α) => (f a)⁻¹) =
@[simp]
theorem Function.support_inv' {α : Type u_1} {G₀ : Type u_12} [] (f : αG₀) :
@[simp]
theorem Function.support_div {α : Type u_1} {G₀ : Type u_12} [] (f : αG₀) (g : αG₀) :
(Function.support fun (a : α) => f a / g a) =
@[simp]
theorem Function.support_div' {α : Type u_1} {G₀ : Type u_12} [] (f : αG₀) (g : αG₀) :
theorem Function.mulSupport_one_add {α : Type u_1} {R : Type u_8} [One R] (f : αR) :
(Function.mulSupport fun (x : α) => 1 + f x) =
theorem Function.mulSupport_one_add' {α : Type u_1} {R : Type u_8} [One R] (f : αR) :
theorem Function.mulSupport_add_one {α : Type u_1} {R : Type u_8} [One R] (f : αR) :
(Function.mulSupport fun (x : α) => f x + 1) =
theorem Function.mulSupport_add_one' {α : Type u_1} {R : Type u_8} [One R] (f : αR) :
theorem Function.mulSupport_one_sub' {α : Type u_1} {R : Type u_8} [One R] [] (f : αR) :
theorem Function.mulSupport_one_sub {α : Type u_1} {R : Type u_8} [One R] [] (f : αR) :
(Function.mulSupport fun (x : α) => 1 - f x) =
theorem Set.image_inter_support_eq {α : Type u_1} {β : Type u_2} {M : Type u_3} [Zero M] {f : αM} {s : Set β} {g : βα} :
g '' s = g '' (s Function.support (f g))
theorem Set.image_inter_mulSupport_eq {α : Type u_1} {β : Type u_2} {M : Type u_3} [One M] {f : αM} {s : Set β} {g : βα} :
g '' s = g '' (s Function.mulSupport (f g))
theorem Pi.support_single_subset {A : Type u_1} {B : Type u_2} [] [Zero B] {a : A} {b : B} :
{a}
theorem Pi.mulSupport_mulSingle_subset {A : Type u_1} {B : Type u_2} [] [One B] {a : A} {b : B} :
{a}
theorem Pi.support_single_zero {A : Type u_1} {B : Type u_2} [] [Zero B] {a : A} :
theorem Pi.mulSupport_mulSingle_one {A : Type u_1} {B : Type u_2} [] [One B] {a : A} :
@[simp]
theorem Pi.support_single_of_ne {A : Type u_1} {B : Type u_2} [] [Zero B] {a : A} {b : B} (h : b 0) :
= {a}
@[simp]
theorem Pi.mulSupport_mulSingle_of_ne {A : Type u_1} {B : Type u_2} [] [One B] {a : A} {b : B} (h : b 1) :
= {a}
theorem Pi.support_single {A : Type u_1} {B : Type u_2} [] [Zero B] {a : A} {b : B} [] :
= if b = 0 then else {a}
theorem Pi.mulSupport_mulSingle {A : Type u_1} {B : Type u_2} [] [One B] {a : A} {b : B} [] :
= if b = 1 then else {a}
theorem Pi.support_single_disjoint {A : Type u_1} {B : Type u_2} [] [Zero B] {b : B} {b' : B} (hb : b 0) (hb' : b' 0) {i : A} {j : A} :
theorem Pi.mulSupport_mulSingle_disjoint {A : Type u_1} {B : Type u_2} [] [One B] {b : B} {b' : B} (hb : b 1) (hb' : b' 1) {i : A} {j : A} :
Disjoint () () i j