Documentation

Atlas.BooleanFunctions.code.Arrow

def BooleanFourier.IsDictator {n : } (f : (Fin nBool)Bool) :
Instances For
    def BooleanFourier.IsUnanimous {n : } (f : (Fin nBool)Bool) :
    Instances For
      def BooleanFourier.prefersOver {m : } (ranking : Equiv.Perm (Fin m)) (a b : Fin m) :
      Instances For
        def BooleanFourier.IsArrowViable {n : } (f : (Fin nBool)Bool) (m : ) :
        Instances For
          def BooleanFourier.IsOdd {n : } (f : (Fin nBool)Bool) :
          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_placing_at_positions {m : } (hm : m 3) (a b c : Fin m) (hab : a b) (hbc : b c) (hac : a c) :
            ∃ (σ : Equiv.Perm (Fin m)), σ a = 0, σ b = 1, σ c = 2,
            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 = pbcpac = pab) :
            ∃ (σ : Equiv.Perm (Fin m)), prefersOver σ a b = pab prefersOver σ b c = pbc prefersOver σ a c = pac
            theorem BooleanFourier.arrow_viable_subcube {n m : } (hm : m 3) (f : (Fin nBool)Bool) (hviable : IsArrowViable f m) (u v w : Fin nBool) (hfu : f u = true) (hfv : f v = true) (hw : ∀ (k : Fin n), u k = v kw k = u k) :
            f w = true
            theorem BooleanFourier.arrow_viable_implies_unique_pivot {n m : } (hm : m 3) (f : (Fin nBool)Bool) (hviable : IsArrowViable f m) (hodd : IsOdd f) (i j : Fin n) (hi : BooleanFourier.influence✝ f i > 0) (hj : BooleanFourier.influence✝¹ f j > 0) :
            i = j
            theorem BooleanFourier.arrow_impossibility {n m : } (hm : m 3) (f : (Fin nBool)Bool) (hunanimous : IsUnanimous f) (hodd : IsOdd f) (hviable : IsArrowViable f m) :