Instances For
theorem
BooleanFourier.prefersOver_of_lt
{m : ℕ}
{σ : Equiv.Perm (Fin m)}
{a b : Fin m}
(h : σ a < σ b)
:
theorem
BooleanFourier.not_prefersOver_of_lt
{m : ℕ}
{σ : Equiv.Perm (Fin m)}
{a b : Fin m}
(h : σ b < σ a)
:
theorem
BooleanFourier.exists_perm_for_valid_triple
{m : ℕ}
(hm : m ≥ 3)
(a b c : Fin m)
(hab : a ≠ b)
(hbc : b ≠ c)
(hac : a ≠ c)
(pab pbc pac : Bool)
(hvalid : pab = pbc → pac = pab)
:
∃ (σ : Equiv.Perm (Fin m)), prefersOver σ a b = pab ∧ prefersOver σ b c = pbc ∧ prefersOver σ a c = pac
theorem
BooleanFourier.arrow_viable_implies_unique_pivot
{n m : ℕ}
(hm : m ≥ 3)
(f : (Fin n → Bool) → Bool)
(hviable : IsArrowViable f m)
(hodd : IsOdd f)
(i j : Fin n)
(hi : BooleanFourier.influence✝ f i > 0)
(hj : BooleanFourier.influence✝¹ f j > 0)
:
theorem
BooleanFourier.arrow_impossibility
{n m : ℕ}
(hm : m ≥ 3)
(f : (Fin n → Bool) → Bool)
(hunanimous : IsUnanimous f)
(hodd : IsOdd f)
(hviable : IsArrowViable f m)
: