In mathematics and theoretical computer science, analysis of Boolean functions is the study of real-valued functions on { 0 , 1 } n {\displaystyle \{0,1\}^{n}} or { − 1 , 1 } n {\displaystyle \{-1,1\}^{n}} (such functions are sometimes known as pseudo-Boolean functions) from a spectral perspective. The functions studied are often, but not always, Boolean-valued, making them Boolean functions. The area has found many applications in combinatorics, social choice theory, random graphs, and theoretical computer science, especially in hardness of approximation, property testing, and PAC learning.