Documentation
Atlas
.
BooleanFunctions
.
code
.
FourierSampling
Search
return to top
source
Imports
Init
Atlas.BooleanFunctions.code.FourierExpansion
Mathlib.Analysis.SpecialFunctions.Log.Basic
Imported by
BooleanFourier
.
fourierCoeff_eq_expectation
BooleanFourier
.
abs_chi_eq_one
BooleanFourier
.
sample_bounded
BooleanFourier
.
fourier_sampling_hoeffding_bound
BooleanFourier
.
claim_1_2_fourier_sampling
source
theorem
BooleanFourier
.
fourierCoeff_eq_expectation
{
n
:
ℕ
}
(
f
:
(
Fin
n
→
Bool
)
→
ℝ
)
(
S
:
Finset
(
Fin
n
)
)
:
fourierCoeff
f
S
=
1
/
2
^
n
*
∑
x
:
Fin
n
→
Bool
,
f
x
*
chi
S
x
source
theorem
BooleanFourier
.
abs_chi_eq_one
{
n
:
ℕ
}
(
S
:
Finset
(
Fin
n
)
)
(
x
:
Fin
n
→
Bool
)
:
|
chi
S
x
|
=
1
source
theorem
BooleanFourier
.
sample_bounded
{
n
:
ℕ
}
(
f
:
(
Fin
n
→
Bool
)
→
ℝ
)
(
S
:
Finset
(
Fin
n
)
)
(
hf
:
∀ (
x
:
Fin
n
→
Bool
),
|
f
x
|
≤
1
)
(
x
:
Fin
n
→
Bool
)
:
|
f
x
*
chi
S
x
|
≤
1
source
theorem
BooleanFourier
.
fourier_sampling_hoeffding_bound
{
n
:
ℕ
}
(
f
:
(
Fin
n
→
Bool
)
→
ℝ
)
(
S
:
Finset
(
Fin
n
)
)
(
hf
:
∀ (
x
:
Fin
n
→
Bool
),
|
f
x
|
≤
1
)
(
ε
:
ℝ
)
(
hε
:
0
<
ε
)
(
m
:
ℕ
)
(
hm
:
1
≤
m
)
:
↑
{
samples
:
Fin
m
→
Fin
n
→
Bool
|
|
1
/
↑
m
*
∑
i
:
Fin
m
,
f
(
samples
i
)
*
chi
S
(
samples
i
)
-
fourierCoeff
f
S
|
≥
ε
}
.
card
/
(
2
^
n
)
^
m
≤
2
*
Real.exp
(
-
(
↑
m
*
ε
^
2
/
2
))
source
theorem
BooleanFourier
.
claim_1_2_fourier_sampling
{
n
:
ℕ
}
(
f
:
(
Fin
n
→
Bool
)
→
ℝ
)
(
S
:
Finset
(
Fin
n
)
)
(
hf
:
∀ (
x
:
Fin
n
→
Bool
),
|
f
x
|
≤
1
)
(
ε
:
ℝ
)
(
hε
:
0
<
ε
)
(
δ
:
ℝ
)
(
hδ
:
0
<
δ
)
(
hδ2
:
δ
≤
1
)
:
∃ (
m
:
ℕ
),
1
≤
m
∧
m
≤
⌈
2
*
Real.log
(
2
/
δ
)
/
ε
^
2
⌉₊
∧
↑
{
samples
:
Fin
m
→
Fin
n
→
Bool
|
|
1
/
↑
m
*
∑
i
:
Fin
m
,
f
(
samples
i
)
*
chi
S
(
samples
i
)
-
fourierCoeff
f
S
|
≥
ε
}
.
card
/
(
2
^
n
)
^
m
≤
δ