Rectangle bias and prediction agreement #
def
Complexity.Frontier.RectangleBias
{ι : Type u_2}
{U : Type u_3}
[Finite ι]
[Finite U]
(f : (ι → U) → Bool)
(K : ℕ)
(β : ℝ)
:
Bias at most β on every coordinate rectangle with both sides of size at least K.
Equations
- Complexity.Frontier.RectangleBias f K β = Complexity.Frontier.RectangleBudget (fun (x : ι → U) => Complexity.Frontier.boolSign (f x)) (fun (x : ι → U) => β) K K
Instances For
Splitting by the predicted bit gives the two signed output-class sums.
theorem
Complexity.Frontier.agreement_le_of_output_bias
{α : Type u_1}
[Finite α]
[Nonempty α]
(f g : α → Bool)
{β R : ℝ}
(h : ∀ (b : Bool), |sumOn (fun (x : α) => boolSign (f x)) {x : α | g x = b}| ≤ β * ↑{x : α | g x = b}.ncard + R)
:
Two output-class bias bounds give the agreement bound with the correct factor of two.
theorem
Complexity.Frontier.RectangleBias.abs_sumOn_le_of_dependsOn
{ι : Type u_2}
{U : Type u_3}
[Finite ι]
[Finite U]
{f : (ι → U) → Bool}
{K : ℕ}
{β : ℝ}
(hf : RectangleBias f K β)
(hK : 1 < K)
(hβ : 0 ≤ β)
{S : Set (ι → U)}
{R : Set ι}
(hR : DependsOn (fun (x : ι → U) => x ∈ S) R)
(hle : K ≤ Nat.card U ^ Rᶜ.ncard)
:
If many inputs are unused, an output class is either a thick rectangle or has only
q K² inputs. This is the weighted replacement for the support lemma.
theorem
Complexity.Frontier.RectangleBias.not
{ι : Type u_2}
{U : Type u_3}
[Finite ι]
[Finite U]
{f : (ι → U) → Bool}
{K : ℕ}
{β : ℝ}
(hf : RectangleBias f K β)
:
RectangleBias (fun (x : ι → U) => !f x) K β
Complementing the target preserves its rectangle-bias guarantee.