Boolean Functions

From Boolean
Revision as of 14:55, 23 September 2019 by Ivi062 (talk | contribs) (Created page with "=Introduction= Let <math>\mathbb{F}_2^n</math> be the vector space of dimension <i>n</i> over the finite field with two elements. The vector space can also be endowed with th...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Introduction

Let be the vector space of dimension n over the finite field with two elements. The vector space can also be endowed with the structure of the field, the finite field with Failed to parse (Conversion error. Server ("https://wikimedia.org/api/rest_") reported: "Cannot get mml. Server problem."): {\displaystyle 2^{n}{\mbox{ elements, }}\mathbb {F} _{2^{n}}} . A function is called a Boolean function in dimenstion n (or n-variable Boolean function).

Given , the support of x is the set Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle supp_x=\{i\in\{1,\ldots,n\} : x_i=1 \}} . The Hamming weight of x is the size of its support (Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle w_H(x)=|supp_x|} ). Similarly the Hamming weight of a Boolean function f is the size of its support, i.e. the set Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \{x\in\mathbb{F}_2^n : f(x)\ne0 \}} . The Hamming distance of two functions f,g is the size of the set Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \{x\in\mathbb{F}_2^n : f(x)\neq g(x) \}\ (w_H(f\oplus g))} .

Representation of a Boolean function

There exist different ways to represent a Boolean function. A simple, but often not efficient, one is by its truth-table. For example consider the following truth-table for a 3-variable Boolean function f.

x f(x)
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1

Algebraic normal form

An n-variable Boolean function can be represented by a multivariate polynomial over Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mathbb{F}} of the form

Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle f(x)=\bigoplus_{I\subseteq\{1,\ldots,n\}}a_i\Big(\prod_{i\in I}x_i\Big)\in\mathbb{F}_2[x_1,\ldots,x_n]/(x_1^2\oplus x_1,\ldots,x_n^2\oplus x_n). }

Such representation is unique and it is the algebraic normal form of f (shortly ANF).

The degree of the ANF is called the algebraic degree of the function, <math>d^0 f=\max \{ |I| : a_I\ne0 \}.

Trace representation

In this case we identify the vector space with the finite field.