mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
195 lines
87 KiB
HTML
195 lines
87 KiB
HTML
|
<!DOCTYPE HTML>
|
|||
|
<html><head><meta charset="utf-8"><title>Data.Product.Base</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="74" class="Comment">-- The Agda standard library</a>
|
|||
|
<a id="103" class="Comment">--</a>
|
|||
|
<a id="106" class="Comment">-- Products</a>
|
|||
|
<a id="118" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
|
|||
|
<a id="192" class="Symbol">{-#</a> <a id="196" class="Keyword">OPTIONS</a> <a id="204" class="Pragma">--cubical-compatible</a> <a id="225" class="Pragma">--safe</a> <a id="232" class="Symbol">#-}</a>
|
|||
|
|
|||
|
<a id="237" class="Keyword">module</a> <a id="244" href="Data.Product.Base.html" class="Module">Data.Product.Base</a> <a id="262" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="269" class="Keyword">open</a> <a id="274" class="Keyword">import</a> <a id="281" href="Function.Base.html" class="Module">Function.Base</a>
|
|||
|
<a id="295" class="Keyword">open</a> <a id="300" class="Keyword">import</a> <a id="307" href="Level.html" class="Module">Level</a> <a id="313" class="Keyword">using</a> <a id="319" class="Symbol">(</a><a id="320" href="Agda.Primitive.html#742" class="Postulate">Level</a><a id="325" class="Symbol">;</a> <a id="327" href="Agda.Primitive.html#961" class="Primitive Operator">_⊔_</a><a id="330" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="333" class="Keyword">private</a>
|
|||
|
<a id="343" class="Keyword">variable</a>
|
|||
|
<a id="356" href="Data.Product.Base.html#356" class="Generalizable">a</a> <a id="358" href="Data.Product.Base.html#358" class="Generalizable">b</a> <a id="360" href="Data.Product.Base.html#360" class="Generalizable">c</a> <a id="362" href="Data.Product.Base.html#362" class="Generalizable">d</a> <a id="364" href="Data.Product.Base.html#364" class="Generalizable">e</a> <a id="366" href="Data.Product.Base.html#366" class="Generalizable">f</a> <a id="368" href="Data.Product.Base.html#368" class="Generalizable">ℓ</a> <a id="370" href="Data.Product.Base.html#370" class="Generalizable">p</a> <a id="372" href="Data.Product.Base.html#372" class="Generalizable">q</a> <a id="374" href="Data.Product.Base.html#374" class="Generalizable">r</a> <a id="376" class="Symbol">:</a> <a id="378" href="Agda.Primitive.html#742" class="Postulate">Level</a>
|
|||
|
<a id="388" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="390" class="Symbol">:</a> <a id="392" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="396" href="Data.Product.Base.html#356" class="Generalizable">a</a>
|
|||
|
<a id="402" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="404" class="Symbol">:</a> <a id="406" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="410" href="Data.Product.Base.html#358" class="Generalizable">b</a>
|
|||
|
<a id="416" href="Data.Product.Base.html#416" class="Generalizable">C</a> <a id="418" class="Symbol">:</a> <a id="420" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="424" href="Data.Product.Base.html#360" class="Generalizable">c</a>
|
|||
|
<a id="430" href="Data.Product.Base.html#430" class="Generalizable">D</a> <a id="432" class="Symbol">:</a> <a id="434" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="438" href="Data.Product.Base.html#362" class="Generalizable">d</a>
|
|||
|
<a id="444" href="Data.Product.Base.html#444" class="Generalizable">E</a> <a id="446" class="Symbol">:</a> <a id="448" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="452" href="Data.Product.Base.html#364" class="Generalizable">e</a>
|
|||
|
<a id="458" href="Data.Product.Base.html#458" class="Generalizable">F</a> <a id="460" class="Symbol">:</a> <a id="462" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="466" href="Data.Product.Base.html#366" class="Generalizable">f</a>
|
|||
|
|
|||
|
<a id="469" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="542" class="Comment">-- Definition of dependent products</a>
|
|||
|
|
|||
|
<a id="579" class="Keyword">open</a> <a id="584" class="Keyword">import</a> <a id="591" href="Agda.Builtin.Sigma.html" class="Module">Agda.Builtin.Sigma</a> <a id="610" class="Keyword">public</a>
|
|||
|
<a id="619" class="Keyword">renaming</a> <a id="628" class="Symbol">(</a><a id="629" href="Agda.Builtin.Sigma.html#251" class="Field">fst</a> <a id="633" class="Symbol">to</a> <a id="636" class="Field">proj₁</a><a id="641" class="Symbol">;</a> <a id="643" href="Agda.Builtin.Sigma.html#263" class="Field">snd</a> <a id="647" class="Symbol">to</a> <a id="650" class="Field">proj₂</a><a id="655" class="Symbol">)</a>
|
|||
|
<a id="659" class="Keyword">hiding</a> <a id="666" class="Symbol">(</a><a id="667" class="Keyword">module</a> <a id="674" href="Agda.Builtin.Sigma.html#165" class="Module">Σ</a><a id="675" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="678" class="Keyword">module</a> <a id="Σ"></a><a id="685" href="Data.Product.Base.html#685" class="Module">Σ</a> <a id="687" class="Symbol">=</a> <a id="689" href="Agda.Builtin.Sigma.html#165" class="Module">Agda.Builtin.Sigma.Σ</a>
|
|||
|
<a id="712" class="Keyword">renaming</a> <a id="721" class="Symbol">(</a><a id="722" href="Agda.Builtin.Sigma.html#251" class="Field">fst</a> <a id="726" class="Symbol">to</a> <a id="729" class="Field">proj₁</a><a id="734" class="Symbol">;</a> <a id="736" href="Agda.Builtin.Sigma.html#263" class="Field">snd</a> <a id="740" class="Symbol">to</a> <a id="743" class="Field">proj₂</a><a id="748" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="751" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="824" class="Comment">-- Existential quantifiers</a>
|
|||
|
|
|||
|
<a id="∃"></a><a id="852" href="Data.Product.Base.html#852" class="Function">∃</a> <a id="854" class="Symbol">:</a> <a id="856" class="Symbol">∀</a> <a id="858" class="Symbol">{</a><a id="859" href="Data.Product.Base.html#859" class="Bound">A</a> <a id="861" class="Symbol">:</a> <a id="863" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="867" href="Data.Product.Base.html#356" class="Generalizable">a</a><a id="868" class="Symbol">}</a> <a id="870" class="Symbol">→</a> <a id="872" class="Symbol">(</a><a id="873" href="Data.Product.Base.html#859" class="Bound">A</a> <a id="875" class="Symbol">→</a> <a id="877" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="881" href="Data.Product.Base.html#358" class="Generalizable">b</a><a id="882" class="Symbol">)</a> <a id="884" class="Symbol">→</a> <a id="886" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="890" class="Symbol">(</a><a id="891" href="Data.Product.Base.html#356" class="Generalizable">a</a> <a id="893" href="Agda.Primitive.html#961" class="Primitive Operator">⊔</a> <a id="895" href="Data.Product.Base.html#358" class="Generalizable">b</a><a id="896" class="Symbol">)</a>
|
|||
|
<a id="898" href="Data.Product.Base.html#852" class="Function">∃</a> <a id="900" class="Symbol">=</a> <a id="902" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="904" class="Symbol">_</a>
|
|||
|
|
|||
|
<a id="∃₂"></a><a id="907" href="Data.Product.Base.html#907" class="Function">∃₂</a> <a id="910" class="Symbol">:</a> <a id="912" class="Symbol">∀</a> <a id="914" class="Symbol">{</a><a id="915" href="Data.Product.Base.html#915" class="Bound">A</a> <a id="917" class="Symbol">:</a> <a id="919" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="923" href="Data.Product.Base.html#356" class="Generalizable">a</a><a id="924" class="Symbol">}</a> <a id="926" class="Symbol">{</a><a id="927" href="Data.Product.Base.html#927" class="Bound">B</a> <a id="929" class="Symbol">:</a> <a id="931" href="Data.Product.Base.html#915" class="Bound">A</a> <a id="933" class="Symbol">→</a> <a id="935" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="939" href="Data.Product.Base.html#358" class="Generalizable">b</a><a id="940" class="Symbol">}</a>
|
|||
|
<a id="947" class="Symbol">(</a><a id="948" href="Data.Product.Base.html#948" class="Bound">C</a> <a id="950" class="Symbol">:</a> <a id="952" class="Symbol">(</a><a id="953" href="Data.Product.Base.html#953" class="Bound">x</a> <a id="955" class="Symbol">:</a> <a id="957" href="Data.Product.Base.html#915" class="Bound">A</a><a id="958" class="Symbol">)</a> <a id="960" class="Symbol">→</a> <a id="962" href="Data.Product.Base.html#927" class="Bound">B</a> <a id="964" href="Data.Product.Base.html#953" class="Bound">x</a> <a id="966" class="Symbol">→</a> <a id="968" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="972" href="Data.Product.Base.html#360" class="Generalizable">c</a><a id="973" class="Symbol">)</a> <a id="975" class="Symbol">→</a> <a id="977" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="981" class="Symbol">(</a><a id="982" href="Data.Product.Base.html#356" class="Generalizable">a</a> <a id="984" href="Agda.Primitive.html#961" class="Primitive Operator">⊔</a> <a id="986" href="Data.Product.Base.html#358" class="Generalizable">b</a> <a id="988" href="Agda.Primitive.html#961" class="Primitive Operator">⊔</a> <a id="990" href="Data.Product.Base.html#360" class="Generalizable">c</a><a id="991" class="Symbol">)</a>
|
|||
|
<a id="993" href="Data.Product.Base.html#907" class="Function">∃₂</a> <a id="996" href="Data.Product.Base.html#996" class="Bound">C</a> <a id="998" class="Symbol">=</a> <a id="1000" href="Data.Product.Base.html#852" class="Function">∃</a> <a id="1002" class="Symbol">λ</a> <a id="1004" href="Data.Product.Base.html#1004" class="Bound">a</a> <a id="1006" class="Symbol">→</a> <a id="1008" href="Data.Product.Base.html#852" class="Function">∃</a> <a id="1010" class="Symbol">λ</a> <a id="1012" href="Data.Product.Base.html#1012" class="Bound">b</a> <a id="1014" class="Symbol">→</a> <a id="1016" href="Data.Product.Base.html#996" class="Bound">C</a> <a id="1018" href="Data.Product.Base.html#1004" class="Bound">a</a> <a id="1020" href="Data.Product.Base.html#1012" class="Bound">b</a>
|
|||
|
|
|||
|
<a id="1023" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="1096" class="Comment">-- Syntaxes</a>
|
|||
|
|
|||
|
<a id="1109" class="Comment">-- The syntax declaration below is attached to Σ-syntax, to make it</a>
|
|||
|
<a id="1177" class="Comment">-- easy to import Σ without the special syntax.</a>
|
|||
|
|
|||
|
<a id="1226" class="Keyword">infix</a> <a id="1232" class="Number">2</a> <a id="1234" href="Data.Product.Base.html#1244" class="Function">Σ-syntax</a>
|
|||
|
|
|||
|
<a id="Σ-syntax"></a><a id="1244" href="Data.Product.Base.html#1244" class="Function">Σ-syntax</a> <a id="1253" class="Symbol">:</a> <a id="1255" class="Symbol">(</a><a id="1256" href="Data.Product.Base.html#1256" class="Bound">A</a> <a id="1258" class="Symbol">:</a> <a id="1260" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1264" href="Data.Product.Base.html#356" class="Generalizable">a</a><a id="1265" class="Symbol">)</a> <a id="1267" class="Symbol">→</a> <a id="1269" class="Symbol">(</a><a id="1270" href="Data.Product.Base.html#1256" class="Bound">A</a> <a id="1272" class="Symbol">→</a> <a id="1274" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1278" href="Data.Product.Base.html#358" class="Generalizable">b</a><a id="1279" class="Symbol">)</a> <a id="1281" class="Symbol">→</a> <a id="1283" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1287" class="Symbol">(</a><a id="1288" href="Data.Product.Base.html#356" class="Generalizable">a</a> <a id="1290" href="Agda.Primitive.html#961" class="Primitive Operator">⊔</a> <a id="1292" href="Data.Product.Base.html#358" class="Generalizable">b</a><a id="1293" class="Symbol">)</a>
|
|||
|
<a id="1295" href="Data.Product.Base.html#1244" class="Function">Σ-syntax</a> <a id="1304" class="Symbol">=</a> <a id="1306" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a>
|
|||
|
|
|||
|
<a id="1309" class="Keyword">syntax</a> <a id="1316" href="Data.Product.Base.html#1244" class="Function">Σ-syntax</a> <a id="1325" class="Bound">A</a> <a id="1327" class="Symbol">(λ</a> <a id="1330" class="Bound">x</a> <a id="1332" class="Symbol">→</a> <a id="1334" class="Bound">B</a><a id="1335" class="Symbol">)</a> <a id="1337" class="Symbol">=</a> <a id="1339" class="Function">Σ[</a> <a id="1342" class="Bound">x</a> <a id="1344" class="Function">∈</a> <a id="1346" class="Bound">A</a> <a id="1348" class="Function">]</a> <a id="1350" class="Bound">B</a>
|
|||
|
|
|||
|
<a id="1353" class="Keyword">infix</a> <a id="1359" class="Number">2</a> <a id="1361" href="Data.Product.Base.html#1371" class="Function">∃-syntax</a>
|
|||
|
|
|||
|
<a id="∃-syntax"></a><a id="1371" href="Data.Product.Base.html#1371" class="Function">∃-syntax</a> <a id="1380" class="Symbol">:</a> <a id="1382" class="Symbol">∀</a> <a id="1384" class="Symbol">{</a><a id="1385" href="Data.Product.Base.html#1385" class="Bound">A</a> <a id="1387" class="Symbol">:</a> <a id="1389" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1393" href="Data.Product.Base.html#356" class="Generalizable">a</a><a id="1394" class="Symbol">}</a> <a id="1396" class="Symbol">→</a> <a id="1398" class="Symbol">(</a><a id="1399" href="Data.Product.Base.html#1385" class="Bound">A</a> <a id="1401" class="Symbol">→</a> <a id="1403" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1407" href="Data.Product.Base.html#358" class="Generalizable">b</a><a id="1408" class="Symbol">)</a> <a id="1410" class="Symbol">→</a> <a id="1412" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1416" class="Symbol">(</a><a id="1417" href="Data.Product.Base.html#356" class="Generalizable">a</a> <a id="1419" href="Agda.Primitive.html#961" class="Primitive Operator">⊔</a> <a id="1421" href="Data.Product.Base.html#358" class="Generalizable">b</a><a id="1422" class="Symbol">)</a>
|
|||
|
<a id="1424" href="Data.Product.Base.html#1371" class="Function">∃-syntax</a> <a id="1433" class="Symbol">=</a> <a id="1435" href="Data.Product.Base.html#852" class="Function">∃</a>
|
|||
|
|
|||
|
<a id="1438" class="Keyword">syntax</a> <a id="1445" href="Data.Product.Base.html#1371" class="Function">∃-syntax</a> <a id="1454" class="Symbol">(λ</a> <a id="1457" class="Bound">x</a> <a id="1459" class="Symbol">→</a> <a id="1461" class="Bound">B</a><a id="1462" class="Symbol">)</a> <a id="1464" class="Symbol">=</a> <a id="1466" class="Function">∃[</a> <a id="1469" class="Bound">x</a> <a id="1471" class="Function">]</a> <a id="1473" class="Bound">B</a>
|
|||
|
|
|||
|
<a id="1476" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="1549" class="Comment">-- Definition of non-dependent products</a>
|
|||
|
|
|||
|
<a id="1590" class="Keyword">infixr</a> <a id="1597" class="Number">4</a> <a id="1599" href="Data.Product.Base.html#1686" class="Function Operator">_,′_</a>
|
|||
|
<a id="1604" class="Keyword">infixr</a> <a id="1611" class="Number">2</a> <a id="1613" href="Data.Product.Base.html#1618" class="Function Operator">_×_</a>
|
|||
|
|
|||
|
<a id="_×_"></a><a id="1618" href="Data.Product.Base.html#1618" class="Function Operator">_×_</a> <a id="1622" class="Symbol">:</a> <a id="1624" class="Symbol">∀</a> <a id="1626" class="Symbol">(</a><a id="1627" href="Data.Product.Base.html#1627" class="Bound">A</a> <a id="1629" class="Symbol">:</a> <a id="1631" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1635" href="Data.Product.Base.html#356" class="Generalizable">a</a><a id="1636" class="Symbol">)</a> <a id="1638" class="Symbol">(</a><a id="1639" href="Data.Product.Base.html#1639" class="Bound">B</a> <a id="1641" class="Symbol">:</a> <a id="1643" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1647" href="Data.Product.Base.html#358" class="Generalizable">b</a><a id="1648" class="Symbol">)</a> <a id="1650" class="Symbol">→</a> <a id="1652" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1656" class="Symbol">(</a><a id="1657" href="Data.Product.Base.html#356" class="Generalizable">a</a> <a id="1659" href="Agda.Primitive.html#961" class="Primitive Operator">⊔</a> <a id="1661" href="Data.Product.Base.html#358" class="Generalizable">b</a><a id="1662" class="Symbol">)</a>
|
|||
|
<a id="1664" href="Data.Product.Base.html#1664" class="Bound">A</a> <a id="1666" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="1668" href="Data.Product.Base.html#1668" class="Bound">B</a> <a id="1670" class="Symbol">=</a> <a id="1672" href="Data.Product.Base.html#1244" class="Function">Σ[</a> <a id="1675" href="Data.Product.Base.html#1675" class="Bound">x</a> <a id="1677" href="Data.Product.Base.html#1244" class="Function">∈</a> <a id="1679" href="Data.Product.Base.html#1664" class="Bound">A</a> <a id="1681" href="Data.Product.Base.html#1244" class="Function">]</a> <a id="1683" href="Data.Product.Base.html#1668" class="Bound">B</a>
|
|||
|
|
|||
|
<a id="_,′_"></a><a id="1686" href="Data.Product.Base.html#1686" class="Function Operator">_,′_</a> <a id="1691" class="Symbol">:</a> <a id="1693" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="1695" class="Symbol">→</a> <a id="1697" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="1699" class="Symbol">→</a> <a id="1701" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="1703" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="1705" href="Data.Product.Base.html#402" class="Generalizable">B</a>
|
|||
|
<a id="1707" href="Data.Product.Base.html#1686" class="Function Operator">_,′_</a> <a id="1712" class="Symbol">=</a> <a id="1714" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">_,_</a>
|
|||
|
|
|||
|
<a id="1719" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="1792" class="Comment">-- Operations over dependent products</a>
|
|||
|
|
|||
|
<a id="1831" class="Keyword">infix</a> <a id="1838" class="Number">4</a> <a id="1840" href="Data.Product.Base.html#1932" class="Function Operator">-,_</a>
|
|||
|
<a id="1844" class="Keyword">infixr</a> <a id="1851" class="Number">2</a> <a id="1853" href="Data.Product.Base.html#5099" class="Function Operator">_-×-_</a> <a id="1859" href="Data.Product.Base.html#5184" class="Function Operator">_-,-_</a>
|
|||
|
<a id="1865" class="Keyword">infixl</a> <a id="1872" class="Number">2</a> <a id="1874" href="Data.Product.Base.html#4832" class="Function Operator">_<*>_</a>
|
|||
|
|
|||
|
<a id="1881" class="Comment">-- Sometimes the first component can be inferred.</a>
|
|||
|
|
|||
|
<a id="-,_"></a><a id="1932" href="Data.Product.Base.html#1932" class="Function Operator">-,_</a> <a id="1936" class="Symbol">:</a> <a id="1938" class="Symbol">∀</a> <a id="1940" class="Symbol">{</a><a id="1941" href="Data.Product.Base.html#1941" class="Bound">A</a> <a id="1943" class="Symbol">:</a> <a id="1945" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1949" href="Data.Product.Base.html#356" class="Generalizable">a</a><a id="1950" class="Symbol">}</a> <a id="1952" class="Symbol">{</a><a id="1953" href="Data.Product.Base.html#1953" class="Bound">B</a> <a id="1955" class="Symbol">:</a> <a id="1957" href="Data.Product.Base.html#1941" class="Bound">A</a> <a id="1959" class="Symbol">→</a> <a id="1961" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1965" href="Data.Product.Base.html#358" class="Generalizable">b</a><a id="1966" class="Symbol">}</a> <a id="1968" class="Symbol">{</a><a id="1969" href="Data.Product.Base.html#1969" class="Bound">x</a><a id="1970" class="Symbol">}</a> <a id="1972" class="Symbol">→</a> <a id="1974" href="Data.Product.Base.html#1953" class="Bound">B</a> <a id="1976" href="Data.Product.Base.html#1969" class="Bound">x</a> <a id="1978" class="Symbol">→</a> <a id="1980" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="1982" class="Symbol">_</a> <a id="1984" href="Data.Product.Base.html#1953" class="Bound">B</a>
|
|||
|
<a id="1986" href="Data.Product.Base.html#1932" class="Function Operator">-,</a> <a id="1989" href="Data.Product.Base.html#1989" class="Bound">y</a> <a id="1991" class="Symbol">=</a> <a id="1993" class="Symbol">_</a> <a id="1995" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="1997" href="Data.Product.Base.html#1989" class="Bound">y</a>
|
|||
|
|
|||
|
<a id="<_,_>"></a><a id="2000" href="Data.Product.Base.html#2000" class="Function Operator"><_,_></a> <a id="2006" class="Symbol">:</a> <a id="2008" class="Symbol">∀</a> <a id="2010" class="Symbol">{</a><a id="2011" href="Data.Product.Base.html#2011" class="Bound">A</a> <a id="2013" class="Symbol">:</a> <a id="2015" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2019" href="Data.Product.Base.html#356" class="Generalizable">a</a><a id="2020" class="Symbol">}</a> <a id="2022" class="Symbol">{</a><a id="2023" href="Data.Product.Base.html#2023" class="Bound">B</a> <a id="2025" class="Symbol">:</a> <a id="2027" href="Data.Product.Base.html#2011" class="Bound">A</a> <a id="2029" class="Symbol">→</a> <a id="2031" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2035" href="Data.Product.Base.html#358" class="Generalizable">b</a><a id="2036" class="Symbol">}</a> <a id="2038" class="Symbol">{</a><a id="2039" href="Data.Product.Base.html#2039" class="Bound">C</a> <a id="2041" class="Symbol">:</a> <a id="2043" class="Symbol">∀</a> <a id="2045" class="Symbol">{</a><a id="2046" href="Data.Product.Base.html#2046" class="Bound">x</a><a id="2047" class="Symbol">}</a> <a id="2049" class="Symbol">→</a> <a id="2051" href="Data.Product.Base.html#2023" class="Bound">B</a> <a id="2053" href="Data.Product.Base.html#2046" class="Bound">x</a> <a id="2055" class="Symbol">→</a> <a id="2057" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2061" href="Data.Product.Base.html#360" class="Generalizable">c</a><a id="2062" class="Symbol">}</a>
|
|||
|
<a id="2072" class="Symbol">(</a><a id="2073" href="Data.Product.Base.html#2073" class="Bound">f</a> <a id="2075" class="Symbol">:</a> <a id="2077" class="Symbol">(</a><a id="2078" href="Data.Product.Base.html#2078" class="Bound">x</a> <a id="2080" class="Symbol">:</a> <a id="2082" href="Data.Product.Base.html#2011" class="Bound">A</a><a id="2083" class="Symbol">)</a> <a id="2085" class="Symbol">→</a> <a id="2087" href="Data.Product.Base.html#2023" class="Bound">B</a> <a id="2089" href="Data.Product.Base.html#2078" class="Bound">x</a><a id="2090" class="Symbol">)</a> <a id="2092" class="Symbol">→</a> <a id="2094" class="Symbol">((</a><a id="2096" href="Data.Product.Base.html#2096" class="Bound">x</a> <a id="2098" class="Symbol">:</a> <a id="2100" href="Data.Product.Base.html#2011" class="Bound">A</a><a id="2101" class="Symbol">)</a> <a id="2103" class="Symbol">→</a> <a id="2105" href="Data.Product.Base.html#2039" class="Bound">C</a> <a id="2107" class="Symbol">(</a><a id="2108" href="Data.Product.Base.html#2073" class="Bound">f</a> <a id="2110" href="Data.Product.Base.html#2096" class="Bound">x</a><a id="2111" class="Symbol">))</a> <a id="2114" class="Symbol">→</a>
|
|||
|
<a id="2124" class="Symbol">((</a><a id="2126" href="Data.Product.Base.html#2126" class="Bound">x</a> <a id="2128" class="Symbol">:</a> <a id="2130" href="Data.Product.Base.html#2011" class="Bound">A</a><a id="2131" class="Symbol">)</a> <a id="2133" class="Symbol">→</a> <a id="2135" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="2137" class="Symbol">(</a><a id="2138" href="Data.Product.Base.html#2023" class="Bound">B</a> <a id="2140" href="Data.Product.Base.html#2126" class="Bound">x</a><a id="2141" class="Symbol">)</a> <a id="2143" href="Data.Product.Base.html#2039" class="Bound">C</a><a id="2144" class="Symbol">)</a>
|
|||
|
<a id="2146" href="Data.Product.Base.html#2000" class="Function Operator"><</a> <a id="2148" href="Data.Product.Base.html#2148" class="Bound">f</a> <a id="2150" href="Data.Product.Base.html#2000" class="Function Operator">,</a> <a id="2152" href="Data.Product.Base.html#2152" class="Bound">g</a> <a id="2154" href="Data.Product.Base.html#2000" class="Function Operator">></a> <a id="2156" href="Data.Product.Base.html#2156" class="Bound">x</a> <a id="2158" class="Symbol">=</a> <a id="2160" class="Symbol">(</a><a id="2161" href="Data.Product.Base.html#2148" class="Bound">f</a> <a id="2163" href="Data.Product.Base.html#2156" class="Bound">x</a> <a id="2165" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="2167" href="Data.Product.Base.html#2152" class="Bound">g</a> <a id="2169" href="Data.Product.Base.html#2156" class="Bound">x</a><a id="2170" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="map"></a><a id="2173" href="Data.Product.Base.html#2173" class="Function">map</a> <a id="2177" class="Symbol">:</a> <a id="2179" class="Symbol">∀</a> <a id="2181" class="Symbol">{</a><a id="2182" href="Data.Product.Base.html#2182" class="Bound">P</a> <a id="2184" class="Symbol">:</a> <a id="2186" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="2188" class="Symbol">→</a> <a id="2190" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2194" href="Data.Product.Base.html#370" class="Generalizable">p</a><a id="2195" class="Symbol">}</a> <a id="2197" class="Symbol">{</a><a id="2198" href="Data.Product.Base.html#2198" class="Bound">Q</a> <a id="2200" class="Symbol">:</a> <a id="2202" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="2204" class="Symbol">→</a> <a id="2206" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2210" href="Data.Product.Base.html#372" class="Generalizable">q</a><a id="2211" class="Symbol">}</a> <a id="2213" class="Symbol">→</a>
|
|||
|
<a id="2221" class="Symbol">(</a><a id="2222" href="Data.Product.Base.html#2222" class="Bound">f</a> <a id="2224" class="Symbol">:</a> <a id="2226" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="2228" class="Symbol">→</a> <a id="2230" href="Data.Product.Base.html#402" class="Generalizable">B</a><a id="2231" class="Symbol">)</a> <a id="2233" class="Symbol">→</a> <a id="2235" class="Symbol">(∀</a> <a id="2238" class="Symbol">{</a><a id="2239" href="Data.Product.Base.html#2239" class="Bound">x</a><a id="2240" class="Symbol">}</a> <a id="2242" class="Symbol">→</a> <a id="2244" href="Data.Product.Base.html#2182" class="Bound">P</a> <a id="2246" href="Data.Product.Base.html#2239" class="Bound">x</a> <a id="2248" class="Symbol">→</a> <a id="2250" href="Data.Product.Base.html#2198" class="Bound">Q</a> <a id="2252" class="Symbol">(</a><a id="2253" href="Data.Product.Base.html#2222" class="Bound">f</a> <a id="2255" href="Data.Product.Base.html#2239" class="Bound">x</a><a id="2256" class="Symbol">))</a> <a id="2259" class="Symbol">→</a>
|
|||
|
<a id="2267" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="2269" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="2271" href="Data.Product.Base.html#2182" class="Bound">P</a> <a id="2273" class="Symbol">→</a> <a id="2275" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="2277" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="2279" href="Data.Product.Base.html#2198" class="Bound">Q</a>
|
|||
|
<a id="2281" href="Data.Product.Base.html#2173" class="Function">map</a> <a id="2285" href="Data.Product.Base.html#2285" class="Bound">f</a> <a id="2287" href="Data.Product.Base.html#2287" class="Bound">g</a> <a id="2289" class="Symbol">(</a><a id="2290" href="Data.Product.Base.html#2290" class="Bound">x</a> <a id="2292" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="2294" href="Data.Product.Base.html#2294" class="Bound">y</a><a id="2295" class="Symbol">)</a> <a id="2297" class="Symbol">=</a> <a id="2299" class="Symbol">(</a><a id="2300" href="Data.Product.Base.html#2285" class="Bound">f</a> <a id="2302" href="Data.Product.Base.html#2290" class="Bound">x</a> <a id="2304" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="2306" href="Data.Product.Base.html#2287" class="Bound">g</a> <a id="2308" href="Data.Product.Base.html#2294" class="Bound">y</a><a id="2309" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="map₁"></a><a id="2312" href="Data.Product.Base.html#2312" class="Function">map₁</a> <a id="2317" class="Symbol">:</a> <a id="2319" class="Symbol">(</a><a id="2320" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="2322" class="Symbol">→</a> <a id="2324" href="Data.Product.Base.html#402" class="Generalizable">B</a><a id="2325" class="Symbol">)</a> <a id="2327" class="Symbol">→</a> <a id="2329" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="2331" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="2333" href="Data.Product.Base.html#416" class="Generalizable">C</a> <a id="2335" class="Symbol">→</a> <a id="2337" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="2339" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="2341" href="Data.Product.Base.html#416" class="Generalizable">C</a>
|
|||
|
<a id="2343" href="Data.Product.Base.html#2312" class="Function">map₁</a> <a id="2348" href="Data.Product.Base.html#2348" class="Bound">f</a> <a id="2350" class="Symbol">=</a> <a id="2352" href="Data.Product.Base.html#2173" class="Function">map</a> <a id="2356" href="Data.Product.Base.html#2348" class="Bound">f</a> <a id="2358" href="Function.Base.html#704" class="Function">id</a>
|
|||
|
|
|||
|
<a id="map₂"></a><a id="2362" href="Data.Product.Base.html#2362" class="Function">map₂</a> <a id="2367" class="Symbol">:</a> <a id="2369" class="Symbol">∀</a> <a id="2371" class="Symbol">{</a><a id="2372" href="Data.Product.Base.html#2372" class="Bound">A</a> <a id="2374" class="Symbol">:</a> <a id="2376" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2380" href="Data.Product.Base.html#356" class="Generalizable">a</a><a id="2381" class="Symbol">}</a> <a id="2383" class="Symbol">{</a><a id="2384" href="Data.Product.Base.html#2384" class="Bound">B</a> <a id="2386" class="Symbol">:</a> <a id="2388" href="Data.Product.Base.html#2372" class="Bound">A</a> <a id="2390" class="Symbol">→</a> <a id="2392" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2396" href="Data.Product.Base.html#358" class="Generalizable">b</a><a id="2397" class="Symbol">}</a> <a id="2399" class="Symbol">{</a><a id="2400" href="Data.Product.Base.html#2400" class="Bound">C</a> <a id="2402" class="Symbol">:</a> <a id="2404" href="Data.Product.Base.html#2372" class="Bound">A</a> <a id="2406" class="Symbol">→</a> <a id="2408" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2412" href="Data.Product.Base.html#360" class="Generalizable">c</a><a id="2413" class="Symbol">}</a> <a id="2415" class="Symbol">→</a>
|
|||
|
<a id="2424" class="Symbol">(∀</a> <a id="2427" class="Symbol">{</a><a id="2428" href="Data.Product.Base.html#2428" class="Bound">x</a><a id="2429" class="Symbol">}</a> <a id="2431" class="Symbol">→</a> <a id="2433" href="Data.Product.Base.html#2384" class="Bound">B</a> <a id="2435" href="Data.Product.Base.html#2428" class="Bound">x</a> <a id="2437" class="Symbol">→</a> <a id="2439" href="Data.Product.Base.html#2400" class="Bound">C</a> <a id="2441" href="Data.Product.Base.html#2428" class="Bound">x</a><a id="2442" class="Symbol">)</a> <a id="2444" class="Symbol">→</a> <a id="2446" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="2448" href="Data.Product.Base.html#2372" class="Bound">A</a> <a id="2450" href="Data.Product.Base.html#2384" class="Bound">B</a> <a id="2452" class="Symbol">→</a> <a id="2454" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="2456" href="Data.Product.Base.html#2372" class="Bound">A</a> <a id="2458" href="Data.Product.Base.html#2400" class="Bound">C</a>
|
|||
|
<a id="2460" href="Data.Product.Base.html#2362" class="Function">map₂</a> <a id="2465" href="Data.Product.Base.html#2465" class="Bound">f</a> <a id="2467" class="Symbol">=</a> <a id="2469" href="Data.Product.Base.html#2173" class="Function">map</a> <a id="2473" href="Function.Base.html#704" class="Function">id</a> <a id="2476" href="Data.Product.Base.html#2465" class="Bound">f</a>
|
|||
|
|
|||
|
<a id="2479" class="Comment">-- A version of map where the output can depend on the input</a>
|
|||
|
<a id="dmap"></a><a id="2540" href="Data.Product.Base.html#2540" class="Function">dmap</a> <a id="2545" class="Symbol">:</a> <a id="2547" class="Symbol">∀</a> <a id="2549" class="Symbol">{</a><a id="2550" href="Data.Product.Base.html#2550" class="Bound">B</a> <a id="2552" class="Symbol">:</a> <a id="2554" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="2556" class="Symbol">→</a> <a id="2558" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2562" href="Data.Product.Base.html#358" class="Generalizable">b</a><a id="2563" class="Symbol">}</a> <a id="2565" class="Symbol">{</a><a id="2566" href="Data.Product.Base.html#2566" class="Bound">P</a> <a id="2568" class="Symbol">:</a> <a id="2570" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="2572" class="Symbol">→</a> <a id="2574" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2578" href="Data.Product.Base.html#370" class="Generalizable">p</a><a id="2579" class="Symbol">}</a> <a id="2581" class="Symbol">{</a><a id="2582" href="Data.Product.Base.html#2582" class="Bound">Q</a> <a id="2584" class="Symbol">:</a> <a id="2586" class="Symbol">∀</a> <a id="2588" class="Symbol">{</a><a id="2589" href="Data.Product.Base.html#2589" class="Bound">a</a><a id="2590" class="Symbol">}</a> <a id="2592" class="Symbol">→</a> <a id="2594" href="Data.Product.Base.html#2566" class="Bound">P</a> <a id="2596" href="Data.Product.Base.html#2589" class="Bound">a</a> <a id="2598" class="Symbol">→</a> <a id="2600" href="Data.Product.Base.html#2550" class="Bound">B</a> <a id="2602" href="Data.Product.Base.html#2589" class="Bound">a</a> <a id="2604" class="Symbol">→</a> <a id="2606" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2610" href="Data.Product.Base.html#372" class="Generalizable">q</a><a id="2611" class="Symbol">}</a> <a id="2613" class="Symbol">→</a>
|
|||
|
<a id="2622" class="Symbol">(</a><a id="2623" href="Data.Product.Base.html#2623" class="Bound">f</a> <a id="2625" class="Symbol">:</a> <a id="2627" class="Symbol">(</a><a id="2628" href="Data.Product.Base.html#2628" class="Bound">a</a> <a id="2630" class="Symbol">:</a> <a id="2632" href="Data.Product.Base.html#388" class="Generalizable">A</a><a id="2633" class="Symbol">)</a> <a id="2635" class="Symbol">→</a> <a id="2637" href="Data.Product.Base.html#2550" class="Bound">B</a> <a id="2639" href="Data.Product.Base.html#2628" class="Bound">a</a><a id="2640" class="Symbol">)</a> <a id="2642" class="Symbol">→</a> <a id="2644" class="Symbol">(∀</a> <a id="2647" class="Symbol">{</a><a id="2648" href="Data.Product.Base.html#2648" class="Bound">a</a><a id="2649" class="Symbol">}</a> <a id="2651" class="Symbol">(</a><a id="2652" href="Data.Product.Base.html#2652" class="Bound">b</a> <a id="2654" class="Symbol">:</a> <a id="2656" href="Data.Product.Base.html#2566" class="Bound">P</a> <a id="2658" href="Data.Product.Base.html#2648" class="Bound">a</a><a id="2659" class="Symbol">)</a> <a id="2661" class="Symbol">→</a> <a id="2663" href="Data.Product.Base.html#2582" class="Bound">Q</a> <a id="2665" href="Data.Product.Base.html#2652" class="Bound">b</a> <a id="2667" class="Symbol">(</a><a id="2668" href="Data.Product.Base.html#2623" class="Bound">f</a> <a id="2670" href="Data.Product.Base.html#2648" class="Bound">a</a><a id="2671" class="Symbol">))</a> <a id="2674" class="Symbol">→</a>
|
|||
|
<a id="2683" class="Symbol">(</a><a id="2684" href="Data.Product.Base.html#2684" class="Bound">(</a><a id="2685" href="Data.Product.Base.html#2685" class="Bound">a</a> <a id="2687" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="2689" href="Data.Product.Base.html#2689" class="Bound">b</a><a id="2690" href="Data.Product.Base.html#2684" class="Bound">)</a> <a id="2692" class="Symbol">:</a> <a id="2694" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="2696" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="2698" href="Data.Product.Base.html#2566" class="Bound">P</a><a id="2699" class="Symbol">)</a> <a id="2701" class="Symbol">→</a> <a id="2703" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="2705" class="Symbol">(</a><a id="2706" href="Data.Product.Base.html#2550" class="Bound">B</a> <a id="2708" href="Data.Product.Base.html#2685" class="Bound">a</a><a id="2709" class="Symbol">)</a> <a id="2711" class="Symbol">(</a><a id="2712" href="Data.Product.Base.html#2582" class="Bound">Q</a> <a id="2714" href="Data.Product.Base.html#2689" class="Bound">b</a><a id="2715" class="Symbol">)</a>
|
|||
|
<a id="2717" href="Data.Product.Base.html#2540" class="Function">dmap</a> <a id="2722" href="Data.Product.Base.html#2722" class="Bound">f</a> <a id="2724" href="Data.Product.Base.html#2724" class="Bound">g</a> <a id="2726" class="Symbol">(</a><a id="2727" href="Data.Product.Base.html#2727" class="Bound">x</a> <a id="2729" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="2731" href="Data.Product.Base.html#2731" class="Bound">y</a><a id="2732" class="Symbol">)</a> <a id="2734" class="Symbol">=</a> <a id="2736" href="Data.Product.Base.html#2722" class="Bound">f</a> <a id="2738" href="Data.Product.Base.html#2727" class="Bound">x</a> <a id="2740" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="2742" href="Data.Product.Base.html#2724" class="Bound">g</a> <a id="2744" href="Data.Product.Base.html#2731" class="Bound">y</a>
|
|||
|
|
|||
|
<a id="zip"></a><a id="2747" href="Data.Product.Base.html#2747" class="Function">zip</a> <a id="2751" class="Symbol">:</a> <a id="2753" class="Symbol">∀</a> <a id="2755" class="Symbol">{</a><a id="2756" href="Data.Product.Base.html#2756" class="Bound">P</a> <a id="2758" class="Symbol">:</a> <a id="2760" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="2762" class="Symbol">→</a> <a id="2764" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2768" href="Data.Product.Base.html#370" class="Generalizable">p</a><a id="2769" class="Symbol">}</a> <a id="2771" class="Symbol">{</a><a id="2772" href="Data.Product.Base.html#2772" class="Bound">Q</a> <a id="2774" class="Symbol">:</a> <a id="2776" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="2778" class="Symbol">→</a> <a id="2780" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2784" href="Data.Product.Base.html#372" class="Generalizable">q</a><a id="2785" class="Symbol">}</a> <a id="2787" class="Symbol">{</a><a id="2788" href="Data.Product.Base.html#2788" class="Bound">R</a> <a id="2790" class="Symbol">:</a> <a id="2792" href="Data.Product.Base.html#416" class="Generalizable">C</a> <a id="2794" class="Symbol">→</a> <a id="2796" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2800" href="Data.Product.Base.html#374" class="Generalizable">r</a><a id="2801" class="Symbol">}</a> <a id="2803" class="Symbol">→</a>
|
|||
|
<a id="2811" class="Symbol">(</a><a id="2812" href="Data.Product.Base.html#2812" class="Bound Operator">_∙_</a> <a id="2816" class="Symbol">:</a> <a id="2818" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="2820" class="Symbol">→</a> <a id="2822" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="2824" class="Symbol">→</a> <a id="2826" href="Data.Product.Base.html#416" class="Generalizable">C</a><a id="2827" class="Symbol">)</a> <a id="2829" class="Symbol">→</a>
|
|||
|
<a id="2837" class="Symbol">(∀</a> <a id="2840" class="Symbol">{</a><a id="2841" href="Data.Product.Base.html#2841" class="Bound">x</a> <a id="2843" href="Data.Product.Base.html#2843" class="Bound">y</a><a id="2844" class="Symbol">}</a> <a id="2846" class="Symbol">→</a> <a id="2848" href="Data.Product.Base.html#2756" class="Bound">P</a> <a id="2850" href="Data.Product.Base.html#2841" class="Bound">x</a> <a id="2852" class="Symbol">→</a> <a id="2854" href="Data.Product.Base.html#2772" class="Bound">Q</a> <a id="2856" href="Data.Product.Base.html#2843" class="Bound">y</a> <a id="2858" class="Symbol">→</a> <a id="2860" href="Data.Product.Base.html#2788" class="Bound">R</a> <a id="2862" class="Symbol">(</a><a id="2863" href="Data.Product.Base.html#2841" class="Bound">x</a> <a id="2865" href="Data.Product.Base.html#2812" class="Bound Operator">∙</a> <a id="2867" href="Data.Product.Base.html#2843" class="Bound">y</a><a id="2868" class="Symbol">))</a> <a id="2871" class="Symbol">→</a>
|
|||
|
<a id="2879" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="2881" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="2883" href="Data.Product.Base.html#2756" class="Bound">P</a> <a id="2885" class="Symbol">→</a> <a id="2887" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="2889" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="2891" href="Data.Product.Base.html#2772" class="Bound">Q</a> <a id="2893" class="Symbol">→</a> <a id="2895" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="2897" href="Data.Product.Base.html#416" class="Generalizable">C</a> <a id="2899" href="Data.Product.Base.html#2788" class="Bound">R</a>
|
|||
|
<a id="2901" href="Data.Product.Base.html#2747" class="Function">zip</a> <a id="2905" href="Data.Product.Base.html#2905" class="Bound Operator">_∙_</a> <a id="2909" href="Data.Product.Base.html#2909" class="Bound Operator">_∘_</a> <a id="2913" class="Symbol">(</a><a id="2914" href="Data.Product.Base.html#2914" class="Bound">a</a> <a id="2916" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="2918" href="Data.Product.Base.html#2918" class="Bound">p</a><a id="2919" class="Symbol">)</a> <a id="2921" class="Symbol">(</a><a id="2922" href="Data.Product.Base.html#2922" class="Bound">b</a> <a id="2924" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="2926" href="Data.Product.Base.html#2926" class="Bound">q</a><a id="2927" class="Symbol">)</a> <a id="2929" class="Symbol">=</a> <a id="2931" class="Symbol">((</a><a id="2933" href="Data.Product.Base.html#2914" class="Bound">a</a> <a id="2935" href="Data.Product.Base.html#2905" class="Bound Operator">∙</a> <a id="2937" href="Data.Product.Base.html#2922" class="Bound">b</a><a id="2938" class="Symbol">)</a> <a id="2940" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="2942" class="Symbol">(</a><a id="2943" href="Data.Product.Base.html#2918" class="Bound">p</a> <a id="2945" href="Data.Product.Base.html#2909" class="Bound Operator">∘</a> <a id="2947" href="Data.Product.Base.html#2926" class="Bound">q</a><a id="2948" class="Symbol">))</a>
|
|||
|
|
|||
|
<a id="curry"></a><a id="2952" href="Data.Product.Base.html#2952" class="Function">curry</a> <a id="2958" class="Symbol">:</a> <a id="2960" class="Symbol">∀</a> <a id="2962" class="Symbol">{</a><a id="2963" href="Data.Product.Base.html#2963" class="Bound">A</a> <a id="2965" class="Symbol">:</a> <a id="2967" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2971" href="Data.Product.Base.html#356" class="Generalizable">a</a><a id="2972" class="Symbol">}</a> <a id="2974" class="Symbol">{</a><a id="2975" href="Data.Product.Base.html#2975" class="Bound">B</a> <a id="2977" class="Symbol">:</a> <a id="2979" href="Data.Product.Base.html#2963" class="Bound">A</a> <a id="2981" class="Symbol">→</a> <a id="2983" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2987" href="Data.Product.Base.html#358" class="Generalizable">b</a><a id="2988" class="Symbol">}</a> <a id="2990" class="Symbol">{</a><a id="2991" href="Data.Product.Base.html#2991" class="Bound">C</a> <a id="2993" class="Symbol">:</a> <a id="2995" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="2997" href="Data.Product.Base.html#2963" class="Bound">A</a> <a id="2999" href="Data.Product.Base.html#2975" class="Bound">B</a> <a id="3001" class="Symbol">→</a> <a id="3003" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3007" href="Data.Product.Base.html#360" class="Generalizable">c</a><a id="3008" class="Symbol">}</a> <a id="3010" class="Symbol">→</a>
|
|||
|
<a id="3020" class="Symbol">((</a><a id="3022" href="Data.Product.Base.html#3022" class="Bound">p</a> <a id="3024" class="Symbol">:</a> <a id="3026" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="3028" href="Data.Product.Base.html#2963" class="Bound">A</a> <a id="3030" href="Data.Product.Base.html#2975" class="Bound">B</a><a id="3031" class="Symbol">)</a> <a id="3033" class="Symbol">→</a> <a id="3035" href="Data.Product.Base.html#2991" class="Bound">C</a> <a id="3037" href="Data.Product.Base.html#3022" class="Bound">p</a><a id="3038" class="Symbol">)</a> <a id="3040" class="Symbol">→</a>
|
|||
|
<a id="3050" class="Symbol">((</a><a id="3052" href="Data.Product.Base.html#3052" class="Bound">x</a> <a id="3054" class="Symbol">:</a> <a id="3056" href="Data.Product.Base.html#2963" class="Bound">A</a><a id="3057" class="Symbol">)</a> <a id="3059" class="Symbol">→</a> <a id="3061" class="Symbol">(</a><a id="3062" href="Data.Product.Base.html#3062" class="Bound">y</a> <a id="3064" class="Symbol">:</a> <a id="3066" href="Data.Product.Base.html#2975" class="Bound">B</a> <a id="3068" href="Data.Product.Base.html#3052" class="Bound">x</a><a id="3069" class="Symbol">)</a> <a id="3071" class="Symbol">→</a> <a id="3073" href="Data.Product.Base.html#2991" class="Bound">C</a> <a id="3075" class="Symbol">(</a><a id="3076" href="Data.Product.Base.html#3052" class="Bound">x</a> <a id="3078" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="3080" href="Data.Product.Base.html#3062" class="Bound">y</a><a id="3081" class="Symbol">))</a>
|
|||
|
<a id="3084" href="Data.Product.Base.html#2952" class="Function">curry</a> <a id="3090" href="Data.Product.Base.html#3090" class="Bound">f</a> <a id="3092" href="Data.Product.Base.html#3092" class="Bound">x</a> <a id="3094" href="Data.Product.Base.html#3094" class="Bound">y</a> <a id="3096" class="Symbol">=</a> <a id="3098" href="Data.Product.Base.html#3090" class="Bound">f</a> <a id="3100" class="Symbol">(</a><a id="3101" href="Data.Product.Base.html#3092" class="Bound">x</a> <a id="3103" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="3105" href="Data.Product.Base.html#3094" class="Bound">y</a><a id="3106" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="uncurry"></a><a id="3109" href="Data.Product.Base.html#3109" class="Function">uncurry</a> <a id="3117" class="Symbol">:</a> <a id="3119" class="Symbol">∀</a> <a id="3121" class="Symbol">{</a><a id="3122" href="Data.Product.Base.html#3122" class="Bound">A</a> <a id="3124" class="Symbol">:</a> <a id="3126" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3130" href="Data.Product.Base.html#356" class="Generalizable">a</a><a id="3131" class="Symbol">}</a> <a id="3133" class="Symbol">{</a><a id="3134" href="Data.Product.Base.html#3134" class="Bound">B</a> <a id="3136" class="Symbol">:</a> <a id="3138" href="Data.Product.Base.html#3122" class="Bound">A</a> <a id="3140" class="Symbol">→</a> <a id="3142" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3146" href="Data.Product.Base.html#358" class="Generalizable">b</a><a id="3147" class="Symbol">}</a> <a id="3149" class="Symbol">{</a><a id="3150" href="Data.Product.Base.html#3150" class="Bound">C</a> <a id="3152" class="Symbol">:</a> <a id="3154" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="3156" href="Data.Product.Base.html#3122" class="Bound">A</a> <a id="3158" href="Data.Product.Base.html#3134" class="Bound">B</a> <a id="3160" class="Symbol">→</a> <a id="3162" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3166" href="Data.Product.Base.html#360" class="Generalizable">c</a><a id="3167" class="Symbol">}</a> <a id="3169" class="Symbol">→</a>
|
|||
|
<a id="3181" class="Symbol">((</a><a id="3183" href="Data.Product.Base.html#3183" class="Bound">x</a> <a id="3185" class="Symbol">:</a> <a id="3187" href="Data.Product.Base.html#3122" class="Bound">A</a><a id="3188" class="Symbol">)</a> <a id="3190" class="Symbol">→</a> <a id="3192" class="Symbol">(</a><a id="3193" href="Data.Product.Base.html#3193" class="Bound">y</a> <a id="3195" class="Symbol">:</a> <a id="3197" href="Data.Product.Base.html#3134" class="Bound">B</a> <a id="3199" href="Data.Product.Base.html#3183" class="Bound">x</a><a id="3200" class="Symbol">)</a> <a id="3202" class="Symbol">→</a> <a id="3204" href="Data.Product.Base.html#3150" class="Bound">C</a> <a id="3206" class="Symbol">(</a><a id="3207" href="Data.Product.Base.html#3183" class="Bound">x</a> <a id="3209" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="3211" href="Data.Product.Base.html#3193" class="Bound">y</a><a id="3212" class="Symbol">))</a> <a id="3215" class="Symbol">→</a>
|
|||
|
<a id="3227" class="Symbol">((</a><a id="3229" href="Data.Product.Base.html#3229" class="Bound">p</a> <a id="3231" class="Symbol">:</a> <a id="3233" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="3235" href="Data.Product.Base.html#3122" class="Bound">A</a> <a id="3237" href="Data.Product.Base.html#3134" class="Bound">B</a><a id="3238" class="Symbol">)</a> <a id="3240" class="Symbol">→</a> <a id="3242" href="Data.Product.Base.html#3150" class="Bound">C</a> <a id="3244" href="Data.Product.Base.html#3229" class="Bound">p</a><a id="3245" class="Symbol">)</a>
|
|||
|
<a id="3247" href="Data.Product.Base.html#3109" class="Function">uncurry</a> <a id="3255" href="Data.Product.Base.html#3255" class="Bound">f</a> <a id="3257" class="Symbol">(</a><a id="3258" href="Data.Product.Base.html#3258" class="Bound">x</a> <a id="3260" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="3262" href="Data.Product.Base.html#3262" class="Bound">y</a><a id="3263" class="Symbol">)</a> <a id="3265" class="Symbol">=</a> <a id="3267" href="Data.Product.Base.html#3255" class="Bound">f</a> <a id="3269" href="Data.Product.Base.html#3258" class="Bound">x</a> <a id="3271" href="Data.Product.Base.html#3262" class="Bound">y</a>
|
|||
|
|
|||
|
<a id="3274" class="Comment">-- Rewriting dependent products</a>
|
|||
|
<a id="assocʳ"></a><a id="3306" href="Data.Product.Base.html#3306" class="Function">assocʳ</a> <a id="3313" class="Symbol">:</a> <a id="3315" class="Symbol">{</a><a id="3316" href="Data.Product.Base.html#3316" class="Bound">B</a> <a id="3318" class="Symbol">:</a> <a id="3320" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="3322" class="Symbol">→</a> <a id="3324" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3328" href="Data.Product.Base.html#358" class="Generalizable">b</a><a id="3329" class="Symbol">}</a> <a id="3331" class="Symbol">{</a><a id="3332" href="Data.Product.Base.html#3332" class="Bound">C</a> <a id="3334" class="Symbol">:</a> <a id="3336" class="Symbol">(</a><a id="3337" href="Data.Product.Base.html#3337" class="Bound">a</a> <a id="3339" class="Symbol">:</a> <a id="3341" href="Data.Product.Base.html#388" class="Generalizable">A</a><a id="3342" class="Symbol">)</a> <a id="3344" class="Symbol">→</a> <a id="3346" href="Data.Product.Base.html#3316" class="Bound">B</a> <a id="3348" href="Data.Product.Base.html#3337" class="Bound">a</a> <a id="3350" class="Symbol">→</a> <a id="3352" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3356" href="Data.Product.Base.html#360" class="Generalizable">c</a><a id="3357" class="Symbol">}</a> <a id="3359" class="Symbol">→</a>
|
|||
|
<a id="3371" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="3373" class="Symbol">(</a><a id="3374" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="3376" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="3378" href="Data.Product.Base.html#3316" class="Bound">B</a><a id="3379" class="Symbol">)</a> <a id="3381" class="Symbol">(</a><a id="3382" href="Data.Product.Base.html#3109" class="Function">uncurry</a> <a id="3390" href="Data.Product.Base.html#3332" class="Bound">C</a><a id="3391" class="Symbol">)</a> <a id="3393" class="Symbol">→</a> <a id="3395" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="3397" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="3399" class="Symbol">(λ</a> <a id="3402" href="Data.Product.Base.html#3402" class="Bound">a</a> <a id="3404" class="Symbol">→</a> <a id="3406" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="3408" class="Symbol">(</a><a id="3409" href="Data.Product.Base.html#3316" class="Bound">B</a> <a id="3411" href="Data.Product.Base.html#3402" class="Bound">a</a><a id="3412" class="Symbol">)</a> <a id="3414" class="Symbol">(</a><a id="3415" href="Data.Product.Base.html#3332" class="Bound">C</a> <a id="3417" href="Data.Product.Base.html#3402" class="Bound">a</a><a id="3418" class="Symbol">))</a>
|
|||
|
<a id="3421" href="Data.Product.Base.html#3306" class="Function">assocʳ</a> <a id="3428" class="Symbol">((</a><a id="3430" href="Data.Product.Base.html#3430" class="Bound">a</a> <a id="3432" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="3434" href="Data.Product.Base.html#3434" class="Bound">b</a><a id="3435" class="Symbol">)</a> <a id="3437" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="3439" href="Data.Product.Base.html#3439" class="Bound">c</a><a id="3440" class="Symbol">)</a> <a id="3442" class="Symbol">=</a> <a id="3444" class="Symbol">(</a><a id="3445" href="Data.Product.Base.html#3430" class="Bound">a</a> <a id="3447" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="3449" class="Symbol">(</a><a id="3450" href="Data.Product.Base.html#3434" class="Bound">b</a> <a id="3452" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="3454" href="Data.Product.Base.html#3439" class="Bound">c</a><a id="3455" class="Symbol">))</a>
|
|||
|
|
|||
|
<a id="assocˡ"></a><a id="3459" href="Data.Product.Base.html#3459" class="Function">assocˡ</a> <a id="3466" class="Symbol">:</a> <a id="3468" class="Symbol">{</a><a id="3469" href="Data.Product.Base.html#3469" class="Bound">B</a> <a id="3471" class="Symbol">:</a> <a id="3473" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="3475" class="Symbol">→</a> <a id="3477" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3481" href="Data.Product.Base.html#358" class="Generalizable">b</a><a id="3482" class="Symbol">}</a> <a id="3484" class="Symbol">{</a><a id="3485" href="Data.Product.Base.html#3485" class="Bound">C</a> <a id="3487" class="Symbol">:</a> <a id="3489" class="Symbol">(</a><a id="3490" href="Data.Product.Base.html#3490" class="Bound">a</a> <a id="3492" class="Symbol">:</a> <a id="3494" href="Data.Product.Base.html#388" class="Generalizable">A</a><a id="3495" class="Symbol">)</a> <a id="3497" class="Symbol">→</a> <a id="3499" href="Data.Product.Base.html#3469" class="Bound">B</a> <a id="3501" href="Data.Product.Base.html#3490" class="Bound">a</a> <a id="3503" class="Symbol">→</a> <a id="3505" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3509" href="Data.Product.Base.html#360" class="Generalizable">c</a><a id="3510" class="Symbol">}</a> <a id="3512" class="Symbol">→</a>
|
|||
|
<a id="3524" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="3526" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="3528" class="Symbol">(λ</a> <a id="3531" href="Data.Product.Base.html#3531" class="Bound">a</a> <a id="3533" class="Symbol">→</a> <a id="3535" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="3537" class="Symbol">(</a><a id="3538" href="Data.Product.Base.html#3469" class="Bound">B</a> <a id="3540" href="Data.Product.Base.html#3531" class="Bound">a</a><a id="3541" class="Symbol">)</a> <a id="3543" class="Symbol">(</a><a id="3544" href="Data.Product.Base.html#3485" class="Bound">C</a> <a id="3546" href="Data.Product.Base.html#3531" class="Bound">a</a><a id="3547" class="Symbol">))</a> <a id="3550" class="Symbol">→</a> <a id="3552" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="3554" class="Symbol">(</a><a id="3555" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="3557" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="3559" href="Data.Product.Base.html#3469" class="Bound">B</a><a id="3560" class="Symbol">)</a> <a id="3562" class="Symbol">(</a><a id="3563" href="Data.Product.Base.html#3109" class="Function">uncurry</a> <a id="3571" href="Data.Product.Base.html#3485" class="Bound">C</a><a id="3572" class="Symbol">)</a>
|
|||
|
<a id="3574" href="Data.Product.Base.html#3459" class="Function">assocˡ</a> <a id="3581" class="Symbol">(</a><a id="3582" href="Data.Product.Base.html#3582" class="Bound">a</a> <a id="3584" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="3586" class="Symbol">(</a><a id="3587" href="Data.Product.Base.html#3587" class="Bound">b</a> <a id="3589" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="3591" href="Data.Product.Base.html#3591" class="Bound">c</a><a id="3592" class="Symbol">))</a> <a id="3595" class="Symbol">=</a> <a id="3597" class="Symbol">((</a><a id="3599" href="Data.Product.Base.html#3582" class="Bound">a</a> <a id="3601" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="3603" href="Data.Product.Base.html#3587" class="Bound">b</a><a id="3604" class="Symbol">)</a> <a id="3606" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="3608" href="Data.Product.Base.html#3591" class="Bound">c</a><a id="3609" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="3612" class="Comment">-- Alternate form of associativity for dependent products</a>
|
|||
|
<a id="3670" class="Comment">-- where the C parameter is uncurried.</a>
|
|||
|
<a id="assocʳ-curried"></a><a id="3709" href="Data.Product.Base.html#3709" class="Function">assocʳ-curried</a> <a id="3724" class="Symbol">:</a> <a id="3726" class="Symbol">{</a><a id="3727" href="Data.Product.Base.html#3727" class="Bound">B</a> <a id="3729" class="Symbol">:</a> <a id="3731" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="3733" class="Symbol">→</a> <a id="3735" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3739" href="Data.Product.Base.html#358" class="Generalizable">b</a><a id="3740" class="Symbol">}</a> <a id="3742" class="Symbol">{</a><a id="3743" href="Data.Product.Base.html#3743" class="Bound">C</a> <a id="3745" class="Symbol">:</a> <a id="3747" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="3749" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="3751" href="Data.Product.Base.html#3727" class="Bound">B</a> <a id="3753" class="Symbol">→</a> <a id="3755" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3759" href="Data.Product.Base.html#360" class="Generalizable">c</a><a id="3760" class="Symbol">}</a> <a id="3762" class="Symbol">→</a>
|
|||
|
<a id="3781" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="3783" class="Symbol">(</a><a id="3784" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="3786" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="3788" href="Data.Product.Base.html#3727" class="Bound">B</a><a id="3789" class="Symbol">)</a> <a id="3791" href="Data.Product.Base.html#3743" class="Bound">C</a> <a id="3793" class="Symbol">→</a> <a id="3795" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="3797" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="3799" class="Symbol">(λ</a> <a id="3802" href="Data.Product.Base.html#3802" class="Bound">a</a> <a id="3804" class="Symbol">→</a> <a id="3806" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="3808" class="Symbol">(</a><a id="3809" href="Data.Product.Base.html#3727" class="Bound">B</a> <a id="3811" href="Data.Product.Base.html#3802" class="Bound">a</a><a id="3812" class="Symbol">)</a> <a id="3814" class="Symbol">(</a><a id="3815" href="Data.Product.Base.html#2952" class="Function">curry</a> <a id="3821" href="Data.Product.Base.html#3743" class="Bound">C</a> <a id="3823" href="Data.Product.Base.html#3802" class="Bound">a</a><a id="3824" class="Symbol">))</a>
|
|||
|
<a id="3827" href="Data.Product.Base.html#3709" class="Function">assocʳ-curried</a> <a id="3842" class="Symbol">((</a><a id="3844" href="Data.Product.Base.html#3844" class="Bound">a</a> <a id="3846" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="3848" href="Data.Product.Base.html#3848" class="Bound">b</a><a id="3849" class="Symbol">)</a> <a id="3851" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="3853" href="Data.Product.Base.html#3853" class="Bound">c</a><a id="3854" class="Symbol">)</a> <a id="3856" class="Symbol">=</a> <a id="3858" class="Symbol">(</a><a id="3859" href="Data.Product.Base.html#3844" class="Bound">a</a> <a id="3861" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="3863" class="Symbol">(</a><a id="3864" href="Data.Product.Base.html#3848" class="Bound">b</a> <a id="3866" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="3868" href="Data.Product.Base.html#3853" class="Bound">c</a><a id="3869" class="Symbol">))</a>
|
|||
|
|
|||
|
<a id="assocˡ-curried"></a><a id="3873" href="Data.Product.Base.html#3873" class="Function">assocˡ-curried</a> <a id="3888" class="Symbol">:</a> <a id="3890" class="Symbol">{</a><a id="3891" href="Data.Product.Base.html#3891" class="Bound">B</a> <a id="3893" class="Symbol">:</a> <a id="3895" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="3897" class="Symbol">→</a> <a id="3899" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3903" href="Data.Product.Base.html#358" class="Generalizable">b</a><a id="3904" class="Symbol">}</a> <a id="3906" class="Symbol">{</a><a id="3907" href="Data.Product.Base.html#3907" class="Bound">C</a> <a id="3909" class="Symbol">:</a> <a id="3911" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="3913" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="3915" href="Data.Product.Base.html#3891" class="Bound">B</a> <a id="3917" class="Symbol">→</a> <a id="3919" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3923" href="Data.Product.Base.html#360" class="Generalizable">c</a><a id="3924" class="Symbol">}</a> <a id="3926" class="Symbol">→</a>
|
|||
|
<a id="3938" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="3940" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="3942" class="Symbol">(λ</a> <a id="3945" href="Data.Product.Base.html#3945" class="Bound">a</a> <a id="3947" class="Symbol">→</a> <a id="3949" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="3951" class="Symbol">(</a><a id="3952" href="Data.Product.Base.html#3891" class="Bound">B</a> <a id="3954" href="Data.Product.Base.html#3945" class="Bound">a</a><a id="3955" class="Symbol">)</a> <a id="3957" class="Symbol">(</a><a id="3958" href="Data.Product.Base.html#2952" class="Function">curry</a> <a id="3964" href="Data.Product.Base.html#3907" class="Bound">C</a> <a id="3966" href="Data.Product.Base.html#3945" class="Bound">a</a><a id="3967" class="Symbol">))</a> <a id="3970" class="Symbol">→</a> <a id="3972" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="3974" class="Symbol">(</a><a id="3975" href="Agda.Builtin.Sigma.html#165" class="Record">Σ</a> <a id="3977" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="3979" href="Data.Product.Base.html#3891" class="Bound">B</a><a id="3980" class="Symbol">)</a> <a id="3982" href="Data.Product.Base.html#3907" class="Bound">C</a>
|
|||
|
<a id="3984" href="Data.Product.Base.html#3873" class="Function">assocˡ-curried</a> <a id="3999" class="Symbol">(</a><a id="4000" href="Data.Product.Base.html#4000" class="Bound">a</a> <a id="4002" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="4004" class="Symbol">(</a><a id="4005" href="Data.Product.Base.html#4005" class="Bound">b</a> <a id="4007" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="4009" href="Data.Product.Base.html#4009" class="Bound">c</a><a id="4010" class="Symbol">))</a> <a id="4013" class="Symbol">=</a> <a id="4015" class="Symbol">((</a><a id="4017" href="Data.Product.Base.html#4000" class="Bound">a</a> <a id="4019" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="4021" href="Data.Product.Base.html#4005" class="Bound">b</a><a id="4022" class="Symbol">)</a> <a id="4024" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="4026" href="Data.Product.Base.html#4009" class="Bound">c</a><a id="4027" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="4030" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="4103" class="Comment">-- Operations for non-dependent products</a>
|
|||
|
|
|||
|
<a id="4145" class="Comment">-- Any of the above operations for dependent products will also work for</a>
|
|||
|
<a id="4218" class="Comment">-- non-dependent products but sometimes Agda has difficulty inferring</a>
|
|||
|
<a id="4288" class="Comment">-- the non-dependency. Primed (′ = \prime) versions of the operations</a>
|
|||
|
<a id="4358" class="Comment">-- are therefore provided below that sometimes have better inference</a>
|
|||
|
<a id="4427" class="Comment">-- properties.</a>
|
|||
|
|
|||
|
<a id="zip′"></a><a id="4443" href="Data.Product.Base.html#4443" class="Function">zip′</a> <a id="4448" class="Symbol">:</a> <a id="4450" class="Symbol">(</a><a id="4451" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="4453" class="Symbol">→</a> <a id="4455" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="4457" class="Symbol">→</a> <a id="4459" href="Data.Product.Base.html#416" class="Generalizable">C</a><a id="4460" class="Symbol">)</a> <a id="4462" class="Symbol">→</a> <a id="4464" class="Symbol">(</a><a id="4465" href="Data.Product.Base.html#430" class="Generalizable">D</a> <a id="4467" class="Symbol">→</a> <a id="4469" href="Data.Product.Base.html#444" class="Generalizable">E</a> <a id="4471" class="Symbol">→</a> <a id="4473" href="Data.Product.Base.html#458" class="Generalizable">F</a><a id="4474" class="Symbol">)</a> <a id="4476" class="Symbol">→</a> <a id="4478" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="4480" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="4482" href="Data.Product.Base.html#430" class="Generalizable">D</a> <a id="4484" class="Symbol">→</a> <a id="4486" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="4488" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="4490" href="Data.Product.Base.html#444" class="Generalizable">E</a> <a id="4492" class="Symbol">→</a> <a id="4494" href="Data.Product.Base.html#416" class="Generalizable">C</a> <a id="4496" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="4498" href="Data.Product.Base.html#458" class="Generalizable">F</a>
|
|||
|
<a id="4500" href="Data.Product.Base.html#4443" class="Function">zip′</a> <a id="4505" href="Data.Product.Base.html#4505" class="Bound">f</a> <a id="4507" href="Data.Product.Base.html#4507" class="Bound">g</a> <a id="4509" class="Symbol">=</a> <a id="4511" href="Data.Product.Base.html#2747" class="Function">zip</a> <a id="4515" href="Data.Product.Base.html#4505" class="Bound">f</a> <a id="4517" href="Data.Product.Base.html#4507" class="Bound">g</a>
|
|||
|
|
|||
|
<a id="curry′"></a><a id="4520" href="Data.Product.Base.html#4520" class="Function">curry′</a> <a id="4527" class="Symbol">:</a> <a id="4529" class="Symbol">(</a><a id="4530" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="4532" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="4534" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="4536" class="Symbol">→</a> <a id="4538" href="Data.Product.Base.html#416" class="Generalizable">C</a><a id="4539" class="Symbol">)</a> <a id="4541" class="Symbol">→</a> <a id="4543" class="Symbol">(</a><a id="4544" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="4546" class="Symbol">→</a> <a id="4548" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="4550" class="Symbol">→</a> <a id="4552" href="Data.Product.Base.html#416" class="Generalizable">C</a><a id="4553" class="Symbol">)</a>
|
|||
|
<a id="4555" href="Data.Product.Base.html#4520" class="Function">curry′</a> <a id="4562" class="Symbol">=</a> <a id="4564" href="Data.Product.Base.html#2952" class="Function">curry</a>
|
|||
|
|
|||
|
<a id="uncurry′"></a><a id="4571" href="Data.Product.Base.html#4571" class="Function">uncurry′</a> <a id="4580" class="Symbol">:</a> <a id="4582" class="Symbol">(</a><a id="4583" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="4585" class="Symbol">→</a> <a id="4587" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="4589" class="Symbol">→</a> <a id="4591" href="Data.Product.Base.html#416" class="Generalizable">C</a><a id="4592" class="Symbol">)</a> <a id="4594" class="Symbol">→</a> <a id="4596" class="Symbol">(</a><a id="4597" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="4599" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="4601" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="4603" class="Symbol">→</a> <a id="4605" href="Data.Product.Base.html#416" class="Generalizable">C</a><a id="4606" class="Symbol">)</a>
|
|||
|
<a id="4608" href="Data.Product.Base.html#4571" class="Function">uncurry′</a> <a id="4617" class="Symbol">=</a> <a id="4619" href="Data.Product.Base.html#3109" class="Function">uncurry</a>
|
|||
|
|
|||
|
<a id="map₂′"></a><a id="4628" href="Data.Product.Base.html#4628" class="Function">map₂′</a> <a id="4634" class="Symbol">:</a> <a id="4636" class="Symbol">(</a><a id="4637" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="4639" class="Symbol">→</a> <a id="4641" href="Data.Product.Base.html#416" class="Generalizable">C</a><a id="4642" class="Symbol">)</a> <a id="4644" class="Symbol">→</a> <a id="4646" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="4648" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="4650" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="4652" class="Symbol">→</a> <a id="4654" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="4656" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="4658" href="Data.Product.Base.html#416" class="Generalizable">C</a>
|
|||
|
<a id="4660" href="Data.Product.Base.html#4628" class="Function">map₂′</a> <a id="4666" href="Data.Product.Base.html#4666" class="Bound">f</a> <a id="4668" class="Symbol">=</a> <a id="4670" href="Data.Product.Base.html#2362" class="Function">map₂</a> <a id="4675" href="Data.Product.Base.html#4666" class="Bound">f</a>
|
|||
|
|
|||
|
<a id="dmap′"></a><a id="4678" href="Data.Product.Base.html#4678" class="Function">dmap′</a> <a id="4684" class="Symbol">:</a> <a id="4686" class="Symbol">∀</a> <a id="4688" class="Symbol">{</a><a id="4689" href="Data.Product.Base.html#4689" class="Bound">x</a> <a id="4691" href="Data.Product.Base.html#4691" class="Bound">y</a><a id="4692" class="Symbol">}</a> <a id="4694" class="Symbol">{</a><a id="4695" href="Data.Product.Base.html#4695" class="Bound">X</a> <a id="4697" class="Symbol">:</a> <a id="4699" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="4701" class="Symbol">→</a> <a id="4703" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="4707" href="Data.Product.Base.html#4689" class="Bound">x</a><a id="4708" class="Symbol">}</a> <a id="4710" class="Symbol">{</a><a id="4711" href="Data.Product.Base.html#4711" class="Bound">Y</a> <a id="4713" class="Symbol">:</a> <a id="4715" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="4717" class="Symbol">→</a> <a id="4719" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="4723" href="Data.Product.Base.html#4691" class="Bound">y</a><a id="4724" class="Symbol">}</a> <a id="4726" class="Symbol">→</a>
|
|||
|
<a id="4736" class="Symbol">((</a><a id="4738" href="Data.Product.Base.html#4738" class="Bound">a</a> <a id="4740" class="Symbol">:</a> <a id="4742" href="Data.Product.Base.html#388" class="Generalizable">A</a><a id="4743" class="Symbol">)</a> <a id="4745" class="Symbol">→</a> <a id="4747" href="Data.Product.Base.html#4695" class="Bound">X</a> <a id="4749" href="Data.Product.Base.html#4738" class="Bound">a</a><a id="4750" class="Symbol">)</a> <a id="4752" class="Symbol">→</a> <a id="4754" class="Symbol">((</a><a id="4756" href="Data.Product.Base.html#4756" class="Bound">b</a> <a id="4758" class="Symbol">:</a> <a id="4760" href="Data.Product.Base.html#402" class="Generalizable">B</a><a id="4761" class="Symbol">)</a> <a id="4763" class="Symbol">→</a> <a id="4765" href="Data.Product.Base.html#4711" class="Bound">Y</a> <a id="4767" href="Data.Product.Base.html#4756" class="Bound">b</a><a id="4768" class="Symbol">)</a> <a id="4770" class="Symbol">→</a>
|
|||
|
<a id="4780" class="Symbol">(</a><a id="4781" href="Data.Product.Base.html#4781" class="Bound">(</a><a id="4782" href="Data.Product.Base.html#4782" class="Bound">a</a> <a id="4784" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="4786" href="Data.Product.Base.html#4786" class="Bound">b</a><a id="4787" href="Data.Product.Base.html#4781" class="Bound">)</a> <a id="4789" class="Symbol">:</a> <a id="4791" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="4793" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="4795" href="Data.Product.Base.html#402" class="Generalizable">B</a><a id="4796" class="Symbol">)</a> <a id="4798" class="Symbol">→</a> <a id="4800" href="Data.Product.Base.html#4695" class="Bound">X</a> <a id="4802" href="Data.Product.Base.html#4782" class="Bound">a</a> <a id="4804" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="4806" href="Data.Product.Base.html#4711" class="Bound">Y</a> <a id="4808" href="Data.Product.Base.html#4786" class="Bound">b</a>
|
|||
|
<a id="4810" href="Data.Product.Base.html#4678" class="Function">dmap′</a> <a id="4816" href="Data.Product.Base.html#4816" class="Bound">f</a> <a id="4818" href="Data.Product.Base.html#4818" class="Bound">g</a> <a id="4820" class="Symbol">=</a> <a id="4822" href="Data.Product.Base.html#2540" class="Function">dmap</a> <a id="4827" href="Data.Product.Base.html#4816" class="Bound">f</a> <a id="4829" href="Data.Product.Base.html#4818" class="Bound">g</a>
|
|||
|
|
|||
|
<a id="_<*>_"></a><a id="4832" href="Data.Product.Base.html#4832" class="Function Operator">_<*>_</a> <a id="4838" class="Symbol">:</a> <a id="4840" class="Symbol">∀</a> <a id="4842" class="Symbol">{</a><a id="4843" href="Data.Product.Base.html#4843" class="Bound">x</a> <a id="4845" href="Data.Product.Base.html#4845" class="Bound">y</a><a id="4846" class="Symbol">}</a> <a id="4848" class="Symbol">{</a><a id="4849" href="Data.Product.Base.html#4849" class="Bound">X</a> <a id="4851" class="Symbol">:</a> <a id="4853" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="4855" class="Symbol">→</a> <a id="4857" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="4861" href="Data.Product.Base.html#4843" class="Bound">x</a><a id="4862" class="Symbol">}</a> <a id="4864" class="Symbol">{</a><a id="4865" href="Data.Product.Base.html#4865" class="Bound">Y</a> <a id="4867" class="Symbol">:</a> <a id="4869" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="4871" class="Symbol">→</a> <a id="4873" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="4877" href="Data.Product.Base.html#4845" class="Bound">y</a><a id="4878" class="Symbol">}</a> <a id="4880" class="Symbol">→</a>
|
|||
|
<a id="4890" class="Symbol">((</a><a id="4892" href="Data.Product.Base.html#4892" class="Bound">a</a> <a id="4894" class="Symbol">:</a> <a id="4896" href="Data.Product.Base.html#388" class="Generalizable">A</a><a id="4897" class="Symbol">)</a> <a id="4899" class="Symbol">→</a> <a id="4901" href="Data.Product.Base.html#4849" class="Bound">X</a> <a id="4903" href="Data.Product.Base.html#4892" class="Bound">a</a><a id="4904" class="Symbol">)</a> <a id="4906" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="4908" class="Symbol">((</a><a id="4910" href="Data.Product.Base.html#4910" class="Bound">b</a> <a id="4912" class="Symbol">:</a> <a id="4914" href="Data.Product.Base.html#402" class="Generalizable">B</a><a id="4915" class="Symbol">)</a> <a id="4917" class="Symbol">→</a> <a id="4919" href="Data.Product.Base.html#4865" class="Bound">Y</a> <a id="4921" href="Data.Product.Base.html#4910" class="Bound">b</a><a id="4922" class="Symbol">)</a> <a id="4924" class="Symbol">→</a>
|
|||
|
<a id="4934" class="Symbol">(</a><a id="4935" href="Data.Product.Base.html#4935" class="Bound">(</a><a id="4936" href="Data.Product.Base.html#4936" class="Bound">a</a> <a id="4938" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="4940" href="Data.Product.Base.html#4940" class="Bound">b</a><a id="4941" href="Data.Product.Base.html#4935" class="Bound">)</a> <a id="4943" class="Symbol">:</a> <a id="4945" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="4947" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="4949" href="Data.Product.Base.html#402" class="Generalizable">B</a><a id="4950" class="Symbol">)</a> <a id="4952" class="Symbol">→</a> <a id="4954" href="Data.Product.Base.html#4849" class="Bound">X</a> <a id="4956" href="Data.Product.Base.html#4936" class="Bound">a</a> <a id="4958" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="4960" href="Data.Product.Base.html#4865" class="Bound">Y</a> <a id="4962" href="Data.Product.Base.html#4940" class="Bound">b</a>
|
|||
|
<a id="4964" href="Data.Product.Base.html#4832" class="Function Operator">_<*>_</a> <a id="4970" class="Symbol">=</a> <a id="4972" href="Data.Product.Base.html#3109" class="Function">uncurry</a> <a id="4980" href="Data.Product.Base.html#4678" class="Function">dmap′</a>
|
|||
|
|
|||
|
<a id="4987" class="Comment">-- Operations that can only be defined for non-dependent products</a>
|
|||
|
|
|||
|
<a id="swap"></a><a id="5054" href="Data.Product.Base.html#5054" class="Function">swap</a> <a id="5059" class="Symbol">:</a> <a id="5061" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="5063" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="5065" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="5067" class="Symbol">→</a> <a id="5069" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="5071" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="5073" href="Data.Product.Base.html#388" class="Generalizable">A</a>
|
|||
|
<a id="5075" href="Data.Product.Base.html#5054" class="Function">swap</a> <a id="5080" class="Symbol">(</a><a id="5081" href="Data.Product.Base.html#5081" class="Bound">x</a> <a id="5083" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="5085" href="Data.Product.Base.html#5085" class="Bound">y</a><a id="5086" class="Symbol">)</a> <a id="5088" class="Symbol">=</a> <a id="5090" class="Symbol">(</a><a id="5091" href="Data.Product.Base.html#5085" class="Bound">y</a> <a id="5093" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="5095" href="Data.Product.Base.html#5081" class="Bound">x</a><a id="5096" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="_-×-_"></a><a id="5099" href="Data.Product.Base.html#5099" class="Function Operator">_-×-_</a> <a id="5105" class="Symbol">:</a> <a id="5107" class="Symbol">(</a><a id="5108" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="5110" class="Symbol">→</a> <a id="5112" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="5114" class="Symbol">→</a> <a id="5116" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="5120" href="Data.Product.Base.html#370" class="Generalizable">p</a><a id="5121" class="Symbol">)</a> <a id="5123" class="Symbol">→</a> <a id="5125" class="Symbol">(</a><a id="5126" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="5128" class="Symbol">→</a> <a id="5130" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="5132" class="Symbol">→</a> <a id="5134" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="5138" href="Data.Product.Base.html#372" class="Generalizable">q</a><a id="5139" class="Symbol">)</a> <a id="5141" class="Symbol">→</a> <a id="5143" class="Symbol">(</a><a id="5144" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="5146" class="Symbol">→</a> <a id="5148" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="5150" class="Symbol">→</a> <a id="5152" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="5156" class="Symbol">_)</a>
|
|||
|
<a id="5159" href="Data.Product.Base.html#5159" class="Bound">f</a> <a id="5161" href="Data.Product.Base.html#5099" class="Function Operator">-×-</a> <a id="5165" href="Data.Product.Base.html#5165" class="Bound">g</a> <a id="5167" class="Symbol">=</a> <a id="5169" href="Data.Product.Base.html#5159" class="Bound">f</a> <a id="5171" href="Function.Base.html#5039" class="Function Operator">-⟪</a> <a id="5174" href="Data.Product.Base.html#1618" class="Function Operator">_×_</a> <a id="5178" href="Function.Base.html#5039" class="Function Operator">⟫-</a> <a id="5181" href="Data.Product.Base.html#5165" class="Bound">g</a>
|
|||
|
|
|||
|
<a id="_-,-_"></a><a id="5184" href="Data.Product.Base.html#5184" class="Function Operator">_-,-_</a> <a id="5190" class="Symbol">:</a> <a id="5192" class="Symbol">(</a><a id="5193" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="5195" class="Symbol">→</a> <a id="5197" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="5199" class="Symbol">→</a> <a id="5201" href="Data.Product.Base.html#416" class="Generalizable">C</a><a id="5202" class="Symbol">)</a> <a id="5204" class="Symbol">→</a> <a id="5206" class="Symbol">(</a><a id="5207" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="5209" class="Symbol">→</a> <a id="5211" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="5213" class="Symbol">→</a> <a id="5215" href="Data.Product.Base.html#430" class="Generalizable">D</a><a id="5216" class="Symbol">)</a> <a id="5218" class="Symbol">→</a> <a id="5220" class="Symbol">(</a><a id="5221" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="5223" class="Symbol">→</a> <a id="5225" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="5227" class="Symbol">→</a> <a id="5229" href="Data.Product.Base.html#416" class="Generalizable">C</a> <a id="5231" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="5233" href="Data.Product.Base.html#430" class="Generalizable">D</a><a id="5234" class="Symbol">)</a>
|
|||
|
<a id="5236" href="Data.Product.Base.html#5236" class="Bound">f</a> <a id="5238" href="Data.Product.Base.html#5184" class="Function Operator">-,-</a> <a id="5242" href="Data.Product.Base.html#5242" class="Bound">g</a> <a id="5244" class="Symbol">=</a> <a id="5246" href="Data.Product.Base.html#5236" class="Bound">f</a> <a id="5248" href="Function.Base.html#5039" class="Function Operator">-⟪</a> <a id="5251" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">_,_</a> <a id="5255" href="Function.Base.html#5039" class="Function Operator">⟫-</a> <a id="5258" href="Data.Product.Base.html#5242" class="Bound">g</a>
|
|||
|
|
|||
|
<a id="5261" class="Comment">-- Rewriting non-dependent products</a>
|
|||
|
<a id="assocʳ′"></a><a id="5297" href="Data.Product.Base.html#5297" class="Function">assocʳ′</a> <a id="5305" class="Symbol">:</a> <a id="5307" class="Symbol">(</a><a id="5308" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="5310" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="5312" href="Data.Product.Base.html#402" class="Generalizable">B</a><a id="5313" class="Symbol">)</a> <a id="5315" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="5317" href="Data.Product.Base.html#416" class="Generalizable">C</a> <a id="5319" class="Symbol">→</a> <a id="5321" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="5323" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="5325" class="Symbol">(</a><a id="5326" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="5328" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="5330" href="Data.Product.Base.html#416" class="Generalizable">C</a><a id="5331" class="Symbol">)</a>
|
|||
|
<a id="5333" href="Data.Product.Base.html#5297" class="Function">assocʳ′</a> <a id="5341" class="Symbol">((</a><a id="5343" href="Data.Product.Base.html#5343" class="Bound">a</a> <a id="5345" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="5347" href="Data.Product.Base.html#5347" class="Bound">b</a><a id="5348" class="Symbol">)</a> <a id="5350" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="5352" href="Data.Product.Base.html#5352" class="Bound">c</a><a id="5353" class="Symbol">)</a> <a id="5355" class="Symbol">=</a> <a id="5357" class="Symbol">(</a><a id="5358" href="Data.Product.Base.html#5343" class="Bound">a</a> <a id="5360" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="5362" class="Symbol">(</a><a id="5363" href="Data.Product.Base.html#5347" class="Bound">b</a> <a id="5365" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="5367" href="Data.Product.Base.html#5352" class="Bound">c</a><a id="5368" class="Symbol">))</a>
|
|||
|
|
|||
|
<a id="assocˡ′"></a><a id="5372" href="Data.Product.Base.html#5372" class="Function">assocˡ′</a> <a id="5380" class="Symbol">:</a> <a id="5382" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="5384" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="5386" class="Symbol">(</a><a id="5387" href="Data.Product.Base.html#402" class="Generalizable">B</a> <a id="5389" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="5391" href="Data.Product.Base.html#416" class="Generalizable">C</a><a id="5392" class="Symbol">)</a> <a id="5394" class="Symbol">→</a> <a id="5396" class="Symbol">(</a><a id="5397" href="Data.Product.Base.html#388" class="Generalizable">A</a> <a id="5399" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="5401" href="Data.Product.Base.html#402" class="Generalizable">B</a><a id="5402" class="Symbol">)</a> <a id="5404" href="Data.Product.Base.html#1618" class="Function Operator">×</a> <a id="5406" href="Data.Product.Base.html#416" class="Generalizable">C</a>
|
|||
|
<a id="5408" href="Data.Product.Base.html#5372" class="Function">assocˡ′</a> <a id="5416" class="Symbol">(</a><a id="5417" href="Data.Product.Base.html#5417" class="Bound">a</a> <a id="5419" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="5421" class="Symbol">(</a><a id="5422" href="Data.Product.Base.html#5422" class="Bound">b</a> <a id="5424" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="5426" href="Data.Product.Base.html#5426" class="Bound">c</a><a id="5427" class="Symbol">))</a> <a id="5430" class="Symbol">=</a> <a id="5432" class="Symbol">((</a><a id="5434" href="Data.Product.Base.html#5417" class="Bound">a</a> <a id="5436" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="5438" href="Data.Product.Base.html#5422" class="Bound">b</a><a id="5439" class="Symbol">)</a> <a id="5441" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a> <a id="5443" href="Data.Product.Base.html#5426" class="Bound">c</a><a id="5444" class="Symbol">)</a>
|
|||
|
</pre></body></html>
|