This file is indexed.

/usr/share/doc/libghc-sbv-doc/html/Data-SBV-Examples-Polynomials-Polynomials.html is in libghc-sbv-doc 5.14-1build3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Data.SBV.Examples.Polynomials.Polynomials</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="file:///usr/share/javascript/mathjax/MathJax.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Data-SBV-Examples-Polynomials-Polynomials.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Data-SBV-Examples-Polynomials-Polynomials.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">sbv-5.14: SMT Based Verification: Symbolic Haskell theorem prover using SMT solving.</p></div><div id="content"><div id="module-header"><table class="info"><tr><th valign="top">Copyright</th><td>(c) Levent Erkok</td></tr><tr><th>License</th><td>BSD3</td></tr><tr><th>Maintainer</th><td>erkokl@gmail.com</td></tr><tr><th>Stability</th><td>experimental</td></tr><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Data.SBV.Examples.Polynomials.Polynomials</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Simple usage of polynomials over GF(2^n), using Rijndael's
 finite field: <a href="http://en.wikipedia.org/wiki/Finite_field_arithmetic#Rijndael.27s_finite_field">http://en.wikipedia.org/wiki/Finite_field_arithmetic#Rijndael.27s_finite_field</a></p><p>The functions available are:</p><dl><dt><em>pMult</em></dt><dd>GF(2^n) Multiplication</dd><dt><em>pDiv</em></dt><dd>GF(2^n) Division</dd><dt><em>pMod</em></dt><dd>GF(2^n) Modulus</dd><dt><em>pDivMod</em></dt><dd>GF(2^n) Division/Modulus, packed together</dd></dl><p>Note that addition in GF(2^n) is simply <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bits.html#v:xor">xor</a></code>, so no custom function is provided.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">type</span> <a href="#t:GF28">GF28</a> = <a href="Data-SBV-Internals.html#t:SWord8">SWord8</a></li><li class="src short"><a href="#v:gfMult">gfMult</a> :: <a href="Data-SBV-Examples-Polynomials-Polynomials.html#t:GF28">GF28</a> -&gt; <a href="Data-SBV-Examples-Polynomials-Polynomials.html#t:GF28">GF28</a> -&gt; <a href="Data-SBV-Examples-Polynomials-Polynomials.html#t:GF28">GF28</a></li><li class="src short"><a href="#v:multUnit">multUnit</a> :: <a href="Data-SBV-Examples-Polynomials-Polynomials.html#t:GF28">GF28</a> -&gt; <a href="Data-SBV-Internals.html#t:SBool">SBool</a></li><li class="src short"><a href="#v:multComm">multComm</a> :: <a href="Data-SBV-Examples-Polynomials-Polynomials.html#t:GF28">GF28</a> -&gt; <a href="Data-SBV-Examples-Polynomials-Polynomials.html#t:GF28">GF28</a> -&gt; <a href="Data-SBV-Internals.html#t:SBool">SBool</a></li><li class="src short"><a href="#v:multAssoc">multAssoc</a> :: <a href="Data-SBV-Examples-Polynomials-Polynomials.html#t:GF28">GF28</a> -&gt; <a href="Data-SBV-Examples-Polynomials-Polynomials.html#t:GF28">GF28</a> -&gt; <a href="Data-SBV-Examples-Polynomials-Polynomials.html#t:GF28">GF28</a> -&gt; <a href="Data-SBV-Internals.html#t:SBool">SBool</a></li><li class="src short"><a href="#v:polyDivMod">polyDivMod</a> :: <a href="Data-SBV-Examples-Polynomials-Polynomials.html#t:GF28">GF28</a> -&gt; <a href="Data-SBV-Examples-Polynomials-Polynomials.html#t:GF28">GF28</a> -&gt; <a href="Data-SBV-Internals.html#t:SBool">SBool</a></li><li class="src short"><a href="#v:testGF28">testGF28</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> ()</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:GF28" class="def">GF28</a> = <a href="Data-SBV-Internals.html#t:SWord8">SWord8</a> <a href="src/Data-SBV-Examples-Polynomials-Polynomials.html#GF28" class="link">Source</a> <a href="#t:GF28" class="selflink">#</a></p><div class="doc"><p>Helper synonym for representing GF(2^8); which are merely 8-bit unsigned words. Largest
 term in such a polynomial has degree 7.</p></div></div><div class="top"><p class="src"><a id="v:gfMult" class="def">gfMult</a> :: <a href="Data-SBV-Examples-Polynomials-Polynomials.html#t:GF28">GF28</a> -&gt; <a href="Data-SBV-Examples-Polynomials-Polynomials.html#t:GF28">GF28</a> -&gt; <a href="Data-SBV-Examples-Polynomials-Polynomials.html#t:GF28">GF28</a> <a href="src/Data-SBV-Examples-Polynomials-Polynomials.html#gfMult" class="link">Source</a> <a href="#v:gfMult" class="selflink">#</a></p><div class="doc"><p>Multiplication in Rijndael's field; usual polynomial multiplication followed by reduction
 by the irreducible polynomial.  The irreducible used by Rijndael's field is the polynomial
 <code>x^8 + x^4 + x^3 + x + 1</code>, which we write by giving it's <em>exponents</em> in SBV.
 See: <a href="http://en.wikipedia.org/wiki/Finite_field_arithmetic#Rijndael.27s_finite_field">http://en.wikipedia.org/wiki/Finite_field_arithmetic#Rijndael.27s_finite_field</a>.
 Note that the irreducible itself is not in GF28! It has a degree of 8.</p><p>NB. You can use the <code><a href="Data-SBV.html#v:showPoly">showPoly</a></code> function to print polynomials nicely, as a mathematician would write.</p></div></div><div class="top"><p class="src"><a id="v:multUnit" class="def">multUnit</a> :: <a href="Data-SBV-Examples-Polynomials-Polynomials.html#t:GF28">GF28</a> -&gt; <a href="Data-SBV-Internals.html#t:SBool">SBool</a> <a href="src/Data-SBV-Examples-Polynomials-Polynomials.html#multUnit" class="link">Source</a> <a href="#v:multUnit" class="selflink">#</a></p><div class="doc"><p>States that the unit polynomial <code>1</code>, is the unit element</p></div></div><div class="top"><p class="src"><a id="v:multComm" class="def">multComm</a> :: <a href="Data-SBV-Examples-Polynomials-Polynomials.html#t:GF28">GF28</a> -&gt; <a href="Data-SBV-Examples-Polynomials-Polynomials.html#t:GF28">GF28</a> -&gt; <a href="Data-SBV-Internals.html#t:SBool">SBool</a> <a href="src/Data-SBV-Examples-Polynomials-Polynomials.html#multComm" class="link">Source</a> <a href="#v:multComm" class="selflink">#</a></p><div class="doc"><p>States that multiplication is commutative</p></div></div><div class="top"><p class="src"><a id="v:multAssoc" class="def">multAssoc</a> :: <a href="Data-SBV-Examples-Polynomials-Polynomials.html#t:GF28">GF28</a> -&gt; <a href="Data-SBV-Examples-Polynomials-Polynomials.html#t:GF28">GF28</a> -&gt; <a href="Data-SBV-Examples-Polynomials-Polynomials.html#t:GF28">GF28</a> -&gt; <a href="Data-SBV-Internals.html#t:SBool">SBool</a> <a href="src/Data-SBV-Examples-Polynomials-Polynomials.html#multAssoc" class="link">Source</a> <a href="#v:multAssoc" class="selflink">#</a></p><div class="doc"><p>States that multiplication is associative, note that associativity
 proofs are notoriously hard for SAT/SMT solvers</p></div></div><div class="top"><p class="src"><a id="v:polyDivMod" class="def">polyDivMod</a> :: <a href="Data-SBV-Examples-Polynomials-Polynomials.html#t:GF28">GF28</a> -&gt; <a href="Data-SBV-Examples-Polynomials-Polynomials.html#t:GF28">GF28</a> -&gt; <a href="Data-SBV-Internals.html#t:SBool">SBool</a> <a href="src/Data-SBV-Examples-Polynomials-Polynomials.html#polyDivMod" class="link">Source</a> <a href="#v:polyDivMod" class="selflink">#</a></p><div class="doc"><p>States that the usual multiplication rule holds over GF(2^n) polynomials
 Checks:</p><pre>   if (a, b) = x <code><a href="Data-SBV.html#v:pDivMod">pDivMod</a></code> y then x = y <code><a href="Data-SBV.html#v:pMult">pMult</a></code> a + b
</pre><p>being careful about <code>y = 0</code>. When divisor is 0, then quotient is
 defined to be 0 and the remainder is the numerator.
 (Note that addition is simply <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bits.html#v:xor">xor</a></code> in GF(2^8).)</p></div></div><div class="top"><p class="src"><a id="v:testGF28" class="def">testGF28</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> () <a href="src/Data-SBV-Examples-Polynomials-Polynomials.html#testGF28" class="link">Source</a> <a href="#v:testGF28" class="selflink">#</a></p><div class="doc"><p>Queries</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.17.3</p></div></body></html>