bsc-leon-vatthauer/agda/bsc-thesis/Data.Sum.Function.Setoid.html
2024-02-09 17:53:52 +01:00

176 lines
No EOL
71 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Data.Sum.Function.Setoid</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">-- Sum combinators for setoid equality preserving functions</a>
<a id="166" class="Comment">------------------------------------------------------------------------</a>
<a id="240" class="Symbol">{-#</a> <a id="244" class="Keyword">OPTIONS</a> <a id="252" class="Pragma">--cubical-compatible</a> <a id="273" class="Pragma">--safe</a> <a id="280" class="Symbol">#-}</a>
<a id="285" class="Keyword">module</a> <a id="292" href="Data.Sum.Function.Setoid.html" class="Module">Data.Sum.Function.Setoid</a> <a id="317" class="Keyword">where</a>
<a id="324" class="Keyword">open</a> <a id="329" class="Keyword">import</a> <a id="336" href="Data.Product.Base.html" class="Module">Data.Product.Base</a> <a id="354" class="Symbol">as</a> <a id="357" class="Module">Prod</a> <a id="362" class="Keyword">using</a> <a id="368" class="Symbol">(</a><a id="369" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">_,_</a><a id="372" class="Symbol">)</a>
<a id="374" class="Keyword">open</a> <a id="379" class="Keyword">import</a> <a id="386" href="Data.Sum.Base.html" class="Module">Data.Sum.Base</a> <a id="400" class="Symbol">as</a> <a id="403" class="Module">Sum</a>
<a id="407" class="Keyword">open</a> <a id="412" class="Keyword">import</a> <a id="419" href="Data.Sum.Relation.Binary.Pointwise.html" class="Module">Data.Sum.Relation.Binary.Pointwise</a> <a id="454" class="Symbol">as</a> <a id="457" class="Module">Pointwise</a>
<a id="467" class="Keyword">open</a> <a id="472" class="Keyword">import</a> <a id="479" href="Relation.Binary.html" class="Module">Relation.Binary</a>
<a id="495" class="Keyword">open</a> <a id="500" class="Keyword">import</a> <a id="507" href="Function.Base.html" class="Module">Function.Base</a>
<a id="521" class="Keyword">open</a> <a id="526" class="Keyword">import</a> <a id="533" href="Function.Bundles.html" class="Module">Function.Bundles</a>
<a id="550" class="Keyword">open</a> <a id="555" class="Keyword">import</a> <a id="562" href="Function.Definitions.html" class="Module">Function.Definitions</a>
<a id="583" class="Keyword">open</a> <a id="588" class="Keyword">import</a> <a id="595" href="Level.html" class="Module">Level</a>
<a id="602" class="Keyword">private</a>
<a id="612" class="Keyword">variable</a>
<a id="625" href="Data.Sum.Function.Setoid.html#625" class="Generalizable">a₁</a> <a id="628" href="Data.Sum.Function.Setoid.html#628" class="Generalizable">a₂</a> <a id="631" href="Data.Sum.Function.Setoid.html#631" class="Generalizable">b₁</a> <a id="634" href="Data.Sum.Function.Setoid.html#634" class="Generalizable">b₂</a> <a id="637" href="Data.Sum.Function.Setoid.html#637" class="Generalizable">c₁</a> <a id="640" href="Data.Sum.Function.Setoid.html#640" class="Generalizable">c₂</a> <a id="643" href="Data.Sum.Function.Setoid.html#643" class="Generalizable">d₁</a> <a id="646" href="Data.Sum.Function.Setoid.html#646" class="Generalizable">d₂</a> <a id="649" class="Symbol">:</a> <a id="651" href="Agda.Primitive.html#742" class="Postulate">Level</a>
<a id="661" href="Data.Sum.Function.Setoid.html#661" class="Generalizable">a</a> <a id="663" href="Data.Sum.Function.Setoid.html#663" class="Generalizable"></a> <a id="665" class="Symbol">:</a> <a id="667" href="Agda.Primitive.html#742" class="Postulate">Level</a>
<a id="677" href="Data.Sum.Function.Setoid.html#677" class="Generalizable">A</a> <a id="679" href="Data.Sum.Function.Setoid.html#679" class="Generalizable">B</a> <a id="681" href="Data.Sum.Function.Setoid.html#681" class="Generalizable">C</a> <a id="683" href="Data.Sum.Function.Setoid.html#683" class="Generalizable">D</a> <a id="685" class="Symbol">:</a> <a id="687" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="691" href="Data.Sum.Function.Setoid.html#661" class="Generalizable">a</a>
<a id="697" href="Data.Sum.Function.Setoid.html#697" class="Generalizable">≈₁</a> <a id="700" href="Data.Sum.Function.Setoid.html#700" class="Generalizable">≈₂</a> <a id="703" href="Data.Sum.Function.Setoid.html#703" class="Generalizable">≈₃</a> <a id="706" href="Data.Sum.Function.Setoid.html#706" class="Generalizable">≈₄</a> <a id="709" class="Symbol">:</a> <a id="711" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="715" href="Data.Sum.Function.Setoid.html#677" class="Generalizable">A</a> <a id="717" href="Data.Sum.Function.Setoid.html#663" class="Generalizable"></a>
<a id="723" href="Data.Sum.Function.Setoid.html#723" class="Generalizable">S</a> <a id="725" href="Data.Sum.Function.Setoid.html#725" class="Generalizable">T</a> <a id="727" href="Data.Sum.Function.Setoid.html#727" class="Generalizable">U</a> <a id="729" href="Data.Sum.Function.Setoid.html#729" class="Generalizable">V</a> <a id="731" class="Symbol">:</a> <a id="733" href="Relation.Binary.Bundles.html#1080" class="Record">Setoid</a> <a id="740" href="Data.Sum.Function.Setoid.html#661" class="Generalizable">a</a> <a id="742" href="Data.Sum.Function.Setoid.html#663" class="Generalizable"></a>
<a id="745" class="Comment">------------------------------------------------------------------------</a>
<a id="818" class="Comment">-- Combinators for equality preserving functions</a>
<a id="inj₁ₛ"></a><a id="868" href="Data.Sum.Function.Setoid.html#868" class="Function">inj₁ₛ</a> <a id="874" class="Symbol">:</a> <a id="876" href="Function.Bundles.html#2043" class="Record">Func</a> <a id="881" href="Data.Sum.Function.Setoid.html#723" class="Generalizable">S</a> <a id="883" class="Symbol">(</a><a id="884" href="Data.Sum.Function.Setoid.html#723" class="Generalizable">S</a> <a id="886" href="Data.Sum.Relation.Binary.Pointwise.html#7477" class="Function Operator">⊎ₛ</a> <a id="889" href="Data.Sum.Function.Setoid.html#725" class="Generalizable">T</a><a id="890" class="Symbol">)</a>
<a id="892" href="Data.Sum.Function.Setoid.html#868" class="Function">inj₁ₛ</a> <a id="898" class="Symbol">=</a> <a id="900" class="Keyword">record</a> <a id="907" class="Symbol">{</a> <a id="909" href="Function.Bundles.html#2094" class="Field">to</a> <a id="912" class="Symbol">=</a> <a id="914" href="Data.Sum.Base.html#675" class="InductiveConstructor">inj₁</a> <a id="919" class="Symbol">;</a> <a id="921" href="Function.Bundles.html#2113" class="Field">cong</a> <a id="926" class="Symbol">=</a> <a id="928" href="Data.Sum.Relation.Binary.Pointwise.html#1176" class="InductiveConstructor">inj₁</a> <a id="933" class="Symbol">}</a>
<a id="inj₂ₛ"></a><a id="936" href="Data.Sum.Function.Setoid.html#936" class="Function">inj₂ₛ</a> <a id="942" class="Symbol">:</a> <a id="944" href="Function.Bundles.html#2043" class="Record">Func</a> <a id="949" href="Data.Sum.Function.Setoid.html#725" class="Generalizable">T</a> <a id="951" class="Symbol">(</a><a id="952" href="Data.Sum.Function.Setoid.html#723" class="Generalizable">S</a> <a id="954" href="Data.Sum.Relation.Binary.Pointwise.html#7477" class="Function Operator">⊎ₛ</a> <a id="957" href="Data.Sum.Function.Setoid.html#725" class="Generalizable">T</a><a id="958" class="Symbol">)</a>
<a id="960" href="Data.Sum.Function.Setoid.html#936" class="Function">inj₂ₛ</a> <a id="966" class="Symbol">=</a> <a id="968" class="Keyword">record</a> <a id="975" class="Symbol">{</a> <a id="977" href="Function.Bundles.html#2094" class="Field">to</a> <a id="980" class="Symbol">=</a> <a id="982" href="Data.Sum.Base.html#700" class="InductiveConstructor">inj₂</a> <a id="987" class="Symbol">;</a> <a id="989" href="Function.Bundles.html#2113" class="Field">cong</a> <a id="994" class="Symbol">=</a> <a id="996" href="Data.Sum.Relation.Binary.Pointwise.html#1235" class="InductiveConstructor">inj₂</a> <a id="1001" class="Symbol">}</a>
<a id="[_,_]ₛ"></a><a id="1004" href="Data.Sum.Function.Setoid.html#1004" class="Function Operator">[_,_]ₛ</a> <a id="1011" class="Symbol">:</a> <a id="1013" href="Function.Bundles.html#2043" class="Record">Func</a> <a id="1018" href="Data.Sum.Function.Setoid.html#723" class="Generalizable">S</a> <a id="1020" href="Data.Sum.Function.Setoid.html#727" class="Generalizable">U</a> <a id="1022" class="Symbol"></a> <a id="1024" href="Function.Bundles.html#2043" class="Record">Func</a> <a id="1029" href="Data.Sum.Function.Setoid.html#725" class="Generalizable">T</a> <a id="1031" href="Data.Sum.Function.Setoid.html#727" class="Generalizable">U</a> <a id="1033" class="Symbol"></a> <a id="1035" href="Function.Bundles.html#2043" class="Record">Func</a> <a id="1040" class="Symbol">(</a><a id="1041" href="Data.Sum.Function.Setoid.html#723" class="Generalizable">S</a> <a id="1043" href="Data.Sum.Relation.Binary.Pointwise.html#7477" class="Function Operator">⊎ₛ</a> <a id="1046" href="Data.Sum.Function.Setoid.html#725" class="Generalizable">T</a><a id="1047" class="Symbol">)</a> <a id="1049" href="Data.Sum.Function.Setoid.html#727" class="Generalizable">U</a>
<a id="1051" href="Data.Sum.Function.Setoid.html#1004" class="Function Operator">[</a> <a id="1053" href="Data.Sum.Function.Setoid.html#1053" class="Bound">f</a> <a id="1055" href="Data.Sum.Function.Setoid.html#1004" class="Function Operator">,</a> <a id="1057" href="Data.Sum.Function.Setoid.html#1057" class="Bound">g</a> <a id="1059" href="Data.Sum.Function.Setoid.html#1004" class="Function Operator">]ₛ</a> <a id="1062" class="Symbol">=</a> <a id="1064" class="Keyword">record</a>
<a id="1073" class="Symbol">{</a> <a id="1075" href="Function.Bundles.html#2094" class="Field">to</a> <a id="1080" class="Symbol">=</a> <a id="1082" href="Data.Sum.Base.html#811" class="Function Operator">[</a> <a id="1084" href="Function.Bundles.html#2094" class="Field">to</a> <a id="1087" href="Data.Sum.Function.Setoid.html#1053" class="Bound">f</a> <a id="1089" href="Data.Sum.Base.html#811" class="Function Operator">,</a> <a id="1091" href="Function.Bundles.html#2094" class="Field">to</a> <a id="1094" href="Data.Sum.Function.Setoid.html#1057" class="Bound">g</a> <a id="1096" href="Data.Sum.Base.html#811" class="Function Operator">]</a>
<a id="1100" class="Symbol">;</a> <a id="1102" href="Function.Bundles.html#2113" class="Field">cong</a> <a id="1107" class="Symbol">=</a> <a id="1109" class="Symbol">λ</a> <a id="1111" class="Keyword">where</a>
<a id="1121" class="Symbol">(</a><a id="1122" href="Data.Sum.Relation.Binary.Pointwise.html#1176" class="InductiveConstructor">inj₁</a> <a id="1127" href="Data.Sum.Function.Setoid.html#1127" class="Bound">x₁y</a><a id="1131" class="Symbol">)</a> <a id="1133" class="Symbol"></a> <a id="1135" href="Function.Bundles.html#2113" class="Field">cong</a> <a id="1140" href="Data.Sum.Function.Setoid.html#1053" class="Bound">f</a> <a id="1142" href="Data.Sum.Function.Setoid.html#1127" class="Bound">x₁y</a>
<a id="1151" class="Symbol">(</a><a id="1152" href="Data.Sum.Relation.Binary.Pointwise.html#1235" class="InductiveConstructor">inj₂</a> <a id="1157" href="Data.Sum.Function.Setoid.html#1157" class="Bound">x₂y</a><a id="1161" class="Symbol">)</a> <a id="1163" class="Symbol"></a> <a id="1165" href="Function.Bundles.html#2113" class="Field">cong</a> <a id="1170" href="Data.Sum.Function.Setoid.html#1057" class="Bound">g</a> <a id="1172" href="Data.Sum.Function.Setoid.html#1157" class="Bound">x₂y</a>
<a id="1179" class="Symbol">}</a> <a id="1181" class="Keyword">where</a> <a id="1187" class="Keyword">open</a> <a id="1192" href="Function.Bundles.html#2043" class="Module">Func</a>
<a id="swapₛ"></a><a id="1198" href="Data.Sum.Function.Setoid.html#1198" class="Function">swapₛ</a> <a id="1204" class="Symbol">:</a> <a id="1206" href="Function.Bundles.html#2043" class="Record">Func</a> <a id="1211" class="Symbol">(</a><a id="1212" href="Data.Sum.Function.Setoid.html#723" class="Generalizable">S</a> <a id="1214" href="Data.Sum.Relation.Binary.Pointwise.html#7477" class="Function Operator">⊎ₛ</a> <a id="1217" href="Data.Sum.Function.Setoid.html#725" class="Generalizable">T</a><a id="1218" class="Symbol">)</a> <a id="1220" class="Symbol">(</a><a id="1221" href="Data.Sum.Function.Setoid.html#725" class="Generalizable">T</a> <a id="1223" href="Data.Sum.Relation.Binary.Pointwise.html#7477" class="Function Operator">⊎ₛ</a> <a id="1226" href="Data.Sum.Function.Setoid.html#723" class="Generalizable">S</a><a id="1227" class="Symbol">)</a>
<a id="1229" href="Data.Sum.Function.Setoid.html#1198" class="Function">swapₛ</a> <a id="1235" class="Symbol">=</a> <a id="1237" href="Data.Sum.Function.Setoid.html#1004" class="Function Operator">[</a> <a id="1239" href="Data.Sum.Function.Setoid.html#936" class="Function">inj₂ₛ</a> <a id="1245" href="Data.Sum.Function.Setoid.html#1004" class="Function Operator">,</a> <a id="1247" href="Data.Sum.Function.Setoid.html#868" class="Function">inj₁ₛ</a> <a id="1253" href="Data.Sum.Function.Setoid.html#1004" class="Function Operator">]ₛ</a>
<a id="1257" class="Comment">------------------------------------------------------------------------</a>
<a id="1330" class="Comment">-- Definitions</a>
<a id="⊎-injective"></a><a id="1346" href="Data.Sum.Function.Setoid.html#1346" class="Function">⊎-injective</a> <a id="1358" class="Symbol">:</a> <a id="1360" class="Symbol"></a> <a id="1362" class="Symbol">{</a><a id="1363" href="Data.Sum.Function.Setoid.html#1363" class="Bound">f</a> <a id="1365" href="Data.Sum.Function.Setoid.html#1365" class="Bound">g</a><a id="1366" class="Symbol">}</a> <a id="1368" class="Symbol"></a>
<a id="1384" href="Function.Definitions.html#842" class="Function">Injective</a> <a id="1394" href="Data.Sum.Function.Setoid.html#697" class="Generalizable">≈₁</a> <a id="1397" href="Data.Sum.Function.Setoid.html#700" class="Generalizable">≈₂</a> <a id="1400" href="Data.Sum.Function.Setoid.html#1363" class="Bound">f</a> <a id="1402" class="Symbol"></a>
<a id="1418" href="Function.Definitions.html#842" class="Function">Injective</a> <a id="1428" href="Data.Sum.Function.Setoid.html#703" class="Generalizable">≈₃</a> <a id="1431" href="Data.Sum.Function.Setoid.html#706" class="Generalizable">≈₄</a> <a id="1434" href="Data.Sum.Function.Setoid.html#1365" class="Bound">g</a> <a id="1436" class="Symbol"></a>
<a id="1452" href="Function.Definitions.html#842" class="Function">Injective</a> <a id="1462" class="Symbol">(</a><a id="1463" href="Data.Sum.Relation.Binary.Pointwise.html#998" class="Datatype">Pointwise</a> <a id="1473" href="Data.Sum.Function.Setoid.html#697" class="Generalizable">≈₁</a> <a id="1476" href="Data.Sum.Function.Setoid.html#703" class="Generalizable">≈₃</a><a id="1478" class="Symbol">)</a> <a id="1480" class="Symbol">(</a><a id="1481" href="Data.Sum.Relation.Binary.Pointwise.html#998" class="Datatype">Pointwise</a> <a id="1491" href="Data.Sum.Function.Setoid.html#700" class="Generalizable">≈₂</a> <a id="1494" href="Data.Sum.Function.Setoid.html#706" class="Generalizable">≈₄</a><a id="1496" class="Symbol">)</a> <a id="1498" class="Symbol">(</a><a id="1499" href="Data.Sum.Base.html#1253" class="Function">Sum.map</a> <a id="1507" href="Data.Sum.Function.Setoid.html#1363" class="Bound">f</a> <a id="1509" href="Data.Sum.Function.Setoid.html#1365" class="Bound">g</a><a id="1510" class="Symbol">)</a>
<a id="1512" href="Data.Sum.Function.Setoid.html#1346" class="Function">⊎-injective</a> <a id="1524" href="Data.Sum.Function.Setoid.html#1524" class="Bound">f-inj</a> <a id="1530" href="Data.Sum.Function.Setoid.html#1530" class="Bound">g-inj</a> <a id="1536" class="Symbol">{</a><a id="1537" href="Data.Sum.Base.html#675" class="InductiveConstructor">inj₁</a> <a id="1542" href="Data.Sum.Function.Setoid.html#1542" class="Bound">x</a><a id="1543" class="Symbol">}</a> <a id="1545" class="Symbol">{</a><a id="1546" href="Data.Sum.Base.html#675" class="InductiveConstructor">inj₁</a> <a id="1551" href="Data.Sum.Function.Setoid.html#1551" class="Bound">y</a><a id="1552" class="Symbol">}</a> <a id="1554" class="Symbol">(</a><a id="1555" href="Data.Sum.Relation.Binary.Pointwise.html#1176" class="InductiveConstructor">inj₁</a> <a id="1560" href="Data.Sum.Function.Setoid.html#1560" class="Bound">x₁y</a><a id="1564" class="Symbol">)</a> <a id="1566" class="Symbol">=</a> <a id="1568" href="Data.Sum.Relation.Binary.Pointwise.html#1176" class="InductiveConstructor">inj₁</a> <a id="1573" class="Symbol">(</a><a id="1574" href="Data.Sum.Function.Setoid.html#1524" class="Bound">f-inj</a> <a id="1580" href="Data.Sum.Function.Setoid.html#1560" class="Bound">x₁y</a><a id="1584" class="Symbol">)</a>
<a id="1586" href="Data.Sum.Function.Setoid.html#1346" class="Function">⊎-injective</a> <a id="1598" href="Data.Sum.Function.Setoid.html#1598" class="Bound">f-inj</a> <a id="1604" href="Data.Sum.Function.Setoid.html#1604" class="Bound">g-inj</a> <a id="1610" class="Symbol">{</a><a id="1611" href="Data.Sum.Base.html#700" class="InductiveConstructor">inj₂</a> <a id="1616" href="Data.Sum.Function.Setoid.html#1616" class="Bound">x</a><a id="1617" class="Symbol">}</a> <a id="1619" class="Symbol">{</a><a id="1620" href="Data.Sum.Base.html#700" class="InductiveConstructor">inj₂</a> <a id="1625" href="Data.Sum.Function.Setoid.html#1625" class="Bound">y</a><a id="1626" class="Symbol">}</a> <a id="1628" class="Symbol">(</a><a id="1629" href="Data.Sum.Relation.Binary.Pointwise.html#1235" class="InductiveConstructor">inj₂</a> <a id="1634" href="Data.Sum.Function.Setoid.html#1634" class="Bound">x₂y</a><a id="1638" class="Symbol">)</a> <a id="1640" class="Symbol">=</a> <a id="1642" href="Data.Sum.Relation.Binary.Pointwise.html#1235" class="InductiveConstructor">inj₂</a> <a id="1647" class="Symbol">(</a><a id="1648" href="Data.Sum.Function.Setoid.html#1604" class="Bound">g-inj</a> <a id="1654" href="Data.Sum.Function.Setoid.html#1634" class="Bound">x₂y</a><a id="1658" class="Symbol">)</a>
<a id="⊎-strictlySurjective"></a><a id="1661" href="Data.Sum.Function.Setoid.html#1661" class="Function">⊎-strictlySurjective</a> <a id="1682" class="Symbol">:</a> <a id="1684" class="Symbol"></a> <a id="1686" class="Symbol">{</a><a id="1687" href="Data.Sum.Function.Setoid.html#1687" class="Bound">f</a> <a id="1689" class="Symbol">:</a> <a id="1691" href="Data.Sum.Function.Setoid.html#677" class="Generalizable">A</a> <a id="1693" class="Symbol"></a> <a id="1695" href="Data.Sum.Function.Setoid.html#679" class="Generalizable">B</a><a id="1696" class="Symbol">}</a> <a id="1698" class="Symbol">{</a><a id="1699" href="Data.Sum.Function.Setoid.html#1699" class="Bound">g</a> <a id="1701" class="Symbol">:</a> <a id="1703" href="Data.Sum.Function.Setoid.html#681" class="Generalizable">C</a> <a id="1705" class="Symbol"></a> <a id="1707" href="Data.Sum.Function.Setoid.html#683" class="Generalizable">D</a><a id="1708" class="Symbol">}</a> <a id="1710" class="Symbol"></a>
<a id="1726" href="Function.Definitions.html#1522" class="Function">StrictlySurjective</a> <a id="1745" href="Data.Sum.Function.Setoid.html#697" class="Generalizable">≈₁</a> <a id="1748" href="Data.Sum.Function.Setoid.html#1687" class="Bound">f</a> <a id="1750" class="Symbol"></a>
<a id="1766" href="Function.Definitions.html#1522" class="Function">StrictlySurjective</a> <a id="1785" href="Data.Sum.Function.Setoid.html#700" class="Generalizable">≈₂</a> <a id="1788" href="Data.Sum.Function.Setoid.html#1699" class="Bound">g</a> <a id="1790" class="Symbol"></a>
<a id="1806" href="Function.Definitions.html#1522" class="Function">StrictlySurjective</a> <a id="1825" class="Symbol">(</a><a id="1826" href="Data.Sum.Relation.Binary.Pointwise.html#998" class="Datatype">Pointwise</a> <a id="1836" href="Data.Sum.Function.Setoid.html#697" class="Generalizable">≈₁</a> <a id="1839" href="Data.Sum.Function.Setoid.html#700" class="Generalizable">≈₂</a><a id="1841" class="Symbol">)</a> <a id="1843" class="Symbol">(</a><a id="1844" href="Data.Sum.Base.html#1253" class="Function">Sum.map</a> <a id="1852" href="Data.Sum.Function.Setoid.html#1687" class="Bound">f</a> <a id="1854" href="Data.Sum.Function.Setoid.html#1699" class="Bound">g</a><a id="1855" class="Symbol">)</a>
<a id="1857" href="Data.Sum.Function.Setoid.html#1661" class="Function">⊎-strictlySurjective</a> <a id="1878" href="Data.Sum.Function.Setoid.html#1878" class="Bound">f-sur</a> <a id="1884" href="Data.Sum.Function.Setoid.html#1884" class="Bound">g-sur</a> <a id="1890" class="Symbol">=</a>
<a id="1894" href="Data.Sum.Base.html#811" class="Function Operator">[</a> <a id="1896" href="Data.Product.Base.html#2173" class="Function">Prod.map</a> <a id="1905" href="Data.Sum.Base.html#675" class="InductiveConstructor">inj₁</a> <a id="1910" href="Data.Sum.Relation.Binary.Pointwise.html#1176" class="InductiveConstructor">inj₁</a> <a id="1915" href="Function.Base.html#1115" class="Function Operator"></a> <a id="1917" href="Data.Sum.Function.Setoid.html#1878" class="Bound">f-sur</a>
<a id="1925" href="Data.Sum.Base.html#811" class="Function Operator">,</a> <a id="1927" href="Data.Product.Base.html#2173" class="Function">Prod.map</a> <a id="1936" href="Data.Sum.Base.html#700" class="InductiveConstructor">inj₂</a> <a id="1941" href="Data.Sum.Relation.Binary.Pointwise.html#1235" class="InductiveConstructor">inj₂</a> <a id="1946" href="Function.Base.html#1115" class="Function Operator"></a> <a id="1948" href="Data.Sum.Function.Setoid.html#1884" class="Bound">g-sur</a>
<a id="1956" href="Data.Sum.Base.html#811" class="Function Operator">]</a>
<a id="⊎-surjective"></a><a id="1959" href="Data.Sum.Function.Setoid.html#1959" class="Function">⊎-surjective</a> <a id="1972" class="Symbol">:</a> <a id="1974" class="Symbol"></a> <a id="1976" class="Symbol">{</a><a id="1977" href="Data.Sum.Function.Setoid.html#1977" class="Bound">f</a> <a id="1979" class="Symbol">:</a> <a id="1981" href="Data.Sum.Function.Setoid.html#677" class="Generalizable">A</a> <a id="1983" class="Symbol"></a> <a id="1985" href="Data.Sum.Function.Setoid.html#679" class="Generalizable">B</a><a id="1986" class="Symbol">}</a> <a id="1988" class="Symbol">{</a><a id="1989" href="Data.Sum.Function.Setoid.html#1989" class="Bound">g</a> <a id="1991" class="Symbol">:</a> <a id="1993" href="Data.Sum.Function.Setoid.html#681" class="Generalizable">C</a> <a id="1995" class="Symbol"></a> <a id="1997" href="Data.Sum.Function.Setoid.html#683" class="Generalizable">D</a><a id="1998" class="Symbol">}</a> <a id="2000" class="Symbol"></a>
<a id="2016" href="Function.Definitions.html#919" class="Function">Surjective</a> <a id="2027" href="Data.Sum.Function.Setoid.html#697" class="Generalizable">≈₁</a> <a id="2030" href="Data.Sum.Function.Setoid.html#700" class="Generalizable">≈₂</a> <a id="2033" href="Data.Sum.Function.Setoid.html#1977" class="Bound">f</a> <a id="2035" class="Symbol"></a>
<a id="2051" href="Function.Definitions.html#919" class="Function">Surjective</a> <a id="2062" href="Data.Sum.Function.Setoid.html#703" class="Generalizable">≈₃</a> <a id="2065" href="Data.Sum.Function.Setoid.html#706" class="Generalizable">≈₄</a> <a id="2068" href="Data.Sum.Function.Setoid.html#1989" class="Bound">g</a> <a id="2070" class="Symbol"></a>
<a id="2086" href="Function.Definitions.html#919" class="Function">Surjective</a> <a id="2097" class="Symbol">(</a><a id="2098" href="Data.Sum.Relation.Binary.Pointwise.html#998" class="Datatype">Pointwise</a> <a id="2108" href="Data.Sum.Function.Setoid.html#697" class="Generalizable">≈₁</a> <a id="2111" href="Data.Sum.Function.Setoid.html#703" class="Generalizable">≈₃</a><a id="2113" class="Symbol">)</a> <a id="2115" class="Symbol">(</a><a id="2116" href="Data.Sum.Relation.Binary.Pointwise.html#998" class="Datatype">Pointwise</a> <a id="2126" href="Data.Sum.Function.Setoid.html#700" class="Generalizable">≈₂</a> <a id="2129" href="Data.Sum.Function.Setoid.html#706" class="Generalizable">≈₄</a><a id="2131" class="Symbol">)</a> <a id="2133" class="Symbol">(</a><a id="2134" href="Data.Sum.Base.html#1253" class="Function">Sum.map</a> <a id="2142" href="Data.Sum.Function.Setoid.html#1977" class="Bound">f</a> <a id="2144" href="Data.Sum.Function.Setoid.html#1989" class="Bound">g</a><a id="2145" class="Symbol">)</a>
<a id="2147" href="Data.Sum.Function.Setoid.html#1959" class="Function">⊎-surjective</a> <a id="2160" href="Data.Sum.Function.Setoid.html#2160" class="Bound">f-sur</a> <a id="2166" href="Data.Sum.Function.Setoid.html#2166" class="Bound">g-sur</a> <a id="2172" class="Symbol">=</a>
<a id="2176" href="Data.Sum.Base.html#811" class="Function Operator">[</a> <a id="2178" href="Data.Product.Base.html#2173" class="Function">Prod.map</a> <a id="2187" href="Data.Sum.Base.html#675" class="InductiveConstructor">inj₁</a> <a id="2192" class="Symbol"></a> <a id="2195" class="Symbol">{</a> <a id="2197" href="Data.Sum.Function.Setoid.html#2197" class="Bound">fwd</a> <a id="2201" class="Symbol">(</a><a id="2202" href="Data.Sum.Relation.Binary.Pointwise.html#1176" class="InductiveConstructor">inj₁</a> <a id="2207" href="Data.Sum.Function.Setoid.html#2207" class="Bound">x</a><a id="2208" class="Symbol">)</a> <a id="2210" class="Symbol"></a> <a id="2212" href="Data.Sum.Relation.Binary.Pointwise.html#1176" class="InductiveConstructor">inj₁</a> <a id="2217" class="Symbol">(</a><a id="2218" href="Data.Sum.Function.Setoid.html#2197" class="Bound">fwd</a> <a id="2222" href="Data.Sum.Function.Setoid.html#2207" class="Bound">x</a><a id="2223" class="Symbol">)})</a> <a id="2227" href="Function.Base.html#1115" class="Function Operator"></a> <a id="2229" href="Data.Sum.Function.Setoid.html#2160" class="Bound">f-sur</a>
<a id="2237" href="Data.Sum.Base.html#811" class="Function Operator">,</a> <a id="2239" href="Data.Product.Base.html#2173" class="Function">Prod.map</a> <a id="2248" href="Data.Sum.Base.html#700" class="InductiveConstructor">inj₂</a> <a id="2253" class="Symbol"></a> <a id="2256" class="Symbol">{</a> <a id="2258" href="Data.Sum.Function.Setoid.html#2258" class="Bound">fwd</a> <a id="2262" class="Symbol">(</a><a id="2263" href="Data.Sum.Relation.Binary.Pointwise.html#1235" class="InductiveConstructor">inj₂</a> <a id="2268" href="Data.Sum.Function.Setoid.html#2268" class="Bound">y</a><a id="2269" class="Symbol">)</a> <a id="2271" class="Symbol"></a> <a id="2273" href="Data.Sum.Relation.Binary.Pointwise.html#1235" class="InductiveConstructor">inj₂</a> <a id="2278" class="Symbol">(</a><a id="2279" href="Data.Sum.Function.Setoid.html#2258" class="Bound">fwd</a> <a id="2283" href="Data.Sum.Function.Setoid.html#2268" class="Bound">y</a><a id="2284" class="Symbol">)})</a> <a id="2288" href="Function.Base.html#1115" class="Function Operator"></a> <a id="2290" href="Data.Sum.Function.Setoid.html#2166" class="Bound">g-sur</a>
<a id="2298" href="Data.Sum.Base.html#811" class="Function Operator">]</a>
<a id="2302" class="Keyword">infixr</a> <a id="2309" class="Number">1</a> <a id="2311" href="Data.Sum.Function.Setoid.html#2648" class="Function Operator">_⊎-equivalence_</a> <a id="2327" href="Data.Sum.Function.Setoid.html#3017" class="Function Operator">_⊎-injection_</a> <a id="2341" href="Data.Sum.Function.Setoid.html#6059" class="Function Operator">_⊎-left-inverse_</a>
<a id="2359" class="Comment">------------------------------------------------------------------------</a>
<a id="2432" class="Comment">-- Function bundles</a>
<a id="_⊎-function_"></a><a id="2453" href="Data.Sum.Function.Setoid.html#2453" class="Function Operator">_⊎-function_</a> <a id="2466" class="Symbol">:</a> <a id="2468" href="Function.Bundles.html#2043" class="Record">Func</a> <a id="2473" href="Data.Sum.Function.Setoid.html#723" class="Generalizable">S</a> <a id="2475" href="Data.Sum.Function.Setoid.html#725" class="Generalizable">T</a> <a id="2477" class="Symbol"></a> <a id="2479" href="Function.Bundles.html#2043" class="Record">Func</a> <a id="2484" href="Data.Sum.Function.Setoid.html#727" class="Generalizable">U</a> <a id="2486" href="Data.Sum.Function.Setoid.html#729" class="Generalizable">V</a> <a id="2488" class="Symbol"></a> <a id="2490" href="Function.Bundles.html#2043" class="Record">Func</a> <a id="2495" class="Symbol">(</a><a id="2496" href="Data.Sum.Function.Setoid.html#723" class="Generalizable">S</a> <a id="2498" href="Data.Sum.Relation.Binary.Pointwise.html#7477" class="Function Operator">⊎ₛ</a> <a id="2501" href="Data.Sum.Function.Setoid.html#727" class="Generalizable">U</a><a id="2502" class="Symbol">)</a> <a id="2504" class="Symbol">(</a><a id="2505" href="Data.Sum.Function.Setoid.html#725" class="Generalizable">T</a> <a id="2507" href="Data.Sum.Relation.Binary.Pointwise.html#7477" class="Function Operator">⊎ₛ</a> <a id="2510" href="Data.Sum.Function.Setoid.html#729" class="Generalizable">V</a><a id="2511" class="Symbol">)</a>
<a id="2513" href="Data.Sum.Function.Setoid.html#2513" class="Bound">S→T</a> <a id="2517" href="Data.Sum.Function.Setoid.html#2453" class="Function Operator">⊎-function</a> <a id="2528" href="Data.Sum.Function.Setoid.html#2528" class="Bound">U→V</a> <a id="2532" class="Symbol">=</a> <a id="2534" class="Keyword">record</a>
<a id="2543" class="Symbol">{</a> <a id="2545" href="Function.Bundles.html#2094" class="Field">to</a> <a id="2551" class="Symbol">=</a> <a id="2553" href="Data.Sum.Base.html#1253" class="Function">Sum.map</a> <a id="2561" class="Symbol">(</a><a id="2562" href="Function.Bundles.html#2094" class="Field">to</a> <a id="2565" href="Data.Sum.Function.Setoid.html#2513" class="Bound">S→T</a><a id="2568" class="Symbol">)</a> <a id="2570" class="Symbol">(</a><a id="2571" href="Function.Bundles.html#2094" class="Field">to</a> <a id="2574" href="Data.Sum.Function.Setoid.html#2528" class="Bound">U→V</a><a id="2577" class="Symbol">)</a>
<a id="2581" class="Symbol">;</a> <a id="2583" href="Function.Bundles.html#2113" class="Field">cong</a> <a id="2589" class="Symbol">=</a> <a id="2591" href="Data.Sum.Relation.Binary.Pointwise.html#1378" class="Function">Pointwise.map</a> <a id="2605" class="Symbol">(</a><a id="2606" href="Function.Bundles.html#2113" class="Field">cong</a> <a id="2611" href="Data.Sum.Function.Setoid.html#2513" class="Bound">S→T</a><a id="2614" class="Symbol">)</a> <a id="2616" class="Symbol">(</a><a id="2617" href="Function.Bundles.html#2113" class="Field">cong</a> <a id="2622" href="Data.Sum.Function.Setoid.html#2528" class="Bound">U→V</a><a id="2625" class="Symbol">)</a>
<a id="2629" class="Symbol">}</a> <a id="2631" class="Keyword">where</a> <a id="2637" class="Keyword">open</a> <a id="2642" href="Function.Bundles.html#2043" class="Module">Func</a>
<a id="_⊎-equivalence_"></a><a id="2648" href="Data.Sum.Function.Setoid.html#2648" class="Function Operator">_⊎-equivalence_</a> <a id="2664" class="Symbol">:</a> <a id="2666" href="Function.Bundles.html#4752" class="Record">Equivalence</a> <a id="2678" href="Data.Sum.Function.Setoid.html#723" class="Generalizable">S</a> <a id="2680" href="Data.Sum.Function.Setoid.html#725" class="Generalizable">T</a> <a id="2682" class="Symbol"></a> <a id="2684" href="Function.Bundles.html#4752" class="Record">Equivalence</a> <a id="2696" href="Data.Sum.Function.Setoid.html#727" class="Generalizable">U</a> <a id="2698" href="Data.Sum.Function.Setoid.html#729" class="Generalizable">V</a> <a id="2700" class="Symbol"></a>
<a id="2720" href="Function.Bundles.html#4752" class="Record">Equivalence</a> <a id="2732" class="Symbol">(</a><a id="2733" href="Data.Sum.Function.Setoid.html#723" class="Generalizable">S</a> <a id="2735" href="Data.Sum.Relation.Binary.Pointwise.html#7477" class="Function Operator">⊎ₛ</a> <a id="2738" href="Data.Sum.Function.Setoid.html#727" class="Generalizable">U</a><a id="2739" class="Symbol">)</a> <a id="2741" class="Symbol">(</a><a id="2742" href="Data.Sum.Function.Setoid.html#725" class="Generalizable">T</a> <a id="2744" href="Data.Sum.Relation.Binary.Pointwise.html#7477" class="Function Operator">⊎ₛ</a> <a id="2747" href="Data.Sum.Function.Setoid.html#729" class="Generalizable">V</a><a id="2748" class="Symbol">)</a>
<a id="2750" href="Data.Sum.Function.Setoid.html#2750" class="Bound">S⇔T</a> <a id="2754" href="Data.Sum.Function.Setoid.html#2648" class="Function Operator">⊎-equivalence</a> <a id="2768" href="Data.Sum.Function.Setoid.html#2768" class="Bound">U⇔V</a> <a id="2772" class="Symbol">=</a> <a id="2774" class="Keyword">record</a>
<a id="2783" class="Symbol">{</a> <a id="2785" href="Function.Bundles.html#4810" class="Field">to</a> <a id="2795" class="Symbol">=</a> <a id="2797" href="Data.Sum.Base.html#1253" class="Function">Sum.map</a> <a id="2805" class="Symbol">(</a><a id="2806" href="Function.Bundles.html#4810" class="Field">to</a> <a id="2809" href="Data.Sum.Function.Setoid.html#2750" class="Bound">S⇔T</a><a id="2812" class="Symbol">)</a> <a id="2814" class="Symbol">(</a><a id="2815" href="Function.Bundles.html#4810" class="Field">to</a> <a id="2818" href="Data.Sum.Function.Setoid.html#2768" class="Bound">U⇔V</a><a id="2821" class="Symbol">)</a>
<a id="2825" class="Symbol">;</a> <a id="2827" href="Function.Bundles.html#4834" class="Field">from</a> <a id="2837" class="Symbol">=</a> <a id="2839" href="Data.Sum.Base.html#1253" class="Function">Sum.map</a> <a id="2847" class="Symbol">(</a><a id="2848" href="Function.Bundles.html#4834" class="Field">from</a> <a id="2853" href="Data.Sum.Function.Setoid.html#2750" class="Bound">S⇔T</a><a id="2856" class="Symbol">)</a> <a id="2858" class="Symbol">(</a><a id="2859" href="Function.Bundles.html#4834" class="Field">from</a> <a id="2864" href="Data.Sum.Function.Setoid.html#2768" class="Bound">U⇔V</a><a id="2867" class="Symbol">)</a>
<a id="2871" class="Symbol">;</a> <a id="2873" href="Function.Bundles.html#4858" class="Field">to-cong</a> <a id="2883" class="Symbol">=</a> <a id="2885" href="Data.Sum.Relation.Binary.Pointwise.html#1378" class="Function">Pointwise.map</a> <a id="2899" class="Symbol">(</a><a id="2900" href="Function.Bundles.html#4858" class="Field">to-cong</a> <a id="2908" href="Data.Sum.Function.Setoid.html#2750" class="Bound">S⇔T</a><a id="2911" class="Symbol">)</a> <a id="2913" class="Symbol">(</a><a id="2914" href="Function.Bundles.html#4858" class="Field">to-cong</a> <a id="2922" href="Data.Sum.Function.Setoid.html#2768" class="Bound">U⇔V</a><a id="2925" class="Symbol">)</a>
<a id="2929" class="Symbol">;</a> <a id="2931" href="Function.Bundles.html#4899" class="Field">from-cong</a> <a id="2941" class="Symbol">=</a> <a id="2943" href="Data.Sum.Relation.Binary.Pointwise.html#1378" class="Function">Pointwise.map</a> <a id="2957" class="Symbol">(</a><a id="2958" href="Function.Bundles.html#4899" class="Field">from-cong</a> <a id="2968" href="Data.Sum.Function.Setoid.html#2750" class="Bound">S⇔T</a><a id="2971" class="Symbol">)</a> <a id="2973" class="Symbol">(</a><a id="2974" href="Function.Bundles.html#4899" class="Field">from-cong</a> <a id="2984" href="Data.Sum.Function.Setoid.html#2768" class="Bound">U⇔V</a><a id="2987" class="Symbol">)</a>
<a id="2991" class="Symbol">}</a> <a id="2993" class="Keyword">where</a> <a id="2999" class="Keyword">open</a> <a id="3004" href="Function.Bundles.html#4752" class="Module">Equivalence</a>
<a id="_⊎-injection_"></a><a id="3017" href="Data.Sum.Function.Setoid.html#3017" class="Function Operator">_⊎-injection_</a> <a id="3031" class="Symbol">:</a> <a id="3033" href="Function.Bundles.html#2415" class="Record">Injection</a> <a id="3043" href="Data.Sum.Function.Setoid.html#723" class="Generalizable">S</a> <a id="3045" href="Data.Sum.Function.Setoid.html#725" class="Generalizable">T</a> <a id="3047" class="Symbol"></a> <a id="3049" href="Function.Bundles.html#2415" class="Record">Injection</a> <a id="3059" href="Data.Sum.Function.Setoid.html#727" class="Generalizable">U</a> <a id="3061" href="Data.Sum.Function.Setoid.html#729" class="Generalizable">V</a> <a id="3063" class="Symbol"></a>
<a id="3081" href="Function.Bundles.html#2415" class="Record">Injection</a> <a id="3091" class="Symbol">(</a><a id="3092" href="Data.Sum.Function.Setoid.html#723" class="Generalizable">S</a> <a id="3094" href="Data.Sum.Relation.Binary.Pointwise.html#7477" class="Function Operator">⊎ₛ</a> <a id="3097" href="Data.Sum.Function.Setoid.html#727" class="Generalizable">U</a><a id="3098" class="Symbol">)</a> <a id="3100" class="Symbol">(</a><a id="3101" href="Data.Sum.Function.Setoid.html#725" class="Generalizable">T</a> <a id="3103" href="Data.Sum.Relation.Binary.Pointwise.html#7477" class="Function Operator">⊎ₛ</a> <a id="3106" href="Data.Sum.Function.Setoid.html#729" class="Generalizable">V</a><a id="3107" class="Symbol">)</a>
<a id="3109" href="Data.Sum.Function.Setoid.html#3109" class="Bound">S↣T</a> <a id="3113" href="Data.Sum.Function.Setoid.html#3017" class="Function Operator">⊎-injection</a> <a id="3125" href="Data.Sum.Function.Setoid.html#3125" class="Bound">U↣V</a> <a id="3129" class="Symbol">=</a> <a id="3131" class="Keyword">record</a>
<a id="3140" class="Symbol">{</a> <a id="3142" href="Function.Bundles.html#2471" class="Field">to</a> <a id="3152" class="Symbol">=</a> <a id="3154" href="Data.Sum.Base.html#1253" class="Function">Sum.map</a> <a id="3162" class="Symbol">(</a><a id="3163" href="Function.Bundles.html#2471" class="Field">to</a> <a id="3166" href="Data.Sum.Function.Setoid.html#3109" class="Bound">S↣T</a><a id="3169" class="Symbol">)</a> <a id="3171" class="Symbol">(</a><a id="3172" href="Function.Bundles.html#2471" class="Field">to</a> <a id="3175" href="Data.Sum.Function.Setoid.html#3125" class="Bound">U↣V</a><a id="3178" class="Symbol">)</a>
<a id="3182" class="Symbol">;</a> <a id="3184" href="Function.Bundles.html#2497" class="Field">cong</a> <a id="3194" class="Symbol">=</a> <a id="3196" href="Data.Sum.Relation.Binary.Pointwise.html#1378" class="Function">Pointwise.map</a> <a id="3210" class="Symbol">(</a><a id="3211" href="Function.Bundles.html#2497" class="Field">cong</a> <a id="3216" href="Data.Sum.Function.Setoid.html#3109" class="Bound">S↣T</a><a id="3219" class="Symbol">)</a> <a id="3221" class="Symbol">(</a><a id="3222" href="Function.Bundles.html#2497" class="Field">cong</a> <a id="3227" href="Data.Sum.Function.Setoid.html#3125" class="Bound">U↣V</a><a id="3230" class="Symbol">)</a>
<a id="3234" class="Symbol">;</a> <a id="3236" href="Function.Bundles.html#2540" class="Field">injective</a> <a id="3246" class="Symbol">=</a> <a id="3248" href="Data.Sum.Function.Setoid.html#1346" class="Function">⊎-injective</a> <a id="3260" class="Symbol">(</a><a id="3261" href="Function.Bundles.html#2540" class="Field">injective</a> <a id="3271" href="Data.Sum.Function.Setoid.html#3109" class="Bound">S↣T</a><a id="3274" class="Symbol">)</a> <a id="3276" class="Symbol">(</a><a id="3277" href="Function.Bundles.html#2540" class="Field">injective</a> <a id="3287" href="Data.Sum.Function.Setoid.html#3125" class="Bound">U↣V</a><a id="3290" class="Symbol">)</a>
<a id="3294" class="Symbol">}</a> <a id="3296" class="Keyword">where</a> <a id="3302" class="Keyword">open</a> <a id="3307" href="Function.Bundles.html#2415" class="Module">Injection</a>
<a id="3318" class="Keyword">infixr</a> <a id="3325" class="Number">1</a> <a id="3327" href="Data.Sum.Function.Setoid.html#3354" class="Function Operator">_⊎-surjection_</a> <a id="3342" href="Data.Sum.Function.Setoid.html#5166" class="Function Operator">_⊎-inverse_</a>
<a id="_⊎-surjection_"></a><a id="3354" href="Data.Sum.Function.Setoid.html#3354" class="Function Operator">_⊎-surjection_</a> <a id="3369" class="Symbol">:</a> <a id="3371" href="Function.Bundles.html#2865" class="Record">Surjection</a> <a id="3382" href="Data.Sum.Function.Setoid.html#723" class="Generalizable">S</a> <a id="3384" href="Data.Sum.Function.Setoid.html#725" class="Generalizable">T</a> <a id="3386" class="Symbol"></a> <a id="3388" href="Function.Bundles.html#2865" class="Record">Surjection</a> <a id="3399" href="Data.Sum.Function.Setoid.html#727" class="Generalizable">U</a> <a id="3401" href="Data.Sum.Function.Setoid.html#729" class="Generalizable">V</a> <a id="3403" class="Symbol"></a>
<a id="3422" href="Function.Bundles.html#2865" class="Record">Surjection</a> <a id="3433" class="Symbol">(</a><a id="3434" href="Data.Sum.Function.Setoid.html#723" class="Generalizable">S</a> <a id="3436" href="Data.Sum.Relation.Binary.Pointwise.html#7477" class="Function Operator">⊎ₛ</a> <a id="3439" href="Data.Sum.Function.Setoid.html#727" class="Generalizable">U</a><a id="3440" class="Symbol">)</a> <a id="3442" class="Symbol">(</a><a id="3443" href="Data.Sum.Function.Setoid.html#725" class="Generalizable">T</a> <a id="3445" href="Data.Sum.Relation.Binary.Pointwise.html#7477" class="Function Operator">⊎ₛ</a> <a id="3448" href="Data.Sum.Function.Setoid.html#729" class="Generalizable">V</a><a id="3449" class="Symbol">)</a>
<a id="3451" href="Data.Sum.Function.Setoid.html#3451" class="Bound">S↠T</a> <a id="3455" href="Data.Sum.Function.Setoid.html#3354" class="Function Operator">⊎-surjection</a> <a id="3468" href="Data.Sum.Function.Setoid.html#3468" class="Bound">U↠V</a> <a id="3472" class="Symbol">=</a> <a id="3474" class="Keyword">record</a>
<a id="3483" class="Symbol">{</a> <a id="3485" href="Function.Bundles.html#2922" class="Field">to</a> <a id="3501" class="Symbol">=</a> <a id="3503" href="Data.Sum.Base.html#1253" class="Function">Sum.map</a> <a id="3511" class="Symbol">(</a><a id="3512" href="Function.Bundles.html#2922" class="Field">to</a> <a id="3515" href="Data.Sum.Function.Setoid.html#3451" class="Bound">S↠T</a><a id="3518" class="Symbol">)</a> <a id="3520" class="Symbol">(</a><a id="3521" href="Function.Bundles.html#2922" class="Field">to</a> <a id="3524" href="Data.Sum.Function.Setoid.html#3468" class="Bound">U↠V</a><a id="3527" class="Symbol">)</a>
<a id="3531" class="Symbol">;</a> <a id="3533" href="Function.Bundles.html#2947" class="Field">cong</a> <a id="3549" class="Symbol">=</a> <a id="3551" href="Data.Sum.Relation.Binary.Pointwise.html#1378" class="Function">Pointwise.map</a> <a id="3565" class="Symbol">(</a><a id="3566" href="Function.Bundles.html#2947" class="Field">cong</a> <a id="3571" href="Data.Sum.Function.Setoid.html#3451" class="Bound">S↠T</a><a id="3574" class="Symbol">)</a> <a id="3576" class="Symbol">(</a><a id="3577" href="Function.Bundles.html#2947" class="Field">cong</a> <a id="3582" href="Data.Sum.Function.Setoid.html#3468" class="Bound">U↠V</a><a id="3585" class="Symbol">)</a>
<a id="3589" class="Symbol">;</a> <a id="3591" href="Function.Bundles.html#2989" class="Field">surjective</a> <a id="3607" class="Symbol">=</a> <a id="3609" href="Data.Sum.Function.Setoid.html#1959" class="Function">⊎-surjective</a> <a id="3622" class="Symbol">(</a><a id="3623" href="Function.Bundles.html#2989" class="Field">surjective</a> <a id="3634" href="Data.Sum.Function.Setoid.html#3451" class="Bound">S↠T</a><a id="3637" class="Symbol">)</a> <a id="3639" class="Symbol">(</a><a id="3640" href="Function.Bundles.html#2989" class="Field">surjective</a> <a id="3651" href="Data.Sum.Function.Setoid.html#3468" class="Bound">U↠V</a><a id="3654" class="Symbol">)</a>
<a id="3658" class="Symbol">}</a> <a id="3660" class="Keyword">where</a> <a id="3666" class="Keyword">open</a> <a id="3671" href="Function.Bundles.html#2865" class="Module">Surjection</a>
<a id="_⊎-bijection_"></a><a id="3683" href="Data.Sum.Function.Setoid.html#3683" class="Function Operator">_⊎-bijection_</a> <a id="3697" class="Symbol">:</a> <a id="3699" href="Function.Bundles.html#3530" class="Record">Bijection</a> <a id="3709" href="Data.Sum.Function.Setoid.html#723" class="Generalizable">S</a> <a id="3711" href="Data.Sum.Function.Setoid.html#725" class="Generalizable">T</a> <a id="3713" class="Symbol"></a> <a id="3715" href="Function.Bundles.html#3530" class="Record">Bijection</a> <a id="3725" href="Data.Sum.Function.Setoid.html#727" class="Generalizable">U</a> <a id="3727" href="Data.Sum.Function.Setoid.html#729" class="Generalizable">V</a> <a id="3729" class="Symbol"></a>
<a id="3748" href="Function.Bundles.html#3530" class="Record">Bijection</a> <a id="3758" class="Symbol">(</a><a id="3759" href="Data.Sum.Function.Setoid.html#723" class="Generalizable">S</a> <a id="3761" href="Data.Sum.Relation.Binary.Pointwise.html#7477" class="Function Operator">⊎ₛ</a> <a id="3764" href="Data.Sum.Function.Setoid.html#727" class="Generalizable">U</a><a id="3765" class="Symbol">)</a> <a id="3767" class="Symbol">(</a><a id="3768" href="Data.Sum.Function.Setoid.html#725" class="Generalizable">T</a> <a id="3770" href="Data.Sum.Relation.Binary.Pointwise.html#7477" class="Function Operator">⊎ₛ</a> <a id="3773" href="Data.Sum.Function.Setoid.html#729" class="Generalizable">V</a><a id="3774" class="Symbol">)</a>
<a id="3776" href="Data.Sum.Function.Setoid.html#3776" class="Bound">S⤖T</a> <a id="3780" href="Data.Sum.Function.Setoid.html#3683" class="Function Operator">⊎-bijection</a> <a id="3792" href="Data.Sum.Function.Setoid.html#3792" class="Bound">U⤖V</a> <a id="3796" class="Symbol">=</a> <a id="3798" class="Keyword">record</a>
<a id="3807" class="Symbol">{</a> <a id="3809" href="Function.Bundles.html#3586" class="Field">to</a> <a id="3819" class="Symbol">=</a> <a id="3821" href="Data.Sum.Base.html#1253" class="Function">Sum.map</a> <a id="3829" class="Symbol">(</a><a id="3830" href="Function.Bundles.html#3586" class="Field">to</a> <a id="3833" href="Data.Sum.Function.Setoid.html#3776" class="Bound">S⤖T</a><a id="3836" class="Symbol">)</a> <a id="3838" class="Symbol">(</a><a id="3839" href="Function.Bundles.html#3586" class="Field">to</a> <a id="3842" href="Data.Sum.Function.Setoid.html#3792" class="Bound">U⤖V</a><a id="3845" class="Symbol">)</a>
<a id="3849" class="Symbol">;</a> <a id="3851" href="Function.Bundles.html#3610" class="Field">cong</a> <a id="3861" class="Symbol">=</a> <a id="3863" href="Data.Sum.Relation.Binary.Pointwise.html#1378" class="Function">Pointwise.map</a> <a id="3877" class="Symbol">(</a><a id="3878" href="Function.Bundles.html#3610" class="Field">cong</a> <a id="3883" href="Data.Sum.Function.Setoid.html#3776" class="Bound">S⤖T</a><a id="3886" class="Symbol">)</a> <a id="3888" class="Symbol">(</a><a id="3889" href="Function.Bundles.html#3610" class="Field">cong</a> <a id="3894" href="Data.Sum.Function.Setoid.html#3792" class="Bound">U⤖V</a><a id="3897" class="Symbol">)</a>
<a id="3901" class="Symbol">;</a> <a id="3903" href="Function.Bundles.html#3651" class="Field">bijective</a> <a id="3913" class="Symbol">=</a> <a id="3915" href="Data.Sum.Function.Setoid.html#1346" class="Function">⊎-injective</a> <a id="3927" class="Symbol">(</a><a id="3928" href="Function.Bundles.html#3691" class="Function">injective</a> <a id="3938" href="Data.Sum.Function.Setoid.html#3776" class="Bound">S⤖T</a><a id="3941" class="Symbol">)</a> <a id="3943" class="Symbol">(</a><a id="3944" href="Function.Bundles.html#3691" class="Function">injective</a> <a id="3954" href="Data.Sum.Function.Setoid.html#3792" class="Bound">U⤖V</a><a id="3957" class="Symbol">)</a> <a id="3959" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a>
<a id="3977" href="Data.Sum.Function.Setoid.html#1959" class="Function">⊎-surjective</a> <a id="3990" class="Symbol">(</a><a id="3991" href="Function.Bundles.html#3763" class="Function">surjective</a> <a id="4002" href="Data.Sum.Function.Setoid.html#3776" class="Bound">S⤖T</a><a id="4005" class="Symbol">)</a> <a id="4007" class="Symbol">(</a><a id="4008" href="Function.Bundles.html#3763" class="Function">surjective</a> <a id="4019" href="Data.Sum.Function.Setoid.html#3792" class="Bound">U⤖V</a><a id="4022" class="Symbol">)</a>
<a id="4026" class="Symbol">}</a> <a id="4028" class="Keyword">where</a> <a id="4034" class="Keyword">open</a> <a id="4039" href="Function.Bundles.html#3530" class="Module">Bijection</a>
<a id="_⊎-leftInverse_"></a><a id="4050" href="Data.Sum.Function.Setoid.html#4050" class="Function Operator">_⊎-leftInverse_</a> <a id="4066" class="Symbol">:</a> <a id="4068" href="Function.Bundles.html#5375" class="Record">LeftInverse</a> <a id="4080" href="Data.Sum.Function.Setoid.html#723" class="Generalizable">S</a> <a id="4082" href="Data.Sum.Function.Setoid.html#725" class="Generalizable">T</a> <a id="4084" class="Symbol"></a> <a id="4086" href="Function.Bundles.html#5375" class="Record">LeftInverse</a> <a id="4098" href="Data.Sum.Function.Setoid.html#727" class="Generalizable">U</a> <a id="4100" href="Data.Sum.Function.Setoid.html#729" class="Generalizable">V</a> <a id="4102" class="Symbol"></a>
<a id="4122" href="Function.Bundles.html#5375" class="Record">LeftInverse</a> <a id="4134" class="Symbol">(</a><a id="4135" href="Data.Sum.Function.Setoid.html#723" class="Generalizable">S</a> <a id="4137" href="Data.Sum.Relation.Binary.Pointwise.html#7477" class="Function Operator">⊎ₛ</a> <a id="4140" href="Data.Sum.Function.Setoid.html#727" class="Generalizable">U</a><a id="4141" class="Symbol">)</a> <a id="4143" class="Symbol">(</a><a id="4144" href="Data.Sum.Function.Setoid.html#725" class="Generalizable">T</a> <a id="4146" href="Data.Sum.Relation.Binary.Pointwise.html#7477" class="Function Operator">⊎ₛ</a> <a id="4149" href="Data.Sum.Function.Setoid.html#729" class="Generalizable">V</a><a id="4150" class="Symbol">)</a>
<a id="4152" href="Data.Sum.Function.Setoid.html#4152" class="Bound">S↩T</a> <a id="4156" href="Data.Sum.Function.Setoid.html#4050" class="Function Operator">⊎-leftInverse</a> <a id="4170" href="Data.Sum.Function.Setoid.html#4170" class="Bound">U↩V</a> <a id="4174" class="Symbol">=</a> <a id="4176" class="Keyword">record</a>
<a id="4185" class="Symbol">{</a> <a id="4187" href="Function.Bundles.html#5433" class="Field">to</a> <a id="4203" class="Symbol">=</a> <a id="4205" href="Data.Sum.Base.html#1253" class="Function">Sum.map</a> <a id="4213" class="Symbol">(</a><a id="4214" href="Function.Bundles.html#5433" class="Field">to</a> <a id="4217" href="Data.Sum.Function.Setoid.html#4152" class="Bound">S↩T</a><a id="4220" class="Symbol">)</a> <a id="4222" class="Symbol">(</a><a id="4223" href="Function.Bundles.html#5433" class="Field">to</a> <a id="4226" href="Data.Sum.Function.Setoid.html#4170" class="Bound">U↩V</a><a id="4229" class="Symbol">)</a>
<a id="4233" class="Symbol">;</a> <a id="4235" href="Function.Bundles.html#5457" class="Field">from</a> <a id="4251" class="Symbol">=</a> <a id="4253" href="Data.Sum.Base.html#1253" class="Function">Sum.map</a> <a id="4261" class="Symbol">(</a><a id="4262" href="Function.Bundles.html#5457" class="Field">from</a> <a id="4267" href="Data.Sum.Function.Setoid.html#4152" class="Bound">S↩T</a><a id="4270" class="Symbol">)</a> <a id="4272" class="Symbol">(</a><a id="4273" href="Function.Bundles.html#5457" class="Field">from</a> <a id="4278" href="Data.Sum.Function.Setoid.html#4170" class="Bound">U↩V</a><a id="4281" class="Symbol">)</a>
<a id="4285" class="Symbol">;</a> <a id="4287" href="Function.Bundles.html#5481" class="Field">to-cong</a> <a id="4303" class="Symbol">=</a> <a id="4305" href="Data.Sum.Relation.Binary.Pointwise.html#1378" class="Function">Pointwise.map</a> <a id="4319" class="Symbol">(</a><a id="4320" href="Function.Bundles.html#5481" class="Field">to-cong</a> <a id="4328" href="Data.Sum.Function.Setoid.html#4152" class="Bound">S↩T</a><a id="4331" class="Symbol">)</a> <a id="4333" class="Symbol">(</a><a id="4334" href="Function.Bundles.html#5481" class="Field">to-cong</a> <a id="4342" href="Data.Sum.Function.Setoid.html#4170" class="Bound">U↩V</a><a id="4345" class="Symbol">)</a>
<a id="4349" class="Symbol">;</a> <a id="4351" href="Function.Bundles.html#5522" class="Field">from-cong</a> <a id="4367" class="Symbol">=</a> <a id="4369" href="Data.Sum.Relation.Binary.Pointwise.html#1378" class="Function">Pointwise.map</a> <a id="4383" class="Symbol">(</a><a id="4384" href="Function.Bundles.html#5522" class="Field">from-cong</a> <a id="4394" href="Data.Sum.Function.Setoid.html#4152" class="Bound">S↩T</a><a id="4397" class="Symbol">)</a> <a id="4399" class="Symbol">(</a><a id="4400" href="Function.Bundles.html#5522" class="Field">from-cong</a> <a id="4410" href="Data.Sum.Function.Setoid.html#4170" class="Bound">U↩V</a><a id="4413" class="Symbol">)</a>
<a id="4417" class="Symbol">;</a> <a id="4419" href="Function.Bundles.html#5565" class="Field">inverseˡ</a> <a id="4435" class="Symbol">=</a> <a id="4437" class="Symbol">λ</a> <a id="4439" class="Symbol">{</a> <a id="4441" class="Symbol">{</a><a id="4442" href="Data.Sum.Base.html#675" class="InductiveConstructor">inj₁</a> <a id="4447" class="Symbol">_}</a> <a id="4450" class="Symbol">{</a><a id="4451" class="DottedPattern Symbol">.(</a><a id="4453" href="Data.Sum.Base.html#675" class="DottedPattern InductiveConstructor">inj₁</a> <a id="4458" class="DottedPattern Symbol">_)</a><a id="4460" class="Symbol">}</a> <a id="4462" class="Symbol">(</a><a id="4463" href="Data.Sum.Relation.Binary.Pointwise.html#1176" class="InductiveConstructor">inj₁</a> <a id="4468" href="Data.Sum.Function.Setoid.html#4468" class="Bound">x</a><a id="4469" class="Symbol">)</a> <a id="4471" class="Symbol"></a> <a id="4473" href="Data.Sum.Relation.Binary.Pointwise.html#1176" class="InductiveConstructor">inj₁</a> <a id="4478" class="Symbol">(</a><a id="4479" href="Function.Bundles.html#5565" class="Field">inverseˡ</a> <a id="4488" href="Data.Sum.Function.Setoid.html#4152" class="Bound">S↩T</a> <a id="4492" href="Data.Sum.Function.Setoid.html#4468" class="Bound">x</a><a id="4493" class="Symbol">)</a>
<a id="4519" class="Symbol">;</a> <a id="4521" class="Symbol">{</a><a id="4522" href="Data.Sum.Base.html#700" class="InductiveConstructor">inj₂</a> <a id="4527" class="Symbol">_}</a> <a id="4530" class="Symbol">{</a><a id="4531" class="DottedPattern Symbol">.(</a><a id="4533" href="Data.Sum.Base.html#700" class="DottedPattern InductiveConstructor">inj₂</a> <a id="4538" class="DottedPattern Symbol">_)</a><a id="4540" class="Symbol">}</a> <a id="4542" class="Symbol">(</a><a id="4543" href="Data.Sum.Relation.Binary.Pointwise.html#1235" class="InductiveConstructor">inj₂</a> <a id="4548" href="Data.Sum.Function.Setoid.html#4548" class="Bound">x</a><a id="4549" class="Symbol">)</a> <a id="4551" class="Symbol"></a> <a id="4553" href="Data.Sum.Relation.Binary.Pointwise.html#1235" class="InductiveConstructor">inj₂</a> <a id="4558" class="Symbol">(</a><a id="4559" href="Function.Bundles.html#5565" class="Field">inverseˡ</a> <a id="4568" href="Data.Sum.Function.Setoid.html#4170" class="Bound">U↩V</a> <a id="4572" href="Data.Sum.Function.Setoid.html#4548" class="Bound">x</a><a id="4573" class="Symbol">)}</a>
<a id="4578" class="Symbol">}</a> <a id="4580" class="Keyword">where</a> <a id="4586" class="Keyword">open</a> <a id="4591" href="Function.Bundles.html#5375" class="Module">LeftInverse</a>
<a id="_⊎-rightInverse_"></a><a id="4604" href="Data.Sum.Function.Setoid.html#4604" class="Function Operator">_⊎-rightInverse_</a> <a id="4621" class="Symbol">:</a> <a id="4623" href="Function.Bundles.html#6509" class="Record">RightInverse</a> <a id="4636" href="Data.Sum.Function.Setoid.html#723" class="Generalizable">S</a> <a id="4638" href="Data.Sum.Function.Setoid.html#725" class="Generalizable">T</a> <a id="4640" class="Symbol"></a> <a id="4642" href="Function.Bundles.html#6509" class="Record">RightInverse</a> <a id="4655" href="Data.Sum.Function.Setoid.html#727" class="Generalizable">U</a> <a id="4657" href="Data.Sum.Function.Setoid.html#729" class="Generalizable">V</a> <a id="4659" class="Symbol"></a>
<a id="4680" href="Function.Bundles.html#6509" class="Record">RightInverse</a> <a id="4693" class="Symbol">(</a><a id="4694" href="Data.Sum.Function.Setoid.html#723" class="Generalizable">S</a> <a id="4696" href="Data.Sum.Relation.Binary.Pointwise.html#7477" class="Function Operator">⊎ₛ</a> <a id="4699" href="Data.Sum.Function.Setoid.html#727" class="Generalizable">U</a><a id="4700" class="Symbol">)</a> <a id="4702" class="Symbol">(</a><a id="4703" href="Data.Sum.Function.Setoid.html#725" class="Generalizable">T</a> <a id="4705" href="Data.Sum.Relation.Binary.Pointwise.html#7477" class="Function Operator">⊎ₛ</a> <a id="4708" href="Data.Sum.Function.Setoid.html#729" class="Generalizable">V</a><a id="4709" class="Symbol">)</a>
<a id="4711" href="Data.Sum.Function.Setoid.html#4711" class="Bound">S↪T</a> <a id="4715" href="Data.Sum.Function.Setoid.html#4604" class="Function Operator">⊎-rightInverse</a> <a id="4730" href="Data.Sum.Function.Setoid.html#4730" class="Bound">U↪V</a> <a id="4734" class="Symbol">=</a> <a id="4736" class="Keyword">record</a>
<a id="4745" class="Symbol">{</a> <a id="4747" href="Function.Bundles.html#6568" class="Field">to</a> <a id="4763" class="Symbol">=</a> <a id="4765" href="Data.Sum.Base.html#1253" class="Function">Sum.map</a> <a id="4773" class="Symbol">(</a><a id="4774" href="Function.Bundles.html#6568" class="Field">to</a> <a id="4777" href="Data.Sum.Function.Setoid.html#4711" class="Bound">S↪T</a><a id="4780" class="Symbol">)</a> <a id="4782" class="Symbol">(</a><a id="4783" href="Function.Bundles.html#6568" class="Field">to</a> <a id="4786" href="Data.Sum.Function.Setoid.html#4730" class="Bound">U↪V</a><a id="4789" class="Symbol">)</a>
<a id="4793" class="Symbol">;</a> <a id="4795" href="Function.Bundles.html#6592" class="Field">from</a> <a id="4811" class="Symbol">=</a> <a id="4813" href="Data.Sum.Base.html#1253" class="Function">Sum.map</a> <a id="4821" class="Symbol">(</a><a id="4822" href="Function.Bundles.html#6592" class="Field">from</a> <a id="4827" href="Data.Sum.Function.Setoid.html#4711" class="Bound">S↪T</a><a id="4830" class="Symbol">)</a> <a id="4832" class="Symbol">(</a><a id="4833" href="Function.Bundles.html#6592" class="Field">from</a> <a id="4838" href="Data.Sum.Function.Setoid.html#4730" class="Bound">U↪V</a><a id="4841" class="Symbol">)</a>
<a id="4845" class="Symbol">;</a> <a id="4847" href="Function.Bundles.html#6616" class="Field">to-cong</a> <a id="4863" class="Symbol">=</a> <a id="4865" href="Data.Sum.Relation.Binary.Pointwise.html#1378" class="Function">Pointwise.map</a> <a id="4879" class="Symbol">(</a><a id="4880" href="Function.Bundles.html#6616" class="Field">to-cong</a> <a id="4888" href="Data.Sum.Function.Setoid.html#4711" class="Bound">S↪T</a><a id="4891" class="Symbol">)</a> <a id="4893" class="Symbol">(</a><a id="4894" href="Function.Bundles.html#6616" class="Field">to-cong</a> <a id="4902" href="Data.Sum.Function.Setoid.html#4730" class="Bound">U↪V</a><a id="4905" class="Symbol">)</a>
<a id="4909" class="Symbol">;</a> <a id="4911" href="Function.Bundles.html#6657" class="Field">from-cong</a> <a id="4927" class="Symbol">=</a> <a id="4929" href="Data.Sum.Relation.Binary.Pointwise.html#1378" class="Function">Pointwise.map</a> <a id="4943" class="Symbol">(</a><a id="4944" href="Function.Bundles.html#6657" class="Field">from-cong</a> <a id="4954" href="Data.Sum.Function.Setoid.html#4711" class="Bound">S↪T</a><a id="4957" class="Symbol">)</a> <a id="4959" class="Symbol">(</a><a id="4960" href="Function.Bundles.html#6657" class="Field">from-cong</a> <a id="4970" href="Data.Sum.Function.Setoid.html#4730" class="Bound">U↪V</a><a id="4973" class="Symbol">)</a>
<a id="4977" class="Symbol">;</a> <a id="4979" href="Function.Bundles.html#6702" class="Field">inverseʳ</a> <a id="4995" class="Symbol">=</a> <a id="4997" class="Symbol">λ</a> <a id="4999" class="Symbol">{</a> <a id="5001" class="Symbol">{</a><a id="5002" href="Data.Sum.Base.html#675" class="InductiveConstructor">inj₁</a> <a id="5007" class="Symbol">_}</a> <a id="5010" class="Symbol">(</a><a id="5011" href="Data.Sum.Relation.Binary.Pointwise.html#1176" class="InductiveConstructor">inj₁</a> <a id="5016" href="Data.Sum.Function.Setoid.html#5016" class="Bound">x</a><a id="5017" class="Symbol">)</a> <a id="5019" class="Symbol"></a> <a id="5021" href="Data.Sum.Relation.Binary.Pointwise.html#1176" class="InductiveConstructor">inj₁</a> <a id="5026" class="Symbol">(</a><a id="5027" href="Function.Bundles.html#6702" class="Field">inverseʳ</a> <a id="5036" href="Data.Sum.Function.Setoid.html#4711" class="Bound">S↪T</a> <a id="5040" href="Data.Sum.Function.Setoid.html#5016" class="Bound">x</a><a id="5041" class="Symbol">)</a>
<a id="5067" class="Symbol">;</a> <a id="5069" class="Symbol">{</a><a id="5070" href="Data.Sum.Base.html#700" class="InductiveConstructor">inj₂</a> <a id="5075" class="Symbol">_}</a> <a id="5078" class="Symbol">(</a><a id="5079" href="Data.Sum.Relation.Binary.Pointwise.html#1235" class="InductiveConstructor">inj₂</a> <a id="5084" href="Data.Sum.Function.Setoid.html#5084" class="Bound">x</a><a id="5085" class="Symbol">)</a> <a id="5087" class="Symbol"></a> <a id="5089" href="Data.Sum.Relation.Binary.Pointwise.html#1235" class="InductiveConstructor">inj₂</a> <a id="5094" class="Symbol">(</a><a id="5095" href="Function.Bundles.html#6702" class="Field">inverseʳ</a> <a id="5104" href="Data.Sum.Function.Setoid.html#4730" class="Bound">U↪V</a> <a id="5108" href="Data.Sum.Function.Setoid.html#5084" class="Bound">x</a><a id="5109" class="Symbol">)</a>
<a id="5135" class="Symbol">}</a>
<a id="5139" class="Symbol">}</a> <a id="5141" class="Keyword">where</a> <a id="5147" class="Keyword">open</a> <a id="5152" href="Function.Bundles.html#6509" class="Module">RightInverse</a>
<a id="_⊎-inverse_"></a><a id="5166" href="Data.Sum.Function.Setoid.html#5166" class="Function Operator">_⊎-inverse_</a> <a id="5178" class="Symbol">:</a> <a id="5180" href="Function.Bundles.html#7340" class="Record">Inverse</a> <a id="5188" href="Data.Sum.Function.Setoid.html#723" class="Generalizable">S</a> <a id="5190" href="Data.Sum.Function.Setoid.html#725" class="Generalizable">T</a> <a id="5192" class="Symbol"></a> <a id="5194" href="Function.Bundles.html#7340" class="Record">Inverse</a> <a id="5202" href="Data.Sum.Function.Setoid.html#727" class="Generalizable">U</a> <a id="5204" href="Data.Sum.Function.Setoid.html#729" class="Generalizable">V</a> <a id="5206" class="Symbol"></a>
<a id="5222" href="Function.Bundles.html#7340" class="Record">Inverse</a> <a id="5230" class="Symbol">(</a><a id="5231" href="Data.Sum.Function.Setoid.html#723" class="Generalizable">S</a> <a id="5233" href="Data.Sum.Relation.Binary.Pointwise.html#7477" class="Function Operator">⊎ₛ</a> <a id="5236" href="Data.Sum.Function.Setoid.html#727" class="Generalizable">U</a><a id="5237" class="Symbol">)</a> <a id="5239" class="Symbol">(</a><a id="5240" href="Data.Sum.Function.Setoid.html#725" class="Generalizable">T</a> <a id="5242" href="Data.Sum.Relation.Binary.Pointwise.html#7477" class="Function Operator">⊎ₛ</a> <a id="5245" href="Data.Sum.Function.Setoid.html#729" class="Generalizable">V</a><a id="5246" class="Symbol">)</a>
<a id="5248" href="Data.Sum.Function.Setoid.html#5248" class="Bound">S↔T</a> <a id="5252" href="Data.Sum.Function.Setoid.html#5166" class="Function Operator">⊎-inverse</a> <a id="5262" href="Data.Sum.Function.Setoid.html#5262" class="Bound">U↔V</a> <a id="5266" class="Symbol">=</a> <a id="5268" class="Keyword">record</a>
<a id="5277" class="Symbol">{</a> <a id="5279" href="Function.Bundles.html#7394" class="Field">to</a> <a id="5289" class="Symbol">=</a> <a id="5291" href="Data.Sum.Base.html#1253" class="Function">Sum.map</a> <a id="5299" class="Symbol">(</a><a id="5300" href="Function.Bundles.html#7394" class="Field">to</a> <a id="5303" href="Data.Sum.Function.Setoid.html#5248" class="Bound">S↔T</a><a id="5306" class="Symbol">)</a> <a id="5308" class="Symbol">(</a><a id="5309" href="Function.Bundles.html#7394" class="Field">to</a> <a id="5312" href="Data.Sum.Function.Setoid.html#5262" class="Bound">U↔V</a><a id="5315" class="Symbol">)</a>
<a id="5319" class="Symbol">;</a> <a id="5321" href="Function.Bundles.html#7418" class="Field">from</a> <a id="5331" class="Symbol">=</a> <a id="5333" href="Data.Sum.Base.html#1253" class="Function">Sum.map</a> <a id="5341" class="Symbol">(</a><a id="5342" href="Function.Bundles.html#7418" class="Field">from</a> <a id="5347" href="Data.Sum.Function.Setoid.html#5248" class="Bound">S↔T</a><a id="5350" class="Symbol">)</a> <a id="5352" class="Symbol">(</a><a id="5353" href="Function.Bundles.html#7418" class="Field">from</a> <a id="5358" href="Data.Sum.Function.Setoid.html#5262" class="Bound">U↔V</a><a id="5361" class="Symbol">)</a>
<a id="5365" class="Symbol">;</a> <a id="5367" href="Function.Bundles.html#7442" class="Field">to-cong</a> <a id="5377" class="Symbol">=</a> <a id="5379" href="Data.Sum.Relation.Binary.Pointwise.html#1378" class="Function">Pointwise.map</a> <a id="5393" class="Symbol">(</a><a id="5394" href="Function.Bundles.html#7442" class="Field">to-cong</a> <a id="5402" href="Data.Sum.Function.Setoid.html#5248" class="Bound">S↔T</a><a id="5405" class="Symbol">)</a> <a id="5407" class="Symbol">(</a><a id="5408" href="Function.Bundles.html#7442" class="Field">to-cong</a> <a id="5416" href="Data.Sum.Function.Setoid.html#5262" class="Bound">U↔V</a><a id="5419" class="Symbol">)</a>
<a id="5423" class="Symbol">;</a> <a id="5425" href="Function.Bundles.html#7483" class="Field">from-cong</a> <a id="5435" class="Symbol">=</a> <a id="5437" href="Data.Sum.Relation.Binary.Pointwise.html#1378" class="Function">Pointwise.map</a> <a id="5451" class="Symbol">(</a><a id="5452" href="Function.Bundles.html#7483" class="Field">from-cong</a> <a id="5462" href="Data.Sum.Function.Setoid.html#5248" class="Bound">S↔T</a><a id="5465" class="Symbol">)</a> <a id="5467" class="Symbol">(</a><a id="5468" href="Function.Bundles.html#7483" class="Field">from-cong</a> <a id="5478" href="Data.Sum.Function.Setoid.html#5262" class="Bound">U↔V</a><a id="5481" class="Symbol">)</a>
<a id="5485" class="Symbol">;</a> <a id="5487" href="Function.Bundles.html#7526" class="Field">inverse</a> <a id="5497" class="Symbol">=</a> <a id="5499" class="Symbol"></a> <a id="5502" class="Symbol">{</a> <a id="5504" class="Symbol">{</a><a id="5505" href="Data.Sum.Base.html#675" class="InductiveConstructor">inj₁</a> <a id="5510" class="Symbol">_}</a> <a id="5513" class="Symbol">(</a><a id="5514" href="Data.Sum.Relation.Binary.Pointwise.html#1176" class="InductiveConstructor">inj₁</a> <a id="5519" href="Data.Sum.Function.Setoid.html#5519" class="Bound">x</a><a id="5520" class="Symbol">)</a> <a id="5522" class="Symbol"></a> <a id="5524" href="Data.Sum.Relation.Binary.Pointwise.html#1176" class="InductiveConstructor">inj₁</a> <a id="5529" class="Symbol">(</a><a id="5530" href="Function.Bundles.html#7570" class="Function">inverseˡ</a> <a id="5539" href="Data.Sum.Function.Setoid.html#5248" class="Bound">S↔T</a> <a id="5543" href="Data.Sum.Function.Setoid.html#5519" class="Bound">x</a><a id="5544" class="Symbol">)</a>
<a id="5565" class="Symbol">;</a> <a id="5567" class="Symbol">{</a><a id="5568" href="Data.Sum.Base.html#700" class="InductiveConstructor">inj₂</a> <a id="5573" class="Symbol">_}</a> <a id="5576" class="Symbol">(</a><a id="5577" href="Data.Sum.Relation.Binary.Pointwise.html#1235" class="InductiveConstructor">inj₂</a> <a id="5582" href="Data.Sum.Function.Setoid.html#5582" class="Bound">x</a><a id="5583" class="Symbol">)</a> <a id="5585" class="Symbol"></a> <a id="5587" href="Data.Sum.Relation.Binary.Pointwise.html#1235" class="InductiveConstructor">inj₂</a> <a id="5592" class="Symbol">(</a><a id="5593" href="Function.Bundles.html#7570" class="Function">inverseˡ</a> <a id="5602" href="Data.Sum.Function.Setoid.html#5262" class="Bound">U↔V</a> <a id="5606" href="Data.Sum.Function.Setoid.html#5582" class="Bound">x</a><a id="5607" class="Symbol">)})</a> <a id="5611" href="Agda.Builtin.Sigma.html#235" class="InductiveConstructor Operator">,</a>
<a id="5630" class="Symbol">λ</a> <a id="5632" class="Symbol">{</a> <a id="5634" class="Symbol">{</a><a id="5635" href="Data.Sum.Base.html#675" class="InductiveConstructor">inj₁</a> <a id="5640" class="Symbol">_}</a> <a id="5643" class="Symbol">(</a><a id="5644" href="Data.Sum.Relation.Binary.Pointwise.html#1176" class="InductiveConstructor">inj₁</a> <a id="5649" href="Data.Sum.Function.Setoid.html#5649" class="Bound">x</a><a id="5650" class="Symbol">)</a> <a id="5652" class="Symbol"></a> <a id="5654" href="Data.Sum.Relation.Binary.Pointwise.html#1176" class="InductiveConstructor">inj₁</a> <a id="5659" class="Symbol">(</a><a id="5660" href="Function.Bundles.html#7642" class="Function">inverseʳ</a> <a id="5669" href="Data.Sum.Function.Setoid.html#5248" class="Bound">S↔T</a> <a id="5673" href="Data.Sum.Function.Setoid.html#5649" class="Bound">x</a><a id="5674" class="Symbol">)</a>
<a id="5695" class="Symbol">;</a> <a id="5697" class="Symbol">{</a><a id="5698" href="Data.Sum.Base.html#700" class="InductiveConstructor">inj₂</a> <a id="5703" class="Symbol">_}</a> <a id="5706" class="Symbol">(</a><a id="5707" href="Data.Sum.Relation.Binary.Pointwise.html#1235" class="InductiveConstructor">inj₂</a> <a id="5712" href="Data.Sum.Function.Setoid.html#5712" class="Bound">x</a><a id="5713" class="Symbol">)</a> <a id="5715" class="Symbol"></a> <a id="5717" href="Data.Sum.Relation.Binary.Pointwise.html#1235" class="InductiveConstructor">inj₂</a> <a id="5722" class="Symbol">(</a><a id="5723" href="Function.Bundles.html#7642" class="Function">inverseʳ</a> <a id="5732" href="Data.Sum.Function.Setoid.html#5262" class="Bound">U↔V</a> <a id="5736" href="Data.Sum.Function.Setoid.html#5712" class="Bound">x</a><a id="5737" class="Symbol">)</a>
<a id="5758" class="Symbol">}</a>
<a id="5762" class="Symbol">}</a> <a id="5764" class="Keyword">where</a> <a id="5770" class="Keyword">open</a> <a id="5775" href="Function.Bundles.html#7340" class="Module">Inverse</a>
<a id="5786" class="Comment">------------------------------------------------------------------------</a>
<a id="5859" class="Comment">-- DEPRECATED NAMES</a>
<a id="5879" class="Comment">------------------------------------------------------------------------</a>
<a id="5952" class="Comment">-- Please use the new names as continuing support for the old names is</a>
<a id="6023" class="Comment">-- not guaranteed.</a>
<a id="6043" class="Comment">-- Version 2.0</a>
<a id="_⊎-left-inverse_"></a><a id="6059" href="Data.Sum.Function.Setoid.html#6059" class="Function Operator">_⊎-left-inverse_</a> <a id="6076" class="Symbol">=</a> <a id="6078" href="Data.Sum.Function.Setoid.html#4050" class="Function Operator">_⊎-leftInverse_</a>
<a id="6094" class="Symbol">{-#</a> <a id="6098" class="Keyword">WARNING_ON_USAGE</a> <a id="6115" class="Pragma">_⊎-left-inverse_</a>
<a id="6132" class="String">&quot;Warning: _⊎-left-inverse_ was deprecated in v2.0.
Please use _⊎-leftInverse_ instead.&quot;</a>
<a id="6220" class="Symbol">#-}</a>
</pre></body></html>