bsc-leon-vatthauer/agda/bsc-thesis/Algebra.Morphism.Structures.html
2024-02-09 17:53:52 +01:00

743 lines
No EOL
190 KiB
HTML

<!DOCTYPE HTML>
<html><head><meta charset="utf-8"><title>Algebra.Morphism.Structures</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">-- Morphisms between algebraic structures</a>
<a id="148" class="Comment">------------------------------------------------------------------------</a>
<a id="222" class="Symbol">{-#</a> <a id="226" class="Keyword">OPTIONS</a> <a id="234" class="Pragma">--cubical-compatible</a> <a id="255" class="Pragma">--safe</a> <a id="262" class="Symbol">#-}</a>
<a id="267" class="Keyword">open</a> <a id="272" class="Keyword">import</a> <a id="279" href="Relation.Binary.Core.html" class="Module">Relation.Binary.Core</a>
<a id="301" class="Keyword">module</a> <a id="308" href="Algebra.Morphism.Structures.html" class="Module">Algebra.Morphism.Structures</a> <a id="336" class="Keyword">where</a>
<a id="343" class="Keyword">open</a> <a id="348" class="Keyword">import</a> <a id="355" href="Algebra.Core.html" class="Module">Algebra.Core</a>
<a id="368" class="Keyword">open</a> <a id="373" class="Keyword">import</a> <a id="380" href="Algebra.Bundles.html" class="Module">Algebra.Bundles</a>
<a id="396" class="Keyword">import</a> <a id="403" href="Algebra.Morphism.Definitions.html" class="Module">Algebra.Morphism.Definitions</a> <a id="432" class="Symbol">as</a> <a id="435" class="Module">MorphismDefinitions</a>
<a id="455" class="Keyword">open</a> <a id="460" class="Keyword">import</a> <a id="467" href="Level.html" class="Module">Level</a> <a id="473" class="Keyword">using</a> <a id="479" class="Symbol">(</a><a id="480" href="Agda.Primitive.html#742" class="Postulate">Level</a><a id="485" class="Symbol">;</a> <a id="487" href="Agda.Primitive.html#961" class="Primitive Operator">_⊔_</a><a id="490" class="Symbol">)</a>
<a id="492" class="Keyword">open</a> <a id="497" class="Keyword">import</a> <a id="504" href="Function.Definitions.html" class="Module">Function.Definitions</a>
<a id="525" class="Keyword">open</a> <a id="530" class="Keyword">import</a> <a id="537" href="Relation.Binary.Morphism.Structures.html" class="Module">Relation.Binary.Morphism.Structures</a>
<a id="574" class="Keyword">private</a>
<a id="584" class="Keyword">variable</a>
<a id="597" href="Algebra.Morphism.Structures.html#597" class="Generalizable">a</a> <a id="599" href="Algebra.Morphism.Structures.html#599" class="Generalizable">b</a> <a id="601" href="Algebra.Morphism.Structures.html#601" class="Generalizable">ℓ₁</a> <a id="604" href="Algebra.Morphism.Structures.html#604" class="Generalizable">ℓ₂</a> <a id="607" class="Symbol">:</a> <a id="609" href="Agda.Primitive.html#742" class="Postulate">Level</a>
<a id="616" class="Comment">------------------------------------------------------------------------</a>
<a id="689" class="Comment">-- Morphisms over magma-like structures</a>
<a id="729" class="Comment">------------------------------------------------------------------------</a>
<a id="803" class="Keyword">module</a> <a id="MagmaMorphisms"></a><a id="810" href="Algebra.Morphism.Structures.html#810" class="Module">MagmaMorphisms</a> <a id="825" class="Symbol">(</a><a id="826" href="Algebra.Morphism.Structures.html#826" class="Bound">M₁</a> <a id="829" class="Symbol">:</a> <a id="831" href="Algebra.Bundles.Raw.html#644" class="Record">RawMagma</a> <a id="840" href="Algebra.Morphism.Structures.html#597" class="Generalizable">a</a> <a id="842" href="Algebra.Morphism.Structures.html#601" class="Generalizable">ℓ₁</a><a id="844" class="Symbol">)</a> <a id="846" class="Symbol">(</a><a id="847" href="Algebra.Morphism.Structures.html#847" class="Bound">M₂</a> <a id="850" class="Symbol">:</a> <a id="852" href="Algebra.Bundles.Raw.html#644" class="Record">RawMagma</a> <a id="861" href="Algebra.Morphism.Structures.html#599" class="Generalizable">b</a> <a id="863" href="Algebra.Morphism.Structures.html#604" class="Generalizable">ℓ₂</a><a id="865" class="Symbol">)</a> <a id="867" class="Keyword">where</a>
<a id="876" class="Keyword">open</a> <a id="881" href="Algebra.Bundles.Raw.html#644" class="Module">RawMagma</a> <a id="890" href="Algebra.Morphism.Structures.html#826" class="Bound">M₁</a> <a id="893" class="Keyword">renaming</a> <a id="902" class="Symbol">(</a><a id="903" href="Algebra.Bundles.Raw.html#725" class="Field">Carrier</a> <a id="911" class="Symbol">to</a> <a id="914" class="Field">A</a><a id="915" class="Symbol">;</a> <a id="917" href="Algebra.Bundles.Raw.html#745" class="Field Operator">_≈_</a> <a id="921" class="Symbol">to</a> <a id="924" class="Field Operator">_≈₁_</a><a id="928" class="Symbol">;</a> <a id="930" href="Algebra.Bundles.Raw.html#773" class="Field Operator">_∙_</a> <a id="934" class="Symbol">to</a> <a id="937" class="Field Operator">_∙_</a><a id="940" class="Symbol">)</a>
<a id="944" class="Keyword">open</a> <a id="949" href="Algebra.Bundles.Raw.html#644" class="Module">RawMagma</a> <a id="958" href="Algebra.Morphism.Structures.html#847" class="Bound">M₂</a> <a id="961" class="Keyword">renaming</a> <a id="970" class="Symbol">(</a><a id="971" href="Algebra.Bundles.Raw.html#725" class="Field">Carrier</a> <a id="979" class="Symbol">to</a> <a id="982" class="Field">B</a><a id="983" class="Symbol">;</a> <a id="985" href="Algebra.Bundles.Raw.html#745" class="Field Operator">_≈_</a> <a id="989" class="Symbol">to</a> <a id="992" class="Field Operator">_≈₂_</a><a id="996" class="Symbol">;</a> <a id="998" href="Algebra.Bundles.Raw.html#773" class="Field Operator">_∙_</a> <a id="1002" class="Symbol">to</a> <a id="1005" class="Field Operator">_◦_</a><a id="1008" class="Symbol">)</a>
<a id="1012" class="Keyword">open</a> <a id="1017" href="Algebra.Morphism.Definitions.html" class="Module">MorphismDefinitions</a> <a id="1037" href="Algebra.Morphism.Structures.html#914" class="Function">A</a> <a id="1039" href="Algebra.Morphism.Structures.html#982" class="Field">B</a> <a id="1041" href="Algebra.Morphism.Structures.html#992" class="Field Operator">_≈₂_</a>
<a id="1050" class="Keyword">record</a> <a id="MagmaMorphisms.IsMagmaHomomorphism"></a><a id="1057" href="Algebra.Morphism.Structures.html#1057" class="Record">IsMagmaHomomorphism</a> <a id="1077" class="Symbol">(</a><a id="1078" href="Algebra.Morphism.Structures.html#1078" class="Bound Operator">⟦_⟧</a> <a id="1082" class="Symbol">:</a> <a id="1084" href="Algebra.Morphism.Structures.html#914" class="Function">A</a> <a id="1086" class="Symbol"></a> <a id="1088" href="Algebra.Morphism.Structures.html#982" class="Field">B</a><a id="1089" class="Symbol">)</a> <a id="1091" class="Symbol">:</a> <a id="1093" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1097" class="Symbol">(</a><a id="1098" href="Algebra.Morphism.Structures.html#840" class="Bound">a</a> <a id="1100" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="1102" href="Algebra.Morphism.Structures.html#842" class="Bound">ℓ₁</a> <a id="1105" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="1107" href="Algebra.Morphism.Structures.html#863" class="Bound">ℓ₂</a><a id="1109" class="Symbol">)</a> <a id="1111" class="Keyword">where</a>
<a id="1121" class="Keyword">field</a>
<a id="MagmaMorphisms.IsMagmaHomomorphism.isRelHomomorphism"></a><a id="1133" href="Algebra.Morphism.Structures.html#1133" class="Field">isRelHomomorphism</a> <a id="1151" class="Symbol">:</a> <a id="1153" href="Relation.Binary.Morphism.Structures.html#751" class="Record">IsRelHomomorphism</a> <a id="1171" href="Algebra.Morphism.Structures.html#924" class="Function Operator">_≈₁_</a> <a id="1176" href="Algebra.Morphism.Structures.html#992" class="Field Operator">_≈₂_</a> <a id="1181" href="Algebra.Morphism.Structures.html#1078" class="Bound Operator">⟦_⟧</a>
<a id="MagmaMorphisms.IsMagmaHomomorphism.homo"></a><a id="1191" href="Algebra.Morphism.Structures.html#1191" class="Field">homo</a> <a id="1209" class="Symbol">:</a> <a id="1211" href="Algebra.Morphism.Definitions.html#852" class="Function">Homomorphic₂</a> <a id="1224" href="Algebra.Morphism.Structures.html#1078" class="Bound Operator">⟦_⟧</a> <a id="1228" href="Algebra.Morphism.Structures.html#937" class="Function Operator">_∙_</a> <a id="1232" href="Algebra.Morphism.Structures.html#1005" class="Field Operator">_◦_</a>
<a id="1241" class="Keyword">open</a> <a id="1246" href="Relation.Binary.Morphism.Structures.html#751" class="Module">IsRelHomomorphism</a> <a id="1264" href="Algebra.Morphism.Structures.html#1133" class="Field">isRelHomomorphism</a> <a id="1282" class="Keyword">public</a>
<a id="1295" class="Keyword">renaming</a> <a id="1304" class="Symbol">(</a><a id="1305" href="Relation.Binary.Morphism.Structures.html#882" class="Field">cong</a> <a id="1310" class="Symbol">to</a> <a id="1313" class="Field">⟦⟧-cong</a><a id="1320" class="Symbol">)</a>
<a id="1326" class="Keyword">record</a> <a id="MagmaMorphisms.IsMagmaMonomorphism"></a><a id="1333" href="Algebra.Morphism.Structures.html#1333" class="Record">IsMagmaMonomorphism</a> <a id="1353" class="Symbol">(</a><a id="1354" href="Algebra.Morphism.Structures.html#1354" class="Bound Operator">⟦_⟧</a> <a id="1358" class="Symbol">:</a> <a id="1360" href="Algebra.Morphism.Structures.html#914" class="Function">A</a> <a id="1362" class="Symbol"></a> <a id="1364" href="Algebra.Morphism.Structures.html#982" class="Field">B</a><a id="1365" class="Symbol">)</a> <a id="1367" class="Symbol">:</a> <a id="1369" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1373" class="Symbol">(</a><a id="1374" href="Algebra.Morphism.Structures.html#840" class="Bound">a</a> <a id="1376" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="1378" href="Algebra.Morphism.Structures.html#842" class="Bound">ℓ₁</a> <a id="1381" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="1383" href="Algebra.Morphism.Structures.html#863" class="Bound">ℓ₂</a><a id="1385" class="Symbol">)</a> <a id="1387" class="Keyword">where</a>
<a id="1397" class="Keyword">field</a>
<a id="MagmaMorphisms.IsMagmaMonomorphism.isMagmaHomomorphism"></a><a id="1409" href="Algebra.Morphism.Structures.html#1409" class="Field">isMagmaHomomorphism</a> <a id="1429" class="Symbol">:</a> <a id="1431" href="Algebra.Morphism.Structures.html#1057" class="Record">IsMagmaHomomorphism</a> <a id="1451" href="Algebra.Morphism.Structures.html#1354" class="Bound Operator">⟦_⟧</a>
<a id="MagmaMorphisms.IsMagmaMonomorphism.injective"></a><a id="1461" href="Algebra.Morphism.Structures.html#1461" class="Field">injective</a> <a id="1481" class="Symbol">:</a> <a id="1483" href="Function.Definitions.html#842" class="Function">Injective</a> <a id="1493" href="Algebra.Morphism.Structures.html#924" class="Function Operator">_≈₁_</a> <a id="1498" href="Algebra.Morphism.Structures.html#992" class="Field Operator">_≈₂_</a> <a id="1503" href="Algebra.Morphism.Structures.html#1354" class="Bound Operator">⟦_⟧</a>
<a id="1512" class="Keyword">open</a> <a id="1517" href="Algebra.Morphism.Structures.html#1057" class="Module">IsMagmaHomomorphism</a> <a id="1537" href="Algebra.Morphism.Structures.html#1409" class="Field">isMagmaHomomorphism</a> <a id="1557" class="Keyword">public</a>
<a id="MagmaMorphisms.IsMagmaMonomorphism.isRelMonomorphism"></a><a id="1569" href="Algebra.Morphism.Structures.html#1569" class="Function">isRelMonomorphism</a> <a id="1587" class="Symbol">:</a> <a id="1589" href="Relation.Binary.Morphism.Structures.html#925" class="Record">IsRelMonomorphism</a> <a id="1607" href="Algebra.Morphism.Structures.html#924" class="Function Operator">_≈₁_</a> <a id="1612" href="Algebra.Morphism.Structures.html#992" class="Field Operator">_≈₂_</a> <a id="1617" href="Algebra.Morphism.Structures.html#1354" class="Bound Operator">⟦_⟧</a>
<a id="1625" href="Algebra.Morphism.Structures.html#1569" class="Function">isRelMonomorphism</a> <a id="1643" class="Symbol">=</a> <a id="1645" class="Keyword">record</a>
<a id="1658" class="Symbol">{</a> <a id="1660" href="Relation.Binary.Morphism.Structures.html#1056" class="Field">isHomomorphism</a> <a id="1675" class="Symbol">=</a> <a id="1677" href="Algebra.Morphism.Structures.html#1133" class="Function">isRelHomomorphism</a>
<a id="1701" class="Symbol">;</a> <a id="1703" href="Relation.Binary.Morphism.Structures.html#1109" class="Field">injective</a> <a id="1718" class="Symbol">=</a> <a id="1720" href="Algebra.Morphism.Structures.html#1461" class="Field">injective</a>
<a id="1736" class="Symbol">}</a>
<a id="1742" class="Keyword">record</a> <a id="MagmaMorphisms.IsMagmaIsomorphism"></a><a id="1749" href="Algebra.Morphism.Structures.html#1749" class="Record">IsMagmaIsomorphism</a> <a id="1768" class="Symbol">(</a><a id="1769" href="Algebra.Morphism.Structures.html#1769" class="Bound Operator">⟦_⟧</a> <a id="1773" class="Symbol">:</a> <a id="1775" href="Algebra.Morphism.Structures.html#914" class="Function">A</a> <a id="1777" class="Symbol"></a> <a id="1779" href="Algebra.Morphism.Structures.html#982" class="Field">B</a><a id="1780" class="Symbol">)</a> <a id="1782" class="Symbol">:</a> <a id="1784" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1788" class="Symbol">(</a><a id="1789" href="Algebra.Morphism.Structures.html#840" class="Bound">a</a> <a id="1791" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="1793" href="Algebra.Morphism.Structures.html#861" class="Bound">b</a> <a id="1795" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="1797" href="Algebra.Morphism.Structures.html#842" class="Bound">ℓ₁</a> <a id="1800" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="1802" href="Algebra.Morphism.Structures.html#863" class="Bound">ℓ₂</a><a id="1804" class="Symbol">)</a> <a id="1806" class="Keyword">where</a>
<a id="1816" class="Keyword">field</a>
<a id="MagmaMorphisms.IsMagmaIsomorphism.isMagmaMonomorphism"></a><a id="1828" href="Algebra.Morphism.Structures.html#1828" class="Field">isMagmaMonomorphism</a> <a id="1848" class="Symbol">:</a> <a id="1850" href="Algebra.Morphism.Structures.html#1333" class="Record">IsMagmaMonomorphism</a> <a id="1870" href="Algebra.Morphism.Structures.html#1769" class="Bound Operator">⟦_⟧</a>
<a id="MagmaMorphisms.IsMagmaIsomorphism.surjective"></a><a id="1880" href="Algebra.Morphism.Structures.html#1880" class="Field">surjective</a> <a id="1900" class="Symbol">:</a> <a id="1902" href="Function.Definitions.html#919" class="Function">Surjective</a> <a id="1913" href="Algebra.Morphism.Structures.html#924" class="Function Operator">_≈₁_</a> <a id="1918" href="Algebra.Morphism.Structures.html#992" class="Field Operator">_≈₂_</a> <a id="1923" href="Algebra.Morphism.Structures.html#1769" class="Bound Operator">⟦_⟧</a>
<a id="1932" class="Keyword">open</a> <a id="1937" href="Algebra.Morphism.Structures.html#1333" class="Module">IsMagmaMonomorphism</a> <a id="1957" href="Algebra.Morphism.Structures.html#1828" class="Field">isMagmaMonomorphism</a> <a id="1977" class="Keyword">public</a>
<a id="MagmaMorphisms.IsMagmaIsomorphism.isRelIsomorphism"></a><a id="1989" href="Algebra.Morphism.Structures.html#1989" class="Function">isRelIsomorphism</a> <a id="2006" class="Symbol">:</a> <a id="2008" href="Relation.Binary.Morphism.Structures.html#1207" class="Record">IsRelIsomorphism</a> <a id="2025" href="Algebra.Morphism.Structures.html#924" class="Function Operator">_≈₁_</a> <a id="2030" href="Algebra.Morphism.Structures.html#992" class="Field Operator">_≈₂_</a> <a id="2035" href="Algebra.Morphism.Structures.html#1769" class="Bound Operator">⟦_⟧</a>
<a id="2043" href="Algebra.Morphism.Structures.html#1989" class="Function">isRelIsomorphism</a> <a id="2060" class="Symbol">=</a> <a id="2062" class="Keyword">record</a>
<a id="2075" class="Symbol">{</a> <a id="2077" href="Relation.Binary.Morphism.Structures.html#1340" class="Field">isMonomorphism</a> <a id="2092" class="Symbol">=</a> <a id="2094" href="Algebra.Morphism.Structures.html#1569" class="Function">isRelMonomorphism</a>
<a id="2118" class="Symbol">;</a> <a id="2120" href="Relation.Binary.Morphism.Structures.html#1393" class="Field">surjective</a> <a id="2135" class="Symbol">=</a> <a id="2137" href="Algebra.Morphism.Structures.html#1880" class="Field">surjective</a>
<a id="2154" class="Symbol">}</a>
<a id="2158" class="Comment">------------------------------------------------------------------------</a>
<a id="2231" class="Comment">-- Morphisms over monoid-like structures</a>
<a id="2272" class="Comment">------------------------------------------------------------------------</a>
<a id="2346" class="Keyword">module</a> <a id="MonoidMorphisms"></a><a id="2353" href="Algebra.Morphism.Structures.html#2353" class="Module">MonoidMorphisms</a> <a id="2369" class="Symbol">(</a><a id="2370" href="Algebra.Morphism.Structures.html#2370" class="Bound">M₁</a> <a id="2373" class="Symbol">:</a> <a id="2375" href="Algebra.Bundles.Raw.html#1105" class="Record">RawMonoid</a> <a id="2385" href="Algebra.Morphism.Structures.html#597" class="Generalizable">a</a> <a id="2387" href="Algebra.Morphism.Structures.html#601" class="Generalizable">ℓ₁</a><a id="2389" class="Symbol">)</a> <a id="2391" class="Symbol">(</a><a id="2392" href="Algebra.Morphism.Structures.html#2392" class="Bound">M₂</a> <a id="2395" class="Symbol">:</a> <a id="2397" href="Algebra.Bundles.Raw.html#1105" class="Record">RawMonoid</a> <a id="2407" href="Algebra.Morphism.Structures.html#599" class="Generalizable">b</a> <a id="2409" href="Algebra.Morphism.Structures.html#604" class="Generalizable">ℓ₂</a><a id="2411" class="Symbol">)</a> <a id="2413" class="Keyword">where</a>
<a id="2422" class="Keyword">open</a> <a id="2427" href="Algebra.Bundles.Raw.html#1105" class="Module">RawMonoid</a> <a id="2437" href="Algebra.Morphism.Structures.html#2370" class="Bound">M₁</a> <a id="2440" class="Keyword">renaming</a> <a id="2449" class="Symbol">(</a><a id="2450" href="Algebra.Bundles.Raw.html#1187" class="Field">Carrier</a> <a id="2458" class="Symbol">to</a> <a id="2461" class="Field">A</a><a id="2462" class="Symbol">;</a> <a id="2464" href="Algebra.Bundles.Raw.html#1207" class="Field Operator">_≈_</a> <a id="2468" class="Symbol">to</a> <a id="2471" class="Field Operator">_≈₁_</a><a id="2475" class="Symbol">;</a> <a id="2477" href="Algebra.Bundles.Raw.html#1235" class="Field Operator">_∙_</a> <a id="2481" class="Symbol">to</a> <a id="2484" class="Field Operator">_∙_</a><a id="2487" class="Symbol">;</a> <a id="2489" href="Algebra.Bundles.Raw.html#1261" class="Field">ε</a> <a id="2491" class="Symbol">to</a> <a id="2494" class="Field">ε₁</a><a id="2496" class="Symbol">)</a>
<a id="2500" class="Keyword">open</a> <a id="2505" href="Algebra.Bundles.Raw.html#1105" class="Module">RawMonoid</a> <a id="2515" href="Algebra.Morphism.Structures.html#2392" class="Bound">M₂</a> <a id="2518" class="Keyword">renaming</a> <a id="2527" class="Symbol">(</a><a id="2528" href="Algebra.Bundles.Raw.html#1187" class="Field">Carrier</a> <a id="2536" class="Symbol">to</a> <a id="2539" class="Field">B</a><a id="2540" class="Symbol">;</a> <a id="2542" href="Algebra.Bundles.Raw.html#1207" class="Field Operator">_≈_</a> <a id="2546" class="Symbol">to</a> <a id="2549" class="Field Operator">_≈₂_</a><a id="2553" class="Symbol">;</a> <a id="2555" href="Algebra.Bundles.Raw.html#1235" class="Field Operator">_∙_</a> <a id="2559" class="Symbol">to</a> <a id="2562" class="Field Operator">_◦_</a><a id="2565" class="Symbol">;</a> <a id="2567" href="Algebra.Bundles.Raw.html#1261" class="Field">ε</a> <a id="2569" class="Symbol">to</a> <a id="2572" class="Field">ε₂</a><a id="2574" class="Symbol">)</a>
<a id="2578" class="Keyword">open</a> <a id="2583" href="Algebra.Morphism.Definitions.html" class="Module">MorphismDefinitions</a> <a id="2603" href="Algebra.Morphism.Structures.html#2461" class="Function">A</a> <a id="2605" href="Algebra.Morphism.Structures.html#2539" class="Field">B</a> <a id="2607" href="Algebra.Morphism.Structures.html#2549" class="Field Operator">_≈₂_</a>
<a id="2614" class="Keyword">open</a> <a id="2619" href="Algebra.Morphism.Structures.html#810" class="Module">MagmaMorphisms</a> <a id="2634" class="Symbol">(</a><a id="2635" href="Algebra.Bundles.Raw.html#1282" class="Function">RawMonoid.rawMagma</a> <a id="2654" href="Algebra.Morphism.Structures.html#2370" class="Bound">M₁</a><a id="2656" class="Symbol">)</a> <a id="2658" class="Symbol">(</a><a id="2659" href="Algebra.Bundles.Raw.html#1282" class="Function">RawMonoid.rawMagma</a> <a id="2678" href="Algebra.Morphism.Structures.html#2392" class="Bound">M₂</a><a id="2680" class="Symbol">)</a>
<a id="2686" class="Keyword">record</a> <a id="MonoidMorphisms.IsMonoidHomomorphism"></a><a id="2693" href="Algebra.Morphism.Structures.html#2693" class="Record">IsMonoidHomomorphism</a> <a id="2714" class="Symbol">(</a><a id="2715" href="Algebra.Morphism.Structures.html#2715" class="Bound Operator">⟦_⟧</a> <a id="2719" class="Symbol">:</a> <a id="2721" href="Algebra.Morphism.Structures.html#2461" class="Function">A</a> <a id="2723" class="Symbol"></a> <a id="2725" href="Algebra.Morphism.Structures.html#2539" class="Field">B</a><a id="2726" class="Symbol">)</a> <a id="2728" class="Symbol">:</a> <a id="2730" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2734" class="Symbol">(</a><a id="2735" href="Algebra.Morphism.Structures.html#2385" class="Bound">a</a> <a id="2737" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="2739" href="Algebra.Morphism.Structures.html#2387" class="Bound">ℓ₁</a> <a id="2742" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="2744" href="Algebra.Morphism.Structures.html#2409" class="Bound">ℓ₂</a><a id="2746" class="Symbol">)</a> <a id="2748" class="Keyword">where</a>
<a id="2758" class="Keyword">field</a>
<a id="MonoidMorphisms.IsMonoidHomomorphism.isMagmaHomomorphism"></a><a id="2770" href="Algebra.Morphism.Structures.html#2770" class="Field">isMagmaHomomorphism</a> <a id="2790" class="Symbol">:</a> <a id="2792" href="Algebra.Morphism.Structures.html#1057" class="Record">IsMagmaHomomorphism</a> <a id="2812" href="Algebra.Morphism.Structures.html#2715" class="Bound Operator">⟦_⟧</a>
<a id="MonoidMorphisms.IsMonoidHomomorphism.ε-homo"></a><a id="2822" href="Algebra.Morphism.Structures.html#2822" class="Field">ε-homo</a> <a id="2842" class="Symbol">:</a> <a id="2844" href="Algebra.Morphism.Definitions.html#680" class="Function">Homomorphic₀</a> <a id="2857" href="Algebra.Morphism.Structures.html#2715" class="Bound Operator">⟦_⟧</a> <a id="2861" href="Algebra.Morphism.Structures.html#2494" class="Function">ε₁</a> <a id="2864" href="Algebra.Morphism.Structures.html#2572" class="Field">ε₂</a>
<a id="2872" class="Keyword">open</a> <a id="2877" href="Algebra.Morphism.Structures.html#1057" class="Module">IsMagmaHomomorphism</a> <a id="2897" href="Algebra.Morphism.Structures.html#2770" class="Field">isMagmaHomomorphism</a> <a id="2917" class="Keyword">public</a>
<a id="2928" class="Keyword">record</a> <a id="MonoidMorphisms.IsMonoidMonomorphism"></a><a id="2935" href="Algebra.Morphism.Structures.html#2935" class="Record">IsMonoidMonomorphism</a> <a id="2956" class="Symbol">(</a><a id="2957" href="Algebra.Morphism.Structures.html#2957" class="Bound Operator">⟦_⟧</a> <a id="2961" class="Symbol">:</a> <a id="2963" href="Algebra.Morphism.Structures.html#2461" class="Function">A</a> <a id="2965" class="Symbol"></a> <a id="2967" href="Algebra.Morphism.Structures.html#2539" class="Field">B</a><a id="2968" class="Symbol">)</a> <a id="2970" class="Symbol">:</a> <a id="2972" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2976" class="Symbol">(</a><a id="2977" href="Algebra.Morphism.Structures.html#2385" class="Bound">a</a> <a id="2979" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="2981" href="Algebra.Morphism.Structures.html#2387" class="Bound">ℓ₁</a> <a id="2984" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="2986" href="Algebra.Morphism.Structures.html#2409" class="Bound">ℓ₂</a><a id="2988" class="Symbol">)</a> <a id="2990" class="Keyword">where</a>
<a id="3000" class="Keyword">field</a>
<a id="MonoidMorphisms.IsMonoidMonomorphism.isMonoidHomomorphism"></a><a id="3012" href="Algebra.Morphism.Structures.html#3012" class="Field">isMonoidHomomorphism</a> <a id="3033" class="Symbol">:</a> <a id="3035" href="Algebra.Morphism.Structures.html#2693" class="Record">IsMonoidHomomorphism</a> <a id="3056" href="Algebra.Morphism.Structures.html#2957" class="Bound Operator">⟦_⟧</a>
<a id="MonoidMorphisms.IsMonoidMonomorphism.injective"></a><a id="3066" href="Algebra.Morphism.Structures.html#3066" class="Field">injective</a> <a id="3087" class="Symbol">:</a> <a id="3089" href="Function.Definitions.html#842" class="Function">Injective</a> <a id="3099" href="Algebra.Morphism.Structures.html#2471" class="Function Operator">_≈₁_</a> <a id="3104" href="Algebra.Morphism.Structures.html#2549" class="Field Operator">_≈₂_</a> <a id="3109" href="Algebra.Morphism.Structures.html#2957" class="Bound Operator">⟦_⟧</a>
<a id="3118" class="Keyword">open</a> <a id="3123" href="Algebra.Morphism.Structures.html#2693" class="Module">IsMonoidHomomorphism</a> <a id="3144" href="Algebra.Morphism.Structures.html#3012" class="Field">isMonoidHomomorphism</a> <a id="3165" class="Keyword">public</a>
<a id="MonoidMorphisms.IsMonoidMonomorphism.isMagmaMonomorphism"></a><a id="3177" href="Algebra.Morphism.Structures.html#3177" class="Function">isMagmaMonomorphism</a> <a id="3197" class="Symbol">:</a> <a id="3199" href="Algebra.Morphism.Structures.html#1333" class="Record">IsMagmaMonomorphism</a> <a id="3219" href="Algebra.Morphism.Structures.html#2957" class="Bound Operator">⟦_⟧</a>
<a id="3227" href="Algebra.Morphism.Structures.html#3177" class="Function">isMagmaMonomorphism</a> <a id="3247" class="Symbol">=</a> <a id="3249" class="Keyword">record</a>
<a id="3262" class="Symbol">{</a> <a id="3264" href="Algebra.Morphism.Structures.html#1409" class="Field">isMagmaHomomorphism</a> <a id="3284" class="Symbol">=</a> <a id="3286" href="Algebra.Morphism.Structures.html#2770" class="Function">isMagmaHomomorphism</a>
<a id="3312" class="Symbol">;</a> <a id="3314" href="Algebra.Morphism.Structures.html#1461" class="Field">injective</a> <a id="3334" class="Symbol">=</a> <a id="3336" href="Algebra.Morphism.Structures.html#3066" class="Field">injective</a>
<a id="3352" class="Symbol">}</a>
<a id="3359" class="Keyword">open</a> <a id="3364" href="Algebra.Morphism.Structures.html#1333" class="Module">IsMagmaMonomorphism</a> <a id="3384" href="Algebra.Morphism.Structures.html#3177" class="Function">isMagmaMonomorphism</a> <a id="3404" class="Keyword">public</a>
<a id="3417" class="Keyword">using</a> <a id="3423" class="Symbol">(</a><a id="3424" href="Algebra.Morphism.Structures.html#1569" class="Function">isRelMonomorphism</a><a id="3441" class="Symbol">)</a>
<a id="3447" class="Keyword">record</a> <a id="MonoidMorphisms.IsMonoidIsomorphism"></a><a id="3454" href="Algebra.Morphism.Structures.html#3454" class="Record">IsMonoidIsomorphism</a> <a id="3474" class="Symbol">(</a><a id="3475" href="Algebra.Morphism.Structures.html#3475" class="Bound Operator">⟦_⟧</a> <a id="3479" class="Symbol">:</a> <a id="3481" href="Algebra.Morphism.Structures.html#2461" class="Function">A</a> <a id="3483" class="Symbol"></a> <a id="3485" href="Algebra.Morphism.Structures.html#2539" class="Field">B</a><a id="3486" class="Symbol">)</a> <a id="3488" class="Symbol">:</a> <a id="3490" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3494" class="Symbol">(</a><a id="3495" href="Algebra.Morphism.Structures.html#2385" class="Bound">a</a> <a id="3497" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="3499" href="Algebra.Morphism.Structures.html#2407" class="Bound">b</a> <a id="3501" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="3503" href="Algebra.Morphism.Structures.html#2387" class="Bound">ℓ₁</a> <a id="3506" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="3508" href="Algebra.Morphism.Structures.html#2409" class="Bound">ℓ₂</a><a id="3510" class="Symbol">)</a> <a id="3512" class="Keyword">where</a>
<a id="3522" class="Keyword">field</a>
<a id="MonoidMorphisms.IsMonoidIsomorphism.isMonoidMonomorphism"></a><a id="3534" href="Algebra.Morphism.Structures.html#3534" class="Field">isMonoidMonomorphism</a> <a id="3555" class="Symbol">:</a> <a id="3557" href="Algebra.Morphism.Structures.html#2935" class="Record">IsMonoidMonomorphism</a> <a id="3578" href="Algebra.Morphism.Structures.html#3475" class="Bound Operator">⟦_⟧</a>
<a id="MonoidMorphisms.IsMonoidIsomorphism.surjective"></a><a id="3588" href="Algebra.Morphism.Structures.html#3588" class="Field">surjective</a> <a id="3609" class="Symbol">:</a> <a id="3611" href="Function.Definitions.html#919" class="Function">Surjective</a> <a id="3622" href="Algebra.Morphism.Structures.html#2471" class="Function Operator">_≈₁_</a> <a id="3627" href="Algebra.Morphism.Structures.html#2549" class="Field Operator">_≈₂_</a> <a id="3632" href="Algebra.Morphism.Structures.html#3475" class="Bound Operator">⟦_⟧</a>
<a id="3641" class="Keyword">open</a> <a id="3646" href="Algebra.Morphism.Structures.html#2935" class="Module">IsMonoidMonomorphism</a> <a id="3667" href="Algebra.Morphism.Structures.html#3534" class="Field">isMonoidMonomorphism</a> <a id="3688" class="Keyword">public</a>
<a id="MonoidMorphisms.IsMonoidIsomorphism.isMagmaIsomorphism"></a><a id="3700" href="Algebra.Morphism.Structures.html#3700" class="Function">isMagmaIsomorphism</a> <a id="3719" class="Symbol">:</a> <a id="3721" href="Algebra.Morphism.Structures.html#1749" class="Record">IsMagmaIsomorphism</a> <a id="3740" href="Algebra.Morphism.Structures.html#3475" class="Bound Operator">⟦_⟧</a>
<a id="3748" href="Algebra.Morphism.Structures.html#3700" class="Function">isMagmaIsomorphism</a> <a id="3767" class="Symbol">=</a> <a id="3769" class="Keyword">record</a>
<a id="3782" class="Symbol">{</a> <a id="3784" href="Algebra.Morphism.Structures.html#1828" class="Field">isMagmaMonomorphism</a> <a id="3804" class="Symbol">=</a> <a id="3806" href="Algebra.Morphism.Structures.html#3177" class="Function">isMagmaMonomorphism</a>
<a id="3832" class="Symbol">;</a> <a id="3834" href="Algebra.Morphism.Structures.html#1880" class="Field">surjective</a> <a id="3854" class="Symbol">=</a> <a id="3856" href="Algebra.Morphism.Structures.html#3588" class="Field">surjective</a>
<a id="3873" class="Symbol">}</a>
<a id="3880" class="Keyword">open</a> <a id="3885" href="Algebra.Morphism.Structures.html#1749" class="Module">IsMagmaIsomorphism</a> <a id="3904" href="Algebra.Morphism.Structures.html#3700" class="Function">isMagmaIsomorphism</a> <a id="3923" class="Keyword">public</a>
<a id="3936" class="Keyword">using</a> <a id="3942" class="Symbol">(</a><a id="3943" href="Algebra.Morphism.Structures.html#1989" class="Function">isRelIsomorphism</a><a id="3959" class="Symbol">)</a>
<a id="3963" class="Comment">------------------------------------------------------------------------</a>
<a id="4036" class="Comment">-- Morphisms over group-like structures</a>
<a id="4076" class="Comment">------------------------------------------------------------------------</a>
<a id="4150" class="Keyword">module</a> <a id="GroupMorphisms"></a><a id="4157" href="Algebra.Morphism.Structures.html#4157" class="Module">GroupMorphisms</a> <a id="4172" class="Symbol">(</a><a id="4173" href="Algebra.Morphism.Structures.html#4173" class="Bound">G₁</a> <a id="4176" class="Symbol">:</a> <a id="4178" href="Algebra.Bundles.Raw.html#1638" class="Record">RawGroup</a> <a id="4187" href="Algebra.Morphism.Structures.html#597" class="Generalizable">a</a> <a id="4189" href="Algebra.Morphism.Structures.html#601" class="Generalizable">ℓ₁</a><a id="4191" class="Symbol">)</a> <a id="4193" class="Symbol">(</a><a id="4194" href="Algebra.Morphism.Structures.html#4194" class="Bound">G₂</a> <a id="4197" class="Symbol">:</a> <a id="4199" href="Algebra.Bundles.Raw.html#1638" class="Record">RawGroup</a> <a id="4208" href="Algebra.Morphism.Structures.html#599" class="Generalizable">b</a> <a id="4210" href="Algebra.Morphism.Structures.html#604" class="Generalizable">ℓ₂</a><a id="4212" class="Symbol">)</a> <a id="4214" class="Keyword">where</a>
<a id="4223" class="Keyword">open</a> <a id="4228" href="Algebra.Bundles.Raw.html#1638" class="Module">RawGroup</a> <a id="4237" href="Algebra.Morphism.Structures.html#4173" class="Bound">G₁</a> <a id="4240" class="Keyword">renaming</a>
<a id="4253" class="Symbol">(</a><a id="4254" href="Algebra.Bundles.Raw.html#1734" class="Field">Carrier</a> <a id="4262" class="Symbol">to</a> <a id="4265" class="Field">A</a><a id="4266" class="Symbol">;</a> <a id="4268" href="Algebra.Bundles.Raw.html#1754" class="Field Operator">_≈_</a> <a id="4272" class="Symbol">to</a> <a id="4275" class="Field Operator">_≈₁_</a><a id="4279" class="Symbol">;</a> <a id="4281" href="Algebra.Bundles.Raw.html#1782" class="Field Operator">_∙_</a> <a id="4285" class="Symbol">to</a> <a id="4288" class="Field Operator">_∙_</a><a id="4291" class="Symbol">;</a> <a id="4293" href="Algebra.Bundles.Raw.html#1830" class="Field Operator">_⁻¹</a> <a id="4297" class="Symbol">to</a> <a id="4300" class="Field Operator">_⁻¹₁</a><a id="4304" class="Symbol">;</a> <a id="4306" href="Algebra.Bundles.Raw.html#1808" class="Field">ε</a> <a id="4308" class="Symbol">to</a> <a id="4311" class="Field">ε₁</a><a id="4313" class="Symbol">)</a>
<a id="4317" class="Keyword">open</a> <a id="4322" href="Algebra.Bundles.Raw.html#1638" class="Module">RawGroup</a> <a id="4331" href="Algebra.Morphism.Structures.html#4194" class="Bound">G₂</a> <a id="4334" class="Keyword">renaming</a>
<a id="4347" class="Symbol">(</a><a id="4348" href="Algebra.Bundles.Raw.html#1734" class="Field">Carrier</a> <a id="4356" class="Symbol">to</a> <a id="4359" class="Field">B</a><a id="4360" class="Symbol">;</a> <a id="4362" href="Algebra.Bundles.Raw.html#1754" class="Field Operator">_≈_</a> <a id="4366" class="Symbol">to</a> <a id="4369" class="Field Operator">_≈₂_</a><a id="4373" class="Symbol">;</a> <a id="4375" href="Algebra.Bundles.Raw.html#1782" class="Field Operator">_∙_</a> <a id="4379" class="Symbol">to</a> <a id="4382" class="Field Operator">_◦_</a><a id="4385" class="Symbol">;</a> <a id="4387" href="Algebra.Bundles.Raw.html#1830" class="Field Operator">_⁻¹</a> <a id="4391" class="Symbol">to</a> <a id="4394" class="Field Operator">_⁻¹₂</a><a id="4398" class="Symbol">;</a> <a id="4400" href="Algebra.Bundles.Raw.html#1808" class="Field">ε</a> <a id="4402" class="Symbol">to</a> <a id="4405" class="Field">ε₂</a><a id="4407" class="Symbol">)</a>
<a id="4411" class="Keyword">open</a> <a id="4416" href="Algebra.Morphism.Definitions.html" class="Module">MorphismDefinitions</a> <a id="4436" href="Algebra.Morphism.Structures.html#4265" class="Function">A</a> <a id="4438" href="Algebra.Morphism.Structures.html#4359" class="Field">B</a> <a id="4440" href="Algebra.Morphism.Structures.html#4369" class="Field Operator">_≈₂_</a>
<a id="4447" class="Keyword">open</a> <a id="4452" href="Algebra.Morphism.Structures.html#810" class="Module">MagmaMorphisms</a> <a id="4468" class="Symbol">(</a><a id="4469" href="Algebra.Bundles.Raw.html#1282" class="Function">RawGroup.rawMagma</a> <a id="4488" href="Algebra.Morphism.Structures.html#4173" class="Bound">G₁</a><a id="4490" class="Symbol">)</a> <a id="4492" class="Symbol">(</a><a id="4493" href="Algebra.Bundles.Raw.html#1282" class="Function">RawGroup.rawMagma</a> <a id="4512" href="Algebra.Morphism.Structures.html#4194" class="Bound">G₂</a><a id="4514" class="Symbol">)</a>
<a id="4518" class="Keyword">open</a> <a id="4523" href="Algebra.Morphism.Structures.html#2353" class="Module">MonoidMorphisms</a> <a id="4539" class="Symbol">(</a><a id="4540" href="Algebra.Bundles.Raw.html#1855" class="Function">RawGroup.rawMonoid</a> <a id="4559" href="Algebra.Morphism.Structures.html#4173" class="Bound">G₁</a><a id="4561" class="Symbol">)</a> <a id="4563" class="Symbol">(</a><a id="4564" href="Algebra.Bundles.Raw.html#1855" class="Function">RawGroup.rawMonoid</a> <a id="4583" href="Algebra.Morphism.Structures.html#4194" class="Bound">G₂</a><a id="4585" class="Symbol">)</a>
<a id="4591" class="Keyword">record</a> <a id="GroupMorphisms.IsGroupHomomorphism"></a><a id="4598" href="Algebra.Morphism.Structures.html#4598" class="Record">IsGroupHomomorphism</a> <a id="4618" class="Symbol">(</a><a id="4619" href="Algebra.Morphism.Structures.html#4619" class="Bound Operator">⟦_⟧</a> <a id="4623" class="Symbol">:</a> <a id="4625" href="Algebra.Morphism.Structures.html#4265" class="Function">A</a> <a id="4627" class="Symbol"></a> <a id="4629" href="Algebra.Morphism.Structures.html#4359" class="Field">B</a><a id="4630" class="Symbol">)</a> <a id="4632" class="Symbol">:</a> <a id="4634" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="4638" class="Symbol">(</a><a id="4639" href="Algebra.Morphism.Structures.html#4187" class="Bound">a</a> <a id="4641" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="4643" href="Algebra.Morphism.Structures.html#4189" class="Bound">ℓ₁</a> <a id="4646" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="4648" href="Algebra.Morphism.Structures.html#4210" class="Bound">ℓ₂</a><a id="4650" class="Symbol">)</a> <a id="4652" class="Keyword">where</a>
<a id="4662" class="Keyword">field</a>
<a id="GroupMorphisms.IsGroupHomomorphism.isMonoidHomomorphism"></a><a id="4674" href="Algebra.Morphism.Structures.html#4674" class="Field">isMonoidHomomorphism</a> <a id="4695" class="Symbol">:</a> <a id="4697" href="Algebra.Morphism.Structures.html#2693" class="Record">IsMonoidHomomorphism</a> <a id="4718" href="Algebra.Morphism.Structures.html#4619" class="Bound Operator">⟦_⟧</a>
<a id="GroupMorphisms.IsGroupHomomorphism.⁻¹-homo"></a><a id="4728" href="Algebra.Morphism.Structures.html#4728" class="Field">⁻¹-homo</a> <a id="4749" class="Symbol">:</a> <a id="4751" href="Algebra.Morphism.Definitions.html#753" class="Function">Homomorphic₁</a> <a id="4764" href="Algebra.Morphism.Structures.html#4619" class="Bound Operator">⟦_⟧</a> <a id="4768" href="Algebra.Morphism.Structures.html#4300" class="Function Operator">_⁻¹₁</a> <a id="4773" href="Algebra.Morphism.Structures.html#4394" class="Field Operator">_⁻¹₂</a>
<a id="4783" class="Keyword">open</a> <a id="4788" href="Algebra.Morphism.Structures.html#2693" class="Module">IsMonoidHomomorphism</a> <a id="4809" href="Algebra.Morphism.Structures.html#4674" class="Field">isMonoidHomomorphism</a> <a id="4830" class="Keyword">public</a>
<a id="4841" class="Keyword">record</a> <a id="GroupMorphisms.IsGroupMonomorphism"></a><a id="4848" href="Algebra.Morphism.Structures.html#4848" class="Record">IsGroupMonomorphism</a> <a id="4868" class="Symbol">(</a><a id="4869" href="Algebra.Morphism.Structures.html#4869" class="Bound Operator">⟦_⟧</a> <a id="4873" class="Symbol">:</a> <a id="4875" href="Algebra.Morphism.Structures.html#4265" class="Function">A</a> <a id="4877" class="Symbol"></a> <a id="4879" href="Algebra.Morphism.Structures.html#4359" class="Field">B</a><a id="4880" class="Symbol">)</a> <a id="4882" class="Symbol">:</a> <a id="4884" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="4888" class="Symbol">(</a><a id="4889" href="Algebra.Morphism.Structures.html#4187" class="Bound">a</a> <a id="4891" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="4893" href="Algebra.Morphism.Structures.html#4189" class="Bound">ℓ₁</a> <a id="4896" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="4898" href="Algebra.Morphism.Structures.html#4210" class="Bound">ℓ₂</a><a id="4900" class="Symbol">)</a> <a id="4902" class="Keyword">where</a>
<a id="4912" class="Keyword">field</a>
<a id="GroupMorphisms.IsGroupMonomorphism.isGroupHomomorphism"></a><a id="4924" href="Algebra.Morphism.Structures.html#4924" class="Field">isGroupHomomorphism</a> <a id="4944" class="Symbol">:</a> <a id="4946" href="Algebra.Morphism.Structures.html#4598" class="Record">IsGroupHomomorphism</a> <a id="4966" href="Algebra.Morphism.Structures.html#4869" class="Bound Operator">⟦_⟧</a>
<a id="GroupMorphisms.IsGroupMonomorphism.injective"></a><a id="4976" href="Algebra.Morphism.Structures.html#4976" class="Field">injective</a> <a id="4996" class="Symbol">:</a> <a id="4998" href="Function.Definitions.html#842" class="Function">Injective</a> <a id="5008" href="Algebra.Morphism.Structures.html#4275" class="Function Operator">_≈₁_</a> <a id="5013" href="Algebra.Morphism.Structures.html#4369" class="Field Operator">_≈₂_</a> <a id="5018" href="Algebra.Morphism.Structures.html#4869" class="Bound Operator">⟦_⟧</a>
<a id="5027" class="Keyword">open</a> <a id="5032" href="Algebra.Morphism.Structures.html#4598" class="Module">IsGroupHomomorphism</a> <a id="5052" href="Algebra.Morphism.Structures.html#4924" class="Field">isGroupHomomorphism</a> <a id="5072" class="Keyword">public</a>
<a id="5085" class="Keyword">renaming</a> <a id="5094" class="Symbol">(</a><a id="5095" href="Algebra.Morphism.Structures.html#1191" class="Function">homo</a> <a id="5100" class="Symbol">to</a> <a id="5103" class="Function">∙-homo</a><a id="5109" class="Symbol">)</a>
<a id="GroupMorphisms.IsGroupMonomorphism.isMonoidMonomorphism"></a><a id="5116" href="Algebra.Morphism.Structures.html#5116" class="Function">isMonoidMonomorphism</a> <a id="5137" class="Symbol">:</a> <a id="5139" href="Algebra.Morphism.Structures.html#2935" class="Record">IsMonoidMonomorphism</a> <a id="5160" href="Algebra.Morphism.Structures.html#4869" class="Bound Operator">⟦_⟧</a>
<a id="5168" href="Algebra.Morphism.Structures.html#5116" class="Function">isMonoidMonomorphism</a> <a id="5189" class="Symbol">=</a> <a id="5191" class="Keyword">record</a>
<a id="5204" class="Symbol">{</a> <a id="5206" href="Algebra.Morphism.Structures.html#3012" class="Field">isMonoidHomomorphism</a> <a id="5227" class="Symbol">=</a> <a id="5229" href="Algebra.Morphism.Structures.html#4674" class="Function">isMonoidHomomorphism</a>
<a id="5256" class="Symbol">;</a> <a id="5258" href="Algebra.Morphism.Structures.html#3066" class="Field">injective</a> <a id="5279" class="Symbol">=</a> <a id="5281" href="Algebra.Morphism.Structures.html#4976" class="Field">injective</a>
<a id="5297" class="Symbol">}</a>
<a id="5304" class="Keyword">open</a> <a id="5309" href="Algebra.Morphism.Structures.html#2935" class="Module">IsMonoidMonomorphism</a> <a id="5330" href="Algebra.Morphism.Structures.html#5116" class="Function">isMonoidMonomorphism</a> <a id="5351" class="Keyword">public</a>
<a id="5364" class="Keyword">using</a> <a id="5370" class="Symbol">(</a><a id="5371" href="Algebra.Morphism.Structures.html#1569" class="Function">isRelMonomorphism</a><a id="5388" class="Symbol">;</a> <a id="5390" href="Algebra.Morphism.Structures.html#3177" class="Function">isMagmaMonomorphism</a><a id="5409" class="Symbol">)</a>
<a id="5415" class="Keyword">record</a> <a id="GroupMorphisms.IsGroupIsomorphism"></a><a id="5422" href="Algebra.Morphism.Structures.html#5422" class="Record">IsGroupIsomorphism</a> <a id="5441" class="Symbol">(</a><a id="5442" href="Algebra.Morphism.Structures.html#5442" class="Bound Operator">⟦_⟧</a> <a id="5446" class="Symbol">:</a> <a id="5448" href="Algebra.Morphism.Structures.html#4265" class="Function">A</a> <a id="5450" class="Symbol"></a> <a id="5452" href="Algebra.Morphism.Structures.html#4359" class="Field">B</a><a id="5453" class="Symbol">)</a> <a id="5455" class="Symbol">:</a> <a id="5457" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="5461" class="Symbol">(</a><a id="5462" href="Algebra.Morphism.Structures.html#4187" class="Bound">a</a> <a id="5464" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="5466" href="Algebra.Morphism.Structures.html#4208" class="Bound">b</a> <a id="5468" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="5470" href="Algebra.Morphism.Structures.html#4189" class="Bound">ℓ₁</a> <a id="5473" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="5475" href="Algebra.Morphism.Structures.html#4210" class="Bound">ℓ₂</a><a id="5477" class="Symbol">)</a> <a id="5479" class="Keyword">where</a>
<a id="5489" class="Keyword">field</a>
<a id="GroupMorphisms.IsGroupIsomorphism.isGroupMonomorphism"></a><a id="5501" href="Algebra.Morphism.Structures.html#5501" class="Field">isGroupMonomorphism</a> <a id="5521" class="Symbol">:</a> <a id="5523" href="Algebra.Morphism.Structures.html#4848" class="Record">IsGroupMonomorphism</a> <a id="5543" href="Algebra.Morphism.Structures.html#5442" class="Bound Operator">⟦_⟧</a>
<a id="GroupMorphisms.IsGroupIsomorphism.surjective"></a><a id="5553" href="Algebra.Morphism.Structures.html#5553" class="Field">surjective</a> <a id="5573" class="Symbol">:</a> <a id="5575" href="Function.Definitions.html#919" class="Function">Surjective</a> <a id="5586" href="Algebra.Morphism.Structures.html#4275" class="Function Operator">_≈₁_</a> <a id="5591" href="Algebra.Morphism.Structures.html#4369" class="Field Operator">_≈₂_</a> <a id="5596" href="Algebra.Morphism.Structures.html#5442" class="Bound Operator">⟦_⟧</a>
<a id="5605" class="Keyword">open</a> <a id="5610" href="Algebra.Morphism.Structures.html#4848" class="Module">IsGroupMonomorphism</a> <a id="5630" href="Algebra.Morphism.Structures.html#5501" class="Field">isGroupMonomorphism</a> <a id="5650" class="Keyword">public</a>
<a id="GroupMorphisms.IsGroupIsomorphism.isMonoidIsomorphism"></a><a id="5662" href="Algebra.Morphism.Structures.html#5662" class="Function">isMonoidIsomorphism</a> <a id="5682" class="Symbol">:</a> <a id="5684" href="Algebra.Morphism.Structures.html#3454" class="Record">IsMonoidIsomorphism</a> <a id="5704" href="Algebra.Morphism.Structures.html#5442" class="Bound Operator">⟦_⟧</a>
<a id="5712" href="Algebra.Morphism.Structures.html#5662" class="Function">isMonoidIsomorphism</a> <a id="5732" class="Symbol">=</a> <a id="5734" class="Keyword">record</a>
<a id="5747" class="Symbol">{</a> <a id="5749" href="Algebra.Morphism.Structures.html#3534" class="Field">isMonoidMonomorphism</a> <a id="5770" class="Symbol">=</a> <a id="5772" href="Algebra.Morphism.Structures.html#5116" class="Function">isMonoidMonomorphism</a>
<a id="5799" class="Symbol">;</a> <a id="5801" href="Algebra.Morphism.Structures.html#3588" class="Field">surjective</a> <a id="5822" class="Symbol">=</a> <a id="5824" href="Algebra.Morphism.Structures.html#5553" class="Field">surjective</a>
<a id="5841" class="Symbol">}</a>
<a id="5848" class="Keyword">open</a> <a id="5853" href="Algebra.Morphism.Structures.html#3454" class="Module">IsMonoidIsomorphism</a> <a id="5873" href="Algebra.Morphism.Structures.html#5662" class="Function">isMonoidIsomorphism</a> <a id="5893" class="Keyword">public</a>
<a id="5906" class="Keyword">using</a> <a id="5912" class="Symbol">(</a><a id="5913" href="Algebra.Morphism.Structures.html#1989" class="Function">isRelIsomorphism</a><a id="5929" class="Symbol">;</a> <a id="5931" href="Algebra.Morphism.Structures.html#3700" class="Function">isMagmaIsomorphism</a><a id="5949" class="Symbol">)</a>
<a id="5953" class="Comment">------------------------------------------------------------------------</a>
<a id="6026" class="Comment">-- Morphisms over near-semiring-like structures</a>
<a id="6074" class="Comment">------------------------------------------------------------------------</a>
<a id="6148" class="Keyword">module</a> <a id="NearSemiringMorphisms"></a><a id="6155" href="Algebra.Morphism.Structures.html#6155" class="Module">NearSemiringMorphisms</a> <a id="6177" class="Symbol">(</a><a id="6178" href="Algebra.Morphism.Structures.html#6178" class="Bound">R₁</a> <a id="6181" class="Symbol">:</a> <a id="6183" href="Algebra.Bundles.Raw.html#2222" class="Record">RawNearSemiring</a> <a id="6199" href="Algebra.Morphism.Structures.html#597" class="Generalizable">a</a> <a id="6201" href="Algebra.Morphism.Structures.html#601" class="Generalizable">ℓ₁</a><a id="6203" class="Symbol">)</a> <a id="6205" class="Symbol">(</a><a id="6206" href="Algebra.Morphism.Structures.html#6206" class="Bound">R₂</a> <a id="6209" class="Symbol">:</a> <a id="6211" href="Algebra.Bundles.Raw.html#2222" class="Record">RawNearSemiring</a> <a id="6227" href="Algebra.Morphism.Structures.html#599" class="Generalizable">b</a> <a id="6229" href="Algebra.Morphism.Structures.html#604" class="Generalizable">ℓ₂</a><a id="6231" class="Symbol">)</a> <a id="6233" class="Keyword">where</a>
<a id="6242" class="Keyword">open</a> <a id="6247" href="Algebra.Bundles.Raw.html#2222" class="Module">RawNearSemiring</a> <a id="6263" href="Algebra.Morphism.Structures.html#6178" class="Bound">R₁</a> <a id="6266" class="Keyword">renaming</a>
<a id="6279" class="Symbol">(</a> <a id="6281" href="Algebra.Bundles.Raw.html#2325" class="Field">Carrier</a> <a id="6289" class="Symbol">to</a> <a id="6292" class="Field">A</a><a id="6293" class="Symbol">;</a> <a id="6295" href="Algebra.Bundles.Raw.html#2345" class="Field Operator">_≈_</a> <a id="6299" class="Symbol">to</a> <a id="6302" class="Field Operator">_≈₁_</a>
<a id="6311" class="Symbol">;</a> <a id="6313" href="Algebra.Bundles.Raw.html#2446" class="Function">+-rawMonoid</a> <a id="6325" class="Symbol">to</a> <a id="6328" class="Function">+-rawMonoid₁</a>
<a id="6345" class="Symbol">;</a> <a id="6347" href="Algebra.Bundles.Raw.html#2399" class="Field Operator">_*_</a> <a id="6351" class="Symbol">to</a> <a id="6354" class="Field Operator">_*₁_</a>
<a id="6363" class="Symbol">;</a> <a id="6365" href="Algebra.Bundles.Raw.html#2640" class="Function">*-rawMagma</a> <a id="6376" class="Symbol">to</a> <a id="6379" class="Function">*-rawMagma₁</a><a id="6390" class="Symbol">)</a>
<a id="6395" class="Keyword">open</a> <a id="6400" href="Algebra.Bundles.Raw.html#2222" class="Module">RawNearSemiring</a> <a id="6416" href="Algebra.Morphism.Structures.html#6206" class="Bound">R₂</a> <a id="6419" class="Keyword">renaming</a>
<a id="6432" class="Symbol">(</a> <a id="6434" href="Algebra.Bundles.Raw.html#2325" class="Field">Carrier</a> <a id="6442" class="Symbol">to</a> <a id="6445" class="Field">B</a><a id="6446" class="Symbol">;</a> <a id="6448" href="Algebra.Bundles.Raw.html#2345" class="Field Operator">_≈_</a> <a id="6452" class="Symbol">to</a> <a id="6455" class="Field Operator">_≈₂_</a>
<a id="6464" class="Symbol">;</a> <a id="6466" href="Algebra.Bundles.Raw.html#2446" class="Function">+-rawMonoid</a> <a id="6478" class="Symbol">to</a> <a id="6481" class="Function">+-rawMonoid₂</a>
<a id="6498" class="Symbol">;</a> <a id="6500" href="Algebra.Bundles.Raw.html#2399" class="Field Operator">_*_</a> <a id="6504" class="Symbol">to</a> <a id="6507" class="Field Operator">_*₂_</a>
<a id="6516" class="Symbol">;</a> <a id="6518" href="Algebra.Bundles.Raw.html#2640" class="Function">*-rawMagma</a> <a id="6529" class="Symbol">to</a> <a id="6532" class="Function">*-rawMagma₂</a><a id="6543" class="Symbol">)</a>
<a id="6548" class="Keyword">private</a>
<a id="6560" class="Keyword">module</a> <a id="NearSemiringMorphisms.+"></a><a id="6567" href="Algebra.Morphism.Structures.html#6567" class="Module">+</a> <a id="6569" class="Symbol">=</a> <a id="6571" href="Algebra.Morphism.Structures.html#2353" class="Module">MonoidMorphisms</a> <a id="6587" href="Algebra.Morphism.Structures.html#6328" class="Function">+-rawMonoid₁</a> <a id="6600" href="Algebra.Morphism.Structures.html#6481" class="Function">+-rawMonoid₂</a>
<a id="6617" class="Keyword">module</a> <a id="NearSemiringMorphisms.*"></a><a id="6624" href="Algebra.Morphism.Structures.html#6624" class="Module">*</a> <a id="6626" class="Symbol">=</a> <a id="6628" href="Algebra.Morphism.Structures.html#810" class="Module">MagmaMorphisms</a> <a id="6643" href="Algebra.Morphism.Structures.html#6379" class="Function">*-rawMagma₁</a> <a id="6655" href="Algebra.Morphism.Structures.html#6532" class="Function">*-rawMagma₂</a>
<a id="6670" class="Keyword">open</a> <a id="6675" href="Algebra.Morphism.Definitions.html" class="Module">MorphismDefinitions</a> <a id="6695" href="Algebra.Morphism.Structures.html#6292" class="Function">A</a> <a id="6697" href="Algebra.Morphism.Structures.html#6445" class="Field">B</a> <a id="6699" href="Algebra.Morphism.Structures.html#6455" class="Field Operator">_≈₂_</a>
<a id="6708" class="Keyword">record</a> <a id="NearSemiringMorphisms.IsNearSemiringHomomorphism"></a><a id="6715" href="Algebra.Morphism.Structures.html#6715" class="Record">IsNearSemiringHomomorphism</a> <a id="6742" class="Symbol">(</a><a id="6743" href="Algebra.Morphism.Structures.html#6743" class="Bound Operator">⟦_⟧</a> <a id="6747" class="Symbol">:</a> <a id="6749" href="Algebra.Morphism.Structures.html#6292" class="Function">A</a> <a id="6751" class="Symbol"></a> <a id="6753" href="Algebra.Morphism.Structures.html#6445" class="Field">B</a><a id="6754" class="Symbol">)</a> <a id="6756" class="Symbol">:</a> <a id="6758" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="6762" class="Symbol">(</a><a id="6763" href="Algebra.Morphism.Structures.html#6199" class="Bound">a</a> <a id="6765" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="6767" href="Algebra.Morphism.Structures.html#6201" class="Bound">ℓ₁</a> <a id="6770" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="6772" href="Algebra.Morphism.Structures.html#6229" class="Bound">ℓ₂</a><a id="6774" class="Symbol">)</a> <a id="6776" class="Keyword">where</a>
<a id="6786" class="Keyword">field</a>
<a id="NearSemiringMorphisms.IsNearSemiringHomomorphism.+-isMonoidHomomorphism"></a><a id="6798" href="Algebra.Morphism.Structures.html#6798" class="Field">+-isMonoidHomomorphism</a> <a id="6821" class="Symbol">:</a> <a id="6823" href="Algebra.Morphism.Structures.html#2693" class="Record">+.IsMonoidHomomorphism</a> <a id="6846" href="Algebra.Morphism.Structures.html#6743" class="Bound Operator">⟦_⟧</a>
<a id="NearSemiringMorphisms.IsNearSemiringHomomorphism.*-homo"></a><a id="6856" href="Algebra.Morphism.Structures.html#6856" class="Field">*-homo</a> <a id="6863" class="Symbol">:</a> <a id="6865" href="Algebra.Morphism.Definitions.html#852" class="Function">Homomorphic₂</a> <a id="6878" href="Algebra.Morphism.Structures.html#6743" class="Bound Operator">⟦_⟧</a> <a id="6882" href="Algebra.Morphism.Structures.html#6354" class="Function Operator">_*₁_</a> <a id="6887" href="Algebra.Morphism.Structures.html#6507" class="Field Operator">_*₂_</a>
<a id="6897" class="Keyword">open</a> <a id="6902" href="Algebra.Morphism.Structures.html#2693" class="Module">+.IsMonoidHomomorphism</a> <a id="6925" href="Algebra.Morphism.Structures.html#6798" class="Field">+-isMonoidHomomorphism</a> <a id="6948" class="Keyword">public</a>
<a id="6961" class="Keyword">renaming</a> <a id="6970" class="Symbol">(</a><a id="6971" href="Algebra.Morphism.Structures.html#1191" class="Function">homo</a> <a id="6976" class="Symbol">to</a> <a id="6979" class="Function">+-homo</a><a id="6985" class="Symbol">;</a> <a id="6987" href="Algebra.Morphism.Structures.html#2822" class="Field">ε-homo</a> <a id="6994" class="Symbol">to</a> <a id="6997" class="Field">0#-homo</a><a id="7004" class="Symbol">;</a> <a id="7006" href="Algebra.Morphism.Structures.html#2770" class="Field">isMagmaHomomorphism</a> <a id="7026" class="Symbol">to</a> <a id="7029" class="Field">+-isMagmaHomomorphism</a><a id="7050" class="Symbol">)</a>
<a id="NearSemiringMorphisms.IsNearSemiringHomomorphism.*-isMagmaHomomorphism"></a><a id="7057" href="Algebra.Morphism.Structures.html#7057" class="Function">*-isMagmaHomomorphism</a> <a id="7079" class="Symbol">:</a> <a id="7081" href="Algebra.Morphism.Structures.html#1057" class="Record">*.IsMagmaHomomorphism</a> <a id="7103" href="Algebra.Morphism.Structures.html#6743" class="Bound Operator">⟦_⟧</a>
<a id="7111" href="Algebra.Morphism.Structures.html#7057" class="Function">*-isMagmaHomomorphism</a> <a id="7133" class="Symbol">=</a> <a id="7135" class="Keyword">record</a>
<a id="7148" class="Symbol">{</a> <a id="7150" href="Algebra.Morphism.Structures.html#1133" class="Field">isRelHomomorphism</a> <a id="7168" class="Symbol">=</a> <a id="7170" href="Algebra.Morphism.Structures.html#1133" class="Function">isRelHomomorphism</a>
<a id="7194" class="Symbol">;</a> <a id="7196" href="Algebra.Morphism.Structures.html#1191" class="Field">homo</a> <a id="7201" class="Symbol">=</a> <a id="7203" href="Algebra.Morphism.Structures.html#6856" class="Field">*-homo</a>
<a id="7216" class="Symbol">}</a>
<a id="7221" class="Keyword">record</a> <a id="NearSemiringMorphisms.IsNearSemiringMonomorphism"></a><a id="7228" href="Algebra.Morphism.Structures.html#7228" class="Record">IsNearSemiringMonomorphism</a> <a id="7255" class="Symbol">(</a><a id="7256" href="Algebra.Morphism.Structures.html#7256" class="Bound Operator">⟦_⟧</a> <a id="7260" class="Symbol">:</a> <a id="7262" href="Algebra.Morphism.Structures.html#6292" class="Function">A</a> <a id="7264" class="Symbol"></a> <a id="7266" href="Algebra.Morphism.Structures.html#6445" class="Field">B</a><a id="7267" class="Symbol">)</a> <a id="7269" class="Symbol">:</a> <a id="7271" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="7275" class="Symbol">(</a><a id="7276" href="Algebra.Morphism.Structures.html#6199" class="Bound">a</a> <a id="7278" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="7280" href="Algebra.Morphism.Structures.html#6201" class="Bound">ℓ₁</a> <a id="7283" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="7285" href="Algebra.Morphism.Structures.html#6229" class="Bound">ℓ₂</a><a id="7287" class="Symbol">)</a> <a id="7289" class="Keyword">where</a>
<a id="7299" class="Keyword">field</a>
<a id="NearSemiringMorphisms.IsNearSemiringMonomorphism.isNearSemiringHomomorphism"></a><a id="7311" href="Algebra.Morphism.Structures.html#7311" class="Field">isNearSemiringHomomorphism</a> <a id="7338" class="Symbol">:</a> <a id="7340" href="Algebra.Morphism.Structures.html#6715" class="Record">IsNearSemiringHomomorphism</a> <a id="7367" href="Algebra.Morphism.Structures.html#7256" class="Bound Operator">⟦_⟧</a>
<a id="NearSemiringMorphisms.IsNearSemiringMonomorphism.injective"></a><a id="7377" href="Algebra.Morphism.Structures.html#7377" class="Field">injective</a> <a id="7396" class="Symbol">:</a> <a id="7398" href="Function.Definitions.html#842" class="Function">Injective</a> <a id="7408" href="Algebra.Morphism.Structures.html#6302" class="Function Operator">_≈₁_</a> <a id="7413" href="Algebra.Morphism.Structures.html#6455" class="Field Operator">_≈₂_</a> <a id="7418" href="Algebra.Morphism.Structures.html#7256" class="Bound Operator">⟦_⟧</a>
<a id="7427" class="Keyword">open</a> <a id="7432" href="Algebra.Morphism.Structures.html#6715" class="Module">IsNearSemiringHomomorphism</a> <a id="7459" href="Algebra.Morphism.Structures.html#7311" class="Field">isNearSemiringHomomorphism</a> <a id="7486" class="Keyword">public</a>
<a id="NearSemiringMorphisms.IsNearSemiringMonomorphism.+-isMonoidMonomorphism"></a><a id="7498" href="Algebra.Morphism.Structures.html#7498" class="Function">+-isMonoidMonomorphism</a> <a id="7521" class="Symbol">:</a> <a id="7523" href="Algebra.Morphism.Structures.html#2935" class="Record">+.IsMonoidMonomorphism</a> <a id="7546" href="Algebra.Morphism.Structures.html#7256" class="Bound Operator">⟦_⟧</a>
<a id="7554" href="Algebra.Morphism.Structures.html#7498" class="Function">+-isMonoidMonomorphism</a> <a id="7577" class="Symbol">=</a> <a id="7579" class="Keyword">record</a>
<a id="7592" class="Symbol">{</a> <a id="7594" href="Algebra.Morphism.Structures.html#3012" class="Field">isMonoidHomomorphism</a> <a id="7615" class="Symbol">=</a> <a id="7617" href="Algebra.Morphism.Structures.html#6798" class="Function">+-isMonoidHomomorphism</a>
<a id="7646" class="Symbol">;</a> <a id="7648" href="Algebra.Morphism.Structures.html#3066" class="Field">injective</a> <a id="7669" class="Symbol">=</a> <a id="7671" href="Algebra.Morphism.Structures.html#7377" class="Field">injective</a>
<a id="7687" class="Symbol">}</a>
<a id="7694" class="Keyword">open</a> <a id="7699" href="Algebra.Morphism.Structures.html#2935" class="Module">+.IsMonoidMonomorphism</a> <a id="7722" href="Algebra.Morphism.Structures.html#7498" class="Function">+-isMonoidMonomorphism</a> <a id="7745" class="Keyword">public</a>
<a id="7758" class="Keyword">using</a> <a id="7764" class="Symbol">(</a><a id="7765" href="Algebra.Morphism.Structures.html#1569" class="Function">isRelMonomorphism</a><a id="7782" class="Symbol">)</a>
<a id="7790" class="Keyword">renaming</a> <a id="7799" class="Symbol">(</a><a id="7800" href="Algebra.Morphism.Structures.html#3177" class="Function">isMagmaMonomorphism</a> <a id="7820" class="Symbol">to</a> <a id="7823" class="Function">+-isMagmaMonomorphsm</a><a id="7843" class="Symbol">)</a>
<a id="NearSemiringMorphisms.IsNearSemiringMonomorphism.*-isMagmaMonomorphism"></a><a id="7850" href="Algebra.Morphism.Structures.html#7850" class="Function">*-isMagmaMonomorphism</a> <a id="7872" class="Symbol">:</a> <a id="7874" href="Algebra.Morphism.Structures.html#1333" class="Record">*.IsMagmaMonomorphism</a> <a id="7896" href="Algebra.Morphism.Structures.html#7256" class="Bound Operator">⟦_⟧</a>
<a id="7904" href="Algebra.Morphism.Structures.html#7850" class="Function">*-isMagmaMonomorphism</a> <a id="7926" class="Symbol">=</a> <a id="7928" class="Keyword">record</a>
<a id="7941" class="Symbol">{</a> <a id="7943" href="Algebra.Morphism.Structures.html#1409" class="Field">isMagmaHomomorphism</a> <a id="7963" class="Symbol">=</a> <a id="7965" href="Algebra.Morphism.Structures.html#7057" class="Function">*-isMagmaHomomorphism</a>
<a id="7993" class="Symbol">;</a> <a id="7995" href="Algebra.Morphism.Structures.html#1461" class="Field">injective</a> <a id="8015" class="Symbol">=</a> <a id="8017" href="Algebra.Morphism.Structures.html#7377" class="Field">injective</a>
<a id="8033" class="Symbol">}</a>
<a id="8038" class="Keyword">record</a> <a id="NearSemiringMorphisms.IsNearSemiringIsomorphism"></a><a id="8045" href="Algebra.Morphism.Structures.html#8045" class="Record">IsNearSemiringIsomorphism</a> <a id="8071" class="Symbol">(</a><a id="8072" href="Algebra.Morphism.Structures.html#8072" class="Bound Operator">⟦_⟧</a> <a id="8076" class="Symbol">:</a> <a id="8078" href="Algebra.Morphism.Structures.html#6292" class="Function">A</a> <a id="8080" class="Symbol"></a> <a id="8082" href="Algebra.Morphism.Structures.html#6445" class="Field">B</a><a id="8083" class="Symbol">)</a> <a id="8085" class="Symbol">:</a> <a id="8087" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="8091" class="Symbol">(</a><a id="8092" href="Algebra.Morphism.Structures.html#6199" class="Bound">a</a> <a id="8094" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="8096" href="Algebra.Morphism.Structures.html#6227" class="Bound">b</a> <a id="8098" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="8100" href="Algebra.Morphism.Structures.html#6201" class="Bound">ℓ₁</a> <a id="8103" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="8105" href="Algebra.Morphism.Structures.html#6229" class="Bound">ℓ₂</a><a id="8107" class="Symbol">)</a> <a id="8109" class="Keyword">where</a>
<a id="8119" class="Keyword">field</a>
<a id="NearSemiringMorphisms.IsNearSemiringIsomorphism.isNearSemiringMonomorphism"></a><a id="8131" href="Algebra.Morphism.Structures.html#8131" class="Field">isNearSemiringMonomorphism</a> <a id="8158" class="Symbol">:</a> <a id="8160" href="Algebra.Morphism.Structures.html#7228" class="Record">IsNearSemiringMonomorphism</a> <a id="8187" href="Algebra.Morphism.Structures.html#8072" class="Bound Operator">⟦_⟧</a>
<a id="NearSemiringMorphisms.IsNearSemiringIsomorphism.surjective"></a><a id="8197" href="Algebra.Morphism.Structures.html#8197" class="Field">surjective</a> <a id="8224" class="Symbol">:</a> <a id="8226" href="Function.Definitions.html#919" class="Function">Surjective</a> <a id="8237" href="Algebra.Morphism.Structures.html#6302" class="Function Operator">_≈₁_</a> <a id="8242" href="Algebra.Morphism.Structures.html#6455" class="Field Operator">_≈₂_</a> <a id="8247" href="Algebra.Morphism.Structures.html#8072" class="Bound Operator">⟦_⟧</a>
<a id="8256" class="Keyword">open</a> <a id="8261" href="Algebra.Morphism.Structures.html#7228" class="Module">IsNearSemiringMonomorphism</a> <a id="8288" href="Algebra.Morphism.Structures.html#8131" class="Field">isNearSemiringMonomorphism</a> <a id="8315" class="Keyword">public</a>
<a id="NearSemiringMorphisms.IsNearSemiringIsomorphism.+-isMonoidIsomorphism"></a><a id="8327" href="Algebra.Morphism.Structures.html#8327" class="Function">+-isMonoidIsomorphism</a> <a id="8349" class="Symbol">:</a> <a id="8351" href="Algebra.Morphism.Structures.html#3454" class="Record">+.IsMonoidIsomorphism</a> <a id="8373" href="Algebra.Morphism.Structures.html#8072" class="Bound Operator">⟦_⟧</a>
<a id="8381" href="Algebra.Morphism.Structures.html#8327" class="Function">+-isMonoidIsomorphism</a> <a id="8403" class="Symbol">=</a> <a id="8405" class="Keyword">record</a>
<a id="8418" class="Symbol">{</a> <a id="8420" href="Algebra.Morphism.Structures.html#3534" class="Field">isMonoidMonomorphism</a> <a id="8441" class="Symbol">=</a> <a id="8443" href="Algebra.Morphism.Structures.html#7498" class="Function">+-isMonoidMonomorphism</a>
<a id="8472" class="Symbol">;</a> <a id="8474" href="Algebra.Morphism.Structures.html#3588" class="Field">surjective</a> <a id="8495" class="Symbol">=</a> <a id="8497" href="Algebra.Morphism.Structures.html#8197" class="Field">surjective</a>
<a id="8514" class="Symbol">}</a>
<a id="8521" class="Keyword">open</a> <a id="8526" href="Algebra.Morphism.Structures.html#3454" class="Module">+.IsMonoidIsomorphism</a> <a id="8548" href="Algebra.Morphism.Structures.html#8327" class="Function">+-isMonoidIsomorphism</a> <a id="8570" class="Keyword">public</a>
<a id="8583" class="Keyword">using</a> <a id="8589" class="Symbol">(</a><a id="8590" href="Algebra.Morphism.Structures.html#1989" class="Function">isRelIsomorphism</a><a id="8606" class="Symbol">)</a>
<a id="8614" class="Keyword">renaming</a> <a id="8623" class="Symbol">(</a><a id="8624" href="Algebra.Morphism.Structures.html#3700" class="Function">isMagmaIsomorphism</a> <a id="8643" class="Symbol">to</a> <a id="8646" class="Function">+-isMagmaIsomorphism</a><a id="8666" class="Symbol">)</a>
<a id="NearSemiringMorphisms.IsNearSemiringIsomorphism.*-isMagmaIsomorphism"></a><a id="8673" href="Algebra.Morphism.Structures.html#8673" class="Function">*-isMagmaIsomorphism</a> <a id="8694" class="Symbol">:</a> <a id="8696" href="Algebra.Morphism.Structures.html#1749" class="Record">*.IsMagmaIsomorphism</a> <a id="8717" href="Algebra.Morphism.Structures.html#8072" class="Bound Operator">⟦_⟧</a>
<a id="8725" href="Algebra.Morphism.Structures.html#8673" class="Function">*-isMagmaIsomorphism</a> <a id="8746" class="Symbol">=</a> <a id="8748" class="Keyword">record</a>
<a id="8761" class="Symbol">{</a> <a id="8763" href="Algebra.Morphism.Structures.html#1828" class="Field">isMagmaMonomorphism</a> <a id="8783" class="Symbol">=</a> <a id="8785" href="Algebra.Morphism.Structures.html#7850" class="Function">*-isMagmaMonomorphism</a>
<a id="8813" class="Symbol">;</a> <a id="8815" href="Algebra.Morphism.Structures.html#1880" class="Field">surjective</a> <a id="8835" class="Symbol">=</a> <a id="8837" href="Algebra.Morphism.Structures.html#8197" class="Field">surjective</a>
<a id="8854" class="Symbol">}</a>
<a id="8857" class="Comment">------------------------------------------------------------------------</a>
<a id="8930" class="Comment">-- Morphisms over semiring-like structures</a>
<a id="8973" class="Comment">------------------------------------------------------------------------</a>
<a id="9047" class="Keyword">module</a> <a id="SemiringMorphisms"></a><a id="9054" href="Algebra.Morphism.Structures.html#9054" class="Module">SemiringMorphisms</a> <a id="9072" class="Symbol">(</a><a id="9073" href="Algebra.Morphism.Structures.html#9073" class="Bound">R₁</a> <a id="9076" class="Symbol">:</a> <a id="9078" href="Algebra.Bundles.Raw.html#2934" class="Record">RawSemiring</a> <a id="9090" href="Algebra.Morphism.Structures.html#597" class="Generalizable">a</a> <a id="9092" href="Algebra.Morphism.Structures.html#601" class="Generalizable">ℓ₁</a><a id="9094" class="Symbol">)</a> <a id="9096" class="Symbol">(</a><a id="9097" href="Algebra.Morphism.Structures.html#9097" class="Bound">R₂</a> <a id="9100" class="Symbol">:</a> <a id="9102" href="Algebra.Bundles.Raw.html#2934" class="Record">RawSemiring</a> <a id="9114" href="Algebra.Morphism.Structures.html#599" class="Generalizable">b</a> <a id="9116" href="Algebra.Morphism.Structures.html#604" class="Generalizable">ℓ₂</a><a id="9118" class="Symbol">)</a> <a id="9120" class="Keyword">where</a>
<a id="9129" class="Keyword">open</a> <a id="9134" href="Algebra.Bundles.Raw.html#2934" class="Module">RawSemiring</a> <a id="9146" href="Algebra.Morphism.Structures.html#9073" class="Bound">R₁</a> <a id="9149" class="Keyword">renaming</a>
<a id="9162" class="Symbol">(</a> <a id="9164" href="Algebra.Bundles.Raw.html#3033" class="Field">Carrier</a> <a id="9172" class="Symbol">to</a> <a id="9175" class="Field">A</a><a id="9176" class="Symbol">;</a> <a id="9178" href="Algebra.Bundles.Raw.html#3053" class="Field Operator">_≈_</a> <a id="9182" class="Symbol">to</a> <a id="9185" class="Field Operator">_≈₁_</a>
<a id="9194" class="Symbol">;</a> <a id="9196" href="Algebra.Bundles.Raw.html#3155" class="Field">1#</a> <a id="9199" class="Symbol">to</a> <a id="9202" class="Field">1#₁</a>
<a id="9210" class="Symbol">;</a> <a id="9212" href="Algebra.Bundles.Raw.html#3176" class="Function">rawNearSemiring</a> <a id="9228" class="Symbol">to</a> <a id="9231" class="Function">rawNearSemiring₁</a>
<a id="9252" class="Symbol">;</a> <a id="9254" href="Algebra.Bundles.Raw.html#3413" class="Function">*-rawMonoid</a> <a id="9266" class="Symbol">to</a> <a id="9269" class="Function">*-rawMonoid₁</a><a id="9281" class="Symbol">)</a>
<a id="9286" class="Keyword">open</a> <a id="9291" href="Algebra.Bundles.Raw.html#2934" class="Module">RawSemiring</a> <a id="9303" href="Algebra.Morphism.Structures.html#9097" class="Bound">R₂</a> <a id="9306" class="Keyword">renaming</a>
<a id="9319" class="Symbol">(</a> <a id="9321" href="Algebra.Bundles.Raw.html#3033" class="Field">Carrier</a> <a id="9329" class="Symbol">to</a> <a id="9332" class="Field">B</a><a id="9333" class="Symbol">;</a> <a id="9335" href="Algebra.Bundles.Raw.html#3053" class="Field Operator">_≈_</a> <a id="9339" class="Symbol">to</a> <a id="9342" class="Field Operator">_≈₂_</a>
<a id="9351" class="Symbol">;</a> <a id="9353" href="Algebra.Bundles.Raw.html#3155" class="Field">1#</a> <a id="9356" class="Symbol">to</a> <a id="9359" class="Field">1#₂</a>
<a id="9367" class="Symbol">;</a> <a id="9369" href="Algebra.Bundles.Raw.html#3176" class="Function">rawNearSemiring</a> <a id="9385" class="Symbol">to</a> <a id="9388" class="Function">rawNearSemiring₂</a>
<a id="9409" class="Symbol">;</a> <a id="9411" href="Algebra.Bundles.Raw.html#3413" class="Function">*-rawMonoid</a> <a id="9423" class="Symbol">to</a> <a id="9426" class="Function">*-rawMonoid₂</a><a id="9438" class="Symbol">)</a>
<a id="9443" class="Keyword">private</a>
<a id="9455" class="Keyword">module</a> <a id="SemiringMorphisms.*"></a><a id="9462" href="Algebra.Morphism.Structures.html#9462" class="Module">*</a> <a id="9464" class="Symbol">=</a> <a id="9466" href="Algebra.Morphism.Structures.html#2353" class="Module">MonoidMorphisms</a> <a id="9482" href="Algebra.Morphism.Structures.html#9269" class="Function">*-rawMonoid₁</a> <a id="9495" href="Algebra.Morphism.Structures.html#9426" class="Function">*-rawMonoid₂</a>
<a id="9511" class="Keyword">open</a> <a id="9516" href="Algebra.Morphism.Definitions.html" class="Module">MorphismDefinitions</a> <a id="9536" href="Algebra.Morphism.Structures.html#9175" class="Function">A</a> <a id="9538" href="Algebra.Morphism.Structures.html#9332" class="Field">B</a> <a id="9540" href="Algebra.Morphism.Structures.html#9342" class="Field Operator">_≈₂_</a>
<a id="9547" class="Keyword">open</a> <a id="9552" href="Algebra.Morphism.Structures.html#6155" class="Module">NearSemiringMorphisms</a> <a id="9574" href="Algebra.Morphism.Structures.html#9231" class="Function">rawNearSemiring₁</a> <a id="9591" href="Algebra.Morphism.Structures.html#9388" class="Function">rawNearSemiring₂</a>
<a id="9611" class="Keyword">record</a> <a id="SemiringMorphisms.IsSemiringHomomorphism"></a><a id="9618" href="Algebra.Morphism.Structures.html#9618" class="Record">IsSemiringHomomorphism</a> <a id="9641" class="Symbol">(</a><a id="9642" href="Algebra.Morphism.Structures.html#9642" class="Bound Operator">⟦_⟧</a> <a id="9646" class="Symbol">:</a> <a id="9648" href="Algebra.Morphism.Structures.html#9175" class="Function">A</a> <a id="9650" class="Symbol"></a> <a id="9652" href="Algebra.Morphism.Structures.html#9332" class="Field">B</a><a id="9653" class="Symbol">)</a> <a id="9655" class="Symbol">:</a> <a id="9657" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="9661" class="Symbol">(</a><a id="9662" href="Algebra.Morphism.Structures.html#9090" class="Bound">a</a> <a id="9664" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="9666" href="Algebra.Morphism.Structures.html#9092" class="Bound">ℓ₁</a> <a id="9669" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="9671" href="Algebra.Morphism.Structures.html#9116" class="Bound">ℓ₂</a><a id="9673" class="Symbol">)</a> <a id="9675" class="Keyword">where</a>
<a id="9685" class="Keyword">field</a>
<a id="SemiringMorphisms.IsSemiringHomomorphism.isNearSemiringHomomorphism"></a><a id="9697" href="Algebra.Morphism.Structures.html#9697" class="Field">isNearSemiringHomomorphism</a> <a id="9724" class="Symbol">:</a> <a id="9726" href="Algebra.Morphism.Structures.html#6715" class="Record">IsNearSemiringHomomorphism</a> <a id="9753" href="Algebra.Morphism.Structures.html#9642" class="Bound Operator">⟦_⟧</a>
<a id="SemiringMorphisms.IsSemiringHomomorphism.1#-homo"></a><a id="9763" href="Algebra.Morphism.Structures.html#9763" class="Field">1#-homo</a> <a id="9771" class="Symbol">:</a> <a id="9773" href="Algebra.Morphism.Definitions.html#680" class="Function">Homomorphic₀</a> <a id="9786" href="Algebra.Morphism.Structures.html#9642" class="Bound Operator">⟦_⟧</a> <a id="9790" href="Algebra.Morphism.Structures.html#9202" class="Function">1#₁</a> <a id="9794" href="Algebra.Morphism.Structures.html#9359" class="Field">1#₂</a>
<a id="9803" class="Keyword">open</a> <a id="9808" href="Algebra.Morphism.Structures.html#6715" class="Module">IsNearSemiringHomomorphism</a> <a id="9835" href="Algebra.Morphism.Structures.html#9697" class="Field">isNearSemiringHomomorphism</a> <a id="9862" class="Keyword">public</a>
<a id="SemiringMorphisms.IsSemiringHomomorphism.*-isMonoidHomomorphism"></a><a id="9874" href="Algebra.Morphism.Structures.html#9874" class="Function">*-isMonoidHomomorphism</a> <a id="9897" class="Symbol">:</a> <a id="9899" href="Algebra.Morphism.Structures.html#2693" class="Record">*.IsMonoidHomomorphism</a> <a id="9922" href="Algebra.Morphism.Structures.html#9642" class="Bound Operator">⟦_⟧</a>
<a id="9930" href="Algebra.Morphism.Structures.html#9874" class="Function">*-isMonoidHomomorphism</a> <a id="9953" class="Symbol">=</a> <a id="9955" class="Keyword">record</a>
<a id="9968" class="Symbol">{</a> <a id="9970" href="Algebra.Morphism.Structures.html#2770" class="Field">isMagmaHomomorphism</a> <a id="9990" class="Symbol">=</a> <a id="9992" href="Algebra.Morphism.Structures.html#7057" class="Function">*-isMagmaHomomorphism</a>
<a id="10020" class="Symbol">;</a> <a id="10022" href="Algebra.Morphism.Structures.html#2822" class="Field">ε-homo</a> <a id="10029" class="Symbol">=</a> <a id="10031" href="Algebra.Morphism.Structures.html#9763" class="Field">1#-homo</a>
<a id="10045" class="Symbol">}</a>
<a id="10050" class="Keyword">record</a> <a id="SemiringMorphisms.IsSemiringMonomorphism"></a><a id="10057" href="Algebra.Morphism.Structures.html#10057" class="Record">IsSemiringMonomorphism</a> <a id="10080" class="Symbol">(</a><a id="10081" href="Algebra.Morphism.Structures.html#10081" class="Bound Operator">⟦_⟧</a> <a id="10085" class="Symbol">:</a> <a id="10087" href="Algebra.Morphism.Structures.html#9175" class="Function">A</a> <a id="10089" class="Symbol"></a> <a id="10091" href="Algebra.Morphism.Structures.html#9332" class="Field">B</a><a id="10092" class="Symbol">)</a> <a id="10094" class="Symbol">:</a> <a id="10096" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="10100" class="Symbol">(</a><a id="10101" href="Algebra.Morphism.Structures.html#9090" class="Bound">a</a> <a id="10103" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="10105" href="Algebra.Morphism.Structures.html#9092" class="Bound">ℓ₁</a> <a id="10108" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="10110" href="Algebra.Morphism.Structures.html#9116" class="Bound">ℓ₂</a><a id="10112" class="Symbol">)</a> <a id="10114" class="Keyword">where</a>
<a id="10124" class="Keyword">field</a>
<a id="SemiringMorphisms.IsSemiringMonomorphism.isSemiringHomomorphism"></a><a id="10136" href="Algebra.Morphism.Structures.html#10136" class="Field">isSemiringHomomorphism</a> <a id="10159" class="Symbol">:</a> <a id="10161" href="Algebra.Morphism.Structures.html#9618" class="Record">IsSemiringHomomorphism</a> <a id="10184" href="Algebra.Morphism.Structures.html#10081" class="Bound Operator">⟦_⟧</a>
<a id="SemiringMorphisms.IsSemiringMonomorphism.injective"></a><a id="10194" href="Algebra.Morphism.Structures.html#10194" class="Field">injective</a> <a id="10217" class="Symbol">:</a> <a id="10219" href="Function.Definitions.html#842" class="Function">Injective</a> <a id="10229" href="Algebra.Morphism.Structures.html#9185" class="Function Operator">_≈₁_</a> <a id="10234" href="Algebra.Morphism.Structures.html#9342" class="Field Operator">_≈₂_</a> <a id="10239" href="Algebra.Morphism.Structures.html#10081" class="Bound Operator">⟦_⟧</a>
<a id="10248" class="Keyword">open</a> <a id="10253" href="Algebra.Morphism.Structures.html#9618" class="Module">IsSemiringHomomorphism</a> <a id="10276" href="Algebra.Morphism.Structures.html#10136" class="Field">isSemiringHomomorphism</a> <a id="10299" class="Keyword">public</a>
<a id="SemiringMorphisms.IsSemiringMonomorphism.isNearSemiringMonomorphism"></a><a id="10311" href="Algebra.Morphism.Structures.html#10311" class="Function">isNearSemiringMonomorphism</a> <a id="10338" class="Symbol">:</a> <a id="10340" href="Algebra.Morphism.Structures.html#7228" class="Record">IsNearSemiringMonomorphism</a> <a id="10367" href="Algebra.Morphism.Structures.html#10081" class="Bound Operator">⟦_⟧</a>
<a id="10375" href="Algebra.Morphism.Structures.html#10311" class="Function">isNearSemiringMonomorphism</a> <a id="10402" class="Symbol">=</a> <a id="10404" class="Keyword">record</a>
<a id="10417" class="Symbol">{</a> <a id="10419" href="Algebra.Morphism.Structures.html#7311" class="Field">isNearSemiringHomomorphism</a> <a id="10446" class="Symbol">=</a> <a id="10448" href="Algebra.Morphism.Structures.html#9697" class="Function">isNearSemiringHomomorphism</a>
<a id="10481" class="Symbol">;</a> <a id="10483" href="Algebra.Morphism.Structures.html#7377" class="Field">injective</a> <a id="10493" class="Symbol">=</a> <a id="10495" href="Algebra.Morphism.Structures.html#10194" class="Field">injective</a>
<a id="10511" class="Symbol">}</a>
<a id="10518" class="Keyword">open</a> <a id="10523" href="Algebra.Morphism.Structures.html#7228" class="Module">IsNearSemiringMonomorphism</a> <a id="10550" href="Algebra.Morphism.Structures.html#10311" class="Function">isNearSemiringMonomorphism</a> <a id="10577" class="Keyword">public</a>
<a id="10590" class="Keyword">using</a> <a id="10596" class="Symbol">(</a><a id="10597" href="Algebra.Morphism.Structures.html#7498" class="Function">+-isMonoidMonomorphism</a><a id="10619" class="Symbol">;</a> <a id="10621" href="Algebra.Morphism.Structures.html#7850" class="Function">*-isMagmaMonomorphism</a><a id="10642" class="Symbol">)</a>
<a id="SemiringMorphisms.IsSemiringMonomorphism.*-isMonoidMonomorphism"></a><a id="10649" href="Algebra.Morphism.Structures.html#10649" class="Function">*-isMonoidMonomorphism</a> <a id="10672" class="Symbol">:</a> <a id="10674" href="Algebra.Morphism.Structures.html#2935" class="Record">*.IsMonoidMonomorphism</a> <a id="10697" href="Algebra.Morphism.Structures.html#10081" class="Bound Operator">⟦_⟧</a>
<a id="10705" href="Algebra.Morphism.Structures.html#10649" class="Function">*-isMonoidMonomorphism</a> <a id="10728" class="Symbol">=</a> <a id="10730" class="Keyword">record</a>
<a id="10743" class="Symbol">{</a> <a id="10745" href="Algebra.Morphism.Structures.html#3012" class="Field">isMonoidHomomorphism</a> <a id="10766" class="Symbol">=</a> <a id="10768" href="Algebra.Morphism.Structures.html#9874" class="Function">*-isMonoidHomomorphism</a>
<a id="10797" class="Symbol">;</a> <a id="10799" href="Algebra.Morphism.Structures.html#3066" class="Field">injective</a> <a id="10820" class="Symbol">=</a> <a id="10822" href="Algebra.Morphism.Structures.html#10194" class="Field">injective</a>
<a id="10838" class="Symbol">}</a>
<a id="10843" class="Keyword">record</a> <a id="SemiringMorphisms.IsSemiringIsomorphism"></a><a id="10850" href="Algebra.Morphism.Structures.html#10850" class="Record">IsSemiringIsomorphism</a> <a id="10872" class="Symbol">(</a><a id="10873" href="Algebra.Morphism.Structures.html#10873" class="Bound Operator">⟦_⟧</a> <a id="10877" class="Symbol">:</a> <a id="10879" href="Algebra.Morphism.Structures.html#9175" class="Function">A</a> <a id="10881" class="Symbol"></a> <a id="10883" href="Algebra.Morphism.Structures.html#9332" class="Field">B</a><a id="10884" class="Symbol">)</a> <a id="10886" class="Symbol">:</a> <a id="10888" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="10892" class="Symbol">(</a><a id="10893" href="Algebra.Morphism.Structures.html#9090" class="Bound">a</a> <a id="10895" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="10897" href="Algebra.Morphism.Structures.html#9114" class="Bound">b</a> <a id="10899" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="10901" href="Algebra.Morphism.Structures.html#9092" class="Bound">ℓ₁</a> <a id="10904" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="10906" href="Algebra.Morphism.Structures.html#9116" class="Bound">ℓ₂</a><a id="10908" class="Symbol">)</a> <a id="10910" class="Keyword">where</a>
<a id="10920" class="Keyword">field</a>
<a id="SemiringMorphisms.IsSemiringIsomorphism.isSemiringMonomorphism"></a><a id="10932" href="Algebra.Morphism.Structures.html#10932" class="Field">isSemiringMonomorphism</a> <a id="10955" class="Symbol">:</a> <a id="10957" href="Algebra.Morphism.Structures.html#10057" class="Record">IsSemiringMonomorphism</a> <a id="10980" href="Algebra.Morphism.Structures.html#10873" class="Bound Operator">⟦_⟧</a>
<a id="SemiringMorphisms.IsSemiringIsomorphism.surjective"></a><a id="10990" href="Algebra.Morphism.Structures.html#10990" class="Field">surjective</a> <a id="11013" class="Symbol">:</a> <a id="11015" href="Function.Definitions.html#919" class="Function">Surjective</a> <a id="11026" href="Algebra.Morphism.Structures.html#9185" class="Function Operator">_≈₁_</a> <a id="11031" href="Algebra.Morphism.Structures.html#9342" class="Field Operator">_≈₂_</a> <a id="11036" href="Algebra.Morphism.Structures.html#10873" class="Bound Operator">⟦_⟧</a>
<a id="11045" class="Keyword">open</a> <a id="11050" href="Algebra.Morphism.Structures.html#10057" class="Module">IsSemiringMonomorphism</a> <a id="11073" href="Algebra.Morphism.Structures.html#10932" class="Field">isSemiringMonomorphism</a> <a id="11096" class="Keyword">public</a>
<a id="SemiringMorphisms.IsSemiringIsomorphism.isNearSemiringIsomorphism"></a><a id="11108" href="Algebra.Morphism.Structures.html#11108" class="Function">isNearSemiringIsomorphism</a> <a id="11134" class="Symbol">:</a> <a id="11136" href="Algebra.Morphism.Structures.html#8045" class="Record">IsNearSemiringIsomorphism</a> <a id="11162" href="Algebra.Morphism.Structures.html#10873" class="Bound Operator">⟦_⟧</a>
<a id="11170" href="Algebra.Morphism.Structures.html#11108" class="Function">isNearSemiringIsomorphism</a> <a id="11196" class="Symbol">=</a> <a id="11198" class="Keyword">record</a>
<a id="11211" class="Symbol">{</a> <a id="11213" href="Algebra.Morphism.Structures.html#8131" class="Field">isNearSemiringMonomorphism</a> <a id="11240" class="Symbol">=</a> <a id="11242" href="Algebra.Morphism.Structures.html#10311" class="Function">isNearSemiringMonomorphism</a>
<a id="11275" class="Symbol">;</a> <a id="11277" href="Algebra.Morphism.Structures.html#8197" class="Field">surjective</a> <a id="11288" class="Symbol">=</a> <a id="11290" href="Algebra.Morphism.Structures.html#10990" class="Field">surjective</a>
<a id="11307" class="Symbol">}</a>
<a id="11314" class="Keyword">open</a> <a id="11319" href="Algebra.Morphism.Structures.html#8045" class="Module">IsNearSemiringIsomorphism</a> <a id="11345" href="Algebra.Morphism.Structures.html#11108" class="Function">isNearSemiringIsomorphism</a> <a id="11371" class="Keyword">public</a>
<a id="11384" class="Keyword">using</a> <a id="11390" class="Symbol">(</a><a id="11391" href="Algebra.Morphism.Structures.html#8327" class="Function">+-isMonoidIsomorphism</a><a id="11412" class="Symbol">;</a> <a id="11414" href="Algebra.Morphism.Structures.html#8673" class="Function">*-isMagmaIsomorphism</a><a id="11434" class="Symbol">)</a>
<a id="SemiringMorphisms.IsSemiringIsomorphism.*-isMonoidIsomorphism"></a><a id="11441" href="Algebra.Morphism.Structures.html#11441" class="Function">*-isMonoidIsomorphism</a> <a id="11463" class="Symbol">:</a> <a id="11465" href="Algebra.Morphism.Structures.html#3454" class="Record">*.IsMonoidIsomorphism</a> <a id="11487" href="Algebra.Morphism.Structures.html#10873" class="Bound Operator">⟦_⟧</a>
<a id="11495" href="Algebra.Morphism.Structures.html#11441" class="Function">*-isMonoidIsomorphism</a> <a id="11517" class="Symbol">=</a> <a id="11519" class="Keyword">record</a>
<a id="11532" class="Symbol">{</a> <a id="11534" href="Algebra.Morphism.Structures.html#3534" class="Field">isMonoidMonomorphism</a> <a id="11555" class="Symbol">=</a> <a id="11557" href="Algebra.Morphism.Structures.html#10649" class="Function">*-isMonoidMonomorphism</a>
<a id="11586" class="Symbol">;</a> <a id="11588" href="Algebra.Morphism.Structures.html#3588" class="Field">surjective</a> <a id="11609" class="Symbol">=</a> <a id="11611" href="Algebra.Morphism.Structures.html#10990" class="Field">surjective</a>
<a id="11628" class="Symbol">}</a>
<a id="11631" class="Comment">------------------------------------------------------------------------</a>
<a id="11704" class="Comment">-- Morphisms over ringWithoutOne-like structures</a>
<a id="11753" class="Comment">------------------------------------------------------------------------</a>
<a id="11827" class="Keyword">module</a> <a id="RingWithoutOneMorphisms"></a><a id="11834" href="Algebra.Morphism.Structures.html#11834" class="Module">RingWithoutOneMorphisms</a> <a id="11858" class="Symbol">(</a><a id="11859" href="Algebra.Morphism.Structures.html#11859" class="Bound">R₁</a> <a id="11862" class="Symbol">:</a> <a id="11864" href="Algebra.Bundles.Raw.html#3743" class="Record">RawRingWithoutOne</a> <a id="11882" href="Algebra.Morphism.Structures.html#597" class="Generalizable">a</a> <a id="11884" href="Algebra.Morphism.Structures.html#601" class="Generalizable">ℓ₁</a><a id="11886" class="Symbol">)</a> <a id="11888" class="Symbol">(</a><a id="11889" href="Algebra.Morphism.Structures.html#11889" class="Bound">R₂</a> <a id="11892" class="Symbol">:</a> <a id="11894" href="Algebra.Bundles.Raw.html#3743" class="Record">RawRingWithoutOne</a> <a id="11912" href="Algebra.Morphism.Structures.html#599" class="Generalizable">b</a> <a id="11914" href="Algebra.Morphism.Structures.html#604" class="Generalizable">ℓ₂</a><a id="11916" class="Symbol">)</a> <a id="11918" class="Keyword">where</a>
<a id="11927" class="Keyword">open</a> <a id="11932" href="Algebra.Bundles.Raw.html#3743" class="Module">RawRingWithoutOne</a> <a id="11950" href="Algebra.Morphism.Structures.html#11859" class="Bound">R₁</a> <a id="11953" class="Keyword">renaming</a>
<a id="11966" class="Symbol">(</a> <a id="11968" href="Algebra.Bundles.Raw.html#3862" class="Field">Carrier</a> <a id="11976" class="Symbol">to</a> <a id="11979" class="Field">A</a><a id="11980" class="Symbol">;</a> <a id="11982" href="Algebra.Bundles.Raw.html#3882" class="Field Operator">_≈_</a> <a id="11986" class="Symbol">to</a> <a id="11989" class="Field Operator">_≈₁_</a>
<a id="11998" class="Symbol">;</a> <a id="12000" href="Algebra.Bundles.Raw.html#3936" class="Field Operator">_*_</a> <a id="12004" class="Symbol">to</a> <a id="12007" class="Field Operator">_*₁_</a>
<a id="12016" class="Symbol">;</a> <a id="12018" href="Algebra.Bundles.Raw.html#4239" class="Function">*-rawMagma</a> <a id="12029" class="Symbol">to</a> <a id="12032" class="Function">*-rawMagma₁</a>
<a id="12048" class="Symbol">;</a> <a id="12050" href="Algebra.Bundles.Raw.html#4009" class="Function">+-rawGroup</a> <a id="12061" class="Symbol">to</a> <a id="12064" class="Function">+-rawGroup₁</a><a id="12075" class="Symbol">)</a>
<a id="12080" class="Keyword">open</a> <a id="12085" href="Algebra.Bundles.Raw.html#3743" class="Module">RawRingWithoutOne</a> <a id="12103" href="Algebra.Morphism.Structures.html#11889" class="Bound">R₂</a> <a id="12106" class="Keyword">renaming</a>
<a id="12119" class="Symbol">(</a> <a id="12121" href="Algebra.Bundles.Raw.html#3862" class="Field">Carrier</a> <a id="12129" class="Symbol">to</a> <a id="12132" class="Field">B</a><a id="12133" class="Symbol">;</a> <a id="12135" href="Algebra.Bundles.Raw.html#3882" class="Field Operator">_≈_</a> <a id="12139" class="Symbol">to</a> <a id="12142" class="Field Operator">_≈₂_</a>
<a id="12151" class="Symbol">;</a> <a id="12153" href="Algebra.Bundles.Raw.html#3936" class="Field Operator">_*_</a> <a id="12157" class="Symbol">to</a> <a id="12160" class="Field Operator">_*₂_</a>
<a id="12169" class="Symbol">;</a> <a id="12171" href="Algebra.Bundles.Raw.html#4239" class="Function">*-rawMagma</a> <a id="12182" class="Symbol">to</a> <a id="12185" class="Function">*-rawMagma₂</a>
<a id="12201" class="Symbol">;</a> <a id="12203" href="Algebra.Bundles.Raw.html#4009" class="Function">+-rawGroup</a> <a id="12214" class="Symbol">to</a> <a id="12217" class="Function">+-rawGroup₂</a><a id="12228" class="Symbol">)</a>
<a id="12233" class="Keyword">private</a>
<a id="12245" class="Keyword">module</a> <a id="RingWithoutOneMorphisms.+"></a><a id="12252" href="Algebra.Morphism.Structures.html#12252" class="Module">+</a> <a id="12254" class="Symbol">=</a> <a id="12256" href="Algebra.Morphism.Structures.html#4157" class="Module">GroupMorphisms</a> <a id="12272" href="Algebra.Morphism.Structures.html#12064" class="Function">+-rawGroup₁</a> <a id="12285" href="Algebra.Morphism.Structures.html#12217" class="Function">+-rawGroup₂</a>
<a id="12301" class="Keyword">module</a> <a id="RingWithoutOneMorphisms.*"></a><a id="12308" href="Algebra.Morphism.Structures.html#12308" class="Module">*</a> <a id="12310" class="Symbol">=</a> <a id="12312" href="Algebra.Morphism.Structures.html#810" class="Module">MagmaMorphisms</a> <a id="12327" href="Algebra.Morphism.Structures.html#12032" class="Function">*-rawMagma₁</a> <a id="12339" href="Algebra.Morphism.Structures.html#12185" class="Function">*-rawMagma₂</a>
<a id="12354" class="Keyword">open</a> <a id="12359" href="Algebra.Morphism.Definitions.html" class="Module">MorphismDefinitions</a> <a id="12379" href="Algebra.Morphism.Structures.html#11979" class="Function">A</a> <a id="12381" href="Algebra.Morphism.Structures.html#12132" class="Field">B</a> <a id="12383" href="Algebra.Morphism.Structures.html#12142" class="Field Operator">_≈₂_</a>
<a id="12391" class="Keyword">record</a> <a id="RingWithoutOneMorphisms.IsRingWithoutOneHomomorphism"></a><a id="12398" href="Algebra.Morphism.Structures.html#12398" class="Record">IsRingWithoutOneHomomorphism</a> <a id="12427" class="Symbol">(</a><a id="12428" href="Algebra.Morphism.Structures.html#12428" class="Bound Operator">⟦_⟧</a> <a id="12432" class="Symbol">:</a> <a id="12434" href="Algebra.Morphism.Structures.html#11979" class="Function">A</a> <a id="12436" class="Symbol"></a> <a id="12438" href="Algebra.Morphism.Structures.html#12132" class="Field">B</a><a id="12439" class="Symbol">)</a> <a id="12441" class="Symbol">:</a> <a id="12443" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="12447" class="Symbol">(</a><a id="12448" href="Algebra.Morphism.Structures.html#11882" class="Bound">a</a> <a id="12450" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="12452" href="Algebra.Morphism.Structures.html#11884" class="Bound">ℓ₁</a> <a id="12455" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="12457" href="Algebra.Morphism.Structures.html#11914" class="Bound">ℓ₂</a><a id="12459" class="Symbol">)</a> <a id="12461" class="Keyword">where</a>
<a id="12471" class="Keyword">field</a>
<a id="RingWithoutOneMorphisms.IsRingWithoutOneHomomorphism.+-isGroupHomomorphism"></a><a id="12483" href="Algebra.Morphism.Structures.html#12483" class="Field">+-isGroupHomomorphism</a> <a id="12505" class="Symbol">:</a> <a id="12507" href="Algebra.Morphism.Structures.html#4598" class="Record">+.IsGroupHomomorphism</a> <a id="12529" href="Algebra.Morphism.Structures.html#12428" class="Bound Operator">⟦_⟧</a>
<a id="RingWithoutOneMorphisms.IsRingWithoutOneHomomorphism.*-homo"></a><a id="12539" href="Algebra.Morphism.Structures.html#12539" class="Field">*-homo</a> <a id="12546" class="Symbol">:</a> <a id="12548" href="Algebra.Morphism.Definitions.html#852" class="Function">Homomorphic₂</a> <a id="12561" href="Algebra.Morphism.Structures.html#12428" class="Bound Operator">⟦_⟧</a> <a id="12565" href="Algebra.Morphism.Structures.html#12007" class="Function Operator">_*₁_</a> <a id="12570" href="Algebra.Morphism.Structures.html#12160" class="Field Operator">_*₂_</a>
<a id="12580" class="Keyword">open</a> <a id="12585" href="Algebra.Morphism.Structures.html#4598" class="Module">+.IsGroupHomomorphism</a> <a id="12607" href="Algebra.Morphism.Structures.html#12483" class="Field">+-isGroupHomomorphism</a> <a id="12629" class="Keyword">public</a>
<a id="12642" class="Keyword">renaming</a> <a id="12651" class="Symbol">(</a><a id="12652" href="Algebra.Morphism.Structures.html#1191" class="Function">homo</a> <a id="12657" class="Symbol">to</a> <a id="12660" class="Function">+-homo</a><a id="12666" class="Symbol">;</a> <a id="12668" href="Algebra.Morphism.Structures.html#2822" class="Function">ε-homo</a> <a id="12675" class="Symbol">to</a> <a id="12678" class="Function">0#-homo</a><a id="12685" class="Symbol">;</a> <a id="12687" href="Algebra.Morphism.Structures.html#2770" class="Function">isMagmaHomomorphism</a> <a id="12707" class="Symbol">to</a> <a id="12710" class="Function">+-isMagmaHomomorphism</a><a id="12731" class="Symbol">)</a>
<a id="RingWithoutOneMorphisms.IsRingWithoutOneHomomorphism.*-isMagmaHomomorphism"></a><a id="12738" href="Algebra.Morphism.Structures.html#12738" class="Function">*-isMagmaHomomorphism</a> <a id="12760" class="Symbol">:</a> <a id="12762" href="Algebra.Morphism.Structures.html#1057" class="Record">*.IsMagmaHomomorphism</a> <a id="12784" href="Algebra.Morphism.Structures.html#12428" class="Bound Operator">⟦_⟧</a>
<a id="12792" href="Algebra.Morphism.Structures.html#12738" class="Function">*-isMagmaHomomorphism</a> <a id="12814" class="Symbol">=</a> <a id="12816" class="Keyword">record</a>
<a id="12829" class="Symbol">{</a> <a id="12831" href="Algebra.Morphism.Structures.html#1133" class="Field">isRelHomomorphism</a> <a id="12849" class="Symbol">=</a> <a id="12851" href="Algebra.Morphism.Structures.html#1133" class="Function">isRelHomomorphism</a>
<a id="12875" class="Symbol">;</a> <a id="12877" href="Algebra.Morphism.Structures.html#1191" class="Field">homo</a> <a id="12882" class="Symbol">=</a> <a id="12884" href="Algebra.Morphism.Structures.html#12539" class="Field">*-homo</a>
<a id="12897" class="Symbol">}</a>
<a id="12902" class="Keyword">record</a> <a id="RingWithoutOneMorphisms.IsRingWithoutOneMonomorphism"></a><a id="12909" href="Algebra.Morphism.Structures.html#12909" class="Record">IsRingWithoutOneMonomorphism</a> <a id="12938" class="Symbol">(</a><a id="12939" href="Algebra.Morphism.Structures.html#12939" class="Bound Operator">⟦_⟧</a> <a id="12943" class="Symbol">:</a> <a id="12945" href="Algebra.Morphism.Structures.html#11979" class="Function">A</a> <a id="12947" class="Symbol"></a> <a id="12949" href="Algebra.Morphism.Structures.html#12132" class="Field">B</a><a id="12950" class="Symbol">)</a> <a id="12952" class="Symbol">:</a> <a id="12954" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="12958" class="Symbol">(</a><a id="12959" href="Algebra.Morphism.Structures.html#11882" class="Bound">a</a> <a id="12961" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="12963" href="Algebra.Morphism.Structures.html#11884" class="Bound">ℓ₁</a> <a id="12966" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="12968" href="Algebra.Morphism.Structures.html#11914" class="Bound">ℓ₂</a><a id="12970" class="Symbol">)</a> <a id="12972" class="Keyword">where</a>
<a id="12982" class="Keyword">field</a>
<a id="RingWithoutOneMorphisms.IsRingWithoutOneMonomorphism.isRingWithoutOneHomomorphism"></a><a id="12994" href="Algebra.Morphism.Structures.html#12994" class="Field">isRingWithoutOneHomomorphism</a> <a id="13023" class="Symbol">:</a> <a id="13025" href="Algebra.Morphism.Structures.html#12398" class="Record">IsRingWithoutOneHomomorphism</a> <a id="13054" href="Algebra.Morphism.Structures.html#12939" class="Bound Operator">⟦_⟧</a>
<a id="RingWithoutOneMorphisms.IsRingWithoutOneMonomorphism.injective"></a><a id="13064" href="Algebra.Morphism.Structures.html#13064" class="Field">injective</a> <a id="13093" class="Symbol">:</a> <a id="13095" href="Function.Definitions.html#842" class="Function">Injective</a> <a id="13105" href="Algebra.Morphism.Structures.html#11989" class="Function Operator">_≈₁_</a> <a id="13110" href="Algebra.Morphism.Structures.html#12142" class="Field Operator">_≈₂_</a> <a id="13115" href="Algebra.Morphism.Structures.html#12939" class="Bound Operator">⟦_⟧</a>
<a id="13124" class="Keyword">open</a> <a id="13129" href="Algebra.Morphism.Structures.html#12398" class="Module">IsRingWithoutOneHomomorphism</a> <a id="13158" href="Algebra.Morphism.Structures.html#12994" class="Field">isRingWithoutOneHomomorphism</a> <a id="13187" class="Keyword">public</a>
<a id="RingWithoutOneMorphisms.IsRingWithoutOneMonomorphism.+-isGroupMonomorphism"></a><a id="13199" href="Algebra.Morphism.Structures.html#13199" class="Function">+-isGroupMonomorphism</a> <a id="13221" class="Symbol">:</a> <a id="13223" href="Algebra.Morphism.Structures.html#4848" class="Record">+.IsGroupMonomorphism</a> <a id="13245" href="Algebra.Morphism.Structures.html#12939" class="Bound Operator">⟦_⟧</a>
<a id="13253" href="Algebra.Morphism.Structures.html#13199" class="Function">+-isGroupMonomorphism</a> <a id="13275" class="Symbol">=</a> <a id="13277" class="Keyword">record</a>
<a id="13290" class="Symbol">{</a> <a id="13292" href="Algebra.Morphism.Structures.html#4924" class="Field">isGroupHomomorphism</a> <a id="13312" class="Symbol">=</a> <a id="13314" href="Algebra.Morphism.Structures.html#12483" class="Function">+-isGroupHomomorphism</a>
<a id="13342" class="Symbol">;</a> <a id="13344" href="Algebra.Morphism.Structures.html#4976" class="Field">injective</a> <a id="13365" class="Symbol">=</a> <a id="13367" href="Algebra.Morphism.Structures.html#13064" class="Field">injective</a>
<a id="13383" class="Symbol">}</a>
<a id="13390" class="Keyword">open</a> <a id="13395" href="Algebra.Morphism.Structures.html#4848" class="Module">+.IsGroupMonomorphism</a> <a id="13417" href="Algebra.Morphism.Structures.html#13199" class="Function">+-isGroupMonomorphism</a> <a id="13439" class="Keyword">public</a>
<a id="13452" class="Keyword">using</a> <a id="13458" class="Symbol">(</a><a id="13459" href="Algebra.Morphism.Structures.html#1569" class="Function">isRelMonomorphism</a><a id="13476" class="Symbol">)</a>
<a id="13484" class="Keyword">renaming</a> <a id="13493" class="Symbol">(</a><a id="13494" href="Algebra.Morphism.Structures.html#3177" class="Function">isMagmaMonomorphism</a> <a id="13514" class="Symbol">to</a> <a id="13517" class="Function">+-isMagmaMonomorphsm</a><a id="13537" class="Symbol">;</a> <a id="13539" href="Algebra.Morphism.Structures.html#5116" class="Function">isMonoidMonomorphism</a> <a id="13560" class="Symbol">to</a> <a id="13563" class="Function">+-isMonoidMonomorphism</a><a id="13585" class="Symbol">)</a>
<a id="RingWithoutOneMorphisms.IsRingWithoutOneMonomorphism.*-isMagmaMonomorphism"></a><a id="13592" href="Algebra.Morphism.Structures.html#13592" class="Function">*-isMagmaMonomorphism</a> <a id="13614" class="Symbol">:</a> <a id="13616" href="Algebra.Morphism.Structures.html#1333" class="Record">*.IsMagmaMonomorphism</a> <a id="13638" href="Algebra.Morphism.Structures.html#12939" class="Bound Operator">⟦_⟧</a>
<a id="13646" href="Algebra.Morphism.Structures.html#13592" class="Function">*-isMagmaMonomorphism</a> <a id="13668" class="Symbol">=</a> <a id="13670" class="Keyword">record</a>
<a id="13683" class="Symbol">{</a> <a id="13685" href="Algebra.Morphism.Structures.html#1409" class="Field">isMagmaHomomorphism</a> <a id="13705" class="Symbol">=</a> <a id="13707" href="Algebra.Morphism.Structures.html#12738" class="Function">*-isMagmaHomomorphism</a>
<a id="13735" class="Symbol">;</a> <a id="13737" href="Algebra.Morphism.Structures.html#1461" class="Field">injective</a> <a id="13757" class="Symbol">=</a> <a id="13759" href="Algebra.Morphism.Structures.html#13064" class="Field">injective</a>
<a id="13775" class="Symbol">}</a>
<a id="13780" class="Keyword">record</a> <a id="RingWithoutOneMorphisms.IsRingWithoutOneIsoMorphism"></a><a id="13787" href="Algebra.Morphism.Structures.html#13787" class="Record">IsRingWithoutOneIsoMorphism</a> <a id="13815" class="Symbol">(</a><a id="13816" href="Algebra.Morphism.Structures.html#13816" class="Bound Operator">⟦_⟧</a> <a id="13820" class="Symbol">:</a> <a id="13822" href="Algebra.Morphism.Structures.html#11979" class="Function">A</a> <a id="13824" class="Symbol"></a> <a id="13826" href="Algebra.Morphism.Structures.html#12132" class="Field">B</a><a id="13827" class="Symbol">)</a> <a id="13829" class="Symbol">:</a> <a id="13831" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="13835" class="Symbol">(</a><a id="13836" href="Algebra.Morphism.Structures.html#11882" class="Bound">a</a> <a id="13838" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="13840" href="Algebra.Morphism.Structures.html#11912" class="Bound">b</a> <a id="13842" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="13844" href="Algebra.Morphism.Structures.html#11884" class="Bound">ℓ₁</a> <a id="13847" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="13849" href="Algebra.Morphism.Structures.html#11914" class="Bound">ℓ₂</a><a id="13851" class="Symbol">)</a> <a id="13853" class="Keyword">where</a>
<a id="13863" class="Keyword">field</a>
<a id="RingWithoutOneMorphisms.IsRingWithoutOneIsoMorphism.isRingWithoutOneMonomorphism"></a><a id="13875" href="Algebra.Morphism.Structures.html#13875" class="Field">isRingWithoutOneMonomorphism</a> <a id="13904" class="Symbol">:</a> <a id="13906" href="Algebra.Morphism.Structures.html#12909" class="Record">IsRingWithoutOneMonomorphism</a> <a id="13935" href="Algebra.Morphism.Structures.html#13816" class="Bound Operator">⟦_⟧</a>
<a id="RingWithoutOneMorphisms.IsRingWithoutOneIsoMorphism.surjective"></a><a id="13945" href="Algebra.Morphism.Structures.html#13945" class="Field">surjective</a> <a id="13974" class="Symbol">:</a> <a id="13976" href="Function.Definitions.html#919" class="Function">Surjective</a> <a id="13987" href="Algebra.Morphism.Structures.html#11989" class="Function Operator">_≈₁_</a> <a id="13992" href="Algebra.Morphism.Structures.html#12142" class="Field Operator">_≈₂_</a> <a id="13997" href="Algebra.Morphism.Structures.html#13816" class="Bound Operator">⟦_⟧</a>
<a id="14006" class="Keyword">open</a> <a id="14011" href="Algebra.Morphism.Structures.html#12909" class="Module">IsRingWithoutOneMonomorphism</a> <a id="14040" href="Algebra.Morphism.Structures.html#13875" class="Field">isRingWithoutOneMonomorphism</a> <a id="14069" class="Keyword">public</a>
<a id="RingWithoutOneMorphisms.IsRingWithoutOneIsoMorphism.+-isGroupIsomorphism"></a><a id="14081" href="Algebra.Morphism.Structures.html#14081" class="Function">+-isGroupIsomorphism</a> <a id="14104" class="Symbol">:</a> <a id="14106" href="Algebra.Morphism.Structures.html#5422" class="Record">+.IsGroupIsomorphism</a> <a id="14127" href="Algebra.Morphism.Structures.html#13816" class="Bound Operator">⟦_⟧</a>
<a id="14135" href="Algebra.Morphism.Structures.html#14081" class="Function">+-isGroupIsomorphism</a> <a id="14157" class="Symbol">=</a> <a id="14159" class="Keyword">record</a>
<a id="14172" class="Symbol">{</a> <a id="14174" href="Algebra.Morphism.Structures.html#5501" class="Field">isGroupMonomorphism</a> <a id="14194" class="Symbol">=</a> <a id="14196" href="Algebra.Morphism.Structures.html#13199" class="Function">+-isGroupMonomorphism</a>
<a id="14224" class="Symbol">;</a> <a id="14226" href="Algebra.Morphism.Structures.html#5553" class="Field">surjective</a> <a id="14247" class="Symbol">=</a> <a id="14249" href="Algebra.Morphism.Structures.html#13945" class="Field">surjective</a>
<a id="14266" class="Symbol">}</a>
<a id="14273" class="Keyword">open</a> <a id="14278" href="Algebra.Morphism.Structures.html#5422" class="Module">+.IsGroupIsomorphism</a> <a id="14299" href="Algebra.Morphism.Structures.html#14081" class="Function">+-isGroupIsomorphism</a> <a id="14320" class="Keyword">public</a>
<a id="14333" class="Keyword">using</a> <a id="14339" class="Symbol">(</a><a id="14340" href="Algebra.Morphism.Structures.html#1989" class="Function">isRelIsomorphism</a><a id="14356" class="Symbol">)</a>
<a id="14364" class="Keyword">renaming</a> <a id="14373" class="Symbol">(</a><a id="14374" href="Algebra.Morphism.Structures.html#3700" class="Function">isMagmaIsomorphism</a> <a id="14393" class="Symbol">to</a> <a id="14396" class="Function">+-isMagmaIsomorphism</a><a id="14416" class="Symbol">;</a> <a id="14418" href="Algebra.Morphism.Structures.html#5662" class="Function">isMonoidIsomorphism</a> <a id="14438" class="Symbol">to</a> <a id="14441" class="Function">+-isMonoidIsomorphism</a><a id="14462" class="Symbol">)</a>
<a id="RingWithoutOneMorphisms.IsRingWithoutOneIsoMorphism.*-isMagmaIsomorphism"></a><a id="14469" href="Algebra.Morphism.Structures.html#14469" class="Function">*-isMagmaIsomorphism</a> <a id="14490" class="Symbol">:</a> <a id="14492" href="Algebra.Morphism.Structures.html#1749" class="Record">*.IsMagmaIsomorphism</a> <a id="14513" href="Algebra.Morphism.Structures.html#13816" class="Bound Operator">⟦_⟧</a>
<a id="14521" href="Algebra.Morphism.Structures.html#14469" class="Function">*-isMagmaIsomorphism</a> <a id="14542" class="Symbol">=</a> <a id="14544" class="Keyword">record</a>
<a id="14557" class="Symbol">{</a> <a id="14559" href="Algebra.Morphism.Structures.html#1828" class="Field">isMagmaMonomorphism</a> <a id="14579" class="Symbol">=</a> <a id="14581" href="Algebra.Morphism.Structures.html#13592" class="Function">*-isMagmaMonomorphism</a>
<a id="14609" class="Symbol">;</a> <a id="14611" href="Algebra.Morphism.Structures.html#1880" class="Field">surjective</a> <a id="14631" class="Symbol">=</a> <a id="14633" href="Algebra.Morphism.Structures.html#13945" class="Field">surjective</a>
<a id="14650" class="Symbol">}</a>
<a id="14654" class="Comment">------------------------------------------------------------------------</a>
<a id="14727" class="Comment">-- Morphisms over ring-like structures</a>
<a id="14766" class="Comment">------------------------------------------------------------------------</a>
<a id="14840" class="Keyword">module</a> <a id="RingMorphisms"></a><a id="14847" href="Algebra.Morphism.Structures.html#14847" class="Module">RingMorphisms</a> <a id="14861" class="Symbol">(</a><a id="14862" href="Algebra.Morphism.Structures.html#14862" class="Bound">R₁</a> <a id="14865" class="Symbol">:</a> <a id="14867" href="Algebra.Bundles.Raw.html#4595" class="Record">RawRing</a> <a id="14875" href="Algebra.Morphism.Structures.html#597" class="Generalizable">a</a> <a id="14877" href="Algebra.Morphism.Structures.html#601" class="Generalizable">ℓ₁</a><a id="14879" class="Symbol">)</a> <a id="14881" class="Symbol">(</a><a id="14882" href="Algebra.Morphism.Structures.html#14882" class="Bound">R₂</a> <a id="14885" class="Symbol">:</a> <a id="14887" href="Algebra.Bundles.Raw.html#4595" class="Record">RawRing</a> <a id="14895" href="Algebra.Morphism.Structures.html#599" class="Generalizable">b</a> <a id="14897" href="Algebra.Morphism.Structures.html#604" class="Generalizable">ℓ₂</a><a id="14899" class="Symbol">)</a> <a id="14901" class="Keyword">where</a>
<a id="14910" class="Keyword">open</a> <a id="14915" href="Algebra.Bundles.Raw.html#4595" class="Module">RawRing</a> <a id="14923" href="Algebra.Morphism.Structures.html#14862" class="Bound">R₁</a> <a id="14926" class="Keyword">renaming</a>
<a id="14939" class="Symbol">(</a> <a id="14941" href="Algebra.Bundles.Raw.html#4704" class="Field">Carrier</a> <a id="14949" class="Symbol">to</a> <a id="14952" class="Field">A</a><a id="14953" class="Symbol">;</a> <a id="14955" href="Algebra.Bundles.Raw.html#4724" class="Field Operator">_≈_</a> <a id="14959" class="Symbol">to</a> <a id="14962" class="Field Operator">_≈₁_</a>
<a id="14971" class="Symbol">;</a> <a id="14973" href="Algebra.Bundles.Raw.html#4804" class="Field Operator">-_</a> <a id="14976" class="Symbol">to</a> <a id="14979" class="Field Operator">-₁_</a>
<a id="14987" class="Symbol">;</a> <a id="14989" href="Algebra.Bundles.Raw.html#4873" class="Function">rawSemiring</a> <a id="15001" class="Symbol">to</a> <a id="15004" class="Function">rawSemiring₁</a>
<a id="15021" class="Symbol">;</a> <a id="15023" href="Algebra.Bundles.Raw.html#3413" class="Function">*-rawMonoid</a> <a id="15035" class="Symbol">to</a> <a id="15038" class="Function">*-rawMonoid₁</a>
<a id="15055" class="Symbol">;</a> <a id="15057" href="Algebra.Bundles.Raw.html#4009" class="Function">+-rawGroup</a> <a id="15068" class="Symbol">to</a> <a id="15071" class="Function">+-rawGroup₁</a><a id="15082" class="Symbol">)</a>
<a id="15087" class="Keyword">open</a> <a id="15092" href="Algebra.Bundles.Raw.html#4595" class="Module">RawRing</a> <a id="15100" href="Algebra.Morphism.Structures.html#14882" class="Bound">R₂</a> <a id="15103" class="Keyword">renaming</a>
<a id="15116" class="Symbol">(</a> <a id="15118" href="Algebra.Bundles.Raw.html#4704" class="Field">Carrier</a> <a id="15126" class="Symbol">to</a> <a id="15129" class="Field">B</a><a id="15130" class="Symbol">;</a> <a id="15132" href="Algebra.Bundles.Raw.html#4724" class="Field Operator">_≈_</a> <a id="15136" class="Symbol">to</a> <a id="15139" class="Field Operator">_≈₂_</a>
<a id="15148" class="Symbol">;</a> <a id="15150" href="Algebra.Bundles.Raw.html#4804" class="Field Operator">-_</a> <a id="15153" class="Symbol">to</a> <a id="15156" class="Field Operator">-₂_</a>
<a id="15164" class="Symbol">;</a> <a id="15166" href="Algebra.Bundles.Raw.html#4873" class="Function">rawSemiring</a> <a id="15178" class="Symbol">to</a> <a id="15181" class="Function">rawSemiring₂</a>
<a id="15198" class="Symbol">;</a> <a id="15200" href="Algebra.Bundles.Raw.html#3413" class="Function">*-rawMonoid</a> <a id="15212" class="Symbol">to</a> <a id="15215" class="Function">*-rawMonoid₂</a>
<a id="15232" class="Symbol">;</a> <a id="15234" href="Algebra.Bundles.Raw.html#4009" class="Function">+-rawGroup</a> <a id="15245" class="Symbol">to</a> <a id="15248" class="Function">+-rawGroup₂</a><a id="15259" class="Symbol">)</a>
<a id="15264" class="Keyword">module</a> <a id="RingMorphisms.+"></a><a id="15271" href="Algebra.Morphism.Structures.html#15271" class="Module">+</a> <a id="15273" class="Symbol">=</a> <a id="15275" href="Algebra.Morphism.Structures.html#4157" class="Module">GroupMorphisms</a> <a id="15291" href="Algebra.Morphism.Structures.html#15071" class="Function">+-rawGroup₁</a> <a id="15304" href="Algebra.Morphism.Structures.html#15248" class="Function">+-rawGroup₂</a>
<a id="15318" class="Keyword">module</a> <a id="RingMorphisms.*"></a><a id="15325" href="Algebra.Morphism.Structures.html#15325" class="Module">*</a> <a id="15327" class="Symbol">=</a> <a id="15329" href="Algebra.Morphism.Structures.html#2353" class="Module">MonoidMorphisms</a> <a id="15345" href="Algebra.Morphism.Structures.html#15038" class="Function">*-rawMonoid₁</a> <a id="15358" href="Algebra.Morphism.Structures.html#15215" class="Function">*-rawMonoid₂</a>
<a id="15374" class="Keyword">open</a> <a id="15379" href="Algebra.Morphism.Definitions.html" class="Module">MorphismDefinitions</a> <a id="15399" href="Algebra.Morphism.Structures.html#14952" class="Function">A</a> <a id="15401" href="Algebra.Morphism.Structures.html#15129" class="Field">B</a> <a id="15403" href="Algebra.Morphism.Structures.html#15139" class="Field Operator">_≈₂_</a>
<a id="15410" class="Keyword">open</a> <a id="15415" href="Algebra.Morphism.Structures.html#9054" class="Module">SemiringMorphisms</a> <a id="15433" href="Algebra.Morphism.Structures.html#15004" class="Function">rawSemiring₁</a> <a id="15446" href="Algebra.Morphism.Structures.html#15181" class="Function">rawSemiring₂</a>
<a id="15463" class="Keyword">record</a> <a id="RingMorphisms.IsRingHomomorphism"></a><a id="15470" href="Algebra.Morphism.Structures.html#15470" class="Record">IsRingHomomorphism</a> <a id="15489" class="Symbol">(</a><a id="15490" href="Algebra.Morphism.Structures.html#15490" class="Bound Operator">⟦_⟧</a> <a id="15494" class="Symbol">:</a> <a id="15496" href="Algebra.Morphism.Structures.html#14952" class="Function">A</a> <a id="15498" class="Symbol"></a> <a id="15500" href="Algebra.Morphism.Structures.html#15129" class="Field">B</a><a id="15501" class="Symbol">)</a> <a id="15503" class="Symbol">:</a> <a id="15505" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="15509" class="Symbol">(</a><a id="15510" href="Algebra.Morphism.Structures.html#14875" class="Bound">a</a> <a id="15512" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="15514" href="Algebra.Morphism.Structures.html#14877" class="Bound">ℓ₁</a> <a id="15517" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="15519" href="Algebra.Morphism.Structures.html#14897" class="Bound">ℓ₂</a><a id="15521" class="Symbol">)</a> <a id="15523" class="Keyword">where</a>
<a id="15533" class="Keyword">field</a>
<a id="RingMorphisms.IsRingHomomorphism.isSemiringHomomorphism"></a><a id="15545" href="Algebra.Morphism.Structures.html#15545" class="Field">isSemiringHomomorphism</a> <a id="15568" class="Symbol">:</a> <a id="15570" href="Algebra.Morphism.Structures.html#9618" class="Record">IsSemiringHomomorphism</a> <a id="15593" href="Algebra.Morphism.Structures.html#15490" class="Bound Operator">⟦_⟧</a>
<a id="RingMorphisms.IsRingHomomorphism.-‿homo"></a><a id="15603" href="Algebra.Morphism.Structures.html#15603" class="Field">-‿homo</a> <a id="15610" class="Symbol">:</a> <a id="15612" href="Algebra.Morphism.Definitions.html#753" class="Function">Homomorphic₁</a> <a id="15625" href="Algebra.Morphism.Structures.html#15490" class="Bound Operator">⟦_⟧</a> <a id="15629" href="Algebra.Morphism.Structures.html#14979" class="Function Operator">-₁_</a> <a id="15633" href="Algebra.Morphism.Structures.html#15156" class="Field Operator">-₂_</a>
<a id="15642" class="Keyword">open</a> <a id="15647" href="Algebra.Morphism.Structures.html#9618" class="Module">IsSemiringHomomorphism</a> <a id="15670" href="Algebra.Morphism.Structures.html#15545" class="Field">isSemiringHomomorphism</a> <a id="15693" class="Keyword">public</a>
<a id="RingMorphisms.IsRingHomomorphism.+-isGroupHomomorphism"></a><a id="15705" href="Algebra.Morphism.Structures.html#15705" class="Function">+-isGroupHomomorphism</a> <a id="15727" class="Symbol">:</a> <a id="15729" href="Algebra.Morphism.Structures.html#4598" class="Record">+.IsGroupHomomorphism</a> <a id="15751" href="Algebra.Morphism.Structures.html#15490" class="Bound Operator">⟦_⟧</a>
<a id="15759" href="Algebra.Morphism.Structures.html#15705" class="Function">+-isGroupHomomorphism</a> <a id="15781" class="Symbol">=</a> <a id="15783" class="Keyword">record</a>
<a id="15796" class="Symbol">{</a> <a id="15798" href="Algebra.Morphism.Structures.html#4674" class="Field">isMonoidHomomorphism</a> <a id="15819" class="Symbol">=</a> <a id="15821" href="Algebra.Morphism.Structures.html#6798" class="Function">+-isMonoidHomomorphism</a>
<a id="15850" class="Symbol">;</a> <a id="15852" href="Algebra.Morphism.Structures.html#4728" class="Field">⁻¹-homo</a> <a id="15860" class="Symbol">=</a> <a id="15862" href="Algebra.Morphism.Structures.html#15603" class="Field">-‿homo</a>
<a id="15875" class="Symbol">}</a>
<a id="15880" class="Keyword">record</a> <a id="RingMorphisms.IsRingMonomorphism"></a><a id="15887" href="Algebra.Morphism.Structures.html#15887" class="Record">IsRingMonomorphism</a> <a id="15906" class="Symbol">(</a><a id="15907" href="Algebra.Morphism.Structures.html#15907" class="Bound Operator">⟦_⟧</a> <a id="15911" class="Symbol">:</a> <a id="15913" href="Algebra.Morphism.Structures.html#14952" class="Function">A</a> <a id="15915" class="Symbol"></a> <a id="15917" href="Algebra.Morphism.Structures.html#15129" class="Field">B</a><a id="15918" class="Symbol">)</a> <a id="15920" class="Symbol">:</a> <a id="15922" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="15926" class="Symbol">(</a><a id="15927" href="Algebra.Morphism.Structures.html#14875" class="Bound">a</a> <a id="15929" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="15931" href="Algebra.Morphism.Structures.html#14877" class="Bound">ℓ₁</a> <a id="15934" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="15936" href="Algebra.Morphism.Structures.html#14897" class="Bound">ℓ₂</a><a id="15938" class="Symbol">)</a> <a id="15940" class="Keyword">where</a>
<a id="15950" class="Keyword">field</a>
<a id="RingMorphisms.IsRingMonomorphism.isRingHomomorphism"></a><a id="15962" href="Algebra.Morphism.Structures.html#15962" class="Field">isRingHomomorphism</a> <a id="15981" class="Symbol">:</a> <a id="15983" href="Algebra.Morphism.Structures.html#15470" class="Record">IsRingHomomorphism</a> <a id="16002" href="Algebra.Morphism.Structures.html#15907" class="Bound Operator">⟦_⟧</a>
<a id="RingMorphisms.IsRingMonomorphism.injective"></a><a id="16012" href="Algebra.Morphism.Structures.html#16012" class="Field">injective</a> <a id="16031" class="Symbol">:</a> <a id="16033" href="Function.Definitions.html#842" class="Function">Injective</a> <a id="16043" href="Algebra.Morphism.Structures.html#14962" class="Function Operator">_≈₁_</a> <a id="16048" href="Algebra.Morphism.Structures.html#15139" class="Field Operator">_≈₂_</a> <a id="16053" href="Algebra.Morphism.Structures.html#15907" class="Bound Operator">⟦_⟧</a>
<a id="16062" class="Keyword">open</a> <a id="16067" href="Algebra.Morphism.Structures.html#15470" class="Module">IsRingHomomorphism</a> <a id="16086" href="Algebra.Morphism.Structures.html#15962" class="Field">isRingHomomorphism</a> <a id="16105" class="Keyword">public</a>
<a id="RingMorphisms.IsRingMonomorphism.isSemiringMonomorphism"></a><a id="16117" href="Algebra.Morphism.Structures.html#16117" class="Function">isSemiringMonomorphism</a> <a id="16140" class="Symbol">:</a> <a id="16142" href="Algebra.Morphism.Structures.html#10057" class="Record">IsSemiringMonomorphism</a> <a id="16165" href="Algebra.Morphism.Structures.html#15907" class="Bound Operator">⟦_⟧</a>
<a id="16173" href="Algebra.Morphism.Structures.html#16117" class="Function">isSemiringMonomorphism</a> <a id="16196" class="Symbol">=</a> <a id="16198" class="Keyword">record</a>
<a id="16211" class="Symbol">{</a> <a id="16213" href="Algebra.Morphism.Structures.html#10136" class="Field">isSemiringHomomorphism</a> <a id="16236" class="Symbol">=</a> <a id="16238" href="Algebra.Morphism.Structures.html#15545" class="Function">isSemiringHomomorphism</a>
<a id="16267" class="Symbol">;</a> <a id="16269" href="Algebra.Morphism.Structures.html#10194" class="Field">injective</a> <a id="16279" class="Symbol">=</a> <a id="16281" href="Algebra.Morphism.Structures.html#16012" class="Field">injective</a>
<a id="16297" class="Symbol">}</a>
<a id="RingMorphisms.IsRingMonomorphism.+-isGroupMonomorphism"></a><a id="16304" href="Algebra.Morphism.Structures.html#16304" class="Function">+-isGroupMonomorphism</a> <a id="16326" class="Symbol">:</a> <a id="16328" href="Algebra.Morphism.Structures.html#4848" class="Record">+.IsGroupMonomorphism</a> <a id="16350" href="Algebra.Morphism.Structures.html#15907" class="Bound Operator">⟦_⟧</a>
<a id="16358" href="Algebra.Morphism.Structures.html#16304" class="Function">+-isGroupMonomorphism</a> <a id="16380" class="Symbol">=</a> <a id="16382" class="Keyword">record</a>
<a id="16395" class="Symbol">{</a> <a id="16397" href="Algebra.Morphism.Structures.html#4924" class="Field">isGroupHomomorphism</a> <a id="16417" class="Symbol">=</a> <a id="16419" href="Algebra.Morphism.Structures.html#15705" class="Function">+-isGroupHomomorphism</a>
<a id="16447" class="Symbol">;</a> <a id="16449" href="Algebra.Morphism.Structures.html#4976" class="Field">injective</a> <a id="16469" class="Symbol">=</a> <a id="16471" href="Algebra.Morphism.Structures.html#16012" class="Field">injective</a>
<a id="16487" class="Symbol">}</a>
<a id="16494" class="Keyword">open</a> <a id="16499" href="Algebra.Morphism.Structures.html#4848" class="Module">+.IsGroupMonomorphism</a> <a id="16521" href="Algebra.Morphism.Structures.html#16304" class="Function">+-isGroupMonomorphism</a>
<a id="16549" class="Keyword">using</a> <a id="16555" class="Symbol">(</a><a id="16556" href="Algebra.Morphism.Structures.html#1569" class="Function">isRelMonomorphism</a><a id="16573" class="Symbol">)</a>
<a id="16581" class="Keyword">renaming</a> <a id="16590" class="Symbol">(</a> <a id="16592" href="Algebra.Morphism.Structures.html#3177" class="Function">isMagmaMonomorphism</a> <a id="16612" class="Symbol">to</a> <a id="16615" class="Function">+-isMagmaMonomorphism</a>
<a id="16652" class="Symbol">;</a> <a id="16654" href="Algebra.Morphism.Structures.html#5116" class="Function">isMonoidMonomorphism</a> <a id="16675" class="Symbol">to</a> <a id="16678" class="Function">+-isMonoidMonomorphism</a>
<a id="16716" class="Symbol">)</a>
<a id="RingMorphisms.IsRingMonomorphism.*-isMonoidMonomorphism"></a><a id="16723" href="Algebra.Morphism.Structures.html#16723" class="Function">*-isMonoidMonomorphism</a> <a id="16746" class="Symbol">:</a> <a id="16748" href="Algebra.Morphism.Structures.html#2935" class="Record">*.IsMonoidMonomorphism</a> <a id="16771" href="Algebra.Morphism.Structures.html#15907" class="Bound Operator">⟦_⟧</a>
<a id="16779" href="Algebra.Morphism.Structures.html#16723" class="Function">*-isMonoidMonomorphism</a> <a id="16802" class="Symbol">=</a> <a id="16804" class="Keyword">record</a>
<a id="16817" class="Symbol">{</a> <a id="16819" href="Algebra.Morphism.Structures.html#3012" class="Field">isMonoidHomomorphism</a> <a id="16840" class="Symbol">=</a> <a id="16842" href="Algebra.Morphism.Structures.html#9874" class="Function">*-isMonoidHomomorphism</a>
<a id="16871" class="Symbol">;</a> <a id="16873" href="Algebra.Morphism.Structures.html#3066" class="Field">injective</a> <a id="16894" class="Symbol">=</a> <a id="16896" href="Algebra.Morphism.Structures.html#16012" class="Field">injective</a>
<a id="16912" class="Symbol">}</a>
<a id="16919" class="Keyword">open</a> <a id="16924" href="Algebra.Morphism.Structures.html#2935" class="Module">*.IsMonoidMonomorphism</a> <a id="16947" href="Algebra.Morphism.Structures.html#16723" class="Function">*-isMonoidMonomorphism</a> <a id="16970" class="Keyword">public</a>
<a id="16983" class="Keyword">using</a> <a id="16989" class="Symbol">()</a>
<a id="16998" class="Keyword">renaming</a> <a id="17007" class="Symbol">(</a><a id="17008" href="Algebra.Morphism.Structures.html#3177" class="Function">isMagmaMonomorphism</a> <a id="17028" class="Symbol">to</a> <a id="17031" class="Function">*-isMagmaMonomorphism</a><a id="17052" class="Symbol">)</a>
<a id="17058" class="Keyword">record</a> <a id="RingMorphisms.IsRingIsomorphism"></a><a id="17065" href="Algebra.Morphism.Structures.html#17065" class="Record">IsRingIsomorphism</a> <a id="17083" class="Symbol">(</a><a id="17084" href="Algebra.Morphism.Structures.html#17084" class="Bound Operator">⟦_⟧</a> <a id="17088" class="Symbol">:</a> <a id="17090" href="Algebra.Morphism.Structures.html#14952" class="Function">A</a> <a id="17092" class="Symbol"></a> <a id="17094" href="Algebra.Morphism.Structures.html#15129" class="Field">B</a><a id="17095" class="Symbol">)</a> <a id="17097" class="Symbol">:</a> <a id="17099" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="17103" class="Symbol">(</a><a id="17104" href="Algebra.Morphism.Structures.html#14875" class="Bound">a</a> <a id="17106" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="17108" href="Algebra.Morphism.Structures.html#14895" class="Bound">b</a> <a id="17110" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="17112" href="Algebra.Morphism.Structures.html#14877" class="Bound">ℓ₁</a> <a id="17115" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="17117" href="Algebra.Morphism.Structures.html#14897" class="Bound">ℓ₂</a><a id="17119" class="Symbol">)</a> <a id="17121" class="Keyword">where</a>
<a id="17131" class="Keyword">field</a>
<a id="RingMorphisms.IsRingIsomorphism.isRingMonomorphism"></a><a id="17143" href="Algebra.Morphism.Structures.html#17143" class="Field">isRingMonomorphism</a> <a id="17162" class="Symbol">:</a> <a id="17164" href="Algebra.Morphism.Structures.html#15887" class="Record">IsRingMonomorphism</a> <a id="17183" href="Algebra.Morphism.Structures.html#17084" class="Bound Operator">⟦_⟧</a>
<a id="RingMorphisms.IsRingIsomorphism.surjective"></a><a id="17193" href="Algebra.Morphism.Structures.html#17193" class="Field">surjective</a> <a id="17212" class="Symbol">:</a> <a id="17214" href="Function.Definitions.html#919" class="Function">Surjective</a> <a id="17225" href="Algebra.Morphism.Structures.html#14962" class="Function Operator">_≈₁_</a> <a id="17230" href="Algebra.Morphism.Structures.html#15139" class="Field Operator">_≈₂_</a> <a id="17235" href="Algebra.Morphism.Structures.html#17084" class="Bound Operator">⟦_⟧</a>
<a id="17244" class="Keyword">open</a> <a id="17249" href="Algebra.Morphism.Structures.html#15887" class="Module">IsRingMonomorphism</a> <a id="17268" href="Algebra.Morphism.Structures.html#17143" class="Field">isRingMonomorphism</a> <a id="17287" class="Keyword">public</a>
<a id="RingMorphisms.IsRingIsomorphism.isSemiringIsomorphism"></a><a id="17299" href="Algebra.Morphism.Structures.html#17299" class="Function">isSemiringIsomorphism</a> <a id="17321" class="Symbol">:</a> <a id="17323" href="Algebra.Morphism.Structures.html#10850" class="Record">IsSemiringIsomorphism</a> <a id="17345" href="Algebra.Morphism.Structures.html#17084" class="Bound Operator">⟦_⟧</a>
<a id="17353" href="Algebra.Morphism.Structures.html#17299" class="Function">isSemiringIsomorphism</a> <a id="17375" class="Symbol">=</a> <a id="17377" class="Keyword">record</a>
<a id="17390" class="Symbol">{</a> <a id="17392" href="Algebra.Morphism.Structures.html#10932" class="Field">isSemiringMonomorphism</a> <a id="17415" class="Symbol">=</a> <a id="17417" href="Algebra.Morphism.Structures.html#16117" class="Function">isSemiringMonomorphism</a>
<a id="17446" class="Symbol">;</a> <a id="17448" href="Algebra.Morphism.Structures.html#10990" class="Field">surjective</a> <a id="17459" class="Symbol">=</a> <a id="17461" href="Algebra.Morphism.Structures.html#17193" class="Field">surjective</a>
<a id="17478" class="Symbol">}</a>
<a id="RingMorphisms.IsRingIsomorphism.+-isGroupIsomorphism"></a><a id="17485" href="Algebra.Morphism.Structures.html#17485" class="Function">+-isGroupIsomorphism</a> <a id="17506" class="Symbol">:</a> <a id="17508" href="Algebra.Morphism.Structures.html#5422" class="Record">+.IsGroupIsomorphism</a> <a id="17529" href="Algebra.Morphism.Structures.html#17084" class="Bound Operator">⟦_⟧</a>
<a id="17537" href="Algebra.Morphism.Structures.html#17485" class="Function">+-isGroupIsomorphism</a> <a id="17558" class="Symbol">=</a> <a id="17560" class="Keyword">record</a>
<a id="17573" class="Symbol">{</a> <a id="17575" href="Algebra.Morphism.Structures.html#5501" class="Field">isGroupMonomorphism</a> <a id="17595" class="Symbol">=</a> <a id="17597" href="Algebra.Morphism.Structures.html#16304" class="Function">+-isGroupMonomorphism</a>
<a id="17625" class="Symbol">;</a> <a id="17627" href="Algebra.Morphism.Structures.html#5553" class="Field">surjective</a> <a id="17647" class="Symbol">=</a> <a id="17649" href="Algebra.Morphism.Structures.html#17193" class="Field">surjective</a>
<a id="17666" class="Symbol">}</a>
<a id="17673" class="Keyword">open</a> <a id="17678" href="Algebra.Morphism.Structures.html#5422" class="Module">+.IsGroupIsomorphism</a> <a id="17699" href="Algebra.Morphism.Structures.html#17485" class="Function">+-isGroupIsomorphism</a>
<a id="17726" class="Keyword">using</a> <a id="17732" class="Symbol">(</a><a id="17733" href="Algebra.Morphism.Structures.html#1989" class="Function">isRelIsomorphism</a><a id="17749" class="Symbol">)</a>
<a id="17757" class="Keyword">renaming</a> <a id="17766" class="Symbol">(</a> <a id="17768" href="Algebra.Morphism.Structures.html#3700" class="Function">isMagmaIsomorphism</a> <a id="17787" class="Symbol">to</a> <a id="17790" class="Function">+-isMagmaIsomorphism</a>
<a id="17826" class="Symbol">;</a> <a id="17828" href="Algebra.Morphism.Structures.html#5662" class="Function">isMonoidIsomorphism</a> <a id="17848" class="Symbol">to</a> <a id="17851" class="Function">+-isMonoidIsomorphisn</a>
<a id="17888" class="Symbol">)</a>
<a id="RingMorphisms.IsRingIsomorphism.*-isMonoidIsomorphism"></a><a id="17895" href="Algebra.Morphism.Structures.html#17895" class="Function">*-isMonoidIsomorphism</a> <a id="17917" class="Symbol">:</a> <a id="17919" href="Algebra.Morphism.Structures.html#3454" class="Record">*.IsMonoidIsomorphism</a> <a id="17941" href="Algebra.Morphism.Structures.html#17084" class="Bound Operator">⟦_⟧</a>
<a id="17949" href="Algebra.Morphism.Structures.html#17895" class="Function">*-isMonoidIsomorphism</a> <a id="17971" class="Symbol">=</a> <a id="17973" class="Keyword">record</a>
<a id="17986" class="Symbol">{</a> <a id="17988" href="Algebra.Morphism.Structures.html#3534" class="Field">isMonoidMonomorphism</a> <a id="18009" class="Symbol">=</a> <a id="18011" href="Algebra.Morphism.Structures.html#16723" class="Function">*-isMonoidMonomorphism</a>
<a id="18040" class="Symbol">;</a> <a id="18042" href="Algebra.Morphism.Structures.html#3588" class="Field">surjective</a> <a id="18063" class="Symbol">=</a> <a id="18065" href="Algebra.Morphism.Structures.html#17193" class="Field">surjective</a>
<a id="18082" class="Symbol">}</a>
<a id="18089" class="Keyword">open</a> <a id="18094" href="Algebra.Morphism.Structures.html#3454" class="Module">*.IsMonoidIsomorphism</a> <a id="18116" href="Algebra.Morphism.Structures.html#17895" class="Function">*-isMonoidIsomorphism</a> <a id="18138" class="Keyword">public</a>
<a id="18151" class="Keyword">using</a> <a id="18157" class="Symbol">()</a>
<a id="18166" class="Keyword">renaming</a> <a id="18175" class="Symbol">(</a><a id="18176" href="Algebra.Morphism.Structures.html#3700" class="Function">isMagmaIsomorphism</a> <a id="18195" class="Symbol">to</a> <a id="18198" class="Function">*-isMagmaIsomorphisn</a><a id="18218" class="Symbol">)</a>
<a id="18221" class="Comment">------------------------------------------------------------------------</a>
<a id="18294" class="Comment">-- Morphisms over quasigroup-like structures</a>
<a id="18339" class="Comment">------------------------------------------------------------------------</a>
<a id="18413" class="Keyword">module</a> <a id="QuasigroupMorphisms"></a><a id="18420" href="Algebra.Morphism.Structures.html#18420" class="Module">QuasigroupMorphisms</a> <a id="18440" class="Symbol">(</a><a id="18441" href="Algebra.Morphism.Structures.html#18441" class="Bound">Q₁</a> <a id="18444" class="Symbol">:</a> <a id="18446" href="Algebra.Bundles.Raw.html#5560" class="Record">RawQuasigroup</a> <a id="18460" href="Algebra.Morphism.Structures.html#597" class="Generalizable">a</a> <a id="18462" href="Algebra.Morphism.Structures.html#601" class="Generalizable">ℓ₁</a><a id="18464" class="Symbol">)</a> <a id="18466" class="Symbol">(</a><a id="18467" href="Algebra.Morphism.Structures.html#18467" class="Bound">Q₂</a> <a id="18470" class="Symbol">:</a> <a id="18472" href="Algebra.Bundles.Raw.html#5560" class="Record">RawQuasigroup</a> <a id="18486" href="Algebra.Morphism.Structures.html#599" class="Generalizable">b</a> <a id="18488" href="Algebra.Morphism.Structures.html#604" class="Generalizable">ℓ₂</a><a id="18490" class="Symbol">)</a> <a id="18492" class="Keyword">where</a>
<a id="18501" class="Keyword">open</a> <a id="18506" href="Algebra.Bundles.Raw.html#5560" class="Module">RawQuasigroup</a> <a id="18520" href="Algebra.Morphism.Structures.html#18441" class="Bound">Q₁</a> <a id="18523" class="Keyword">renaming</a> <a id="18532" class="Symbol">(</a><a id="18533" href="Algebra.Bundles.Raw.html#5678" class="Field">Carrier</a> <a id="18541" class="Symbol">to</a> <a id="18544" class="Field">A</a><a id="18545" class="Symbol">;</a> <a id="18547" href="Algebra.Bundles.Raw.html#5803" class="Function">∙-rawMagma</a> <a id="18558" class="Symbol">to</a> <a id="18561" class="Function">∙-rawMagma₁</a><a id="18572" class="Symbol">;</a>
<a id="18608" href="Algebra.Bundles.Raw.html#5892" class="Function">\\-rawMagma</a> <a id="18620" class="Symbol">to</a> <a id="18623" class="Function">\\-rawMagma₁</a><a id="18635" class="Symbol">;</a> <a id="18637" href="Algebra.Bundles.Raw.html#5984" class="Function">//-rawMagma</a> <a id="18649" class="Symbol">to</a> <a id="18652" class="Function">//-rawMagma₁</a><a id="18664" class="Symbol">;</a>
<a id="18700" href="Algebra.Bundles.Raw.html#5698" class="Field Operator">_≈_</a> <a id="18704" class="Symbol">to</a> <a id="18707" class="Field Operator">_≈₁_</a><a id="18711" class="Symbol">;</a> <a id="18713" href="Algebra.Bundles.Raw.html#5726" class="Field Operator">_∙_</a> <a id="18717" class="Symbol">to</a> <a id="18720" class="Field Operator">_∙₁_</a><a id="18724" class="Symbol">;</a> <a id="18726" href="Algebra.Bundles.Raw.html#5752" class="Field Operator">_\\_</a> <a id="18731" class="Symbol">to</a> <a id="18734" class="Field Operator">_\\₁_</a><a id="18739" class="Symbol">;</a> <a id="18741" href="Algebra.Bundles.Raw.html#5778" class="Field Operator">_//_</a> <a id="18746" class="Symbol">to</a> <a id="18749" class="Field Operator">_//₁_</a><a id="18754" class="Symbol">)</a>
<a id="18758" class="Keyword">open</a> <a id="18763" href="Algebra.Bundles.Raw.html#5560" class="Module">RawQuasigroup</a> <a id="18777" href="Algebra.Morphism.Structures.html#18467" class="Bound">Q₂</a> <a id="18780" class="Keyword">renaming</a> <a id="18789" class="Symbol">(</a><a id="18790" href="Algebra.Bundles.Raw.html#5678" class="Field">Carrier</a> <a id="18798" class="Symbol">to</a> <a id="18801" class="Field">B</a><a id="18802" class="Symbol">;</a> <a id="18804" href="Algebra.Bundles.Raw.html#5803" class="Function">∙-rawMagma</a> <a id="18815" class="Symbol">to</a> <a id="18818" class="Function">∙-rawMagma₂</a><a id="18829" class="Symbol">;</a>
<a id="18865" href="Algebra.Bundles.Raw.html#5892" class="Function">\\-rawMagma</a> <a id="18877" class="Symbol">to</a> <a id="18880" class="Function">\\-rawMagma₂</a><a id="18892" class="Symbol">;</a> <a id="18894" href="Algebra.Bundles.Raw.html#5984" class="Function">//-rawMagma</a> <a id="18906" class="Symbol">to</a> <a id="18909" class="Function">//-rawMagma₂</a><a id="18921" class="Symbol">;</a>
<a id="18957" href="Algebra.Bundles.Raw.html#5698" class="Field Operator">_≈_</a> <a id="18961" class="Symbol">to</a> <a id="18964" class="Field Operator">_≈₂_</a><a id="18968" class="Symbol">;</a> <a id="18970" href="Algebra.Bundles.Raw.html#5726" class="Field Operator">_∙_</a> <a id="18974" class="Symbol">to</a> <a id="18977" class="Field Operator">_∙₂_</a><a id="18981" class="Symbol">;</a> <a id="18983" href="Algebra.Bundles.Raw.html#5752" class="Field Operator">_\\_</a> <a id="18988" class="Symbol">to</a> <a id="18991" class="Field Operator">_\\₂_</a><a id="18996" class="Symbol">;</a> <a id="18998" href="Algebra.Bundles.Raw.html#5778" class="Field Operator">_//_</a> <a id="19003" class="Symbol">to</a> <a id="19006" class="Field Operator">_//₂_</a><a id="19011" class="Symbol">)</a>
<a id="19016" class="Keyword">module</a> <a id="QuasigroupMorphisms.∙"></a><a id="19023" href="Algebra.Morphism.Structures.html#19023" class="Module"></a> <a id="19026" class="Symbol">=</a> <a id="19028" href="Algebra.Morphism.Structures.html#810" class="Module">MagmaMorphisms</a> <a id="19043" href="Algebra.Morphism.Structures.html#18561" class="Function">∙-rawMagma₁</a> <a id="19055" href="Algebra.Morphism.Structures.html#18818" class="Function">∙-rawMagma₂</a>
<a id="19069" class="Keyword">module</a> <a id="QuasigroupMorphisms.\\"></a><a id="19076" href="Algebra.Morphism.Structures.html#19076" class="Module">\\</a> <a id="19079" class="Symbol">=</a> <a id="19081" href="Algebra.Morphism.Structures.html#810" class="Module">MagmaMorphisms</a> <a id="19096" href="Algebra.Morphism.Structures.html#18623" class="Function">\\-rawMagma₁</a> <a id="19109" href="Algebra.Morphism.Structures.html#18880" class="Function">\\-rawMagma₂</a>
<a id="19124" class="Keyword">module</a> <a id="QuasigroupMorphisms.//"></a><a id="19131" href="Algebra.Morphism.Structures.html#19131" class="Module">//</a> <a id="19134" class="Symbol">=</a> <a id="19136" href="Algebra.Morphism.Structures.html#810" class="Module">MagmaMorphisms</a> <a id="19151" href="Algebra.Morphism.Structures.html#18652" class="Function">//-rawMagma₁</a> <a id="19164" href="Algebra.Morphism.Structures.html#18909" class="Function">//-rawMagma₂</a>
<a id="19180" class="Keyword">open</a> <a id="19185" href="Algebra.Morphism.Definitions.html" class="Module">MorphismDefinitions</a> <a id="19205" href="Algebra.Morphism.Structures.html#18544" class="Function">A</a> <a id="19207" href="Algebra.Morphism.Structures.html#18801" class="Field">B</a> <a id="19209" href="Algebra.Morphism.Structures.html#18964" class="Field Operator">_≈₂_</a>
<a id="19217" class="Keyword">record</a> <a id="QuasigroupMorphisms.IsQuasigroupHomomorphism"></a><a id="19224" href="Algebra.Morphism.Structures.html#19224" class="Record">IsQuasigroupHomomorphism</a> <a id="19249" class="Symbol">(</a><a id="19250" href="Algebra.Morphism.Structures.html#19250" class="Bound Operator">⟦_⟧</a> <a id="19254" class="Symbol">:</a> <a id="19256" href="Algebra.Morphism.Structures.html#18544" class="Function">A</a> <a id="19258" class="Symbol"></a> <a id="19260" href="Algebra.Morphism.Structures.html#18801" class="Field">B</a><a id="19261" class="Symbol">)</a> <a id="19263" class="Symbol">:</a> <a id="19265" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="19269" class="Symbol">(</a><a id="19270" href="Algebra.Morphism.Structures.html#18460" class="Bound">a</a> <a id="19272" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="19274" href="Algebra.Morphism.Structures.html#18462" class="Bound">ℓ₁</a> <a id="19277" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="19279" href="Algebra.Morphism.Structures.html#18488" class="Bound">ℓ₂</a><a id="19281" class="Symbol">)</a> <a id="19283" class="Keyword">where</a>
<a id="19293" class="Keyword">field</a>
<a id="QuasigroupMorphisms.IsQuasigroupHomomorphism.isRelHomomorphism"></a><a id="19305" href="Algebra.Morphism.Structures.html#19305" class="Field">isRelHomomorphism</a> <a id="19323" class="Symbol">:</a> <a id="19325" href="Relation.Binary.Morphism.Structures.html#751" class="Record">IsRelHomomorphism</a> <a id="19343" href="Algebra.Morphism.Structures.html#18707" class="Function Operator">_≈₁_</a> <a id="19348" href="Algebra.Morphism.Structures.html#18964" class="Field Operator">_≈₂_</a> <a id="19353" href="Algebra.Morphism.Structures.html#19250" class="Bound Operator">⟦_⟧</a>
<a id="QuasigroupMorphisms.IsQuasigroupHomomorphism.∙-homo"></a><a id="19363" href="Algebra.Morphism.Structures.html#19363" class="Field">∙-homo</a> <a id="19381" class="Symbol">:</a> <a id="19383" href="Algebra.Morphism.Definitions.html#852" class="Function">Homomorphic₂</a> <a id="19396" href="Algebra.Morphism.Structures.html#19250" class="Bound Operator">⟦_⟧</a> <a id="19400" href="Algebra.Morphism.Structures.html#18720" class="Function Operator">_∙₁_</a> <a id="19405" href="Algebra.Morphism.Structures.html#18977" class="Field Operator">_∙₂_</a>
<a id="QuasigroupMorphisms.IsQuasigroupHomomorphism.\\-homo"></a><a id="19416" href="Algebra.Morphism.Structures.html#19416" class="Field">\\-homo</a> <a id="19434" class="Symbol">:</a> <a id="19436" href="Algebra.Morphism.Definitions.html#852" class="Function">Homomorphic₂</a> <a id="19449" href="Algebra.Morphism.Structures.html#19250" class="Bound Operator">⟦_⟧</a> <a id="19453" href="Algebra.Morphism.Structures.html#18734" class="Function Operator">_\\₁_</a> <a id="19459" href="Algebra.Morphism.Structures.html#18991" class="Field Operator">_\\₂_</a>
<a id="QuasigroupMorphisms.IsQuasigroupHomomorphism.//-homo"></a><a id="19471" href="Algebra.Morphism.Structures.html#19471" class="Field">//-homo</a> <a id="19489" class="Symbol">:</a> <a id="19491" href="Algebra.Morphism.Definitions.html#852" class="Function">Homomorphic₂</a> <a id="19504" href="Algebra.Morphism.Structures.html#19250" class="Bound Operator">⟦_⟧</a> <a id="19508" href="Algebra.Morphism.Structures.html#18749" class="Function Operator">_//₁_</a> <a id="19514" href="Algebra.Morphism.Structures.html#19006" class="Field Operator">_//₂_</a>
<a id="19525" class="Keyword">open</a> <a id="19530" href="Relation.Binary.Morphism.Structures.html#751" class="Module">IsRelHomomorphism</a> <a id="19548" href="Algebra.Morphism.Structures.html#19305" class="Field">isRelHomomorphism</a> <a id="19566" class="Keyword">public</a>
<a id="19579" class="Keyword">renaming</a> <a id="19588" class="Symbol">(</a><a id="19589" href="Relation.Binary.Morphism.Structures.html#882" class="Field">cong</a> <a id="19594" class="Symbol">to</a> <a id="19597" class="Field">⟦⟧-cong</a><a id="19604" class="Symbol">)</a>
<a id="QuasigroupMorphisms.IsQuasigroupHomomorphism.∙-isMagmaHomomorphism"></a><a id="19611" href="Algebra.Morphism.Structures.html#19611" class="Function">∙-isMagmaHomomorphism</a> <a id="19633" class="Symbol">:</a> <a id="19635" href="Algebra.Morphism.Structures.html#1057" class="Record">∙.IsMagmaHomomorphism</a> <a id="19657" href="Algebra.Morphism.Structures.html#19250" class="Bound Operator">⟦_⟧</a>
<a id="19665" href="Algebra.Morphism.Structures.html#19611" class="Function">∙-isMagmaHomomorphism</a> <a id="19687" class="Symbol">=</a> <a id="19689" class="Keyword">record</a>
<a id="19702" class="Symbol">{</a> <a id="19704" href="Algebra.Morphism.Structures.html#1133" class="Field">isRelHomomorphism</a> <a id="19722" class="Symbol">=</a> <a id="19724" href="Algebra.Morphism.Structures.html#19305" class="Field">isRelHomomorphism</a>
<a id="19748" class="Symbol">;</a> <a id="19750" href="Algebra.Morphism.Structures.html#1191" class="Field">homo</a> <a id="19755" class="Symbol">=</a> <a id="19757" href="Algebra.Morphism.Structures.html#19363" class="Field">∙-homo</a>
<a id="19770" class="Symbol">}</a>
<a id="QuasigroupMorphisms.IsQuasigroupHomomorphism.\\-isMagmaHomomorphism"></a><a id="19777" href="Algebra.Morphism.Structures.html#19777" class="Function">\\-isMagmaHomomorphism</a> <a id="19800" class="Symbol">:</a> <a id="19802" href="Algebra.Morphism.Structures.html#1057" class="Record">\\.IsMagmaHomomorphism</a> <a id="19825" href="Algebra.Morphism.Structures.html#19250" class="Bound Operator">⟦_⟧</a>
<a id="19833" href="Algebra.Morphism.Structures.html#19777" class="Function">\\-isMagmaHomomorphism</a> <a id="19856" class="Symbol">=</a> <a id="19858" class="Keyword">record</a>
<a id="19871" class="Symbol">{</a> <a id="19873" href="Algebra.Morphism.Structures.html#1133" class="Field">isRelHomomorphism</a> <a id="19892" class="Symbol">=</a> <a id="19894" href="Algebra.Morphism.Structures.html#19305" class="Field">isRelHomomorphism</a>
<a id="19918" class="Symbol">;</a> <a id="19920" href="Algebra.Morphism.Structures.html#1191" class="Field">homo</a> <a id="19925" class="Symbol">=</a> <a id="19927" href="Algebra.Morphism.Structures.html#19416" class="Field">\\-homo</a>
<a id="19941" class="Symbol">}</a>
<a id="QuasigroupMorphisms.IsQuasigroupHomomorphism.//-isMagmaHomomorphism"></a><a id="19948" href="Algebra.Morphism.Structures.html#19948" class="Function">//-isMagmaHomomorphism</a> <a id="19971" class="Symbol">:</a> <a id="19973" href="Algebra.Morphism.Structures.html#1057" class="Record">//.IsMagmaHomomorphism</a> <a id="19996" href="Algebra.Morphism.Structures.html#19250" class="Bound Operator">⟦_⟧</a>
<a id="20004" href="Algebra.Morphism.Structures.html#19948" class="Function">//-isMagmaHomomorphism</a> <a id="20027" class="Symbol">=</a> <a id="20029" class="Keyword">record</a>
<a id="20042" class="Symbol">{</a> <a id="20044" href="Algebra.Morphism.Structures.html#1133" class="Field">isRelHomomorphism</a> <a id="20063" class="Symbol">=</a> <a id="20065" href="Algebra.Morphism.Structures.html#19305" class="Field">isRelHomomorphism</a>
<a id="20089" class="Symbol">;</a> <a id="20091" href="Algebra.Morphism.Structures.html#1191" class="Field">homo</a> <a id="20096" class="Symbol">=</a> <a id="20098" href="Algebra.Morphism.Structures.html#19471" class="Field">//-homo</a>
<a id="20112" class="Symbol">}</a>
<a id="20117" class="Keyword">record</a> <a id="QuasigroupMorphisms.IsQuasigroupMonomorphism"></a><a id="20124" href="Algebra.Morphism.Structures.html#20124" class="Record">IsQuasigroupMonomorphism</a> <a id="20149" class="Symbol">(</a><a id="20150" href="Algebra.Morphism.Structures.html#20150" class="Bound Operator">⟦_⟧</a> <a id="20154" class="Symbol">:</a> <a id="20156" href="Algebra.Morphism.Structures.html#18544" class="Function">A</a> <a id="20158" class="Symbol"></a> <a id="20160" href="Algebra.Morphism.Structures.html#18801" class="Field">B</a><a id="20161" class="Symbol">)</a> <a id="20163" class="Symbol">:</a> <a id="20165" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="20169" class="Symbol">(</a><a id="20170" href="Algebra.Morphism.Structures.html#18460" class="Bound">a</a> <a id="20172" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="20174" href="Algebra.Morphism.Structures.html#18462" class="Bound">ℓ₁</a> <a id="20177" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="20179" href="Algebra.Morphism.Structures.html#18488" class="Bound">ℓ₂</a><a id="20181" class="Symbol">)</a> <a id="20183" class="Keyword">where</a>
<a id="20193" class="Keyword">field</a>
<a id="QuasigroupMorphisms.IsQuasigroupMonomorphism.isQuasigroupHomomorphism"></a><a id="20205" href="Algebra.Morphism.Structures.html#20205" class="Field">isQuasigroupHomomorphism</a> <a id="20230" class="Symbol">:</a> <a id="20232" href="Algebra.Morphism.Structures.html#19224" class="Record">IsQuasigroupHomomorphism</a> <a id="20257" href="Algebra.Morphism.Structures.html#20150" class="Bound Operator">⟦_⟧</a>
<a id="QuasigroupMorphisms.IsQuasigroupMonomorphism.injective"></a><a id="20267" href="Algebra.Morphism.Structures.html#20267" class="Field">injective</a> <a id="20292" class="Symbol">:</a> <a id="20294" href="Function.Definitions.html#842" class="Function">Injective</a> <a id="20304" href="Algebra.Morphism.Structures.html#18707" class="Function Operator">_≈₁_</a> <a id="20309" href="Algebra.Morphism.Structures.html#18964" class="Field Operator">_≈₂_</a> <a id="20314" href="Algebra.Morphism.Structures.html#20150" class="Bound Operator">⟦_⟧</a>
<a id="20323" class="Keyword">open</a> <a id="20328" href="Algebra.Morphism.Structures.html#19224" class="Module">IsQuasigroupHomomorphism</a> <a id="20353" href="Algebra.Morphism.Structures.html#20205" class="Field">isQuasigroupHomomorphism</a> <a id="20378" class="Keyword">public</a>
<a id="QuasigroupMorphisms.IsQuasigroupMonomorphism.∙-isMagmaMonomorphism"></a><a id="20391" href="Algebra.Morphism.Structures.html#20391" class="Function">∙-isMagmaMonomorphism</a> <a id="20415" class="Symbol">:</a> <a id="20417" href="Algebra.Morphism.Structures.html#1333" class="Record">∙.IsMagmaMonomorphism</a> <a id="20439" href="Algebra.Morphism.Structures.html#20150" class="Bound Operator">⟦_⟧</a>
<a id="20447" href="Algebra.Morphism.Structures.html#20391" class="Function">∙-isMagmaMonomorphism</a> <a id="20471" class="Symbol">=</a> <a id="20473" class="Keyword">record</a>
<a id="20486" class="Symbol">{</a> <a id="20488" href="Algebra.Morphism.Structures.html#1409" class="Field">isMagmaHomomorphism</a> <a id="20508" class="Symbol">=</a> <a id="20510" href="Algebra.Morphism.Structures.html#19611" class="Function">∙-isMagmaHomomorphism</a>
<a id="20538" class="Symbol">;</a> <a id="20540" href="Algebra.Morphism.Structures.html#1461" class="Field">injective</a> <a id="20560" class="Symbol">=</a> <a id="20562" href="Algebra.Morphism.Structures.html#20267" class="Field">injective</a>
<a id="20578" class="Symbol">}</a>
<a id="QuasigroupMorphisms.IsQuasigroupMonomorphism.\\-isMagmaMonomorphism"></a><a id="20585" href="Algebra.Morphism.Structures.html#20585" class="Function">\\-isMagmaMonomorphism</a> <a id="20609" class="Symbol">:</a> <a id="20611" href="Algebra.Morphism.Structures.html#1333" class="Record">\\.IsMagmaMonomorphism</a> <a id="20634" href="Algebra.Morphism.Structures.html#20150" class="Bound Operator">⟦_⟧</a>
<a id="20642" href="Algebra.Morphism.Structures.html#20585" class="Function">\\-isMagmaMonomorphism</a> <a id="20666" class="Symbol">=</a> <a id="20668" class="Keyword">record</a>
<a id="20681" class="Symbol">{</a> <a id="20683" href="Algebra.Morphism.Structures.html#1409" class="Field">isMagmaHomomorphism</a> <a id="20703" class="Symbol">=</a> <a id="20705" href="Algebra.Morphism.Structures.html#19777" class="Function">\\-isMagmaHomomorphism</a>
<a id="20734" class="Symbol">;</a> <a id="20736" href="Algebra.Morphism.Structures.html#1461" class="Field">injective</a> <a id="20756" class="Symbol">=</a> <a id="20758" href="Algebra.Morphism.Structures.html#20267" class="Field">injective</a>
<a id="20774" class="Symbol">}</a>
<a id="QuasigroupMorphisms.IsQuasigroupMonomorphism.//-isMagmaMonomorphism"></a><a id="20781" href="Algebra.Morphism.Structures.html#20781" class="Function">//-isMagmaMonomorphism</a> <a id="20805" class="Symbol">:</a> <a id="20807" href="Algebra.Morphism.Structures.html#1333" class="Record">//.IsMagmaMonomorphism</a> <a id="20830" href="Algebra.Morphism.Structures.html#20150" class="Bound Operator">⟦_⟧</a>
<a id="20838" href="Algebra.Morphism.Structures.html#20781" class="Function">//-isMagmaMonomorphism</a> <a id="20862" class="Symbol">=</a> <a id="20864" class="Keyword">record</a>
<a id="20877" class="Symbol">{</a> <a id="20879" href="Algebra.Morphism.Structures.html#1409" class="Field">isMagmaHomomorphism</a> <a id="20899" class="Symbol">=</a> <a id="20901" href="Algebra.Morphism.Structures.html#19948" class="Function">//-isMagmaHomomorphism</a>
<a id="20930" class="Symbol">;</a> <a id="20932" href="Algebra.Morphism.Structures.html#1461" class="Field">injective</a> <a id="20952" class="Symbol">=</a> <a id="20954" href="Algebra.Morphism.Structures.html#20267" class="Field">injective</a>
<a id="20970" class="Symbol">}</a>
<a id="20977" class="Keyword">open</a> <a id="20982" href="Algebra.Morphism.Structures.html#1333" class="Module">//.IsMagmaMonomorphism</a> <a id="21005" href="Algebra.Morphism.Structures.html#20781" class="Function">//-isMagmaMonomorphism</a> <a id="21028" class="Keyword">public</a>
<a id="21041" class="Keyword">using</a> <a id="21047" class="Symbol">(</a><a id="21048" href="Algebra.Morphism.Structures.html#1569" class="Function">isRelMonomorphism</a><a id="21065" class="Symbol">)</a>
<a id="21071" class="Keyword">record</a> <a id="QuasigroupMorphisms.IsQuasigroupIsomorphism"></a><a id="21078" href="Algebra.Morphism.Structures.html#21078" class="Record">IsQuasigroupIsomorphism</a> <a id="21102" class="Symbol">(</a><a id="21103" href="Algebra.Morphism.Structures.html#21103" class="Bound Operator">⟦_⟧</a> <a id="21107" class="Symbol">:</a> <a id="21109" href="Algebra.Morphism.Structures.html#18544" class="Function">A</a> <a id="21111" class="Symbol"></a> <a id="21113" href="Algebra.Morphism.Structures.html#18801" class="Field">B</a><a id="21114" class="Symbol">)</a> <a id="21116" class="Symbol">:</a> <a id="21118" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="21122" class="Symbol">(</a><a id="21123" href="Algebra.Morphism.Structures.html#18460" class="Bound">a</a> <a id="21125" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="21127" href="Algebra.Morphism.Structures.html#18486" class="Bound">b</a> <a id="21129" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="21131" href="Algebra.Morphism.Structures.html#18462" class="Bound">ℓ₁</a> <a id="21134" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="21136" href="Algebra.Morphism.Structures.html#18488" class="Bound">ℓ₂</a><a id="21138" class="Symbol">)</a> <a id="21140" class="Keyword">where</a>
<a id="21150" class="Keyword">field</a>
<a id="QuasigroupMorphisms.IsQuasigroupIsomorphism.isQuasigroupMonomorphism"></a><a id="21162" href="Algebra.Morphism.Structures.html#21162" class="Field">isQuasigroupMonomorphism</a> <a id="21187" class="Symbol">:</a> <a id="21189" href="Algebra.Morphism.Structures.html#20124" class="Record">IsQuasigroupMonomorphism</a> <a id="21214" href="Algebra.Morphism.Structures.html#21103" class="Bound Operator">⟦_⟧</a>
<a id="QuasigroupMorphisms.IsQuasigroupIsomorphism.surjective"></a><a id="21224" href="Algebra.Morphism.Structures.html#21224" class="Field">surjective</a> <a id="21249" class="Symbol">:</a> <a id="21251" href="Function.Definitions.html#919" class="Function">Surjective</a> <a id="21262" href="Algebra.Morphism.Structures.html#18707" class="Function Operator">_≈₁_</a> <a id="21267" href="Algebra.Morphism.Structures.html#18964" class="Field Operator">_≈₂_</a> <a id="21272" href="Algebra.Morphism.Structures.html#21103" class="Bound Operator">⟦_⟧</a>
<a id="21281" class="Keyword">open</a> <a id="21286" href="Algebra.Morphism.Structures.html#20124" class="Module">IsQuasigroupMonomorphism</a> <a id="21311" href="Algebra.Morphism.Structures.html#21162" class="Field">isQuasigroupMonomorphism</a> <a id="21336" class="Keyword">public</a>
<a id="QuasigroupMorphisms.IsQuasigroupIsomorphism.∙-isMagmaIsomorphism"></a><a id="21348" href="Algebra.Morphism.Structures.html#21348" class="Function">∙-isMagmaIsomorphism</a> <a id="21372" class="Symbol">:</a> <a id="21374" href="Algebra.Morphism.Structures.html#1749" class="Record">∙.IsMagmaIsomorphism</a> <a id="21395" href="Algebra.Morphism.Structures.html#21103" class="Bound Operator">⟦_⟧</a>
<a id="21403" href="Algebra.Morphism.Structures.html#21348" class="Function">∙-isMagmaIsomorphism</a> <a id="21427" class="Symbol">=</a> <a id="21429" class="Keyword">record</a>
<a id="21442" class="Symbol">{</a> <a id="21444" href="Algebra.Morphism.Structures.html#1828" class="Field">isMagmaMonomorphism</a> <a id="21464" class="Symbol">=</a> <a id="21466" href="Algebra.Morphism.Structures.html#20391" class="Function">∙-isMagmaMonomorphism</a>
<a id="21494" class="Symbol">;</a> <a id="21496" href="Algebra.Morphism.Structures.html#1880" class="Field">surjective</a> <a id="21516" class="Symbol">=</a> <a id="21518" href="Algebra.Morphism.Structures.html#21224" class="Field">surjective</a>
<a id="21535" class="Symbol">}</a>
<a id="QuasigroupMorphisms.IsQuasigroupIsomorphism.\\-isMagmaIsomorphism"></a><a id="21542" href="Algebra.Morphism.Structures.html#21542" class="Function">\\-isMagmaIsomorphism</a> <a id="21566" class="Symbol">:</a> <a id="21568" href="Algebra.Morphism.Structures.html#1749" class="Record">\\.IsMagmaIsomorphism</a> <a id="21590" href="Algebra.Morphism.Structures.html#21103" class="Bound Operator">⟦_⟧</a>
<a id="21598" href="Algebra.Morphism.Structures.html#21542" class="Function">\\-isMagmaIsomorphism</a> <a id="21622" class="Symbol">=</a> <a id="21624" class="Keyword">record</a>
<a id="21637" class="Symbol">{</a> <a id="21639" href="Algebra.Morphism.Structures.html#1828" class="Field">isMagmaMonomorphism</a> <a id="21659" class="Symbol">=</a> <a id="21661" href="Algebra.Morphism.Structures.html#20585" class="Function">\\-isMagmaMonomorphism</a>
<a id="21690" class="Symbol">;</a> <a id="21692" href="Algebra.Morphism.Structures.html#1880" class="Field">surjective</a> <a id="21712" class="Symbol">=</a> <a id="21714" href="Algebra.Morphism.Structures.html#21224" class="Field">surjective</a>
<a id="21731" class="Symbol">}</a>
<a id="QuasigroupMorphisms.IsQuasigroupIsomorphism.//-isMagmaIsomorphism"></a><a id="21738" href="Algebra.Morphism.Structures.html#21738" class="Function">//-isMagmaIsomorphism</a> <a id="21762" class="Symbol">:</a> <a id="21764" href="Algebra.Morphism.Structures.html#1749" class="Record">//.IsMagmaIsomorphism</a> <a id="21786" href="Algebra.Morphism.Structures.html#21103" class="Bound Operator">⟦_⟧</a>
<a id="21794" href="Algebra.Morphism.Structures.html#21738" class="Function">//-isMagmaIsomorphism</a> <a id="21818" class="Symbol">=</a> <a id="21820" class="Keyword">record</a>
<a id="21833" class="Symbol">{</a> <a id="21835" href="Algebra.Morphism.Structures.html#1828" class="Field">isMagmaMonomorphism</a> <a id="21855" class="Symbol">=</a> <a id="21857" href="Algebra.Morphism.Structures.html#20781" class="Function">//-isMagmaMonomorphism</a>
<a id="21886" class="Symbol">;</a> <a id="21888" href="Algebra.Morphism.Structures.html#1880" class="Field">surjective</a> <a id="21908" class="Symbol">=</a> <a id="21910" href="Algebra.Morphism.Structures.html#21224" class="Field">surjective</a>
<a id="21927" class="Symbol">}</a>
<a id="21934" class="Keyword">open</a> <a id="21939" href="Algebra.Morphism.Structures.html#1749" class="Module">//.IsMagmaIsomorphism</a> <a id="21961" href="Algebra.Morphism.Structures.html#21738" class="Function">//-isMagmaIsomorphism</a> <a id="21983" class="Keyword">public</a>
<a id="21996" class="Keyword">using</a> <a id="22002" class="Symbol">(</a><a id="22003" href="Algebra.Morphism.Structures.html#1989" class="Function">isRelIsomorphism</a><a id="22019" class="Symbol">)</a>
<a id="22022" class="Comment">------------------------------------------------------------------------</a>
<a id="22095" class="Comment">-- Morphisms over loop-like structures</a>
<a id="22134" class="Comment">------------------------------------------------------------------------</a>
<a id="22208" class="Keyword">module</a> <a id="LoopMorphisms"></a><a id="22215" href="Algebra.Morphism.Structures.html#22215" class="Module">LoopMorphisms</a> <a id="22229" class="Symbol">(</a><a id="22230" href="Algebra.Morphism.Structures.html#22230" class="Bound">L₁</a> <a id="22233" class="Symbol">:</a> <a id="22235" href="Algebra.Bundles.Raw.html#6332" class="Record">RawLoop</a> <a id="22243" href="Algebra.Morphism.Structures.html#597" class="Generalizable">a</a> <a id="22245" href="Algebra.Morphism.Structures.html#601" class="Generalizable">ℓ₁</a><a id="22247" class="Symbol">)</a> <a id="22249" class="Symbol">(</a><a id="22250" href="Algebra.Morphism.Structures.html#22250" class="Bound">L₂</a> <a id="22253" class="Symbol">:</a> <a id="22255" href="Algebra.Bundles.Raw.html#6332" class="Record">RawLoop</a> <a id="22263" href="Algebra.Morphism.Structures.html#599" class="Generalizable">b</a> <a id="22265" href="Algebra.Morphism.Structures.html#604" class="Generalizable">ℓ₂</a><a id="22267" class="Symbol">)</a> <a id="22269" class="Keyword">where</a>
<a id="22278" class="Keyword">open</a> <a id="22283" href="Algebra.Bundles.Raw.html#6332" class="Module">RawLoop</a> <a id="22291" href="Algebra.Morphism.Structures.html#22230" class="Bound">L₁</a> <a id="22294" class="Keyword">renaming</a> <a id="22303" class="Symbol">(</a><a id="22304" href="Algebra.Bundles.Raw.html#6445" class="Field">Carrier</a> <a id="22312" class="Symbol">to</a> <a id="22315" class="Field">A</a><a id="22316" class="Symbol">;</a> <a id="22318" href="Algebra.Bundles.Raw.html#5803" class="Function">∙-rawMagma</a> <a id="22329" class="Symbol">to</a> <a id="22332" class="Function">∙-rawMagma₁</a><a id="22343" class="Symbol">;</a>
<a id="22373" href="Algebra.Bundles.Raw.html#5892" class="Function">\\-rawMagma</a> <a id="22385" class="Symbol">to</a> <a id="22388" class="Function">\\-rawMagma₁</a><a id="22400" class="Symbol">;</a> <a id="22402" href="Algebra.Bundles.Raw.html#5984" class="Function">//-rawMagma</a> <a id="22414" class="Symbol">to</a> <a id="22417" class="Function">//-rawMagma₁</a><a id="22429" class="Symbol">;</a>
<a id="22460" href="Algebra.Bundles.Raw.html#6465" class="Field Operator">_≈_</a> <a id="22464" class="Symbol">to</a> <a id="22467" class="Field Operator">_≈₁_</a><a id="22471" class="Symbol">;</a> <a id="22473" href="Algebra.Bundles.Raw.html#6493" class="Field Operator">_∙_</a> <a id="22477" class="Symbol">to</a> <a id="22480" class="Field Operator">_∙₁_</a><a id="22484" class="Symbol">;</a> <a id="22486" href="Algebra.Bundles.Raw.html#6519" class="Field Operator">_\\_</a> <a id="22491" class="Symbol">to</a> <a id="22494" class="Field Operator">_\\₁_</a><a id="22499" class="Symbol">;</a> <a id="22501" href="Algebra.Bundles.Raw.html#6545" class="Field Operator">_//_</a> <a id="22506" class="Symbol">to</a> <a id="22509" class="Field Operator">_//₁_</a><a id="22514" class="Symbol">;</a> <a id="22516" href="Algebra.Bundles.Raw.html#6571" class="Field">ε</a> <a id="22518" class="Symbol">to</a> <a id="22521" class="Field">ε₁</a><a id="22523" class="Symbol">)</a>
<a id="22527" class="Keyword">open</a> <a id="22532" href="Algebra.Bundles.Raw.html#6332" class="Module">RawLoop</a> <a id="22540" href="Algebra.Morphism.Structures.html#22250" class="Bound">L₂</a> <a id="22543" class="Keyword">renaming</a> <a id="22552" class="Symbol">(</a><a id="22553" href="Algebra.Bundles.Raw.html#6445" class="Field">Carrier</a> <a id="22561" class="Symbol">to</a> <a id="22564" class="Field">B</a><a id="22565" class="Symbol">;</a> <a id="22567" href="Algebra.Bundles.Raw.html#5803" class="Function">∙-rawMagma</a> <a id="22578" class="Symbol">to</a> <a id="22581" class="Function">∙-rawMagma₂</a><a id="22592" class="Symbol">;</a>
<a id="22622" href="Algebra.Bundles.Raw.html#5892" class="Function">\\-rawMagma</a> <a id="22634" class="Symbol">to</a> <a id="22637" class="Function">\\-rawMagma₂</a><a id="22649" class="Symbol">;</a> <a id="22651" href="Algebra.Bundles.Raw.html#5984" class="Function">//-rawMagma</a> <a id="22663" class="Symbol">to</a> <a id="22666" class="Function">//-rawMagma₂</a><a id="22678" class="Symbol">;</a>
<a id="22708" href="Algebra.Bundles.Raw.html#6465" class="Field Operator">_≈_</a> <a id="22712" class="Symbol">to</a> <a id="22715" class="Field Operator">_≈₂_</a><a id="22719" class="Symbol">;</a> <a id="22721" href="Algebra.Bundles.Raw.html#6493" class="Field Operator">_∙_</a> <a id="22725" class="Symbol">to</a> <a id="22728" class="Field Operator">_∙₂_</a><a id="22732" class="Symbol">;</a> <a id="22734" href="Algebra.Bundles.Raw.html#6519" class="Field Operator">_\\_</a> <a id="22739" class="Symbol">to</a> <a id="22742" class="Field Operator">_\\₂_</a><a id="22747" class="Symbol">;</a> <a id="22749" href="Algebra.Bundles.Raw.html#6545" class="Field Operator">_//_</a> <a id="22754" class="Symbol">to</a> <a id="22757" class="Field Operator">_//₂_</a> <a id="22763" class="Symbol">;</a> <a id="22765" href="Algebra.Bundles.Raw.html#6571" class="Field">ε</a> <a id="22767" class="Symbol">to</a> <a id="22770" class="Field">ε₂</a><a id="22772" class="Symbol">)</a>
<a id="22776" class="Keyword">open</a> <a id="22781" href="Algebra.Morphism.Definitions.html" class="Module">MorphismDefinitions</a> <a id="22801" href="Algebra.Morphism.Structures.html#22315" class="Function">A</a> <a id="22803" href="Algebra.Morphism.Structures.html#22564" class="Field">B</a> <a id="22805" href="Algebra.Morphism.Structures.html#22715" class="Field Operator">_≈₂_</a>
<a id="22813" class="Keyword">open</a> <a id="22818" href="Algebra.Morphism.Structures.html#18420" class="Module">QuasigroupMorphisms</a> <a id="22838" class="Symbol">(</a><a id="22839" href="Algebra.Bundles.Raw.html#6592" class="Function">RawLoop.rawQuasigroup</a> <a id="22861" href="Algebra.Morphism.Structures.html#22230" class="Bound">L₁</a><a id="22863" class="Symbol">)</a> <a id="22865" class="Symbol">(</a><a id="22866" href="Algebra.Bundles.Raw.html#6592" class="Function">RawLoop.rawQuasigroup</a> <a id="22888" href="Algebra.Morphism.Structures.html#22250" class="Bound">L₂</a><a id="22890" class="Symbol">)</a>
<a id="22895" class="Keyword">record</a> <a id="LoopMorphisms.IsLoopHomomorphism"></a><a id="22902" href="Algebra.Morphism.Structures.html#22902" class="Record">IsLoopHomomorphism</a> <a id="22921" class="Symbol">(</a><a id="22922" href="Algebra.Morphism.Structures.html#22922" class="Bound Operator">⟦_⟧</a> <a id="22926" class="Symbol">:</a> <a id="22928" href="Algebra.Morphism.Structures.html#22315" class="Function">A</a> <a id="22930" class="Symbol"></a> <a id="22932" href="Algebra.Morphism.Structures.html#22564" class="Field">B</a><a id="22933" class="Symbol">)</a> <a id="22935" class="Symbol">:</a> <a id="22937" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="22941" class="Symbol">(</a><a id="22942" href="Algebra.Morphism.Structures.html#22243" class="Bound">a</a> <a id="22944" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="22946" href="Algebra.Morphism.Structures.html#22245" class="Bound">ℓ₁</a> <a id="22949" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="22951" href="Algebra.Morphism.Structures.html#22265" class="Bound">ℓ₂</a><a id="22953" class="Symbol">)</a> <a id="22955" class="Keyword">where</a>
<a id="22965" class="Keyword">field</a>
<a id="LoopMorphisms.IsLoopHomomorphism.isQuasigroupHomomorphism"></a><a id="22977" href="Algebra.Morphism.Structures.html#22977" class="Field">isQuasigroupHomomorphism</a> <a id="23002" class="Symbol">:</a> <a id="23004" href="Algebra.Morphism.Structures.html#19224" class="Record">IsQuasigroupHomomorphism</a> <a id="23029" href="Algebra.Morphism.Structures.html#22922" class="Bound Operator">⟦_⟧</a>
<a id="LoopMorphisms.IsLoopHomomorphism.ε-homo"></a><a id="23039" href="Algebra.Morphism.Structures.html#23039" class="Field">ε-homo</a> <a id="23064" class="Symbol">:</a> <a id="23066" href="Algebra.Morphism.Definitions.html#680" class="Function">Homomorphic₀</a> <a id="23079" href="Algebra.Morphism.Structures.html#22922" class="Bound Operator">⟦_⟧</a> <a id="23083" href="Algebra.Morphism.Structures.html#22521" class="Function">ε₁</a> <a id="23086" href="Algebra.Morphism.Structures.html#22770" class="Field">ε₂</a>
<a id="23094" class="Keyword">open</a> <a id="23099" href="Algebra.Morphism.Structures.html#19224" class="Module">IsQuasigroupHomomorphism</a> <a id="23124" href="Algebra.Morphism.Structures.html#22977" class="Field">isQuasigroupHomomorphism</a> <a id="23149" class="Keyword">public</a>
<a id="23159" class="Keyword">record</a> <a id="LoopMorphisms.IsLoopMonomorphism"></a><a id="23166" href="Algebra.Morphism.Structures.html#23166" class="Record">IsLoopMonomorphism</a> <a id="23185" class="Symbol">(</a><a id="23186" href="Algebra.Morphism.Structures.html#23186" class="Bound Operator">⟦_⟧</a> <a id="23190" class="Symbol">:</a> <a id="23192" href="Algebra.Morphism.Structures.html#22315" class="Function">A</a> <a id="23194" class="Symbol"></a> <a id="23196" href="Algebra.Morphism.Structures.html#22564" class="Field">B</a><a id="23197" class="Symbol">)</a> <a id="23199" class="Symbol">:</a> <a id="23201" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="23205" class="Symbol">(</a><a id="23206" href="Algebra.Morphism.Structures.html#22243" class="Bound">a</a> <a id="23208" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="23210" href="Algebra.Morphism.Structures.html#22245" class="Bound">ℓ₁</a> <a id="23213" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="23215" href="Algebra.Morphism.Structures.html#22265" class="Bound">ℓ₂</a><a id="23217" class="Symbol">)</a> <a id="23219" class="Keyword">where</a>
<a id="23229" class="Keyword">field</a>
<a id="LoopMorphisms.IsLoopMonomorphism.isLoopHomomorphism"></a><a id="23241" href="Algebra.Morphism.Structures.html#23241" class="Field">isLoopHomomorphism</a> <a id="23262" class="Symbol">:</a> <a id="23264" href="Algebra.Morphism.Structures.html#22902" class="Record">IsLoopHomomorphism</a> <a id="23283" href="Algebra.Morphism.Structures.html#23186" class="Bound Operator">⟦_⟧</a>
<a id="LoopMorphisms.IsLoopMonomorphism.injective"></a><a id="23293" href="Algebra.Morphism.Structures.html#23293" class="Field">injective</a> <a id="23314" class="Symbol">:</a> <a id="23316" href="Function.Definitions.html#842" class="Function">Injective</a> <a id="23326" href="Algebra.Morphism.Structures.html#22467" class="Function Operator">_≈₁_</a> <a id="23331" href="Algebra.Morphism.Structures.html#22715" class="Field Operator">_≈₂_</a> <a id="23336" href="Algebra.Morphism.Structures.html#23186" class="Bound Operator">⟦_⟧</a>
<a id="23345" class="Keyword">open</a> <a id="23350" href="Algebra.Morphism.Structures.html#22902" class="Module">IsLoopHomomorphism</a> <a id="23369" href="Algebra.Morphism.Structures.html#23241" class="Field">isLoopHomomorphism</a> <a id="23388" class="Keyword">public</a>
<a id="23398" class="Keyword">record</a> <a id="LoopMorphisms.IsLoopIsomorphism"></a><a id="23405" href="Algebra.Morphism.Structures.html#23405" class="Record">IsLoopIsomorphism</a> <a id="23423" class="Symbol">(</a><a id="23424" href="Algebra.Morphism.Structures.html#23424" class="Bound Operator">⟦_⟧</a> <a id="23428" class="Symbol">:</a> <a id="23430" href="Algebra.Morphism.Structures.html#22315" class="Function">A</a> <a id="23432" class="Symbol"></a> <a id="23434" href="Algebra.Morphism.Structures.html#22564" class="Field">B</a><a id="23435" class="Symbol">)</a> <a id="23437" class="Symbol">:</a> <a id="23439" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="23443" class="Symbol">(</a><a id="23444" href="Algebra.Morphism.Structures.html#22243" class="Bound">a</a> <a id="23446" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="23448" href="Algebra.Morphism.Structures.html#22263" class="Bound">b</a> <a id="23450" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="23452" href="Algebra.Morphism.Structures.html#22245" class="Bound">ℓ₁</a> <a id="23455" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="23457" href="Algebra.Morphism.Structures.html#22265" class="Bound">ℓ₂</a><a id="23459" class="Symbol">)</a> <a id="23461" class="Keyword">where</a>
<a id="23471" class="Keyword">field</a>
<a id="LoopMorphisms.IsLoopIsomorphism.isLoopMonomorphism"></a><a id="23483" href="Algebra.Morphism.Structures.html#23483" class="Field">isLoopMonomorphism</a> <a id="23504" class="Symbol">:</a> <a id="23506" href="Algebra.Morphism.Structures.html#23166" class="Record">IsLoopMonomorphism</a> <a id="23525" href="Algebra.Morphism.Structures.html#23424" class="Bound Operator">⟦_⟧</a>
<a id="LoopMorphisms.IsLoopIsomorphism.surjective"></a><a id="23535" href="Algebra.Morphism.Structures.html#23535" class="Field">surjective</a> <a id="23556" class="Symbol">:</a> <a id="23558" href="Function.Definitions.html#919" class="Function">Surjective</a> <a id="23569" href="Algebra.Morphism.Structures.html#22467" class="Function Operator">_≈₁_</a> <a id="23574" href="Algebra.Morphism.Structures.html#22715" class="Field Operator">_≈₂_</a> <a id="23579" href="Algebra.Morphism.Structures.html#23424" class="Bound Operator">⟦_⟧</a>
<a id="23588" class="Keyword">open</a> <a id="23593" href="Algebra.Morphism.Structures.html#23166" class="Module">IsLoopMonomorphism</a> <a id="23612" href="Algebra.Morphism.Structures.html#23483" class="Field">isLoopMonomorphism</a> <a id="23631" class="Keyword">public</a>
<a id="23639" class="Comment">------------------------------------------------------------------------</a>
<a id="23712" class="Comment">-- Morphisms over Kleene algebra structures</a>
<a id="23756" class="Comment">------------------------------------------------------------------------</a>
<a id="23829" class="Keyword">module</a> <a id="KleeneAlgebraMorphisms"></a><a id="23836" href="Algebra.Morphism.Structures.html#23836" class="Module">KleeneAlgebraMorphisms</a> <a id="23859" class="Symbol">(</a><a id="23860" href="Algebra.Morphism.Structures.html#23860" class="Bound">R₁</a> <a id="23863" class="Symbol">:</a> <a id="23865" href="Algebra.Bundles.Raw.html#6831" class="Record">RawKleeneAlgebra</a> <a id="23882" href="Algebra.Morphism.Structures.html#597" class="Generalizable">a</a> <a id="23884" href="Algebra.Morphism.Structures.html#601" class="Generalizable">ℓ₁</a><a id="23886" class="Symbol">)</a> <a id="23888" class="Symbol">(</a><a id="23889" href="Algebra.Morphism.Structures.html#23889" class="Bound">R₂</a> <a id="23892" class="Symbol">:</a> <a id="23894" href="Algebra.Bundles.Raw.html#6831" class="Record">RawKleeneAlgebra</a> <a id="23911" href="Algebra.Morphism.Structures.html#599" class="Generalizable">b</a> <a id="23913" href="Algebra.Morphism.Structures.html#604" class="Generalizable">ℓ₂</a><a id="23915" class="Symbol">)</a> <a id="23917" class="Keyword">where</a>
<a id="23926" class="Keyword">open</a> <a id="23931" href="Algebra.Bundles.Raw.html#6831" class="Module">RawKleeneAlgebra</a> <a id="23948" href="Algebra.Morphism.Structures.html#23860" class="Bound">R₁</a> <a id="23951" class="Keyword">renaming</a>
<a id="23964" class="Symbol">(</a> <a id="23966" href="Algebra.Bundles.Raw.html#6949" class="Field">Carrier</a> <a id="23974" class="Symbol">to</a> <a id="23977" class="Field">A</a><a id="23978" class="Symbol">;</a> <a id="23980" href="Algebra.Bundles.Raw.html#6969" class="Field Operator">_≈_</a> <a id="23984" class="Symbol">to</a> <a id="23987" class="Field Operator">_≈₁_</a>
<a id="23996" class="Symbol">;</a> <a id="23998" href="Algebra.Bundles.Raw.html#7049" class="Field Operator">_⋆</a> <a id="24001" class="Symbol">to</a> <a id="24004" class="Field Operator">_⋆₁</a>
<a id="24012" class="Symbol">;</a> <a id="24014" href="Algebra.Bundles.Raw.html#7118" class="Function">rawSemiring</a> <a id="24026" class="Symbol">to</a> <a id="24029" class="Function">rawSemiring₁</a>
<a id="24046" class="Symbol">)</a>
<a id="24051" class="Keyword">open</a> <a id="24056" href="Algebra.Bundles.Raw.html#6831" class="Module">RawKleeneAlgebra</a> <a id="24073" href="Algebra.Morphism.Structures.html#23889" class="Bound">R₂</a> <a id="24076" class="Keyword">renaming</a>
<a id="24089" class="Symbol">(</a> <a id="24091" href="Algebra.Bundles.Raw.html#6949" class="Field">Carrier</a> <a id="24099" class="Symbol">to</a> <a id="24102" class="Field">B</a><a id="24103" class="Symbol">;</a> <a id="24105" href="Algebra.Bundles.Raw.html#6969" class="Field Operator">_≈_</a> <a id="24109" class="Symbol">to</a> <a id="24112" class="Field Operator">_≈₂_</a>
<a id="24121" class="Symbol">;</a> <a id="24123" href="Algebra.Bundles.Raw.html#7049" class="Field Operator">_⋆</a> <a id="24126" class="Symbol">to</a> <a id="24129" class="Field Operator">_⋆₂</a>
<a id="24137" class="Symbol">;</a> <a id="24139" href="Algebra.Bundles.Raw.html#7118" class="Function">rawSemiring</a> <a id="24151" class="Symbol">to</a> <a id="24154" class="Function">rawSemiring₂</a>
<a id="24171" class="Symbol">)</a>
<a id="24176" class="Keyword">open</a> <a id="24181" href="Algebra.Morphism.Definitions.html" class="Module">MorphismDefinitions</a> <a id="24201" href="Algebra.Morphism.Structures.html#23977" class="Function">A</a> <a id="24203" href="Algebra.Morphism.Structures.html#24102" class="Field">B</a> <a id="24205" href="Algebra.Morphism.Structures.html#24112" class="Field Operator">_≈₂_</a>
<a id="24212" class="Keyword">open</a> <a id="24217" href="Algebra.Morphism.Structures.html#9054" class="Module">SemiringMorphisms</a> <a id="24235" href="Algebra.Morphism.Structures.html#24029" class="Function">rawSemiring₁</a> <a id="24248" href="Algebra.Morphism.Structures.html#24154" class="Function">rawSemiring₂</a>
<a id="24264" class="Keyword">record</a> <a id="KleeneAlgebraMorphisms.IsKleeneAlgebraHomomorphism"></a><a id="24271" href="Algebra.Morphism.Structures.html#24271" class="Record">IsKleeneAlgebraHomomorphism</a> <a id="24299" class="Symbol">(</a><a id="24300" href="Algebra.Morphism.Structures.html#24300" class="Bound Operator">⟦_⟧</a> <a id="24304" class="Symbol">:</a> <a id="24306" href="Algebra.Morphism.Structures.html#23977" class="Function">A</a> <a id="24308" class="Symbol"></a> <a id="24310" href="Algebra.Morphism.Structures.html#24102" class="Field">B</a><a id="24311" class="Symbol">)</a> <a id="24313" class="Symbol">:</a> <a id="24315" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="24319" class="Symbol">(</a><a id="24320" href="Algebra.Morphism.Structures.html#23882" class="Bound">a</a> <a id="24322" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="24324" href="Algebra.Morphism.Structures.html#23884" class="Bound">ℓ₁</a> <a id="24327" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="24329" href="Algebra.Morphism.Structures.html#23913" class="Bound">ℓ₂</a><a id="24331" class="Symbol">)</a> <a id="24333" class="Keyword">where</a>
<a id="24343" class="Keyword">field</a>
<a id="KleeneAlgebraMorphisms.IsKleeneAlgebraHomomorphism.isSemiringHomomorphism"></a><a id="24355" href="Algebra.Morphism.Structures.html#24355" class="Field">isSemiringHomomorphism</a> <a id="24378" class="Symbol">:</a> <a id="24380" href="Algebra.Morphism.Structures.html#9618" class="Record">IsSemiringHomomorphism</a> <a id="24403" href="Algebra.Morphism.Structures.html#24300" class="Bound Operator">⟦_⟧</a>
<a id="KleeneAlgebraMorphisms.IsKleeneAlgebraHomomorphism.⋆-homo"></a><a id="24413" href="Algebra.Morphism.Structures.html#24413" class="Field">⋆-homo</a> <a id="24420" class="Symbol">:</a> <a id="24423" href="Algebra.Morphism.Definitions.html#753" class="Function">Homomorphic₁</a> <a id="24436" href="Algebra.Morphism.Structures.html#24300" class="Bound Operator">⟦_⟧</a> <a id="24440" href="Algebra.Morphism.Structures.html#24004" class="Function Operator">_⋆₁</a> <a id="24444" href="Algebra.Morphism.Structures.html#24129" class="Field Operator">_⋆₂</a>
<a id="24453" class="Keyword">open</a> <a id="24458" href="Algebra.Morphism.Structures.html#9618" class="Module">IsSemiringHomomorphism</a> <a id="24481" href="Algebra.Morphism.Structures.html#24355" class="Field">isSemiringHomomorphism</a> <a id="24504" class="Keyword">public</a>
<a id="24514" class="Keyword">record</a> <a id="KleeneAlgebraMorphisms.IsKleeneAlgebraMonomorphism"></a><a id="24521" href="Algebra.Morphism.Structures.html#24521" class="Record">IsKleeneAlgebraMonomorphism</a> <a id="24549" class="Symbol">(</a><a id="24550" href="Algebra.Morphism.Structures.html#24550" class="Bound Operator">⟦_⟧</a> <a id="24554" class="Symbol">:</a> <a id="24556" href="Algebra.Morphism.Structures.html#23977" class="Function">A</a> <a id="24558" class="Symbol"></a> <a id="24560" href="Algebra.Morphism.Structures.html#24102" class="Field">B</a><a id="24561" class="Symbol">)</a> <a id="24563" class="Symbol">:</a> <a id="24565" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="24569" class="Symbol">(</a><a id="24570" href="Algebra.Morphism.Structures.html#23882" class="Bound">a</a> <a id="24572" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="24574" href="Algebra.Morphism.Structures.html#23884" class="Bound">ℓ₁</a> <a id="24577" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="24579" href="Algebra.Morphism.Structures.html#23913" class="Bound">ℓ₂</a><a id="24581" class="Symbol">)</a> <a id="24583" class="Keyword">where</a>
<a id="24593" class="Keyword">field</a>
<a id="KleeneAlgebraMorphisms.IsKleeneAlgebraMonomorphism.isKleeneAlgebraHomomorphism"></a><a id="24605" href="Algebra.Morphism.Structures.html#24605" class="Field">isKleeneAlgebraHomomorphism</a> <a id="24635" class="Symbol">:</a> <a id="24637" href="Algebra.Morphism.Structures.html#24271" class="Record">IsKleeneAlgebraHomomorphism</a> <a id="24665" href="Algebra.Morphism.Structures.html#24550" class="Bound Operator">⟦_⟧</a>
<a id="KleeneAlgebraMorphisms.IsKleeneAlgebraMonomorphism.injective"></a><a id="24675" href="Algebra.Morphism.Structures.html#24675" class="Field">injective</a> <a id="24705" class="Symbol">:</a> <a id="24707" href="Function.Definitions.html#842" class="Function">Injective</a> <a id="24718" href="Algebra.Morphism.Structures.html#23987" class="Function Operator">_≈₁_</a> <a id="24723" href="Algebra.Morphism.Structures.html#24112" class="Field Operator">_≈₂_</a> <a id="24728" href="Algebra.Morphism.Structures.html#24550" class="Bound Operator">⟦_⟧</a>
<a id="24737" class="Keyword">open</a> <a id="24742" href="Algebra.Morphism.Structures.html#24271" class="Module">IsKleeneAlgebraHomomorphism</a> <a id="24770" href="Algebra.Morphism.Structures.html#24605" class="Field">isKleeneAlgebraHomomorphism</a> <a id="24798" class="Keyword">public</a>
<a id="24808" class="Keyword">record</a> <a id="KleeneAlgebraMorphisms.IsKleeneAlgebraIsomorphism"></a><a id="24815" href="Algebra.Morphism.Structures.html#24815" class="Record">IsKleeneAlgebraIsomorphism</a> <a id="24842" class="Symbol">(</a><a id="24843" href="Algebra.Morphism.Structures.html#24843" class="Bound Operator">⟦_⟧</a> <a id="24847" class="Symbol">:</a> <a id="24849" href="Algebra.Morphism.Structures.html#23977" class="Function">A</a> <a id="24851" class="Symbol"></a> <a id="24853" href="Algebra.Morphism.Structures.html#24102" class="Field">B</a><a id="24854" class="Symbol">)</a> <a id="24856" class="Symbol">:</a> <a id="24858" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="24862" class="Symbol">(</a><a id="24863" href="Algebra.Morphism.Structures.html#23882" class="Bound">a</a> <a id="24865" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="24867" href="Algebra.Morphism.Structures.html#23911" class="Bound">b</a> <a id="24869" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="24871" href="Algebra.Morphism.Structures.html#23884" class="Bound">ℓ₁</a> <a id="24874" href="Agda.Primitive.html#961" class="Primitive Operator"></a> <a id="24876" href="Algebra.Morphism.Structures.html#23913" class="Bound">ℓ₂</a><a id="24878" class="Symbol">)</a> <a id="24880" class="Keyword">where</a>
<a id="24890" class="Keyword">field</a>
<a id="KleeneAlgebraMorphisms.IsKleeneAlgebraIsomorphism.isKleeneAlgebraMonomorphism"></a><a id="24902" href="Algebra.Morphism.Structures.html#24902" class="Field">isKleeneAlgebraMonomorphism</a> <a id="24932" class="Symbol">:</a> <a id="24934" href="Algebra.Morphism.Structures.html#24521" class="Record">IsKleeneAlgebraMonomorphism</a> <a id="24962" href="Algebra.Morphism.Structures.html#24843" class="Bound Operator">⟦_⟧</a>
<a id="KleeneAlgebraMorphisms.IsKleeneAlgebraIsomorphism.surjective"></a><a id="24972" href="Algebra.Morphism.Structures.html#24972" class="Field">surjective</a> <a id="25002" class="Symbol">:</a> <a id="25004" href="Function.Definitions.html#919" class="Function">Surjective</a> <a id="25016" href="Algebra.Morphism.Structures.html#23987" class="Function Operator">_≈₁_</a> <a id="25021" href="Algebra.Morphism.Structures.html#24112" class="Field Operator">_≈₂_</a> <a id="25026" href="Algebra.Morphism.Structures.html#24843" class="Bound Operator">⟦_⟧</a>
<a id="25035" class="Keyword">open</a> <a id="25040" href="Algebra.Morphism.Structures.html#24521" class="Module">IsKleeneAlgebraMonomorphism</a> <a id="25068" href="Algebra.Morphism.Structures.html#24902" class="Field">isKleeneAlgebraMonomorphism</a> <a id="25096" class="Keyword">public</a>
<a id="25104" class="Comment">------------------------------------------------------------------------</a>
<a id="25177" class="Comment">-- Re-export contents of modules publicly</a>
<a id="25220" class="Keyword">open</a> <a id="25225" href="Algebra.Morphism.Structures.html#810" class="Module">MagmaMorphisms</a> <a id="25240" class="Keyword">public</a>
<a id="25247" class="Keyword">open</a> <a id="25252" href="Algebra.Morphism.Structures.html#2353" class="Module">MonoidMorphisms</a> <a id="25268" class="Keyword">public</a>
<a id="25275" class="Keyword">open</a> <a id="25280" href="Algebra.Morphism.Structures.html#4157" class="Module">GroupMorphisms</a> <a id="25295" class="Keyword">public</a>
<a id="25302" class="Keyword">open</a> <a id="25307" href="Algebra.Morphism.Structures.html#6155" class="Module">NearSemiringMorphisms</a> <a id="25329" class="Keyword">public</a>
<a id="25336" class="Keyword">open</a> <a id="25341" href="Algebra.Morphism.Structures.html#9054" class="Module">SemiringMorphisms</a> <a id="25359" class="Keyword">public</a>
<a id="25366" class="Keyword">open</a> <a id="25371" href="Algebra.Morphism.Structures.html#11834" class="Module">RingWithoutOneMorphisms</a> <a id="25395" class="Keyword">public</a>
<a id="25402" class="Keyword">open</a> <a id="25407" href="Algebra.Morphism.Structures.html#14847" class="Module">RingMorphisms</a> <a id="25421" class="Keyword">public</a>
<a id="25428" class="Keyword">open</a> <a id="25433" href="Algebra.Morphism.Structures.html#18420" class="Module">QuasigroupMorphisms</a> <a id="25453" class="Keyword">public</a>
<a id="25460" class="Keyword">open</a> <a id="25465" href="Algebra.Morphism.Structures.html#22215" class="Module">LoopMorphisms</a> <a id="25479" class="Keyword">public</a>
<a id="25486" class="Keyword">open</a> <a id="25491" href="Algebra.Morphism.Structures.html#23836" class="Module">KleeneAlgebraMorphisms</a> <a id="25514" class="Keyword">public</a>
</pre></body></html>