mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
90 lines
No EOL
20 KiB
HTML
90 lines
No EOL
20 KiB
HTML
<!DOCTYPE HTML>
|
||
<html><head><meta charset="utf-8"><title>Relation.Binary.Reasoning.Base.Single</title><link rel="stylesheet" href="Agda.css"></head><body><pre class="Agda"><a id="1" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="74" class="Comment">-- The Agda standard library</a>
|
||
<a id="103" class="Comment">--</a>
|
||
<a id="106" class="Comment">-- The basic code for equational reasoning with a single relation</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="Relation.Binary.html" class="Module">Relation.Binary</a>
|
||
|
||
<a id="320" class="Keyword">module</a> <a id="327" href="Relation.Binary.Reasoning.Base.Single.html" class="Module">Relation.Binary.Reasoning.Base.Single</a>
|
||
<a id="367" class="Symbol">{</a><a id="368" href="Relation.Binary.Reasoning.Base.Single.html#368" class="Bound">a</a> <a id="370" href="Relation.Binary.Reasoning.Base.Single.html#370" class="Bound">ℓ</a><a id="371" class="Symbol">}</a> <a id="373" class="Symbol">{</a><a id="374" href="Relation.Binary.Reasoning.Base.Single.html#374" class="Bound">A</a> <a id="376" class="Symbol">:</a> <a id="378" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="382" href="Relation.Binary.Reasoning.Base.Single.html#368" class="Bound">a</a><a id="383" class="Symbol">}</a> <a id="385" class="Symbol">(</a><a id="386" href="Relation.Binary.Reasoning.Base.Single.html#386" class="Bound Operator">_∼_</a> <a id="390" class="Symbol">:</a> <a id="392" href="Relation.Binary.Core.html#891" class="Function">Rel</a> <a id="396" href="Relation.Binary.Reasoning.Base.Single.html#374" class="Bound">A</a> <a id="398" href="Relation.Binary.Reasoning.Base.Single.html#370" class="Bound">ℓ</a><a id="399" class="Symbol">)</a>
|
||
<a id="403" class="Symbol">(</a><a id="404" href="Relation.Binary.Reasoning.Base.Single.html#404" class="Bound">refl</a> <a id="409" class="Symbol">:</a> <a id="411" href="Relation.Binary.Definitions.html#1348" class="Function">Reflexive</a> <a id="421" href="Relation.Binary.Reasoning.Base.Single.html#386" class="Bound Operator">_∼_</a><a id="424" class="Symbol">)</a> <a id="426" class="Symbol">(</a><a id="427" href="Relation.Binary.Reasoning.Base.Single.html#427" class="Bound">trans</a> <a id="433" class="Symbol">:</a> <a id="435" href="Relation.Binary.Definitions.html#1875" class="Function">Transitive</a> <a id="446" href="Relation.Binary.Reasoning.Base.Single.html#386" class="Bound Operator">_∼_</a><a id="449" class="Symbol">)</a>
|
||
<a id="453" class="Keyword">where</a>
|
||
|
||
<a id="460" class="Comment">-- TODO: the following part is copied from Relation.Binary.Reasoning.Base.Partial</a>
|
||
<a id="542" class="Comment">-- in order to avoid larger refactors. We will refactor this part later</a>
|
||
<a id="614" class="Comment">-- so taht we use the same framework as Relation.Binary.Reasoning.Base.Partial.</a>
|
||
|
||
<a id="695" class="Keyword">open</a> <a id="700" class="Keyword">import</a> <a id="707" href="Level.html" class="Module">Level</a> <a id="713" class="Keyword">using</a> <a id="719" class="Symbol">(</a><a id="720" href="Agda.Primitive.html#804" class="Primitive Operator">_⊔_</a><a id="723" class="Symbol">)</a>
|
||
<a id="725" class="Keyword">open</a> <a id="730" class="Keyword">import</a> <a id="737" href="Relation.Binary.PropositionalEquality.Core.html" class="Module">Relation.Binary.PropositionalEquality.Core</a> <a id="780" class="Symbol">as</a> <a id="783" class="Module">P</a>
|
||
<a id="787" class="Keyword">using</a> <a id="793" class="Symbol">(</a><a id="794" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">_≡_</a><a id="797" class="Symbol">)</a>
|
||
|
||
<a id="800" class="Keyword">infix</a> <a id="807" class="Number">4</a> <a id="809" href="Relation.Binary.Reasoning.Base.Single.html#1062" class="Datatype Operator">_IsRelatedTo_</a>
|
||
|
||
<a id="824" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="897" class="Comment">-- Definition of "related to"</a>
|
||
|
||
<a id="928" class="Comment">-- This seemingly unnecessary type is used to make it possible to</a>
|
||
<a id="994" class="Comment">-- infer arguments even if the underlying equality evaluates.</a>
|
||
|
||
<a id="1057" class="Keyword">data</a> <a id="_IsRelatedTo_"></a><a id="1062" href="Relation.Binary.Reasoning.Base.Single.html#1062" class="Datatype Operator">_IsRelatedTo_</a> <a id="1076" class="Symbol">(</a><a id="1077" href="Relation.Binary.Reasoning.Base.Single.html#1077" class="Bound">x</a> <a id="1079" href="Relation.Binary.Reasoning.Base.Single.html#1079" class="Bound">y</a> <a id="1081" class="Symbol">:</a> <a id="1083" href="Relation.Binary.Reasoning.Base.Single.html#374" class="Bound">A</a><a id="1084" class="Symbol">)</a> <a id="1086" class="Symbol">:</a> <a id="1088" href="Agda.Primitive.html#320" class="Primitive">Set</a> <a id="1092" href="Relation.Binary.Reasoning.Base.Single.html#370" class="Bound">ℓ</a> <a id="1094" class="Keyword">where</a>
|
||
<a id="_IsRelatedTo_.relTo"></a><a id="1102" href="Relation.Binary.Reasoning.Base.Single.html#1102" class="InductiveConstructor">relTo</a> <a id="1108" class="Symbol">:</a> <a id="1110" class="Symbol">(</a><a id="1111" href="Relation.Binary.Reasoning.Base.Single.html#1111" class="Bound">x∼y</a> <a id="1115" class="Symbol">:</a> <a id="1117" href="Relation.Binary.Reasoning.Base.Single.html#1077" class="Bound">x</a> <a id="1119" href="Relation.Binary.Reasoning.Base.Single.html#386" class="Bound Operator">∼</a> <a id="1121" href="Relation.Binary.Reasoning.Base.Single.html#1079" class="Bound">y</a><a id="1122" class="Symbol">)</a> <a id="1124" class="Symbol">→</a> <a id="1126" href="Relation.Binary.Reasoning.Base.Single.html#1077" class="Bound">x</a> <a id="1128" href="Relation.Binary.Reasoning.Base.Single.html#1062" class="Datatype Operator">IsRelatedTo</a> <a id="1140" href="Relation.Binary.Reasoning.Base.Single.html#1079" class="Bound">y</a>
|
||
|
||
<a id="1143" class="Comment">------------------------------------------------------------------------</a>
|
||
<a id="1216" class="Comment">-- Reasoning combinators</a>
|
||
|
||
<a id="1242" class="Comment">-- Note that the arguments to the `step`s are not provided in their</a>
|
||
<a id="1310" class="Comment">-- "natural" order and syntax declarations are later used to re-order</a>
|
||
<a id="1380" class="Comment">-- them. This is because the `step` ordering allows the type-checker to</a>
|
||
<a id="1452" class="Comment">-- better infer the middle argument `y` from the `_IsRelatedTo_`</a>
|
||
<a id="1517" class="Comment">-- argument (see issue 622).</a>
|
||
<a id="1546" class="Comment">--</a>
|
||
<a id="1549" class="Comment">-- This has two practical benefits. First it speeds up type-checking by</a>
|
||
<a id="1621" class="Comment">-- approximately a factor of 5. Secondly it allows the combinators to be</a>
|
||
<a id="1694" class="Comment">-- used with macros that use reflection, e.g. `Tactic.RingSolver`, where</a>
|
||
<a id="1767" class="Comment">-- they need to be able to extract `y` using reflection.</a>
|
||
|
||
<a id="1825" class="Keyword">infix</a> <a id="1832" class="Number">1</a> <a id="1834" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin_</a>
|
||
<a id="1841" class="Keyword">infixr</a> <a id="1848" class="Number">2</a> <a id="1850" href="Relation.Binary.Reasoning.Base.Single.html#2027" class="Function">step-∼</a> <a id="1857" href="Relation.Binary.Reasoning.Base.Single.html#2191" class="Function">step-≡</a> <a id="1864" href="Relation.Binary.Reasoning.Base.Single.html#2340" class="Function">step-≡˘</a>
|
||
<a id="1872" class="Keyword">infixr</a> <a id="1879" class="Number">2</a> <a id="1881" href="Relation.Binary.Reasoning.Base.Single.html#2479" class="Function Operator">_≡⟨⟩_</a>
|
||
<a id="1887" class="Keyword">infix</a> <a id="1894" class="Number">3</a> <a id="1896" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">_∎</a>
|
||
|
||
<a id="1900" class="Comment">-- Beginning of a proof</a>
|
||
|
||
<a id="begin_"></a><a id="1925" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin_</a> <a id="1932" class="Symbol">:</a> <a id="1934" class="Symbol">∀</a> <a id="1936" class="Symbol">{</a><a id="1937" href="Relation.Binary.Reasoning.Base.Single.html#1937" class="Bound">x</a> <a id="1939" href="Relation.Binary.Reasoning.Base.Single.html#1939" class="Bound">y</a><a id="1940" class="Symbol">}</a> <a id="1942" class="Symbol">→</a> <a id="1944" href="Relation.Binary.Reasoning.Base.Single.html#1937" class="Bound">x</a> <a id="1946" href="Relation.Binary.Reasoning.Base.Single.html#1062" class="Datatype Operator">IsRelatedTo</a> <a id="1958" href="Relation.Binary.Reasoning.Base.Single.html#1939" class="Bound">y</a> <a id="1960" class="Symbol">→</a> <a id="1962" href="Relation.Binary.Reasoning.Base.Single.html#1937" class="Bound">x</a> <a id="1964" href="Relation.Binary.Reasoning.Base.Single.html#386" class="Bound Operator">∼</a> <a id="1966" href="Relation.Binary.Reasoning.Base.Single.html#1939" class="Bound">y</a>
|
||
<a id="1968" href="Relation.Binary.Reasoning.Base.Single.html#1925" class="Function Operator">begin</a> <a id="1974" href="Relation.Binary.Reasoning.Base.Single.html#1102" class="InductiveConstructor">relTo</a> <a id="1980" href="Relation.Binary.Reasoning.Base.Single.html#1980" class="Bound">x∼y</a> <a id="1984" class="Symbol">=</a> <a id="1986" href="Relation.Binary.Reasoning.Base.Single.html#1980" class="Bound">x∼y</a>
|
||
|
||
<a id="1991" class="Comment">-- Standard step with the relation</a>
|
||
|
||
<a id="step-∼"></a><a id="2027" href="Relation.Binary.Reasoning.Base.Single.html#2027" class="Function">step-∼</a> <a id="2034" class="Symbol">:</a> <a id="2036" class="Symbol">∀</a> <a id="2038" href="Relation.Binary.Reasoning.Base.Single.html#2038" class="Bound">x</a> <a id="2040" class="Symbol">{</a><a id="2041" href="Relation.Binary.Reasoning.Base.Single.html#2041" class="Bound">y</a> <a id="2043" href="Relation.Binary.Reasoning.Base.Single.html#2043" class="Bound">z</a><a id="2044" class="Symbol">}</a> <a id="2046" class="Symbol">→</a> <a id="2048" href="Relation.Binary.Reasoning.Base.Single.html#2041" class="Bound">y</a> <a id="2050" href="Relation.Binary.Reasoning.Base.Single.html#1062" class="Datatype Operator">IsRelatedTo</a> <a id="2062" href="Relation.Binary.Reasoning.Base.Single.html#2043" class="Bound">z</a> <a id="2064" class="Symbol">→</a> <a id="2066" href="Relation.Binary.Reasoning.Base.Single.html#2038" class="Bound">x</a> <a id="2068" href="Relation.Binary.Reasoning.Base.Single.html#386" class="Bound Operator">∼</a> <a id="2070" href="Relation.Binary.Reasoning.Base.Single.html#2041" class="Bound">y</a> <a id="2072" class="Symbol">→</a> <a id="2074" href="Relation.Binary.Reasoning.Base.Single.html#2038" class="Bound">x</a> <a id="2076" href="Relation.Binary.Reasoning.Base.Single.html#1062" class="Datatype Operator">IsRelatedTo</a> <a id="2088" href="Relation.Binary.Reasoning.Base.Single.html#2043" class="Bound">z</a>
|
||
<a id="2090" href="Relation.Binary.Reasoning.Base.Single.html#2027" class="Function">step-∼</a> <a id="2097" class="Symbol">_</a> <a id="2099" class="Symbol">(</a><a id="2100" href="Relation.Binary.Reasoning.Base.Single.html#1102" class="InductiveConstructor">relTo</a> <a id="2106" href="Relation.Binary.Reasoning.Base.Single.html#2106" class="Bound">y∼z</a><a id="2109" class="Symbol">)</a> <a id="2111" href="Relation.Binary.Reasoning.Base.Single.html#2111" class="Bound">x∼y</a> <a id="2115" class="Symbol">=</a> <a id="2117" href="Relation.Binary.Reasoning.Base.Single.html#1102" class="InductiveConstructor">relTo</a> <a id="2123" class="Symbol">(</a><a id="2124" href="Relation.Binary.Reasoning.Base.Single.html#427" class="Bound">trans</a> <a id="2130" href="Relation.Binary.Reasoning.Base.Single.html#2111" class="Bound">x∼y</a> <a id="2134" href="Relation.Binary.Reasoning.Base.Single.html#2106" class="Bound">y∼z</a><a id="2137" class="Symbol">)</a>
|
||
|
||
<a id="2140" class="Comment">-- Step with a non-trivial propositional equality</a>
|
||
|
||
<a id="step-≡"></a><a id="2191" href="Relation.Binary.Reasoning.Base.Single.html#2191" class="Function">step-≡</a> <a id="2198" class="Symbol">:</a> <a id="2200" class="Symbol">∀</a> <a id="2202" href="Relation.Binary.Reasoning.Base.Single.html#2202" class="Bound">x</a> <a id="2204" class="Symbol">{</a><a id="2205" href="Relation.Binary.Reasoning.Base.Single.html#2205" class="Bound">y</a> <a id="2207" href="Relation.Binary.Reasoning.Base.Single.html#2207" class="Bound">z</a><a id="2208" class="Symbol">}</a> <a id="2210" class="Symbol">→</a> <a id="2212" href="Relation.Binary.Reasoning.Base.Single.html#2205" class="Bound">y</a> <a id="2214" href="Relation.Binary.Reasoning.Base.Single.html#1062" class="Datatype Operator">IsRelatedTo</a> <a id="2226" href="Relation.Binary.Reasoning.Base.Single.html#2207" class="Bound">z</a> <a id="2228" class="Symbol">→</a> <a id="2230" href="Relation.Binary.Reasoning.Base.Single.html#2202" class="Bound">x</a> <a id="2232" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="2234" href="Relation.Binary.Reasoning.Base.Single.html#2205" class="Bound">y</a> <a id="2236" class="Symbol">→</a> <a id="2238" href="Relation.Binary.Reasoning.Base.Single.html#2202" class="Bound">x</a> <a id="2240" href="Relation.Binary.Reasoning.Base.Single.html#1062" class="Datatype Operator">IsRelatedTo</a> <a id="2252" href="Relation.Binary.Reasoning.Base.Single.html#2207" class="Bound">z</a>
|
||
<a id="2254" href="Relation.Binary.Reasoning.Base.Single.html#2191" class="Function">step-≡</a> <a id="2261" class="Symbol">_</a> <a id="2263" href="Relation.Binary.Reasoning.Base.Single.html#2263" class="Bound">x∼z</a> <a id="2267" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">P.refl</a> <a id="2274" class="Symbol">=</a> <a id="2276" href="Relation.Binary.Reasoning.Base.Single.html#2263" class="Bound">x∼z</a>
|
||
|
||
<a id="2281" class="Comment">-- Step with a flipped non-trivial propositional equality</a>
|
||
|
||
<a id="step-≡˘"></a><a id="2340" href="Relation.Binary.Reasoning.Base.Single.html#2340" class="Function">step-≡˘</a> <a id="2348" class="Symbol">:</a> <a id="2350" class="Symbol">∀</a> <a id="2352" href="Relation.Binary.Reasoning.Base.Single.html#2352" class="Bound">x</a> <a id="2354" class="Symbol">{</a><a id="2355" href="Relation.Binary.Reasoning.Base.Single.html#2355" class="Bound">y</a> <a id="2357" href="Relation.Binary.Reasoning.Base.Single.html#2357" class="Bound">z</a><a id="2358" class="Symbol">}</a> <a id="2360" class="Symbol">→</a> <a id="2362" href="Relation.Binary.Reasoning.Base.Single.html#2355" class="Bound">y</a> <a id="2364" href="Relation.Binary.Reasoning.Base.Single.html#1062" class="Datatype Operator">IsRelatedTo</a> <a id="2376" href="Relation.Binary.Reasoning.Base.Single.html#2357" class="Bound">z</a> <a id="2378" class="Symbol">→</a> <a id="2380" href="Relation.Binary.Reasoning.Base.Single.html#2355" class="Bound">y</a> <a id="2382" href="Agda.Builtin.Equality.html#133" class="Datatype Operator">≡</a> <a id="2384" href="Relation.Binary.Reasoning.Base.Single.html#2352" class="Bound">x</a> <a id="2386" class="Symbol">→</a> <a id="2388" href="Relation.Binary.Reasoning.Base.Single.html#2352" class="Bound">x</a> <a id="2390" href="Relation.Binary.Reasoning.Base.Single.html#1062" class="Datatype Operator">IsRelatedTo</a> <a id="2402" href="Relation.Binary.Reasoning.Base.Single.html#2357" class="Bound">z</a>
|
||
<a id="2404" href="Relation.Binary.Reasoning.Base.Single.html#2340" class="Function">step-≡˘</a> <a id="2412" class="Symbol">_</a> <a id="2414" href="Relation.Binary.Reasoning.Base.Single.html#2414" class="Bound">x∼z</a> <a id="2418" href="Agda.Builtin.Equality.html#190" class="InductiveConstructor">P.refl</a> <a id="2425" class="Symbol">=</a> <a id="2427" href="Relation.Binary.Reasoning.Base.Single.html#2414" class="Bound">x∼z</a>
|
||
|
||
<a id="2432" class="Comment">-- Step with a trivial propositional equality</a>
|
||
|
||
<a id="_≡⟨⟩_"></a><a id="2479" href="Relation.Binary.Reasoning.Base.Single.html#2479" class="Function Operator">_≡⟨⟩_</a> <a id="2485" class="Symbol">:</a> <a id="2487" class="Symbol">∀</a> <a id="2489" href="Relation.Binary.Reasoning.Base.Single.html#2489" class="Bound">x</a> <a id="2491" class="Symbol">{</a><a id="2492" href="Relation.Binary.Reasoning.Base.Single.html#2492" class="Bound">y</a><a id="2493" class="Symbol">}</a> <a id="2495" class="Symbol">→</a> <a id="2497" href="Relation.Binary.Reasoning.Base.Single.html#2489" class="Bound">x</a> <a id="2499" href="Relation.Binary.Reasoning.Base.Single.html#1062" class="Datatype Operator">IsRelatedTo</a> <a id="2511" href="Relation.Binary.Reasoning.Base.Single.html#2492" class="Bound">y</a> <a id="2513" class="Symbol">→</a> <a id="2515" href="Relation.Binary.Reasoning.Base.Single.html#2489" class="Bound">x</a> <a id="2517" href="Relation.Binary.Reasoning.Base.Single.html#1062" class="Datatype Operator">IsRelatedTo</a> <a id="2529" href="Relation.Binary.Reasoning.Base.Single.html#2492" class="Bound">y</a>
|
||
<a id="2531" class="Symbol">_</a> <a id="2533" href="Relation.Binary.Reasoning.Base.Single.html#2479" class="Function Operator">≡⟨⟩</a> <a id="2537" href="Relation.Binary.Reasoning.Base.Single.html#2537" class="Bound">x∼y</a> <a id="2541" class="Symbol">=</a> <a id="2543" href="Relation.Binary.Reasoning.Base.Single.html#2537" class="Bound">x∼y</a>
|
||
|
||
<a id="2548" class="Comment">-- Termination</a>
|
||
|
||
<a id="_∎"></a><a id="2564" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">_∎</a> <a id="2567" class="Symbol">:</a> <a id="2569" class="Symbol">∀</a> <a id="2571" href="Relation.Binary.Reasoning.Base.Single.html#2571" class="Bound">x</a> <a id="2573" class="Symbol">→</a> <a id="2575" href="Relation.Binary.Reasoning.Base.Single.html#2571" class="Bound">x</a> <a id="2577" href="Relation.Binary.Reasoning.Base.Single.html#1062" class="Datatype Operator">IsRelatedTo</a> <a id="2589" href="Relation.Binary.Reasoning.Base.Single.html#2571" class="Bound">x</a>
|
||
<a id="2591" href="Relation.Binary.Reasoning.Base.Single.html#2591" class="Bound">x</a> <a id="2593" href="Relation.Binary.Reasoning.Base.Single.html#2564" class="Function Operator">∎</a> <a id="2595" class="Symbol">=</a> <a id="2597" href="Relation.Binary.Reasoning.Base.Single.html#1102" class="InductiveConstructor">relTo</a> <a id="2603" href="Relation.Binary.Reasoning.Base.Single.html#404" class="Bound">refl</a>
|
||
|
||
<a id="2609" class="Comment">-- Syntax declarations</a>
|
||
|
||
<a id="2633" class="Keyword">syntax</a> <a id="2640" href="Relation.Binary.Reasoning.Base.Single.html#2027" class="Function">step-∼</a> <a id="2648" class="Bound">x</a> <a id="2650" class="Bound">y∼z</a> <a id="2654" class="Bound">x∼y</a> <a id="2658" class="Symbol">=</a> <a id="2660" class="Bound">x</a> <a id="2662" class="Function">∼⟨</a> <a id="2666" class="Bound">x∼y</a> <a id="2670" class="Function">⟩</a> <a id="2672" class="Bound">y∼z</a>
|
||
<a id="2676" class="Keyword">syntax</a> <a id="2683" href="Relation.Binary.Reasoning.Base.Single.html#2191" class="Function">step-≡</a> <a id="2691" class="Bound">x</a> <a id="2693" class="Bound">y≡z</a> <a id="2697" class="Bound">x≡y</a> <a id="2701" class="Symbol">=</a> <a id="2703" class="Bound">x</a> <a id="2705" class="Function">≡⟨</a> <a id="2709" class="Bound">x≡y</a> <a id="2713" class="Function">⟩</a> <a id="2715" class="Bound">y≡z</a>
|
||
<a id="2719" class="Keyword">syntax</a> <a id="2726" href="Relation.Binary.Reasoning.Base.Single.html#2340" class="Function">step-≡˘</a> <a id="2734" class="Bound">x</a> <a id="2736" class="Bound">y≡z</a> <a id="2740" class="Bound">y≡x</a> <a id="2744" class="Symbol">=</a> <a id="2746" class="Bound">x</a> <a id="2748" class="Function">≡˘⟨</a> <a id="2752" class="Bound">y≡x</a> <a id="2756" class="Function">⟩</a> <a id="2758" class="Bound">y≡z</a>
|
||
</pre></body></html> |