mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
446 lines
89 KiB
HTML
446 lines
89 KiB
HTML
|
<!DOCTYPE HTML>
|
|||
|
<html><head><meta charset="utf-8"><title>Relation.Binary.Reasoning.Syntax</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">-- Syntax for the building blocks of equational reasoning modules</a>
|
|||
|
<a id="172" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
|
|||
|
<a id="246" class="Symbol">{-#</a> <a id="250" class="Keyword">OPTIONS</a> <a id="258" class="Pragma">--cubical-compatible</a> <a id="279" class="Pragma">--safe</a> <a id="286" class="Symbol">#-}</a>
|
|||
|
|
|||
|
<a id="291" class="Keyword">open</a> <a id="296" class="Keyword">import</a> <a id="303" href="Level.html" class="Module">Level</a> <a id="309" class="Keyword">using</a> <a id="315" class="Symbol">(</a><a id="316" href="Agda.Primitive.html#742" class="Postulate">Level</a><a id="321" class="Symbol">;</a> <a id="323" href="Agda.Primitive.html#961" class="Primitive Operator">_⊔_</a><a id="326" class="Symbol">;</a> <a id="328" href="Agda.Primitive.html#931" class="Primitive">suc</a><a id="331" class="Symbol">)</a>
|
|||
|
<a id="333" class="Keyword">open</a> <a id="338" class="Keyword">import</a> <a id="345" href="Relation.Nullary.Decidable.Core.html" class="Module">Relation.Nullary.Decidable.Core</a>
|
|||
|
<a id="379" class="Keyword">using</a> <a id="385" class="Symbol">(</a><a id="386" href="Relation.Nullary.Decidable.Core.html#1485" class="Record">Dec</a><a id="389" class="Symbol">;</a> <a id="391" href="Relation.Nullary.Decidable.Core.html#3468" class="Function">True</a><a id="395" class="Symbol">;</a> <a id="397" href="Relation.Nullary.Decidable.Core.html#3758" class="Function">toWitness</a><a id="406" class="Symbol">)</a>
|
|||
|
<a id="408" class="Keyword">open</a> <a id="413" class="Keyword">import</a> <a id="420" href="Relation.Nullary.Negation.html" class="Module">Relation.Nullary.Negation</a> <a id="446" class="Keyword">using</a> <a id="452" class="Symbol">(</a><a id="453" href="Relation.Nullary.Negation.Core.html#1226" class="Function">contradiction</a><a id="466" class="Symbol">)</a>
|
|||
|
<a id="468" class="Keyword">open</a> <a id="473" class="Keyword">import</a> <a id="480" href="Relation.Binary.Core.html" class="Module">Relation.Binary.Core</a> <a id="501" class="Keyword">using</a> <a id="507" class="Symbol">(</a><a id="508" href="Relation.Binary.Core.html#896" class="Function">Rel</a><a id="511" class="Symbol">;</a> <a id="513" href="Relation.Binary.Core.html#780" class="Function">REL</a><a id="516" class="Symbol">;</a> <a id="518" href="Relation.Binary.Core.html#1268" class="Function Operator">_⇒_</a><a id="521" class="Symbol">)</a>
|
|||
|
<a id="523" class="Keyword">open</a> <a id="528" class="Keyword">import</a> <a id="535" href="Relation.Binary.Definitions.html" class="Module">Relation.Binary.Definitions</a>
|
|||
|
<a id="563" class="Keyword">open</a> <a id="568" class="Keyword">import</a> <a id="575" href="Relation.Binary.PropositionalEquality.Core.html" class="Module">Relation.Binary.PropositionalEquality.Core</a> <a id="618" class="Symbol">as</a> <a id="621" class="Module">P</a>
|
|||
|
<a id="625" class="Keyword">using</a> <a id="631" class="Symbol">(</a><a id="632" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a><a id="635" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="638" class="Comment">-- List of `Reasoning` modules that do not use this framework and so</a>
|
|||
|
<a id="707" class="Comment">-- need to be updated manually if the syntax changes.</a>
|
|||
|
<a id="761" class="Comment">--</a>
|
|||
|
<a id="764" class="Comment">-- Data/Vec/Relation/Binary/Equality/Cast</a>
|
|||
|
<a id="808" class="Comment">-- Relation/Binary/HeterogeneousEquality</a>
|
|||
|
<a id="851" class="Comment">-- Effect/Monad/Partiality</a>
|
|||
|
<a id="880" class="Comment">-- Effect/Monad/Partiality/All</a>
|
|||
|
<a id="913" class="Comment">-- Codata/Guarded/Stream/Relation/Binary/Pointwise</a>
|
|||
|
<a id="966" class="Comment">-- Function/Reasoning</a>
|
|||
|
|
|||
|
<a id="991" class="Keyword">module</a> <a id="998" href="Relation.Binary.Reasoning.Syntax.html" class="Module">Relation.Binary.Reasoning.Syntax</a> <a id="1031" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="1038" class="Keyword">private</a>
|
|||
|
<a id="1048" class="Keyword">variable</a>
|
|||
|
<a id="1061" href="Relation.Binary.Reasoning.Syntax.html#1061" class="Generalizable">a</a> <a id="1063" href="Relation.Binary.Reasoning.Syntax.html#1063" class="Generalizable">ℓ₁</a> <a id="1066" href="Relation.Binary.Reasoning.Syntax.html#1066" class="Generalizable">ℓ₂</a> <a id="1069" href="Relation.Binary.Reasoning.Syntax.html#1069" class="Generalizable">ℓ₃</a> <a id="1072" href="Relation.Binary.Reasoning.Syntax.html#1072" class="Generalizable">ℓ₄</a> <a id="1075" class="Symbol">:</a> <a id="1077" href="Agda.Primitive.html#742" class="Postulate">Level</a>
|
|||
|
<a id="1087" href="Relation.Binary.Reasoning.Syntax.html#1087" class="Generalizable">A</a> <a id="1089" href="Relation.Binary.Reasoning.Syntax.html#1089" class="Generalizable">B</a> <a id="1091" href="Relation.Binary.Reasoning.Syntax.html#1091" class="Generalizable">C</a> <a id="1093" class="Symbol">:</a> <a id="1095" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1099" href="Relation.Binary.Reasoning.Syntax.html#1061" class="Generalizable">a</a>
|
|||
|
<a id="1105" href="Relation.Binary.Reasoning.Syntax.html#1105" class="Generalizable">x</a> <a id="1107" href="Relation.Binary.Reasoning.Syntax.html#1107" class="Generalizable">y</a> <a id="1109" href="Relation.Binary.Reasoning.Syntax.html#1109" class="Generalizable">z</a> <a id="1111" class="Symbol">:</a> <a id="1113" href="Relation.Binary.Reasoning.Syntax.html#1087" class="Generalizable">A</a>
|
|||
|
|
|||
|
<a id="1116" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="1189" class="Comment">-- Syntax for beginning a reasoning chain</a>
|
|||
|
<a id="1231" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
|
|||
|
<a id="1305" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="1378" class="Comment">-- Basic begin syntax</a>
|
|||
|
|
|||
|
<a id="1401" class="Keyword">module</a> <a id="begin-syntax"></a><a id="1408" href="Relation.Binary.Reasoning.Syntax.html#1408" class="Module">begin-syntax</a>
|
|||
|
<a id="1423" class="Symbol">(</a><a id="1424" href="Relation.Binary.Reasoning.Syntax.html#1424" class="Bound">R</a> <a id="1426" class="Symbol">:</a> <a id="1428" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="1432" href="Relation.Binary.Reasoning.Syntax.html#1087" class="Generalizable">A</a> <a id="1434" href="Relation.Binary.Reasoning.Syntax.html#1089" class="Generalizable">B</a> <a id="1436" href="Relation.Binary.Reasoning.Syntax.html#1063" class="Generalizable">ℓ₁</a><a id="1438" class="Symbol">)</a>
|
|||
|
<a id="1442" class="Symbol">{</a><a id="1443" href="Relation.Binary.Reasoning.Syntax.html#1443" class="Bound">S</a> <a id="1445" class="Symbol">:</a> <a id="1447" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="1451" href="Relation.Binary.Reasoning.Syntax.html#1087" class="Generalizable">A</a> <a id="1453" href="Relation.Binary.Reasoning.Syntax.html#1089" class="Generalizable">B</a> <a id="1455" href="Relation.Binary.Reasoning.Syntax.html#1066" class="Generalizable">ℓ₂</a><a id="1457" class="Symbol">}</a>
|
|||
|
<a id="1461" class="Symbol">(</a><a id="1462" href="Relation.Binary.Reasoning.Syntax.html#1462" class="Bound">reflexive</a> <a id="1472" class="Symbol">:</a> <a id="1474" href="Relation.Binary.Reasoning.Syntax.html#1424" class="Bound">R</a> <a id="1476" href="Relation.Binary.Core.html#1268" class="Function Operator">⇒</a> <a id="1478" href="Relation.Binary.Reasoning.Syntax.html#1443" class="Bound">S</a><a id="1479" class="Symbol">)</a>
|
|||
|
<a id="1483" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="1492" class="Keyword">infix</a> <a id="1498" class="Number">1</a> <a id="1500" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin_</a>
|
|||
|
|
|||
|
<a id="begin-syntax.begin_"></a><a id="1510" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin_</a> <a id="1517" class="Symbol">:</a> <a id="1519" href="Relation.Binary.Reasoning.Syntax.html#1424" class="Bound">R</a> <a id="1521" href="Relation.Binary.Reasoning.Syntax.html#1105" class="Generalizable">x</a> <a id="1523" href="Relation.Binary.Reasoning.Syntax.html#1107" class="Generalizable">y</a> <a id="1525" class="Symbol">→</a> <a id="1527" href="Relation.Binary.Reasoning.Syntax.html#1443" class="Bound">S</a> <a id="1529" href="Relation.Binary.Reasoning.Syntax.html#1105" class="Generalizable">x</a> <a id="1531" href="Relation.Binary.Reasoning.Syntax.html#1107" class="Generalizable">y</a>
|
|||
|
<a id="1535" href="Relation.Binary.Reasoning.Syntax.html#1510" class="Function Operator">begin_</a> <a id="1542" class="Symbol">=</a> <a id="1544" href="Relation.Binary.Reasoning.Syntax.html#1462" class="Bound">reflexive</a>
|
|||
|
|
|||
|
<a id="1555" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="1628" class="Comment">-- Begin subrelation syntax</a>
|
|||
|
|
|||
|
<a id="1657" class="Comment">-- Sometimes we want to support sub-relations with the</a>
|
|||
|
<a id="1712" class="Comment">-- same reasoning operators as the main relations (e.g. perform equality</a>
|
|||
|
<a id="1785" class="Comment">-- proofs with non-strict reasoning operators). This record bundles all</a>
|
|||
|
<a id="1857" class="Comment">-- the parts needed to extract the sub-relation proofs.</a>
|
|||
|
<a id="1913" class="Keyword">record</a> <a id="SubRelation"></a><a id="1920" href="Relation.Binary.Reasoning.Syntax.html#1920" class="Record">SubRelation</a> <a id="1932" class="Symbol">{</a><a id="1933" href="Relation.Binary.Reasoning.Syntax.html#1933" class="Bound">A</a> <a id="1935" class="Symbol">:</a> <a id="1937" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1941" href="Relation.Binary.Reasoning.Syntax.html#1061" class="Generalizable">a</a><a id="1942" class="Symbol">}</a> <a id="1944" class="Symbol">(</a><a id="1945" href="Relation.Binary.Reasoning.Syntax.html#1945" class="Bound">R</a> <a id="1947" class="Symbol">:</a> <a id="1949" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="1953" href="Relation.Binary.Reasoning.Syntax.html#1933" class="Bound">A</a> <a id="1955" href="Relation.Binary.Reasoning.Syntax.html#1063" class="Generalizable">ℓ₁</a><a id="1957" class="Symbol">)</a> <a id="1959" href="Relation.Binary.Reasoning.Syntax.html#1959" class="Bound">ℓ₂</a> <a id="1962" href="Relation.Binary.Reasoning.Syntax.html#1962" class="Bound">ℓ₃</a> <a id="1965" class="Symbol">:</a> <a id="1967" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="1971" class="Symbol">(</a><a id="1972" href="Relation.Binary.Reasoning.Syntax.html#1941" class="Bound">a</a> <a id="1974" href="Agda.Primitive.html#961" class="Primitive Operator">⊔</a> <a id="1976" href="Relation.Binary.Reasoning.Syntax.html#1955" class="Bound">ℓ₁</a> <a id="1979" href="Agda.Primitive.html#961" class="Primitive Operator">⊔</a> <a id="1981" href="Agda.Primitive.html#931" class="Primitive">suc</a> <a id="1985" href="Relation.Binary.Reasoning.Syntax.html#1959" class="Bound">ℓ₂</a> <a id="1988" href="Agda.Primitive.html#961" class="Primitive Operator">⊔</a> <a id="1990" href="Agda.Primitive.html#931" class="Primitive">suc</a> <a id="1994" href="Relation.Binary.Reasoning.Syntax.html#1962" class="Bound">ℓ₃</a><a id="1996" class="Symbol">)</a> <a id="1998" class="Keyword">where</a>
|
|||
|
<a id="2006" class="Keyword">field</a>
|
|||
|
<a id="SubRelation.S"></a><a id="2016" href="Relation.Binary.Reasoning.Syntax.html#2016" class="Field">S</a> <a id="2018" class="Symbol">:</a> <a id="2020" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="2024" href="Relation.Binary.Reasoning.Syntax.html#1933" class="Bound">A</a> <a id="2026" href="Relation.Binary.Reasoning.Syntax.html#1959" class="Bound">ℓ₂</a>
|
|||
|
<a id="SubRelation.IsS"></a><a id="2033" href="Relation.Binary.Reasoning.Syntax.html#2033" class="Field">IsS</a> <a id="2037" class="Symbol">:</a> <a id="2039" href="Relation.Binary.Reasoning.Syntax.html#1945" class="Bound">R</a> <a id="2041" href="Relation.Binary.Reasoning.Syntax.html#1105" class="Generalizable">x</a> <a id="2043" href="Relation.Binary.Reasoning.Syntax.html#1107" class="Generalizable">y</a> <a id="2045" class="Symbol">→</a> <a id="2047" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="2051" href="Relation.Binary.Reasoning.Syntax.html#1962" class="Bound">ℓ₃</a>
|
|||
|
<a id="SubRelation.IsS?"></a><a id="2058" href="Relation.Binary.Reasoning.Syntax.html#2058" class="Field">IsS?</a> <a id="2063" class="Symbol">:</a> <a id="2065" class="Symbol">∀</a> <a id="2067" class="Symbol">(</a><a id="2068" href="Relation.Binary.Reasoning.Syntax.html#2068" class="Bound">xRy</a> <a id="2072" class="Symbol">:</a> <a id="2074" href="Relation.Binary.Reasoning.Syntax.html#1945" class="Bound">R</a> <a id="2076" href="Relation.Binary.Reasoning.Syntax.html#1105" class="Generalizable">x</a> <a id="2078" href="Relation.Binary.Reasoning.Syntax.html#1107" class="Generalizable">y</a><a id="2079" class="Symbol">)</a> <a id="2081" class="Symbol">→</a> <a id="2083" href="Relation.Nullary.Decidable.Core.html#1485" class="Record">Dec</a> <a id="2087" class="Symbol">(</a><a id="2088" href="Relation.Binary.Reasoning.Syntax.html#2033" class="Field">IsS</a> <a id="2092" href="Relation.Binary.Reasoning.Syntax.html#2068" class="Bound">xRy</a><a id="2095" class="Symbol">)</a>
|
|||
|
<a id="SubRelation.extract"></a><a id="2101" href="Relation.Binary.Reasoning.Syntax.html#2101" class="Field">extract</a> <a id="2109" class="Symbol">:</a> <a id="2111" class="Symbol">∀</a> <a id="2113" class="Symbol">{</a><a id="2114" href="Relation.Binary.Reasoning.Syntax.html#2114" class="Bound">xRy</a> <a id="2118" class="Symbol">:</a> <a id="2120" href="Relation.Binary.Reasoning.Syntax.html#1945" class="Bound">R</a> <a id="2122" href="Relation.Binary.Reasoning.Syntax.html#1105" class="Generalizable">x</a> <a id="2124" href="Relation.Binary.Reasoning.Syntax.html#1107" class="Generalizable">y</a><a id="2125" class="Symbol">}</a> <a id="2127" class="Symbol">→</a> <a id="2129" href="Relation.Binary.Reasoning.Syntax.html#2033" class="Field">IsS</a> <a id="2133" href="Relation.Binary.Reasoning.Syntax.html#2114" class="Bound">xRy</a> <a id="2137" class="Symbol">→</a> <a id="2139" href="Relation.Binary.Reasoning.Syntax.html#2016" class="Field">S</a> <a id="2141" href="Relation.Binary.Reasoning.Syntax.html#1105" class="Generalizable">x</a> <a id="2143" href="Relation.Binary.Reasoning.Syntax.html#1107" class="Generalizable">y</a>
|
|||
|
|
|||
|
<a id="2146" class="Keyword">module</a> <a id="begin-subrelation-syntax"></a><a id="2153" href="Relation.Binary.Reasoning.Syntax.html#2153" class="Module">begin-subrelation-syntax</a>
|
|||
|
<a id="2180" class="Symbol">(</a><a id="2181" href="Relation.Binary.Reasoning.Syntax.html#2181" class="Bound">R</a> <a id="2183" class="Symbol">:</a> <a id="2185" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="2189" href="Relation.Binary.Reasoning.Syntax.html#1087" class="Generalizable">A</a> <a id="2191" href="Relation.Binary.Reasoning.Syntax.html#1063" class="Generalizable">ℓ₁</a><a id="2193" class="Symbol">)</a>
|
|||
|
<a id="2197" class="Symbol">(</a><a id="2198" href="Relation.Binary.Reasoning.Syntax.html#2198" class="Bound">sub</a> <a id="2202" class="Symbol">:</a> <a id="2204" href="Relation.Binary.Reasoning.Syntax.html#1920" class="Record">SubRelation</a> <a id="2216" href="Relation.Binary.Reasoning.Syntax.html#2181" class="Bound">R</a> <a id="2218" href="Relation.Binary.Reasoning.Syntax.html#1066" class="Generalizable">ℓ₂</a> <a id="2221" href="Relation.Binary.Reasoning.Syntax.html#1069" class="Generalizable">ℓ₃</a><a id="2223" class="Symbol">)</a>
|
|||
|
<a id="2227" class="Keyword">where</a>
|
|||
|
<a id="2235" class="Keyword">open</a> <a id="2240" href="Relation.Binary.Reasoning.Syntax.html#1920" class="Module">SubRelation</a> <a id="2252" href="Relation.Binary.Reasoning.Syntax.html#2198" class="Bound">sub</a>
|
|||
|
|
|||
|
<a id="2259" class="Keyword">infix</a> <a id="2265" class="Number">1</a> <a id="2267" href="Relation.Binary.Reasoning.Syntax.html#2277" class="Function Operator">begin_</a>
|
|||
|
|
|||
|
<a id="begin-subrelation-syntax.begin_"></a><a id="2277" href="Relation.Binary.Reasoning.Syntax.html#2277" class="Function Operator">begin_</a> <a id="2284" class="Symbol">:</a> <a id="2286" class="Symbol">∀</a> <a id="2288" class="Symbol">{</a><a id="2289" href="Relation.Binary.Reasoning.Syntax.html#2289" class="Bound">x</a> <a id="2291" href="Relation.Binary.Reasoning.Syntax.html#2291" class="Bound">y</a><a id="2292" class="Symbol">}</a> <a id="2294" class="Symbol">(</a><a id="2295" href="Relation.Binary.Reasoning.Syntax.html#2295" class="Bound">xRy</a> <a id="2299" class="Symbol">:</a> <a id="2301" href="Relation.Binary.Reasoning.Syntax.html#2181" class="Bound">R</a> <a id="2303" href="Relation.Binary.Reasoning.Syntax.html#2289" class="Bound">x</a> <a id="2305" href="Relation.Binary.Reasoning.Syntax.html#2291" class="Bound">y</a><a id="2306" class="Symbol">)</a> <a id="2308" class="Symbol">→</a> <a id="2310" class="Symbol">{</a><a id="2311" href="Relation.Binary.Reasoning.Syntax.html#2311" class="Bound">s</a> <a id="2313" class="Symbol">:</a> <a id="2315" href="Relation.Nullary.Decidable.Core.html#3468" class="Function">True</a> <a id="2320" class="Symbol">(</a><a id="2321" href="Relation.Binary.Reasoning.Syntax.html#2058" class="Field">IsS?</a> <a id="2326" href="Relation.Binary.Reasoning.Syntax.html#2295" class="Bound">xRy</a><a id="2329" class="Symbol">)}</a> <a id="2332" class="Symbol">→</a> <a id="2334" href="Relation.Binary.Reasoning.Syntax.html#2016" class="Field">S</a> <a id="2336" href="Relation.Binary.Reasoning.Syntax.html#2289" class="Bound">x</a> <a id="2338" href="Relation.Binary.Reasoning.Syntax.html#2291" class="Bound">y</a>
|
|||
|
<a id="2342" href="Relation.Binary.Reasoning.Syntax.html#2277" class="Function Operator">begin_</a> <a id="2349" href="Relation.Binary.Reasoning.Syntax.html#2349" class="Bound">r</a> <a id="2351" class="Symbol">{</a><a id="2352" href="Relation.Binary.Reasoning.Syntax.html#2352" class="Bound">s</a><a id="2353" class="Symbol">}</a> <a id="2355" class="Symbol">=</a> <a id="2357" href="Relation.Binary.Reasoning.Syntax.html#2101" class="Field">extract</a> <a id="2365" class="Symbol">(</a><a id="2366" href="Relation.Nullary.Decidable.Core.html#3758" class="Function">toWitness</a> <a id="2376" href="Relation.Binary.Reasoning.Syntax.html#2352" class="Bound">s</a><a id="2377" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="2380" class="Comment">-- Begin equality syntax</a>
|
|||
|
<a id="2405" class="Keyword">module</a> <a id="begin-equality-syntax"></a><a id="2412" href="Relation.Binary.Reasoning.Syntax.html#2412" class="Module">begin-equality-syntax</a>
|
|||
|
<a id="2436" class="Symbol">(</a><a id="2437" href="Relation.Binary.Reasoning.Syntax.html#2437" class="Bound">R</a> <a id="2439" class="Symbol">:</a> <a id="2441" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="2445" href="Relation.Binary.Reasoning.Syntax.html#1087" class="Generalizable">A</a> <a id="2447" href="Relation.Binary.Reasoning.Syntax.html#1063" class="Generalizable">ℓ₁</a><a id="2449" class="Symbol">)</a>
|
|||
|
<a id="2453" class="Symbol">(</a><a id="2454" href="Relation.Binary.Reasoning.Syntax.html#2454" class="Bound">sub</a> <a id="2458" class="Symbol">:</a> <a id="2460" href="Relation.Binary.Reasoning.Syntax.html#1920" class="Record">SubRelation</a> <a id="2472" href="Relation.Binary.Reasoning.Syntax.html#2437" class="Bound">R</a> <a id="2474" href="Relation.Binary.Reasoning.Syntax.html#1066" class="Generalizable">ℓ₂</a> <a id="2477" href="Relation.Binary.Reasoning.Syntax.html#1069" class="Generalizable">ℓ₃</a><a id="2479" class="Symbol">)</a> <a id="2481" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="2490" class="Keyword">open</a> <a id="2495" href="Relation.Binary.Reasoning.Syntax.html#2153" class="Module">begin-subrelation-syntax</a> <a id="2520" href="Relation.Binary.Reasoning.Syntax.html#2437" class="Bound">R</a> <a id="2522" href="Relation.Binary.Reasoning.Syntax.html#2454" class="Bound">sub</a> <a id="2526" class="Keyword">public</a>
|
|||
|
<a id="2537" class="Keyword">renaming</a> <a id="2546" class="Symbol">(</a><a id="2547" href="Relation.Binary.Reasoning.Syntax.html#2277" class="Function Operator">begin_</a> <a id="2554" class="Symbol">to</a> <a id="2557" class="Function Operator">begin-equality_</a><a id="2572" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="2575" class="Comment">-- Begin apartness syntax</a>
|
|||
|
<a id="2601" class="Keyword">module</a> <a id="begin-apartness-syntax"></a><a id="2608" href="Relation.Binary.Reasoning.Syntax.html#2608" class="Module">begin-apartness-syntax</a>
|
|||
|
<a id="2633" class="Symbol">(</a><a id="2634" href="Relation.Binary.Reasoning.Syntax.html#2634" class="Bound">R</a> <a id="2636" class="Symbol">:</a> <a id="2638" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="2642" href="Relation.Binary.Reasoning.Syntax.html#1087" class="Generalizable">A</a> <a id="2644" href="Relation.Binary.Reasoning.Syntax.html#1063" class="Generalizable">ℓ₁</a><a id="2646" class="Symbol">)</a>
|
|||
|
<a id="2650" class="Symbol">(</a><a id="2651" href="Relation.Binary.Reasoning.Syntax.html#2651" class="Bound">sub</a> <a id="2655" class="Symbol">:</a> <a id="2657" href="Relation.Binary.Reasoning.Syntax.html#1920" class="Record">SubRelation</a> <a id="2669" href="Relation.Binary.Reasoning.Syntax.html#2634" class="Bound">R</a> <a id="2671" href="Relation.Binary.Reasoning.Syntax.html#1066" class="Generalizable">ℓ₂</a> <a id="2674" href="Relation.Binary.Reasoning.Syntax.html#1069" class="Generalizable">ℓ₃</a><a id="2676" class="Symbol">)</a> <a id="2678" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="2687" class="Keyword">open</a> <a id="2692" href="Relation.Binary.Reasoning.Syntax.html#2153" class="Module">begin-subrelation-syntax</a> <a id="2717" href="Relation.Binary.Reasoning.Syntax.html#2634" class="Bound">R</a> <a id="2719" href="Relation.Binary.Reasoning.Syntax.html#2651" class="Bound">sub</a> <a id="2723" class="Keyword">public</a>
|
|||
|
<a id="2734" class="Keyword">renaming</a> <a id="2743" class="Symbol">(</a><a id="2744" href="Relation.Binary.Reasoning.Syntax.html#2277" class="Function Operator">begin_</a> <a id="2751" class="Symbol">to</a> <a id="2754" class="Function Operator">begin-apartness_</a><a id="2770" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="2773" class="Comment">-- Begin strict syntax</a>
|
|||
|
<a id="2796" class="Keyword">module</a> <a id="begin-strict-syntax"></a><a id="2803" href="Relation.Binary.Reasoning.Syntax.html#2803" class="Module">begin-strict-syntax</a>
|
|||
|
<a id="2825" class="Symbol">(</a><a id="2826" href="Relation.Binary.Reasoning.Syntax.html#2826" class="Bound">R</a> <a id="2828" class="Symbol">:</a> <a id="2830" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="2834" href="Relation.Binary.Reasoning.Syntax.html#1087" class="Generalizable">A</a> <a id="2836" href="Relation.Binary.Reasoning.Syntax.html#1063" class="Generalizable">ℓ₁</a><a id="2838" class="Symbol">)</a>
|
|||
|
<a id="2842" class="Symbol">(</a><a id="2843" href="Relation.Binary.Reasoning.Syntax.html#2843" class="Bound">sub</a> <a id="2847" class="Symbol">:</a> <a id="2849" href="Relation.Binary.Reasoning.Syntax.html#1920" class="Record">SubRelation</a> <a id="2861" href="Relation.Binary.Reasoning.Syntax.html#2826" class="Bound">R</a> <a id="2863" href="Relation.Binary.Reasoning.Syntax.html#1066" class="Generalizable">ℓ₂</a> <a id="2866" href="Relation.Binary.Reasoning.Syntax.html#1069" class="Generalizable">ℓ₃</a><a id="2868" class="Symbol">)</a> <a id="2870" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="2879" class="Keyword">open</a> <a id="2884" href="Relation.Binary.Reasoning.Syntax.html#2153" class="Module">begin-subrelation-syntax</a> <a id="2909" href="Relation.Binary.Reasoning.Syntax.html#2826" class="Bound">R</a> <a id="2911" href="Relation.Binary.Reasoning.Syntax.html#2843" class="Bound">sub</a> <a id="2915" class="Keyword">public</a>
|
|||
|
<a id="2926" class="Keyword">renaming</a> <a id="2935" class="Symbol">(</a><a id="2936" href="Relation.Binary.Reasoning.Syntax.html#2277" class="Function Operator">begin_</a> <a id="2943" class="Symbol">to</a> <a id="2946" class="Function Operator">begin-strict_</a><a id="2959" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="2962" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="3035" class="Comment">-- Begin membership syntax</a>
|
|||
|
|
|||
|
<a id="3063" class="Keyword">module</a> <a id="begin-membership-syntax"></a><a id="3070" href="Relation.Binary.Reasoning.Syntax.html#3070" class="Module">begin-membership-syntax</a>
|
|||
|
<a id="3096" class="Symbol">(</a><a id="3097" href="Relation.Binary.Reasoning.Syntax.html#3097" class="Bound">R</a> <a id="3099" class="Symbol">:</a> <a id="3101" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="3105" href="Relation.Binary.Reasoning.Syntax.html#1087" class="Generalizable">A</a> <a id="3107" href="Relation.Binary.Reasoning.Syntax.html#1063" class="Generalizable">ℓ₁</a><a id="3109" class="Symbol">)</a>
|
|||
|
<a id="3113" class="Symbol">(</a><a id="3114" href="Relation.Binary.Reasoning.Syntax.html#3114" class="Bound Operator">_∈_</a> <a id="3118" class="Symbol">:</a> <a id="3120" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="3124" href="Relation.Binary.Reasoning.Syntax.html#1089" class="Generalizable">B</a> <a id="3126" href="Relation.Binary.Reasoning.Syntax.html#1087" class="Generalizable">A</a> <a id="3128" href="Relation.Binary.Reasoning.Syntax.html#1066" class="Generalizable">ℓ₂</a><a id="3130" class="Symbol">)</a>
|
|||
|
<a id="3134" class="Symbol">(</a><a id="3135" href="Relation.Binary.Reasoning.Syntax.html#3135" class="Bound">resp</a> <a id="3140" class="Symbol">:</a> <a id="3142" href="Relation.Binary.Reasoning.Syntax.html#3114" class="Bound Operator">_∈_</a> <a id="3146" href="Relation.Binary.Definitions.html#5335" class="Function Operator">Respectsʳ</a> <a id="3156" href="Relation.Binary.Reasoning.Syntax.html#3097" class="Bound">R</a><a id="3157" class="Symbol">)</a> <a id="3159" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="3168" class="Keyword">infix</a> <a id="3175" class="Number">1</a> <a id="3177" href="Relation.Binary.Reasoning.Syntax.html#3187" class="Function">step-∈</a>
|
|||
|
|
|||
|
<a id="begin-membership-syntax.step-∈"></a><a id="3187" href="Relation.Binary.Reasoning.Syntax.html#3187" class="Function">step-∈</a> <a id="3194" class="Symbol">:</a> <a id="3196" class="Symbol">∀</a> <a id="3198" class="Symbol">(</a><a id="3199" href="Relation.Binary.Reasoning.Syntax.html#3199" class="Bound">x</a> <a id="3201" class="Symbol">:</a> <a id="3203" href="Relation.Binary.Reasoning.Syntax.html#3124" class="Bound">B</a><a id="3204" class="Symbol">)</a> <a id="3206" class="Symbol">{</a><a id="3207" href="Relation.Binary.Reasoning.Syntax.html#3207" class="Bound">xs</a> <a id="3210" href="Relation.Binary.Reasoning.Syntax.html#3210" class="Bound">ys</a><a id="3212" class="Symbol">}</a> <a id="3214" class="Symbol">→</a> <a id="3216" href="Relation.Binary.Reasoning.Syntax.html#3097" class="Bound">R</a> <a id="3218" href="Relation.Binary.Reasoning.Syntax.html#3207" class="Bound">xs</a> <a id="3221" href="Relation.Binary.Reasoning.Syntax.html#3210" class="Bound">ys</a> <a id="3224" class="Symbol">→</a> <a id="3226" href="Relation.Binary.Reasoning.Syntax.html#3199" class="Bound">x</a> <a id="3228" href="Relation.Binary.Reasoning.Syntax.html#3114" class="Bound Operator">∈</a> <a id="3230" href="Relation.Binary.Reasoning.Syntax.html#3207" class="Bound">xs</a> <a id="3233" class="Symbol">→</a> <a id="3235" href="Relation.Binary.Reasoning.Syntax.html#3199" class="Bound">x</a> <a id="3237" href="Relation.Binary.Reasoning.Syntax.html#3114" class="Bound Operator">∈</a> <a id="3239" href="Relation.Binary.Reasoning.Syntax.html#3210" class="Bound">ys</a>
|
|||
|
<a id="3244" href="Relation.Binary.Reasoning.Syntax.html#3187" class="Function">step-∈</a> <a id="3251" href="Relation.Binary.Reasoning.Syntax.html#3251" class="Bound">x</a> <a id="3253" class="Symbol">=</a> <a id="3255" href="Relation.Binary.Reasoning.Syntax.html#3135" class="Bound">resp</a>
|
|||
|
|
|||
|
<a id="3263" class="Keyword">syntax</a> <a id="3270" href="Relation.Binary.Reasoning.Syntax.html#3187" class="Function">step-∈</a> <a id="3277" class="Bound">x</a> <a id="3280" class="Bound">xs⊆ys</a> <a id="3286" class="Bound">x∈xs</a> <a id="3292" class="Symbol">=</a> <a id="3294" class="Bound">x</a> <a id="3296" class="Function">∈⟨</a> <a id="3299" class="Bound">x∈xs</a> <a id="3304" class="Function">⟩</a> <a id="3306" class="Bound">xs⊆ys</a>
|
|||
|
|
|||
|
<a id="3313" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="3386" class="Comment">-- Begin contradiction syntax</a>
|
|||
|
|
|||
|
<a id="3417" class="Comment">-- Used with asymmetric subrelations to derive a contradiction from a</a>
|
|||
|
<a id="3487" class="Comment">-- proof that an element is related to itself.</a>
|
|||
|
<a id="3534" class="Keyword">module</a> <a id="begin-contradiction-syntax"></a><a id="3541" href="Relation.Binary.Reasoning.Syntax.html#3541" class="Module">begin-contradiction-syntax</a>
|
|||
|
<a id="3570" class="Symbol">(</a><a id="3571" href="Relation.Binary.Reasoning.Syntax.html#3571" class="Bound">R</a> <a id="3573" class="Symbol">:</a> <a id="3575" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="3579" href="Relation.Binary.Reasoning.Syntax.html#1087" class="Generalizable">A</a> <a id="3581" href="Relation.Binary.Reasoning.Syntax.html#1063" class="Generalizable">ℓ₁</a><a id="3583" class="Symbol">)</a>
|
|||
|
<a id="3587" class="Symbol">(</a><a id="3588" href="Relation.Binary.Reasoning.Syntax.html#3588" class="Bound">sub</a> <a id="3592" class="Symbol">:</a> <a id="3594" href="Relation.Binary.Reasoning.Syntax.html#1920" class="Record">SubRelation</a> <a id="3606" href="Relation.Binary.Reasoning.Syntax.html#3571" class="Bound">R</a> <a id="3608" href="Relation.Binary.Reasoning.Syntax.html#1066" class="Generalizable">ℓ₂</a> <a id="3611" href="Relation.Binary.Reasoning.Syntax.html#1069" class="Generalizable">ℓ₃</a><a id="3613" class="Symbol">)</a>
|
|||
|
<a id="3617" class="Symbol">(</a><a id="3618" href="Relation.Binary.Reasoning.Syntax.html#3618" class="Bound">asym</a> <a id="3623" class="Symbol">:</a> <a id="3625" href="Relation.Binary.Definitions.html#2590" class="Function">Asymmetric</a> <a id="3636" class="Symbol">(</a><a id="3637" href="Relation.Binary.Reasoning.Syntax.html#2016" class="Field">SubRelation.S</a> <a id="3651" href="Relation.Binary.Reasoning.Syntax.html#3588" class="Bound">sub</a><a id="3654" class="Symbol">))</a>
|
|||
|
<a id="3659" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="3668" class="Keyword">open</a> <a id="3673" href="Relation.Binary.Reasoning.Syntax.html#1920" class="Module">SubRelation</a> <a id="3685" href="Relation.Binary.Reasoning.Syntax.html#3588" class="Bound">sub</a>
|
|||
|
|
|||
|
<a id="3692" class="Keyword">infix</a> <a id="3698" class="Number">1</a> <a id="3700" href="Relation.Binary.Reasoning.Syntax.html#3724" class="Function Operator">begin-contradiction_</a>
|
|||
|
|
|||
|
<a id="begin-contradiction-syntax.begin-contradiction_"></a><a id="3724" href="Relation.Binary.Reasoning.Syntax.html#3724" class="Function Operator">begin-contradiction_</a> <a id="3745" class="Symbol">:</a> <a id="3747" class="Symbol">∀</a> <a id="3749" class="Symbol">(</a><a id="3750" href="Relation.Binary.Reasoning.Syntax.html#3750" class="Bound">xRx</a> <a id="3754" class="Symbol">:</a> <a id="3756" href="Relation.Binary.Reasoning.Syntax.html#3571" class="Bound">R</a> <a id="3758" href="Relation.Binary.Reasoning.Syntax.html#1105" class="Generalizable">x</a> <a id="3760" href="Relation.Binary.Reasoning.Syntax.html#1105" class="Generalizable">x</a><a id="3761" class="Symbol">)</a> <a id="3763" class="Symbol">{</a><a id="3764" href="Relation.Binary.Reasoning.Syntax.html#3764" class="Bound">s</a> <a id="3766" class="Symbol">:</a> <a id="3768" href="Relation.Nullary.Decidable.Core.html#3468" class="Function">True</a> <a id="3773" class="Symbol">(</a><a id="3774" href="Relation.Binary.Reasoning.Syntax.html#2058" class="Function">IsS?</a> <a id="3779" href="Relation.Binary.Reasoning.Syntax.html#3750" class="Bound">xRx</a><a id="3782" class="Symbol">)}</a> <a id="3785" class="Symbol">→</a>
|
|||
|
<a id="3812" class="Symbol">∀</a> <a id="3814" class="Symbol">{</a><a id="3815" href="Relation.Binary.Reasoning.Syntax.html#3815" class="Bound">b</a><a id="3816" class="Symbol">}</a> <a id="3818" class="Symbol">{</a><a id="3819" href="Relation.Binary.Reasoning.Syntax.html#3819" class="Bound">B</a> <a id="3821" class="Symbol">:</a> <a id="3823" href="Agda.Primitive.html#388" class="Primitive">Set</a> <a id="3827" href="Relation.Binary.Reasoning.Syntax.html#3815" class="Bound">b</a><a id="3828" class="Symbol">}</a> <a id="3830" class="Symbol">→</a> <a id="3832" href="Relation.Binary.Reasoning.Syntax.html#3819" class="Bound">B</a>
|
|||
|
<a id="3836" href="Relation.Binary.Reasoning.Syntax.html#3724" class="Function Operator">begin-contradiction_</a> <a id="3857" class="Symbol">{</a><a id="3858" href="Relation.Binary.Reasoning.Syntax.html#3858" class="Bound">x</a><a id="3859" class="Symbol">}</a> <a id="3861" href="Relation.Binary.Reasoning.Syntax.html#3861" class="Bound">r</a> <a id="3863" class="Symbol">{</a><a id="3864" href="Relation.Binary.Reasoning.Syntax.html#3864" class="Bound">s</a><a id="3865" class="Symbol">}</a> <a id="3867" class="Symbol">=</a> <a id="3869" href="Relation.Nullary.Negation.Core.html#1226" class="Function">contradiction</a> <a id="3883" href="Relation.Binary.Reasoning.Syntax.html#3912" class="Function">x<x</a> <a id="3887" class="Symbol">(</a><a id="3888" href="Relation.Binary.Reasoning.Syntax.html#3618" class="Bound">asym</a> <a id="3893" href="Relation.Binary.Reasoning.Syntax.html#3912" class="Function">x<x</a><a id="3896" class="Symbol">)</a>
|
|||
|
<a id="3902" class="Keyword">where</a>
|
|||
|
<a id="3912" href="Relation.Binary.Reasoning.Syntax.html#3912" class="Function">x<x</a> <a id="3916" class="Symbol">:</a> <a id="3918" href="Relation.Binary.Reasoning.Syntax.html#2016" class="Function">S</a> <a id="3920" href="Relation.Binary.Reasoning.Syntax.html#3858" class="Bound">x</a> <a id="3922" href="Relation.Binary.Reasoning.Syntax.html#3858" class="Bound">x</a>
|
|||
|
<a id="3928" href="Relation.Binary.Reasoning.Syntax.html#3912" class="Function">x<x</a> <a id="3932" class="Symbol">=</a> <a id="3934" href="Relation.Binary.Reasoning.Syntax.html#2101" class="Function">extract</a> <a id="3942" class="Symbol">(</a><a id="3943" href="Relation.Nullary.Decidable.Core.html#3758" class="Function">toWitness</a> <a id="3953" href="Relation.Binary.Reasoning.Syntax.html#3864" class="Bound">s</a><a id="3954" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="3957" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="4030" class="Comment">-- Syntax for continuing a chain of reasoning steps</a>
|
|||
|
<a id="4082" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
|
|||
|
<a id="4156" class="Comment">-- Note that the arguments to the `step`s are not provided in their</a>
|
|||
|
<a id="4224" class="Comment">-- "natural" order and syntax declarations are later used to re-order</a>
|
|||
|
<a id="4294" class="Comment">-- them. This is because the `step` ordering allows the type-checker to</a>
|
|||
|
<a id="4366" class="Comment">-- better infer the middle argument `y` from the `_IsRelatedTo_`</a>
|
|||
|
<a id="4431" class="Comment">-- argument (see issue 622).</a>
|
|||
|
<a id="4460" class="Comment">--</a>
|
|||
|
<a id="4463" class="Comment">-- This has two practical benefits. First it speeds up type-checking by</a>
|
|||
|
<a id="4535" class="Comment">-- approximately a factor of 5. Secondly it allows the combinators to be</a>
|
|||
|
<a id="4608" class="Comment">-- used with macros that use reflection, e.g. `Tactic.RingSolver`, where</a>
|
|||
|
<a id="4681" class="Comment">-- they need to be able to extract `y` using reflection.</a>
|
|||
|
|
|||
|
<a id="4739" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="4812" class="Comment">-- Syntax for unidirectional relations</a>
|
|||
|
|
|||
|
<a id="4852" class="Comment">-- See https://github.com/agda/agda-stdlib/issues/2150 for a possible</a>
|
|||
|
<a id="4922" class="Comment">-- simplification.</a>
|
|||
|
|
|||
|
<a id="4942" class="Keyword">module</a> <a id="4949" href="Relation.Binary.Reasoning.Syntax.html#4949" class="Module">_</a>
|
|||
|
<a id="4953" class="Symbol">{</a><a id="4954" href="Relation.Binary.Reasoning.Syntax.html#4954" class="Bound">R</a> <a id="4956" class="Symbol">:</a> <a id="4958" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="4962" href="Relation.Binary.Reasoning.Syntax.html#1087" class="Generalizable">A</a> <a id="4964" href="Relation.Binary.Reasoning.Syntax.html#1089" class="Generalizable">B</a> <a id="4966" href="Relation.Binary.Reasoning.Syntax.html#1066" class="Generalizable">ℓ₂</a><a id="4968" class="Symbol">}</a>
|
|||
|
<a id="4972" class="Symbol">(</a><a id="4973" href="Relation.Binary.Reasoning.Syntax.html#4973" class="Bound">S</a> <a id="4975" class="Symbol">:</a> <a id="4977" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="4981" href="Relation.Binary.Reasoning.Syntax.html#1089" class="Generalizable">B</a> <a id="4983" href="Relation.Binary.Reasoning.Syntax.html#1091" class="Generalizable">C</a> <a id="4985" href="Relation.Binary.Reasoning.Syntax.html#1063" class="Generalizable">ℓ₁</a><a id="4987" class="Symbol">)</a>
|
|||
|
<a id="4991" class="Symbol">(</a><a id="4992" href="Relation.Binary.Reasoning.Syntax.html#4992" class="Bound">T</a> <a id="4994" class="Symbol">:</a> <a id="4996" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="5000" href="Relation.Binary.Reasoning.Syntax.html#1087" class="Generalizable">A</a> <a id="5002" href="Relation.Binary.Reasoning.Syntax.html#1091" class="Generalizable">C</a> <a id="5004" href="Relation.Binary.Reasoning.Syntax.html#1069" class="Generalizable">ℓ₃</a><a id="5006" class="Symbol">)</a>
|
|||
|
<a id="5010" class="Symbol">(</a><a id="5011" href="Relation.Binary.Reasoning.Syntax.html#5011" class="Bound">step</a> <a id="5016" class="Symbol">:</a> <a id="5018" href="Relation.Binary.Definitions.html#1674" class="Function">Trans</a> <a id="5024" href="Relation.Binary.Reasoning.Syntax.html#4954" class="Bound">R</a> <a id="5026" href="Relation.Binary.Reasoning.Syntax.html#4973" class="Bound">S</a> <a id="5028" href="Relation.Binary.Reasoning.Syntax.html#4992" class="Bound">T</a><a id="5029" class="Symbol">)</a>
|
|||
|
<a id="5033" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="5042" href="Relation.Binary.Reasoning.Syntax.html#5042" class="Function">forward</a> <a id="5050" class="Symbol">:</a> <a id="5052" class="Symbol">∀</a> <a id="5054" class="Symbol">(</a><a id="5055" href="Relation.Binary.Reasoning.Syntax.html#5055" class="Bound">x</a> <a id="5057" class="Symbol">:</a> <a id="5059" href="Relation.Binary.Reasoning.Syntax.html#4962" class="Bound">A</a><a id="5060" class="Symbol">)</a> <a id="5062" class="Symbol">{</a><a id="5063" href="Relation.Binary.Reasoning.Syntax.html#5063" class="Bound">y</a> <a id="5065" href="Relation.Binary.Reasoning.Syntax.html#5065" class="Bound">z</a><a id="5066" class="Symbol">}</a> <a id="5068" class="Symbol">→</a> <a id="5070" href="Relation.Binary.Reasoning.Syntax.html#4973" class="Bound">S</a> <a id="5072" href="Relation.Binary.Reasoning.Syntax.html#5063" class="Bound">y</a> <a id="5074" href="Relation.Binary.Reasoning.Syntax.html#5065" class="Bound">z</a> <a id="5076" class="Symbol">→</a> <a id="5078" href="Relation.Binary.Reasoning.Syntax.html#4954" class="Bound">R</a> <a id="5080" href="Relation.Binary.Reasoning.Syntax.html#5055" class="Bound">x</a> <a id="5082" href="Relation.Binary.Reasoning.Syntax.html#5063" class="Bound">y</a> <a id="5084" class="Symbol">→</a> <a id="5086" href="Relation.Binary.Reasoning.Syntax.html#4992" class="Bound">T</a> <a id="5088" href="Relation.Binary.Reasoning.Syntax.html#5055" class="Bound">x</a> <a id="5090" href="Relation.Binary.Reasoning.Syntax.html#5065" class="Bound">z</a>
|
|||
|
<a id="5094" href="Relation.Binary.Reasoning.Syntax.html#5042" class="Function">forward</a> <a id="5102" href="Relation.Binary.Reasoning.Syntax.html#5102" class="Bound">x</a> <a id="5104" href="Relation.Binary.Reasoning.Syntax.html#5104" class="Bound">yRz</a> <a id="5108" href="Relation.Binary.Reasoning.Syntax.html#5108" class="Bound">x∼y</a> <a id="5112" class="Symbol">=</a> <a id="5114" href="Relation.Binary.Reasoning.Syntax.html#5011" class="Bound">step</a> <a id="5119" class="Symbol">{</a><a id="5120" href="Relation.Binary.Reasoning.Syntax.html#5102" class="Bound">x</a><a id="5121" class="Symbol">}</a> <a id="5123" href="Relation.Binary.Reasoning.Syntax.html#5108" class="Bound">x∼y</a> <a id="5127" href="Relation.Binary.Reasoning.Syntax.html#5104" class="Bound">yRz</a>
|
|||
|
|
|||
|
<a id="5134" class="Comment">-- Arbitrary relation syntax</a>
|
|||
|
<a id="5165" class="Keyword">module</a> <a id="5172" href="Relation.Binary.Reasoning.Syntax.html#5172" class="Module">∼-syntax</a> <a id="5181" class="Keyword">where</a>
|
|||
|
<a id="5191" class="Keyword">infixr</a> <a id="5198" class="Number">2</a> <a id="5200" href="Relation.Binary.Reasoning.Syntax.html#5211" class="Function">step-∼</a>
|
|||
|
<a id="5211" href="Relation.Binary.Reasoning.Syntax.html#5211" class="Function">step-∼</a> <a id="5218" class="Symbol">=</a> <a id="5220" href="Relation.Binary.Reasoning.Syntax.html#5042" class="Function">forward</a>
|
|||
|
<a id="5232" class="Keyword">syntax</a> <a id="5239" href="Relation.Binary.Reasoning.Syntax.html#5211" class="Function">step-∼</a> <a id="5246" class="Bound">x</a> <a id="5248" class="Bound">yRz</a> <a id="5252" class="Bound">x∼y</a> <a id="5256" class="Symbol">=</a> <a id="5258" class="Bound">x</a> <a id="5260" class="Function">∼⟨</a> <a id="5263" class="Bound">x∼y</a> <a id="5267" class="Function">⟩</a> <a id="5269" class="Bound">yRz</a>
|
|||
|
|
|||
|
|
|||
|
<a id="5277" class="Comment">-- Preorder syntax</a>
|
|||
|
<a id="5298" class="Keyword">module</a> <a id="5305" href="Relation.Binary.Reasoning.Syntax.html#5305" class="Module">≲-syntax</a> <a id="5314" class="Keyword">where</a>
|
|||
|
<a id="5324" class="Keyword">infixr</a> <a id="5331" class="Number">2</a> <a id="5333" href="Relation.Binary.Reasoning.Syntax.html#5344" class="Function">step-≲</a>
|
|||
|
<a id="5344" href="Relation.Binary.Reasoning.Syntax.html#5344" class="Function">step-≲</a> <a id="5351" class="Symbol">=</a> <a id="5353" href="Relation.Binary.Reasoning.Syntax.html#5042" class="Function">forward</a>
|
|||
|
<a id="5365" class="Keyword">syntax</a> <a id="5372" href="Relation.Binary.Reasoning.Syntax.html#5344" class="Function">step-≲</a> <a id="5379" class="Bound">x</a> <a id="5381" class="Bound">yRz</a> <a id="5385" class="Bound">x≲y</a> <a id="5389" class="Symbol">=</a> <a id="5391" class="Bound">x</a> <a id="5393" class="Function">≲⟨</a> <a id="5396" class="Bound">x≲y</a> <a id="5400" class="Function">⟩</a> <a id="5402" class="Bound">yRz</a>
|
|||
|
|
|||
|
|
|||
|
<a id="5410" class="Comment">-- Partial order syntax</a>
|
|||
|
<a id="5436" class="Keyword">module</a> <a id="5443" href="Relation.Binary.Reasoning.Syntax.html#5443" class="Module">≤-syntax</a> <a id="5452" class="Keyword">where</a>
|
|||
|
<a id="5462" class="Keyword">infixr</a> <a id="5469" class="Number">2</a> <a id="5471" href="Relation.Binary.Reasoning.Syntax.html#5482" class="Function">step-≤</a>
|
|||
|
<a id="5482" href="Relation.Binary.Reasoning.Syntax.html#5482" class="Function">step-≤</a> <a id="5489" class="Symbol">=</a> <a id="5491" href="Relation.Binary.Reasoning.Syntax.html#5042" class="Function">forward</a>
|
|||
|
<a id="5503" class="Keyword">syntax</a> <a id="5510" href="Relation.Binary.Reasoning.Syntax.html#5482" class="Function">step-≤</a> <a id="5517" class="Bound">x</a> <a id="5519" class="Bound">yRz</a> <a id="5523" class="Bound">x≤y</a> <a id="5527" class="Symbol">=</a> <a id="5529" class="Bound">x</a> <a id="5531" class="Function">≤⟨</a> <a id="5534" class="Bound">x≤y</a> <a id="5538" class="Function">⟩</a> <a id="5540" class="Bound">yRz</a>
|
|||
|
|
|||
|
|
|||
|
<a id="5548" class="Comment">-- Strict partial order syntax</a>
|
|||
|
<a id="5581" class="Keyword">module</a> <a id="5588" href="Relation.Binary.Reasoning.Syntax.html#5588" class="Module"><-syntax</a> <a id="5597" class="Keyword">where</a>
|
|||
|
<a id="5607" class="Keyword">infixr</a> <a id="5614" class="Number">2</a> <a id="5616" href="Relation.Binary.Reasoning.Syntax.html#5627" class="Function">step-<</a>
|
|||
|
<a id="5627" href="Relation.Binary.Reasoning.Syntax.html#5627" class="Function">step-<</a> <a id="5634" class="Symbol">=</a> <a id="5636" href="Relation.Binary.Reasoning.Syntax.html#5042" class="Function">forward</a>
|
|||
|
<a id="5648" class="Keyword">syntax</a> <a id="5655" href="Relation.Binary.Reasoning.Syntax.html#5627" class="Function">step-<</a> <a id="5662" class="Bound">x</a> <a id="5664" class="Bound">yRz</a> <a id="5668" class="Bound">x<y</a> <a id="5672" class="Symbol">=</a> <a id="5674" class="Bound">x</a> <a id="5676" class="Function"><⟨</a> <a id="5679" class="Bound">x<y</a> <a id="5683" class="Function">⟩</a> <a id="5685" class="Bound">yRz</a>
|
|||
|
|
|||
|
|
|||
|
<a id="5693" class="Comment">-- Subset order syntax</a>
|
|||
|
<a id="5718" class="Keyword">module</a> <a id="5725" href="Relation.Binary.Reasoning.Syntax.html#5725" class="Module">⊆-syntax</a> <a id="5734" class="Keyword">where</a>
|
|||
|
<a id="5744" class="Keyword">infixr</a> <a id="5751" class="Number">2</a> <a id="5753" href="Relation.Binary.Reasoning.Syntax.html#5764" class="Function">step-⊆</a>
|
|||
|
<a id="5764" href="Relation.Binary.Reasoning.Syntax.html#5764" class="Function">step-⊆</a> <a id="5771" class="Symbol">=</a> <a id="5773" href="Relation.Binary.Reasoning.Syntax.html#5042" class="Function">forward</a>
|
|||
|
<a id="5785" class="Keyword">syntax</a> <a id="5792" href="Relation.Binary.Reasoning.Syntax.html#5764" class="Function">step-⊆</a> <a id="5799" class="Bound">x</a> <a id="5801" class="Bound">yRz</a> <a id="5805" class="Bound">x⊆y</a> <a id="5809" class="Symbol">=</a> <a id="5811" class="Bound">x</a> <a id="5813" class="Function">⊆⟨</a> <a id="5816" class="Bound">x⊆y</a> <a id="5820" class="Function">⟩</a> <a id="5822" class="Bound">yRz</a>
|
|||
|
|
|||
|
|
|||
|
<a id="5830" class="Comment">-- Strict subset order syntax</a>
|
|||
|
<a id="5862" class="Keyword">module</a> <a id="5869" href="Relation.Binary.Reasoning.Syntax.html#5869" class="Module">⊂-syntax</a> <a id="5878" class="Keyword">where</a>
|
|||
|
<a id="5888" class="Keyword">infixr</a> <a id="5895" class="Number">2</a> <a id="5897" href="Relation.Binary.Reasoning.Syntax.html#5908" class="Function">step-⊂</a>
|
|||
|
<a id="5908" href="Relation.Binary.Reasoning.Syntax.html#5908" class="Function">step-⊂</a> <a id="5915" class="Symbol">=</a> <a id="5917" href="Relation.Binary.Reasoning.Syntax.html#5042" class="Function">forward</a>
|
|||
|
<a id="5929" class="Keyword">syntax</a> <a id="5936" href="Relation.Binary.Reasoning.Syntax.html#5908" class="Function">step-⊂</a> <a id="5943" class="Bound">x</a> <a id="5945" class="Bound">yRz</a> <a id="5949" class="Bound">x⊂y</a> <a id="5953" class="Symbol">=</a> <a id="5955" class="Bound">x</a> <a id="5957" class="Function">⊂⟨</a> <a id="5960" class="Bound">x⊂y</a> <a id="5964" class="Function">⟩</a> <a id="5966" class="Bound">yRz</a>
|
|||
|
|
|||
|
|
|||
|
<a id="5974" class="Comment">-- Square subset order syntax</a>
|
|||
|
<a id="6006" class="Keyword">module</a> <a id="6013" href="Relation.Binary.Reasoning.Syntax.html#6013" class="Module">⊑-syntax</a> <a id="6022" class="Keyword">where</a>
|
|||
|
<a id="6032" class="Keyword">infixr</a> <a id="6039" class="Number">2</a> <a id="6041" href="Relation.Binary.Reasoning.Syntax.html#6052" class="Function">step-⊑</a>
|
|||
|
<a id="6052" href="Relation.Binary.Reasoning.Syntax.html#6052" class="Function">step-⊑</a> <a id="6059" class="Symbol">=</a> <a id="6061" href="Relation.Binary.Reasoning.Syntax.html#5042" class="Function">forward</a>
|
|||
|
<a id="6073" class="Keyword">syntax</a> <a id="6080" href="Relation.Binary.Reasoning.Syntax.html#6052" class="Function">step-⊑</a> <a id="6087" class="Bound">x</a> <a id="6089" class="Bound">yRz</a> <a id="6093" class="Bound">x⊑y</a> <a id="6097" class="Symbol">=</a> <a id="6099" class="Bound">x</a> <a id="6101" class="Function">⊑⟨</a> <a id="6104" class="Bound">x⊑y</a> <a id="6108" class="Function">⟩</a> <a id="6110" class="Bound">yRz</a>
|
|||
|
|
|||
|
|
|||
|
<a id="6118" class="Comment">-- Strict square subset order syntax</a>
|
|||
|
<a id="6157" class="Keyword">module</a> <a id="6164" href="Relation.Binary.Reasoning.Syntax.html#6164" class="Module">⊏-syntax</a> <a id="6173" class="Keyword">where</a>
|
|||
|
<a id="6183" class="Keyword">infixr</a> <a id="6190" class="Number">2</a> <a id="6192" href="Relation.Binary.Reasoning.Syntax.html#6203" class="Function">step-⊏</a>
|
|||
|
<a id="6203" href="Relation.Binary.Reasoning.Syntax.html#6203" class="Function">step-⊏</a> <a id="6210" class="Symbol">=</a> <a id="6212" href="Relation.Binary.Reasoning.Syntax.html#5042" class="Function">forward</a>
|
|||
|
<a id="6224" class="Keyword">syntax</a> <a id="6231" href="Relation.Binary.Reasoning.Syntax.html#6203" class="Function">step-⊏</a> <a id="6238" class="Bound">x</a> <a id="6240" class="Bound">yRz</a> <a id="6244" class="Bound">x⊏y</a> <a id="6248" class="Symbol">=</a> <a id="6250" class="Bound">x</a> <a id="6252" class="Function">⊏⟨</a> <a id="6255" class="Bound">x⊏y</a> <a id="6259" class="Function">⟩</a> <a id="6261" class="Bound">yRz</a>
|
|||
|
|
|||
|
|
|||
|
<a id="6269" class="Comment">-- Divisibility syntax</a>
|
|||
|
<a id="6294" class="Keyword">module</a> <a id="6301" href="Relation.Binary.Reasoning.Syntax.html#6301" class="Module">∣-syntax</a> <a id="6310" class="Keyword">where</a>
|
|||
|
<a id="6320" class="Keyword">infixr</a> <a id="6327" class="Number">2</a> <a id="6329" href="Relation.Binary.Reasoning.Syntax.html#6340" class="Function">step-∣</a>
|
|||
|
<a id="6340" href="Relation.Binary.Reasoning.Syntax.html#6340" class="Function">step-∣</a> <a id="6347" class="Symbol">=</a> <a id="6349" href="Relation.Binary.Reasoning.Syntax.html#5042" class="Function">forward</a>
|
|||
|
<a id="6361" class="Keyword">syntax</a> <a id="6368" href="Relation.Binary.Reasoning.Syntax.html#6340" class="Function">step-∣</a> <a id="6375" class="Bound">x</a> <a id="6377" class="Bound">yRz</a> <a id="6381" class="Bound">x∣y</a> <a id="6385" class="Symbol">=</a> <a id="6387" class="Bound">x</a> <a id="6389" class="Function">∣⟨</a> <a id="6392" class="Bound">x∣y</a> <a id="6396" class="Function">⟩</a> <a id="6398" class="Bound">yRz</a>
|
|||
|
|
|||
|
|
|||
|
<a id="6406" class="Comment">-- Single-step syntax</a>
|
|||
|
<a id="6430" class="Keyword">module</a> <a id="6437" href="Relation.Binary.Reasoning.Syntax.html#6437" class="Module">⟶-syntax</a> <a id="6446" class="Keyword">where</a>
|
|||
|
<a id="6456" class="Keyword">infixr</a> <a id="6463" class="Number">2</a> <a id="6465" href="Relation.Binary.Reasoning.Syntax.html#6476" class="Function">step-⟶</a>
|
|||
|
<a id="6476" href="Relation.Binary.Reasoning.Syntax.html#6476" class="Function">step-⟶</a> <a id="6483" class="Symbol">=</a> <a id="6485" href="Relation.Binary.Reasoning.Syntax.html#5042" class="Function">forward</a>
|
|||
|
<a id="6497" class="Keyword">syntax</a> <a id="6504" href="Relation.Binary.Reasoning.Syntax.html#6476" class="Function">step-⟶</a> <a id="6511" class="Bound">x</a> <a id="6513" class="Bound">yRz</a> <a id="6517" class="Bound">x∣y</a> <a id="6521" class="Symbol">=</a> <a id="6523" class="Bound">x</a> <a id="6525" class="Function">⟶⟨</a> <a id="6528" class="Bound">x∣y</a> <a id="6532" class="Function">⟩</a> <a id="6534" class="Bound">yRz</a>
|
|||
|
|
|||
|
|
|||
|
<a id="6542" class="Comment">-- Multi-step syntax</a>
|
|||
|
<a id="6565" class="Keyword">module</a> <a id="6572" href="Relation.Binary.Reasoning.Syntax.html#6572" class="Module">⟶*-syntax</a> <a id="6582" class="Keyword">where</a>
|
|||
|
<a id="6592" class="Keyword">infixr</a> <a id="6599" class="Number">2</a> <a id="6601" href="Relation.Binary.Reasoning.Syntax.html#6613" class="Function">step-⟶*</a>
|
|||
|
<a id="6613" href="Relation.Binary.Reasoning.Syntax.html#6613" class="Function">step-⟶*</a> <a id="6621" class="Symbol">=</a> <a id="6623" href="Relation.Binary.Reasoning.Syntax.html#5042" class="Function">forward</a>
|
|||
|
<a id="6635" class="Keyword">syntax</a> <a id="6642" href="Relation.Binary.Reasoning.Syntax.html#6613" class="Function">step-⟶*</a> <a id="6650" class="Bound">x</a> <a id="6652" class="Bound">yRz</a> <a id="6656" class="Bound">x∣y</a> <a id="6660" class="Symbol">=</a> <a id="6662" class="Bound">x</a> <a id="6664" class="Function">⟶*⟨</a> <a id="6668" class="Bound">x∣y</a> <a id="6672" class="Function">⟩</a> <a id="6674" class="Bound">yRz</a>
|
|||
|
|
|||
|
|
|||
|
<a id="6680" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="6753" class="Comment">-- Syntax for bidirectional relations</a>
|
|||
|
|
|||
|
<a id="6794" class="Keyword">module</a> <a id="6801" href="Relation.Binary.Reasoning.Syntax.html#6801" class="Module">_</a>
|
|||
|
<a id="6807" class="Symbol">{</a><a id="6808" href="Relation.Binary.Reasoning.Syntax.html#6808" class="Bound">U</a> <a id="6810" class="Symbol">:</a> <a id="6812" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="6816" href="Relation.Binary.Reasoning.Syntax.html#4964" class="Bound">B</a> <a id="6818" href="Relation.Binary.Reasoning.Syntax.html#4962" class="Bound">A</a> <a id="6820" href="Relation.Binary.Reasoning.Syntax.html#1072" class="Generalizable">ℓ₄</a><a id="6822" class="Symbol">}</a>
|
|||
|
<a id="6828" class="Symbol">(</a><a id="6829" href="Relation.Binary.Reasoning.Syntax.html#6829" class="Bound">sym</a> <a id="6833" class="Symbol">:</a> <a id="6835" href="Relation.Binary.Definitions.html#1513" class="Function">Sym</a> <a id="6839" href="Relation.Binary.Reasoning.Syntax.html#6808" class="Bound">U</a> <a id="6841" href="Relation.Binary.Reasoning.Syntax.html#4954" class="Bound">R</a><a id="6842" class="Symbol">)</a>
|
|||
|
<a id="6848" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="6859" href="Relation.Binary.Reasoning.Syntax.html#6859" class="Function">backward</a> <a id="6868" class="Symbol">:</a> <a id="6870" class="Symbol">∀</a> <a id="6872" href="Relation.Binary.Reasoning.Syntax.html#6872" class="Bound">x</a> <a id="6874" class="Symbol">{</a><a id="6875" href="Relation.Binary.Reasoning.Syntax.html#6875" class="Bound">y</a> <a id="6877" href="Relation.Binary.Reasoning.Syntax.html#6877" class="Bound">z</a><a id="6878" class="Symbol">}</a> <a id="6880" class="Symbol">→</a> <a id="6882" href="Relation.Binary.Reasoning.Syntax.html#4973" class="Bound">S</a> <a id="6884" href="Relation.Binary.Reasoning.Syntax.html#6875" class="Bound">y</a> <a id="6886" href="Relation.Binary.Reasoning.Syntax.html#6877" class="Bound">z</a> <a id="6888" class="Symbol">→</a> <a id="6890" href="Relation.Binary.Reasoning.Syntax.html#6808" class="Bound">U</a> <a id="6892" href="Relation.Binary.Reasoning.Syntax.html#6875" class="Bound">y</a> <a id="6894" href="Relation.Binary.Reasoning.Syntax.html#6872" class="Bound">x</a> <a id="6896" class="Symbol">→</a> <a id="6898" href="Relation.Binary.Reasoning.Syntax.html#4992" class="Bound">T</a> <a id="6900" href="Relation.Binary.Reasoning.Syntax.html#6872" class="Bound">x</a> <a id="6902" href="Relation.Binary.Reasoning.Syntax.html#6877" class="Bound">z</a>
|
|||
|
<a id="6908" href="Relation.Binary.Reasoning.Syntax.html#6859" class="Function">backward</a> <a id="6917" href="Relation.Binary.Reasoning.Syntax.html#6917" class="Bound">x</a> <a id="6919" href="Relation.Binary.Reasoning.Syntax.html#6919" class="Bound">yRz</a> <a id="6923" href="Relation.Binary.Reasoning.Syntax.html#6923" class="Bound">x≈y</a> <a id="6927" class="Symbol">=</a> <a id="6929" href="Relation.Binary.Reasoning.Syntax.html#5042" class="Function">forward</a> <a id="6937" href="Relation.Binary.Reasoning.Syntax.html#6917" class="Bound">x</a> <a id="6939" href="Relation.Binary.Reasoning.Syntax.html#6919" class="Bound">yRz</a> <a id="6943" class="Symbol">(</a><a id="6944" href="Relation.Binary.Reasoning.Syntax.html#6829" class="Bound">sym</a> <a id="6948" href="Relation.Binary.Reasoning.Syntax.html#6923" class="Bound">x≈y</a><a id="6951" class="Symbol">)</a>
|
|||
|
|
|||
|
<a id="6958" class="Comment">-- Setoid equality syntax</a>
|
|||
|
<a id="6988" class="Keyword">module</a> <a id="6995" href="Relation.Binary.Reasoning.Syntax.html#6995" class="Module">≈-syntax</a> <a id="7004" class="Keyword">where</a>
|
|||
|
<a id="7016" class="Keyword">infixr</a> <a id="7023" class="Number">2</a> <a id="7025" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">step-≈-⟩</a> <a id="7034" href="Relation.Binary.Reasoning.Syntax.html#7074" class="Function">step-≈-⟨</a>
|
|||
|
<a id="7049" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">step-≈-⟩</a> <a id="7058" class="Symbol">=</a> <a id="7060" href="Relation.Binary.Reasoning.Syntax.html#5042" class="Function">forward</a>
|
|||
|
<a id="7074" href="Relation.Binary.Reasoning.Syntax.html#7074" class="Function">step-≈-⟨</a> <a id="7083" class="Symbol">=</a> <a id="7085" href="Relation.Binary.Reasoning.Syntax.html#6859" class="Function">backward</a>
|
|||
|
<a id="7100" class="Keyword">syntax</a> <a id="7107" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">step-≈-⟩</a> <a id="7116" class="Bound">x</a> <a id="7118" class="Bound">yRz</a> <a id="7122" class="Bound">x≈y</a> <a id="7126" class="Symbol">=</a> <a id="7128" class="Bound">x</a> <a id="7130" class="Function">≈⟨</a> <a id="7133" class="Bound">x≈y</a> <a id="7137" class="Function">⟩</a> <a id="7139" class="Bound">yRz</a>
|
|||
|
<a id="7149" class="Keyword">syntax</a> <a id="7156" href="Relation.Binary.Reasoning.Syntax.html#7074" class="Function">step-≈-⟨</a> <a id="7165" class="Bound">x</a> <a id="7167" class="Bound">yRz</a> <a id="7171" class="Bound">y≈x</a> <a id="7175" class="Symbol">=</a> <a id="7177" class="Bound">x</a> <a id="7179" class="Function">≈⟨</a> <a id="7182" class="Bound">y≈x</a> <a id="7186" class="Function">⟨</a> <a id="7188" class="Bound">yRz</a>
|
|||
|
|
|||
|
<a id="7199" class="Comment">-- Deprecated</a>
|
|||
|
<a id="7219" class="Keyword">infixr</a> <a id="7226" class="Number">2</a> <a id="7228" href="Relation.Binary.Reasoning.Syntax.html#7249" class="Function">step-≈</a> <a id="7235" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">step-≈˘</a>
|
|||
|
<a id="7249" href="Relation.Binary.Reasoning.Syntax.html#7249" class="Function">step-≈</a> <a id="7256" class="Symbol">=</a> <a id="7258" href="Relation.Binary.Reasoning.Syntax.html#7049" class="Function">step-≈-⟩</a>
|
|||
|
<a id="7273" class="Symbol">{-#</a> <a id="7277" class="Keyword">WARNING_ON_USAGE</a> <a id="7294" class="Pragma">step-≈</a>
|
|||
|
<a id="7307" class="String">"Warning: step-≈ was deprecated in v2.0.
|
|||
|
Please use step-≈-⟩ instead."</a>
|
|||
|
<a id="7390" class="Symbol">#-}</a>
|
|||
|
<a id="7400" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">step-≈˘</a> <a id="7408" class="Symbol">=</a> <a id="7410" href="Relation.Binary.Reasoning.Syntax.html#7074" class="Function">step-≈-⟨</a>
|
|||
|
<a id="7425" class="Symbol">{-#</a> <a id="7429" class="Keyword">WARNING_ON_USAGE</a> <a id="7446" class="Pragma">step-≈˘</a>
|
|||
|
<a id="7460" class="String">"Warning: step-≈˘ and _≈˘⟨_⟩_ was deprecated in v2.0.
|
|||
|
Please use step-≈-⟨ and _≈⟨_⟨_ instead."</a>
|
|||
|
<a id="7567" class="Symbol">#-}</a>
|
|||
|
<a id="7577" class="Keyword">syntax</a> <a id="7584" href="Relation.Binary.Reasoning.Syntax.html#7400" class="Function">step-≈˘</a> <a id="7592" class="Bound">x</a> <a id="7594" class="Bound">yRz</a> <a id="7598" class="Bound">y≈x</a> <a id="7602" class="Symbol">=</a> <a id="7604" class="Bound">x</a> <a id="7606" class="Function">≈˘⟨</a> <a id="7610" class="Bound">y≈x</a> <a id="7614" class="Function">⟩</a> <a id="7616" class="Bound">yRz</a>
|
|||
|
|
|||
|
|
|||
|
<a id="7626" class="Comment">-- Container equality syntax</a>
|
|||
|
<a id="7659" class="Keyword">module</a> <a id="7666" href="Relation.Binary.Reasoning.Syntax.html#7666" class="Module">≋-syntax</a> <a id="7675" class="Keyword">where</a>
|
|||
|
<a id="7687" class="Keyword">infixr</a> <a id="7694" class="Number">2</a> <a id="7696" href="Relation.Binary.Reasoning.Syntax.html#7720" class="Function">step-≋-⟩</a> <a id="7705" href="Relation.Binary.Reasoning.Syntax.html#7745" class="Function">step-≋-⟨</a>
|
|||
|
<a id="7720" href="Relation.Binary.Reasoning.Syntax.html#7720" class="Function">step-≋-⟩</a> <a id="7729" class="Symbol">=</a> <a id="7731" href="Relation.Binary.Reasoning.Syntax.html#5042" class="Function">forward</a>
|
|||
|
<a id="7745" href="Relation.Binary.Reasoning.Syntax.html#7745" class="Function">step-≋-⟨</a> <a id="7754" class="Symbol">=</a> <a id="7756" href="Relation.Binary.Reasoning.Syntax.html#6859" class="Function">backward</a>
|
|||
|
<a id="7771" class="Keyword">syntax</a> <a id="7778" href="Relation.Binary.Reasoning.Syntax.html#7720" class="Function">step-≋-⟩</a> <a id="7787" class="Bound">x</a> <a id="7789" class="Bound">yRz</a> <a id="7793" class="Bound">x≋y</a> <a id="7797" class="Symbol">=</a> <a id="7799" class="Bound">x</a> <a id="7801" class="Function">≋⟨</a> <a id="7804" class="Bound">x≋y</a> <a id="7808" class="Function">⟩</a> <a id="7810" class="Bound">yRz</a>
|
|||
|
<a id="7820" class="Keyword">syntax</a> <a id="7827" href="Relation.Binary.Reasoning.Syntax.html#7745" class="Function">step-≋-⟨</a> <a id="7836" class="Bound">x</a> <a id="7838" class="Bound">yRz</a> <a id="7842" class="Bound">y≋x</a> <a id="7846" class="Symbol">=</a> <a id="7848" class="Bound">x</a> <a id="7850" class="Function">≋⟨</a> <a id="7853" class="Bound">y≋x</a> <a id="7857" class="Function">⟨</a> <a id="7859" class="Bound">yRz</a>
|
|||
|
|
|||
|
|
|||
|
<a id="7871" class="Comment">-- Don't remove until https://github.com/agda/agda/issues/5617 fixed.</a>
|
|||
|
<a id="7947" class="Keyword">infixr</a> <a id="7954" class="Number">2</a> <a id="7956" href="Relation.Binary.Reasoning.Syntax.html#7977" class="Function">step-≋</a> <a id="7963" href="Relation.Binary.Reasoning.Syntax.html#8128" class="Function">step-≋˘</a>
|
|||
|
<a id="7977" href="Relation.Binary.Reasoning.Syntax.html#7977" class="Function">step-≋</a> <a id="7984" class="Symbol">=</a> <a id="7986" href="Relation.Binary.Reasoning.Syntax.html#7720" class="Function">step-≋-⟩</a>
|
|||
|
<a id="8001" class="Symbol">{-#</a> <a id="8005" class="Keyword">WARNING_ON_USAGE</a> <a id="8022" class="Pragma">step-≋</a>
|
|||
|
<a id="8035" class="String">"Warning: step-≋ was deprecated in v2.0.
|
|||
|
Please use step-≋-⟩ instead."</a>
|
|||
|
<a id="8118" class="Symbol">#-}</a>
|
|||
|
<a id="8128" href="Relation.Binary.Reasoning.Syntax.html#8128" class="Function">step-≋˘</a> <a id="8136" class="Symbol">=</a> <a id="8138" href="Relation.Binary.Reasoning.Syntax.html#7745" class="Function">step-≋-⟨</a>
|
|||
|
<a id="8153" class="Symbol">{-#</a> <a id="8157" class="Keyword">WARNING_ON_USAGE</a> <a id="8174" class="Pragma">step-≋˘</a>
|
|||
|
<a id="8188" class="String">"Warning: step-≋˘ and _≋˘⟨_⟩_ was deprecated in v2.0.
|
|||
|
Please use step-≋-⟨ and _≋⟨_⟨_ instead."</a>
|
|||
|
<a id="8295" class="Symbol">#-}</a>
|
|||
|
<a id="8305" class="Keyword">syntax</a> <a id="8312" href="Relation.Binary.Reasoning.Syntax.html#8128" class="Function">step-≋˘</a> <a id="8320" class="Bound">x</a> <a id="8322" class="Bound">yRz</a> <a id="8326" class="Bound">y≋x</a> <a id="8330" class="Symbol">=</a> <a id="8332" class="Bound">x</a> <a id="8334" class="Function">≋˘⟨</a> <a id="8338" class="Bound">y≋x</a> <a id="8342" class="Function">⟩</a> <a id="8344" class="Bound">yRz</a>
|
|||
|
|
|||
|
|
|||
|
<a id="8354" class="Comment">-- Other equality syntax</a>
|
|||
|
<a id="8383" class="Keyword">module</a> <a id="8390" href="Relation.Binary.Reasoning.Syntax.html#8390" class="Module">≃-syntax</a> <a id="8399" class="Keyword">where</a>
|
|||
|
<a id="8411" class="Keyword">infixr</a> <a id="8418" class="Number">2</a> <a id="8420" href="Relation.Binary.Reasoning.Syntax.html#8444" class="Function">step-≃-⟩</a> <a id="8429" href="Relation.Binary.Reasoning.Syntax.html#8469" class="Function">step-≃-⟨</a>
|
|||
|
<a id="8444" href="Relation.Binary.Reasoning.Syntax.html#8444" class="Function">step-≃-⟩</a> <a id="8453" class="Symbol">=</a> <a id="8455" href="Relation.Binary.Reasoning.Syntax.html#5042" class="Function">forward</a>
|
|||
|
<a id="8469" href="Relation.Binary.Reasoning.Syntax.html#8469" class="Function">step-≃-⟨</a> <a id="8478" class="Symbol">=</a> <a id="8480" href="Relation.Binary.Reasoning.Syntax.html#6859" class="Function">backward</a>
|
|||
|
<a id="8495" class="Keyword">syntax</a> <a id="8502" href="Relation.Binary.Reasoning.Syntax.html#8444" class="Function">step-≃-⟩</a> <a id="8511" class="Bound">x</a> <a id="8513" class="Bound">yRz</a> <a id="8517" class="Bound">x≃y</a> <a id="8521" class="Symbol">=</a> <a id="8523" class="Bound">x</a> <a id="8525" class="Function">≃⟨</a> <a id="8528" class="Bound">x≃y</a> <a id="8532" class="Function">⟩</a> <a id="8534" class="Bound">yRz</a>
|
|||
|
<a id="8544" class="Keyword">syntax</a> <a id="8551" href="Relation.Binary.Reasoning.Syntax.html#8469" class="Function">step-≃-⟨</a> <a id="8560" class="Bound">x</a> <a id="8562" class="Bound">yRz</a> <a id="8566" class="Bound">y≃x</a> <a id="8570" class="Symbol">=</a> <a id="8572" class="Bound">x</a> <a id="8574" class="Function">≃⟨</a> <a id="8577" class="Bound">y≃x</a> <a id="8581" class="Function">⟨</a> <a id="8583" class="Bound">yRz</a>
|
|||
|
|
|||
|
|
|||
|
<a id="8593" class="Comment">-- Apartness relation syntax</a>
|
|||
|
<a id="8626" class="Keyword">module</a> <a id="8633" href="Relation.Binary.Reasoning.Syntax.html#8633" class="Module">#-syntax</a> <a id="8642" class="Keyword">where</a>
|
|||
|
<a id="8654" class="Keyword">infixr</a> <a id="8661" class="Number">2</a> <a id="8663" href="Relation.Binary.Reasoning.Syntax.html#8687" class="Function">step-#-⟩</a> <a id="8672" href="Relation.Binary.Reasoning.Syntax.html#8712" class="Function">step-#-⟨</a>
|
|||
|
<a id="8687" href="Relation.Binary.Reasoning.Syntax.html#8687" class="Function">step-#-⟩</a> <a id="8696" class="Symbol">=</a> <a id="8698" href="Relation.Binary.Reasoning.Syntax.html#5042" class="Function">forward</a>
|
|||
|
<a id="8712" href="Relation.Binary.Reasoning.Syntax.html#8712" class="Function">step-#-⟨</a> <a id="8721" class="Symbol">=</a> <a id="8723" href="Relation.Binary.Reasoning.Syntax.html#6859" class="Function">backward</a>
|
|||
|
<a id="8738" class="Keyword">syntax</a> <a id="8745" href="Relation.Binary.Reasoning.Syntax.html#8687" class="Function">step-#-⟩</a> <a id="8754" class="Bound">x</a> <a id="8756" class="Bound">yRz</a> <a id="8760" class="Bound">x#y</a> <a id="8764" class="Symbol">=</a> <a id="8766" class="Bound">x</a> <a id="8768" class="Function">#⟨</a> <a id="8771" class="Bound">x#y</a> <a id="8775" class="Function">⟩</a> <a id="8777" class="Bound">yRz</a>
|
|||
|
<a id="8787" class="Keyword">syntax</a> <a id="8794" href="Relation.Binary.Reasoning.Syntax.html#8712" class="Function">step-#-⟨</a> <a id="8803" class="Bound">x</a> <a id="8805" class="Bound">yRz</a> <a id="8809" class="Bound">y#x</a> <a id="8813" class="Symbol">=</a> <a id="8815" class="Bound">x</a> <a id="8817" class="Function">#⟨</a> <a id="8820" class="Bound">y#x</a> <a id="8824" class="Function">⟨</a> <a id="8826" class="Bound">yRz</a>
|
|||
|
|
|||
|
<a id="8837" class="Comment">-- Don't remove until https://github.com/agda/agda/issues/5617 fixed.</a>
|
|||
|
<a id="8913" class="Keyword">infixr</a> <a id="8920" class="Number">2</a> <a id="8922" href="Relation.Binary.Reasoning.Syntax.html#8943" class="Function">step-#</a> <a id="8929" href="Relation.Binary.Reasoning.Syntax.html#9094" class="Function">step-#˘</a>
|
|||
|
<a id="8943" href="Relation.Binary.Reasoning.Syntax.html#8943" class="Function">step-#</a> <a id="8950" class="Symbol">=</a> <a id="8952" href="Relation.Binary.Reasoning.Syntax.html#8687" class="Function">step-#-⟩</a>
|
|||
|
<a id="8967" class="Symbol">{-#</a> <a id="8971" class="Keyword">WARNING_ON_USAGE</a> <a id="8988" class="Pragma">step-#</a>
|
|||
|
<a id="9001" class="String">"Warning: step-# was deprecated in v2.0.
|
|||
|
Please use step-#-⟩ instead."</a>
|
|||
|
<a id="9084" class="Symbol">#-}</a>
|
|||
|
<a id="9094" href="Relation.Binary.Reasoning.Syntax.html#9094" class="Function">step-#˘</a> <a id="9102" class="Symbol">=</a> <a id="9104" href="Relation.Binary.Reasoning.Syntax.html#8712" class="Function">step-#-⟨</a>
|
|||
|
<a id="9119" class="Symbol">{-#</a> <a id="9123" class="Keyword">WARNING_ON_USAGE</a> <a id="9140" class="Pragma">step-#˘</a>
|
|||
|
<a id="9154" class="String">"Warning: step-#˘ and _#˘⟨_⟩_ was deprecated in v2.0.
|
|||
|
Please use step-#-⟨ and _#⟨_⟨_ instead."</a>
|
|||
|
<a id="9261" class="Symbol">#-}</a>
|
|||
|
<a id="9271" class="Keyword">syntax</a> <a id="9278" href="Relation.Binary.Reasoning.Syntax.html#9094" class="Function">step-#˘</a> <a id="9286" class="Bound">x</a> <a id="9288" class="Bound">yRz</a> <a id="9292" class="Bound">y#x</a> <a id="9296" class="Symbol">=</a> <a id="9298" class="Bound">x</a> <a id="9300" class="Function">#˘⟨</a> <a id="9304" class="Bound">y#x</a> <a id="9308" class="Function">⟩</a> <a id="9310" class="Bound">yRz</a>
|
|||
|
|
|||
|
|
|||
|
<a id="9320" class="Comment">-- Bijection syntax</a>
|
|||
|
<a id="9344" class="Keyword">module</a> <a id="9351" href="Relation.Binary.Reasoning.Syntax.html#9351" class="Module">⤖-syntax</a> <a id="9360" class="Keyword">where</a>
|
|||
|
<a id="9372" class="Keyword">infixr</a> <a id="9379" class="Number">2</a> <a id="9381" href="Relation.Binary.Reasoning.Syntax.html#9401" class="Function">step-⤖</a> <a id="9388" href="Relation.Binary.Reasoning.Syntax.html#9424" class="Function">step-⬻</a>
|
|||
|
<a id="9401" href="Relation.Binary.Reasoning.Syntax.html#9401" class="Function">step-⤖</a> <a id="9408" class="Symbol">=</a> <a id="9410" href="Relation.Binary.Reasoning.Syntax.html#5042" class="Function">forward</a>
|
|||
|
<a id="9424" href="Relation.Binary.Reasoning.Syntax.html#9424" class="Function">step-⬻</a> <a id="9431" class="Symbol">=</a> <a id="9433" href="Relation.Binary.Reasoning.Syntax.html#6859" class="Function">backward</a>
|
|||
|
<a id="9448" class="Keyword">syntax</a> <a id="9455" href="Relation.Binary.Reasoning.Syntax.html#9401" class="Function">step-⤖</a> <a id="9462" class="Bound">x</a> <a id="9464" class="Bound">yRz</a> <a id="9468" class="Bound">x⤖y</a> <a id="9472" class="Symbol">=</a> <a id="9474" class="Bound">x</a> <a id="9476" class="Function">⤖⟨</a> <a id="9479" class="Bound">x⤖y</a> <a id="9483" class="Function">⟩</a> <a id="9485" class="Bound">yRz</a>
|
|||
|
<a id="9495" class="Keyword">syntax</a> <a id="9502" href="Relation.Binary.Reasoning.Syntax.html#9424" class="Function">step-⬻</a> <a id="9509" class="Bound">x</a> <a id="9511" class="Bound">yRz</a> <a id="9515" class="Bound">y⤖x</a> <a id="9519" class="Symbol">=</a> <a id="9521" class="Bound">x</a> <a id="9523" class="Function">⬻⟨</a> <a id="9526" class="Bound">y⤖x</a> <a id="9530" class="Function">⟩</a> <a id="9532" class="Bound">yRz</a>
|
|||
|
|
|||
|
|
|||
|
<a id="9542" class="Comment">-- Inverse syntax</a>
|
|||
|
<a id="9564" class="Keyword">module</a> <a id="9571" href="Relation.Binary.Reasoning.Syntax.html#9571" class="Module">↔-syntax</a> <a id="9580" class="Keyword">where</a>
|
|||
|
<a id="9592" class="Keyword">infixr</a> <a id="9599" class="Number">2</a> <a id="9601" href="Relation.Binary.Reasoning.Syntax.html#9625" class="Function">step-↔-⟩</a> <a id="9610" href="Relation.Binary.Reasoning.Syntax.html#9650" class="Function">step-↔-⟨</a>
|
|||
|
<a id="9625" href="Relation.Binary.Reasoning.Syntax.html#9625" class="Function">step-↔-⟩</a> <a id="9634" class="Symbol">=</a> <a id="9636" href="Relation.Binary.Reasoning.Syntax.html#5042" class="Function">forward</a>
|
|||
|
<a id="9650" href="Relation.Binary.Reasoning.Syntax.html#9650" class="Function">step-↔-⟨</a> <a id="9659" class="Symbol">=</a> <a id="9661" href="Relation.Binary.Reasoning.Syntax.html#6859" class="Function">backward</a>
|
|||
|
<a id="9676" class="Keyword">syntax</a> <a id="9683" href="Relation.Binary.Reasoning.Syntax.html#9625" class="Function">step-↔-⟩</a> <a id="9692" class="Bound">x</a> <a id="9694" class="Bound">yRz</a> <a id="9698" class="Bound">x↔y</a> <a id="9702" class="Symbol">=</a> <a id="9704" class="Bound">x</a> <a id="9706" class="Function">↔⟨</a> <a id="9709" class="Bound">x↔y</a> <a id="9713" class="Function">⟩</a> <a id="9715" class="Bound">yRz</a>
|
|||
|
<a id="9725" class="Keyword">syntax</a> <a id="9732" href="Relation.Binary.Reasoning.Syntax.html#9650" class="Function">step-↔-⟨</a> <a id="9741" class="Bound">x</a> <a id="9743" class="Bound">yRz</a> <a id="9747" class="Bound">y↔x</a> <a id="9751" class="Symbol">=</a> <a id="9753" class="Bound">x</a> <a id="9755" class="Function">↔⟨</a> <a id="9758" class="Bound">y↔x</a> <a id="9762" class="Function">⟨</a> <a id="9764" class="Bound">yRz</a>
|
|||
|
|
|||
|
|
|||
|
<a id="9774" class="Comment">-- Inverse syntax</a>
|
|||
|
<a id="9796" class="Keyword">module</a> <a id="9803" href="Relation.Binary.Reasoning.Syntax.html#9803" class="Module">↭-syntax</a> <a id="9812" class="Keyword">where</a>
|
|||
|
<a id="9824" class="Keyword">infixr</a> <a id="9831" class="Number">2</a> <a id="9833" href="Relation.Binary.Reasoning.Syntax.html#9857" class="Function">step-↭-⟩</a> <a id="9842" href="Relation.Binary.Reasoning.Syntax.html#9882" class="Function">step-↭-⟨</a>
|
|||
|
<a id="9857" href="Relation.Binary.Reasoning.Syntax.html#9857" class="Function">step-↭-⟩</a> <a id="9866" class="Symbol">=</a> <a id="9868" href="Relation.Binary.Reasoning.Syntax.html#5042" class="Function">forward</a>
|
|||
|
<a id="9882" href="Relation.Binary.Reasoning.Syntax.html#9882" class="Function">step-↭-⟨</a> <a id="9891" class="Symbol">=</a> <a id="9893" href="Relation.Binary.Reasoning.Syntax.html#6859" class="Function">backward</a>
|
|||
|
<a id="9908" class="Keyword">syntax</a> <a id="9915" href="Relation.Binary.Reasoning.Syntax.html#9857" class="Function">step-↭-⟩</a> <a id="9924" class="Bound">x</a> <a id="9926" class="Bound">yRz</a> <a id="9930" class="Bound">x↭y</a> <a id="9934" class="Symbol">=</a> <a id="9936" class="Bound">x</a> <a id="9938" class="Function">↭⟨</a> <a id="9941" class="Bound">x↭y</a> <a id="9945" class="Function">⟩</a> <a id="9947" class="Bound">yRz</a>
|
|||
|
<a id="9957" class="Keyword">syntax</a> <a id="9964" href="Relation.Binary.Reasoning.Syntax.html#9882" class="Function">step-↭-⟨</a> <a id="9973" class="Bound">x</a> <a id="9975" class="Bound">yRz</a> <a id="9979" class="Bound">y↭x</a> <a id="9983" class="Symbol">=</a> <a id="9985" class="Bound">x</a> <a id="9987" class="Function">↭⟨</a> <a id="9990" class="Bound">y↭x</a> <a id="9994" class="Function">⟨</a> <a id="9996" class="Bound">yRz</a>
|
|||
|
|
|||
|
|
|||
|
<a id="10008" class="Comment">-- Don't remove until https://github.com/agda/agda/issues/5617 fixed.</a>
|
|||
|
<a id="10084" class="Keyword">infixr</a> <a id="10091" class="Number">2</a> <a id="10093" href="Relation.Binary.Reasoning.Syntax.html#10114" class="Function">step-↭</a> <a id="10100" href="Relation.Binary.Reasoning.Syntax.html#10264" class="Function">step-↭˘</a>
|
|||
|
<a id="10114" href="Relation.Binary.Reasoning.Syntax.html#10114" class="Function">step-↭</a> <a id="10121" class="Symbol">=</a> <a id="10123" href="Relation.Binary.Reasoning.Syntax.html#5042" class="Function">forward</a>
|
|||
|
<a id="10137" class="Symbol">{-#</a> <a id="10141" class="Keyword">WARNING_ON_USAGE</a> <a id="10158" class="Pragma">step-↭</a>
|
|||
|
<a id="10171" class="String">"Warning: step-↭ was deprecated in v2.0.
|
|||
|
Please use step-↭-⟩ instead."</a>
|
|||
|
<a id="10254" class="Symbol">#-}</a>
|
|||
|
<a id="10264" href="Relation.Binary.Reasoning.Syntax.html#10264" class="Function">step-↭˘</a> <a id="10272" class="Symbol">=</a> <a id="10274" href="Relation.Binary.Reasoning.Syntax.html#6859" class="Function">backward</a>
|
|||
|
<a id="10289" class="Symbol">{-#</a> <a id="10293" class="Keyword">WARNING_ON_USAGE</a> <a id="10310" class="Pragma">step-↭˘</a>
|
|||
|
<a id="10324" class="String">"Warning: step-↭˘ and _↭˘⟨_⟩_ was deprecated in v2.0.
|
|||
|
Please use step-↭-⟨ and _↭⟨_⟨_ instead."</a>
|
|||
|
<a id="10431" class="Symbol">#-}</a>
|
|||
|
<a id="10441" class="Keyword">syntax</a> <a id="10448" href="Relation.Binary.Reasoning.Syntax.html#10264" class="Function">step-↭˘</a> <a id="10456" class="Bound">x</a> <a id="10458" class="Bound">yRz</a> <a id="10462" class="Bound">y↭x</a> <a id="10466" class="Symbol">=</a> <a id="10468" class="Bound">x</a> <a id="10470" class="Function">↭˘⟨</a> <a id="10474" class="Bound">y↭x</a> <a id="10478" class="Function">⟩</a> <a id="10480" class="Bound">yRz</a>
|
|||
|
|
|||
|
<a id="10485" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="10558" class="Comment">-- Propositional equality</a>
|
|||
|
|
|||
|
<a id="10585" class="Comment">-- Crucially often the step function cannot just be `subst` or pattern</a>
|
|||
|
<a id="10656" class="Comment">-- match on `refl` as we often want to compute which constructor the</a>
|
|||
|
<a id="10725" class="Comment">-- relation begins with, in order for the implicit subrelation</a>
|
|||
|
<a id="10788" class="Comment">-- arguments to resolve. See `≡-noncomputable-syntax` below if this</a>
|
|||
|
<a id="10856" class="Comment">-- is not required.</a>
|
|||
|
<a id="10876" class="Keyword">module</a> <a id="≡-syntax"></a><a id="10883" href="Relation.Binary.Reasoning.Syntax.html#10883" class="Module">≡-syntax</a>
|
|||
|
<a id="10894" class="Symbol">(</a><a id="10895" href="Relation.Binary.Reasoning.Syntax.html#10895" class="Bound">R</a> <a id="10897" class="Symbol">:</a> <a id="10899" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="10903" href="Relation.Binary.Reasoning.Syntax.html#1087" class="Generalizable">A</a> <a id="10905" href="Relation.Binary.Reasoning.Syntax.html#1089" class="Generalizable">B</a> <a id="10907" href="Relation.Binary.Reasoning.Syntax.html#1063" class="Generalizable">ℓ₁</a><a id="10909" class="Symbol">)</a>
|
|||
|
<a id="10913" class="Symbol">(</a><a id="10914" href="Relation.Binary.Reasoning.Syntax.html#10914" class="Bound">step</a> <a id="10919" class="Symbol">:</a> <a id="10921" href="Relation.Binary.Definitions.html#1674" class="Function">Trans</a> <a id="10927" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a> <a id="10931" href="Relation.Binary.Reasoning.Syntax.html#10895" class="Bound">R</a> <a id="10933" href="Relation.Binary.Reasoning.Syntax.html#10895" class="Bound">R</a><a id="10934" class="Symbol">)</a>
|
|||
|
<a id="10938" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="10947" class="Keyword">infixr</a> <a id="10954" class="Number">2</a> <a id="10956" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">step-≡-⟩</a> <a id="10966" href="Relation.Binary.Reasoning.Syntax.html#11017" class="Function">step-≡-∣</a> <a id="10975" href="Relation.Binary.Reasoning.Syntax.html#11078" class="Function">step-≡-⟨</a>
|
|||
|
<a id="≡-syntax.step-≡-⟩"></a><a id="10986" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">step-≡-⟩</a> <a id="10995" class="Symbol">=</a> <a id="10997" href="Relation.Binary.Reasoning.Syntax.html#5042" class="Function">forward</a> <a id="11005" href="Relation.Binary.Reasoning.Syntax.html#10895" class="Bound">R</a> <a id="11007" href="Relation.Binary.Reasoning.Syntax.html#10895" class="Bound">R</a> <a id="11009" href="Relation.Binary.Reasoning.Syntax.html#10914" class="Bound">step</a>
|
|||
|
|
|||
|
<a id="≡-syntax.step-≡-∣"></a><a id="11017" href="Relation.Binary.Reasoning.Syntax.html#11017" class="Function">step-≡-∣</a> <a id="11026" class="Symbol">:</a> <a id="11028" class="Symbol">∀</a> <a id="11030" href="Relation.Binary.Reasoning.Syntax.html#11030" class="Bound">x</a> <a id="11032" class="Symbol">{</a><a id="11033" href="Relation.Binary.Reasoning.Syntax.html#11033" class="Bound">y</a><a id="11034" class="Symbol">}</a> <a id="11036" class="Symbol">→</a> <a id="11038" href="Relation.Binary.Reasoning.Syntax.html#10895" class="Bound">R</a> <a id="11040" href="Relation.Binary.Reasoning.Syntax.html#11030" class="Bound">x</a> <a id="11042" href="Relation.Binary.Reasoning.Syntax.html#11033" class="Bound">y</a> <a id="11044" class="Symbol">→</a> <a id="11046" href="Relation.Binary.Reasoning.Syntax.html#10895" class="Bound">R</a> <a id="11048" href="Relation.Binary.Reasoning.Syntax.html#11030" class="Bound">x</a> <a id="11050" href="Relation.Binary.Reasoning.Syntax.html#11033" class="Bound">y</a>
|
|||
|
<a id="11054" href="Relation.Binary.Reasoning.Syntax.html#11017" class="Function">step-≡-∣</a> <a id="11063" href="Relation.Binary.Reasoning.Syntax.html#11063" class="Bound">x</a> <a id="11065" href="Relation.Binary.Reasoning.Syntax.html#11065" class="Bound">xRy</a> <a id="11069" class="Symbol">=</a> <a id="11071" href="Relation.Binary.Reasoning.Syntax.html#11065" class="Bound">xRy</a>
|
|||
|
|
|||
|
<a id="≡-syntax.step-≡-⟨"></a><a id="11078" href="Relation.Binary.Reasoning.Syntax.html#11078" class="Function">step-≡-⟨</a> <a id="11087" class="Symbol">=</a> <a id="11089" href="Relation.Binary.Reasoning.Syntax.html#6859" class="Function">backward</a> <a id="11098" href="Relation.Binary.Reasoning.Syntax.html#10895" class="Bound">R</a> <a id="11100" href="Relation.Binary.Reasoning.Syntax.html#10895" class="Bound">R</a> <a id="11102" href="Relation.Binary.Reasoning.Syntax.html#10914" class="Bound">step</a> <a id="11107" href="Relation.Binary.PropositionalEquality.Core.html#1712" class="Function">P.sym</a>
|
|||
|
|
|||
|
<a id="11116" class="Keyword">syntax</a> <a id="11123" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">step-≡-⟩</a> <a id="11132" class="Bound">x</a> <a id="11134" class="Bound">yRz</a> <a id="11138" class="Bound">x≡y</a> <a id="11142" class="Symbol">=</a> <a id="11144" class="Bound">x</a> <a id="11146" class="Function">≡⟨</a> <a id="11149" class="Bound">x≡y</a> <a id="11153" class="Function">⟩</a> <a id="11155" class="Bound">yRz</a>
|
|||
|
<a id="11161" class="Keyword">syntax</a> <a id="11168" href="Relation.Binary.Reasoning.Syntax.html#11017" class="Function">step-≡-∣</a> <a id="11177" class="Bound">x</a> <a id="11179" class="Bound">xRy</a> <a id="11187" class="Symbol">=</a> <a id="11189" class="Bound">x</a> <a id="11191" class="Function">≡⟨⟩</a> <a id="11195" class="Bound">xRy</a>
|
|||
|
<a id="11201" class="Keyword">syntax</a> <a id="11208" href="Relation.Binary.Reasoning.Syntax.html#11078" class="Function">step-≡-⟨</a> <a id="11217" class="Bound">x</a> <a id="11219" class="Bound">yRz</a> <a id="11223" class="Bound">y≡x</a> <a id="11227" class="Symbol">=</a> <a id="11229" class="Bound">x</a> <a id="11231" class="Function">≡⟨</a> <a id="11234" class="Bound">y≡x</a> <a id="11238" class="Function">⟨</a> <a id="11240" class="Bound">yRz</a>
|
|||
|
|
|||
|
|
|||
|
<a id="11248" class="Comment">-- Don't remove until https://github.com/agda/agda/issues/5617 fixed.</a>
|
|||
|
<a id="11320" class="Keyword">infixr</a> <a id="11327" class="Number">2</a> <a id="11329" href="Relation.Binary.Reasoning.Syntax.html#11346" class="Function">step-≡</a> <a id="11336" href="Relation.Binary.Reasoning.Syntax.html#11477" class="Function">step-≡˘</a>
|
|||
|
<a id="≡-syntax.step-≡"></a><a id="11346" href="Relation.Binary.Reasoning.Syntax.html#11346" class="Function">step-≡</a> <a id="11353" class="Symbol">=</a> <a id="11355" href="Relation.Binary.Reasoning.Syntax.html#10986" class="Function">step-≡-⟩</a>
|
|||
|
<a id="11366" class="Symbol">{-#</a> <a id="11370" class="Keyword">WARNING_ON_USAGE</a> <a id="11387" class="Pragma">step-≡</a>
|
|||
|
<a id="11396" class="String">"Warning: step-≡ was deprecated in v2.0.
|
|||
|
Please use step-≡-⟩ instead."</a>
|
|||
|
<a id="11471" class="Symbol">#-}</a>
|
|||
|
<a id="≡-syntax.step-≡˘"></a><a id="11477" href="Relation.Binary.Reasoning.Syntax.html#11477" class="Function">step-≡˘</a> <a id="11485" class="Symbol">=</a> <a id="11487" href="Relation.Binary.Reasoning.Syntax.html#11078" class="Function">step-≡-⟨</a>
|
|||
|
<a id="11498" class="Symbol">{-#</a> <a id="11502" class="Keyword">WARNING_ON_USAGE</a> <a id="11519" class="Pragma">step-≡˘</a>
|
|||
|
<a id="11529" class="String">"Warning: step-≡˘ and _≡˘⟨_⟩_ was deprecated in v2.0.
|
|||
|
Please use step-≡-⟨ and _≡⟨_⟨_ instead."</a>
|
|||
|
<a id="11628" class="Symbol">#-}</a>
|
|||
|
<a id="11634" class="Keyword">syntax</a> <a id="11641" href="Relation.Binary.Reasoning.Syntax.html#11477" class="Function">step-≡˘</a> <a id="11649" class="Bound">x</a> <a id="11651" class="Bound">yRz</a> <a id="11655" class="Bound">y≡x</a> <a id="11659" class="Symbol">=</a> <a id="11661" class="Bound">x</a> <a id="11663" class="Function">≡˘⟨</a> <a id="11667" class="Bound">y≡x</a> <a id="11671" class="Function">⟩</a> <a id="11673" class="Bound">yRz</a>
|
|||
|
|
|||
|
|
|||
|
<a id="11679" class="Comment">-- Unlike ≡-syntax above, chains of reasoning using this syntax will not</a>
|
|||
|
<a id="11752" class="Comment">-- reduce when proofs of propositional equality which are not definitionally</a>
|
|||
|
<a id="11829" class="Comment">-- equal to `refl` are passed.</a>
|
|||
|
<a id="11860" class="Keyword">module</a> <a id="≡-noncomputing-syntax"></a><a id="11867" href="Relation.Binary.Reasoning.Syntax.html#11867" class="Module">≡-noncomputing-syntax</a> <a id="11889" class="Symbol">(</a><a id="11890" href="Relation.Binary.Reasoning.Syntax.html#11890" class="Bound">R</a> <a id="11892" class="Symbol">:</a> <a id="11894" href="Relation.Binary.Core.html#780" class="Function">REL</a> <a id="11898" href="Relation.Binary.Reasoning.Syntax.html#1087" class="Generalizable">A</a> <a id="11900" href="Relation.Binary.Reasoning.Syntax.html#1089" class="Generalizable">B</a> <a id="11902" href="Relation.Binary.Reasoning.Syntax.html#1063" class="Generalizable">ℓ₁</a><a id="11904" class="Symbol">)</a> <a id="11906" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="11915" class="Keyword">private</a>
|
|||
|
<a id="≡-noncomputing-syntax.step"></a><a id="11927" href="Relation.Binary.Reasoning.Syntax.html#11927" class="Function">step</a> <a id="11932" class="Symbol">:</a> <a id="11934" href="Relation.Binary.Definitions.html#1674" class="Function">Trans</a> <a id="11940" href="Agda.Builtin.Equality.html#150" class="Datatype Operator">_≡_</a> <a id="11944" href="Relation.Binary.Reasoning.Syntax.html#11890" class="Bound">R</a> <a id="11946" href="Relation.Binary.Reasoning.Syntax.html#11890" class="Bound">R</a>
|
|||
|
<a id="11952" href="Relation.Binary.Reasoning.Syntax.html#11927" class="Function">step</a> <a id="11957" href="Agda.Builtin.Equality.html#207" class="InductiveConstructor">P.refl</a> <a id="11964" href="Relation.Binary.Reasoning.Syntax.html#11964" class="Bound">xRy</a> <a id="11968" class="Symbol">=</a> <a id="11970" href="Relation.Binary.Reasoning.Syntax.html#11964" class="Bound">xRy</a>
|
|||
|
|
|||
|
<a id="11977" class="Keyword">open</a> <a id="11982" href="Relation.Binary.Reasoning.Syntax.html#10883" class="Module">≡-syntax</a> <a id="11991" href="Relation.Binary.Reasoning.Syntax.html#11890" class="Bound">R</a> <a id="11993" href="Relation.Binary.Reasoning.Syntax.html#11927" class="Function">step</a> <a id="11998" class="Keyword">public</a>
|
|||
|
|
|||
|
<a id="12006" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
<a id="12079" class="Comment">-- Syntax for ending a chain of reasoning</a>
|
|||
|
<a id="12121" class="Comment">------------------------------------------------------------------------</a>
|
|||
|
|
|||
|
<a id="12195" class="Keyword">module</a> <a id="end-syntax"></a><a id="12202" href="Relation.Binary.Reasoning.Syntax.html#12202" class="Module">end-syntax</a>
|
|||
|
<a id="12215" class="Symbol">(</a><a id="12216" href="Relation.Binary.Reasoning.Syntax.html#12216" class="Bound">R</a> <a id="12218" class="Symbol">:</a> <a id="12220" href="Relation.Binary.Core.html#896" class="Function">Rel</a> <a id="12224" href="Relation.Binary.Reasoning.Syntax.html#1087" class="Generalizable">A</a> <a id="12226" href="Relation.Binary.Reasoning.Syntax.html#1063" class="Generalizable">ℓ₁</a><a id="12228" class="Symbol">)</a>
|
|||
|
<a id="12232" class="Symbol">(</a><a id="12233" href="Relation.Binary.Reasoning.Syntax.html#12233" class="Bound">reflexive</a> <a id="12243" class="Symbol">:</a> <a id="12245" href="Relation.Binary.Definitions.html#1428" class="Function">Reflexive</a> <a id="12255" href="Relation.Binary.Reasoning.Syntax.html#12216" class="Bound">R</a><a id="12256" class="Symbol">)</a>
|
|||
|
<a id="12260" class="Keyword">where</a>
|
|||
|
|
|||
|
<a id="12269" class="Keyword">infix</a> <a id="12275" class="Number">3</a> <a id="12277" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator">_∎</a>
|
|||
|
|
|||
|
<a id="end-syntax._∎"></a><a id="12283" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator">_∎</a> <a id="12286" class="Symbol">:</a> <a id="12288" class="Symbol">∀</a> <a id="12290" href="Relation.Binary.Reasoning.Syntax.html#12290" class="Bound">x</a> <a id="12292" class="Symbol">→</a> <a id="12294" href="Relation.Binary.Reasoning.Syntax.html#12216" class="Bound">R</a> <a id="12296" href="Relation.Binary.Reasoning.Syntax.html#12290" class="Bound">x</a> <a id="12298" href="Relation.Binary.Reasoning.Syntax.html#12290" class="Bound">x</a>
|
|||
|
<a id="12302" href="Relation.Binary.Reasoning.Syntax.html#12302" class="Bound">x</a> <a id="12304" href="Relation.Binary.Reasoning.Syntax.html#12283" class="Function Operator">∎</a> <a id="12306" class="Symbol">=</a> <a id="12308" href="Relation.Binary.Reasoning.Syntax.html#12233" class="Bound">reflexive</a>
|
|||
|
|
|||
|
</pre></body></html>
|