<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Boolean_function</id>
	<title>Boolean function - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Boolean_function"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Boolean_function&amp;action=history"/>
	<updated>2026-04-30T15:47:45Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Boolean_function&amp;diff=5219554&amp;oldid=prev</id>
		<title>imported&gt;Citation bot: Removed URL that duplicated identifier. Removed parameters. | Use this bot. Report bugs. | Suggested by Headbomb | Linked from Wikipedia:WikiProject_Academic_Journals/Journals_cited_by_Wikipedia/Sandbox | #UCB_webform_linked 302/1032</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Boolean_function&amp;diff=5219554&amp;oldid=prev"/>
		<updated>2025-08-25T10:25:02Z</updated>

		<summary type="html">&lt;p&gt;Removed URL that duplicated identifier. Removed parameters. | &lt;a href=&quot;/wiki143/index.php?title=En:WP:UCB&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;En:WP:UCB (page does not exist)&quot;&gt;Use this bot&lt;/a&gt;. &lt;a href=&quot;/wiki143/index.php?title=En:WP:DBUG&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;En:WP:DBUG (page does not exist)&quot;&gt;Report bugs&lt;/a&gt;. | Suggested by Headbomb | Linked from Wikipedia:WikiProject_Academic_Journals/Journals_cited_by_Wikipedia/Sandbox | #UCB_webform_linked 302/1032&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Previous revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:25, 25 August 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot;&gt;Line 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Logical connectives sidebar}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Logical connectives sidebar}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In [[mathematics]], a &#039;&#039;&#039;Boolean function&#039;&#039;&#039; is a [[function (mathematics)|function]] whose [[Argument of a function|arguments]] and result assume values from a two-element set (usually {true, false}, {0,1} or {−1,1}).&amp;lt;ref&amp;gt;{{Cite web|title=Boolean function - Encyclopedia of Mathematics|url=https://encyclopediaofmath.org/wiki/Boolean_function|access-date=2021-05-03|website=encyclopediaofmath.org}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web|last=Weisstein|first=Eric W.|title=Boolean Function|url=https://mathworld.wolfram.com/BooleanFunction.html|access-date=2021-05-03|website=mathworld.wolfram.com|language=en}}&amp;lt;/ref&amp;gt; Alternative names are &#039;&#039;&#039;switching function&#039;&#039;&#039;, used especially in older [[computer science]] literature,&amp;lt;ref&amp;gt;{{Cite web|title=switching function|url=https://encyclopedia2.thefreedictionary.com/switching+function|access-date=2021-05-03|website=TheFreeDictionary.com}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite journal|last=Davies|first=D. W.|date=December 1957|title=Switching Functions of Three Variables&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|url=https://ieeexplore.ieee.org/document/5222038&lt;/del&gt;|journal=IRE Transactions on Electronic Computers|volume=EC-6|issue=4|pages=265–275|doi=10.1109/TEC.1957.5222038|issn=0367-9950&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|url-access=subscription&lt;/del&gt;}}&amp;lt;/ref&amp;gt; and &#039;&#039;&#039;[[truth function]]&#039;&#039;&#039; (or &#039;&#039;&#039;logical function)&#039;&#039;&#039;, used in [[logic]]. Boolean functions are the subject of [[Boolean algebra]] and [[switching theory]].&amp;lt;ref&amp;gt;{{Citation|last=McCluskey|first=Edward J.|title=Switching theory|date=2003-01-01|url=https://dl.acm.org/doi/10.5555/1074100.1074844|encyclopedia=Encyclopedia of Computer Science|pages=1727–1731|place=GBR|publisher=John Wiley and Sons Ltd.|doi=|isbn=978-0-470-86412-8|access-date=2021-05-03}}&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In [[mathematics]], a &#039;&#039;&#039;Boolean function&#039;&#039;&#039; is a [[function (mathematics)|function]] whose [[Argument of a function|arguments]] and result assume values from a two-element set (usually {true, false}, {0,1} or {−1,1}).&amp;lt;ref&amp;gt;{{Cite web|title=Boolean function - Encyclopedia of Mathematics|url=https://encyclopediaofmath.org/wiki/Boolean_function|access-date=2021-05-03|website=encyclopediaofmath.org}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web|last=Weisstein|first=Eric W.|title=Boolean Function|url=https://mathworld.wolfram.com/BooleanFunction.html|access-date=2021-05-03|website=mathworld.wolfram.com|language=en}}&amp;lt;/ref&amp;gt; Alternative names are &#039;&#039;&#039;switching function&#039;&#039;&#039;, used especially in older [[computer science]] literature,&amp;lt;ref&amp;gt;{{Cite web|title=switching function|url=https://encyclopedia2.thefreedictionary.com/switching+function|access-date=2021-05-03|website=TheFreeDictionary.com}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite journal|last=Davies|first=D. W.|date=December 1957|title=Switching Functions of Three Variables|journal=IRE Transactions on Electronic Computers|volume=EC-6|issue=4|pages=265–275|doi=10.1109/TEC.1957.5222038|issn=0367-9950}}&amp;lt;/ref&amp;gt; and &#039;&#039;&#039;[[truth function]]&#039;&#039;&#039; (or &#039;&#039;&#039;logical function)&#039;&#039;&#039;, used in [[logic]]. Boolean functions are the subject of [[Boolean algebra]] and [[switching theory]].&amp;lt;ref&amp;gt;{{Citation|last=McCluskey|first=Edward J.|title=Switching theory|date=2003-01-01|url=https://dl.acm.org/doi/10.5555/1074100.1074844|encyclopedia=Encyclopedia of Computer Science|pages=1727–1731|place=GBR|publisher=John Wiley and Sons Ltd.|doi=|isbn=978-0-470-86412-8|access-date=2021-05-03}}&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A Boolean function takes the form &amp;lt;math&amp;gt;f:\{0,1\}^k \to \{0,1\}&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;\{0,1\}&amp;lt;/math&amp;gt; is known as the [[Boolean domain]] and &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; is a non-negative integer called the [[arity]] of the function. In the case where &amp;lt;math&amp;gt;k=0&amp;lt;/math&amp;gt;, the function is a constant element of &amp;lt;math&amp;gt;\{0,1\}&amp;lt;/math&amp;gt;. A Boolean function with multiple outputs, &amp;lt;math&amp;gt;f:\{0,1\}^k \to \{0,1\}^m&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;m&amp;gt;1&amp;lt;/math&amp;gt; is a &amp;#039;&amp;#039;&amp;#039;vectorial&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;vector-valued&amp;#039;&amp;#039; Boolean function (an [[S-box]] in symmetric [[cryptography]]).&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A Boolean function takes the form &amp;lt;math&amp;gt;f:\{0,1\}^k \to \{0,1\}&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;\{0,1\}&amp;lt;/math&amp;gt; is known as the [[Boolean domain]] and &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; is a non-negative integer called the [[arity]] of the function. In the case where &amp;lt;math&amp;gt;k=0&amp;lt;/math&amp;gt;, the function is a constant element of &amp;lt;math&amp;gt;\{0,1\}&amp;lt;/math&amp;gt;. A Boolean function with multiple outputs, &amp;lt;math&amp;gt;f:\{0,1\}^k \to \{0,1\}^m&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;m&amp;gt;1&amp;lt;/math&amp;gt; is a &amp;#039;&amp;#039;&amp;#039;vectorial&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;vector-valued&amp;#039;&amp;#039; Boolean function (an [[S-box]] in symmetric [[cryptography]]).&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Citation bot</name></author>
	</entry>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Boolean_function&amp;diff=813630&amp;oldid=prev</id>
		<title>imported&gt;OAbot: Open access bot: url-access updated in citation with #oabot.</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Boolean_function&amp;diff=813630&amp;oldid=prev"/>
		<updated>2025-06-19T21:32:01Z</updated>

		<summary type="html">&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/OABOT&quot; class=&quot;extiw&quot; title=&quot;wikipedia:OABOT&quot;&gt;Open access bot&lt;/a&gt;: url-access updated in citation with #oabot.&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Previous revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:32, 19 June 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot;&gt;Line 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Logical connectives sidebar}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Logical connectives sidebar}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In [[mathematics]], a &#039;&#039;&#039;Boolean function&#039;&#039;&#039; is a [[function (mathematics)|function]] whose [[Argument of a function|arguments]] and result assume values from a two-element set (usually {true, false}, {0,1} or {−1,1}).&amp;lt;ref&amp;gt;{{Cite web|title=Boolean function - Encyclopedia of Mathematics|url=https://encyclopediaofmath.org/wiki/Boolean_function|access-date=2021-05-03|website=encyclopediaofmath.org}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web|last=Weisstein|first=Eric W.|title=Boolean Function|url=https://mathworld.wolfram.com/BooleanFunction.html|access-date=2021-05-03|website=mathworld.wolfram.com|language=en}}&amp;lt;/ref&amp;gt; Alternative names are &#039;&#039;&#039;switching function&#039;&#039;&#039;, used especially in older [[computer science]] literature,&amp;lt;ref&amp;gt;{{Cite web|title=switching function|url=https://encyclopedia2.thefreedictionary.com/switching+function|access-date=2021-05-03|website=TheFreeDictionary.com}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite journal|last=Davies|first=D. W.|date=December 1957|title=Switching Functions of Three Variables|url=https://ieeexplore.ieee.org/document/5222038|journal=IRE Transactions on Electronic Computers|volume=EC-6|issue=4|pages=265–275|doi=10.1109/TEC.1957.5222038|issn=0367-9950}}&amp;lt;/ref&amp;gt; and &#039;&#039;&#039;[[truth function]]&#039;&#039;&#039; (or &#039;&#039;&#039;logical function)&#039;&#039;&#039;, used in [[logic]]. Boolean functions are the subject of [[Boolean algebra]] and [[switching theory]].&amp;lt;ref&amp;gt;{{Citation|last=McCluskey|first=Edward J.|title=Switching theory|date=2003-01-01|url=https://dl.acm.org/doi/10.5555/1074100.1074844|encyclopedia=Encyclopedia of Computer Science|pages=1727–1731|place=GBR|publisher=John Wiley and Sons Ltd.|doi=|isbn=978-0-470-86412-8|access-date=2021-05-03}}&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In [[mathematics]], a &#039;&#039;&#039;Boolean function&#039;&#039;&#039; is a [[function (mathematics)|function]] whose [[Argument of a function|arguments]] and result assume values from a two-element set (usually {true, false}, {0,1} or {−1,1}).&amp;lt;ref&amp;gt;{{Cite web|title=Boolean function - Encyclopedia of Mathematics|url=https://encyclopediaofmath.org/wiki/Boolean_function|access-date=2021-05-03|website=encyclopediaofmath.org}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web|last=Weisstein|first=Eric W.|title=Boolean Function|url=https://mathworld.wolfram.com/BooleanFunction.html|access-date=2021-05-03|website=mathworld.wolfram.com|language=en}}&amp;lt;/ref&amp;gt; Alternative names are &#039;&#039;&#039;switching function&#039;&#039;&#039;, used especially in older [[computer science]] literature,&amp;lt;ref&amp;gt;{{Cite web|title=switching function|url=https://encyclopedia2.thefreedictionary.com/switching+function|access-date=2021-05-03|website=TheFreeDictionary.com}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite journal|last=Davies|first=D. W.|date=December 1957|title=Switching Functions of Three Variables|url=https://ieeexplore.ieee.org/document/5222038|journal=IRE Transactions on Electronic Computers|volume=EC-6|issue=4|pages=265–275|doi=10.1109/TEC.1957.5222038|issn=0367-9950&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|url-access=subscription&lt;/ins&gt;}}&amp;lt;/ref&amp;gt; and &#039;&#039;&#039;[[truth function]]&#039;&#039;&#039; (or &#039;&#039;&#039;logical function)&#039;&#039;&#039;, used in [[logic]]. Boolean functions are the subject of [[Boolean algebra]] and [[switching theory]].&amp;lt;ref&amp;gt;{{Citation|last=McCluskey|first=Edward J.|title=Switching theory|date=2003-01-01|url=https://dl.acm.org/doi/10.5555/1074100.1074844|encyclopedia=Encyclopedia of Computer Science|pages=1727–1731|place=GBR|publisher=John Wiley and Sons Ltd.|doi=|isbn=978-0-470-86412-8|access-date=2021-05-03}}&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A Boolean function takes the form &amp;lt;math&amp;gt;f:\{0,1\}^k \to \{0,1\}&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;\{0,1\}&amp;lt;/math&amp;gt; is known as the [[Boolean domain]] and &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; is a non-negative integer called the [[arity]] of the function. In the case where &amp;lt;math&amp;gt;k=0&amp;lt;/math&amp;gt;, the function is a constant element of &amp;lt;math&amp;gt;\{0,1\}&amp;lt;/math&amp;gt;. A Boolean function with multiple outputs, &amp;lt;math&amp;gt;f:\{0,1\}^k \to \{0,1\}^m&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;m&amp;gt;1&amp;lt;/math&amp;gt; is a &amp;#039;&amp;#039;&amp;#039;vectorial&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;vector-valued&amp;#039;&amp;#039; Boolean function (an [[S-box]] in symmetric [[cryptography]]).&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A Boolean function takes the form &amp;lt;math&amp;gt;f:\{0,1\}^k \to \{0,1\}&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;\{0,1\}&amp;lt;/math&amp;gt; is known as the [[Boolean domain]] and &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; is a non-negative integer called the [[arity]] of the function. In the case where &amp;lt;math&amp;gt;k=0&amp;lt;/math&amp;gt;, the function is a constant element of &amp;lt;math&amp;gt;\{0,1\}&amp;lt;/math&amp;gt;. A Boolean function with multiple outputs, &amp;lt;math&amp;gt;f:\{0,1\}^k \to \{0,1\}^m&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;m&amp;gt;1&amp;lt;/math&amp;gt; is a &amp;#039;&amp;#039;&amp;#039;vectorial&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;vector-valued&amp;#039;&amp;#039; Boolean function (an [[S-box]] in symmetric [[cryptography]]).&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l75&quot;&gt;Line 75:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 75:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &amp;#039;&amp;#039;[[Boolean derivative]]&amp;#039;&amp;#039; of the function to one of the arguments is a (&amp;#039;&amp;#039;k&amp;#039;&amp;#039;−1)-ary function that is true when the output of the function is sensitive to the chosen input variable; it is the XOR of the two corresponding cofactors. A derivative and a cofactor are used in a [[Reed–Muller expansion]]. The concept can be generalized as a &amp;#039;&amp;#039;k&amp;#039;&amp;#039;-ary derivative in the direction dx, obtained as the difference (XOR) of the function at x and x + dx.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &amp;#039;&amp;#039;[[Boolean derivative]]&amp;#039;&amp;#039; of the function to one of the arguments is a (&amp;#039;&amp;#039;k&amp;#039;&amp;#039;−1)-ary function that is true when the output of the function is sensitive to the chosen input variable; it is the XOR of the two corresponding cofactors. A derivative and a cofactor are used in a [[Reed–Muller expansion]]. The concept can be generalized as a &amp;#039;&amp;#039;k&amp;#039;&amp;#039;-ary derivative in the direction dx, obtained as the difference (XOR) of the function at x and x + dx.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &#039;&#039;[[Zhegalkin polynomial#Möbius transformation|Möbius transform]]&#039;&#039; (or &#039;&#039;Boole–Möbius transform&#039;&#039;) of a Boolean function is the set of coefficients of its [[Zhegalkin polynomial|polynomial]] ([[algebraic normal form]]), as a function of the monomial exponent vectors. It is a [[Involution (mathematics)|self-inverse]] transform. It can be calculated efficiently using a [[Butterfly diagram|butterfly algorithm]] (&quot;&#039;&#039;Fast Möbius Transform&#039;&#039;&quot;), analogous to the [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Fast &lt;/del&gt;Fourier transform&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|Fast Fourier Transform&lt;/del&gt;]].&amp;lt;ref&amp;gt;{{Citation|last=Carlet|first=Claude|title=Boolean Functions for Cryptography and Error-Correcting Codes|date=2010|url=https://www.math.univ-paris13.fr/~carlet/chap-fcts-Bool-corr.pdf|work=Boolean Models and Methods in Mathematics, Computer Science, and Engineering|pages=257–397|editor-last=|editor-first=|series=Encyclopedia of Mathematics and its Applications|place=Cambridge|publisher=Cambridge University Press|isbn=978-0-521-84752-0|access-date=2021-05-17|editor2-last=|editor2-first=}}&amp;lt;/ref&amp;gt; &#039;&#039;Coincident&#039;&#039; Boolean functions are equal to their Möbius transform, i.e. their truth table (minterm) values equal their algebraic (monomial) coefficients.&amp;lt;ref&amp;gt;{{Cite journal|last1=Pieprzyk|first1=Josef|last2=Wang|first2=Huaxiong|last3=Zhang|first3=Xian-Mo|date=2011-05-01|title=Mobius transforms, coincident Boolean functions and non-coincidence property of Boolean functions|url=https://doi.org/10.1080/00207160.2010.509428|journal=International Journal of Computer Mathematics|volume=88|issue=7|pages=1398–1416|doi=10.1080/00207160.2010.509428|s2cid=9580510 |issn=0020-7160}}&amp;lt;/ref&amp;gt; There are 2^2^(&#039;&#039;k&#039;&#039;−1) coincident functions of &#039;&#039;k&#039;&#039; arguments.&amp;lt;ref&amp;gt;{{Cite journal|last1=Nitaj|first1=Abderrahmane|last2=Susilo|first2=Willy|last3=Tonien|first3=Joseph|date=2017-10-01|title=Dirichlet product for boolean functions|url=https://doi.org/10.1007/s12190-016-1037-4|journal=Journal of Applied Mathematics and Computing|language=en|volume=55|issue=1|pages=293–312|doi=10.1007/s12190-016-1037-4|s2cid=16760125 |issn=1865-2085}}&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &#039;&#039;[[Zhegalkin polynomial#Möbius transformation|Möbius transform]]&#039;&#039; (or &#039;&#039;Boole–Möbius transform&#039;&#039;) of a Boolean function is the set of coefficients of its [[Zhegalkin polynomial|polynomial]] ([[algebraic normal form]]), as a function of the monomial exponent vectors. It is a [[Involution (mathematics)|self-inverse]] transform. It can be calculated efficiently using a [[Butterfly diagram|butterfly algorithm]] (&quot;&#039;&#039;Fast Möbius Transform&#039;&#039;&quot;), analogous to the [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;fast &lt;/ins&gt;Fourier transform]].&amp;lt;ref&amp;gt;{{Citation|last=Carlet|first=Claude|title=Boolean Functions for Cryptography and Error-Correcting Codes|date=2010|url=https://www.math.univ-paris13.fr/~carlet/chap-fcts-Bool-corr.pdf|work=Boolean Models and Methods in Mathematics, Computer Science, and Engineering|pages=257–397|editor-last=|editor-first=|series=Encyclopedia of Mathematics and its Applications|place=Cambridge|publisher=Cambridge University Press|isbn=978-0-521-84752-0|access-date=2021-05-17|editor2-last=|editor2-first=}}&amp;lt;/ref&amp;gt; &#039;&#039;Coincident&#039;&#039; Boolean functions are equal to their Möbius transform, i.e. their truth table (minterm) values equal their algebraic (monomial) coefficients.&amp;lt;ref&amp;gt;{{Cite journal|last1=Pieprzyk|first1=Josef|last2=Wang|first2=Huaxiong|last3=Zhang|first3=Xian-Mo|date=2011-05-01|title=Mobius transforms, coincident Boolean functions and non-coincidence property of Boolean functions|url=https://doi.org/10.1080/00207160.2010.509428|journal=International Journal of Computer Mathematics|volume=88|issue=7|pages=1398–1416|doi=10.1080/00207160.2010.509428|s2cid=9580510 |issn=0020-7160&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|url-access=subscription&lt;/ins&gt;}}&amp;lt;/ref&amp;gt; There are 2^2^(&#039;&#039;k&#039;&#039;−1) coincident functions of &#039;&#039;k&#039;&#039; arguments.&amp;lt;ref&amp;gt;{{Cite journal|last1=Nitaj|first1=Abderrahmane|last2=Susilo|first2=Willy|last3=Tonien|first3=Joseph|date=2017-10-01|title=Dirichlet product for boolean functions|url=https://doi.org/10.1007/s12190-016-1037-4|journal=Journal of Applied Mathematics and Computing|language=en|volume=55|issue=1|pages=293–312|doi=10.1007/s12190-016-1037-4|s2cid=16760125 |issn=1865-2085}}&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Cryptographic analysis ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Cryptographic analysis ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l85&quot;&gt;Line 85:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 85:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Linear approximation table ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Linear approximation table ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;These concepts can be extended naturally to &#039;&#039;vectorial&#039;&#039; Boolean functions by considering their output bits (&#039;&#039;coordinates&#039;&#039;) individually, or more thoroughly, by looking at the set of all linear functions of output bits, known as its &#039;&#039;components&#039;&#039;.&amp;lt;ref name=&quot;:2&quot;&amp;gt;{{Cite web|last=Carlet|first=Claude|title=Vectorial Boolean Functions for Cryptography|url=https://www.math.univ-paris13.fr/~carlet/chap-vectorial-fcts-corr.pdf|url-status=live|website=University of Paris|archive-url=https://web.archive.org/web/20160117102533/http://www.math.univ-paris13.fr:80/~carlet/chap-vectorial-fcts-corr.pdf |archive-date=2016-01-17 }}&amp;lt;/ref&amp;gt; The set of Walsh transforms of the components is known as a &#039;&#039;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Linear Approximation Table&lt;/del&gt;&#039;&#039;&#039; (LAT)&amp;lt;ref name=&quot;:3&quot;&amp;gt;{{Cite web|last=Heys|first=Howard M.|title=A Tutorial on Linear and Differential Cryptanalysis|url=http://www.cs.bc.edu/~straubin/crypto2017/heys.pdf|url-status=live|archive-url=https://web.archive.org/web/20170517014157/http://www.cs.bc.edu:80/~straubin/crypto2017/heys.pdf |archive-date=2017-05-17 }}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&quot;:4&quot;&amp;gt;{{Cite web|title=S-Boxes and Their Algebraic Representations — Sage 9.2 Reference Manual: Cryptography|url=https://doc.sagemath.org/html/en/reference/cryptography/sage/crypto/sbox.html|access-date=2021-05-04|website=doc.sagemath.org}}&amp;lt;/ref&amp;gt; or &#039;&#039;correlation matrix&#039;&#039;;&amp;lt;ref&amp;gt;{{cite conference | last1 = Daemen | first1 = Joan | last2 = Govaerts | first2 = René | last3 = Vandewalle | first3 = Joos | editor-last = Preneel | editor-first = Bart | title = Correlation matrices | doi = 10.1007/3-540-60590-8_21 | pages = 275–285 | publisher = Springer | series = Lecture Notes in Computer Science | book-title = Fast Software Encryption: Second International Workshop. Leuven, Belgium, 14-16 December 1994, Proceedings | volume = 1008 | year = 1994| doi-access = free }}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web|last=Daemen|first=Joan|date=10 June 1998|title=Chapter 5: Propagation and Correlation - Annex to AES Proposal Rijndael|url=https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Standards-and-Guidelines/documents/aes-development/PropCorr.pdf|url-status=live|website=NIST|archive-url=https://web.archive.org/web/20180723015757/https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Standards-and-Guidelines/documents/aes-development/PropCorr.pdf |archive-date=2018-07-23 }}&amp;lt;/ref&amp;gt; it describes the correlation between different linear combinations of input and output bits. The set of autocorrelation coefficients of the components is the &#039;&#039;autocorrelation table&#039;&#039;,&amp;lt;ref name=&quot;:4&quot; /&amp;gt; related by a Walsh transform of the components&amp;lt;ref&amp;gt;{{Cite web|last=Nyberg|first=Kaisa|date=December 1, 2019|title=The Extended Autocorrelation and Boomerang Tables and Links Between Nonlinearity Properties of Vectorial Boolean Functions|url=https://eprint.iacr.org/2019/1381.pdf|url-status=live|archive-url=https://web.archive.org/web/20201102023321/https://eprint.iacr.org/2019/1381.pdf |archive-date=2020-11-02 }}&amp;lt;/ref&amp;gt; to the more widely used &#039;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Difference Distribution Table&lt;/del&gt;&#039;&#039; (DDT)&amp;lt;ref name=&quot;:3&quot; /&amp;gt;&amp;lt;ref name=&quot;:4&quot; /&amp;gt; which lists the correlations between differences in input and output bits (see also: [[S-box]]).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;These concepts can be extended naturally to &#039;&#039;vectorial&#039;&#039; Boolean functions by considering their output bits (&#039;&#039;coordinates&#039;&#039;) individually, or more thoroughly, by looking at the set of all linear functions of output bits, known as its &#039;&#039;components&#039;&#039;.&amp;lt;ref name=&quot;:2&quot;&amp;gt;{{Cite web|last=Carlet|first=Claude|title=Vectorial Boolean Functions for Cryptography|url=https://www.math.univ-paris13.fr/~carlet/chap-vectorial-fcts-corr.pdf|url-status=live|website=University of Paris|archive-url=https://web.archive.org/web/20160117102533/http://www.math.univ-paris13.fr:80/~carlet/chap-vectorial-fcts-corr.pdf |archive-date=2016-01-17 }}&amp;lt;/ref&amp;gt; The set of Walsh transforms of the components is known as a &#039;&#039;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;linear approximation table&lt;/ins&gt;&#039;&#039;&#039; (LAT)&amp;lt;ref name=&quot;:3&quot;&amp;gt;{{Cite web|last=Heys|first=Howard M.|title=A Tutorial on Linear and Differential Cryptanalysis|url=http://www.cs.bc.edu/~straubin/crypto2017/heys.pdf|url-status=live|archive-url=https://web.archive.org/web/20170517014157/http://www.cs.bc.edu:80/~straubin/crypto2017/heys.pdf |archive-date=2017-05-17 }}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&quot;:4&quot;&amp;gt;{{Cite web|title=S-Boxes and Their Algebraic Representations — Sage 9.2 Reference Manual: Cryptography|url=https://doc.sagemath.org/html/en/reference/cryptography/sage/crypto/sbox.html|access-date=2021-05-04|website=doc.sagemath.org}}&amp;lt;/ref&amp;gt; or &#039;&#039;correlation matrix&#039;&#039;;&amp;lt;ref&amp;gt;{{cite conference | last1 = Daemen | first1 = Joan | last2 = Govaerts | first2 = René | last3 = Vandewalle | first3 = Joos | editor-last = Preneel | editor-first = Bart | title = Correlation matrices | doi = 10.1007/3-540-60590-8_21 | pages = 275–285 | publisher = Springer | series = Lecture Notes in Computer Science | book-title = Fast Software Encryption: Second International Workshop. Leuven, Belgium, 14-16 December 1994, Proceedings | volume = 1008 | year = 1994| doi-access = free }}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web|last=Daemen|first=Joan|date=10 June 1998|title=Chapter 5: Propagation and Correlation - Annex to AES Proposal Rijndael|url=https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Standards-and-Guidelines/documents/aes-development/PropCorr.pdf|url-status=live|website=NIST|archive-url=https://web.archive.org/web/20180723015757/https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Standards-and-Guidelines/documents/aes-development/PropCorr.pdf |archive-date=2018-07-23 }}&amp;lt;/ref&amp;gt; it describes the correlation between different linear combinations of input and output bits. The set of autocorrelation coefficients of the components is the &#039;&#039;autocorrelation table&#039;&#039;,&amp;lt;ref name=&quot;:4&quot; /&amp;gt; related by a Walsh transform of the components&amp;lt;ref&amp;gt;{{Cite web|last=Nyberg|first=Kaisa|date=December 1, 2019|title=The Extended Autocorrelation and Boomerang Tables and Links Between Nonlinearity Properties of Vectorial Boolean Functions|url=https://eprint.iacr.org/2019/1381.pdf|url-status=live|archive-url=https://web.archive.org/web/20201102023321/https://eprint.iacr.org/2019/1381.pdf |archive-date=2020-11-02 }}&amp;lt;/ref&amp;gt; to the more widely used &#039;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;difference distribution table&lt;/ins&gt;&#039;&#039; (DDT)&amp;lt;ref name=&quot;:3&quot; /&amp;gt;&amp;lt;ref name=&quot;:4&quot; /&amp;gt; which lists the correlations between differences in input and output bits (see also: [[S-box]]).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Real polynomial form ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Real polynomial form ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;OAbot</name></author>
	</entry>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Boolean_function&amp;diff=444411&amp;oldid=prev</id>
		<title>imported&gt;MrSwedishMeatballs: /* On the symmetric hypercube */</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Boolean_function&amp;diff=444411&amp;oldid=prev"/>
		<updated>2025-04-22T14:24:13Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;On the symmetric hypercube&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Short description|Function returning one of only two values}}&lt;br /&gt;
{{distinguish|Binary function}}&lt;br /&gt;
[[File:BinaryDecisionTree.svg|thumb|A [[binary decision diagram]] and [[truth table]] of a ternary Boolean function]]&lt;br /&gt;
{{Logical connectives sidebar}}&lt;br /&gt;
&lt;br /&gt;
In [[mathematics]], a &amp;#039;&amp;#039;&amp;#039;Boolean function&amp;#039;&amp;#039;&amp;#039; is a [[function (mathematics)|function]] whose [[Argument of a function|arguments]] and result assume values from a two-element set (usually {true, false}, {0,1} or {−1,1}).&amp;lt;ref&amp;gt;{{Cite web|title=Boolean function - Encyclopedia of Mathematics|url=https://encyclopediaofmath.org/wiki/Boolean_function|access-date=2021-05-03|website=encyclopediaofmath.org}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web|last=Weisstein|first=Eric W.|title=Boolean Function|url=https://mathworld.wolfram.com/BooleanFunction.html|access-date=2021-05-03|website=mathworld.wolfram.com|language=en}}&amp;lt;/ref&amp;gt; Alternative names are &amp;#039;&amp;#039;&amp;#039;switching function&amp;#039;&amp;#039;&amp;#039;, used especially in older [[computer science]] literature,&amp;lt;ref&amp;gt;{{Cite web|title=switching function|url=https://encyclopedia2.thefreedictionary.com/switching+function|access-date=2021-05-03|website=TheFreeDictionary.com}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite journal|last=Davies|first=D. W.|date=December 1957|title=Switching Functions of Three Variables|url=https://ieeexplore.ieee.org/document/5222038|journal=IRE Transactions on Electronic Computers|volume=EC-6|issue=4|pages=265–275|doi=10.1109/TEC.1957.5222038|issn=0367-9950}}&amp;lt;/ref&amp;gt; and &amp;#039;&amp;#039;&amp;#039;[[truth function]]&amp;#039;&amp;#039;&amp;#039; (or &amp;#039;&amp;#039;&amp;#039;logical function)&amp;#039;&amp;#039;&amp;#039;, used in [[logic]]. Boolean functions are the subject of [[Boolean algebra]] and [[switching theory]].&amp;lt;ref&amp;gt;{{Citation|last=McCluskey|first=Edward J.|title=Switching theory|date=2003-01-01|url=https://dl.acm.org/doi/10.5555/1074100.1074844|encyclopedia=Encyclopedia of Computer Science|pages=1727–1731|place=GBR|publisher=John Wiley and Sons Ltd.|doi=|isbn=978-0-470-86412-8|access-date=2021-05-03}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A Boolean function takes the form &amp;lt;math&amp;gt;f:\{0,1\}^k \to \{0,1\}&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;\{0,1\}&amp;lt;/math&amp;gt; is known as the [[Boolean domain]] and &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; is a non-negative integer called the [[arity]] of the function. In the case where &amp;lt;math&amp;gt;k=0&amp;lt;/math&amp;gt;, the function is a constant element of &amp;lt;math&amp;gt;\{0,1\}&amp;lt;/math&amp;gt;. A Boolean function with multiple outputs, &amp;lt;math&amp;gt;f:\{0,1\}^k \to \{0,1\}^m&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;m&amp;gt;1&amp;lt;/math&amp;gt; is a &amp;#039;&amp;#039;&amp;#039;vectorial&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;vector-valued&amp;#039;&amp;#039; Boolean function (an [[S-box]] in symmetric [[cryptography]]).&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are &amp;lt;math&amp;gt;2^{2^k}&amp;lt;/math&amp;gt; different Boolean functions with &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; arguments; equal to the number of different [[truth table]]s with &amp;lt;math&amp;gt;2^k&amp;lt;/math&amp;gt; entries.&lt;br /&gt;
&lt;br /&gt;
Every &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;-ary Boolean function can be expressed as a [[propositional formula]] in &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; variables &amp;lt;math&amp;gt;x_1,...,x_k&amp;lt;/math&amp;gt;, and two propositional formulas are [[logical equivalence|logically equivalent]] if and only if they express the same Boolean function.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
[[File:Logical connectives Hasse diagram.svg|alt=Diagram displaying the sixteen binary Boolean functions|thumb|The sixteen binary Boolean functions]]&lt;br /&gt;
{{See also|Truth table|Truth function}}&lt;br /&gt;
The rudimentary symmetric Boolean functions ([[logical connective]]s or [[logic gate]]s) are:&lt;br /&gt;
&lt;br /&gt;
* [[Inverter (logic gate)|NOT]], [[negation]] or [[Logical complement|complement]] - which receives one input and returns true when that input is false (&amp;quot;not&amp;quot;)&lt;br /&gt;
* [[AND gate|AND]] or [[Logical conjunction|conjunction]] - true when all inputs are true (&amp;quot;both&amp;quot;)&lt;br /&gt;
* [[OR gate|OR]] or [[Logical disjunction|disjunction]] - true when any input is true (&amp;quot;either&amp;quot;)&lt;br /&gt;
* [[XOR gate|XOR]] or [[Exclusive or|exclusive disjunction]] - true when one of its inputs is true and the other is false (&amp;quot;not equal&amp;quot;)&lt;br /&gt;
* [[NAND gate|NAND]] or [[Sheffer stroke]] - true when it is not the case that all inputs are true (&amp;quot;not both&amp;quot;)&lt;br /&gt;
*[[NOR gate|NOR]] or [[Logical NOR|logical nor]] - true when none of the inputs are true (&amp;quot;neither&amp;quot;)&lt;br /&gt;
*[[XNOR gate|XNOR]] or [[logical equality]] - true when both inputs are the same (&amp;quot;equal&amp;quot;)&lt;br /&gt;
An example of a more complicated function is the [[majority function]] (of an odd number of inputs).&lt;br /&gt;
&lt;br /&gt;
== Representation ==&lt;br /&gt;
[[File:Three input boolean circuit.svg|thumb|A Boolean function represented as a [[Boolean circuit]]]]&lt;br /&gt;
A Boolean function may be specified in a variety of ways:&lt;br /&gt;
&lt;br /&gt;
* [[Truth table]]: explicitly listing its value for all possible values of the arguments&lt;br /&gt;
**Marquand diagram: truth table values arranged in a two-dimensional grid (used in a [[Karnaugh map]])&lt;br /&gt;
**[[Binary decision diagram]], listing the truth table values at the bottom of a binary tree&lt;br /&gt;
**[[Venn diagram]], depicting the truth table values as a colouring of regions of the plane&lt;br /&gt;
Algebraically, as a [[propositional formula]] using rudimentary Boolean functions:&lt;br /&gt;
&lt;br /&gt;
* [[Negation normal form]], an arbitrary mix of AND and ORs of the arguments and their complements&lt;br /&gt;
* [[Disjunctive normal form]], as an OR of ANDs of the arguments and their complements&lt;br /&gt;
* [[Conjunctive normal form]], as an AND of ORs of the arguments and their complements&lt;br /&gt;
*[[Canonical normal form]], a standardized formula which uniquely identifies the function:&lt;br /&gt;
**[[Algebraic normal form]] or [[Zhegalkin polynomial]], as a XOR of ANDs of the arguments (no complements allowed)&lt;br /&gt;
**&amp;#039;&amp;#039;Full&amp;#039;&amp;#039; (canonical) [[disjunctive normal form]], an OR of ANDs each containing every argument or complement ([[minterms]])&lt;br /&gt;
**&amp;#039;&amp;#039;Full&amp;#039;&amp;#039; (canonical) [[conjunctive normal form]], an AND of ORs each containing every argument or complement ([[maxterms]])&lt;br /&gt;
**[[Blake canonical form]], the OR of all the [[prime implicant]]s of the function&lt;br /&gt;
Boolean formulas can also be displayed as a graph:&lt;br /&gt;
* [[Propositional directed acyclic graph]]&lt;br /&gt;
**[[Circuit (computer science)|Digital circuit]] diagram of [[logic gate]]s, a [[Boolean circuit]]&lt;br /&gt;
**[[And-inverter graph]], using only AND and NOT&lt;br /&gt;
In order to optimize electronic circuits, Boolean formulas can be [[Minimization of Boolean functions|minimized]] using the [[Quine–McCluskey algorithm]] or [[Karnaugh map]].&lt;br /&gt;
&lt;br /&gt;
== Analysis ==&lt;br /&gt;
{{see also|Analysis of Boolean functions}}&lt;br /&gt;
&lt;br /&gt;
===Properties===&lt;br /&gt;
&lt;br /&gt;
A Boolean function can have a variety of properties:&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;{{Cite web|title=Boolean functions — Sage 9.2 Reference Manual: Cryptography|url=https://doc.sagemath.org/html/en/reference/cryptography/sage/crypto/boolean_function.html|access-date=2021-05-01|website=doc.sagemath.org}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[Constant function|Constant]]: Is always true or always false regardless of its arguments.&lt;br /&gt;
* [[Monotonic function#In Boolean functions|Monotone]]: for every combination of argument values, changing an argument from false to true can only cause the output to switch from false to true and not from true to false. A function is said to be [[Unate function|unate]] in a certain variable if it is monotone with respect to changes in that variable. &lt;br /&gt;
* [[Linearity#Boolean functions|Linear]]: for each variable, flipping the value of the variable either always makes a difference in the truth value or never makes a difference (a [[parity function]]).&lt;br /&gt;
* [[Symmetric Boolean function|Symmetric]]: the value does not depend on the order of its arguments.&lt;br /&gt;
* [[Read-once function|Read-once]]: Can be expressed with [[logical conjunction|conjunction]], [[logical disjunction|disjunction]], and [[negation]] with a single instance of each variable.&lt;br /&gt;
*[[Balanced Boolean function|Balanced]]: if its [[truth table]] contains an equal number of zeros and ones. The [[Hamming weight]] of the function is the number of ones in the truth table.&lt;br /&gt;
* [[Bent function|Bent]]: its derivatives are all balanced (the autocorrelation spectrum is zero)&lt;br /&gt;
* [[Correlation immunity|Correlation immune]] to &amp;#039;&amp;#039;m&amp;#039;&amp;#039;th order: if the output is uncorrelated with all (linear) combinations of at most &amp;#039;&amp;#039;m&amp;#039;&amp;#039; arguments&lt;br /&gt;
*[[Evasive Boolean function|Evasive]]: if evaluation of the function always requires the value of all arguments&lt;br /&gt;
*A Boolean function is a &amp;#039;&amp;#039;Sheffer function&amp;#039;&amp;#039; if it can be used to create (by composition) any arbitrary Boolean function (see [[functional completeness]])&lt;br /&gt;
*The &amp;#039;&amp;#039;algebraic degree&amp;#039;&amp;#039; of a function is the order of the highest order monomial in its [[algebraic normal form]]&lt;br /&gt;
[[Circuit complexity]] attempts to classify Boolean functions with respect to the size or depth of circuits that can compute them.&lt;br /&gt;
&lt;br /&gt;
=== Derived functions ===&lt;br /&gt;
A Boolean function may be decomposed using [[Boole&amp;#039;s expansion theorem]] in positive and negative &amp;#039;&amp;#039;Shannon&amp;#039;&amp;#039; &amp;#039;&amp;#039;cofactors&amp;#039;&amp;#039; ([[Shannon expansion]]), which are the (&amp;#039;&amp;#039;k&amp;#039;&amp;#039;−1)-ary functions resulting from fixing one of the arguments (to 0 or 1). The general &amp;#039;&amp;#039;k&amp;#039;&amp;#039;-ary functions obtained by imposing a linear constraint on a set of inputs (a linear subspace) are known as &amp;#039;&amp;#039;subfunctions&amp;#039;&amp;#039;.&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;{{Cite book|last1=Tarannikov|first1=Yuriy|last2=Korolev|first2=Peter|last3=Botev|first3=Anton|title=Advances in Cryptology — ASIACRYPT 2001 |chapter=Autocorrelation Coefficients and Correlation Immunity of Boolean Functions |date=2001|editor-last=Boyd|editor-first=Colin|series=Lecture Notes in Computer Science|volume=2248|language=en|location=Berlin, Heidelberg|publisher=Springer|pages=460–479|doi=10.1007/3-540-45682-1_27|isbn=978-3-540-45682-7|doi-access=free}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;[[Boolean derivative]]&amp;#039;&amp;#039; of the function to one of the arguments is a (&amp;#039;&amp;#039;k&amp;#039;&amp;#039;−1)-ary function that is true when the output of the function is sensitive to the chosen input variable; it is the XOR of the two corresponding cofactors. A derivative and a cofactor are used in a [[Reed–Muller expansion]]. The concept can be generalized as a &amp;#039;&amp;#039;k&amp;#039;&amp;#039;-ary derivative in the direction dx, obtained as the difference (XOR) of the function at x and x + dx.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;[[Zhegalkin polynomial#Möbius transformation|Möbius transform]]&amp;#039;&amp;#039; (or &amp;#039;&amp;#039;Boole–Möbius transform&amp;#039;&amp;#039;) of a Boolean function is the set of coefficients of its [[Zhegalkin polynomial|polynomial]] ([[algebraic normal form]]), as a function of the monomial exponent vectors. It is a [[Involution (mathematics)|self-inverse]] transform. It can be calculated efficiently using a [[Butterfly diagram|butterfly algorithm]] (&amp;quot;&amp;#039;&amp;#039;Fast Möbius Transform&amp;#039;&amp;#039;&amp;quot;), analogous to the [[Fast Fourier transform|Fast Fourier Transform]].&amp;lt;ref&amp;gt;{{Citation|last=Carlet|first=Claude|title=Boolean Functions for Cryptography and Error-Correcting Codes|date=2010|url=https://www.math.univ-paris13.fr/~carlet/chap-fcts-Bool-corr.pdf|work=Boolean Models and Methods in Mathematics, Computer Science, and Engineering|pages=257–397|editor-last=|editor-first=|series=Encyclopedia of Mathematics and its Applications|place=Cambridge|publisher=Cambridge University Press|isbn=978-0-521-84752-0|access-date=2021-05-17|editor2-last=|editor2-first=}}&amp;lt;/ref&amp;gt; &amp;#039;&amp;#039;Coincident&amp;#039;&amp;#039; Boolean functions are equal to their Möbius transform, i.e. their truth table (minterm) values equal their algebraic (monomial) coefficients.&amp;lt;ref&amp;gt;{{Cite journal|last1=Pieprzyk|first1=Josef|last2=Wang|first2=Huaxiong|last3=Zhang|first3=Xian-Mo|date=2011-05-01|title=Mobius transforms, coincident Boolean functions and non-coincidence property of Boolean functions|url=https://doi.org/10.1080/00207160.2010.509428|journal=International Journal of Computer Mathematics|volume=88|issue=7|pages=1398–1416|doi=10.1080/00207160.2010.509428|s2cid=9580510 |issn=0020-7160}}&amp;lt;/ref&amp;gt; There are 2^2^(&amp;#039;&amp;#039;k&amp;#039;&amp;#039;−1) coincident functions of &amp;#039;&amp;#039;k&amp;#039;&amp;#039; arguments.&amp;lt;ref&amp;gt;{{Cite journal|last1=Nitaj|first1=Abderrahmane|last2=Susilo|first2=Willy|last3=Tonien|first3=Joseph|date=2017-10-01|title=Dirichlet product for boolean functions|url=https://doi.org/10.1007/s12190-016-1037-4|journal=Journal of Applied Mathematics and Computing|language=en|volume=55|issue=1|pages=293–312|doi=10.1007/s12190-016-1037-4|s2cid=16760125 |issn=1865-2085}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Cryptographic analysis ===&lt;br /&gt;
The &amp;#039;&amp;#039;[[Walsh transform]]&amp;#039;&amp;#039; of a Boolean function is a k-ary integer-valued function giving the coefficients of a decomposition into [[Parity function|linear functions]] ([[Walsh function]]s), analogous to the decomposition of real-valued functions into [[harmonic]]s by the [[Fourier transform]]. Its square is the &amp;#039;&amp;#039;power spectrum&amp;#039;&amp;#039; or &amp;#039;&amp;#039;Walsh spectrum&amp;#039;&amp;#039;. The Walsh coefficient of a single bit vector is a measure for the correlation of that bit with the output of the Boolean function. The maximum (in absolute value) Walsh coefficient is known as the &amp;#039;&amp;#039;linearity&amp;#039;&amp;#039; of the function.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt; The highest number of bits (order) for which all Walsh coefficients are 0 (i.e. the subfunctions are balanced) is known as &amp;#039;&amp;#039;resiliency&amp;#039;&amp;#039;, and the function is said to be [[Correlation immunity|correlation immune]] to that order.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt; The Walsh coefficients play a key role in [[linear cryptanalysis]].&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;[[autocorrelation]]&amp;#039;&amp;#039; of a Boolean function is a k-ary integer-valued function giving the correlation between a certain set of changes in the inputs and the function output. For a given bit vector it is related to the Hamming weight of the derivative in that direction. The maximal autocorrelation coefficient (in absolute value) is known as the &amp;#039;&amp;#039;absolute indicator&amp;#039;&amp;#039;.&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt; If all autocorrelation coefficients are 0 (i.e. the derivatives are balanced) for a certain number of bits then the function is said to satisfy the &amp;#039;&amp;#039;propagation criterion&amp;#039;&amp;#039; to that order; if they are all zero then the function is a [[bent function]].&amp;lt;ref&amp;gt;{{Cite journal|last1=Canteaut|first1=Anne|last2=Carlet|first2=Claude|last3=Charpin|first3=Pascale|last4=Fontaine|first4=Caroline|date=2000-05-14|title=Propagation characteristics and correlation-immunity of highly nonlinear boolean functions|url=https://dl.acm.org/doi/10.5555/1756169.1756219|journal=Proceedings of the 19th International Conference on Theory and Application of Cryptographic Techniques|series=EUROCRYPT&amp;#039;00|location=Bruges, Belgium|publisher=Springer-Verlag|pages=507–522|isbn=978-3-540-67517-4}}&amp;lt;/ref&amp;gt; The autocorrelation coefficients play a key role in [[differential cryptanalysis]].&lt;br /&gt;
&lt;br /&gt;
The Walsh coefficients of a Boolean function and its autocorrelation coefficients are related by the equivalent of the [[Wiener–Khinchin theorem]], which states that the autocorrelation and the power spectrum are a Walsh transform pair.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Linear approximation table ====&lt;br /&gt;
These concepts can be extended naturally to &amp;#039;&amp;#039;vectorial&amp;#039;&amp;#039; Boolean functions by considering their output bits (&amp;#039;&amp;#039;coordinates&amp;#039;&amp;#039;) individually, or more thoroughly, by looking at the set of all linear functions of output bits, known as its &amp;#039;&amp;#039;components&amp;#039;&amp;#039;.&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;{{Cite web|last=Carlet|first=Claude|title=Vectorial Boolean Functions for Cryptography|url=https://www.math.univ-paris13.fr/~carlet/chap-vectorial-fcts-corr.pdf|url-status=live|website=University of Paris|archive-url=https://web.archive.org/web/20160117102533/http://www.math.univ-paris13.fr:80/~carlet/chap-vectorial-fcts-corr.pdf |archive-date=2016-01-17 }}&amp;lt;/ref&amp;gt; The set of Walsh transforms of the components is known as a &amp;#039;&amp;#039;&amp;#039;Linear Approximation Table&amp;#039;&amp;#039;&amp;#039; (LAT)&amp;lt;ref name=&amp;quot;:3&amp;quot;&amp;gt;{{Cite web|last=Heys|first=Howard M.|title=A Tutorial on Linear and Differential Cryptanalysis|url=http://www.cs.bc.edu/~straubin/crypto2017/heys.pdf|url-status=live|archive-url=https://web.archive.org/web/20170517014157/http://www.cs.bc.edu:80/~straubin/crypto2017/heys.pdf |archive-date=2017-05-17 }}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;:4&amp;quot;&amp;gt;{{Cite web|title=S-Boxes and Their Algebraic Representations — Sage 9.2 Reference Manual: Cryptography|url=https://doc.sagemath.org/html/en/reference/cryptography/sage/crypto/sbox.html|access-date=2021-05-04|website=doc.sagemath.org}}&amp;lt;/ref&amp;gt; or &amp;#039;&amp;#039;correlation matrix&amp;#039;&amp;#039;;&amp;lt;ref&amp;gt;{{cite conference | last1 = Daemen | first1 = Joan | last2 = Govaerts | first2 = René | last3 = Vandewalle | first3 = Joos | editor-last = Preneel | editor-first = Bart | title = Correlation matrices | doi = 10.1007/3-540-60590-8_21 | pages = 275–285 | publisher = Springer | series = Lecture Notes in Computer Science | book-title = Fast Software Encryption: Second International Workshop. Leuven, Belgium, 14-16 December 1994, Proceedings | volume = 1008 | year = 1994| doi-access = free }}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web|last=Daemen|first=Joan|date=10 June 1998|title=Chapter 5: Propagation and Correlation - Annex to AES Proposal Rijndael|url=https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Standards-and-Guidelines/documents/aes-development/PropCorr.pdf|url-status=live|website=NIST|archive-url=https://web.archive.org/web/20180723015757/https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Standards-and-Guidelines/documents/aes-development/PropCorr.pdf |archive-date=2018-07-23 }}&amp;lt;/ref&amp;gt; it describes the correlation between different linear combinations of input and output bits. The set of autocorrelation coefficients of the components is the &amp;#039;&amp;#039;autocorrelation table&amp;#039;&amp;#039;,&amp;lt;ref name=&amp;quot;:4&amp;quot; /&amp;gt; related by a Walsh transform of the components&amp;lt;ref&amp;gt;{{Cite web|last=Nyberg|first=Kaisa|date=December 1, 2019|title=The Extended Autocorrelation and Boomerang Tables and Links Between Nonlinearity Properties of Vectorial Boolean Functions|url=https://eprint.iacr.org/2019/1381.pdf|url-status=live|archive-url=https://web.archive.org/web/20201102023321/https://eprint.iacr.org/2019/1381.pdf |archive-date=2020-11-02 }}&amp;lt;/ref&amp;gt; to the more widely used &amp;#039;&amp;#039;Difference Distribution Table&amp;#039;&amp;#039; (DDT)&amp;lt;ref name=&amp;quot;:3&amp;quot; /&amp;gt;&amp;lt;ref name=&amp;quot;:4&amp;quot; /&amp;gt; which lists the correlations between differences in input and output bits (see also: [[S-box]]).&lt;br /&gt;
&lt;br /&gt;
== Real polynomial form ==&lt;br /&gt;
=== On the unit hypercube ===&lt;br /&gt;
Any Boolean function &amp;lt;math&amp;gt;f(x): \{0,1\}^n \rightarrow \{0,1\}&amp;lt;/math&amp;gt; can be uniquely extended (interpolated) to the [[Real number|real domain]] by a [[multilinear polynomial]] in &amp;lt;math&amp;gt;\mathbb{R}^n&amp;lt;/math&amp;gt;, constructed by summing the truth table values multiplied by [[Lagrange polynomial|indicator polynomials]]:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;f^*(x) = \sum_{a \in {\{0,1\}}^n} f(a) \prod_{i:a_i=1} x_i \prod_{i:a_i=0} (1-x_i)&amp;lt;/math&amp;gt;For example, the extension of the binary XOR function &amp;lt;math&amp;gt;x \oplus y&amp;lt;/math&amp;gt; is&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;0(1-x)(1-y) + 1x(1-y) + 1(1-x)y + 0xy&amp;lt;/math&amp;gt;which equals&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;x + y -2xy&amp;lt;/math&amp;gt;Some other examples are negation (&amp;lt;math&amp;gt;1-x&amp;lt;/math&amp;gt;), AND (&amp;lt;math&amp;gt;xy&amp;lt;/math&amp;gt;) and OR (&amp;lt;math&amp;gt;x + y - xy&amp;lt;/math&amp;gt;). When all operands are independent (share no variables) a function&amp;#039;s polynomial form can be found by repeatedly applying the polynomials of the operators in a Boolean formula. When the coefficients are calculated [[Modular arithmetic|modulo 2]] one obtains the [[algebraic normal form]] ([[Zhegalkin polynomial]]).&lt;br /&gt;
&lt;br /&gt;
Direct expressions for the coefficients of the polynomial can be derived by taking an appropriate derivative:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\begin{array}{lcl} f^*(00) &amp;amp; = &amp;amp; (f^*)(00) &amp;amp; = &amp;amp; f(00) \\ &lt;br /&gt;
f^*(01) &amp;amp; = &amp;amp; (\partial_1f^*)(00) &amp;amp; = &amp;amp; -f(00) + f(01) \\&lt;br /&gt;
f^*(10) &amp;amp; = &amp;amp; (\partial_2f^*)(00) &amp;amp; = &amp;amp; -f(00) + f(10) \\&lt;br /&gt;
f^*(11) &amp;amp; = &amp;amp; (\partial_1\partial_2f^*)(00) &amp;amp; = &amp;amp; f(00) -f(01)-f(10)+f(11) \\&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;this generalizes as the [[Möbius transform|Möbius inversion]] of the [[partially ordered set]] of bit vectors:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;f^*(m) = \sum_{a \subseteq m} (-1)^{|a|+|m|} f(a)&amp;lt;/math&amp;gt;where &amp;lt;math&amp;gt;|a|&amp;lt;/math&amp;gt; denotes the weight of the bit vector &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;. Taken modulo 2, this is the [[Zhegalkin polynomial|Boolean &amp;#039;&amp;#039;Möbius transform&amp;#039;&amp;#039;]], giving the [[algebraic normal form]] coefficients:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;\hat f(m) = \bigoplus_{a \subseteq m} f(a)&amp;lt;/math&amp;gt;In both cases, the sum is taken over all bit-vectors &amp;#039;&amp;#039;a&amp;#039;&amp;#039; covered by &amp;#039;&amp;#039;m&amp;#039;&amp;#039;, i.e. the &amp;quot;one&amp;quot; bits of &amp;#039;&amp;#039;a&amp;#039;&amp;#039; form a subset of the one bits of &amp;#039;&amp;#039;m&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
When the domain is restricted to the n-dimensional [[hypercube]] &amp;lt;math&amp;gt;[0,1]^n&amp;lt;/math&amp;gt;, the polynomial &amp;lt;math&amp;gt;f^*(x): [0,1]^n \rightarrow [0,1]&amp;lt;/math&amp;gt; gives the probability of a positive outcome when the Boolean function &amp;#039;&amp;#039;f&amp;#039;&amp;#039; is applied to &amp;#039;&amp;#039;n&amp;#039;&amp;#039; independent random ([[Bernoulli distribution|Bernoulli]]) variables, with individual probabilities &amp;#039;&amp;#039;x&amp;#039;&amp;#039;. A special case of this fact is the [[piling-up lemma]] for [[parity function]]s. The polynomial form of a Boolean function can also be used as its natural extension to [[fuzzy logic]].&lt;br /&gt;
&lt;br /&gt;
=== On the symmetric hypercube ===&lt;br /&gt;
Often, the Boolean domain is taken as &amp;lt;math&amp;gt;\{-1, 1\}&amp;lt;/math&amp;gt;, with false (&amp;quot;0&amp;quot;) mapping to 1 and true (&amp;quot;1&amp;quot;) to −1 (see [[Analysis of Boolean functions]]). The polynomial corresponding to &amp;lt;math&amp;gt;g(x): \{-1,1\}^n \rightarrow \{-1,1\}&amp;lt;/math&amp;gt; is then given by:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;g^*(x) = \sum_{a \in {\{-1,1\}}^n} g(a) \prod_{i:a_i=-1} \frac{1-x_i}{2} \prod_{i:a_i=1} \frac{1+x_i}{2}&amp;lt;/math&amp;gt;Using the symmetric Boolean domain simplifies certain aspects of the [[Analysis of Boolean functions|analysis]], since negation corresponds to multiplying by −1 and [[Parity function|linear functions]] are [[monomial]]s (XOR is multiplication). This polynomial form thus corresponds to the &amp;#039;&amp;#039;Walsh transform&amp;#039;&amp;#039; (in this context also known as &amp;#039;&amp;#039;Fourier transform&amp;#039;&amp;#039;) of the function (see above). The polynomial also has the same statistical interpretation as the one in the standard Boolean domain, except that it now deals with the expected values &amp;lt;math&amp;gt;E(X) = P(X=1) - P(X=-1) \in [-1, 1]&amp;lt;/math&amp;gt; (see [[piling-up lemma]] for an example).&lt;br /&gt;
&lt;br /&gt;
==Applications==&lt;br /&gt;
Boolean functions play a basic role in questions of [[Computational complexity theory|complexity theory]] as well as the design of processors for [[digital computer]]s, where they are implemented in electronic circuits using [[logic gate]]s.&lt;br /&gt;
&lt;br /&gt;
The properties of Boolean functions are critical in [[cryptography]], particularly in the design of [[symmetric key algorithm]]s (see [[substitution box]]).&lt;br /&gt;
&lt;br /&gt;
In [[Cooperative game theory|cooperative game]] theory, monotone Boolean functions are called &amp;#039;&amp;#039;&amp;#039;simple games&amp;#039;&amp;#039;&amp;#039; (voting games); this notion is applied to solve problems in [[social choice theory]].&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
{{Portal|Philosophy}}&lt;br /&gt;
{{div col}}&lt;br /&gt;
*[[Pseudo-Boolean function]]&lt;br /&gt;
*[[Boolean-valued function]]&lt;br /&gt;
*[[List of Boolean algebra topics|Boolean algebra topics]]&lt;br /&gt;
*[[Algebra of sets]]&lt;br /&gt;
*[[Decision tree model]]&lt;br /&gt;
*[[Indicator function]]&lt;br /&gt;
*[[Signed set]]&lt;br /&gt;
{{div col end}}&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
==Further reading==&lt;br /&gt;
*{{citation |last1=Crama |first1=Yves |last2=Hammer |first2=Peter L. |authorlink2=Peter L. Hammer |year=2011 |title=Boolean Functions: Theory, Algorithms, and Applications |publisher=Cambridge University Press |doi=10.1017/CBO9780511852008 |isbn=9780511852008}}&lt;br /&gt;
*{{springer |title=Boolean function |id=p/b016940}}&lt;br /&gt;
*{{cite journal |last1=Janković |first1=Dragan |last2=Stanković |first2=Radomir S. |last3=Moraga |first3=Claudio |date=November 2003 |title=Arithmetic expressions optimisation using dual polarity property |journal=Serbian Journal of Electrical Engineering |volume=1 |issue=71-80, number 1 |doi=10.2298/SJEE0301071J |pages=71–80 |doi-access=free }}&lt;br /&gt;
*{{cite book |last=Arnold |first=Bradford Henry |date=1 January 2011 |title=Logic and Boolean Algebra |publisher=Courier Corporation |isbn=978-0-486-48385-6 |url=https://books.google.com/books?id=KoAsmTsOK9IC&amp;amp;q=%22boolean+function%22}}&lt;br /&gt;
*{{citation |last1=Mano |first1=M. M. |last2=Ciletti |first2=M. D. |year=2013 |title=Digital Design |publisher=Pearson}}&lt;br /&gt;
&lt;br /&gt;
{{Mathematical logic}} {{Functions navbox}}&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Boolean function}}&lt;br /&gt;
[[Category:Boolean algebra]]&lt;br /&gt;
[[Category:Binary arithmetic]]&lt;br /&gt;
[[Category:Logic gates]]&lt;br /&gt;
[[Category:Programming constructs]]&lt;/div&gt;</summary>
		<author><name>imported&gt;MrSwedishMeatballs</name></author>
	</entry>
</feed>