mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
117 lines
No EOL
45 KiB
HTML
117 lines
No EOL
45 KiB
HTML
<!DOCTYPE HTML>
|
||
<html><head><meta charset="utf-8"><title>Relation.Binary.Reasoning.Base.Double</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">-- The basic code for equational reasoning with two relations:</a>
|
||
<a id="169" class="Comment">-- equality and some other ordering.</a>
|
||
<a id="206" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="279" class="Comment">--</a>
|
||
<a id="282" class="Comment">-- See `Data.Nat.Properties` or `Relation.Binary.Reasoning.PartialOrder`</a>
|
||
<a id="355" class="Comment">-- for examples of how to instantiate this module.</a>
|
||
|
||
<a id="407" class="Symbol">{-#</a> <a id="411" class="Keyword">OPTIONS</a> <a id="419" class="Pragma">--cubical-compatible</a> <a id="440" class="Pragma">--safe</a> <a id="447" class="Symbol">#-}</a>
|
||
|
||
<a id="452" class="Keyword">open</a> <a id="457" class="Keyword">import</a> <a id="464" href="Relation.Binary.html" class="Module">Relation.Binary</a>
|
||
|
||
<a id="481" class="Keyword">module</a> <a id="488" href="Relation.Binary.Reasoning.Base.Double.html" class="Module">Relation.Binary.Reasoning.Base.Double</a> <a id="526" class="Symbol">{</a><a id="527" href="Relation.Binary.Reasoning.Base.Double.html#527" class="Bound">a</a> <a id="529" href="Relation.Binary.Reasoning.Base.Double.html#529" class="Bound">ℓ₁</a> <a id="532" href="Relation.Binary.Reasoning.Base.Double.html#532" class="Bound">ℓ₂</a><a id="534" class="Symbol">}</a> <a id="536" class="Symbol">{</a><a id="537" href="Relation.Binary.Reasoning.Base.Double.html#537" class="Bound">A</a> <a id="539" class="Symbol">:</a> <a id="541" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="545" href="Relation.Binary.Reasoning.Base.Double.html#527" class="Bound">a</a><a id="546" class="Symbol">}</a>
|
||
<a id="550" class="Symbol">{</a><a id="551" href="Relation.Binary.Reasoning.Base.Double.html#551" class="Bound Operator">_≈_</a> <a id="555" class="Symbol">:</a> <a id="557" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="561" href="Relation.Binary.Reasoning.Base.Double.html#537" class="Bound">A</a> <a id="563" href="Relation.Binary.Reasoning.Base.Double.html#529" class="Bound">ℓ₁</a><a id="565" class="Symbol">}</a> <a id="567" class="Symbol">{</a><a id="568" href="Relation.Binary.Reasoning.Base.Double.html#568" class="Bound Operator">_∼_</a> <a id="572" class="Symbol">:</a> <a id="574" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="578" href="Relation.Binary.Reasoning.Base.Double.html#537" class="Bound">A</a> <a id="580" href="Relation.Binary.Reasoning.Base.Double.html#532" class="Bound">ℓ₂</a><a id="582" class="Symbol">}</a> <a id="584" class="Symbol">(</a><a id="585" href="Relation.Binary.Reasoning.Base.Double.html#585" class="Bound">isPreorder</a> <a id="596" class="Symbol">:</a> <a id="598" href="Relation.Binary.Structures.html#2172" class="Record">IsPreorder</a> <a id="609" href="Relation.Binary.Reasoning.Base.Double.html#551" class="Bound Operator">_≈_</a> <a id="613" href="Relation.Binary.Reasoning.Base.Double.html#568" class="Bound Operator">_∼_</a><a id="616" class="Symbol">)</a>
|
||
<a id="620" class="Keyword">where</a>
|
||
|
||
<a id="627" class="Keyword">open</a> <a id="632" class="Keyword">import</a> <a id="639" href="Data.Product.html" class="Module">Data.Product</a> <a id="652" class="Keyword">using</a> <a id="658" class="Symbol">(</a><a id="659" href="Agda.Builtin.Sigma.html#234" class="Field">proj₁</a><a id="664" class="Symbol">;</a> <a id="666" href="Agda.Builtin.Sigma.html#246" class="Field">proj₂</a><a id="671" class="Symbol">)</a>
|
||
<a id="673" class="Keyword">open</a> <a id="678" class="Keyword">import</a> <a id="685" href="Level.html" class="Module">Level</a> <a id="691" class="Keyword">using</a> <a id="697" class="Symbol">(</a><a id="698" href="Agda.Primitive.html#591" class="Postulate">Level</a><a id="703" class="Symbol">;</a> <a id="705" href="Agda.Primitive.html#804" class="Primitive Operator">_⊔_</a><a id="708" class="Symbol">;</a> <a id="710" href="Level.html#409" class="Record">Lift</a><a id="714" class="Symbol">;</a> <a id="716" href="Level.html#466" class="InductiveConstructor">lift</a><a id="720" class="Symbol">)</a>
|
||
<a id="722" class="Keyword">open</a> <a id="727" class="Keyword">import</a> <a id="734" href="Function.Base.html" class="Module">Function.Base</a> <a id="748" class="Keyword">using</a> <a id="754" class="Symbol">(</a><a id="755" href="Function.Base.html#4130" class="Function Operator">case_of_</a><a id="763" class="Symbol">;</a> <a id="765" href="Function.Base.html#624" class="Function">id</a><a id="767" class="Symbol">)</a>
|
||
<a id="769" class="Keyword">open</a> <a id="774" class="Keyword">import</a> <a id="781" href="Relation.Binary.PropositionalEquality.Core.html" class="Module">Relation.Binary.PropositionalEquality.Core</a>
|
||
<a id="826" class="Keyword">using</a> <a id="832" class="Symbol">(</a><a id="833" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a><a id="836" class="Symbol">;</a> <a id="838" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a><a id="842" class="Symbol">;</a> <a id="844" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a><a id="847" class="Symbol">)</a>
|
||
<a id="849" class="Keyword">open</a> <a id="854" class="Keyword">import</a> <a id="861" href="Relation.Nullary.html" class="Module">Relation.Nullary</a> <a id="878" class="Keyword">using</a> <a id="884" class="Symbol">(</a><a id="885" href="Relation.Nullary.html#1520" class="Record">Dec</a><a id="888" class="Symbol">;</a> <a id="890" href="Relation.Nullary.html#1657" class="InductiveConstructor">yes</a><a id="893" class="Symbol">;</a> <a id="895" href="Relation.Nullary.html#1694" class="InductiveConstructor">no</a><a id="897" class="Symbol">)</a>
|
||
<a id="899" class="Keyword">open</a> <a id="904" class="Keyword">import</a> <a id="911" href="Relation.Nullary.Decidable.html" class="Module">Relation.Nullary.Decidable</a> <a id="938" class="Keyword">using</a> <a id="944" class="Symbol">(</a><a id="945" href="Relation.Nullary.Decidable.Core.html#1374" class="Function">True</a><a id="949" class="Symbol">;</a> <a id="951" href="Relation.Nullary.Decidable.Core.html#1493" class="Function">toWitness</a><a id="960" class="Symbol">)</a>
|
||
|
||
<a id="963" class="Keyword">open</a> <a id="968" href="Relation.Binary.Structures.html#2172" class="Module">IsPreorder</a> <a id="979" href="Relation.Binary.Reasoning.Base.Double.html#585" class="Bound">isPreorder</a>
|
||
|
||
<a id="991" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="1064" class="Comment">-- A datatype to hide the current relation type</a>
|
||
|
||
<a id="1113" class="Keyword">infix</a> <a id="1119" class="Number">4</a> <a id="1121" href="Relation.Binary.Reasoning.Base.Double.html#1141" class="Datatype Operator">_IsRelatedTo_</a>
|
||
|
||
<a id="1136" class="Keyword">data</a> <a id="_IsRelatedTo_"></a><a id="1141" href="Relation.Binary.Reasoning.Base.Double.html#1141" class="Datatype Operator">_IsRelatedTo_</a> <a id="1155" class="Symbol">(</a><a id="1156" href="Relation.Binary.Reasoning.Base.Double.html#1156" class="Bound">x</a> <a id="1158" href="Relation.Binary.Reasoning.Base.Double.html#1158" class="Bound">y</a> <a id="1160" class="Symbol">:</a> <a id="1162" href="Relation.Binary.Reasoning.Base.Double.html#537" class="Bound">A</a><a id="1163" class="Symbol">)</a> <a id="1165" class="Symbol">:</a> <a id="1167" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1171" class="Symbol">(</a><a id="1172" href="Relation.Binary.Reasoning.Base.Double.html#527" class="Bound">a</a> <a id="1174" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1176" href="Relation.Binary.Reasoning.Base.Double.html#529" class="Bound">ℓ₁</a> <a id="1179" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1181" href="Relation.Binary.Reasoning.Base.Double.html#532" class="Bound">ℓ₂</a><a id="1183" class="Symbol">)</a> <a id="1185" class="Keyword">where</a>
|
||
<a id="_IsRelatedTo_.nonstrict"></a><a id="1193" href="Relation.Binary.Reasoning.Base.Double.html#1193" class="InductiveConstructor">nonstrict</a> <a id="1203" class="Symbol">:</a> <a id="1205" class="Symbol">(</a><a id="1206" href="Relation.Binary.Reasoning.Base.Double.html#1206" class="Bound">x∼y</a> <a id="1210" class="Symbol">:</a> <a id="1212" href="Relation.Binary.Reasoning.Base.Double.html#1156" class="Bound">x</a> <a id="1214" href="Relation.Binary.Reasoning.Base.Double.html#568" class="Bound Operator">∼</a> <a id="1216" href="Relation.Binary.Reasoning.Base.Double.html#1158" class="Bound">y</a><a id="1217" class="Symbol">)</a> <a id="1219" class="Symbol">→</a> <a id="1221" href="Relation.Binary.Reasoning.Base.Double.html#1156" class="Bound">x</a> <a id="1223" href="Relation.Binary.Reasoning.Base.Double.html#1141" class="Datatype Operator">IsRelatedTo</a> <a id="1235" href="Relation.Binary.Reasoning.Base.Double.html#1158" class="Bound">y</a>
|
||
<a id="_IsRelatedTo_.equals"></a><a id="1239" href="Relation.Binary.Reasoning.Base.Double.html#1239" class="InductiveConstructor">equals</a> <a id="1249" class="Symbol">:</a> <a id="1251" class="Symbol">(</a><a id="1252" href="Relation.Binary.Reasoning.Base.Double.html#1252" class="Bound">x≈y</a> <a id="1256" class="Symbol">:</a> <a id="1258" href="Relation.Binary.Reasoning.Base.Double.html#1156" class="Bound">x</a> <a id="1260" href="Relation.Binary.Reasoning.Base.Double.html#551" class="Bound Operator">≈</a> <a id="1262" href="Relation.Binary.Reasoning.Base.Double.html#1158" class="Bound">y</a><a id="1263" class="Symbol">)</a> <a id="1265" class="Symbol">→</a> <a id="1267" href="Relation.Binary.Reasoning.Base.Double.html#1156" class="Bound">x</a> <a id="1269" href="Relation.Binary.Reasoning.Base.Double.html#1141" class="Datatype Operator">IsRelatedTo</a> <a id="1281" href="Relation.Binary.Reasoning.Base.Double.html#1158" class="Bound">y</a>
|
||
|
||
<a id="1284" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="1357" class="Comment">-- A record that is used to ensure that the final relation proved by the</a>
|
||
<a id="1430" class="Comment">-- chain of reasoning can be converted into the required relation.</a>
|
||
|
||
<a id="1498" class="Keyword">data</a> <a id="IsEquality"></a><a id="1503" href="Relation.Binary.Reasoning.Base.Double.html#1503" class="Datatype">IsEquality</a> <a id="1514" class="Symbol">{</a><a id="1515" href="Relation.Binary.Reasoning.Base.Double.html#1515" class="Bound">x</a> <a id="1517" href="Relation.Binary.Reasoning.Base.Double.html#1517" class="Bound">y</a><a id="1518" class="Symbol">}</a> <a id="1520" class="Symbol">:</a> <a id="1522" href="Relation.Binary.Reasoning.Base.Double.html#1515" class="Bound">x</a> <a id="1524" href="Relation.Binary.Reasoning.Base.Double.html#1141" class="Datatype Operator">IsRelatedTo</a> <a id="1536" href="Relation.Binary.Reasoning.Base.Double.html#1517" class="Bound">y</a> <a id="1538" class="Symbol">→</a> <a id="1540" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1544" class="Symbol">(</a><a id="1545" href="Relation.Binary.Reasoning.Base.Double.html#527" class="Bound">a</a> <a id="1547" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1549" href="Relation.Binary.Reasoning.Base.Double.html#529" class="Bound">ℓ₁</a> <a id="1552" href="Agda.Primitive.html#804" class="Primitive Operator">⊔</a> <a id="1554" href="Relation.Binary.Reasoning.Base.Double.html#532" class="Bound">ℓ₂</a><a id="1556" class="Symbol">)</a> <a id="1558" class="Keyword">where</a>
|
||
<a id="IsEquality.isEquality"></a><a id="1566" href="Relation.Binary.Reasoning.Base.Double.html#1566" class="InductiveConstructor">isEquality</a> <a id="1577" class="Symbol">:</a> <a id="1579" class="Symbol">∀</a> <a id="1581" href="Relation.Binary.Reasoning.Base.Double.html#1581" class="Bound">x≈y</a> <a id="1585" class="Symbol">→</a> <a id="1587" href="Relation.Binary.Reasoning.Base.Double.html#1503" class="Datatype">IsEquality</a> <a id="1598" class="Symbol">(</a><a id="1599" href="Relation.Binary.Reasoning.Base.Double.html#1239" class="InductiveConstructor">equals</a> <a id="1606" href="Relation.Binary.Reasoning.Base.Double.html#1581" class="Bound">x≈y</a><a id="1609" class="Symbol">)</a>
|
||
|
||
<a id="IsEquality?"></a><a id="1612" href="Relation.Binary.Reasoning.Base.Double.html#1612" class="Function">IsEquality?</a> <a id="1624" class="Symbol">:</a> <a id="1626" class="Symbol">∀</a> <a id="1628" class="Symbol">{</a><a id="1629" href="Relation.Binary.Reasoning.Base.Double.html#1629" class="Bound">x</a> <a id="1631" href="Relation.Binary.Reasoning.Base.Double.html#1631" class="Bound">y</a><a id="1632" class="Symbol">}</a> <a id="1634" class="Symbol">(</a><a id="1635" href="Relation.Binary.Reasoning.Base.Double.html#1635" class="Bound">x≲y</a> <a id="1639" class="Symbol">:</a> <a id="1641" href="Relation.Binary.Reasoning.Base.Double.html#1629" class="Bound">x</a> <a id="1643" href="Relation.Binary.Reasoning.Base.Double.html#1141" class="Datatype Operator">IsRelatedTo</a> <a id="1655" href="Relation.Binary.Reasoning.Base.Double.html#1631" class="Bound">y</a><a id="1656" class="Symbol">)</a> <a id="1658" class="Symbol">→</a> <a id="1660" href="Relation.Nullary.html#1520" class="Record">Dec</a> <a id="1664" class="Symbol">(</a><a id="1665" href="Relation.Binary.Reasoning.Base.Double.html#1503" class="Datatype">IsEquality</a> <a id="1676" href="Relation.Binary.Reasoning.Base.Double.html#1635" class="Bound">x≲y</a><a id="1679" class="Symbol">)</a>
|
||
<a id="1681" href="Relation.Binary.Reasoning.Base.Double.html#1612" class="Function">IsEquality?</a> <a id="1693" class="Symbol">(</a><a id="1694" href="Relation.Binary.Reasoning.Base.Double.html#1193" class="InductiveConstructor">nonstrict</a> <a id="1704" class="Symbol">_)</a> <a id="1707" class="Symbol">=</a> <a id="1709" href="Relation.Nullary.html#1694" class="InductiveConstructor">no</a> <a id="1712" class="Symbol">λ()</a>
|
||
<a id="1716" href="Relation.Binary.Reasoning.Base.Double.html#1612" class="Function">IsEquality?</a> <a id="1728" class="Symbol">(</a><a id="1729" href="Relation.Binary.Reasoning.Base.Double.html#1239" class="InductiveConstructor">equals</a> <a id="1736" href="Relation.Binary.Reasoning.Base.Double.html#1736" class="Bound">x≈y</a><a id="1739" class="Symbol">)</a> <a id="1742" class="Symbol">=</a> <a id="1744" href="Relation.Nullary.html#1657" class="InductiveConstructor">yes</a> <a id="1748" class="Symbol">(</a><a id="1749" href="Relation.Binary.Reasoning.Base.Double.html#1566" class="InductiveConstructor">isEquality</a> <a id="1760" href="Relation.Binary.Reasoning.Base.Double.html#1736" class="Bound">x≈y</a><a id="1763" class="Symbol">)</a>
|
||
|
||
<a id="extractEquality"></a><a id="1766" href="Relation.Binary.Reasoning.Base.Double.html#1766" class="Function">extractEquality</a> <a id="1782" class="Symbol">:</a> <a id="1784" class="Symbol">∀</a> <a id="1786" class="Symbol">{</a><a id="1787" href="Relation.Binary.Reasoning.Base.Double.html#1787" class="Bound">x</a> <a id="1789" href="Relation.Binary.Reasoning.Base.Double.html#1789" class="Bound">y</a><a id="1790" class="Symbol">}</a> <a id="1792" class="Symbol">{</a><a id="1793" href="Relation.Binary.Reasoning.Base.Double.html#1793" class="Bound">x≲y</a> <a id="1797" class="Symbol">:</a> <a id="1799" href="Relation.Binary.Reasoning.Base.Double.html#1787" class="Bound">x</a> <a id="1801" href="Relation.Binary.Reasoning.Base.Double.html#1141" class="Datatype Operator">IsRelatedTo</a> <a id="1813" href="Relation.Binary.Reasoning.Base.Double.html#1789" class="Bound">y</a><a id="1814" class="Symbol">}</a> <a id="1816" class="Symbol">→</a> <a id="1818" href="Relation.Binary.Reasoning.Base.Double.html#1503" class="Datatype">IsEquality</a> <a id="1829" href="Relation.Binary.Reasoning.Base.Double.html#1793" class="Bound">x≲y</a> <a id="1833" class="Symbol">→</a> <a id="1835" href="Relation.Binary.Reasoning.Base.Double.html#1787" class="Bound">x</a> <a id="1837" href="Relation.Binary.Reasoning.Base.Double.html#551" class="Bound Operator">≈</a> <a id="1839" href="Relation.Binary.Reasoning.Base.Double.html#1789" class="Bound">y</a>
|
||
<a id="1841" href="Relation.Binary.Reasoning.Base.Double.html#1766" class="Function">extractEquality</a> <a id="1857" class="Symbol">(</a><a id="1858" href="Relation.Binary.Reasoning.Base.Double.html#1566" class="InductiveConstructor">isEquality</a> <a id="1869" href="Relation.Binary.Reasoning.Base.Double.html#1869" class="Bound">x≈y</a><a id="1872" class="Symbol">)</a> <a id="1874" class="Symbol">=</a> <a id="1876" href="Relation.Binary.Reasoning.Base.Double.html#1869" class="Bound">x≈y</a>
|
||
|
||
<a id="1881" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="1954" class="Comment">-- Reasoning combinators</a>
|
||
|
||
<a id="1980" class="Comment">-- See `Relation.Binary.Reasoning.Base.Partial` for the design decisions</a>
|
||
<a id="2053" class="Comment">-- behind these combinators.</a>
|
||
|
||
<a id="2083" class="Keyword">infix</a> <a id="2090" class="Number">1</a> <a id="2092" href="Relation.Binary.Reasoning.Base.Double.html#2222" class="Function Operator">begin_</a> <a id="2099" href="Relation.Binary.Reasoning.Base.Double.html#2336" class="Function Operator">begin-equality_</a>
|
||
<a id="2115" class="Keyword">infixr</a> <a id="2122" class="Number">2</a> <a id="2124" href="Relation.Binary.Reasoning.Base.Double.html#2508" class="Function">step-∼</a> <a id="2131" href="Relation.Binary.Reasoning.Base.Double.html#2730" class="Function">step-≈</a> <a id="2138" href="Relation.Binary.Reasoning.Base.Double.html#2972" class="Function">step-≈˘</a> <a id="2146" href="Relation.Binary.Reasoning.Base.Double.html#3132" class="Function">step-≡</a> <a id="2153" href="Relation.Binary.Reasoning.Base.Double.html#3407" class="Function">step-≡˘</a> <a id="2161" href="Relation.Binary.Reasoning.Base.Double.html#3560" class="Function Operator">_≡⟨⟩_</a>
|
||
<a id="2167" class="Keyword">infix</a> <a id="2174" class="Number">3</a> <a id="2176" href="Relation.Binary.Reasoning.Base.Double.html#3656" class="Function Operator">_∎</a>
|
||
|
||
<a id="2180" class="Comment">-- Beginnings of various types of proofs</a>
|
||
|
||
<a id="begin_"></a><a id="2222" href="Relation.Binary.Reasoning.Base.Double.html#2222" class="Function Operator">begin_</a> <a id="2229" class="Symbol">:</a> <a id="2231" class="Symbol">∀</a> <a id="2233" class="Symbol">{</a><a id="2234" href="Relation.Binary.Reasoning.Base.Double.html#2234" class="Bound">x</a> <a id="2236" href="Relation.Binary.Reasoning.Base.Double.html#2236" class="Bound">y</a><a id="2237" class="Symbol">}</a> <a id="2239" class="Symbol">(</a><a id="2240" href="Relation.Binary.Reasoning.Base.Double.html#2240" class="Bound">r</a> <a id="2242" class="Symbol">:</a> <a id="2244" href="Relation.Binary.Reasoning.Base.Double.html#2234" class="Bound">x</a> <a id="2246" href="Relation.Binary.Reasoning.Base.Double.html#1141" class="Datatype Operator">IsRelatedTo</a> <a id="2258" href="Relation.Binary.Reasoning.Base.Double.html#2236" class="Bound">y</a><a id="2259" class="Symbol">)</a> <a id="2261" class="Symbol">→</a> <a id="2263" href="Relation.Binary.Reasoning.Base.Double.html#2234" class="Bound">x</a> <a id="2265" href="Relation.Binary.Reasoning.Base.Double.html#568" class="Bound Operator">∼</a> <a id="2267" href="Relation.Binary.Reasoning.Base.Double.html#2236" class="Bound">y</a>
|
||
<a id="2269" href="Relation.Binary.Reasoning.Base.Double.html#2222" class="Function Operator">begin</a> <a id="2275" class="Symbol">(</a><a id="2276" href="Relation.Binary.Reasoning.Base.Double.html#1193" class="InductiveConstructor">nonstrict</a> <a id="2286" href="Relation.Binary.Reasoning.Base.Double.html#2286" class="Bound">x∼y</a><a id="2289" class="Symbol">)</a> <a id="2291" class="Symbol">=</a> <a id="2293" href="Relation.Binary.Reasoning.Base.Double.html#2286" class="Bound">x∼y</a>
|
||
<a id="2297" href="Relation.Binary.Reasoning.Base.Double.html#2222" class="Function Operator">begin</a> <a id="2303" class="Symbol">(</a><a id="2304" href="Relation.Binary.Reasoning.Base.Double.html#1239" class="InductiveConstructor">equals</a> <a id="2314" href="Relation.Binary.Reasoning.Base.Double.html#2314" class="Bound">x≈y</a><a id="2317" class="Symbol">)</a> <a id="2319" class="Symbol">=</a> <a id="2321" href="Relation.Binary.Structures.html#2340" class="Field">reflexive</a> <a id="2331" href="Relation.Binary.Reasoning.Base.Double.html#2314" class="Bound">x≈y</a>
|
||
|
||
<a id="begin-equality_"></a><a id="2336" href="Relation.Binary.Reasoning.Base.Double.html#2336" class="Function Operator">begin-equality_</a> <a id="2352" class="Symbol">:</a> <a id="2354" class="Symbol">∀</a> <a id="2356" class="Symbol">{</a><a id="2357" href="Relation.Binary.Reasoning.Base.Double.html#2357" class="Bound">x</a> <a id="2359" href="Relation.Binary.Reasoning.Base.Double.html#2359" class="Bound">y</a><a id="2360" class="Symbol">}</a> <a id="2362" class="Symbol">(</a><a id="2363" href="Relation.Binary.Reasoning.Base.Double.html#2363" class="Bound">r</a> <a id="2365" class="Symbol">:</a> <a id="2367" href="Relation.Binary.Reasoning.Base.Double.html#2357" class="Bound">x</a> <a id="2369" href="Relation.Binary.Reasoning.Base.Double.html#1141" class="Datatype Operator">IsRelatedTo</a> <a id="2381" href="Relation.Binary.Reasoning.Base.Double.html#2359" class="Bound">y</a><a id="2382" class="Symbol">)</a> <a id="2384" class="Symbol">→</a> <a id="2386" class="Symbol">{</a><a id="2387" href="Relation.Binary.Reasoning.Base.Double.html#2387" class="Bound">s</a> <a id="2389" class="Symbol">:</a> <a id="2391" href="Relation.Nullary.Decidable.Core.html#1374" class="Function">True</a> <a id="2396" class="Symbol">(</a><a id="2397" href="Relation.Binary.Reasoning.Base.Double.html#1612" class="Function">IsEquality?</a> <a id="2409" href="Relation.Binary.Reasoning.Base.Double.html#2363" class="Bound">r</a><a id="2410" class="Symbol">)}</a> <a id="2413" class="Symbol">→</a> <a id="2415" href="Relation.Binary.Reasoning.Base.Double.html#2357" class="Bound">x</a> <a id="2417" href="Relation.Binary.Reasoning.Base.Double.html#551" class="Bound Operator">≈</a> <a id="2419" href="Relation.Binary.Reasoning.Base.Double.html#2359" class="Bound">y</a>
|
||
<a id="2421" href="Relation.Binary.Reasoning.Base.Double.html#2336" class="Function Operator">begin-equality_</a> <a id="2437" href="Relation.Binary.Reasoning.Base.Double.html#2437" class="Bound">r</a> <a id="2439" class="Symbol">{</a><a id="2440" href="Relation.Binary.Reasoning.Base.Double.html#2440" class="Bound">s</a><a id="2441" class="Symbol">}</a> <a id="2443" class="Symbol">=</a> <a id="2445" href="Relation.Binary.Reasoning.Base.Double.html#1766" class="Function">extractEquality</a> <a id="2461" class="Symbol">(</a><a id="2462" href="Relation.Nullary.Decidable.Core.html#1493" class="Function">toWitness</a> <a id="2472" href="Relation.Binary.Reasoning.Base.Double.html#2440" class="Bound">s</a><a id="2473" class="Symbol">)</a>
|
||
|
||
<a id="2476" class="Comment">-- Step with the main relation</a>
|
||
|
||
<a id="step-∼"></a><a id="2508" href="Relation.Binary.Reasoning.Base.Double.html#2508" class="Function">step-∼</a> <a id="2515" class="Symbol">:</a> <a id="2517" class="Symbol">∀</a> <a id="2519" class="Symbol">(</a><a id="2520" href="Relation.Binary.Reasoning.Base.Double.html#2520" class="Bound">x</a> <a id="2522" class="Symbol">:</a> <a id="2524" href="Relation.Binary.Reasoning.Base.Double.html#537" class="Bound">A</a><a id="2525" class="Symbol">)</a> <a id="2527" class="Symbol">{</a><a id="2528" href="Relation.Binary.Reasoning.Base.Double.html#2528" class="Bound">y</a> <a id="2530" href="Relation.Binary.Reasoning.Base.Double.html#2530" class="Bound">z</a><a id="2531" class="Symbol">}</a> <a id="2533" class="Symbol">→</a> <a id="2535" href="Relation.Binary.Reasoning.Base.Double.html#2528" class="Bound">y</a> <a id="2537" href="Relation.Binary.Reasoning.Base.Double.html#1141" class="Datatype Operator">IsRelatedTo</a> <a id="2549" href="Relation.Binary.Reasoning.Base.Double.html#2530" class="Bound">z</a> <a id="2551" class="Symbol">→</a> <a id="2553" href="Relation.Binary.Reasoning.Base.Double.html#2520" class="Bound">x</a> <a id="2555" href="Relation.Binary.Reasoning.Base.Double.html#568" class="Bound Operator">∼</a> <a id="2557" href="Relation.Binary.Reasoning.Base.Double.html#2528" class="Bound">y</a> <a id="2559" class="Symbol">→</a> <a id="2561" href="Relation.Binary.Reasoning.Base.Double.html#2520" class="Bound">x</a> <a id="2563" href="Relation.Binary.Reasoning.Base.Double.html#1141" class="Datatype Operator">IsRelatedTo</a> <a id="2575" href="Relation.Binary.Reasoning.Base.Double.html#2530" class="Bound">z</a>
|
||
<a id="2577" href="Relation.Binary.Reasoning.Base.Double.html#2508" class="Function">step-∼</a> <a id="2584" href="Relation.Binary.Reasoning.Base.Double.html#2584" class="Bound">x</a> <a id="2586" class="Symbol">(</a><a id="2587" href="Relation.Binary.Reasoning.Base.Double.html#1193" class="InductiveConstructor">nonstrict</a> <a id="2597" href="Relation.Binary.Reasoning.Base.Double.html#2597" class="Bound">y∼z</a><a id="2600" class="Symbol">)</a> <a id="2602" href="Relation.Binary.Reasoning.Base.Double.html#2602" class="Bound">x∼y</a> <a id="2606" class="Symbol">=</a> <a id="2608" href="Relation.Binary.Reasoning.Base.Double.html#1193" class="InductiveConstructor">nonstrict</a> <a id="2618" class="Symbol">(</a><a id="2619" href="Relation.Binary.Structures.html#2370" class="Field">trans</a> <a id="2625" href="Relation.Binary.Reasoning.Base.Double.html#2602" class="Bound">x∼y</a> <a id="2629" href="Relation.Binary.Reasoning.Base.Double.html#2597" class="Bound">y∼z</a><a id="2632" class="Symbol">)</a>
|
||
<a id="2634" href="Relation.Binary.Reasoning.Base.Double.html#2508" class="Function">step-∼</a> <a id="2641" href="Relation.Binary.Reasoning.Base.Double.html#2641" class="Bound">x</a> <a id="2643" class="Symbol">(</a><a id="2644" href="Relation.Binary.Reasoning.Base.Double.html#1239" class="InductiveConstructor">equals</a> <a id="2654" href="Relation.Binary.Reasoning.Base.Double.html#2654" class="Bound">y≈z</a><a id="2657" class="Symbol">)</a> <a id="2659" href="Relation.Binary.Reasoning.Base.Double.html#2659" class="Bound">x∼y</a> <a id="2663" class="Symbol">=</a> <a id="2665" href="Relation.Binary.Reasoning.Base.Double.html#1193" class="InductiveConstructor">nonstrict</a> <a id="2675" class="Symbol">(</a><a id="2676" href="Relation.Binary.Structures.html#2588" class="Function">∼-respʳ-≈</a> <a id="2686" href="Relation.Binary.Reasoning.Base.Double.html#2654" class="Bound">y≈z</a> <a id="2690" href="Relation.Binary.Reasoning.Base.Double.html#2659" class="Bound">x∼y</a><a id="2693" class="Symbol">)</a>
|
||
|
||
<a id="2696" class="Comment">-- Step with the setoid equality</a>
|
||
|
||
<a id="step-≈"></a><a id="2730" href="Relation.Binary.Reasoning.Base.Double.html#2730" class="Function">step-≈</a> <a id="2737" class="Symbol">:</a> <a id="2739" class="Symbol">∀</a> <a id="2741" class="Symbol">(</a><a id="2742" href="Relation.Binary.Reasoning.Base.Double.html#2742" class="Bound">x</a> <a id="2744" class="Symbol">:</a> <a id="2746" href="Relation.Binary.Reasoning.Base.Double.html#537" class="Bound">A</a><a id="2747" class="Symbol">)</a> <a id="2749" class="Symbol">{</a><a id="2750" href="Relation.Binary.Reasoning.Base.Double.html#2750" class="Bound">y</a> <a id="2752" href="Relation.Binary.Reasoning.Base.Double.html#2752" class="Bound">z</a><a id="2753" class="Symbol">}</a> <a id="2755" class="Symbol">→</a> <a id="2757" href="Relation.Binary.Reasoning.Base.Double.html#2750" class="Bound">y</a> <a id="2759" href="Relation.Binary.Reasoning.Base.Double.html#1141" class="Datatype Operator">IsRelatedTo</a> <a id="2771" href="Relation.Binary.Reasoning.Base.Double.html#2752" class="Bound">z</a> <a id="2773" class="Symbol">→</a> <a id="2775" href="Relation.Binary.Reasoning.Base.Double.html#2742" class="Bound">x</a> <a id="2777" href="Relation.Binary.Reasoning.Base.Double.html#551" class="Bound Operator">≈</a> <a id="2779" href="Relation.Binary.Reasoning.Base.Double.html#2750" class="Bound">y</a> <a id="2781" class="Symbol">→</a> <a id="2783" href="Relation.Binary.Reasoning.Base.Double.html#2742" class="Bound">x</a> <a id="2785" href="Relation.Binary.Reasoning.Base.Double.html#1141" class="Datatype Operator">IsRelatedTo</a> <a id="2797" href="Relation.Binary.Reasoning.Base.Double.html#2752" class="Bound">z</a>
|
||
<a id="2799" href="Relation.Binary.Reasoning.Base.Double.html#2730" class="Function">step-≈</a> <a id="2806" href="Relation.Binary.Reasoning.Base.Double.html#2806" class="Bound">x</a> <a id="2808" class="Symbol">(</a><a id="2809" href="Relation.Binary.Reasoning.Base.Double.html#1193" class="InductiveConstructor">nonstrict</a> <a id="2819" href="Relation.Binary.Reasoning.Base.Double.html#2819" class="Bound">y∼z</a><a id="2822" class="Symbol">)</a> <a id="2824" href="Relation.Binary.Reasoning.Base.Double.html#2824" class="Bound">x≈y</a> <a id="2828" class="Symbol">=</a> <a id="2830" href="Relation.Binary.Reasoning.Base.Double.html#1193" class="InductiveConstructor">nonstrict</a> <a id="2840" class="Symbol">(</a><a id="2841" href="Relation.Binary.Structures.html#2498" class="Function">∼-respˡ-≈</a> <a id="2851" class="Symbol">(</a><a id="2852" href="Relation.Binary.Structures.html#1603" class="Function">Eq.sym</a> <a id="2859" href="Relation.Binary.Reasoning.Base.Double.html#2824" class="Bound">x≈y</a><a id="2862" class="Symbol">)</a> <a id="2864" href="Relation.Binary.Reasoning.Base.Double.html#2819" class="Bound">y∼z</a><a id="2867" class="Symbol">)</a>
|
||
<a id="2869" href="Relation.Binary.Reasoning.Base.Double.html#2730" class="Function">step-≈</a> <a id="2876" href="Relation.Binary.Reasoning.Base.Double.html#2876" class="Bound">x</a> <a id="2878" class="Symbol">(</a><a id="2879" href="Relation.Binary.Reasoning.Base.Double.html#1239" class="InductiveConstructor">equals</a> <a id="2889" href="Relation.Binary.Reasoning.Base.Double.html#2889" class="Bound">y≈z</a><a id="2892" class="Symbol">)</a> <a id="2894" href="Relation.Binary.Reasoning.Base.Double.html#2894" class="Bound">x≈y</a> <a id="2898" class="Symbol">=</a> <a id="2900" href="Relation.Binary.Reasoning.Base.Double.html#1239" class="InductiveConstructor">equals</a> <a id="2910" class="Symbol">(</a><a id="2911" href="Relation.Binary.Structures.html#1629" class="Function">Eq.trans</a> <a id="2920" href="Relation.Binary.Reasoning.Base.Double.html#2894" class="Bound">x≈y</a> <a id="2924" href="Relation.Binary.Reasoning.Base.Double.html#2889" class="Bound">y≈z</a><a id="2927" class="Symbol">)</a>
|
||
|
||
<a id="2930" class="Comment">-- Flipped step with the setoid equality</a>
|
||
|
||
<a id="step-≈˘"></a><a id="2972" href="Relation.Binary.Reasoning.Base.Double.html#2972" class="Function">step-≈˘</a> <a id="2980" class="Symbol">:</a> <a id="2982" class="Symbol">∀</a> <a id="2984" href="Relation.Binary.Reasoning.Base.Double.html#2984" class="Bound">x</a> <a id="2986" class="Symbol">{</a><a id="2987" href="Relation.Binary.Reasoning.Base.Double.html#2987" class="Bound">y</a> <a id="2989" href="Relation.Binary.Reasoning.Base.Double.html#2989" class="Bound">z</a><a id="2990" class="Symbol">}</a> <a id="2992" class="Symbol">→</a> <a id="2994" href="Relation.Binary.Reasoning.Base.Double.html#2987" class="Bound">y</a> <a id="2996" href="Relation.Binary.Reasoning.Base.Double.html#1141" class="Datatype Operator">IsRelatedTo</a> <a id="3008" href="Relation.Binary.Reasoning.Base.Double.html#2989" class="Bound">z</a> <a id="3010" class="Symbol">→</a> <a id="3012" href="Relation.Binary.Reasoning.Base.Double.html#2987" class="Bound">y</a> <a id="3014" href="Relation.Binary.Reasoning.Base.Double.html#551" class="Bound Operator">≈</a> <a id="3016" href="Relation.Binary.Reasoning.Base.Double.html#2984" class="Bound">x</a> <a id="3018" class="Symbol">→</a> <a id="3020" href="Relation.Binary.Reasoning.Base.Double.html#2984" class="Bound">x</a> <a id="3022" href="Relation.Binary.Reasoning.Base.Double.html#1141" class="Datatype Operator">IsRelatedTo</a> <a id="3034" href="Relation.Binary.Reasoning.Base.Double.html#2989" class="Bound">z</a>
|
||
<a id="3036" href="Relation.Binary.Reasoning.Base.Double.html#2972" class="Function">step-≈˘</a> <a id="3044" href="Relation.Binary.Reasoning.Base.Double.html#3044" class="Bound">x</a> <a id="3046" href="Relation.Binary.Reasoning.Base.Double.html#3046" class="Bound">y∼z</a> <a id="3050" href="Relation.Binary.Reasoning.Base.Double.html#3050" class="Bound">x≈y</a> <a id="3054" class="Symbol">=</a> <a id="3056" href="Relation.Binary.Reasoning.Base.Double.html#2730" class="Function">step-≈</a> <a id="3063" href="Relation.Binary.Reasoning.Base.Double.html#3044" class="Bound">x</a> <a id="3065" href="Relation.Binary.Reasoning.Base.Double.html#3046" class="Bound">y∼z</a> <a id="3069" class="Symbol">(</a><a id="3070" href="Relation.Binary.Structures.html#1603" class="Function">Eq.sym</a> <a id="3077" href="Relation.Binary.Reasoning.Base.Double.html#3050" class="Bound">x≈y</a><a id="3080" class="Symbol">)</a>
|
||
|
||
<a id="3083" class="Comment">-- Step with non-trivial propositional equality</a>
|
||
|
||
<a id="step-≡"></a><a id="3132" href="Relation.Binary.Reasoning.Base.Double.html#3132" class="Function">step-≡</a> <a id="3139" class="Symbol">:</a> <a id="3141" class="Symbol">∀</a> <a id="3143" class="Symbol">(</a><a id="3144" href="Relation.Binary.Reasoning.Base.Double.html#3144" class="Bound">x</a> <a id="3146" class="Symbol">:</a> <a id="3148" href="Relation.Binary.Reasoning.Base.Double.html#537" class="Bound">A</a><a id="3149" class="Symbol">)</a> <a id="3151" class="Symbol">{</a><a id="3152" href="Relation.Binary.Reasoning.Base.Double.html#3152" class="Bound">y</a> <a id="3154" href="Relation.Binary.Reasoning.Base.Double.html#3154" class="Bound">z</a><a id="3155" class="Symbol">}</a> <a id="3157" class="Symbol">→</a> <a id="3159" href="Relation.Binary.Reasoning.Base.Double.html#3152" class="Bound">y</a> <a id="3161" href="Relation.Binary.Reasoning.Base.Double.html#1141" class="Datatype Operator">IsRelatedTo</a> <a id="3173" href="Relation.Binary.Reasoning.Base.Double.html#3154" class="Bound">z</a> <a id="3175" class="Symbol">→</a> <a id="3177" href="Relation.Binary.Reasoning.Base.Double.html#3144" class="Bound">x</a> <a id="3179" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="3181" href="Relation.Binary.Reasoning.Base.Double.html#3152" class="Bound">y</a> <a id="3183" class="Symbol">→</a> <a id="3185" href="Relation.Binary.Reasoning.Base.Double.html#3144" class="Bound">x</a> <a id="3187" href="Relation.Binary.Reasoning.Base.Double.html#1141" class="Datatype Operator">IsRelatedTo</a> <a id="3199" href="Relation.Binary.Reasoning.Base.Double.html#3154" class="Bound">z</a>
|
||
<a id="3201" href="Relation.Binary.Reasoning.Base.Double.html#3132" class="Function">step-≡</a> <a id="3208" href="Relation.Binary.Reasoning.Base.Double.html#3208" class="Bound">x</a> <a id="3210" class="Symbol">(</a><a id="3211" href="Relation.Binary.Reasoning.Base.Double.html#1193" class="InductiveConstructor">nonstrict</a> <a id="3221" href="Relation.Binary.Reasoning.Base.Double.html#3221" class="Bound">y∼z</a><a id="3224" class="Symbol">)</a> <a id="3226" href="Relation.Binary.Reasoning.Base.Double.html#3226" class="Bound">x≡y</a> <a id="3230" class="Symbol">=</a> <a id="3232" href="Relation.Binary.Reasoning.Base.Double.html#1193" class="InductiveConstructor">nonstrict</a> <a id="3242" class="Symbol">(</a><a id="3243" href="Function.Base.html#4130" class="Function Operator">case</a> <a id="3248" href="Relation.Binary.Reasoning.Base.Double.html#3226" class="Bound">x≡y</a> <a id="3252" href="Function.Base.html#4130" class="Function Operator">of</a> <a id="3255" class="Symbol">λ</a> <a id="3257" class="Keyword">where</a> <a id="3263" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="3268" class="Symbol">→</a> <a id="3270" href="Relation.Binary.Reasoning.Base.Double.html#3221" class="Bound">y∼z</a><a id="3273" class="Symbol">)</a>
|
||
<a id="3275" href="Relation.Binary.Reasoning.Base.Double.html#3132" class="Function">step-≡</a> <a id="3282" href="Relation.Binary.Reasoning.Base.Double.html#3282" class="Bound">x</a> <a id="3284" class="Symbol">(</a><a id="3285" href="Relation.Binary.Reasoning.Base.Double.html#1239" class="InductiveConstructor">equals</a> <a id="3295" href="Relation.Binary.Reasoning.Base.Double.html#3295" class="Bound">y≈z</a><a id="3298" class="Symbol">)</a> <a id="3300" href="Relation.Binary.Reasoning.Base.Double.html#3300" class="Bound">x≡y</a> <a id="3304" class="Symbol">=</a> <a id="3306" href="Relation.Binary.Reasoning.Base.Double.html#1239" class="InductiveConstructor">equals</a> <a id="3316" class="Symbol">(</a><a id="3317" href="Function.Base.html#4130" class="Function Operator">case</a> <a id="3322" href="Relation.Binary.Reasoning.Base.Double.html#3300" class="Bound">x≡y</a> <a id="3326" href="Function.Base.html#4130" class="Function Operator">of</a> <a id="3329" class="Symbol">λ</a> <a id="3331" class="Keyword">where</a> <a id="3337" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">refl</a> <a id="3342" class="Symbol">→</a> <a id="3344" href="Relation.Binary.Reasoning.Base.Double.html#3295" class="Bound">y≈z</a><a id="3347" class="Symbol">)</a>
|
||
|
||
<a id="3350" class="Comment">-- Flipped step with non-trivial propositional equality</a>
|
||
|
||
<a id="step-≡˘"></a><a id="3407" href="Relation.Binary.Reasoning.Base.Double.html#3407" class="Function">step-≡˘</a> <a id="3415" class="Symbol">:</a> <a id="3417" class="Symbol">∀</a> <a id="3419" href="Relation.Binary.Reasoning.Base.Double.html#3419" class="Bound">x</a> <a id="3421" class="Symbol">{</a><a id="3422" href="Relation.Binary.Reasoning.Base.Double.html#3422" class="Bound">y</a> <a id="3424" href="Relation.Binary.Reasoning.Base.Double.html#3424" class="Bound">z</a><a id="3425" class="Symbol">}</a> <a id="3427" class="Symbol">→</a> <a id="3429" href="Relation.Binary.Reasoning.Base.Double.html#3422" class="Bound">y</a> <a id="3431" href="Relation.Binary.Reasoning.Base.Double.html#1141" class="Datatype Operator">IsRelatedTo</a> <a id="3443" href="Relation.Binary.Reasoning.Base.Double.html#3424" class="Bound">z</a> <a id="3445" class="Symbol">→</a> <a id="3447" href="Relation.Binary.Reasoning.Base.Double.html#3422" class="Bound">y</a> <a id="3449" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="3451" href="Relation.Binary.Reasoning.Base.Double.html#3419" class="Bound">x</a> <a id="3453" class="Symbol">→</a> <a id="3455" href="Relation.Binary.Reasoning.Base.Double.html#3419" class="Bound">x</a> <a id="3457" href="Relation.Binary.Reasoning.Base.Double.html#1141" class="Datatype Operator">IsRelatedTo</a> <a id="3469" href="Relation.Binary.Reasoning.Base.Double.html#3424" class="Bound">z</a>
|
||
<a id="3471" href="Relation.Binary.Reasoning.Base.Double.html#3407" class="Function">step-≡˘</a> <a id="3479" href="Relation.Binary.Reasoning.Base.Double.html#3479" class="Bound">x</a> <a id="3481" href="Relation.Binary.Reasoning.Base.Double.html#3481" class="Bound">y∼z</a> <a id="3485" href="Relation.Binary.Reasoning.Base.Double.html#3485" class="Bound">x≡y</a> <a id="3489" class="Symbol">=</a> <a id="3491" href="Relation.Binary.Reasoning.Base.Double.html#3132" class="Function">step-≡</a> <a id="3498" href="Relation.Binary.Reasoning.Base.Double.html#3479" class="Bound">x</a> <a id="3500" href="Relation.Binary.Reasoning.Base.Double.html#3481" class="Bound">y∼z</a> <a id="3504" class="Symbol">(</a><a id="3505" href="Relation.Binary.PropositionalEquality.Core.html#1693" class="Function">sym</a> <a id="3509" href="Relation.Binary.Reasoning.Base.Double.html#3485" class="Bound">x≡y</a><a id="3512" class="Symbol">)</a>
|
||
|
||
<a id="3515" class="Comment">-- Step with trivial propositional equality</a>
|
||
|
||
<a id="_≡⟨⟩_"></a><a id="3560" href="Relation.Binary.Reasoning.Base.Double.html#3560" class="Function Operator">_≡⟨⟩_</a> <a id="3566" class="Symbol">:</a> <a id="3568" class="Symbol">∀</a> <a id="3570" class="Symbol">(</a><a id="3571" href="Relation.Binary.Reasoning.Base.Double.html#3571" class="Bound">x</a> <a id="3573" class="Symbol">:</a> <a id="3575" href="Relation.Binary.Reasoning.Base.Double.html#537" class="Bound">A</a><a id="3576" class="Symbol">)</a> <a id="3578" class="Symbol">{</a><a id="3579" href="Relation.Binary.Reasoning.Base.Double.html#3579" class="Bound">y</a><a id="3580" class="Symbol">}</a> <a id="3582" class="Symbol">→</a> <a id="3584" href="Relation.Binary.Reasoning.Base.Double.html#3571" class="Bound">x</a> <a id="3586" href="Relation.Binary.Reasoning.Base.Double.html#1141" class="Datatype Operator">IsRelatedTo</a> <a id="3598" href="Relation.Binary.Reasoning.Base.Double.html#3579" class="Bound">y</a> <a id="3600" class="Symbol">→</a> <a id="3602" href="Relation.Binary.Reasoning.Base.Double.html#3571" class="Bound">x</a> <a id="3604" href="Relation.Binary.Reasoning.Base.Double.html#1141" class="Datatype Operator">IsRelatedTo</a> <a id="3616" href="Relation.Binary.Reasoning.Base.Double.html#3579" class="Bound">y</a>
|
||
<a id="3618" href="Relation.Binary.Reasoning.Base.Double.html#3618" class="Bound">x</a> <a id="3620" href="Relation.Binary.Reasoning.Base.Double.html#3560" class="Function Operator">≡⟨⟩</a> <a id="3624" href="Relation.Binary.Reasoning.Base.Double.html#3624" class="Bound">x≲y</a> <a id="3628" class="Symbol">=</a> <a id="3630" href="Relation.Binary.Reasoning.Base.Double.html#3624" class="Bound">x≲y</a>
|
||
|
||
<a id="3635" class="Comment">-- Termination step</a>
|
||
|
||
<a id="_∎"></a><a id="3656" href="Relation.Binary.Reasoning.Base.Double.html#3656" class="Function Operator">_∎</a> <a id="3659" class="Symbol">:</a> <a id="3661" class="Symbol">∀</a> <a id="3663" href="Relation.Binary.Reasoning.Base.Double.html#3663" class="Bound">x</a> <a id="3665" class="Symbol">→</a> <a id="3667" href="Relation.Binary.Reasoning.Base.Double.html#3663" class="Bound">x</a> <a id="3669" href="Relation.Binary.Reasoning.Base.Double.html#1141" class="Datatype Operator">IsRelatedTo</a> <a id="3681" href="Relation.Binary.Reasoning.Base.Double.html#3663" class="Bound">x</a>
|
||
<a id="3683" href="Relation.Binary.Reasoning.Base.Double.html#3683" class="Bound">x</a> <a id="3685" href="Relation.Binary.Reasoning.Base.Double.html#3656" class="Function Operator">∎</a> <a id="3687" class="Symbol">=</a> <a id="3689" href="Relation.Binary.Reasoning.Base.Double.html#1239" class="InductiveConstructor">equals</a> <a id="3696" href="Relation.Binary.Structures.html#1577" class="Function">Eq.refl</a>
|
||
|
||
<a id="3705" class="Comment">-- Syntax declarations</a>
|
||
|
||
<a id="3729" class="Keyword">syntax</a> <a id="3736" href="Relation.Binary.Reasoning.Base.Double.html#2508" class="Function">step-∼</a> <a id="3744" class="Bound">x</a> <a id="3746" class="Bound">y∼z</a> <a id="3750" class="Bound">x∼y</a> <a id="3754" class="Symbol">=</a> <a id="3756" class="Bound">x</a> <a id="3758" class="Function">∼⟨</a> <a id="3762" class="Bound">x∼y</a> <a id="3766" class="Function">⟩</a> <a id="3768" class="Bound">y∼z</a>
|
||
<a id="3772" class="Keyword">syntax</a> <a id="3779" href="Relation.Binary.Reasoning.Base.Double.html#2730" class="Function">step-≈</a> <a id="3787" class="Bound">x</a> <a id="3789" class="Bound">y∼z</a> <a id="3793" class="Bound">x≈y</a> <a id="3797" class="Symbol">=</a> <a id="3799" class="Bound">x</a> <a id="3801" class="Function">≈⟨</a> <a id="3805" class="Bound">x≈y</a> <a id="3809" class="Function">⟩</a> <a id="3811" class="Bound">y∼z</a>
|
||
<a id="3815" class="Keyword">syntax</a> <a id="3822" href="Relation.Binary.Reasoning.Base.Double.html#2972" class="Function">step-≈˘</a> <a id="3830" class="Bound">x</a> <a id="3832" class="Bound">y∼z</a> <a id="3836" class="Bound">y≈x</a> <a id="3840" class="Symbol">=</a> <a id="3842" class="Bound">x</a> <a id="3844" class="Function">≈˘⟨</a> <a id="3848" class="Bound">y≈x</a> <a id="3852" class="Function">⟩</a> <a id="3854" class="Bound">y∼z</a>
|
||
<a id="3858" class="Keyword">syntax</a> <a id="3865" href="Relation.Binary.Reasoning.Base.Double.html#3132" class="Function">step-≡</a> <a id="3873" class="Bound">x</a> <a id="3875" class="Bound">y∼z</a> <a id="3879" class="Bound">x≡y</a> <a id="3883" class="Symbol">=</a> <a id="3885" class="Bound">x</a> <a id="3887" class="Function">≡⟨</a> <a id="3891" class="Bound">x≡y</a> <a id="3895" class="Function">⟩</a> <a id="3897" class="Bound">y∼z</a>
|
||
<a id="3901" class="Keyword">syntax</a> <a id="3908" href="Relation.Binary.Reasoning.Base.Double.html#3407" class="Function">step-≡˘</a> <a id="3916" class="Bound">x</a> <a id="3918" class="Bound">y∼z</a> <a id="3922" class="Bound">y≡x</a> <a id="3926" class="Symbol">=</a> <a id="3928" class="Bound">x</a> <a id="3930" class="Function">≡˘⟨</a> <a id="3934" class="Bound">y≡x</a> <a id="3938" class="Function">⟩</a> <a id="3940" class="Bound">y∼z</a>
|
||
</pre></body></html> |