mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
144 lines
35 KiB
HTML
144 lines
35 KiB
HTML
|
<!DOCTYPE HTML>
|
||
|
<html><head><meta charset="utf-8"><title>Function.Metric.Bundles</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">-- Bundles for metrics</a>
|
||
|
<a id="129" class="Comment">------------------------------------------------------------------------</a>
|
||
|
|
||
|
<a id="203" class="Comment">-- The contents of this module should be accessed via `Function.Metric`.</a>
|
||
|
|
||
|
<a id="277" class="Symbol">{-#</a> <a id="281" class="Keyword">OPTIONS</a> <a id="289" class="Pragma">--cubical-compatible</a> <a id="310" class="Pragma">--safe</a> <a id="317" class="Symbol">#-}</a>
|
||
|
|
||
|
<a id="322" class="Keyword">module</a> <a id="329" href="Function.Metric.Bundles.html" class="Module">Function.Metric.Bundles</a> <a id="354" class="Keyword">where</a>
|
||
|
|
||
|
<a id="361" class="Keyword">open</a> <a id="366" class="Keyword">import</a> <a id="373" href="Algebra.Core.html" class="Module">Algebra.Core</a> <a id="386" class="Keyword">using</a> <a id="392" class="Symbol">(</a><a id="393" href="Algebra.Core.html#527" class="Function">Op₂</a><a id="396" class="Symbol">)</a>
|
||
|
<a id="398" class="Keyword">open</a> <a id="403" class="Keyword">import</a> <a id="410" href="Level.html" class="Module">Level</a> <a id="416" class="Keyword">using</a> <a id="422" class="Symbol">(</a><a id="423" href="Agda.Primitive.html#591" class="Postulate">Level</a><a id="428" class="Symbol">;</a> <a id="430" href="Agda.Primitive.html#774" class="Primitive">suc</a><a id="433" class="Symbol">;</a> <a id="435" href="Agda.Primitive.html#804" class="Primitive Operator">_⊔_</a><a id="438" class="Symbol">)</a>
|
||
|
<a id="440" class="Keyword">open</a> <a id="445" class="Keyword">import</a> <a id="452" href="Relation.Binary.Core.html" class="Module">Relation.Binary.Core</a> <a id="473" class="Keyword">using</a> <a id="479" class="Symbol">(</a><a id="480" href="Relation.Binary.Core.html#891" class="Function">Rel</a><a id="483" class="Symbol">)</a>
|
||
|
|
||
|
<a id="486" class="Keyword">open</a> <a id="491" class="Keyword">import</a> <a id="498" href="Function.Metric.Structures.html" class="Module">Function.Metric.Structures</a>
|
||
|
<a id="525" class="Keyword">open</a> <a id="530" class="Keyword">import</a> <a id="537" href="Function.Metric.Core.html" class="Module">Function.Metric.Core</a>
|
||
|
|
||
|
<a id="559" class="Comment">------------------------------------------------------------------------</a>
|
||
|
<a id="632" class="Comment">-- ProtoMetric</a>
|
||
|
|
||
|
<a id="648" class="Keyword">record</a> <a id="ProtoMetric"></a><a id="655" href="Function.Metric.Bundles.html#655" class="Record">ProtoMetric</a> <a id="667" class="Symbol">(</a><a id="668" href="Function.Metric.Bundles.html#668" class="Bound">a</a> <a id="670" href="Function.Metric.Bundles.html#670" class="Bound">i</a> <a id="672" href="Function.Metric.Bundles.html#672" class="Bound">ℓ₁</a> <a id="675" href="Function.Metric.Bundles.html#675" class="Bound">ℓ₂</a> <a id="678" href="Function.Metric.Bundles.html#678" class="Bound">ℓ₃</a> <a id="681" class="Symbol">:</a> <a id="683" href="Agda.Primitive.html#591" class="Postulate">Level</a><a id="688" class="Symbol">)</a>
|
||
|
<a id="707" class="Symbol">:</a> <a id="709" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="713" class="Symbol">(</a><a id="714" href="Agda.Primitive.html#774" class="Primitive">suc</a> <a id="718" class="Symbol">(</a><a id="719" href="Function.Metric.Bundles.html#668" class="Bound">a</a> <a id="721" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="723" href="Function.Metric.Bundles.html#670" class="Bound">i</a> <a id="725" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="727" href="Function.Metric.Bundles.html#672" class="Bound">ℓ₁</a> <a id="730" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="732" href="Function.Metric.Bundles.html#675" class="Bound">ℓ₂</a> <a id="735" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="737" href="Function.Metric.Bundles.html#678" class="Bound">ℓ₃</a><a id="739" class="Symbol">))</a> <a id="742" class="Keyword">where</a>
|
||
|
<a id="750" class="Keyword">field</a>
|
||
|
<a id="ProtoMetric.Carrier"></a><a id="760" href="Function.Metric.Bundles.html#760" class="Field">Carrier</a> <a id="774" class="Symbol">:</a> <a id="776" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="780" href="Function.Metric.Bundles.html#668" class="Bound">a</a>
|
||
|
<a id="ProtoMetric.Image"></a><a id="786" href="Function.Metric.Bundles.html#786" class="Field">Image</a> <a id="800" class="Symbol">:</a> <a id="802" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="806" href="Function.Metric.Bundles.html#670" class="Bound">i</a>
|
||
|
<a id="ProtoMetric._≈_"></a><a id="812" href="Function.Metric.Bundles.html#812" class="Field Operator">_≈_</a> <a id="826" class="Symbol">:</a> <a id="828" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="832" href="Function.Metric.Bundles.html#760" class="Field">Carrier</a> <a id="840" href="Function.Metric.Bundles.html#672" class="Bound">ℓ₁</a>
|
||
|
<a id="ProtoMetric._≈ᵢ_"></a><a id="847" href="Function.Metric.Bundles.html#847" class="Field Operator">_≈ᵢ_</a> <a id="861" class="Symbol">:</a> <a id="863" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="867" href="Function.Metric.Bundles.html#786" class="Field">Image</a> <a id="873" href="Function.Metric.Bundles.html#675" class="Bound">ℓ₂</a>
|
||
|
<a id="ProtoMetric._≤_"></a><a id="880" href="Function.Metric.Bundles.html#880" class="Field Operator">_≤_</a> <a id="894" class="Symbol">:</a> <a id="896" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="900" href="Function.Metric.Bundles.html#786" class="Field">Image</a> <a id="906" href="Function.Metric.Bundles.html#678" class="Bound">ℓ₃</a>
|
||
|
<a id="ProtoMetric.0#"></a><a id="913" href="Function.Metric.Bundles.html#913" class="Field">0#</a> <a id="927" class="Symbol">:</a> <a id="929" href="Function.Metric.Bundles.html#786" class="Field">Image</a>
|
||
|
<a id="ProtoMetric.d"></a><a id="939" href="Function.Metric.Bundles.html#939" class="Field">d</a> <a id="953" class="Symbol">:</a> <a id="955" href="Function.Metric.Core.html#451" class="Function">DistanceFunction</a> <a id="972" href="Function.Metric.Bundles.html#760" class="Field">Carrier</a> <a id="980" href="Function.Metric.Bundles.html#786" class="Field">Image</a>
|
||
|
<a id="ProtoMetric.isProtoMetric"></a><a id="990" href="Function.Metric.Bundles.html#990" class="Field">isProtoMetric</a> <a id="1004" class="Symbol">:</a> <a id="1006" href="Function.Metric.Structures.html#921" class="Record">IsProtoMetric</a> <a id="1020" href="Function.Metric.Bundles.html#812" class="Field Operator">_≈_</a> <a id="1024" href="Function.Metric.Bundles.html#847" class="Field Operator">_≈ᵢ_</a> <a id="1029" href="Function.Metric.Bundles.html#880" class="Field Operator">_≤_</a> <a id="1033" href="Function.Metric.Bundles.html#913" class="Field">0#</a> <a id="1036" href="Function.Metric.Bundles.html#939" class="Field">d</a>
|
||
|
|
||
|
<a id="1041" class="Keyword">open</a> <a id="1046" href="Function.Metric.Structures.html#921" class="Module">IsProtoMetric</a> <a id="1060" href="Function.Metric.Bundles.html#990" class="Field">isProtoMetric</a> <a id="1074" class="Keyword">public</a>
|
||
|
|
||
|
<a id="1082" class="Comment">------------------------------------------------------------------------</a>
|
||
|
<a id="1155" class="Comment">-- PreMetric</a>
|
||
|
|
||
|
<a id="1169" class="Keyword">record</a> <a id="PreMetric"></a><a id="1176" href="Function.Metric.Bundles.html#1176" class="Record">PreMetric</a> <a id="1186" class="Symbol">(</a><a id="1187" href="Function.Metric.Bundles.html#1187" class="Bound">a</a> <a id="1189" href="Function.Metric.Bundles.html#1189" class="Bound">i</a> <a id="1191" href="Function.Metric.Bundles.html#1191" class="Bound">ℓ₁</a> <a id="1194" href="Function.Metric.Bundles.html#1194" class="Bound">ℓ₂</a> <a id="1197" href="Function.Metric.Bundles.html#1197" class="Bound">ℓ₃</a> <a id="1200" class="Symbol">:</a> <a id="1202" href="Agda.Primitive.html#591" class="Postulate">Level</a><a id="1207" class="Symbol">)</a>
|
||
|
<a id="1224" class="Symbol">:</a> <a id="1226" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1230" class="Symbol">(</a><a id="1231" href="Agda.Primitive.html#774" class="Primitive">suc</a> <a id="1235" class="Symbol">(</a><a id="1236" href="Function.Metric.Bundles.html#1187" class="Bound">a</a> <a id="1238" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1240" href="Function.Metric.Bundles.html#1189" class="Bound">i</a> <a id="1242" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1244" href="Function.Metric.Bundles.html#1191" class="Bound">ℓ₁</a> <a id="1247" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1249" href="Function.Metric.Bundles.html#1194" class="Bound">ℓ₂</a> <a id="1252" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1254" href="Function.Metric.Bundles.html#1197" class="Bound">ℓ₃</a><a id="1256" class="Symbol">))</a> <a id="1259" class="Keyword">where</a>
|
||
|
<a id="1267" class="Keyword">field</a>
|
||
|
<a id="PreMetric.Carrier"></a><a id="1277" href="Function.Metric.Bundles.html#1277" class="Field">Carrier</a> <a id="1289" class="Symbol">:</a> <a id="1291" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1295" href="Function.Metric.Bundles.html#1187" class="Bound">a</a>
|
||
|
<a id="PreMetric.Image"></a><a id="1301" href="Function.Metric.Bundles.html#1301" class="Field">Image</a> <a id="1313" class="Symbol">:</a> <a id="1315" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1319" href="Function.Metric.Bundles.html#1189" class="Bound">i</a>
|
||
|
<a id="PreMetric._≈_"></a><a id="1325" href="Function.Metric.Bundles.html#1325" class="Field Operator">_≈_</a> <a id="1337" class="Symbol">:</a> <a id="1339" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="1343" href="Function.Metric.Bundles.html#1277" class="Field">Carrier</a> <a id="1351" href="Function.Metric.Bundles.html#1191" class="Bound">ℓ₁</a>
|
||
|
<a id="PreMetric._≈ᵢ_"></a><a id="1358" href="Function.Metric.Bundles.html#1358" class="Field Operator">_≈ᵢ_</a> <a id="1370" class="Symbol">:</a> <a id="1372" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="1376" href="Function.Metric.Bundles.html#1301" class="Field">Image</a> <a id="1382" href="Function.Metric.Bundles.html#1194" class="Bound">ℓ₂</a>
|
||
|
<a id="PreMetric._≤_"></a><a id="1389" href="Function.Metric.Bundles.html#1389" class="Field Operator">_≤_</a> <a id="1401" class="Symbol">:</a> <a id="1403" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="1407" href="Function.Metric.Bundles.html#1301" class="Field">Image</a> <a id="1413" href="Function.Metric.Bundles.html#1197" class="Bound">ℓ₃</a>
|
||
|
<a id="PreMetric.0#"></a><a id="1420" href="Function.Metric.Bundles.html#1420" class="Field">0#</a> <a id="1432" class="Symbol">:</a> <a id="1434" href="Function.Metric.Bundles.html#1301" class="Field">Image</a>
|
||
|
<a id="PreMetric.d"></a><a id="1444" href="Function.Metric.Bundles.html#1444" class="Field">d</a> <a id="1456" class="Symbol">:</a> <a id="1458" href="Function.Metric.Core.html#451" class="Function">DistanceFunction</a> <a id="1475" href="Function.Metric.Bundles.html#1277" class="Field">Carrier</a> <a id="1483" href="Function.Metric.Bundles.html#1301" class="Field">Image</a>
|
||
|
<a id="PreMetric.isPreMetric"></a><a id="1493" href="Function.Metric.Bundles.html#1493" class="Field">isPreMetric</a> <a id="1505" class="Symbol">:</a> <a id="1507" href="Function.Metric.Structures.html#1422" class="Record">IsPreMetric</a> <a id="1519" href="Function.Metric.Bundles.html#1325" class="Field Operator">_≈_</a> <a id="1523" href="Function.Metric.Bundles.html#1358" class="Field Operator">_≈ᵢ_</a> <a id="1528" href="Function.Metric.Bundles.html#1389" class="Field Operator">_≤_</a> <a id="1532" href="Function.Metric.Bundles.html#1420" class="Field">0#</a> <a id="1535" href="Function.Metric.Bundles.html#1444" class="Field">d</a>
|
||
|
|
||
|
<a id="1540" class="Keyword">open</a> <a id="1545" href="Function.Metric.Structures.html#1422" class="Module">IsPreMetric</a> <a id="1557" href="Function.Metric.Bundles.html#1493" class="Field">isPreMetric</a> <a id="1569" class="Keyword">public</a>
|
||
|
|
||
|
<a id="PreMetric.protoMetric"></a><a id="1579" href="Function.Metric.Bundles.html#1579" class="Function">protoMetric</a> <a id="1591" class="Symbol">:</a> <a id="1593" href="Function.Metric.Bundles.html#655" class="Record">ProtoMetric</a> <a id="1605" href="Function.Metric.Bundles.html#1187" class="Bound">a</a> <a id="1607" href="Function.Metric.Bundles.html#1189" class="Bound">i</a> <a id="1609" href="Function.Metric.Bundles.html#1191" class="Bound">ℓ₁</a> <a id="1612" href="Function.Metric.Bundles.html#1194" class="Bound">ℓ₂</a> <a id="1615" href="Function.Metric.Bundles.html#1197" class="Bound">ℓ₃</a>
|
||
|
<a id="1620" href="Function.Metric.Bundles.html#1579" class="Function">protoMetric</a> <a id="1632" class="Symbol">=</a> <a id="1634" class="Keyword">record</a>
|
||
|
<a id="1645" class="Symbol">{</a> <a id="1647" href="Function.Metric.Bundles.html#990" class="Field">isProtoMetric</a> <a id="1661" class="Symbol">=</a> <a id="1663" href="Function.Metric.Structures.html#1525" class="Function">isProtoMetric</a>
|
||
|
<a id="1681" class="Symbol">}</a>
|
||
|
|
||
|
<a id="1684" class="Comment">------------------------------------------------------------------------</a>
|
||
|
<a id="1757" class="Comment">-- QuasiSemiMetric</a>
|
||
|
|
||
|
<a id="1777" class="Keyword">record</a> <a id="QuasiSemiMetric"></a><a id="1784" href="Function.Metric.Bundles.html#1784" class="Record">QuasiSemiMetric</a> <a id="1800" class="Symbol">(</a><a id="1801" href="Function.Metric.Bundles.html#1801" class="Bound">a</a> <a id="1803" href="Function.Metric.Bundles.html#1803" class="Bound">i</a> <a id="1805" href="Function.Metric.Bundles.html#1805" class="Bound">ℓ₁</a> <a id="1808" href="Function.Metric.Bundles.html#1808" class="Bound">ℓ₂</a> <a id="1811" href="Function.Metric.Bundles.html#1811" class="Bound">ℓ₃</a> <a id="1814" class="Symbol">:</a> <a id="1816" href="Agda.Primitive.html#591" class="Postulate">Level</a><a id="1821" class="Symbol">)</a>
|
||
|
<a id="1844" class="Symbol">:</a> <a id="1846" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1850" class="Symbol">(</a><a id="1851" href="Agda.Primitive.html#774" class="Primitive">suc</a> <a id="1855" class="Symbol">(</a><a id="1856" href="Function.Metric.Bundles.html#1801" class="Bound">a</a> <a id="1858" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1860" href="Function.Metric.Bundles.html#1803" class="Bound">i</a> <a id="1862" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1864" href="Function.Metric.Bundles.html#1805" class="Bound">ℓ₁</a> <a id="1867" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1869" href="Function.Metric.Bundles.html#1808" class="Bound">ℓ₂</a> <a id="1872" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1874" href="Function.Metric.Bundles.html#1811" class="Bound">ℓ₃</a><a id="1876" class="Symbol">))</a> <a id="1879" class="Keyword">where</a>
|
||
|
<a id="1887" class="Keyword">field</a>
|
||
|
<a id="QuasiSemiMetric.Carrier"></a><a id="1897" href="Function.Metric.Bundles.html#1897" class="Field">Carrier</a> <a id="1915" class="Symbol">:</a> <a id="1917" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1921" href="Function.Metric.Bundles.html#1801" class="Bound">a</a>
|
||
|
<a id="QuasiSemiMetric.Image"></a><a id="1927" href="Function.Metric.Bundles.html#1927" class="Field">Image</a> <a id="1945" class="Symbol">:</a> <a id="1947" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1951" href="Function.Metric.Bundles.html#1803" class="Bound">i</a>
|
||
|
<a id="QuasiSemiMetric._≈_"></a><a id="1957" href="Function.Metric.Bundles.html#1957" class="Field Operator">_≈_</a> <a id="1975" class="Symbol">:</a> <a id="1977" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="1981" href="Function.Metric.Bundles.html#1897" class="Field">Carrier</a> <a id="1989" href="Function.Metric.Bundles.html#1805" class="Bound">ℓ₁</a>
|
||
|
<a id="QuasiSemiMetric._≈ᵢ_"></a><a id="1996" href="Function.Metric.Bundles.html#1996" class="Field Operator">_≈ᵢ_</a> <a id="2014" class="Symbol">:</a> <a id="2016" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="2020" href="Function.Metric.Bundles.html#1927" class="Field">Image</a> <a id="2026" href="Function.Metric.Bundles.html#1808" class="Bound">ℓ₂</a>
|
||
|
<a id="QuasiSemiMetric._≤_"></a><a id="2033" href="Function.Metric.Bundles.html#2033" class="Field Operator">_≤_</a> <a id="2051" class="Symbol">:</a> <a id="2053" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="2057" href="Function.Metric.Bundles.html#1927" class="Field">Image</a> <a id="2063" href="Function.Metric.Bundles.html#1811" class="Bound">ℓ₃</a>
|
||
|
<a id="QuasiSemiMetric.0#"></a><a id="2070" href="Function.Metric.Bundles.html#2070" class="Field">0#</a> <a id="2088" class="Symbol">:</a> <a id="2090" href="Function.Metric.Bundles.html#1927" class="Field">Image</a>
|
||
|
<a id="QuasiSemiMetric.d"></a><a id="2100" href="Function.Metric.Bundles.html#2100" class="Field">d</a> <a id="2118" class="Symbol">:</a> <a id="2120" href="Function.Metric.Core.html#451" class="Function">DistanceFunction</a> <a id="2137" href="Function.Metric.Bundles.html#1897" class="Field">Carrier</a> <a id="2145" href="Function.Metric.Bundles.html#1927" class="Field">Image</a>
|
||
|
<a id="QuasiSemiMetric.isQuasiSemiMetric"></a><a id="2155" href="Function.Metric.Bundles.html#2155" class="Field">isQuasiSemiMetric</a> <a id="2173" class="Symbol">:</a> <a id="2175" href="Function.Metric.Structures.html#1748" class="Record">IsQuasiSemiMetric</a> <a id="2193" href="Function.Metric.Bundles.html#1957" class="Field Operator">_≈_</a> <a id="2197" href="Function.Metric.Bundles.html#1996" class="Field Operator">_≈ᵢ_</a> <a id="2202" href="Function.Metric.Bundles.html#2033" class="Field Operator">_≤_</a> <a id="2206" href="Function.Metric.Bundles.html#2070" class="Field">0#</a> <a id="2209" href="Function.Metric.Bundles.html#2100" class="Field">d</a>
|
||
|
|
||
|
<a id="2214" class="Keyword">open</a> <a id="2219" href="Function.Metric.Structures.html#1748" class="Module">IsQuasiSemiMetric</a> <a id="2237" href="Function.Metric.Bundles.html#2155" class="Field">isQuasiSemiMetric</a> <a id="2255" class="Keyword">public</a>
|
||
|
|
||
|
<a id="QuasiSemiMetric.preMetric"></a><a id="2265" href="Function.Metric.Bundles.html#2265" class="Function">preMetric</a> <a id="2275" class="Symbol">:</a> <a id="2277" href="Function.Metric.Bundles.html#1176" class="Record">PreMetric</a> <a id="2287" href="Function.Metric.Bundles.html#1801" class="Bound">a</a> <a id="2289" href="Function.Metric.Bundles.html#1803" class="Bound">i</a> <a id="2291" href="Function.Metric.Bundles.html#1805" class="Bound">ℓ₁</a> <a id="2294" href="Function.Metric.Bundles.html#1808" class="Bound">ℓ₂</a> <a id="2297" href="Function.Metric.Bundles.html#1811" class="Bound">ℓ₃</a>
|
||
|
<a id="2302" href="Function.Metric.Bundles.html#2265" class="Function">preMetric</a> <a id="2312" class="Symbol">=</a> <a id="2314" class="Keyword">record</a>
|
||
|
<a id="2325" class="Symbol">{</a> <a id="2327" href="Function.Metric.Bundles.html#1493" class="Field">isPreMetric</a> <a id="2339" class="Symbol">=</a> <a id="2341" href="Function.Metric.Structures.html#1863" class="Function">isPreMetric</a>
|
||
|
<a id="2357" class="Symbol">}</a>
|
||
|
|
||
|
<a id="2362" class="Keyword">open</a> <a id="2367" href="Function.Metric.Bundles.html#1176" class="Module">PreMetric</a> <a id="2377" href="Function.Metric.Bundles.html#2265" class="Function">preMetric</a> <a id="2387" class="Keyword">public</a>
|
||
|
<a id="2398" class="Keyword">using</a> <a id="2404" class="Symbol">(</a><a id="2405" href="Function.Metric.Bundles.html#1579" class="Function">protoMetric</a><a id="2416" class="Symbol">)</a>
|
||
|
|
||
|
<a id="2419" class="Comment">------------------------------------------------------------------------</a>
|
||
|
<a id="2492" class="Comment">-- SemiMetric</a>
|
||
|
|
||
|
<a id="2507" class="Keyword">record</a> <a id="SemiMetric"></a><a id="2514" href="Function.Metric.Bundles.html#2514" class="Record">SemiMetric</a> <a id="2525" class="Symbol">(</a><a id="2526" href="Function.Metric.Bundles.html#2526" class="Bound">a</a> <a id="2528" href="Function.Metric.Bundles.html#2528" class="Bound">i</a> <a id="2530" href="Function.Metric.Bundles.html#2530" class="Bound">ℓ₁</a> <a id="2533" href="Function.Metric.Bundles.html#2533" class="Bound">ℓ₂</a> <a id="2536" href="Function.Metric.Bundles.html#2536" class="Bound">ℓ₃</a> <a id="2539" class="Symbol">:</a> <a id="2541" href="Agda.Primitive.html#591" class="Postulate">Level</a><a id="2546" class="Symbol">)</a>
|
||
|
<a id="2564" class="Symbol">:</a> <a id="2566" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2570" class="Symbol">(</a><a id="2571" href="Agda.Primitive.html#774" class="Primitive">suc</a> <a id="2575" class="Symbol">(</a><a id="2576" href="Function.Metric.Bundles.html#2526" class="Bound">a</a> <a id="2578" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="2580" href="Function.Metric.Bundles.html#2528" class="Bound">i</a> <a id="2582" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="2584" href="Function.Metric.Bundles.html#2530" class="Bound">ℓ₁</a> <a id="2587" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="2589" href="Function.Metric.Bundles.html#2533" class="Bound">ℓ₂</a> <a id="2592" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="2594" href="Function.Metric.Bundles.html#2536" class="Bound">ℓ₃</a><a id="2596" class="Symbol">))</a> <a id="2599" class="Keyword">where</a>
|
||
|
<a id="2607" class="Keyword">field</a>
|
||
|
<a id="SemiMetric.Carrier"></a><a id="2617" href="Function.Metric.Bundles.html#2617" class="Field">Carrier</a> <a id="2630" class="Symbol">:</a> <a id="2632" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2636" href="Function.Metric.Bundles.html#2526" class="Bound">a</a>
|
||
|
<a id="SemiMetric.Image"></a><a id="2642" href="Function.Metric.Bundles.html#2642" class="Field">Image</a> <a id="2655" class="Symbol">:</a> <a id="2657" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="2661" href="Function.Metric.Bundles.html#2528" class="Bound">i</a>
|
||
|
<a id="SemiMetric._≈_"></a><a id="2667" href="Function.Metric.Bundles.html#2667" class="Field Operator">_≈_</a> <a id="2680" class="Symbol">:</a> <a id="2682" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="2686" href="Function.Metric.Bundles.html#2617" class="Field">Carrier</a> <a id="2694" href="Function.Metric.Bundles.html#2530" class="Bound">ℓ₁</a>
|
||
|
<a id="SemiMetric._≈ᵢ_"></a><a id="2701" href="Function.Metric.Bundles.html#2701" class="Field Operator">_≈ᵢ_</a> <a id="2714" class="Symbol">:</a> <a id="2716" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="2720" href="Function.Metric.Bundles.html#2642" class="Field">Image</a> <a id="2726" href="Function.Metric.Bundles.html#2533" class="Bound">ℓ₂</a>
|
||
|
<a id="SemiMetric._≤_"></a><a id="2733" href="Function.Metric.Bundles.html#2733" class="Field Operator">_≤_</a> <a id="2746" class="Symbol">:</a> <a id="2748" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="2752" href="Function.Metric.Bundles.html#2642" class="Field">Image</a> <a id="2758" href="Function.Metric.Bundles.html#2536" class="Bound">ℓ₃</a>
|
||
|
<a id="SemiMetric.0#"></a><a id="2765" href="Function.Metric.Bundles.html#2765" class="Field">0#</a> <a id="2778" class="Symbol">:</a> <a id="2780" href="Function.Metric.Bundles.html#2642" class="Field">Image</a>
|
||
|
<a id="SemiMetric.d"></a><a id="2790" href="Function.Metric.Bundles.html#2790" class="Field">d</a> <a id="2803" class="Symbol">:</a> <a id="2805" href="Function.Metric.Core.html#451" class="Function">DistanceFunction</a> <a id="2822" href="Function.Metric.Bundles.html#2617" class="Field">Carrier</a> <a id="2830" href="Function.Metric.Bundles.html#2642" class="Field">Image</a>
|
||
|
<a id="SemiMetric.isSemiMetric"></a><a id="2840" href="Function.Metric.Bundles.html#2840" class="Field">isSemiMetric</a> <a id="2853" class="Symbol">:</a> <a id="2855" href="Function.Metric.Structures.html#2075" class="Record">IsSemiMetric</a> <a id="2868" href="Function.Metric.Bundles.html#2667" class="Field Operator">_≈_</a> <a id="2872" href="Function.Metric.Bundles.html#2701" class="Field Operator">_≈ᵢ_</a> <a id="2877" href="Function.Metric.Bundles.html#2733" class="Field Operator">_≤_</a> <a id="2881" href="Function.Metric.Bundles.html#2765" class="Field">0#</a> <a id="2884" href="Function.Metric.Bundles.html#2790" class="Field">d</a>
|
||
|
|
||
|
<a id="2889" class="Keyword">open</a> <a id="2894" href="Function.Metric.Structures.html#2075" class="Module">IsSemiMetric</a> <a id="2907" href="Function.Metric.Bundles.html#2840" class="Field">isSemiMetric</a> <a id="2920" class="Keyword">public</a>
|
||
|
|
||
|
<a id="SemiMetric.quasiSemiMetric"></a><a id="2930" href="Function.Metric.Bundles.html#2930" class="Function">quasiSemiMetric</a> <a id="2946" class="Symbol">:</a> <a id="2948" href="Function.Metric.Bundles.html#1784" class="Record">QuasiSemiMetric</a> <a id="2964" href="Function.Metric.Bundles.html#2526" class="Bound">a</a> <a id="2966" href="Function.Metric.Bundles.html#2528" class="Bound">i</a> <a id="2968" href="Function.Metric.Bundles.html#2530" class="Bound">ℓ₁</a> <a id="2971" href="Function.Metric.Bundles.html#2533" class="Bound">ℓ₂</a> <a id="2974" href="Function.Metric.Bundles.html#2536" class="Bound">ℓ₃</a>
|
||
|
<a id="2979" href="Function.Metric.Bundles.html#2930" class="Function">quasiSemiMetric</a> <a id="2995" class="Symbol">=</a> <a id="2997" class="Keyword">record</a>
|
||
|
<a id="3008" class="Symbol">{</a> <a id="3010" href="Function.Metric.Bundles.html#2155" class="Field">isQuasiSemiMetric</a> <a id="3028" class="Symbol">=</a> <a id="3030" href="Function.Metric.Structures.html#2180" class="Function">isQuasiSemiMetric</a>
|
||
|
<a id="3052" class="Symbol">}</a>
|
||
|
|
||
|
<a id="3057" class="Keyword">open</a> <a id="3062" href="Function.Metric.Bundles.html#1784" class="Module">QuasiSemiMetric</a> <a id="3078" href="Function.Metric.Bundles.html#2930" class="Function">quasiSemiMetric</a> <a id="3094" class="Keyword">public</a>
|
||
|
<a id="3105" class="Keyword">using</a> <a id="3111" class="Symbol">(</a><a id="3112" href="Function.Metric.Bundles.html#1579" class="Function">protoMetric</a><a id="3123" class="Symbol">;</a> <a id="3125" href="Function.Metric.Bundles.html#2265" class="Function">preMetric</a><a id="3134" class="Symbol">)</a>
|
||
|
|
||
|
<a id="3137" class="Comment">------------------------------------------------------------------------</a>
|
||
|
<a id="3210" class="Comment">-- GeneralMetric</a>
|
||
|
|
||
|
<a id="3228" class="Comment">-- Note that this package is not necessarily a metric in the classical</a>
|
||
|
<a id="3299" class="Comment">-- sense as there is no way to ensure that the _∙_ operator really</a>
|
||
|
<a id="3366" class="Comment">-- represents addition. See `Function.Metric.Nat` and</a>
|
||
|
<a id="3420" class="Comment">-- `Function.Metric.Rational` for more specialised `Metric` and</a>
|
||
|
<a id="3484" class="Comment">-- `UltraMetric` packages.</a>
|
||
|
|
||
|
<a id="3512" class="Comment">-- See the discussion accompanying the `IsGeneralMetric` structure for</a>
|
||
|
<a id="3583" class="Comment">-- more details.</a>
|
||
|
|
||
|
<a id="3601" class="Keyword">record</a> <a id="GeneralMetric"></a><a id="3608" href="Function.Metric.Bundles.html#3608" class="Record">GeneralMetric</a> <a id="3622" class="Symbol">(</a><a id="3623" href="Function.Metric.Bundles.html#3623" class="Bound">a</a> <a id="3625" href="Function.Metric.Bundles.html#3625" class="Bound">i</a> <a id="3627" href="Function.Metric.Bundles.html#3627" class="Bound">ℓ₁</a> <a id="3630" href="Function.Metric.Bundles.html#3630" class="Bound">ℓ₂</a> <a id="3633" href="Function.Metric.Bundles.html#3633" class="Bound">ℓ₃</a> <a id="3636" class="Symbol">:</a> <a id="3638" href="Agda.Primitive.html#591" class="Postulate">Level</a><a id="3643" class="Symbol">)</a>
|
||
|
<a id="3664" class="Symbol">:</a> <a id="3666" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3670" class="Symbol">(</a><a id="3671" href="Agda.Primitive.html#774" class="Primitive">suc</a> <a id="3675" class="Symbol">(</a><a id="3676" href="Function.Metric.Bundles.html#3623" class="Bound">a</a> <a id="3678" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="3680" href="Function.Metric.Bundles.html#3625" class="Bound">i</a> <a id="3682" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="3684" href="Function.Metric.Bundles.html#3627" class="Bound">ℓ₁</a> <a id="3687" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="3689" href="Function.Metric.Bundles.html#3630" class="Bound">ℓ₂</a> <a id="3692" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="3694" href="Function.Metric.Bundles.html#3633" class="Bound">ℓ₃</a><a id="3696" class="Symbol">))</a> <a id="3699" class="Keyword">where</a>
|
||
|
<a id="3707" class="Keyword">field</a>
|
||
|
<a id="GeneralMetric.Carrier"></a><a id="3717" href="Function.Metric.Bundles.html#3717" class="Field">Carrier</a> <a id="3733" class="Symbol">:</a> <a id="3735" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3739" href="Function.Metric.Bundles.html#3623" class="Bound">a</a>
|
||
|
<a id="GeneralMetric.Image"></a><a id="3745" href="Function.Metric.Bundles.html#3745" class="Field">Image</a> <a id="3761" class="Symbol">:</a> <a id="3763" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="3767" href="Function.Metric.Bundles.html#3625" class="Bound">i</a>
|
||
|
<a id="GeneralMetric._≈_"></a><a id="3773" href="Function.Metric.Bundles.html#3773" class="Field Operator">_≈_</a> <a id="3789" class="Symbol">:</a> <a id="3791" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="3795" href="Function.Metric.Bundles.html#3717" class="Field">Carrier</a> <a id="3803" href="Function.Metric.Bundles.html#3627" class="Bound">ℓ₁</a>
|
||
|
<a id="GeneralMetric._≈ᵢ_"></a><a id="3810" href="Function.Metric.Bundles.html#3810" class="Field Operator">_≈ᵢ_</a> <a id="3826" class="Symbol">:</a> <a id="3828" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="3832" href="Function.Metric.Bundles.html#3745" class="Field">Image</a> <a id="3838" href="Function.Metric.Bundles.html#3630" class="Bound">ℓ₂</a>
|
||
|
<a id="GeneralMetric._≤_"></a><a id="3845" href="Function.Metric.Bundles.html#3845" class="Field Operator">_≤_</a> <a id="3861" class="Symbol">:</a> <a id="3863" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="3867" href="Function.Metric.Bundles.html#3745" class="Field">Image</a> <a id="3873" href="Function.Metric.Bundles.html#3633" class="Bound">ℓ₃</a>
|
||
|
<a id="GeneralMetric.0#"></a><a id="3880" href="Function.Metric.Bundles.html#3880" class="Field">0#</a> <a id="3896" class="Symbol">:</a> <a id="3898" href="Function.Metric.Bundles.html#3745" class="Field">Image</a>
|
||
|
<a id="GeneralMetric._∙_"></a><a id="3908" href="Function.Metric.Bundles.html#3908" class="Field Operator">_∙_</a> <a id="3924" class="Symbol">:</a> <a id="3926" href="Algebra.Core.html#527" class="Function">Op₂</a> <a id="3930" href="Function.Metric.Bundles.html#3745" class="Field">Image</a>
|
||
|
<a id="GeneralMetric.d"></a><a id="3940" href="Function.Metric.Bundles.html#3940" class="Field">d</a> <a id="3956" class="Symbol">:</a> <a id="3958" href="Function.Metric.Core.html#451" class="Function">DistanceFunction</a> <a id="3975" href="Function.Metric.Bundles.html#3717" class="Field">Carrier</a> <a id="3983" href="Function.Metric.Bundles.html#3745" class="Field">Image</a>
|
||
|
<a id="GeneralMetric.isGeneralMetric"></a><a id="3993" href="Function.Metric.Bundles.html#3993" class="Field">isGeneralMetric</a> <a id="4009" class="Symbol">:</a> <a id="4011" href="Function.Metric.Structures.html#2930" class="Record">IsGeneralMetric</a> <a id="4027" href="Function.Metric.Bundles.html#3773" class="Field Operator">_≈_</a> <a id="4031" href="Function.Metric.Bundles.html#3810" class="Field Operator">_≈ᵢ_</a> <a id="4036" href="Function.Metric.Bundles.html#3845" class="Field Operator">_≤_</a> <a id="4040" href="Function.Metric.Bundles.html#3880" class="Field">0#</a> <a id="4043" href="Function.Metric.Bundles.html#3908" class="Field Operator">_∙_</a> <a id="4047" href="Function.Metric.Bundles.html#3940" class="Field">d</a>
|
||
|
|
||
|
<a id="4052" class="Keyword">open</a> <a id="4057" href="Function.Metric.Structures.html#2930" class="Module">IsGeneralMetric</a> <a id="4073" href="Function.Metric.Bundles.html#3993" class="Field">isGeneralMetric</a> <a id="4089" class="Keyword">public</a>
|
||
|
|
||
|
<a id="GeneralMetric.semiMetric"></a><a id="4099" href="Function.Metric.Bundles.html#4099" class="Function">semiMetric</a> <a id="4110" class="Symbol">:</a> <a id="4112" href="Function.Metric.Bundles.html#2514" class="Record">SemiMetric</a> <a id="4123" href="Function.Metric.Bundles.html#3623" class="Bound">a</a> <a id="4125" href="Function.Metric.Bundles.html#3625" class="Bound">i</a> <a id="4127" href="Function.Metric.Bundles.html#3627" class="Bound">ℓ₁</a> <a id="4130" href="Function.Metric.Bundles.html#3630" class="Bound">ℓ₂</a> <a id="4133" href="Function.Metric.Bundles.html#3633" class="Bound">ℓ₃</a>
|
||
|
<a id="4138" href="Function.Metric.Bundles.html#4099" class="Function">semiMetric</a> <a id="4149" class="Symbol">=</a> <a id="4151" class="Keyword">record</a>
|
||
|
<a id="4162" class="Symbol">{</a> <a id="4164" href="Function.Metric.Bundles.html#2840" class="Field">isSemiMetric</a> <a id="4177" class="Symbol">=</a> <a id="4179" href="Function.Metric.Structures.html#3055" class="Function">isSemiMetric</a>
|
||
|
<a id="4196" class="Symbol">}</a>
|
||
|
|
||
|
<a id="4201" class="Keyword">open</a> <a id="4206" href="Function.Metric.Bundles.html#2514" class="Module">SemiMetric</a> <a id="4217" href="Function.Metric.Bundles.html#4099" class="Function">semiMetric</a> <a id="4228" class="Keyword">public</a>
|
||
|
<a id="4239" class="Keyword">using</a> <a id="4245" class="Symbol">(</a><a id="4246" href="Function.Metric.Bundles.html#1579" class="Function">protoMetric</a><a id="4257" class="Symbol">;</a> <a id="4259" href="Function.Metric.Bundles.html#2265" class="Function">preMetric</a><a id="4268" class="Symbol">;</a> <a id="4270" href="Function.Metric.Bundles.html#2930" class="Function">quasiSemiMetric</a><a id="4285" class="Symbol">)</a>
|
||
|
</pre></body></html>
|