From a43bdb46c776cf183181c9a50f3702e1aa15da52 Mon Sep 17 00:00:00 2001 From: Philip Wadler <wadler@inf.ed.ac.uk> Date: Fri, 14 Jul 2017 10:56:59 +0100 Subject: [PATCH] fixed backticks in code spans --- out/Stlc.md | 3586 +++++++++++++------------- out/StlcProp.md | 6108 ++++++++++++++++++++++---------------------- src/Stlc.lagda | 4 +- src/StlcProp.lagda | 4 +- 4 files changed, 4851 insertions(+), 4851 deletions(-) diff --git a/out/Stlc.md b/out/Stlc.md index 5d615dea..97120503 100644 --- a/out/Stlc.md +++ b/out/Stlc.md @@ -366,7 +366,7 @@ And here it is formalised in Agda. </pre> Terms have six constructs. Three are for the core lambda calculus: - * Variables, `\` x` + * Variables, `` ` x `` * Abstractions, `λ[ x ∶ A ] N` * Applications, `L · M` and three are for the base type, booleans: @@ -390,213 +390,213 @@ Here is the syntax of terms in BNF. <pre class="Agda"> -<a name="3420" class="Keyword" +<a name="3423" class="Keyword" >infixl</a - ><a name="3426" - > </a - ><a name="3427" class="Number" - >20</a ><a name="3429" > </a - ><a name="3430" href="Stlc.html#3553" class="InductiveConstructor Operator" + ><a name="3430" class="Number" + >20</a + ><a name="3432" + > </a + ><a name="3433" href="Stlc.html#3556" class="InductiveConstructor Operator" >_·_</a - ><a name="3433" + ><a name="3436" > </a - ><a name="3434" class="Keyword" + ><a name="3437" class="Keyword" >infix</a - ><a name="3439" + ><a name="3442" > </a - ><a name="3441" class="Number" + ><a name="3444" class="Number" >15</a - ><a name="3443" + ><a name="3446" > </a - ><a name="3444" href="Stlc.html#3517" class="InductiveConstructor Operator" + ><a name="3447" href="Stlc.html#3520" class="InductiveConstructor Operator" >λ[_∶_]_</a - ><a name="3451" + ><a name="3454" > </a - ><a name="3452" class="Keyword" + ><a name="3455" class="Keyword" >infix</a - ><a name="3457" + ><a name="3460" > </a - ><a name="3459" class="Number" + ><a name="3462" class="Number" >15</a - ><a name="3461" + ><a name="3464" > </a - ><a name="3462" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="3465" href="Stlc.html#3612" class="InductiveConstructor Operator" >if_then_else_</a - ><a name="3475" + ><a name="3478" > </a - ><a name="3477" class="Keyword" + ><a name="3480" class="Keyword" >data</a - ><a name="3481" + ><a name="3484" > </a - ><a name="3482" href="Stlc.html#3482" class="Datatype" + ><a name="3485" href="Stlc.html#3485" class="Datatype" >Term</a - ><a name="3486" + ><a name="3489" > </a - ><a name="3487" class="Symbol" + ><a name="3490" class="Symbol" >:</a - ><a name="3488" + ><a name="3491" > </a - ><a name="3489" class="PrimitiveType" + ><a name="3492" class="PrimitiveType" >Set</a - ><a name="3492" + ><a name="3495" > </a - ><a name="3493" class="Keyword" + ><a name="3496" class="Keyword" >where</a - ><a name="3498" + ><a name="3501" > </a - ><a name="3501" href="Stlc.html#3501" class="InductiveConstructor" + ><a name="3504" href="Stlc.html#3504" class="InductiveConstructor" >`</a - ><a name="3502" + ><a name="3505" > </a - ><a name="3503" class="Symbol" + ><a name="3506" class="Symbol" >:</a - ><a name="3504" - > </a - ><a name="3505" href="Maps.html#2171" class="Datatype" - >Id</a ><a name="3507" > </a - ><a name="3508" class="Symbol" - >→</a - ><a name="3509" + ><a name="3508" href="Maps.html#2171" class="Datatype" + >Id</a + ><a name="3510" > </a - ><a name="3510" href="Stlc.html#3482" class="Datatype" + ><a name="3511" class="Symbol" + >→</a + ><a name="3512" + > </a + ><a name="3513" href="Stlc.html#3485" class="Datatype" >Term</a - ><a name="3514" + ><a name="3517" > </a - ><a name="3517" href="Stlc.html#3517" class="InductiveConstructor Operator" + ><a name="3520" href="Stlc.html#3520" class="InductiveConstructor Operator" >λ[_∶_]_</a - ><a name="3524" + ><a name="3527" > </a - ><a name="3525" class="Symbol" + ><a name="3528" class="Symbol" >:</a - ><a name="3526" - > </a - ><a name="3527" href="Maps.html#2171" class="Datatype" - >Id</a ><a name="3529" > </a - ><a name="3530" class="Symbol" - >→</a - ><a name="3531" + ><a name="3530" href="Maps.html#2171" class="Datatype" + >Id</a + ><a name="3532" > </a - ><a name="3532" href="Stlc.html#2531" class="Datatype" + ><a name="3533" class="Symbol" + >→</a + ><a name="3534" + > </a + ><a name="3535" href="Stlc.html#2531" class="Datatype" >Type</a - ><a name="3536" + ><a name="3539" > </a - ><a name="3537" class="Symbol" + ><a name="3540" class="Symbol" >→</a - ><a name="3538" + ><a name="3541" > </a - ><a name="3539" href="Stlc.html#3482" class="Datatype" + ><a name="3542" href="Stlc.html#3485" class="Datatype" >Term</a - ><a name="3543" + ><a name="3546" > </a - ><a name="3544" class="Symbol" + ><a name="3547" class="Symbol" >→</a - ><a name="3545" + ><a name="3548" > </a - ><a name="3546" href="Stlc.html#3482" class="Datatype" + ><a name="3549" href="Stlc.html#3485" class="Datatype" >Term</a - ><a name="3550" + ><a name="3553" > </a - ><a name="3553" href="Stlc.html#3553" class="InductiveConstructor Operator" + ><a name="3556" href="Stlc.html#3556" class="InductiveConstructor Operator" >_·_</a - ><a name="3556" + ><a name="3559" > </a - ><a name="3557" class="Symbol" + ><a name="3560" class="Symbol" >:</a - ><a name="3558" + ><a name="3561" > </a - ><a name="3559" href="Stlc.html#3482" class="Datatype" + ><a name="3562" href="Stlc.html#3485" class="Datatype" >Term</a - ><a name="3563" + ><a name="3566" > </a - ><a name="3564" class="Symbol" + ><a name="3567" class="Symbol" >→</a - ><a name="3565" + ><a name="3568" > </a - ><a name="3566" href="Stlc.html#3482" class="Datatype" + ><a name="3569" href="Stlc.html#3485" class="Datatype" >Term</a - ><a name="3570" + ><a name="3573" > </a - ><a name="3571" class="Symbol" + ><a name="3574" class="Symbol" >→</a - ><a name="3572" + ><a name="3575" > </a - ><a name="3573" href="Stlc.html#3482" class="Datatype" + ><a name="3576" href="Stlc.html#3485" class="Datatype" >Term</a - ><a name="3577" + ><a name="3580" > </a - ><a name="3580" href="Stlc.html#3580" class="InductiveConstructor" + ><a name="3583" href="Stlc.html#3583" class="InductiveConstructor" >true</a - ><a name="3584" + ><a name="3587" > </a - ><a name="3585" class="Symbol" + ><a name="3588" class="Symbol" >:</a - ><a name="3586" + ><a name="3589" > </a - ><a name="3587" href="Stlc.html#3482" class="Datatype" + ><a name="3590" href="Stlc.html#3485" class="Datatype" >Term</a - ><a name="3591" + ><a name="3594" > </a - ><a name="3594" href="Stlc.html#3594" class="InductiveConstructor" + ><a name="3597" href="Stlc.html#3597" class="InductiveConstructor" >false</a - ><a name="3599" + ><a name="3602" > </a - ><a name="3600" class="Symbol" + ><a name="3603" class="Symbol" >:</a - ><a name="3601" + ><a name="3604" > </a - ><a name="3602" href="Stlc.html#3482" class="Datatype" + ><a name="3605" href="Stlc.html#3485" class="Datatype" >Term</a - ><a name="3606" + ><a name="3609" > </a - ><a name="3609" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="3612" href="Stlc.html#3612" class="InductiveConstructor Operator" >if_then_else_</a - ><a name="3622" + ><a name="3625" > </a - ><a name="3623" class="Symbol" + ><a name="3626" class="Symbol" >:</a - ><a name="3624" + ><a name="3627" > </a - ><a name="3625" href="Stlc.html#3482" class="Datatype" + ><a name="3628" href="Stlc.html#3485" class="Datatype" >Term</a - ><a name="3629" + ><a name="3632" > </a - ><a name="3630" class="Symbol" + ><a name="3633" class="Symbol" >→</a - ><a name="3631" + ><a name="3634" > </a - ><a name="3632" href="Stlc.html#3482" class="Datatype" + ><a name="3635" href="Stlc.html#3485" class="Datatype" >Term</a - ><a name="3636" + ><a name="3639" > </a - ><a name="3637" class="Symbol" + ><a name="3640" class="Symbol" >→</a - ><a name="3638" + ><a name="3641" > </a - ><a name="3639" href="Stlc.html#3482" class="Datatype" + ><a name="3642" href="Stlc.html#3485" class="Datatype" >Term</a - ><a name="3643" + ><a name="3646" > </a - ><a name="3644" class="Symbol" + ><a name="3647" class="Symbol" >→</a - ><a name="3645" + ><a name="3648" > </a - ><a name="3646" href="Stlc.html#3482" class="Datatype" + ><a name="3649" href="Stlc.html#3485" class="Datatype" >Term</a > @@ -613,225 +613,225 @@ CONTINUE FROM HERE Example terms. <pre class="Agda"> -<a name="3872" href="Stlc.html#3872" class="Function" +<a name="3875" href="Stlc.html#3875" class="Function" >f</a - ><a name="3873" + ><a name="3876" > </a - ><a name="3874" href="Stlc.html#3874" class="Function" + ><a name="3877" href="Stlc.html#3877" class="Function" >x</a - ><a name="3875" + ><a name="3878" > </a - ><a name="3876" class="Symbol" + ><a name="3879" class="Symbol" >:</a - ><a name="3877" - > </a - ><a name="3878" href="Maps.html#2171" class="Datatype" - >Id</a ><a name="3880" + > </a + ><a name="3881" href="Maps.html#2171" class="Datatype" + >Id</a + ><a name="3883" > </a - ><a name="3881" href="Stlc.html#3872" class="Function" + ><a name="3884" href="Stlc.html#3875" class="Function" >f</a - ><a name="3882" - > </a - ><a name="3884" class="Symbol" - >=</a ><a name="3885" > </a - ><a name="3887" href="Maps.html#2188" class="InductiveConstructor" + ><a name="3887" class="Symbol" + >=</a + ><a name="3888" + > </a + ><a name="3890" href="Maps.html#2188" class="InductiveConstructor" >id</a - ><a name="3889" + ><a name="3892" > </a - ><a name="3890" class="Number" + ><a name="3893" class="Number" >0</a - ><a name="3891" + ><a name="3894" > </a - ><a name="3892" href="Stlc.html#3874" class="Function" + ><a name="3895" href="Stlc.html#3877" class="Function" >x</a - ><a name="3893" - > </a - ><a name="3895" class="Symbol" - >=</a ><a name="3896" > </a - ><a name="3898" href="Maps.html#2188" class="InductiveConstructor" + ><a name="3898" class="Symbol" + >=</a + ><a name="3899" + > </a + ><a name="3901" href="Maps.html#2188" class="InductiveConstructor" >id</a - ><a name="3900" + ><a name="3903" > </a - ><a name="3901" class="Number" + ><a name="3904" class="Number" >1</a - ><a name="3902" + ><a name="3905" > </a - ><a name="3904" href="Stlc.html#3904" class="Function" + ><a name="3907" href="Stlc.html#3907" class="Function" >not</a - ><a name="3907" + ><a name="3910" > </a - ><a name="3908" href="Stlc.html#3908" class="Function" + ><a name="3911" href="Stlc.html#3911" class="Function" >two</a - ><a name="3911" + ><a name="3914" > </a - ><a name="3912" class="Symbol" + ><a name="3915" class="Symbol" >:</a - ><a name="3913" + ><a name="3916" > </a - ><a name="3914" href="Stlc.html#3482" class="Datatype" + ><a name="3917" href="Stlc.html#3485" class="Datatype" >Term</a - ><a name="3918" + ><a name="3921" > </a - ><a name="3920" href="Stlc.html#3904" class="Function" + ><a name="3923" href="Stlc.html#3907" class="Function" >not</a - ><a name="3923" + ><a name="3926" > </a - ><a name="3924" class="Symbol" + ><a name="3927" class="Symbol" >=</a - ><a name="3925" + ><a name="3928" > </a - ><a name="3927" href="Stlc.html#3517" class="InductiveConstructor Operator" + ><a name="3930" href="Stlc.html#3520" class="InductiveConstructor Operator" >λ[</a - ><a name="3929" + ><a name="3932" > </a - ><a name="3930" href="Stlc.html#3874" class="Function" + ><a name="3933" href="Stlc.html#3877" class="Function" >x</a - ><a name="3931" + ><a name="3934" > </a - ><a name="3932" href="Stlc.html#3517" class="InductiveConstructor Operator" + ><a name="3935" href="Stlc.html#3520" class="InductiveConstructor Operator" >∶</a - ><a name="3933" + ><a name="3936" > </a - ><a name="3934" href="Stlc.html#2577" class="InductiveConstructor" + ><a name="3937" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a - ><a name="3935" + ><a name="3938" > </a - ><a name="3936" href="Stlc.html#3517" class="InductiveConstructor Operator" + ><a name="3939" href="Stlc.html#3520" class="InductiveConstructor Operator" >]</a - ><a name="3937" + ><a name="3940" > </a - ><a name="3938" class="Symbol" + ><a name="3941" class="Symbol" >(</a - ><a name="3939" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="3942" href="Stlc.html#3612" class="InductiveConstructor Operator" >if</a - ><a name="3941" + ><a name="3944" > </a - ><a name="3942" href="Stlc.html#3501" class="InductiveConstructor" + ><a name="3945" href="Stlc.html#3504" class="InductiveConstructor" >`</a - ><a name="3943" + ><a name="3946" > </a - ><a name="3944" href="Stlc.html#3874" class="Function" + ><a name="3947" href="Stlc.html#3877" class="Function" >x</a - ><a name="3945" + ><a name="3948" > </a - ><a name="3946" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="3949" href="Stlc.html#3612" class="InductiveConstructor Operator" >then</a - ><a name="3950" + ><a name="3953" > </a - ><a name="3951" href="Stlc.html#3594" class="InductiveConstructor" + ><a name="3954" href="Stlc.html#3597" class="InductiveConstructor" >false</a - ><a name="3956" + ><a name="3959" > </a - ><a name="3957" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="3960" href="Stlc.html#3612" class="InductiveConstructor Operator" >else</a - ><a name="3961" + ><a name="3964" > </a - ><a name="3962" href="Stlc.html#3580" class="InductiveConstructor" + ><a name="3965" href="Stlc.html#3583" class="InductiveConstructor" >true</a - ><a name="3966" class="Symbol" + ><a name="3969" class="Symbol" >)</a - ><a name="3967" + ><a name="3970" > </a - ><a name="3968" href="Stlc.html#3908" class="Function" + ><a name="3971" href="Stlc.html#3911" class="Function" >two</a - ><a name="3971" + ><a name="3974" > </a - ><a name="3972" class="Symbol" + ><a name="3975" class="Symbol" >=</a - ><a name="3973" + ><a name="3976" > </a - ><a name="3975" href="Stlc.html#3517" class="InductiveConstructor Operator" + ><a name="3978" href="Stlc.html#3520" class="InductiveConstructor Operator" >λ[</a - ><a name="3977" + ><a name="3980" > </a - ><a name="3978" href="Stlc.html#3872" class="Function" + ><a name="3981" href="Stlc.html#3875" class="Function" >f</a - ><a name="3979" + ><a name="3982" > </a - ><a name="3980" href="Stlc.html#3517" class="InductiveConstructor Operator" + ><a name="3983" href="Stlc.html#3520" class="InductiveConstructor Operator" >∶</a - ><a name="3981" + ><a name="3984" > </a - ><a name="3982" href="Stlc.html#2577" class="InductiveConstructor" + ><a name="3985" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a - ><a name="3983" + ><a name="3986" > </a - ><a name="3984" href="Stlc.html#2550" class="InductiveConstructor Operator" + ><a name="3987" href="Stlc.html#2550" class="InductiveConstructor Operator" >⇒</a - ><a name="3985" + ><a name="3988" > </a - ><a name="3986" href="Stlc.html#2577" class="InductiveConstructor" + ><a name="3989" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a - ><a name="3987" + ><a name="3990" > </a - ><a name="3988" href="Stlc.html#3517" class="InductiveConstructor Operator" + ><a name="3991" href="Stlc.html#3520" class="InductiveConstructor Operator" >]</a - ><a name="3989" - > </a - ><a name="3990" href="Stlc.html#3517" class="InductiveConstructor Operator" - >λ[</a ><a name="3992" > </a - ><a name="3993" href="Stlc.html#3874" class="Function" + ><a name="3993" href="Stlc.html#3520" class="InductiveConstructor Operator" + >λ[</a + ><a name="3995" + > </a + ><a name="3996" href="Stlc.html#3877" class="Function" >x</a - ><a name="3994" + ><a name="3997" > </a - ><a name="3995" href="Stlc.html#3517" class="InductiveConstructor Operator" + ><a name="3998" href="Stlc.html#3520" class="InductiveConstructor Operator" >∶</a - ><a name="3996" + ><a name="3999" > </a - ><a name="3997" href="Stlc.html#2577" class="InductiveConstructor" + ><a name="4000" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a - ><a name="3998" + ><a name="4001" > </a - ><a name="3999" href="Stlc.html#3517" class="InductiveConstructor Operator" + ><a name="4002" href="Stlc.html#3520" class="InductiveConstructor Operator" >]</a - ><a name="4000" + ><a name="4003" > </a - ><a name="4001" href="Stlc.html#3501" class="InductiveConstructor" + ><a name="4004" href="Stlc.html#3504" class="InductiveConstructor" >`</a - ><a name="4002" + ><a name="4005" > </a - ><a name="4003" href="Stlc.html#3872" class="Function" + ><a name="4006" href="Stlc.html#3875" class="Function" >f</a - ><a name="4004" + ><a name="4007" > </a - ><a name="4005" href="Stlc.html#3553" class="InductiveConstructor Operator" + ><a name="4008" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a - ><a name="4006" - > </a - ><a name="4007" class="Symbol" - >(</a - ><a name="4008" href="Stlc.html#3501" class="InductiveConstructor" - >`</a ><a name="4009" > </a - ><a name="4010" href="Stlc.html#3872" class="Function" - >f</a - ><a name="4011" - > </a - ><a name="4012" href="Stlc.html#3553" class="InductiveConstructor Operator" - >·</a - ><a name="4013" - > </a - ><a name="4014" href="Stlc.html#3501" class="InductiveConstructor" + ><a name="4010" class="Symbol" + >(</a + ><a name="4011" href="Stlc.html#3504" class="InductiveConstructor" >`</a - ><a name="4015" + ><a name="4012" > </a - ><a name="4016" href="Stlc.html#3874" class="Function" + ><a name="4013" href="Stlc.html#3875" class="Function" + >f</a + ><a name="4014" + > </a + ><a name="4015" href="Stlc.html#3556" class="InductiveConstructor Operator" + >·</a + ><a name="4016" + > </a + ><a name="4017" href="Stlc.html#3504" class="InductiveConstructor" + >`</a + ><a name="4018" + > </a + ><a name="4019" href="Stlc.html#3877" class="Function" >x</a - ><a name="4017" class="Symbol" + ><a name="4020" class="Symbol" >)</a > @@ -841,130 +841,130 @@ Example terms. <pre class="Agda"> -<a name="4055" class="Keyword" +<a name="4058" class="Keyword" >data</a - ><a name="4059" + ><a name="4062" > </a - ><a name="4060" href="Stlc.html#4060" class="Datatype" + ><a name="4063" href="Stlc.html#4063" class="Datatype" >Value</a - ><a name="4065" + ><a name="4068" > </a - ><a name="4066" class="Symbol" + ><a name="4069" class="Symbol" >:</a - ><a name="4067" + ><a name="4070" > </a - ><a name="4068" href="Stlc.html#3482" class="Datatype" + ><a name="4071" href="Stlc.html#3485" class="Datatype" >Term</a - ><a name="4072" + ><a name="4075" > </a - ><a name="4073" class="Symbol" + ><a name="4076" class="Symbol" >→</a - ><a name="4074" + ><a name="4077" > </a - ><a name="4075" class="PrimitiveType" + ><a name="4078" class="PrimitiveType" >Set</a - ><a name="4078" + ><a name="4081" > </a - ><a name="4079" class="Keyword" + ><a name="4082" class="Keyword" >where</a - ><a name="4084" + ><a name="4087" > </a - ><a name="4087" href="Stlc.html#4087" class="InductiveConstructor" + ><a name="4090" href="Stlc.html#4090" class="InductiveConstructor" >value-λ</a - ><a name="4094" + ><a name="4097" > </a - ><a name="4099" class="Symbol" + ><a name="4102" class="Symbol" >:</a - ><a name="4100" + ><a name="4103" > </a - ><a name="4101" class="Symbol" + ><a name="4104" class="Symbol" >∀</a - ><a name="4102" - > </a - ><a name="4103" class="Symbol" - >{</a - ><a name="4104" href="Stlc.html#4104" class="Bound" - >x</a ><a name="4105" > </a - ><a name="4106" href="Stlc.html#4106" class="Bound" - >A</a - ><a name="4107" + ><a name="4106" class="Symbol" + >{</a + ><a name="4107" href="Stlc.html#4107" class="Bound" + >x</a + ><a name="4108" > </a - ><a name="4108" href="Stlc.html#4108" class="Bound" - >N</a - ><a name="4109" class="Symbol" - >}</a + ><a name="4109" href="Stlc.html#4109" class="Bound" + >A</a ><a name="4110" > </a - ><a name="4111" class="Symbol" - >→</a - ><a name="4112" - > </a - ><a name="4113" href="Stlc.html#4060" class="Datatype" - >Value</a - ><a name="4118" - > </a - ><a name="4119" class="Symbol" - >(</a - ><a name="4120" href="Stlc.html#3517" class="InductiveConstructor Operator" - >λ[</a - ><a name="4122" - > </a - ><a name="4123" href="Stlc.html#4104" class="Bound" - >x</a - ><a name="4124" - > </a - ><a name="4125" href="Stlc.html#3517" class="InductiveConstructor Operator" - >∶</a - ><a name="4126" - > </a - ><a name="4127" href="Stlc.html#4106" class="Bound" - >A</a - ><a name="4128" - > </a - ><a name="4129" href="Stlc.html#3517" class="InductiveConstructor Operator" - >]</a - ><a name="4130" - > </a - ><a name="4131" href="Stlc.html#4108" class="Bound" + ><a name="4111" href="Stlc.html#4111" class="Bound" >N</a - ><a name="4132" class="Symbol" - >)</a + ><a name="4112" class="Symbol" + >}</a + ><a name="4113" + > </a + ><a name="4114" class="Symbol" + >→</a + ><a name="4115" + > </a + ><a name="4116" href="Stlc.html#4063" class="Datatype" + >Value</a + ><a name="4121" + > </a + ><a name="4122" class="Symbol" + >(</a + ><a name="4123" href="Stlc.html#3520" class="InductiveConstructor Operator" + >λ[</a + ><a name="4125" + > </a + ><a name="4126" href="Stlc.html#4107" class="Bound" + >x</a + ><a name="4127" + > </a + ><a name="4128" href="Stlc.html#3520" class="InductiveConstructor Operator" + >∶</a + ><a name="4129" + > </a + ><a name="4130" href="Stlc.html#4109" class="Bound" + >A</a + ><a name="4131" + > </a + ><a name="4132" href="Stlc.html#3520" class="InductiveConstructor Operator" + >]</a ><a name="4133" + > </a + ><a name="4134" href="Stlc.html#4111" class="Bound" + >N</a + ><a name="4135" class="Symbol" + >)</a + ><a name="4136" > </a - ><a name="4136" href="Stlc.html#4136" class="InductiveConstructor" + ><a name="4139" href="Stlc.html#4139" class="InductiveConstructor" >value-true</a - ><a name="4146" - > </a - ><a name="4148" class="Symbol" - >:</a ><a name="4149" + > </a + ><a name="4151" class="Symbol" + >:</a + ><a name="4152" > </a - ><a name="4150" href="Stlc.html#4060" class="Datatype" + ><a name="4153" href="Stlc.html#4063" class="Datatype" >Value</a - ><a name="4155" + ><a name="4158" > </a - ><a name="4156" href="Stlc.html#3580" class="InductiveConstructor" + ><a name="4159" href="Stlc.html#3583" class="InductiveConstructor" >true</a - ><a name="4160" + ><a name="4163" > </a - ><a name="4163" href="Stlc.html#4163" class="InductiveConstructor" + ><a name="4166" href="Stlc.html#4166" class="InductiveConstructor" >value-false</a - ><a name="4174" + ><a name="4177" > </a - ><a name="4175" class="Symbol" + ><a name="4178" class="Symbol" >:</a - ><a name="4176" + ><a name="4179" > </a - ><a name="4177" href="Stlc.html#4060" class="Datatype" + ><a name="4180" href="Stlc.html#4063" class="Datatype" >Value</a - ><a name="4182" + ><a name="4185" > </a - ><a name="4183" href="Stlc.html#3594" class="InductiveConstructor" + ><a name="4186" href="Stlc.html#3597" class="InductiveConstructor" >false</a > @@ -974,645 +974,645 @@ Example terms. <pre class="Agda"> -<a name="4231" href="Stlc.html#4231" class="Function Operator" +<a name="4234" href="Stlc.html#4234" class="Function Operator" >_[_:=_]</a - ><a name="4238" + ><a name="4241" > </a - ><a name="4239" class="Symbol" + ><a name="4242" class="Symbol" >:</a - ><a name="4240" + ><a name="4243" > </a - ><a name="4241" href="Stlc.html#3482" class="Datatype" + ><a name="4244" href="Stlc.html#3485" class="Datatype" >Term</a - ><a name="4245" + ><a name="4248" > </a - ><a name="4246" class="Symbol" + ><a name="4249" class="Symbol" >→</a - ><a name="4247" - > </a - ><a name="4248" href="Maps.html#2171" class="Datatype" - >Id</a ><a name="4250" > </a - ><a name="4251" class="Symbol" + ><a name="4251" href="Maps.html#2171" class="Datatype" + >Id</a + ><a name="4253" + > </a + ><a name="4254" class="Symbol" >→</a - ><a name="4252" + ><a name="4255" > </a - ><a name="4253" href="Stlc.html#3482" class="Datatype" + ><a name="4256" href="Stlc.html#3485" class="Datatype" >Term</a - ><a name="4257" + ><a name="4260" > </a - ><a name="4258" class="Symbol" + ><a name="4261" class="Symbol" >→</a - ><a name="4259" + ><a name="4262" > </a - ><a name="4260" href="Stlc.html#3482" class="Datatype" + ><a name="4263" href="Stlc.html#3485" class="Datatype" >Term</a - ><a name="4264" + ><a name="4267" > </a - ><a name="4265" class="Symbol" + ><a name="4268" class="Symbol" >(</a - ><a name="4266" href="Stlc.html#3501" class="InductiveConstructor" + ><a name="4269" href="Stlc.html#3504" class="InductiveConstructor" >`</a - ><a name="4267" + ><a name="4270" > </a - ><a name="4268" href="Stlc.html#4268" class="Bound" + ><a name="4271" href="Stlc.html#4271" class="Bound" >x′</a - ><a name="4270" class="Symbol" + ><a name="4273" class="Symbol" >)</a - ><a name="4271" + ><a name="4274" > </a - ><a name="4272" href="Stlc.html#4231" class="Function Operator" + ><a name="4275" href="Stlc.html#4234" class="Function Operator" >[</a - ><a name="4273" + ><a name="4276" > </a - ><a name="4274" href="Stlc.html#4274" class="Bound" + ><a name="4277" href="Stlc.html#4277" class="Bound" >x</a - ><a name="4275" - > </a - ><a name="4276" href="Stlc.html#4231" class="Function Operator" - >:=</a ><a name="4278" > </a - ><a name="4279" href="Stlc.html#4279" class="Bound" - >V</a - ><a name="4280" + ><a name="4279" href="Stlc.html#4234" class="Function Operator" + >:=</a + ><a name="4281" > </a - ><a name="4281" href="Stlc.html#4231" class="Function Operator" + ><a name="4282" href="Stlc.html#4282" class="Bound" + >V</a + ><a name="4283" + > </a + ><a name="4284" href="Stlc.html#4234" class="Function Operator" >]</a - ><a name="4282" + ><a name="4285" > </a - ><a name="4283" class="Keyword" + ><a name="4286" class="Keyword" >with</a - ><a name="4287" + ><a name="4290" > </a - ><a name="4288" href="Stlc.html#4274" class="Bound" + ><a name="4291" href="Stlc.html#4277" class="Bound" >x</a - ><a name="4289" + ><a name="4292" > </a - ><a name="4290" href="Maps.html#2509" class="Function Operator" + ><a name="4293" href="Maps.html#2509" class="Function Operator" >≟</a - ><a name="4291" - > </a - ><a name="4292" href="Stlc.html#4268" class="Bound" - >x′</a ><a name="4294" + > </a + ><a name="4295" href="Stlc.html#4271" class="Bound" + >x′</a + ><a name="4297" > </a - ><a name="4295" class="Symbol" + ><a name="4298" class="Symbol" >...</a - ><a name="4298" + ><a name="4301" > </a - ><a name="4299" class="Symbol" + ><a name="4302" class="Symbol" >|</a - ><a name="4300" + ><a name="4303" > </a - ><a name="4301" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#520" class="InductiveConstructor" + ><a name="4304" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#520" class="InductiveConstructor" >yes</a - ><a name="4304" + ><a name="4307" > </a - ><a name="4305" class="Symbol" + ><a name="4308" class="Symbol" >_</a - ><a name="4306" + ><a name="4309" > </a - ><a name="4307" class="Symbol" + ><a name="4310" class="Symbol" >=</a - ><a name="4308" + ><a name="4311" > </a - ><a name="4309" href="Stlc.html#4279" class="Bound" + ><a name="4312" href="Stlc.html#4282" class="Bound" >V</a - ><a name="4310" + ><a name="4313" > </a - ><a name="4311" class="Symbol" + ><a name="4314" class="Symbol" >...</a - ><a name="4314" + ><a name="4317" > </a - ><a name="4315" class="Symbol" + ><a name="4318" class="Symbol" >|</a - ><a name="4316" - > </a - ><a name="4317" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#547" class="InductiveConstructor" - >no</a ><a name="4319" - > </a - ><a name="4321" class="Symbol" - >_</a + > </a + ><a name="4320" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#547" class="InductiveConstructor" + >no</a ><a name="4322" + > </a + ><a name="4324" class="Symbol" + >_</a + ><a name="4325" > </a - ><a name="4323" class="Symbol" + ><a name="4326" class="Symbol" >=</a - ><a name="4324" + ><a name="4327" > </a - ><a name="4325" href="Stlc.html#3501" class="InductiveConstructor" + ><a name="4328" href="Stlc.html#3504" class="InductiveConstructor" >`</a - ><a name="4326" - > </a - ><a name="4327" href="Stlc.html#4268" class="Bound" - >x′</a ><a name="4329" + > </a + ><a name="4330" href="Stlc.html#4271" class="Bound" + >x′</a + ><a name="4332" > </a - ><a name="4330" class="Symbol" + ><a name="4333" class="Symbol" >(</a - ><a name="4331" href="Stlc.html#3517" class="InductiveConstructor Operator" + ><a name="4334" href="Stlc.html#3520" class="InductiveConstructor Operator" >λ[</a - ><a name="4333" - > </a - ><a name="4334" href="Stlc.html#4334" class="Bound" - >x′</a ><a name="4336" > </a - ><a name="4337" href="Stlc.html#3517" class="InductiveConstructor Operator" - >∶</a - ><a name="4338" + ><a name="4337" href="Stlc.html#4337" class="Bound" + >x′</a + ><a name="4339" > </a - ><a name="4339" href="Stlc.html#4339" class="Bound" - >A′</a + ><a name="4340" href="Stlc.html#3520" class="InductiveConstructor Operator" + >∶</a ><a name="4341" > </a - ><a name="4342" href="Stlc.html#3517" class="InductiveConstructor Operator" + ><a name="4342" href="Stlc.html#4342" class="Bound" + >A′</a + ><a name="4344" + > </a + ><a name="4345" href="Stlc.html#3520" class="InductiveConstructor Operator" >]</a - ><a name="4343" + ><a name="4346" > </a - ><a name="4344" href="Stlc.html#4344" class="Bound" + ><a name="4347" href="Stlc.html#4347" class="Bound" >N′</a - ><a name="4346" class="Symbol" + ><a name="4349" class="Symbol" >)</a - ><a name="4347" + ><a name="4350" > </a - ><a name="4348" href="Stlc.html#4231" class="Function Operator" + ><a name="4351" href="Stlc.html#4234" class="Function Operator" >[</a - ><a name="4349" + ><a name="4352" > </a - ><a name="4350" href="Stlc.html#4350" class="Bound" + ><a name="4353" href="Stlc.html#4353" class="Bound" >x</a - ><a name="4351" - > </a - ><a name="4352" href="Stlc.html#4231" class="Function Operator" - >:=</a ><a name="4354" > </a - ><a name="4355" href="Stlc.html#4355" class="Bound" + ><a name="4355" href="Stlc.html#4234" class="Function Operator" + >:=</a + ><a name="4357" + > </a + ><a name="4358" href="Stlc.html#4358" class="Bound" >V</a - ><a name="4356" + ><a name="4359" > </a - ><a name="4357" href="Stlc.html#4231" class="Function Operator" + ><a name="4360" href="Stlc.html#4234" class="Function Operator" >]</a - ><a name="4358" + ><a name="4361" > </a - ><a name="4359" class="Keyword" + ><a name="4362" class="Keyword" >with</a - ><a name="4363" + ><a name="4366" > </a - ><a name="4364" href="Stlc.html#4350" class="Bound" + ><a name="4367" href="Stlc.html#4353" class="Bound" >x</a - ><a name="4365" + ><a name="4368" > </a - ><a name="4366" href="Maps.html#2509" class="Function Operator" + ><a name="4369" href="Maps.html#2509" class="Function Operator" >≟</a - ><a name="4367" - > </a - ><a name="4368" href="Stlc.html#4334" class="Bound" - >x′</a ><a name="4370" + > </a + ><a name="4371" href="Stlc.html#4337" class="Bound" + >x′</a + ><a name="4373" > </a - ><a name="4371" class="Symbol" + ><a name="4374" class="Symbol" >...</a - ><a name="4374" + ><a name="4377" > </a - ><a name="4375" class="Symbol" + ><a name="4378" class="Symbol" >|</a - ><a name="4376" + ><a name="4379" > </a - ><a name="4377" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#520" class="InductiveConstructor" + ><a name="4380" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#520" class="InductiveConstructor" >yes</a - ><a name="4380" + ><a name="4383" > </a - ><a name="4381" class="Symbol" + ><a name="4384" class="Symbol" >_</a - ><a name="4382" + ><a name="4385" > </a - ><a name="4383" class="Symbol" + ><a name="4386" class="Symbol" >=</a - ><a name="4384" - > </a - ><a name="4385" href="Stlc.html#3517" class="InductiveConstructor Operator" - >λ[</a ><a name="4387" > </a - ><a name="4388" href="Stlc.html#4334" class="Bound" - >x′</a + ><a name="4388" href="Stlc.html#3520" class="InductiveConstructor Operator" + >λ[</a ><a name="4390" > </a - ><a name="4391" href="Stlc.html#3517" class="InductiveConstructor Operator" - >∶</a - ><a name="4392" + ><a name="4391" href="Stlc.html#4337" class="Bound" + >x′</a + ><a name="4393" > </a - ><a name="4393" href="Stlc.html#4339" class="Bound" - >A′</a + ><a name="4394" href="Stlc.html#3520" class="InductiveConstructor Operator" + >∶</a ><a name="4395" > </a - ><a name="4396" href="Stlc.html#3517" class="InductiveConstructor Operator" - >]</a - ><a name="4397" + ><a name="4396" href="Stlc.html#4342" class="Bound" + >A′</a + ><a name="4398" > </a - ><a name="4398" href="Stlc.html#4344" class="Bound" - >N′</a + ><a name="4399" href="Stlc.html#3520" class="InductiveConstructor Operator" + >]</a ><a name="4400" + > </a + ><a name="4401" href="Stlc.html#4347" class="Bound" + >N′</a + ><a name="4403" > </a - ><a name="4401" class="Symbol" + ><a name="4404" class="Symbol" >...</a - ><a name="4404" + ><a name="4407" > </a - ><a name="4405" class="Symbol" + ><a name="4408" class="Symbol" >|</a - ><a name="4406" - > </a - ><a name="4407" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#547" class="InductiveConstructor" - >no</a ><a name="4409" - > </a - ><a name="4411" class="Symbol" - >_</a + > </a + ><a name="4410" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#547" class="InductiveConstructor" + >no</a ><a name="4412" + > </a + ><a name="4414" class="Symbol" + >_</a + ><a name="4415" > </a - ><a name="4413" class="Symbol" + ><a name="4416" class="Symbol" >=</a - ><a name="4414" - > </a - ><a name="4415" href="Stlc.html#3517" class="InductiveConstructor Operator" - >λ[</a ><a name="4417" > </a - ><a name="4418" href="Stlc.html#4334" class="Bound" - >x′</a + ><a name="4418" href="Stlc.html#3520" class="InductiveConstructor Operator" + >λ[</a ><a name="4420" > </a - ><a name="4421" href="Stlc.html#3517" class="InductiveConstructor Operator" - >∶</a - ><a name="4422" + ><a name="4421" href="Stlc.html#4337" class="Bound" + >x′</a + ><a name="4423" > </a - ><a name="4423" href="Stlc.html#4339" class="Bound" - >A′</a + ><a name="4424" href="Stlc.html#3520" class="InductiveConstructor Operator" + >∶</a ><a name="4425" > </a - ><a name="4426" href="Stlc.html#3517" class="InductiveConstructor Operator" + ><a name="4426" href="Stlc.html#4342" class="Bound" + >A′</a + ><a name="4428" + > </a + ><a name="4429" href="Stlc.html#3520" class="InductiveConstructor Operator" >]</a - ><a name="4427" + ><a name="4430" > </a - ><a name="4428" class="Symbol" + ><a name="4431" class="Symbol" >(</a - ><a name="4429" href="Stlc.html#4344" class="Bound" + ><a name="4432" href="Stlc.html#4347" class="Bound" >N′</a - ><a name="4431" + ><a name="4434" > </a - ><a name="4432" href="Stlc.html#4231" class="Function Operator" + ><a name="4435" href="Stlc.html#4234" class="Function Operator" >[</a - ><a name="4433" + ><a name="4436" > </a - ><a name="4434" href="Stlc.html#4350" class="Bound" + ><a name="4437" href="Stlc.html#4353" class="Bound" >x</a - ><a name="4435" - > </a - ><a name="4436" href="Stlc.html#4231" class="Function Operator" - >:=</a ><a name="4438" > </a - ><a name="4439" href="Stlc.html#4355" class="Bound" - >V</a - ><a name="4440" + ><a name="4439" href="Stlc.html#4234" class="Function Operator" + >:=</a + ><a name="4441" > </a - ><a name="4441" href="Stlc.html#4231" class="Function Operator" - >]</a - ><a name="4442" class="Symbol" - >)</a + ><a name="4442" href="Stlc.html#4358" class="Bound" + >V</a ><a name="4443" + > </a + ><a name="4444" href="Stlc.html#4234" class="Function Operator" + >]</a + ><a name="4445" class="Symbol" + >)</a + ><a name="4446" > </a - ><a name="4444" class="Symbol" + ><a name="4447" class="Symbol" >(</a - ><a name="4445" href="Stlc.html#4445" class="Bound" + ><a name="4448" href="Stlc.html#4448" class="Bound" >L′</a - ><a name="4447" + ><a name="4450" > </a - ><a name="4448" href="Stlc.html#3553" class="InductiveConstructor Operator" + ><a name="4451" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a - ><a name="4449" + ><a name="4452" > </a - ><a name="4450" href="Stlc.html#4450" class="Bound" + ><a name="4453" href="Stlc.html#4453" class="Bound" >M′</a - ><a name="4452" class="Symbol" + ><a name="4455" class="Symbol" >)</a - ><a name="4453" + ><a name="4456" > </a - ><a name="4454" href="Stlc.html#4231" class="Function Operator" + ><a name="4457" href="Stlc.html#4234" class="Function Operator" >[</a - ><a name="4455" + ><a name="4458" > </a - ><a name="4456" href="Stlc.html#4456" class="Bound" + ><a name="4459" href="Stlc.html#4459" class="Bound" >x</a - ><a name="4457" - > </a - ><a name="4458" href="Stlc.html#4231" class="Function Operator" - >:=</a ><a name="4460" > </a - ><a name="4461" href="Stlc.html#4461" class="Bound" - >V</a - ><a name="4462" - > </a - ><a name="4463" href="Stlc.html#4231" class="Function Operator" - >]</a - ><a name="4464" - > </a - ><a name="4465" class="Symbol" - >=</a - ><a name="4466" - > </a - ><a name="4468" class="Symbol" - >(</a - ><a name="4469" href="Stlc.html#4445" class="Bound" - >L′</a - ><a name="4471" - > </a - ><a name="4472" href="Stlc.html#4231" class="Function Operator" - >[</a - ><a name="4473" - > </a - ><a name="4474" href="Stlc.html#4456" class="Bound" - >x</a - ><a name="4475" - > </a - ><a name="4476" href="Stlc.html#4231" class="Function Operator" + ><a name="4461" href="Stlc.html#4234" class="Function Operator" >:=</a + ><a name="4463" + > </a + ><a name="4464" href="Stlc.html#4464" class="Bound" + >V</a + ><a name="4465" + > </a + ><a name="4466" href="Stlc.html#4234" class="Function Operator" + >]</a + ><a name="4467" + > </a + ><a name="4468" class="Symbol" + >=</a + ><a name="4469" + > </a + ><a name="4471" class="Symbol" + >(</a + ><a name="4472" href="Stlc.html#4448" class="Bound" + >L′</a + ><a name="4474" + > </a + ><a name="4475" href="Stlc.html#4234" class="Function Operator" + >[</a + ><a name="4476" + > </a + ><a name="4477" href="Stlc.html#4459" class="Bound" + >x</a ><a name="4478" > </a - ><a name="4479" href="Stlc.html#4461" class="Bound" - >V</a - ><a name="4480" + ><a name="4479" href="Stlc.html#4234" class="Function Operator" + >:=</a + ><a name="4481" > </a - ><a name="4481" href="Stlc.html#4231" class="Function Operator" - >]</a - ><a name="4482" class="Symbol" - >)</a + ><a name="4482" href="Stlc.html#4464" class="Bound" + >V</a ><a name="4483" > </a - ><a name="4484" href="Stlc.html#3553" class="InductiveConstructor Operator" + ><a name="4484" href="Stlc.html#4234" class="Function Operator" + >]</a + ><a name="4485" class="Symbol" + >)</a + ><a name="4486" + > </a + ><a name="4487" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a - ><a name="4485" + ><a name="4488" > </a - ><a name="4486" class="Symbol" + ><a name="4489" class="Symbol" >(</a - ><a name="4487" href="Stlc.html#4450" class="Bound" + ><a name="4490" href="Stlc.html#4453" class="Bound" >M′</a - ><a name="4489" + ><a name="4492" > </a - ><a name="4490" href="Stlc.html#4231" class="Function Operator" + ><a name="4493" href="Stlc.html#4234" class="Function Operator" >[</a - ><a name="4491" + ><a name="4494" > </a - ><a name="4492" href="Stlc.html#4456" class="Bound" + ><a name="4495" href="Stlc.html#4459" class="Bound" >x</a - ><a name="4493" - > </a - ><a name="4494" href="Stlc.html#4231" class="Function Operator" - >:=</a ><a name="4496" > </a - ><a name="4497" href="Stlc.html#4461" class="Bound" - >V</a - ><a name="4498" + ><a name="4497" href="Stlc.html#4234" class="Function Operator" + >:=</a + ><a name="4499" > </a - ><a name="4499" href="Stlc.html#4231" class="Function Operator" - >]</a - ><a name="4500" class="Symbol" - >)</a + ><a name="4500" href="Stlc.html#4464" class="Bound" + >V</a ><a name="4501" + > </a + ><a name="4502" href="Stlc.html#4234" class="Function Operator" + >]</a + ><a name="4503" class="Symbol" + >)</a + ><a name="4504" > </a - ><a name="4502" class="Symbol" + ><a name="4505" class="Symbol" >(</a - ><a name="4503" href="Stlc.html#3580" class="InductiveConstructor" + ><a name="4506" href="Stlc.html#3583" class="InductiveConstructor" >true</a - ><a name="4507" class="Symbol" + ><a name="4510" class="Symbol" >)</a - ><a name="4508" + ><a name="4511" > </a - ><a name="4509" href="Stlc.html#4231" class="Function Operator" + ><a name="4512" href="Stlc.html#4234" class="Function Operator" >[</a - ><a name="4510" + ><a name="4513" > </a - ><a name="4511" href="Stlc.html#4511" class="Bound" + ><a name="4514" href="Stlc.html#4514" class="Bound" >x</a - ><a name="4512" - > </a - ><a name="4513" href="Stlc.html#4231" class="Function Operator" - >:=</a ><a name="4515" > </a - ><a name="4516" href="Stlc.html#4516" class="Bound" + ><a name="4516" href="Stlc.html#4234" class="Function Operator" + >:=</a + ><a name="4518" + > </a + ><a name="4519" href="Stlc.html#4519" class="Bound" >V</a - ><a name="4517" + ><a name="4520" > </a - ><a name="4518" href="Stlc.html#4231" class="Function Operator" + ><a name="4521" href="Stlc.html#4234" class="Function Operator" >]</a - ><a name="4519" + ><a name="4522" > </a - ><a name="4520" class="Symbol" + ><a name="4523" class="Symbol" >=</a - ><a name="4521" + ><a name="4524" > </a - ><a name="4522" href="Stlc.html#3580" class="InductiveConstructor" + ><a name="4525" href="Stlc.html#3583" class="InductiveConstructor" >true</a - ><a name="4526" + ><a name="4529" > </a - ><a name="4527" class="Symbol" + ><a name="4530" class="Symbol" >(</a - ><a name="4528" href="Stlc.html#3594" class="InductiveConstructor" + ><a name="4531" href="Stlc.html#3597" class="InductiveConstructor" >false</a - ><a name="4533" class="Symbol" + ><a name="4536" class="Symbol" >)</a - ><a name="4534" + ><a name="4537" > </a - ><a name="4535" href="Stlc.html#4231" class="Function Operator" + ><a name="4538" href="Stlc.html#4234" class="Function Operator" >[</a - ><a name="4536" + ><a name="4539" > </a - ><a name="4537" href="Stlc.html#4537" class="Bound" + ><a name="4540" href="Stlc.html#4540" class="Bound" >x</a - ><a name="4538" - > </a - ><a name="4539" href="Stlc.html#4231" class="Function Operator" - >:=</a ><a name="4541" > </a - ><a name="4542" href="Stlc.html#4542" class="Bound" + ><a name="4542" href="Stlc.html#4234" class="Function Operator" + >:=</a + ><a name="4544" + > </a + ><a name="4545" href="Stlc.html#4545" class="Bound" >V</a - ><a name="4543" + ><a name="4546" > </a - ><a name="4544" href="Stlc.html#4231" class="Function Operator" + ><a name="4547" href="Stlc.html#4234" class="Function Operator" >]</a - ><a name="4545" + ><a name="4548" > </a - ><a name="4546" class="Symbol" + ><a name="4549" class="Symbol" >=</a - ><a name="4547" + ><a name="4550" > </a - ><a name="4548" href="Stlc.html#3594" class="InductiveConstructor" + ><a name="4551" href="Stlc.html#3597" class="InductiveConstructor" >false</a - ><a name="4553" + ><a name="4556" > </a - ><a name="4554" class="Symbol" + ><a name="4557" class="Symbol" >(</a - ><a name="4555" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="4558" href="Stlc.html#3612" class="InductiveConstructor Operator" >if</a - ><a name="4557" - > </a - ><a name="4558" href="Stlc.html#4558" class="Bound" - >L′</a ><a name="4560" > </a - ><a name="4561" href="Stlc.html#3609" class="InductiveConstructor Operator" - >then</a - ><a name="4565" + ><a name="4561" href="Stlc.html#4561" class="Bound" + >L′</a + ><a name="4563" > </a - ><a name="4566" href="Stlc.html#4566" class="Bound" - >M′</a + ><a name="4564" href="Stlc.html#3612" class="InductiveConstructor Operator" + >then</a ><a name="4568" > </a - ><a name="4569" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="4569" href="Stlc.html#4569" class="Bound" + >M′</a + ><a name="4571" + > </a + ><a name="4572" href="Stlc.html#3612" class="InductiveConstructor Operator" >else</a - ><a name="4573" + ><a name="4576" > </a - ><a name="4574" href="Stlc.html#4574" class="Bound" + ><a name="4577" href="Stlc.html#4577" class="Bound" >N′</a - ><a name="4576" class="Symbol" + ><a name="4579" class="Symbol" >)</a - ><a name="4577" + ><a name="4580" > </a - ><a name="4578" href="Stlc.html#4231" class="Function Operator" + ><a name="4581" href="Stlc.html#4234" class="Function Operator" >[</a - ><a name="4579" + ><a name="4582" > </a - ><a name="4580" href="Stlc.html#4580" class="Bound" + ><a name="4583" href="Stlc.html#4583" class="Bound" >x</a - ><a name="4581" - > </a - ><a name="4582" href="Stlc.html#4231" class="Function Operator" - >:=</a ><a name="4584" > </a - ><a name="4585" href="Stlc.html#4585" class="Bound" + ><a name="4585" href="Stlc.html#4234" class="Function Operator" + >:=</a + ><a name="4587" + > </a + ><a name="4588" href="Stlc.html#4588" class="Bound" >V</a - ><a name="4586" + ><a name="4589" > </a - ><a name="4587" href="Stlc.html#4231" class="Function Operator" + ><a name="4590" href="Stlc.html#4234" class="Function Operator" >]</a - ><a name="4588" + ><a name="4591" > </a - ><a name="4589" class="Symbol" + ><a name="4592" class="Symbol" >=</a - ><a name="4590" - > </a - ><a name="4591" href="Stlc.html#3609" class="InductiveConstructor Operator" - >if</a ><a name="4593" > </a - ><a name="4594" class="Symbol" + ><a name="4594" href="Stlc.html#3612" class="InductiveConstructor Operator" + >if</a + ><a name="4596" + > </a + ><a name="4597" class="Symbol" >(</a - ><a name="4595" href="Stlc.html#4558" class="Bound" + ><a name="4598" href="Stlc.html#4561" class="Bound" >L′</a - ><a name="4597" + ><a name="4600" > </a - ><a name="4598" href="Stlc.html#4231" class="Function Operator" + ><a name="4601" href="Stlc.html#4234" class="Function Operator" >[</a - ><a name="4599" + ><a name="4602" > </a - ><a name="4600" href="Stlc.html#4580" class="Bound" + ><a name="4603" href="Stlc.html#4583" class="Bound" >x</a - ><a name="4601" - > </a - ><a name="4602" href="Stlc.html#4231" class="Function Operator" - >:=</a ><a name="4604" > </a - ><a name="4605" href="Stlc.html#4585" class="Bound" - >V</a - ><a name="4606" + ><a name="4605" href="Stlc.html#4234" class="Function Operator" + >:=</a + ><a name="4607" > </a - ><a name="4607" href="Stlc.html#4231" class="Function Operator" - >]</a - ><a name="4608" class="Symbol" - >)</a + ><a name="4608" href="Stlc.html#4588" class="Bound" + >V</a ><a name="4609" > </a - ><a name="4610" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="4610" href="Stlc.html#4234" class="Function Operator" + >]</a + ><a name="4611" class="Symbol" + >)</a + ><a name="4612" + > </a + ><a name="4613" href="Stlc.html#3612" class="InductiveConstructor Operator" >then</a - ><a name="4614" + ><a name="4617" > </a - ><a name="4615" class="Symbol" + ><a name="4618" class="Symbol" >(</a - ><a name="4616" href="Stlc.html#4566" class="Bound" + ><a name="4619" href="Stlc.html#4569" class="Bound" >M′</a - ><a name="4618" + ><a name="4621" > </a - ><a name="4619" href="Stlc.html#4231" class="Function Operator" + ><a name="4622" href="Stlc.html#4234" class="Function Operator" >[</a - ><a name="4620" + ><a name="4623" > </a - ><a name="4621" href="Stlc.html#4580" class="Bound" + ><a name="4624" href="Stlc.html#4583" class="Bound" >x</a - ><a name="4622" - > </a - ><a name="4623" href="Stlc.html#4231" class="Function Operator" - >:=</a ><a name="4625" > </a - ><a name="4626" href="Stlc.html#4585" class="Bound" - >V</a - ><a name="4627" + ><a name="4626" href="Stlc.html#4234" class="Function Operator" + >:=</a + ><a name="4628" > </a - ><a name="4628" href="Stlc.html#4231" class="Function Operator" - >]</a - ><a name="4629" class="Symbol" - >)</a + ><a name="4629" href="Stlc.html#4588" class="Bound" + >V</a ><a name="4630" > </a - ><a name="4631" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="4631" href="Stlc.html#4234" class="Function Operator" + >]</a + ><a name="4632" class="Symbol" + >)</a + ><a name="4633" + > </a + ><a name="4634" href="Stlc.html#3612" class="InductiveConstructor Operator" >else</a - ><a name="4635" + ><a name="4638" > </a - ><a name="4636" class="Symbol" + ><a name="4639" class="Symbol" >(</a - ><a name="4637" href="Stlc.html#4574" class="Bound" + ><a name="4640" href="Stlc.html#4577" class="Bound" >N′</a - ><a name="4639" + ><a name="4642" > </a - ><a name="4640" href="Stlc.html#4231" class="Function Operator" + ><a name="4643" href="Stlc.html#4234" class="Function Operator" >[</a - ><a name="4641" + ><a name="4644" > </a - ><a name="4642" href="Stlc.html#4580" class="Bound" + ><a name="4645" href="Stlc.html#4583" class="Bound" >x</a - ><a name="4643" - > </a - ><a name="4644" href="Stlc.html#4231" class="Function Operator" - >:=</a ><a name="4646" > </a - ><a name="4647" href="Stlc.html#4585" class="Bound" - >V</a - ><a name="4648" + ><a name="4647" href="Stlc.html#4234" class="Function Operator" + >:=</a + ><a name="4649" > </a - ><a name="4649" href="Stlc.html#4231" class="Function Operator" + ><a name="4650" href="Stlc.html#4588" class="Bound" + >V</a + ><a name="4651" + > </a + ><a name="4652" href="Stlc.html#4234" class="Function Operator" >]</a - ><a name="4650" class="Symbol" + ><a name="4653" class="Symbol" >)</a > @@ -1622,569 +1622,569 @@ Example terms. <pre class="Agda"> -<a name="4697" class="Keyword" +<a name="4700" class="Keyword" >infix</a - ><a name="4702" - > </a - ><a name="4703" class="Number" - >10</a ><a name="4705" > </a - ><a name="4706" href="Stlc.html#4717" class="Datatype Operator" + ><a name="4706" class="Number" + >10</a + ><a name="4708" + > </a + ><a name="4709" href="Stlc.html#4720" class="Datatype Operator" >_⟹_</a - ><a name="4709" + ><a name="4712" > </a - ><a name="4712" class="Keyword" + ><a name="4715" class="Keyword" >data</a - ><a name="4716" + ><a name="4719" > </a - ><a name="4717" href="Stlc.html#4717" class="Datatype Operator" + ><a name="4720" href="Stlc.html#4720" class="Datatype Operator" >_⟹_</a - ><a name="4720" + ><a name="4723" > </a - ><a name="4721" class="Symbol" + ><a name="4724" class="Symbol" >:</a - ><a name="4722" + ><a name="4725" > </a - ><a name="4723" href="Stlc.html#3482" class="Datatype" + ><a name="4726" href="Stlc.html#3485" class="Datatype" >Term</a - ><a name="4727" + ><a name="4730" > </a - ><a name="4728" class="Symbol" + ><a name="4731" class="Symbol" >→</a - ><a name="4729" + ><a name="4732" > </a - ><a name="4730" href="Stlc.html#3482" class="Datatype" + ><a name="4733" href="Stlc.html#3485" class="Datatype" >Term</a - ><a name="4734" + ><a name="4737" > </a - ><a name="4735" class="Symbol" + ><a name="4738" class="Symbol" >→</a - ><a name="4736" + ><a name="4739" > </a - ><a name="4737" class="PrimitiveType" + ><a name="4740" class="PrimitiveType" >Set</a - ><a name="4740" + ><a name="4743" > </a - ><a name="4741" class="Keyword" + ><a name="4744" class="Keyword" >where</a - ><a name="4746" + ><a name="4749" > </a - ><a name="4749" href="Stlc.html#4749" class="InductiveConstructor" + ><a name="4752" href="Stlc.html#4752" class="InductiveConstructor" >βλ·</a - ><a name="4752" + ><a name="4755" > </a - ><a name="4753" class="Symbol" + ><a name="4756" class="Symbol" >:</a - ><a name="4754" + ><a name="4757" > </a - ><a name="4755" class="Symbol" + ><a name="4758" class="Symbol" >∀</a - ><a name="4756" - > </a - ><a name="4757" class="Symbol" - >{</a - ><a name="4758" href="Stlc.html#4758" class="Bound" - >x</a ><a name="4759" > </a - ><a name="4760" href="Stlc.html#4760" class="Bound" + ><a name="4760" class="Symbol" + >{</a + ><a name="4761" href="Stlc.html#4761" class="Bound" + >x</a + ><a name="4762" + > </a + ><a name="4763" href="Stlc.html#4763" class="Bound" >A</a - ><a name="4761" + ><a name="4764" > </a - ><a name="4762" href="Stlc.html#4762" class="Bound" + ><a name="4765" href="Stlc.html#4765" class="Bound" >N</a - ><a name="4763" - > </a - ><a name="4764" href="Stlc.html#4764" class="Bound" - >V</a - ><a name="4765" class="Symbol" - >}</a ><a name="4766" > </a - ><a name="4767" class="Symbol" - >→</a - ><a name="4768" - > </a - ><a name="4769" href="Stlc.html#4060" class="Datatype" - >Value</a - ><a name="4774" - > </a - ><a name="4775" href="Stlc.html#4764" class="Bound" + ><a name="4767" href="Stlc.html#4767" class="Bound" >V</a - ><a name="4776" + ><a name="4768" class="Symbol" + >}</a + ><a name="4769" > </a - ><a name="4777" class="Symbol" + ><a name="4770" class="Symbol" >→</a - ><a name="4778" + ><a name="4771" + > </a + ><a name="4772" href="Stlc.html#4063" class="Datatype" + >Value</a + ><a name="4777" + > </a + ><a name="4778" href="Stlc.html#4767" class="Bound" + >V</a + ><a name="4779" + > </a + ><a name="4780" class="Symbol" + >→</a + ><a name="4781" > </a - ><a name="4783" class="Symbol" + ><a name="4786" class="Symbol" >(</a - ><a name="4784" href="Stlc.html#3517" class="InductiveConstructor Operator" + ><a name="4787" href="Stlc.html#3520" class="InductiveConstructor Operator" >λ[</a - ><a name="4786" + ><a name="4789" > </a - ><a name="4787" href="Stlc.html#4758" class="Bound" + ><a name="4790" href="Stlc.html#4761" class="Bound" >x</a - ><a name="4788" + ><a name="4791" > </a - ><a name="4789" href="Stlc.html#3517" class="InductiveConstructor Operator" + ><a name="4792" href="Stlc.html#3520" class="InductiveConstructor Operator" >∶</a - ><a name="4790" + ><a name="4793" > </a - ><a name="4791" href="Stlc.html#4760" class="Bound" + ><a name="4794" href="Stlc.html#4763" class="Bound" >A</a - ><a name="4792" + ><a name="4795" > </a - ><a name="4793" href="Stlc.html#3517" class="InductiveConstructor Operator" + ><a name="4796" href="Stlc.html#3520" class="InductiveConstructor Operator" >]</a - ><a name="4794" - > </a - ><a name="4795" href="Stlc.html#4762" class="Bound" - >N</a - ><a name="4796" class="Symbol" - >)</a ><a name="4797" > </a - ><a name="4798" href="Stlc.html#3553" class="InductiveConstructor Operator" - >·</a - ><a name="4799" - > </a - ><a name="4800" href="Stlc.html#4764" class="Bound" - >V</a - ><a name="4801" - > </a - ><a name="4802" href="Stlc.html#4717" class="Datatype Operator" - >⟹</a - ><a name="4803" - > </a - ><a name="4804" href="Stlc.html#4762" class="Bound" + ><a name="4798" href="Stlc.html#4765" class="Bound" >N</a - ><a name="4805" + ><a name="4799" class="Symbol" + >)</a + ><a name="4800" > </a - ><a name="4806" href="Stlc.html#4231" class="Function Operator" + ><a name="4801" href="Stlc.html#3556" class="InductiveConstructor Operator" + >·</a + ><a name="4802" + > </a + ><a name="4803" href="Stlc.html#4767" class="Bound" + >V</a + ><a name="4804" + > </a + ><a name="4805" href="Stlc.html#4720" class="Datatype Operator" + >⟹</a + ><a name="4806" + > </a + ><a name="4807" href="Stlc.html#4765" class="Bound" + >N</a + ><a name="4808" + > </a + ><a name="4809" href="Stlc.html#4234" class="Function Operator" >[</a - ><a name="4807" + ><a name="4810" > </a - ><a name="4808" href="Stlc.html#4758" class="Bound" + ><a name="4811" href="Stlc.html#4761" class="Bound" >x</a - ><a name="4809" - > </a - ><a name="4810" href="Stlc.html#4231" class="Function Operator" - >:=</a ><a name="4812" > </a - ><a name="4813" href="Stlc.html#4764" class="Bound" - >V</a - ><a name="4814" + ><a name="4813" href="Stlc.html#4234" class="Function Operator" + >:=</a + ><a name="4815" > </a - ><a name="4815" href="Stlc.html#4231" class="Function Operator" + ><a name="4816" href="Stlc.html#4767" class="Bound" + >V</a + ><a name="4817" + > </a + ><a name="4818" href="Stlc.html#4234" class="Function Operator" >]</a - ><a name="4816" + ><a name="4819" > </a - ><a name="4819" href="Stlc.html#4819" class="InductiveConstructor" + ><a name="4822" href="Stlc.html#4822" class="InductiveConstructor" >ξ·₁</a - ><a name="4822" + ><a name="4825" > </a - ><a name="4823" class="Symbol" + ><a name="4826" class="Symbol" >:</a - ><a name="4824" + ><a name="4827" > </a - ><a name="4825" class="Symbol" + ><a name="4828" class="Symbol" >∀</a - ><a name="4826" - > </a - ><a name="4827" class="Symbol" - >{</a - ><a name="4828" href="Stlc.html#4828" class="Bound" - >L</a ><a name="4829" > </a - ><a name="4830" href="Stlc.html#4830" class="Bound" - >L′</a + ><a name="4830" class="Symbol" + >{</a + ><a name="4831" href="Stlc.html#4831" class="Bound" + >L</a ><a name="4832" > </a ><a name="4833" href="Stlc.html#4833" class="Bound" - >M</a - ><a name="4834" class="Symbol" - >}</a + >L′</a ><a name="4835" > </a - ><a name="4836" class="Symbol" + ><a name="4836" href="Stlc.html#4836" class="Bound" + >M</a + ><a name="4837" class="Symbol" + >}</a + ><a name="4838" + > </a + ><a name="4839" class="Symbol" >→</a - ><a name="4837" + ><a name="4840" > </a - ><a name="4842" href="Stlc.html#4828" class="Bound" + ><a name="4845" href="Stlc.html#4831" class="Bound" >L</a - ><a name="4843" + ><a name="4846" > </a - ><a name="4844" href="Stlc.html#4717" class="Datatype Operator" + ><a name="4847" href="Stlc.html#4720" class="Datatype Operator" >⟹</a - ><a name="4845" - > </a - ><a name="4846" href="Stlc.html#4830" class="Bound" - >L′</a ><a name="4848" > </a - ><a name="4849" class="Symbol" + ><a name="4849" href="Stlc.html#4833" class="Bound" + >L′</a + ><a name="4851" + > </a + ><a name="4852" class="Symbol" >→</a - ><a name="4850" + ><a name="4853" > </a - ><a name="4855" href="Stlc.html#4828" class="Bound" + ><a name="4858" href="Stlc.html#4831" class="Bound" >L</a - ><a name="4856" + ><a name="4859" > </a - ><a name="4857" href="Stlc.html#3553" class="InductiveConstructor Operator" + ><a name="4860" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a - ><a name="4858" + ><a name="4861" > </a - ><a name="4859" href="Stlc.html#4833" class="Bound" + ><a name="4862" href="Stlc.html#4836" class="Bound" >M</a - ><a name="4860" + ><a name="4863" > </a - ><a name="4861" href="Stlc.html#4717" class="Datatype Operator" + ><a name="4864" href="Stlc.html#4720" class="Datatype Operator" >⟹</a - ><a name="4862" - > </a - ><a name="4863" href="Stlc.html#4830" class="Bound" - >L′</a ><a name="4865" > </a - ><a name="4866" href="Stlc.html#3553" class="InductiveConstructor Operator" - >·</a - ><a name="4867" + ><a name="4866" href="Stlc.html#4833" class="Bound" + >L′</a + ><a name="4868" > </a - ><a name="4868" href="Stlc.html#4833" class="Bound" + ><a name="4869" href="Stlc.html#3556" class="InductiveConstructor Operator" + >·</a + ><a name="4870" + > </a + ><a name="4871" href="Stlc.html#4836" class="Bound" >M</a - ><a name="4869" + ><a name="4872" > </a - ><a name="4872" href="Stlc.html#4872" class="InductiveConstructor" + ><a name="4875" href="Stlc.html#4875" class="InductiveConstructor" >ξ·₂</a - ><a name="4875" + ><a name="4878" > </a - ><a name="4876" class="Symbol" + ><a name="4879" class="Symbol" >:</a - ><a name="4877" + ><a name="4880" > </a - ><a name="4878" class="Symbol" + ><a name="4881" class="Symbol" >∀</a - ><a name="4879" - > </a - ><a name="4880" class="Symbol" - >{</a - ><a name="4881" href="Stlc.html#4881" class="Bound" - >V</a ><a name="4882" > </a - ><a name="4883" href="Stlc.html#4883" class="Bound" - >M</a - ><a name="4884" - > </a - ><a name="4885" href="Stlc.html#4885" class="Bound" - >M′</a - ><a name="4887" class="Symbol" - >}</a - ><a name="4888" - > </a - ><a name="4889" class="Symbol" - >→</a - ><a name="4890" - > - </a - ><a name="4895" href="Stlc.html#4060" class="Datatype" - >Value</a - ><a name="4900" - > </a - ><a name="4901" href="Stlc.html#4881" class="Bound" + ><a name="4883" class="Symbol" + >{</a + ><a name="4884" href="Stlc.html#4884" class="Bound" >V</a - ><a name="4902" + ><a name="4885" > </a - ><a name="4903" class="Symbol" + ><a name="4886" href="Stlc.html#4886" class="Bound" + >M</a + ><a name="4887" + > </a + ><a name="4888" href="Stlc.html#4888" class="Bound" + >M′</a + ><a name="4890" class="Symbol" + >}</a + ><a name="4891" + > </a + ><a name="4892" class="Symbol" >→</a - ><a name="4904" + ><a name="4893" > </a - ><a name="4909" href="Stlc.html#4883" class="Bound" + ><a name="4898" href="Stlc.html#4063" class="Datatype" + >Value</a + ><a name="4903" + > </a + ><a name="4904" href="Stlc.html#4884" class="Bound" + >V</a + ><a name="4905" + > </a + ><a name="4906" class="Symbol" + >→</a + ><a name="4907" + > + </a + ><a name="4912" href="Stlc.html#4886" class="Bound" >M</a - ><a name="4910" + ><a name="4913" > </a - ><a name="4911" href="Stlc.html#4717" class="Datatype Operator" + ><a name="4914" href="Stlc.html#4720" class="Datatype Operator" >⟹</a - ><a name="4912" - > </a - ><a name="4913" href="Stlc.html#4885" class="Bound" - >M′</a ><a name="4915" > </a - ><a name="4916" class="Symbol" + ><a name="4916" href="Stlc.html#4888" class="Bound" + >M′</a + ><a name="4918" + > </a + ><a name="4919" class="Symbol" >→</a - ><a name="4917" + ><a name="4920" > </a - ><a name="4922" href="Stlc.html#4881" class="Bound" + ><a name="4925" href="Stlc.html#4884" class="Bound" >V</a - ><a name="4923" + ><a name="4926" > </a - ><a name="4924" href="Stlc.html#3553" class="InductiveConstructor Operator" + ><a name="4927" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a - ><a name="4925" + ><a name="4928" > </a - ><a name="4926" href="Stlc.html#4883" class="Bound" + ><a name="4929" href="Stlc.html#4886" class="Bound" >M</a - ><a name="4927" + ><a name="4930" > </a - ><a name="4928" href="Stlc.html#4717" class="Datatype Operator" + ><a name="4931" href="Stlc.html#4720" class="Datatype Operator" >⟹</a - ><a name="4929" + ><a name="4932" > </a - ><a name="4930" href="Stlc.html#4881" class="Bound" + ><a name="4933" href="Stlc.html#4884" class="Bound" >V</a - ><a name="4931" + ><a name="4934" > </a - ><a name="4932" href="Stlc.html#3553" class="InductiveConstructor Operator" + ><a name="4935" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a - ><a name="4933" - > </a - ><a name="4934" href="Stlc.html#4885" class="Bound" - >M′</a ><a name="4936" + > </a + ><a name="4937" href="Stlc.html#4888" class="Bound" + >M′</a + ><a name="4939" > </a - ><a name="4939" href="Stlc.html#4939" class="InductiveConstructor" + ><a name="4942" href="Stlc.html#4942" class="InductiveConstructor" >βif-true</a - ><a name="4947" + ><a name="4950" > </a - ><a name="4948" class="Symbol" + ><a name="4951" class="Symbol" >:</a - ><a name="4949" + ><a name="4952" > </a - ><a name="4950" class="Symbol" + ><a name="4953" class="Symbol" >∀</a - ><a name="4951" - > </a - ><a name="4952" class="Symbol" - >{</a - ><a name="4953" href="Stlc.html#4953" class="Bound" - >M</a ><a name="4954" > </a - ><a name="4955" href="Stlc.html#4955" class="Bound" - >N</a - ><a name="4956" class="Symbol" - >}</a + ><a name="4955" class="Symbol" + >{</a + ><a name="4956" href="Stlc.html#4956" class="Bound" + >M</a ><a name="4957" > </a - ><a name="4958" class="Symbol" + ><a name="4958" href="Stlc.html#4958" class="Bound" + >N</a + ><a name="4959" class="Symbol" + >}</a + ><a name="4960" + > </a + ><a name="4961" class="Symbol" >→</a - ><a name="4959" + ><a name="4962" > </a - ><a name="4964" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="4967" href="Stlc.html#3612" class="InductiveConstructor Operator" >if</a - ><a name="4966" + ><a name="4969" > </a - ><a name="4967" href="Stlc.html#3580" class="InductiveConstructor" + ><a name="4970" href="Stlc.html#3583" class="InductiveConstructor" >true</a - ><a name="4971" + ><a name="4974" > </a - ><a name="4972" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="4975" href="Stlc.html#3612" class="InductiveConstructor Operator" >then</a - ><a name="4976" + ><a name="4979" > </a - ><a name="4977" href="Stlc.html#4953" class="Bound" + ><a name="4980" href="Stlc.html#4956" class="Bound" >M</a - ><a name="4978" + ><a name="4981" > </a - ><a name="4979" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="4982" href="Stlc.html#3612" class="InductiveConstructor Operator" >else</a - ><a name="4983" + ><a name="4986" > </a - ><a name="4984" href="Stlc.html#4955" class="Bound" + ><a name="4987" href="Stlc.html#4958" class="Bound" >N</a - ><a name="4985" + ><a name="4988" > </a - ><a name="4986" href="Stlc.html#4717" class="Datatype Operator" + ><a name="4989" href="Stlc.html#4720" class="Datatype Operator" >⟹</a - ><a name="4987" + ><a name="4990" > </a - ><a name="4988" href="Stlc.html#4953" class="Bound" + ><a name="4991" href="Stlc.html#4956" class="Bound" >M</a - ><a name="4989" + ><a name="4992" > </a - ><a name="4992" href="Stlc.html#4992" class="InductiveConstructor" + ><a name="4995" href="Stlc.html#4995" class="InductiveConstructor" >βif-false</a - ><a name="5001" + ><a name="5004" > </a - ><a name="5002" class="Symbol" + ><a name="5005" class="Symbol" >:</a - ><a name="5003" + ><a name="5006" > </a - ><a name="5004" class="Symbol" + ><a name="5007" class="Symbol" >∀</a - ><a name="5005" - > </a - ><a name="5006" class="Symbol" - >{</a - ><a name="5007" href="Stlc.html#5007" class="Bound" - >M</a ><a name="5008" > </a - ><a name="5009" href="Stlc.html#5009" class="Bound" - >N</a - ><a name="5010" class="Symbol" - >}</a + ><a name="5009" class="Symbol" + >{</a + ><a name="5010" href="Stlc.html#5010" class="Bound" + >M</a ><a name="5011" > </a - ><a name="5012" class="Symbol" + ><a name="5012" href="Stlc.html#5012" class="Bound" + >N</a + ><a name="5013" class="Symbol" + >}</a + ><a name="5014" + > </a + ><a name="5015" class="Symbol" >→</a - ><a name="5013" + ><a name="5016" > </a - ><a name="5018" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="5021" href="Stlc.html#3612" class="InductiveConstructor Operator" >if</a - ><a name="5020" + ><a name="5023" > </a - ><a name="5021" href="Stlc.html#3594" class="InductiveConstructor" + ><a name="5024" href="Stlc.html#3597" class="InductiveConstructor" >false</a - ><a name="5026" + ><a name="5029" > </a - ><a name="5027" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="5030" href="Stlc.html#3612" class="InductiveConstructor Operator" >then</a - ><a name="5031" + ><a name="5034" > </a - ><a name="5032" href="Stlc.html#5007" class="Bound" + ><a name="5035" href="Stlc.html#5010" class="Bound" >M</a - ><a name="5033" + ><a name="5036" > </a - ><a name="5034" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="5037" href="Stlc.html#3612" class="InductiveConstructor Operator" >else</a - ><a name="5038" + ><a name="5041" > </a - ><a name="5039" href="Stlc.html#5009" class="Bound" + ><a name="5042" href="Stlc.html#5012" class="Bound" >N</a - ><a name="5040" + ><a name="5043" > </a - ><a name="5041" href="Stlc.html#4717" class="Datatype Operator" + ><a name="5044" href="Stlc.html#4720" class="Datatype Operator" >⟹</a - ><a name="5042" + ><a name="5045" > </a - ><a name="5043" href="Stlc.html#5009" class="Bound" + ><a name="5046" href="Stlc.html#5012" class="Bound" >N</a - ><a name="5044" + ><a name="5047" > </a - ><a name="5047" href="Stlc.html#5047" class="InductiveConstructor" + ><a name="5050" href="Stlc.html#5050" class="InductiveConstructor" >ξif</a - ><a name="5050" + ><a name="5053" > </a - ><a name="5051" class="Symbol" + ><a name="5054" class="Symbol" >:</a - ><a name="5052" + ><a name="5055" > </a - ><a name="5053" class="Symbol" + ><a name="5056" class="Symbol" >∀</a - ><a name="5054" - > </a - ><a name="5055" class="Symbol" - >{</a - ><a name="5056" href="Stlc.html#5056" class="Bound" - >L</a ><a name="5057" > </a - ><a name="5058" href="Stlc.html#5058" class="Bound" - >L′</a + ><a name="5058" class="Symbol" + >{</a + ><a name="5059" href="Stlc.html#5059" class="Bound" + >L</a ><a name="5060" > </a ><a name="5061" href="Stlc.html#5061" class="Bound" - >M</a - ><a name="5062" + >L′</a + ><a name="5063" > </a - ><a name="5063" href="Stlc.html#5063" class="Bound" - >N</a - ><a name="5064" class="Symbol" - >}</a + ><a name="5064" href="Stlc.html#5064" class="Bound" + >M</a ><a name="5065" > </a - ><a name="5066" class="Symbol" + ><a name="5066" href="Stlc.html#5066" class="Bound" + >N</a + ><a name="5067" class="Symbol" + >}</a + ><a name="5068" + > </a + ><a name="5069" class="Symbol" >→</a - ><a name="5067" + ><a name="5070" > </a - ><a name="5072" href="Stlc.html#5056" class="Bound" + ><a name="5075" href="Stlc.html#5059" class="Bound" >L</a - ><a name="5073" + ><a name="5076" > </a - ><a name="5074" href="Stlc.html#4717" class="Datatype Operator" + ><a name="5077" href="Stlc.html#4720" class="Datatype Operator" >⟹</a - ><a name="5075" - > </a - ><a name="5076" href="Stlc.html#5058" class="Bound" - >L′</a ><a name="5078" > </a - ><a name="5079" class="Symbol" + ><a name="5079" href="Stlc.html#5061" class="Bound" + >L′</a + ><a name="5081" + > </a + ><a name="5082" class="Symbol" >→</a - ><a name="5080" + ><a name="5083" > </a - ><a name="5089" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="5092" href="Stlc.html#3612" class="InductiveConstructor Operator" >if</a - ><a name="5091" + ><a name="5094" > </a - ><a name="5092" href="Stlc.html#5056" class="Bound" + ><a name="5095" href="Stlc.html#5059" class="Bound" >L</a - ><a name="5093" + ><a name="5096" > </a - ><a name="5094" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="5097" href="Stlc.html#3612" class="InductiveConstructor Operator" >then</a - ><a name="5098" + ><a name="5101" > </a - ><a name="5099" href="Stlc.html#5061" class="Bound" + ><a name="5102" href="Stlc.html#5064" class="Bound" >M</a - ><a name="5100" + ><a name="5103" > </a - ><a name="5101" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="5104" href="Stlc.html#3612" class="InductiveConstructor Operator" >else</a - ><a name="5105" + ><a name="5108" > </a - ><a name="5106" href="Stlc.html#5063" class="Bound" + ><a name="5109" href="Stlc.html#5066" class="Bound" >N</a - ><a name="5107" + ><a name="5110" > </a - ><a name="5108" href="Stlc.html#4717" class="Datatype Operator" + ><a name="5111" href="Stlc.html#4720" class="Datatype Operator" >⟹</a - ><a name="5109" - > </a - ><a name="5110" href="Stlc.html#3609" class="InductiveConstructor Operator" - >if</a ><a name="5112" > </a - ><a name="5113" href="Stlc.html#5058" class="Bound" - >L′</a + ><a name="5113" href="Stlc.html#3612" class="InductiveConstructor Operator" + >if</a ><a name="5115" > </a - ><a name="5116" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="5116" href="Stlc.html#5061" class="Bound" + >L′</a + ><a name="5118" + > </a + ><a name="5119" href="Stlc.html#3612" class="InductiveConstructor Operator" >then</a - ><a name="5120" + ><a name="5123" > </a - ><a name="5121" href="Stlc.html#5061" class="Bound" + ><a name="5124" href="Stlc.html#5064" class="Bound" >M</a - ><a name="5122" + ><a name="5125" > </a - ><a name="5123" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="5126" href="Stlc.html#3612" class="InductiveConstructor Operator" >else</a - ><a name="5127" + ><a name="5130" > </a - ><a name="5128" href="Stlc.html#5063" class="Bound" + ><a name="5131" href="Stlc.html#5066" class="Bound" >N</a > @@ -2195,665 +2195,665 @@ Example terms. <pre class="Agda"> -<a name="5193" class="Keyword" +<a name="5196" class="Keyword" >infix</a - ><a name="5198" - > </a - ><a name="5199" class="Number" - >10</a ><a name="5201" > </a - ><a name="5202" href="Stlc.html#5242" class="Datatype Operator" + ><a name="5202" class="Number" + >10</a + ><a name="5204" + > </a + ><a name="5205" href="Stlc.html#5245" class="Datatype Operator" >_⟹*_</a - ><a name="5206" + ><a name="5209" > </a - ><a name="5208" class="Keyword" + ><a name="5211" class="Keyword" >infixr</a - ><a name="5214" + ><a name="5217" > </a - ><a name="5215" class="Number" + ><a name="5218" class="Number" >2</a - ><a name="5216" + ><a name="5219" > </a - ><a name="5217" href="Stlc.html#5295" class="InductiveConstructor Operator" + ><a name="5220" href="Stlc.html#5298" class="InductiveConstructor Operator" >_⟹⟨_⟩_</a - ><a name="5223" + ><a name="5226" > </a - ><a name="5224" class="Keyword" + ><a name="5227" class="Keyword" >infix</a - ><a name="5229" - > </a - ><a name="5231" class="Number" - >3</a ><a name="5232" - > </a - ><a name="5233" href="Stlc.html#5275" class="InductiveConstructor Operator" - >_∎</a + > </a + ><a name="5234" class="Number" + >3</a ><a name="5235" + > </a + ><a name="5236" href="Stlc.html#5278" class="InductiveConstructor Operator" + >_∎</a + ><a name="5238" > </a - ><a name="5237" class="Keyword" + ><a name="5240" class="Keyword" >data</a - ><a name="5241" + ><a name="5244" > </a - ><a name="5242" href="Stlc.html#5242" class="Datatype Operator" + ><a name="5245" href="Stlc.html#5245" class="Datatype Operator" >_⟹*_</a - ><a name="5246" + ><a name="5249" > </a - ><a name="5247" class="Symbol" + ><a name="5250" class="Symbol" >:</a - ><a name="5248" + ><a name="5251" > </a - ><a name="5249" href="Stlc.html#3482" class="Datatype" + ><a name="5252" href="Stlc.html#3485" class="Datatype" >Term</a - ><a name="5253" + ><a name="5256" > </a - ><a name="5254" class="Symbol" + ><a name="5257" class="Symbol" >→</a - ><a name="5255" + ><a name="5258" > </a - ><a name="5256" href="Stlc.html#3482" class="Datatype" + ><a name="5259" href="Stlc.html#3485" class="Datatype" >Term</a - ><a name="5260" + ><a name="5263" > </a - ><a name="5261" class="Symbol" + ><a name="5264" class="Symbol" >→</a - ><a name="5262" + ><a name="5265" > </a - ><a name="5263" class="PrimitiveType" + ><a name="5266" class="PrimitiveType" >Set</a - ><a name="5266" + ><a name="5269" > </a - ><a name="5267" class="Keyword" + ><a name="5270" class="Keyword" >where</a - ><a name="5272" + ><a name="5275" > </a - ><a name="5275" href="Stlc.html#5275" class="InductiveConstructor Operator" + ><a name="5278" href="Stlc.html#5278" class="InductiveConstructor Operator" >_∎</a - ><a name="5277" + ><a name="5280" > </a - ><a name="5278" class="Symbol" + ><a name="5281" class="Symbol" >:</a - ><a name="5279" + ><a name="5282" > </a - ><a name="5280" class="Symbol" + ><a name="5283" class="Symbol" >∀</a - ><a name="5281" + ><a name="5284" > </a - ><a name="5282" href="Stlc.html#5282" class="Bound" + ><a name="5285" href="Stlc.html#5285" class="Bound" >M</a - ><a name="5283" + ><a name="5286" > </a - ><a name="5284" class="Symbol" + ><a name="5287" class="Symbol" >→</a - ><a name="5285" + ><a name="5288" > </a - ><a name="5286" href="Stlc.html#5282" class="Bound" + ><a name="5289" href="Stlc.html#5285" class="Bound" >M</a - ><a name="5287" - > </a - ><a name="5288" href="Stlc.html#5242" class="Datatype Operator" - >⟹*</a ><a name="5290" > </a - ><a name="5291" href="Stlc.html#5282" class="Bound" + ><a name="5291" href="Stlc.html#5245" class="Datatype Operator" + >⟹*</a + ><a name="5293" + > </a + ><a name="5294" href="Stlc.html#5285" class="Bound" >M</a - ><a name="5292" + ><a name="5295" > </a - ><a name="5295" href="Stlc.html#5295" class="InductiveConstructor Operator" + ><a name="5298" href="Stlc.html#5298" class="InductiveConstructor Operator" >_⟹⟨_⟩_</a - ><a name="5301" + ><a name="5304" > </a - ><a name="5302" class="Symbol" + ><a name="5305" class="Symbol" >:</a - ><a name="5303" + ><a name="5306" > </a - ><a name="5304" class="Symbol" + ><a name="5307" class="Symbol" >∀</a - ><a name="5305" + ><a name="5308" > </a - ><a name="5306" href="Stlc.html#5306" class="Bound" - >L</a - ><a name="5307" - > </a - ><a name="5308" class="Symbol" - >{</a ><a name="5309" href="Stlc.html#5309" class="Bound" - >M</a + >L</a ><a name="5310" > </a - ><a name="5311" href="Stlc.html#5311" class="Bound" - >N</a - ><a name="5312" class="Symbol" - >}</a + ><a name="5311" class="Symbol" + >{</a + ><a name="5312" href="Stlc.html#5312" class="Bound" + >M</a ><a name="5313" > </a - ><a name="5314" class="Symbol" - >→</a - ><a name="5315" + ><a name="5314" href="Stlc.html#5314" class="Bound" + >N</a + ><a name="5315" class="Symbol" + >}</a + ><a name="5316" > </a - ><a name="5316" href="Stlc.html#5306" class="Bound" + ><a name="5317" class="Symbol" + >→</a + ><a name="5318" + > </a + ><a name="5319" href="Stlc.html#5309" class="Bound" >L</a - ><a name="5317" + ><a name="5320" > </a - ><a name="5318" href="Stlc.html#4717" class="Datatype Operator" + ><a name="5321" href="Stlc.html#4720" class="Datatype Operator" >⟹</a - ><a name="5319" + ><a name="5322" > </a - ><a name="5320" href="Stlc.html#5309" class="Bound" + ><a name="5323" href="Stlc.html#5312" class="Bound" >M</a - ><a name="5321" + ><a name="5324" > </a - ><a name="5322" class="Symbol" + ><a name="5325" class="Symbol" >→</a - ><a name="5323" + ><a name="5326" > </a - ><a name="5324" href="Stlc.html#5309" class="Bound" + ><a name="5327" href="Stlc.html#5312" class="Bound" >M</a - ><a name="5325" - > </a - ><a name="5326" href="Stlc.html#5242" class="Datatype Operator" - >⟹*</a ><a name="5328" > </a - ><a name="5329" href="Stlc.html#5311" class="Bound" - >N</a - ><a name="5330" - > </a - ><a name="5331" class="Symbol" - >→</a - ><a name="5332" - > </a - ><a name="5333" href="Stlc.html#5306" class="Bound" - >L</a - ><a name="5334" - > </a - ><a name="5335" href="Stlc.html#5242" class="Datatype Operator" + ><a name="5329" href="Stlc.html#5245" class="Datatype Operator" >⟹*</a + ><a name="5331" + > </a + ><a name="5332" href="Stlc.html#5314" class="Bound" + >N</a + ><a name="5333" + > </a + ><a name="5334" class="Symbol" + >→</a + ><a name="5335" + > </a + ><a name="5336" href="Stlc.html#5309" class="Bound" + >L</a ><a name="5337" > </a - ><a name="5338" href="Stlc.html#5311" class="Bound" + ><a name="5338" href="Stlc.html#5245" class="Datatype Operator" + >⟹*</a + ><a name="5340" + > </a + ><a name="5341" href="Stlc.html#5314" class="Bound" >N</a - ><a name="5339" + ><a name="5342" > </a - ><a name="5343" href="Stlc.html#5343" class="Function" + ><a name="5346" href="Stlc.html#5346" class="Function" >reduction₁</a - ><a name="5353" + ><a name="5356" > </a - ><a name="5354" class="Symbol" + ><a name="5357" class="Symbol" >:</a - ><a name="5355" + ><a name="5358" > </a - ><a name="5356" href="Stlc.html#3904" class="Function" + ><a name="5359" href="Stlc.html#3907" class="Function" >not</a - ><a name="5359" + ><a name="5362" > </a - ><a name="5360" href="Stlc.html#3553" class="InductiveConstructor Operator" + ><a name="5363" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a - ><a name="5361" + ><a name="5364" > </a - ><a name="5362" href="Stlc.html#3580" class="InductiveConstructor" + ><a name="5365" href="Stlc.html#3583" class="InductiveConstructor" >true</a - ><a name="5366" - > </a - ><a name="5367" href="Stlc.html#5242" class="Datatype Operator" - >⟹*</a ><a name="5369" > </a - ><a name="5370" href="Stlc.html#3594" class="InductiveConstructor" + ><a name="5370" href="Stlc.html#5245" class="Datatype Operator" + >⟹*</a + ><a name="5372" + > </a + ><a name="5373" href="Stlc.html#3597" class="InductiveConstructor" >false</a - ><a name="5375" + ><a name="5378" > </a - ><a name="5376" href="Stlc.html#5343" class="Function" + ><a name="5379" href="Stlc.html#5346" class="Function" >reduction₁</a - ><a name="5386" + ><a name="5389" > </a - ><a name="5387" class="Symbol" + ><a name="5390" class="Symbol" >=</a - ><a name="5388" + ><a name="5391" > </a - ><a name="5393" href="Stlc.html#3904" class="Function" + ><a name="5396" href="Stlc.html#3907" class="Function" >not</a - ><a name="5396" + ><a name="5399" > </a - ><a name="5397" href="Stlc.html#3553" class="InductiveConstructor Operator" + ><a name="5400" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a - ><a name="5398" + ><a name="5401" > </a - ><a name="5399" href="Stlc.html#3580" class="InductiveConstructor" + ><a name="5402" href="Stlc.html#3583" class="InductiveConstructor" >true</a - ><a name="5403" + ><a name="5406" > </a - ><a name="5406" href="Stlc.html#5295" class="InductiveConstructor Operator" + ><a name="5409" href="Stlc.html#5298" class="InductiveConstructor Operator" >⟹⟨</a - ><a name="5408" + ><a name="5411" > </a - ><a name="5409" href="Stlc.html#4749" class="InductiveConstructor" + ><a name="5412" href="Stlc.html#4752" class="InductiveConstructor" >βλ·</a - ><a name="5412" + ><a name="5415" > </a - ><a name="5413" href="Stlc.html#4136" class="InductiveConstructor" + ><a name="5416" href="Stlc.html#4139" class="InductiveConstructor" >value-true</a - ><a name="5423" + ><a name="5426" > </a - ><a name="5424" href="Stlc.html#5295" class="InductiveConstructor Operator" + ><a name="5427" href="Stlc.html#5298" class="InductiveConstructor Operator" >⟩</a - ><a name="5425" + ><a name="5428" > </a - ><a name="5430" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="5433" href="Stlc.html#3612" class="InductiveConstructor Operator" >if</a - ><a name="5432" + ><a name="5435" > </a - ><a name="5433" href="Stlc.html#3580" class="InductiveConstructor" + ><a name="5436" href="Stlc.html#3583" class="InductiveConstructor" >true</a - ><a name="5437" + ><a name="5440" > </a - ><a name="5438" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="5441" href="Stlc.html#3612" class="InductiveConstructor Operator" >then</a - ><a name="5442" + ><a name="5445" > </a - ><a name="5443" href="Stlc.html#3594" class="InductiveConstructor" + ><a name="5446" href="Stlc.html#3597" class="InductiveConstructor" >false</a - ><a name="5448" + ><a name="5451" > </a - ><a name="5449" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="5452" href="Stlc.html#3612" class="InductiveConstructor Operator" >else</a - ><a name="5453" + ><a name="5456" > </a - ><a name="5454" href="Stlc.html#3580" class="InductiveConstructor" + ><a name="5457" href="Stlc.html#3583" class="InductiveConstructor" >true</a - ><a name="5458" + ><a name="5461" > </a - ><a name="5461" href="Stlc.html#5295" class="InductiveConstructor Operator" + ><a name="5464" href="Stlc.html#5298" class="InductiveConstructor Operator" >⟹⟨</a - ><a name="5463" + ><a name="5466" > </a - ><a name="5464" href="Stlc.html#4939" class="InductiveConstructor" + ><a name="5467" href="Stlc.html#4942" class="InductiveConstructor" >βif-true</a - ><a name="5472" + ><a name="5475" > </a - ><a name="5473" href="Stlc.html#5295" class="InductiveConstructor Operator" + ><a name="5476" href="Stlc.html#5298" class="InductiveConstructor Operator" >⟩</a - ><a name="5474" + ><a name="5477" > </a - ><a name="5479" href="Stlc.html#3594" class="InductiveConstructor" + ><a name="5482" href="Stlc.html#3597" class="InductiveConstructor" >false</a - ><a name="5484" + ><a name="5487" > </a - ><a name="5487" href="Stlc.html#5275" class="InductiveConstructor Operator" + ><a name="5490" href="Stlc.html#5278" class="InductiveConstructor Operator" >∎</a - ><a name="5488" + ><a name="5491" > </a - ><a name="5490" href="Stlc.html#5490" class="Function" + ><a name="5493" href="Stlc.html#5493" class="Function" >reduction₂</a - ><a name="5500" + ><a name="5503" > </a - ><a name="5501" class="Symbol" + ><a name="5504" class="Symbol" >:</a - ><a name="5502" + ><a name="5505" > </a - ><a name="5503" href="Stlc.html#3908" class="Function" + ><a name="5506" href="Stlc.html#3911" class="Function" >two</a - ><a name="5506" + ><a name="5509" > </a - ><a name="5507" href="Stlc.html#3553" class="InductiveConstructor Operator" + ><a name="5510" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a - ><a name="5508" + ><a name="5511" > </a - ><a name="5509" href="Stlc.html#3904" class="Function" + ><a name="5512" href="Stlc.html#3907" class="Function" >not</a - ><a name="5512" + ><a name="5515" > </a - ><a name="5513" href="Stlc.html#3553" class="InductiveConstructor Operator" + ><a name="5516" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a - ><a name="5514" + ><a name="5517" > </a - ><a name="5515" href="Stlc.html#3580" class="InductiveConstructor" + ><a name="5518" href="Stlc.html#3583" class="InductiveConstructor" >true</a - ><a name="5519" - > </a - ><a name="5520" href="Stlc.html#5242" class="Datatype Operator" - >⟹*</a ><a name="5522" > </a - ><a name="5523" href="Stlc.html#3580" class="InductiveConstructor" + ><a name="5523" href="Stlc.html#5245" class="Datatype Operator" + >⟹*</a + ><a name="5525" + > </a + ><a name="5526" href="Stlc.html#3583" class="InductiveConstructor" >true</a - ><a name="5527" + ><a name="5530" > </a - ><a name="5528" href="Stlc.html#5490" class="Function" + ><a name="5531" href="Stlc.html#5493" class="Function" >reduction₂</a - ><a name="5538" + ><a name="5541" > </a - ><a name="5539" class="Symbol" + ><a name="5542" class="Symbol" >=</a - ><a name="5540" + ><a name="5543" > </a - ><a name="5545" href="Stlc.html#3908" class="Function" + ><a name="5548" href="Stlc.html#3911" class="Function" >two</a - ><a name="5548" + ><a name="5551" > </a - ><a name="5549" href="Stlc.html#3553" class="InductiveConstructor Operator" + ><a name="5552" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a - ><a name="5550" + ><a name="5553" > </a - ><a name="5551" href="Stlc.html#3904" class="Function" + ><a name="5554" href="Stlc.html#3907" class="Function" >not</a - ><a name="5554" + ><a name="5557" > </a - ><a name="5555" href="Stlc.html#3553" class="InductiveConstructor Operator" + ><a name="5558" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a - ><a name="5556" + ><a name="5559" > </a - ><a name="5557" href="Stlc.html#3580" class="InductiveConstructor" + ><a name="5560" href="Stlc.html#3583" class="InductiveConstructor" >true</a - ><a name="5561" + ><a name="5564" > </a - ><a name="5564" href="Stlc.html#5295" class="InductiveConstructor Operator" + ><a name="5567" href="Stlc.html#5298" class="InductiveConstructor Operator" >⟹⟨</a - ><a name="5566" + ><a name="5569" > </a - ><a name="5567" href="Stlc.html#4819" class="InductiveConstructor" + ><a name="5570" href="Stlc.html#4822" class="InductiveConstructor" >ξ·₁</a - ><a name="5570" + ><a name="5573" > </a - ><a name="5571" class="Symbol" + ><a name="5574" class="Symbol" >(</a - ><a name="5572" href="Stlc.html#4749" class="InductiveConstructor" + ><a name="5575" href="Stlc.html#4752" class="InductiveConstructor" >βλ·</a - ><a name="5575" + ><a name="5578" > </a - ><a name="5576" href="Stlc.html#4087" class="InductiveConstructor" + ><a name="5579" href="Stlc.html#4090" class="InductiveConstructor" >value-λ</a - ><a name="5583" class="Symbol" + ><a name="5586" class="Symbol" >)</a - ><a name="5584" + ><a name="5587" > </a - ><a name="5585" href="Stlc.html#5295" class="InductiveConstructor Operator" + ><a name="5588" href="Stlc.html#5298" class="InductiveConstructor Operator" >⟩</a - ><a name="5586" + ><a name="5589" > </a - ><a name="5591" class="Symbol" + ><a name="5594" class="Symbol" >(</a - ><a name="5592" href="Stlc.html#3517" class="InductiveConstructor Operator" + ><a name="5595" href="Stlc.html#3520" class="InductiveConstructor Operator" >λ[</a - ><a name="5594" + ><a name="5597" > </a - ><a name="5595" href="Stlc.html#3874" class="Function" + ><a name="5598" href="Stlc.html#3877" class="Function" >x</a - ><a name="5596" + ><a name="5599" > </a - ><a name="5597" href="Stlc.html#3517" class="InductiveConstructor Operator" + ><a name="5600" href="Stlc.html#3520" class="InductiveConstructor Operator" >∶</a - ><a name="5598" + ><a name="5601" > </a - ><a name="5599" href="Stlc.html#2577" class="InductiveConstructor" + ><a name="5602" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a - ><a name="5600" + ><a name="5603" > </a - ><a name="5601" href="Stlc.html#3517" class="InductiveConstructor Operator" + ><a name="5604" href="Stlc.html#3520" class="InductiveConstructor Operator" >]</a - ><a name="5602" + ><a name="5605" > </a - ><a name="5603" href="Stlc.html#3904" class="Function" + ><a name="5606" href="Stlc.html#3907" class="Function" >not</a - ><a name="5606" + ><a name="5609" > </a - ><a name="5607" href="Stlc.html#3553" class="InductiveConstructor Operator" + ><a name="5610" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a - ><a name="5608" + ><a name="5611" > </a - ><a name="5609" class="Symbol" + ><a name="5612" class="Symbol" >(</a - ><a name="5610" href="Stlc.html#3904" class="Function" + ><a name="5613" href="Stlc.html#3907" class="Function" >not</a - ><a name="5613" + ><a name="5616" > </a - ><a name="5614" href="Stlc.html#3553" class="InductiveConstructor Operator" + ><a name="5617" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a - ><a name="5615" + ><a name="5618" > </a - ><a name="5616" href="Stlc.html#3501" class="InductiveConstructor" + ><a name="5619" href="Stlc.html#3504" class="InductiveConstructor" >`</a - ><a name="5617" + ><a name="5620" > </a - ><a name="5618" href="Stlc.html#3874" class="Function" + ><a name="5621" href="Stlc.html#3877" class="Function" >x</a - ><a name="5619" class="Symbol" + ><a name="5622" class="Symbol" >))</a - ><a name="5621" + ><a name="5624" > </a - ><a name="5622" href="Stlc.html#3553" class="InductiveConstructor Operator" + ><a name="5625" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a - ><a name="5623" + ><a name="5626" > </a - ><a name="5624" href="Stlc.html#3580" class="InductiveConstructor" + ><a name="5627" href="Stlc.html#3583" class="InductiveConstructor" >true</a - ><a name="5628" + ><a name="5631" > </a - ><a name="5631" href="Stlc.html#5295" class="InductiveConstructor Operator" + ><a name="5634" href="Stlc.html#5298" class="InductiveConstructor Operator" >⟹⟨</a - ><a name="5633" + ><a name="5636" > </a - ><a name="5634" href="Stlc.html#4749" class="InductiveConstructor" + ><a name="5637" href="Stlc.html#4752" class="InductiveConstructor" >βλ·</a - ><a name="5637" + ><a name="5640" > </a - ><a name="5638" href="Stlc.html#4136" class="InductiveConstructor" + ><a name="5641" href="Stlc.html#4139" class="InductiveConstructor" >value-true</a - ><a name="5648" + ><a name="5651" > </a - ><a name="5649" href="Stlc.html#5295" class="InductiveConstructor Operator" + ><a name="5652" href="Stlc.html#5298" class="InductiveConstructor Operator" >⟩</a - ><a name="5650" + ><a name="5653" > </a - ><a name="5655" href="Stlc.html#3904" class="Function" + ><a name="5658" href="Stlc.html#3907" class="Function" >not</a - ><a name="5658" + ><a name="5661" > </a - ><a name="5659" href="Stlc.html#3553" class="InductiveConstructor Operator" + ><a name="5662" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a - ><a name="5660" + ><a name="5663" > </a - ><a name="5661" class="Symbol" + ><a name="5664" class="Symbol" >(</a - ><a name="5662" href="Stlc.html#3904" class="Function" + ><a name="5665" href="Stlc.html#3907" class="Function" >not</a - ><a name="5665" + ><a name="5668" > </a - ><a name="5666" href="Stlc.html#3553" class="InductiveConstructor Operator" + ><a name="5669" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a - ><a name="5667" + ><a name="5670" > </a - ><a name="5668" href="Stlc.html#3580" class="InductiveConstructor" + ><a name="5671" href="Stlc.html#3583" class="InductiveConstructor" >true</a - ><a name="5672" class="Symbol" + ><a name="5675" class="Symbol" >)</a - ><a name="5673" + ><a name="5676" > </a - ><a name="5676" href="Stlc.html#5295" class="InductiveConstructor Operator" + ><a name="5679" href="Stlc.html#5298" class="InductiveConstructor Operator" >⟹⟨</a - ><a name="5678" + ><a name="5681" > </a - ><a name="5679" href="Stlc.html#4872" class="InductiveConstructor" + ><a name="5682" href="Stlc.html#4875" class="InductiveConstructor" >ξ·₂</a - ><a name="5682" + ><a name="5685" > </a - ><a name="5683" href="Stlc.html#4087" class="InductiveConstructor" + ><a name="5686" href="Stlc.html#4090" class="InductiveConstructor" >value-λ</a - ><a name="5690" + ><a name="5693" > </a - ><a name="5691" class="Symbol" + ><a name="5694" class="Symbol" >(</a - ><a name="5692" href="Stlc.html#4749" class="InductiveConstructor" + ><a name="5695" href="Stlc.html#4752" class="InductiveConstructor" >βλ·</a - ><a name="5695" + ><a name="5698" > </a - ><a name="5696" href="Stlc.html#4136" class="InductiveConstructor" + ><a name="5699" href="Stlc.html#4139" class="InductiveConstructor" >value-true</a - ><a name="5706" class="Symbol" + ><a name="5709" class="Symbol" >)</a - ><a name="5707" + ><a name="5710" > </a - ><a name="5708" href="Stlc.html#5295" class="InductiveConstructor Operator" + ><a name="5711" href="Stlc.html#5298" class="InductiveConstructor Operator" >⟩</a - ><a name="5709" + ><a name="5712" > </a - ><a name="5714" href="Stlc.html#3904" class="Function" + ><a name="5717" href="Stlc.html#3907" class="Function" >not</a - ><a name="5717" + ><a name="5720" > </a - ><a name="5718" href="Stlc.html#3553" class="InductiveConstructor Operator" + ><a name="5721" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a - ><a name="5719" + ><a name="5722" > </a - ><a name="5720" class="Symbol" + ><a name="5723" class="Symbol" >(</a - ><a name="5721" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="5724" href="Stlc.html#3612" class="InductiveConstructor Operator" >if</a - ><a name="5723" + ><a name="5726" > </a - ><a name="5724" href="Stlc.html#3580" class="InductiveConstructor" + ><a name="5727" href="Stlc.html#3583" class="InductiveConstructor" >true</a - ><a name="5728" + ><a name="5731" > </a - ><a name="5729" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="5732" href="Stlc.html#3612" class="InductiveConstructor Operator" >then</a - ><a name="5733" + ><a name="5736" > </a - ><a name="5734" href="Stlc.html#3594" class="InductiveConstructor" + ><a name="5737" href="Stlc.html#3597" class="InductiveConstructor" >false</a - ><a name="5739" + ><a name="5742" > </a - ><a name="5740" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="5743" href="Stlc.html#3612" class="InductiveConstructor Operator" >else</a - ><a name="5744" + ><a name="5747" > </a - ><a name="5745" href="Stlc.html#3580" class="InductiveConstructor" + ><a name="5748" href="Stlc.html#3583" class="InductiveConstructor" >true</a - ><a name="5749" class="Symbol" + ><a name="5752" class="Symbol" >)</a - ><a name="5750" + ><a name="5753" > </a - ><a name="5753" href="Stlc.html#5295" class="InductiveConstructor Operator" + ><a name="5756" href="Stlc.html#5298" class="InductiveConstructor Operator" >⟹⟨</a - ><a name="5755" + ><a name="5758" > </a - ><a name="5756" href="Stlc.html#4872" class="InductiveConstructor" + ><a name="5759" href="Stlc.html#4875" class="InductiveConstructor" >ξ·₂</a - ><a name="5759" + ><a name="5762" > </a - ><a name="5760" href="Stlc.html#4087" class="InductiveConstructor" + ><a name="5763" href="Stlc.html#4090" class="InductiveConstructor" >value-λ</a - ><a name="5767" + ><a name="5770" > </a - ><a name="5768" href="Stlc.html#4939" class="InductiveConstructor" + ><a name="5771" href="Stlc.html#4942" class="InductiveConstructor" >βif-true</a - ><a name="5776" - > </a - ><a name="5778" href="Stlc.html#5295" class="InductiveConstructor Operator" - >⟩</a ><a name="5779" + > </a + ><a name="5781" href="Stlc.html#5298" class="InductiveConstructor Operator" + >⟩</a + ><a name="5782" > </a - ><a name="5784" href="Stlc.html#3904" class="Function" + ><a name="5787" href="Stlc.html#3907" class="Function" >not</a - ><a name="5787" + ><a name="5790" > </a - ><a name="5788" href="Stlc.html#3553" class="InductiveConstructor Operator" + ><a name="5791" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a - ><a name="5789" + ><a name="5792" > </a - ><a name="5790" href="Stlc.html#3594" class="InductiveConstructor" + ><a name="5793" href="Stlc.html#3597" class="InductiveConstructor" >false</a - ><a name="5795" + ><a name="5798" > </a - ><a name="5798" href="Stlc.html#5295" class="InductiveConstructor Operator" + ><a name="5801" href="Stlc.html#5298" class="InductiveConstructor Operator" >⟹⟨</a - ><a name="5800" + ><a name="5803" > </a - ><a name="5801" href="Stlc.html#4749" class="InductiveConstructor" + ><a name="5804" href="Stlc.html#4752" class="InductiveConstructor" >βλ·</a - ><a name="5804" + ><a name="5807" > </a - ><a name="5805" href="Stlc.html#4163" class="InductiveConstructor" + ><a name="5808" href="Stlc.html#4166" class="InductiveConstructor" >value-false</a - ><a name="5816" + ><a name="5819" > </a - ><a name="5817" href="Stlc.html#5295" class="InductiveConstructor Operator" + ><a name="5820" href="Stlc.html#5298" class="InductiveConstructor Operator" >⟩</a - ><a name="5818" + ><a name="5821" > </a - ><a name="5823" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="5826" href="Stlc.html#3612" class="InductiveConstructor Operator" >if</a - ><a name="5825" + ><a name="5828" > </a - ><a name="5826" href="Stlc.html#3594" class="InductiveConstructor" + ><a name="5829" href="Stlc.html#3597" class="InductiveConstructor" >false</a - ><a name="5831" + ><a name="5834" > </a - ><a name="5832" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="5835" href="Stlc.html#3612" class="InductiveConstructor Operator" >then</a - ><a name="5836" + ><a name="5839" > </a - ><a name="5837" href="Stlc.html#3594" class="InductiveConstructor" + ><a name="5840" href="Stlc.html#3597" class="InductiveConstructor" >false</a - ><a name="5842" + ><a name="5845" > </a - ><a name="5843" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="5846" href="Stlc.html#3612" class="InductiveConstructor Operator" >else</a - ><a name="5847" + ><a name="5850" > </a - ><a name="5848" href="Stlc.html#3580" class="InductiveConstructor" + ><a name="5851" href="Stlc.html#3583" class="InductiveConstructor" >true</a - ><a name="5852" + ><a name="5855" > </a - ><a name="5855" href="Stlc.html#5295" class="InductiveConstructor Operator" + ><a name="5858" href="Stlc.html#5298" class="InductiveConstructor Operator" >⟹⟨</a - ><a name="5857" + ><a name="5860" > </a - ><a name="5858" href="Stlc.html#4992" class="InductiveConstructor" + ><a name="5861" href="Stlc.html#4995" class="InductiveConstructor" >βif-false</a - ><a name="5867" + ><a name="5870" > </a - ><a name="5868" href="Stlc.html#5295" class="InductiveConstructor Operator" + ><a name="5871" href="Stlc.html#5298" class="InductiveConstructor Operator" >⟩</a - ><a name="5869" + ><a name="5872" > </a - ><a name="5874" href="Stlc.html#3580" class="InductiveConstructor" + ><a name="5877" href="Stlc.html#3583" class="InductiveConstructor" >true</a - ><a name="5878" + ><a name="5881" > </a - ><a name="5881" href="Stlc.html#5275" class="InductiveConstructor Operator" + ><a name="5884" href="Stlc.html#5278" class="InductiveConstructor Operator" >∎</a > @@ -2867,683 +2867,683 @@ Much of the above, though not all, can be filled in using C-c C-r and C-c C-s. <pre class="Agda"> -<a name="6005" href="Stlc.html#6005" class="Function" +<a name="6008" href="Stlc.html#6008" class="Function" >Context</a - ><a name="6012" + ><a name="6015" > </a - ><a name="6013" class="Symbol" + ><a name="6016" class="Symbol" >:</a - ><a name="6014" + ><a name="6017" > </a - ><a name="6015" class="PrimitiveType" + ><a name="6018" class="PrimitiveType" >Set</a - ><a name="6018" + ><a name="6021" > </a - ><a name="6019" href="Stlc.html#6005" class="Function" + ><a name="6022" href="Stlc.html#6008" class="Function" >Context</a - ><a name="6026" + ><a name="6029" > </a - ><a name="6027" class="Symbol" + ><a name="6030" class="Symbol" >=</a - ><a name="6028" + ><a name="6031" > </a - ><a name="6029" href="Maps.html#10132" class="Function" + ><a name="6032" href="Maps.html#10132" class="Function" >PartialMap</a - ><a name="6039" + ><a name="6042" > </a - ><a name="6040" href="Stlc.html#2531" class="Datatype" + ><a name="6043" href="Stlc.html#2531" class="Datatype" >Type</a - ><a name="6044" + ><a name="6047" > </a - ><a name="6046" class="Keyword" + ><a name="6049" class="Keyword" >infix</a - ><a name="6051" - > </a - ><a name="6052" class="Number" - >10</a ><a name="6054" > </a - ><a name="6055" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6055" class="Number" + >10</a + ><a name="6057" + > </a + ><a name="6058" href="Stlc.html#6070" class="Datatype Operator" >_⊢_∶_</a - ><a name="6060" + ><a name="6063" > </a - ><a name="6062" class="Keyword" + ><a name="6065" class="Keyword" >data</a - ><a name="6066" + ><a name="6069" > </a - ><a name="6067" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6070" href="Stlc.html#6070" class="Datatype Operator" >_⊢_∶_</a - ><a name="6072" + ><a name="6075" > </a - ><a name="6073" class="Symbol" + ><a name="6076" class="Symbol" >:</a - ><a name="6074" + ><a name="6077" > </a - ><a name="6075" href="Stlc.html#6005" class="Function" + ><a name="6078" href="Stlc.html#6008" class="Function" >Context</a - ><a name="6082" + ><a name="6085" > </a - ><a name="6083" class="Symbol" + ><a name="6086" class="Symbol" >→</a - ><a name="6084" + ><a name="6087" > </a - ><a name="6085" href="Stlc.html#3482" class="Datatype" + ><a name="6088" href="Stlc.html#3485" class="Datatype" >Term</a - ><a name="6089" + ><a name="6092" > </a - ><a name="6090" class="Symbol" + ><a name="6093" class="Symbol" >→</a - ><a name="6091" + ><a name="6094" > </a - ><a name="6092" href="Stlc.html#2531" class="Datatype" + ><a name="6095" href="Stlc.html#2531" class="Datatype" >Type</a - ><a name="6096" + ><a name="6099" > </a - ><a name="6097" class="Symbol" + ><a name="6100" class="Symbol" >→</a - ><a name="6098" + ><a name="6101" > </a - ><a name="6099" class="PrimitiveType" + ><a name="6102" class="PrimitiveType" >Set</a - ><a name="6102" + ><a name="6105" > </a - ><a name="6103" class="Keyword" + ><a name="6106" class="Keyword" >where</a - ><a name="6108" + ><a name="6111" > </a - ><a name="6111" href="Stlc.html#6111" class="InductiveConstructor" + ><a name="6114" href="Stlc.html#6114" class="InductiveConstructor" >Ax</a - ><a name="6113" + ><a name="6116" > </a - ><a name="6114" class="Symbol" + ><a name="6117" class="Symbol" >:</a - ><a name="6115" + ><a name="6118" > </a - ><a name="6116" class="Symbol" + ><a name="6119" class="Symbol" >∀</a - ><a name="6117" - > </a - ><a name="6118" class="Symbol" - >{</a - ><a name="6119" href="Stlc.html#6119" class="Bound" - >Γ</a ><a name="6120" > </a - ><a name="6121" href="Stlc.html#6121" class="Bound" - >x</a - ><a name="6122" + ><a name="6121" class="Symbol" + >{</a + ><a name="6122" href="Stlc.html#6122" class="Bound" + >Γ</a + ><a name="6123" > </a - ><a name="6123" href="Stlc.html#6123" class="Bound" - >A</a - ><a name="6124" class="Symbol" - >}</a + ><a name="6124" href="Stlc.html#6124" class="Bound" + >x</a ><a name="6125" > </a - ><a name="6126" class="Symbol" + ><a name="6126" href="Stlc.html#6126" class="Bound" + >A</a + ><a name="6127" class="Symbol" + >}</a + ><a name="6128" + > </a + ><a name="6129" class="Symbol" >→</a - ><a name="6127" + ><a name="6130" > </a - ><a name="6132" href="Stlc.html#6119" class="Bound" + ><a name="6135" href="Stlc.html#6122" class="Bound" >Γ</a - ><a name="6133" + ><a name="6136" > </a - ><a name="6134" href="Stlc.html#6121" class="Bound" + ><a name="6137" href="Stlc.html#6124" class="Bound" >x</a - ><a name="6135" + ><a name="6138" > </a - ><a name="6136" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#83" class="Datatype Operator" + ><a name="6139" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#83" class="Datatype Operator" >≡</a - ><a name="6137" + ><a name="6140" > </a - ><a name="6138" href="https://agda.github.io/agda-stdlib/Data.Maybe.Base.html#373" class="InductiveConstructor" + ><a name="6141" href="https://agda.github.io/agda-stdlib/Data.Maybe.Base.html#373" class="InductiveConstructor" >just</a - ><a name="6142" + ><a name="6145" > </a - ><a name="6143" href="Stlc.html#6123" class="Bound" + ><a name="6146" href="Stlc.html#6126" class="Bound" >A</a - ><a name="6144" + ><a name="6147" > </a - ><a name="6145" class="Symbol" + ><a name="6148" class="Symbol" >→</a - ><a name="6146" + ><a name="6149" > </a - ><a name="6151" href="Stlc.html#6119" class="Bound" + ><a name="6154" href="Stlc.html#6122" class="Bound" >Γ</a - ><a name="6152" + ><a name="6155" > </a - ><a name="6153" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6156" href="Stlc.html#6070" class="Datatype Operator" >⊢</a - ><a name="6154" + ><a name="6157" > </a - ><a name="6155" href="Stlc.html#3501" class="InductiveConstructor" + ><a name="6158" href="Stlc.html#3504" class="InductiveConstructor" >`</a - ><a name="6156" + ><a name="6159" > </a - ><a name="6157" href="Stlc.html#6121" class="Bound" + ><a name="6160" href="Stlc.html#6124" class="Bound" >x</a - ><a name="6158" + ><a name="6161" > </a - ><a name="6159" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6162" href="Stlc.html#6070" class="Datatype Operator" >∶</a - ><a name="6160" + ><a name="6163" > </a - ><a name="6161" href="Stlc.html#6123" class="Bound" + ><a name="6164" href="Stlc.html#6126" class="Bound" >A</a - ><a name="6162" + ><a name="6165" > </a - ><a name="6165" href="Stlc.html#6165" class="InductiveConstructor" + ><a name="6168" href="Stlc.html#6168" class="InductiveConstructor" >⇒-I</a - ><a name="6168" + ><a name="6171" > </a - ><a name="6169" class="Symbol" + ><a name="6172" class="Symbol" >:</a - ><a name="6170" + ><a name="6173" > </a - ><a name="6171" class="Symbol" + ><a name="6174" class="Symbol" >∀</a - ><a name="6172" - > </a - ><a name="6173" class="Symbol" - >{</a - ><a name="6174" href="Stlc.html#6174" class="Bound" - >Γ</a ><a name="6175" > </a - ><a name="6176" href="Stlc.html#6176" class="Bound" + ><a name="6176" class="Symbol" + >{</a + ><a name="6177" href="Stlc.html#6177" class="Bound" + >Γ</a + ><a name="6178" + > </a + ><a name="6179" href="Stlc.html#6179" class="Bound" >x</a - ><a name="6177" + ><a name="6180" > </a - ><a name="6178" href="Stlc.html#6178" class="Bound" + ><a name="6181" href="Stlc.html#6181" class="Bound" >N</a - ><a name="6179" + ><a name="6182" > </a - ><a name="6180" href="Stlc.html#6180" class="Bound" + ><a name="6183" href="Stlc.html#6183" class="Bound" >A</a - ><a name="6181" - > </a - ><a name="6182" href="Stlc.html#6182" class="Bound" - >B</a - ><a name="6183" class="Symbol" - >}</a ><a name="6184" > </a - ><a name="6185" class="Symbol" - >→</a - ><a name="6186" - > - </a - ><a name="6191" href="Stlc.html#6174" class="Bound" - >Γ</a - ><a name="6192" - > </a - ><a name="6193" href="Maps.html#10368" class="Function Operator" - >,</a - ><a name="6194" - > </a - ><a name="6195" href="Stlc.html#6176" class="Bound" - >x</a - ><a name="6196" - > </a - ><a name="6197" href="Maps.html#10368" class="Function Operator" - >∶</a - ><a name="6198" - > </a - ><a name="6199" href="Stlc.html#6180" class="Bound" - >A</a - ><a name="6200" - > </a - ><a name="6201" href="Stlc.html#6067" class="Datatype Operator" - >⊢</a - ><a name="6202" - > </a - ><a name="6203" href="Stlc.html#6178" class="Bound" - >N</a - ><a name="6204" - > </a - ><a name="6205" href="Stlc.html#6067" class="Datatype Operator" - >∶</a - ><a name="6206" - > </a - ><a name="6207" href="Stlc.html#6182" class="Bound" + ><a name="6185" href="Stlc.html#6185" class="Bound" >B</a - ><a name="6208" + ><a name="6186" class="Symbol" + >}</a + ><a name="6187" > </a - ><a name="6209" class="Symbol" + ><a name="6188" class="Symbol" >→</a - ><a name="6210" + ><a name="6189" > </a - ><a name="6215" href="Stlc.html#6174" class="Bound" + ><a name="6194" href="Stlc.html#6177" class="Bound" >Γ</a - ><a name="6216" + ><a name="6195" > </a - ><a name="6217" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6196" href="Maps.html#10368" class="Function Operator" + >,</a + ><a name="6197" + > </a + ><a name="6198" href="Stlc.html#6179" class="Bound" + >x</a + ><a name="6199" + > </a + ><a name="6200" href="Maps.html#10368" class="Function Operator" + >∶</a + ><a name="6201" + > </a + ><a name="6202" href="Stlc.html#6183" class="Bound" + >A</a + ><a name="6203" + > </a + ><a name="6204" href="Stlc.html#6070" class="Datatype Operator" >⊢</a - ><a name="6218" + ><a name="6205" > </a - ><a name="6219" href="Stlc.html#3517" class="InductiveConstructor Operator" - >λ[</a + ><a name="6206" href="Stlc.html#6181" class="Bound" + >N</a + ><a name="6207" + > </a + ><a name="6208" href="Stlc.html#6070" class="Datatype Operator" + >∶</a + ><a name="6209" + > </a + ><a name="6210" href="Stlc.html#6185" class="Bound" + >B</a + ><a name="6211" + > </a + ><a name="6212" class="Symbol" + >→</a + ><a name="6213" + > + </a + ><a name="6218" href="Stlc.html#6177" class="Bound" + >Γ</a + ><a name="6219" + > </a + ><a name="6220" href="Stlc.html#6070" class="Datatype Operator" + >⊢</a ><a name="6221" > </a - ><a name="6222" href="Stlc.html#6176" class="Bound" + ><a name="6222" href="Stlc.html#3520" class="InductiveConstructor Operator" + >λ[</a + ><a name="6224" + > </a + ><a name="6225" href="Stlc.html#6179" class="Bound" >x</a - ><a name="6223" + ><a name="6226" > </a - ><a name="6224" href="Stlc.html#3517" class="InductiveConstructor Operator" + ><a name="6227" href="Stlc.html#3520" class="InductiveConstructor Operator" >∶</a - ><a name="6225" + ><a name="6228" > </a - ><a name="6226" href="Stlc.html#6180" class="Bound" + ><a name="6229" href="Stlc.html#6183" class="Bound" >A</a - ><a name="6227" + ><a name="6230" > </a - ><a name="6228" href="Stlc.html#3517" class="InductiveConstructor Operator" + ><a name="6231" href="Stlc.html#3520" class="InductiveConstructor Operator" >]</a - ><a name="6229" + ><a name="6232" > </a - ><a name="6230" href="Stlc.html#6178" class="Bound" + ><a name="6233" href="Stlc.html#6181" class="Bound" >N</a - ><a name="6231" + ><a name="6234" > </a - ><a name="6232" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6235" href="Stlc.html#6070" class="Datatype Operator" >∶</a - ><a name="6233" + ><a name="6236" > </a - ><a name="6234" href="Stlc.html#6180" class="Bound" + ><a name="6237" href="Stlc.html#6183" class="Bound" >A</a - ><a name="6235" + ><a name="6238" > </a - ><a name="6236" href="Stlc.html#2550" class="InductiveConstructor Operator" + ><a name="6239" href="Stlc.html#2550" class="InductiveConstructor Operator" >⇒</a - ><a name="6237" + ><a name="6240" > </a - ><a name="6238" href="Stlc.html#6182" class="Bound" + ><a name="6241" href="Stlc.html#6185" class="Bound" >B</a - ><a name="6239" + ><a name="6242" > </a - ><a name="6242" href="Stlc.html#6242" class="InductiveConstructor" + ><a name="6245" href="Stlc.html#6245" class="InductiveConstructor" >⇒-E</a - ><a name="6245" + ><a name="6248" > </a - ><a name="6246" class="Symbol" + ><a name="6249" class="Symbol" >:</a - ><a name="6247" + ><a name="6250" > </a - ><a name="6248" class="Symbol" + ><a name="6251" class="Symbol" >∀</a - ><a name="6249" - > </a - ><a name="6250" class="Symbol" - >{</a - ><a name="6251" href="Stlc.html#6251" class="Bound" - >Γ</a ><a name="6252" > </a - ><a name="6253" href="Stlc.html#6253" class="Bound" + ><a name="6253" class="Symbol" + >{</a + ><a name="6254" href="Stlc.html#6254" class="Bound" + >Γ</a + ><a name="6255" + > </a + ><a name="6256" href="Stlc.html#6256" class="Bound" >L</a - ><a name="6254" + ><a name="6257" > </a - ><a name="6255" href="Stlc.html#6255" class="Bound" + ><a name="6258" href="Stlc.html#6258" class="Bound" >M</a - ><a name="6256" + ><a name="6259" > </a - ><a name="6257" href="Stlc.html#6257" class="Bound" + ><a name="6260" href="Stlc.html#6260" class="Bound" >A</a - ><a name="6258" - > </a - ><a name="6259" href="Stlc.html#6259" class="Bound" - >B</a - ><a name="6260" class="Symbol" - >}</a ><a name="6261" > </a - ><a name="6262" class="Symbol" + ><a name="6262" href="Stlc.html#6262" class="Bound" + >B</a + ><a name="6263" class="Symbol" + >}</a + ><a name="6264" + > </a + ><a name="6265" class="Symbol" >→</a - ><a name="6263" + ><a name="6266" > </a - ><a name="6268" href="Stlc.html#6251" class="Bound" + ><a name="6271" href="Stlc.html#6254" class="Bound" >Γ</a - ><a name="6269" + ><a name="6272" > </a - ><a name="6270" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6273" href="Stlc.html#6070" class="Datatype Operator" >⊢</a - ><a name="6271" + ><a name="6274" > </a - ><a name="6272" href="Stlc.html#6253" class="Bound" + ><a name="6275" href="Stlc.html#6256" class="Bound" >L</a - ><a name="6273" + ><a name="6276" > </a - ><a name="6274" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6277" href="Stlc.html#6070" class="Datatype Operator" >∶</a - ><a name="6275" + ><a name="6278" > </a - ><a name="6276" href="Stlc.html#6257" class="Bound" + ><a name="6279" href="Stlc.html#6260" class="Bound" >A</a - ><a name="6277" + ><a name="6280" > </a - ><a name="6278" href="Stlc.html#2550" class="InductiveConstructor Operator" + ><a name="6281" href="Stlc.html#2550" class="InductiveConstructor Operator" >⇒</a - ><a name="6279" + ><a name="6282" > </a - ><a name="6280" href="Stlc.html#6259" class="Bound" + ><a name="6283" href="Stlc.html#6262" class="Bound" >B</a - ><a name="6281" + ><a name="6284" > </a - ><a name="6282" class="Symbol" + ><a name="6285" class="Symbol" >→</a - ><a name="6283" + ><a name="6286" > </a - ><a name="6288" href="Stlc.html#6251" class="Bound" + ><a name="6291" href="Stlc.html#6254" class="Bound" >Γ</a - ><a name="6289" + ><a name="6292" > </a - ><a name="6290" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6293" href="Stlc.html#6070" class="Datatype Operator" >⊢</a - ><a name="6291" + ><a name="6294" > </a - ><a name="6292" href="Stlc.html#6255" class="Bound" + ><a name="6295" href="Stlc.html#6258" class="Bound" >M</a - ><a name="6293" + ><a name="6296" > </a - ><a name="6294" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6297" href="Stlc.html#6070" class="Datatype Operator" >∶</a - ><a name="6295" + ><a name="6298" > </a - ><a name="6296" href="Stlc.html#6257" class="Bound" + ><a name="6299" href="Stlc.html#6260" class="Bound" >A</a - ><a name="6297" + ><a name="6300" > </a - ><a name="6298" class="Symbol" + ><a name="6301" class="Symbol" >→</a - ><a name="6299" + ><a name="6302" > </a - ><a name="6304" href="Stlc.html#6251" class="Bound" + ><a name="6307" href="Stlc.html#6254" class="Bound" >Γ</a - ><a name="6305" + ><a name="6308" > </a - ><a name="6306" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6309" href="Stlc.html#6070" class="Datatype Operator" >⊢</a - ><a name="6307" + ><a name="6310" > </a - ><a name="6308" href="Stlc.html#6253" class="Bound" + ><a name="6311" href="Stlc.html#6256" class="Bound" >L</a - ><a name="6309" + ><a name="6312" > </a - ><a name="6310" href="Stlc.html#3553" class="InductiveConstructor Operator" + ><a name="6313" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a - ><a name="6311" + ><a name="6314" > </a - ><a name="6312" href="Stlc.html#6255" class="Bound" + ><a name="6315" href="Stlc.html#6258" class="Bound" >M</a - ><a name="6313" + ><a name="6316" > </a - ><a name="6314" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6317" href="Stlc.html#6070" class="Datatype Operator" >∶</a - ><a name="6315" + ><a name="6318" > </a - ><a name="6316" href="Stlc.html#6259" class="Bound" + ><a name="6319" href="Stlc.html#6262" class="Bound" >B</a - ><a name="6317" + ><a name="6320" > </a - ><a name="6320" href="Stlc.html#6320" class="InductiveConstructor" + ><a name="6323" href="Stlc.html#6323" class="InductiveConstructor" >𝔹-I₁</a - ><a name="6324" + ><a name="6327" > </a - ><a name="6325" class="Symbol" + ><a name="6328" class="Symbol" >:</a - ><a name="6326" + ><a name="6329" > </a - ><a name="6327" class="Symbol" + ><a name="6330" class="Symbol" >∀</a - ><a name="6328" + ><a name="6331" > </a - ><a name="6329" class="Symbol" + ><a name="6332" class="Symbol" >{</a - ><a name="6330" href="Stlc.html#6330" class="Bound" + ><a name="6333" href="Stlc.html#6333" class="Bound" >Γ</a - ><a name="6331" class="Symbol" + ><a name="6334" class="Symbol" >}</a - ><a name="6332" + ><a name="6335" > </a - ><a name="6333" class="Symbol" + ><a name="6336" class="Symbol" >→</a - ><a name="6334" + ><a name="6337" > </a - ><a name="6339" href="Stlc.html#6330" class="Bound" + ><a name="6342" href="Stlc.html#6333" class="Bound" >Γ</a - ><a name="6340" + ><a name="6343" > </a - ><a name="6341" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6344" href="Stlc.html#6070" class="Datatype Operator" >⊢</a - ><a name="6342" + ><a name="6345" > </a - ><a name="6343" href="Stlc.html#3580" class="InductiveConstructor" + ><a name="6346" href="Stlc.html#3583" class="InductiveConstructor" >true</a - ><a name="6347" + ><a name="6350" > </a - ><a name="6348" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6351" href="Stlc.html#6070" class="Datatype Operator" >∶</a - ><a name="6349" + ><a name="6352" > </a - ><a name="6350" href="Stlc.html#2577" class="InductiveConstructor" + ><a name="6353" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a - ><a name="6351" + ><a name="6354" > </a - ><a name="6354" href="Stlc.html#6354" class="InductiveConstructor" + ><a name="6357" href="Stlc.html#6357" class="InductiveConstructor" >𝔹-I₂</a - ><a name="6358" + ><a name="6361" > </a - ><a name="6359" class="Symbol" + ><a name="6362" class="Symbol" >:</a - ><a name="6360" + ><a name="6363" > </a - ><a name="6361" class="Symbol" + ><a name="6364" class="Symbol" >∀</a - ><a name="6362" + ><a name="6365" > </a - ><a name="6363" class="Symbol" + ><a name="6366" class="Symbol" >{</a - ><a name="6364" href="Stlc.html#6364" class="Bound" + ><a name="6367" href="Stlc.html#6367" class="Bound" >Γ</a - ><a name="6365" class="Symbol" + ><a name="6368" class="Symbol" >}</a - ><a name="6366" + ><a name="6369" > </a - ><a name="6367" class="Symbol" + ><a name="6370" class="Symbol" >→</a - ><a name="6368" + ><a name="6371" > </a - ><a name="6373" href="Stlc.html#6364" class="Bound" + ><a name="6376" href="Stlc.html#6367" class="Bound" >Γ</a - ><a name="6374" + ><a name="6377" > </a - ><a name="6375" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6378" href="Stlc.html#6070" class="Datatype Operator" >⊢</a - ><a name="6376" + ><a name="6379" > </a - ><a name="6377" href="Stlc.html#3594" class="InductiveConstructor" + ><a name="6380" href="Stlc.html#3597" class="InductiveConstructor" >false</a - ><a name="6382" + ><a name="6385" > </a - ><a name="6383" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6386" href="Stlc.html#6070" class="Datatype Operator" >∶</a - ><a name="6384" + ><a name="6387" > </a - ><a name="6385" href="Stlc.html#2577" class="InductiveConstructor" + ><a name="6388" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a - ><a name="6386" + ><a name="6389" > </a - ><a name="6389" href="Stlc.html#6389" class="InductiveConstructor" + ><a name="6392" href="Stlc.html#6392" class="InductiveConstructor" >𝔹-E</a - ><a name="6392" + ><a name="6395" > </a - ><a name="6393" class="Symbol" + ><a name="6396" class="Symbol" >:</a - ><a name="6394" + ><a name="6397" > </a - ><a name="6395" class="Symbol" + ><a name="6398" class="Symbol" >∀</a - ><a name="6396" - > </a - ><a name="6397" class="Symbol" - >{</a - ><a name="6398" href="Stlc.html#6398" class="Bound" - >Γ</a ><a name="6399" > </a - ><a name="6400" href="Stlc.html#6400" class="Bound" + ><a name="6400" class="Symbol" + >{</a + ><a name="6401" href="Stlc.html#6401" class="Bound" + >Γ</a + ><a name="6402" + > </a + ><a name="6403" href="Stlc.html#6403" class="Bound" >L</a - ><a name="6401" + ><a name="6404" > </a - ><a name="6402" href="Stlc.html#6402" class="Bound" + ><a name="6405" href="Stlc.html#6405" class="Bound" >M</a - ><a name="6403" + ><a name="6406" > </a - ><a name="6404" href="Stlc.html#6404" class="Bound" + ><a name="6407" href="Stlc.html#6407" class="Bound" >N</a - ><a name="6405" - > </a - ><a name="6406" href="Stlc.html#6406" class="Bound" - >A</a - ><a name="6407" class="Symbol" - >}</a ><a name="6408" > </a - ><a name="6409" class="Symbol" + ><a name="6409" href="Stlc.html#6409" class="Bound" + >A</a + ><a name="6410" class="Symbol" + >}</a + ><a name="6411" + > </a + ><a name="6412" class="Symbol" >→</a - ><a name="6410" + ><a name="6413" > </a - ><a name="6415" href="Stlc.html#6398" class="Bound" + ><a name="6418" href="Stlc.html#6401" class="Bound" >Γ</a - ><a name="6416" + ><a name="6419" > </a - ><a name="6417" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6420" href="Stlc.html#6070" class="Datatype Operator" >⊢</a - ><a name="6418" + ><a name="6421" > </a - ><a name="6419" href="Stlc.html#6400" class="Bound" + ><a name="6422" href="Stlc.html#6403" class="Bound" >L</a - ><a name="6420" + ><a name="6423" > </a - ><a name="6421" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6424" href="Stlc.html#6070" class="Datatype Operator" >∶</a - ><a name="6422" + ><a name="6425" > </a - ><a name="6423" href="Stlc.html#2577" class="InductiveConstructor" + ><a name="6426" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a - ><a name="6424" + ><a name="6427" > </a - ><a name="6425" class="Symbol" + ><a name="6428" class="Symbol" >→</a - ><a name="6426" + ><a name="6429" > </a - ><a name="6431" href="Stlc.html#6398" class="Bound" + ><a name="6434" href="Stlc.html#6401" class="Bound" >Γ</a - ><a name="6432" + ><a name="6435" > </a - ><a name="6433" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6436" href="Stlc.html#6070" class="Datatype Operator" >⊢</a - ><a name="6434" + ><a name="6437" > </a - ><a name="6435" href="Stlc.html#6402" class="Bound" + ><a name="6438" href="Stlc.html#6405" class="Bound" >M</a - ><a name="6436" + ><a name="6439" > </a - ><a name="6437" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6440" href="Stlc.html#6070" class="Datatype Operator" >∶</a - ><a name="6438" + ><a name="6441" > </a - ><a name="6439" href="Stlc.html#6406" class="Bound" + ><a name="6442" href="Stlc.html#6409" class="Bound" >A</a - ><a name="6440" + ><a name="6443" > </a - ><a name="6441" class="Symbol" + ><a name="6444" class="Symbol" >→</a - ><a name="6442" + ><a name="6445" > </a - ><a name="6447" href="Stlc.html#6398" class="Bound" + ><a name="6450" href="Stlc.html#6401" class="Bound" >Γ</a - ><a name="6448" + ><a name="6451" > </a - ><a name="6449" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6452" href="Stlc.html#6070" class="Datatype Operator" >⊢</a - ><a name="6450" + ><a name="6453" > </a - ><a name="6451" href="Stlc.html#6404" class="Bound" + ><a name="6454" href="Stlc.html#6407" class="Bound" >N</a - ><a name="6452" + ><a name="6455" > </a - ><a name="6453" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6456" href="Stlc.html#6070" class="Datatype Operator" >∶</a - ><a name="6454" + ><a name="6457" > </a - ><a name="6455" href="Stlc.html#6406" class="Bound" + ><a name="6458" href="Stlc.html#6409" class="Bound" >A</a - ><a name="6456" + ><a name="6459" > </a - ><a name="6457" class="Symbol" + ><a name="6460" class="Symbol" >→</a - ><a name="6458" + ><a name="6461" > </a - ><a name="6463" href="Stlc.html#6398" class="Bound" + ><a name="6466" href="Stlc.html#6401" class="Bound" >Γ</a - ><a name="6464" + ><a name="6467" > </a - ><a name="6465" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6468" href="Stlc.html#6070" class="Datatype Operator" >⊢</a - ><a name="6466" - > </a - ><a name="6467" href="Stlc.html#3609" class="InductiveConstructor Operator" - >if</a ><a name="6469" > </a - ><a name="6470" href="Stlc.html#6400" class="Bound" + ><a name="6470" href="Stlc.html#3612" class="InductiveConstructor Operator" + >if</a + ><a name="6472" + > </a + ><a name="6473" href="Stlc.html#6403" class="Bound" >L</a - ><a name="6471" + ><a name="6474" > </a - ><a name="6472" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="6475" href="Stlc.html#3612" class="InductiveConstructor Operator" >then</a - ><a name="6476" + ><a name="6479" > </a - ><a name="6477" href="Stlc.html#6402" class="Bound" + ><a name="6480" href="Stlc.html#6405" class="Bound" >M</a - ><a name="6478" + ><a name="6481" > </a - ><a name="6479" href="Stlc.html#3609" class="InductiveConstructor Operator" + ><a name="6482" href="Stlc.html#3612" class="InductiveConstructor Operator" >else</a - ><a name="6483" + ><a name="6486" > </a - ><a name="6484" href="Stlc.html#6404" class="Bound" + ><a name="6487" href="Stlc.html#6407" class="Bound" >N</a - ><a name="6485" + ><a name="6488" > </a - ><a name="6486" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6489" href="Stlc.html#6070" class="Datatype Operator" >∶</a - ><a name="6487" + ><a name="6490" > </a - ><a name="6488" href="Stlc.html#6406" class="Bound" + ><a name="6491" href="Stlc.html#6409" class="Bound" >A</a > @@ -3553,205 +3553,205 @@ Much of the above, though not all, can be filled in using C-c C-r and C-c C-s. <pre class="Agda"> -<a name="6548" href="Stlc.html#6548" class="Function" +<a name="6551" href="Stlc.html#6551" class="Function" >typing₁</a - ><a name="6555" + ><a name="6558" > </a - ><a name="6556" class="Symbol" + ><a name="6559" class="Symbol" >:</a - ><a name="6557" + ><a name="6560" > </a - ><a name="6558" href="Maps.html#10265" class="Function" + ><a name="6561" href="Maps.html#10265" class="Function" >∅</a - ><a name="6559" + ><a name="6562" > </a - ><a name="6560" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6563" href="Stlc.html#6070" class="Datatype Operator" >⊢</a - ><a name="6561" + ><a name="6564" > </a - ><a name="6562" href="Stlc.html#3904" class="Function" + ><a name="6565" href="Stlc.html#3907" class="Function" >not</a - ><a name="6565" + ><a name="6568" > </a - ><a name="6566" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6569" href="Stlc.html#6070" class="Datatype Operator" >∶</a - ><a name="6567" + ><a name="6570" > </a - ><a name="6568" href="Stlc.html#2577" class="InductiveConstructor" + ><a name="6571" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a - ><a name="6569" + ><a name="6572" > </a - ><a name="6570" href="Stlc.html#2550" class="InductiveConstructor Operator" + ><a name="6573" href="Stlc.html#2550" class="InductiveConstructor Operator" >⇒</a - ><a name="6571" + ><a name="6574" > </a - ><a name="6572" href="Stlc.html#2577" class="InductiveConstructor" + ><a name="6575" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a - ><a name="6573" + ><a name="6576" > </a - ><a name="6574" href="Stlc.html#6548" class="Function" + ><a name="6577" href="Stlc.html#6551" class="Function" >typing₁</a - ><a name="6581" + ><a name="6584" > </a - ><a name="6582" class="Symbol" + ><a name="6585" class="Symbol" >=</a - ><a name="6583" + ><a name="6586" > </a - ><a name="6584" href="Stlc.html#6165" class="InductiveConstructor" + ><a name="6587" href="Stlc.html#6168" class="InductiveConstructor" >⇒-I</a - ><a name="6587" + ><a name="6590" > </a - ><a name="6588" class="Symbol" + ><a name="6591" class="Symbol" >(</a - ><a name="6589" href="Stlc.html#6389" class="InductiveConstructor" + ><a name="6592" href="Stlc.html#6392" class="InductiveConstructor" >𝔹-E</a - ><a name="6592" + ><a name="6595" > </a - ><a name="6593" class="Symbol" + ><a name="6596" class="Symbol" >(</a - ><a name="6594" href="Stlc.html#6111" class="InductiveConstructor" + ><a name="6597" href="Stlc.html#6114" class="InductiveConstructor" >Ax</a - ><a name="6596" + ><a name="6599" > </a - ><a name="6597" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#140" class="InductiveConstructor" + ><a name="6600" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#140" class="InductiveConstructor" >refl</a - ><a name="6601" class="Symbol" + ><a name="6604" class="Symbol" >)</a - ><a name="6602" + ><a name="6605" > </a - ><a name="6603" href="Stlc.html#6354" class="InductiveConstructor" + ><a name="6606" href="Stlc.html#6357" class="InductiveConstructor" >𝔹-I₂</a - ><a name="6607" + ><a name="6610" > </a - ><a name="6608" href="Stlc.html#6320" class="InductiveConstructor" + ><a name="6611" href="Stlc.html#6323" class="InductiveConstructor" >𝔹-I₁</a - ><a name="6612" class="Symbol" + ><a name="6615" class="Symbol" >)</a - ><a name="6613" + ><a name="6616" > </a - ><a name="6615" href="Stlc.html#6615" class="Function" + ><a name="6618" href="Stlc.html#6618" class="Function" >typing₂</a - ><a name="6622" + ><a name="6625" > </a - ><a name="6623" class="Symbol" + ><a name="6626" class="Symbol" >:</a - ><a name="6624" + ><a name="6627" > </a - ><a name="6625" href="Maps.html#10265" class="Function" + ><a name="6628" href="Maps.html#10265" class="Function" >∅</a - ><a name="6626" + ><a name="6629" > </a - ><a name="6627" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6630" href="Stlc.html#6070" class="Datatype Operator" >⊢</a - ><a name="6628" + ><a name="6631" > </a - ><a name="6629" href="Stlc.html#3908" class="Function" + ><a name="6632" href="Stlc.html#3911" class="Function" >two</a - ><a name="6632" + ><a name="6635" > </a - ><a name="6633" href="Stlc.html#6067" class="Datatype Operator" + ><a name="6636" href="Stlc.html#6070" class="Datatype Operator" >∶</a - ><a name="6634" - > </a - ><a name="6635" class="Symbol" - >(</a - ><a name="6636" href="Stlc.html#2577" class="InductiveConstructor" - >𝔹</a ><a name="6637" > </a - ><a name="6638" href="Stlc.html#2550" class="InductiveConstructor Operator" - >⇒</a - ><a name="6639" - > </a - ><a name="6640" href="Stlc.html#2577" class="InductiveConstructor" + ><a name="6638" class="Symbol" + >(</a + ><a name="6639" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a - ><a name="6641" class="Symbol" - >)</a + ><a name="6640" + > </a + ><a name="6641" href="Stlc.html#2550" class="InductiveConstructor Operator" + >⇒</a ><a name="6642" > </a - ><a name="6643" href="Stlc.html#2550" class="InductiveConstructor Operator" - >⇒</a - ><a name="6644" - > </a - ><a name="6645" href="Stlc.html#2577" class="InductiveConstructor" + ><a name="6643" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a - ><a name="6646" + ><a name="6644" class="Symbol" + >)</a + ><a name="6645" > </a - ><a name="6647" href="Stlc.html#2550" class="InductiveConstructor Operator" + ><a name="6646" href="Stlc.html#2550" class="InductiveConstructor Operator" >⇒</a - ><a name="6648" + ><a name="6647" > </a - ><a name="6649" href="Stlc.html#2577" class="InductiveConstructor" + ><a name="6648" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a - ><a name="6650" + ><a name="6649" + > </a + ><a name="6650" href="Stlc.html#2550" class="InductiveConstructor Operator" + >⇒</a + ><a name="6651" + > </a + ><a name="6652" href="Stlc.html#2577" class="InductiveConstructor" + >𝔹</a + ><a name="6653" > </a - ><a name="6651" href="Stlc.html#6615" class="Function" + ><a name="6654" href="Stlc.html#6618" class="Function" >typing₂</a - ><a name="6658" + ><a name="6661" > </a - ><a name="6659" class="Symbol" + ><a name="6662" class="Symbol" >=</a - ><a name="6660" + ><a name="6663" > </a - ><a name="6661" href="Stlc.html#6165" class="InductiveConstructor" + ><a name="6664" href="Stlc.html#6168" class="InductiveConstructor" >⇒-I</a - ><a name="6664" + ><a name="6667" > </a - ><a name="6665" class="Symbol" + ><a name="6668" class="Symbol" >(</a - ><a name="6666" href="Stlc.html#6165" class="InductiveConstructor" + ><a name="6669" href="Stlc.html#6168" class="InductiveConstructor" >⇒-I</a - ><a name="6669" + ><a name="6672" > </a - ><a name="6670" class="Symbol" + ><a name="6673" class="Symbol" >(</a - ><a name="6671" href="Stlc.html#6242" class="InductiveConstructor" + ><a name="6674" href="Stlc.html#6245" class="InductiveConstructor" >⇒-E</a - ><a name="6674" + ><a name="6677" > </a - ><a name="6675" class="Symbol" + ><a name="6678" class="Symbol" >(</a - ><a name="6676" href="Stlc.html#6111" class="InductiveConstructor" + ><a name="6679" href="Stlc.html#6114" class="InductiveConstructor" >Ax</a - ><a name="6678" + ><a name="6681" > </a - ><a name="6679" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#140" class="InductiveConstructor" + ><a name="6682" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#140" class="InductiveConstructor" >refl</a - ><a name="6683" class="Symbol" + ><a name="6686" class="Symbol" >)</a - ><a name="6684" + ><a name="6687" > </a - ><a name="6685" class="Symbol" + ><a name="6688" class="Symbol" >(</a - ><a name="6686" href="Stlc.html#6242" class="InductiveConstructor" + ><a name="6689" href="Stlc.html#6245" class="InductiveConstructor" >⇒-E</a - ><a name="6689" + ><a name="6692" > </a - ><a name="6690" class="Symbol" + ><a name="6693" class="Symbol" >(</a - ><a name="6691" href="Stlc.html#6111" class="InductiveConstructor" + ><a name="6694" href="Stlc.html#6114" class="InductiveConstructor" >Ax</a - ><a name="6693" + ><a name="6696" > </a - ><a name="6694" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#140" class="InductiveConstructor" + ><a name="6697" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#140" class="InductiveConstructor" >refl</a - ><a name="6698" class="Symbol" + ><a name="6701" class="Symbol" >)</a - ><a name="6699" + ><a name="6702" > </a - ><a name="6700" class="Symbol" + ><a name="6703" class="Symbol" >(</a - ><a name="6701" href="Stlc.html#6111" class="InductiveConstructor" + ><a name="6704" href="Stlc.html#6114" class="InductiveConstructor" >Ax</a - ><a name="6703" + ><a name="6706" > </a - ><a name="6704" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#140" class="InductiveConstructor" + ><a name="6707" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#140" class="InductiveConstructor" >refl</a - ><a name="6708" class="Symbol" + ><a name="6711" class="Symbol" >))))</a > @@ -3785,7 +3785,7 @@ outermost term is now `if_then_else_`, which is typed using `𝔹-E`. The ?2 : ∅ , x ∶ 𝔹 ⊢ true ∶ 𝔹 Again we fill in the three holes by typing C-c C-r in each. Agda observes -that `\` x`, `false`, and `true` are typed using `Ax`, `𝔹-I₂`, and +that `` ` x ``, `false`, and `true` are typed using `Ax`, `𝔹-I₂`, and `𝔹-I₁` respectively. The `Ax` rule in turn takes an argument, to show that `(∅ , x ∶ 𝔹) x = just 𝔹`, which can in turn be specified with a hole. After filling in all holes, the term is as above. diff --git a/out/StlcProp.md b/out/StlcProp.md index 54616b83..86a1c3bc 100644 --- a/out/StlcProp.md +++ b/out/StlcProp.md @@ -433,7 +433,7 @@ while for boolean types they are values `true` and `false`. >:</a ><a name="1234" > </a - ><a name="1235" href="Stlc.html#708" class="Datatype" + ><a name="1235" href="Stlc.html#3485" class="Datatype" >Term</a ><a name="1239" > </a @@ -441,7 +441,7 @@ while for boolean types they are values `true` and `false`. >→</a ><a name="1241" > </a - ><a name="1242" href="Stlc.html#590" class="Datatype" + ><a name="1242" href="Stlc.html#2531" class="Datatype" >Type</a ><a name="1246" > </a @@ -500,7 +500,7 @@ while for boolean types they are values `true` and `false`. > </a ><a name="1299" class="Symbol" >(</a - ><a name="1300" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="1300" href="Stlc.html#3520" class="InductiveConstructor Operator" >λ[</a ><a name="1302" > </a @@ -508,7 +508,7 @@ while for boolean types they are values `true` and `false`. >x</a ><a name="1304" > </a - ><a name="1305" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="1305" href="Stlc.html#3520" class="InductiveConstructor Operator" >∶</a ><a name="1306" > </a @@ -516,7 +516,7 @@ while for boolean types they are values `true` and `false`. >A</a ><a name="1308" > </a - ><a name="1309" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="1309" href="Stlc.html#3520" class="InductiveConstructor Operator" >]</a ><a name="1310" > </a @@ -536,7 +536,7 @@ while for boolean types they are values `true` and `false`. >A</a ><a name="1320" > </a - ><a name="1321" href="Stlc.html#609" class="InductiveConstructor Operator" + ><a name="1321" href="Stlc.html#2550" class="InductiveConstructor Operator" >⇒</a ><a name="1322" > </a @@ -559,7 +559,7 @@ while for boolean types they are values `true` and `false`. >canonical</a ><a name="1354" > </a - ><a name="1355" href="Stlc.html#806" class="InductiveConstructor" + ><a name="1355" href="Stlc.html#3583" class="InductiveConstructor" >true</a ><a name="1359" > </a @@ -567,7 +567,7 @@ while for boolean types they are values `true` and `false`. >for</a ><a name="1363" > </a - ><a name="1364" href="Stlc.html#636" class="InductiveConstructor" + ><a name="1364" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a ><a name="1365" > @@ -584,7 +584,7 @@ while for boolean types they are values `true` and `false`. >canonical</a ><a name="1395" > </a - ><a name="1396" href="Stlc.html#820" class="InductiveConstructor" + ><a name="1396" href="Stlc.html#3597" class="InductiveConstructor" >false</a ><a name="1401" > </a @@ -592,7 +592,7 @@ while for boolean types they are values `true` and `false`. >for</a ><a name="1405" > </a - ><a name="1406" href="Stlc.html#636" class="InductiveConstructor" + ><a name="1406" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a ><a name="1407" > @@ -630,7 +630,7 @@ while for boolean types they are values `true` and `false`. >∅</a ><a name="1438" > </a - ><a name="1439" href="Stlc.html#3112" class="Datatype Operator" + ><a name="1439" href="Stlc.html#6070" class="Datatype Operator" >⊢</a ><a name="1440" > </a @@ -638,7 +638,7 @@ while for boolean types they are values `true` and `false`. >L</a ><a name="1442" > </a - ><a name="1443" href="Stlc.html#3112" class="Datatype Operator" + ><a name="1443" href="Stlc.html#6070" class="Datatype Operator" >∶</a ><a name="1444" > </a @@ -650,7 +650,7 @@ while for boolean types they are values `true` and `false`. >→</a ><a name="1448" > </a - ><a name="1449" href="Stlc.html#1105" class="Datatype" + ><a name="1449" href="Stlc.html#4063" class="Datatype" >Value</a ><a name="1454" > </a @@ -685,7 +685,7 @@ while for boolean types they are values `true` and `false`. > </a ><a name="1493" class="Symbol" >(</a - ><a name="1494" href="Stlc.html#3156" class="InductiveConstructor" + ><a name="1494" href="Stlc.html#6114" class="InductiveConstructor" >Ax</a ><a name="1496" > </a @@ -704,7 +704,7 @@ while for boolean types they are values `true` and `false`. > </a ><a name="1520" class="Symbol" >(</a - ><a name="1521" href="Stlc.html#3210" class="InductiveConstructor" + ><a name="1521" href="Stlc.html#6168" class="InductiveConstructor" >⇒-I</a ><a name="1524" > </a @@ -714,7 +714,7 @@ while for boolean types they are values `true` and `false`. >)</a ><a name="1528" > </a - ><a name="1529" href="Stlc.html#1132" class="InductiveConstructor" + ><a name="1529" href="Stlc.html#4090" class="InductiveConstructor" >value-λ</a ><a name="1536" > </a @@ -733,7 +733,7 @@ while for boolean types they are values `true` and `false`. > </a ><a name="1567" class="Symbol" >(</a - ><a name="1568" href="Stlc.html#3287" class="InductiveConstructor" + ><a name="1568" href="Stlc.html#6245" class="InductiveConstructor" >⇒-E</a ><a name="1571" > </a @@ -756,11 +756,11 @@ while for boolean types they are values `true` and `false`. >canonical-forms</a ><a name="1597" > </a - ><a name="1598" href="Stlc.html#3365" class="InductiveConstructor" + ><a name="1598" href="Stlc.html#6323" class="InductiveConstructor" >𝔹-I₁</a ><a name="1602" > </a - ><a name="1603" href="Stlc.html#1181" class="InductiveConstructor" + ><a name="1603" href="Stlc.html#4139" class="InductiveConstructor" >value-true</a ><a name="1613" > </a @@ -777,11 +777,11 @@ while for boolean types they are values `true` and `false`. >canonical-forms</a ><a name="1646" > </a - ><a name="1647" href="Stlc.html#3399" class="InductiveConstructor" + ><a name="1647" href="Stlc.html#6357" class="InductiveConstructor" >𝔹-I₂</a ><a name="1651" > </a - ><a name="1652" href="Stlc.html#1208" class="InductiveConstructor" + ><a name="1652" href="Stlc.html#4166" class="InductiveConstructor" >value-false</a ><a name="1663" > </a @@ -800,7 +800,7 @@ while for boolean types they are values `true` and `false`. > </a ><a name="1698" class="Symbol" >(</a - ><a name="1699" href="Stlc.html#3434" class="InductiveConstructor" + ><a name="1699" href="Stlc.html#6392" class="InductiveConstructor" >𝔹-E</a ><a name="1702" > </a @@ -844,7 +844,7 @@ step or it is a value. >:</a ><a name="1927" > </a - ><a name="1928" href="Stlc.html#708" class="Datatype" + ><a name="1928" href="Stlc.html#3485" class="Datatype" >Term</a ><a name="1932" > </a @@ -893,7 +893,7 @@ step or it is a value. >M</a ><a name="1966" > </a - ><a name="1967" href="Stlc.html#1762" class="Datatype Operator" + ><a name="1967" href="Stlc.html#4720" class="Datatype Operator" >⟹</a ><a name="1968" > </a @@ -938,7 +938,7 @@ step or it is a value. >→</a ><a name="2001" > </a - ><a name="2002" href="Stlc.html#1105" class="Datatype" + ><a name="2002" href="Stlc.html#4063" class="Datatype" >Value</a ><a name="2007" > </a @@ -992,7 +992,7 @@ step or it is a value. >∅</a ><a name="2046" > </a - ><a name="2047" href="Stlc.html#3112" class="Datatype Operator" + ><a name="2047" href="Stlc.html#6070" class="Datatype Operator" >⊢</a ><a name="2048" > </a @@ -1000,7 +1000,7 @@ step or it is a value. >M</a ><a name="2050" > </a - ><a name="2051" href="Stlc.html#3112" class="Datatype Operator" + ><a name="2051" href="Stlc.html#6070" class="Datatype Operator" >∶</a ><a name="2052" > </a @@ -1079,7 +1079,7 @@ This completes the proof. > </a ><a name="3955" class="Symbol" >(</a - ><a name="3956" href="Stlc.html#3156" class="InductiveConstructor" + ><a name="3956" href="Stlc.html#6114" class="InductiveConstructor" >Ax</a ><a name="3958" > </a @@ -1094,7 +1094,7 @@ This completes the proof. > </a ><a name="3972" class="Symbol" >(</a - ><a name="3973" href="Stlc.html#3210" class="InductiveConstructor" + ><a name="3973" href="Stlc.html#6168" class="InductiveConstructor" >⇒-I</a ><a name="3976" > </a @@ -1112,7 +1112,7 @@ This completes the proof. >done</a ><a name="3987" > </a - ><a name="3988" href="Stlc.html#1132" class="InductiveConstructor" + ><a name="3988" href="Stlc.html#4090" class="InductiveConstructor" >value-λ</a ><a name="3995" > @@ -1123,7 +1123,7 @@ This completes the proof. > </a ><a name="4005" class="Symbol" >(</a - ><a name="4006" href="Stlc.html#3287" class="InductiveConstructor" + ><a name="4006" href="Stlc.html#6245" class="InductiveConstructor" >⇒-E</a ><a name="4009" > </a @@ -1176,7 +1176,7 @@ This completes the proof. > </a ><a name="4059" class="Symbol" >(</a - ><a name="4060" href="Stlc.html#1864" class="InductiveConstructor" + ><a name="4060" href="Stlc.html#4822" class="InductiveConstructor" >ξ·₁</a ><a name="4063" > </a @@ -1242,7 +1242,7 @@ This completes the proof. > </a ><a name="4130" class="Symbol" >(</a - ><a name="4131" href="Stlc.html#1917" class="InductiveConstructor" + ><a name="4131" href="Stlc.html#4875" class="InductiveConstructor" >ξ·₂</a ><a name="4134" > </a @@ -1312,7 +1312,7 @@ This completes the proof. > </a ><a name="4223" class="Symbol" >(</a - ><a name="4224" href="Stlc.html#1794" class="InductiveConstructor" + ><a name="4224" href="Stlc.html#4752" class="InductiveConstructor" >βλ·</a ><a name="4227" > </a @@ -1327,7 +1327,7 @@ This completes the proof. >progress</a ><a name="4244" > </a - ><a name="4245" href="Stlc.html#3365" class="InductiveConstructor" + ><a name="4245" href="Stlc.html#6323" class="InductiveConstructor" >𝔹-I₁</a ><a name="4249" > </a @@ -1339,7 +1339,7 @@ This completes the proof. >done</a ><a name="4256" > </a - ><a name="4257" href="Stlc.html#1181" class="InductiveConstructor" + ><a name="4257" href="Stlc.html#4139" class="InductiveConstructor" >value-true</a ><a name="4267" > @@ -1348,7 +1348,7 @@ This completes the proof. >progress</a ><a name="4276" > </a - ><a name="4277" href="Stlc.html#3399" class="InductiveConstructor" + ><a name="4277" href="Stlc.html#6357" class="InductiveConstructor" >𝔹-I₂</a ><a name="4281" > </a @@ -1360,7 +1360,7 @@ This completes the proof. >done</a ><a name="4288" > </a - ><a name="4289" href="Stlc.html#1208" class="InductiveConstructor" + ><a name="4289" href="Stlc.html#4166" class="InductiveConstructor" >value-false</a ><a name="4300" > @@ -1371,7 +1371,7 @@ This completes the proof. > </a ><a name="4310" class="Symbol" >(</a - ><a name="4311" href="Stlc.html#3434" class="InductiveConstructor" + ><a name="4311" href="Stlc.html#6392" class="InductiveConstructor" >𝔹-E</a ><a name="4314" > </a @@ -1428,7 +1428,7 @@ This completes the proof. > </a ><a name="4367" class="Symbol" >(</a - ><a name="4368" href="Stlc.html#2092" class="InductiveConstructor" + ><a name="4368" href="Stlc.html#5050" class="InductiveConstructor" >ξif</a ><a name="4371" > </a @@ -1492,7 +1492,7 @@ This completes the proof. >steps</a ><a name="4455" > </a - ><a name="4456" href="Stlc.html#1984" class="InductiveConstructor" + ><a name="4456" href="Stlc.html#4942" class="InductiveConstructor" >βif-true</a ><a name="4464" > @@ -1517,7 +1517,7 @@ This completes the proof. >steps</a ><a name="4494" > </a - ><a name="4495" href="Stlc.html#2037" class="InductiveConstructor" + ><a name="4495" href="Stlc.html#4995" class="InductiveConstructor" >βif-false</a > @@ -1575,7 +1575,7 @@ instead of induction on typing derivations. >∅</a ><a name="5187" > </a - ><a name="5188" href="Stlc.html#3112" class="Datatype Operator" + ><a name="5188" href="Stlc.html#6070" class="Datatype Operator" >⊢</a ><a name="5189" > </a @@ -1583,7 +1583,7 @@ instead of induction on typing derivations. >M</a ><a name="5191" > </a - ><a name="5192" href="Stlc.html#3112" class="Datatype Operator" + ><a name="5192" href="Stlc.html#6070" class="Datatype Operator" >∶</a ><a name="5193" > </a @@ -1681,7 +1681,7 @@ Formally: >→</a ><a name="7669" > </a - ><a name="7670" href="Stlc.html#708" class="Datatype" + ><a name="7670" href="Stlc.html#3485" class="Datatype" >Term</a ><a name="7674" > </a @@ -1730,7 +1730,7 @@ Formally: >∈</a ><a name="7710" > </a - ><a name="7711" href="Stlc.html#727" class="InductiveConstructor" + ><a name="7711" href="Stlc.html#3504" class="InductiveConstructor" >`</a ><a name="7712" > </a @@ -1817,7 +1817,7 @@ Formally: > </a ><a name="7761" class="Symbol" >(</a - ><a name="7762" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="7762" href="Stlc.html#3520" class="InductiveConstructor Operator" >λ[</a ><a name="7764" > </a @@ -1825,7 +1825,7 @@ Formally: >y</a ><a name="7766" > </a - ><a name="7767" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="7767" href="Stlc.html#3520" class="InductiveConstructor Operator" >∶</a ><a name="7768" > </a @@ -1833,7 +1833,7 @@ Formally: >A</a ><a name="7770" > </a - ><a name="7771" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="7771" href="Stlc.html#3520" class="InductiveConstructor Operator" >]</a ><a name="7772" > </a @@ -1906,7 +1906,7 @@ Formally: >L</a ><a name="7814" > </a - ><a name="7815" href="Stlc.html#779" class="InductiveConstructor Operator" + ><a name="7815" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a ><a name="7816" > </a @@ -1979,7 +1979,7 @@ Formally: >L</a ><a name="7858" > </a - ><a name="7859" href="Stlc.html#779" class="InductiveConstructor Operator" + ><a name="7859" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a ><a name="7860" > </a @@ -2052,7 +2052,7 @@ Formally: > </a ><a name="7903" class="Symbol" >(</a - ><a name="7904" href="Stlc.html#835" class="InductiveConstructor Operator" + ><a name="7904" href="Stlc.html#3612" class="InductiveConstructor Operator" >if</a ><a name="7906" > </a @@ -2060,7 +2060,7 @@ Formally: >L</a ><a name="7908" > </a - ><a name="7909" href="Stlc.html#835" class="InductiveConstructor Operator" + ><a name="7909" href="Stlc.html#3612" class="InductiveConstructor Operator" >then</a ><a name="7913" > </a @@ -2068,7 +2068,7 @@ Formally: >M</a ><a name="7915" > </a - ><a name="7916" href="Stlc.html#835" class="InductiveConstructor Operator" + ><a name="7916" href="Stlc.html#3612" class="InductiveConstructor Operator" >else</a ><a name="7920" > </a @@ -2141,7 +2141,7 @@ Formally: > </a ><a name="7963" class="Symbol" >(</a - ><a name="7964" href="Stlc.html#835" class="InductiveConstructor Operator" + ><a name="7964" href="Stlc.html#3612" class="InductiveConstructor Operator" >if</a ><a name="7966" > </a @@ -2149,7 +2149,7 @@ Formally: >L</a ><a name="7968" > </a - ><a name="7969" href="Stlc.html#835" class="InductiveConstructor Operator" + ><a name="7969" href="Stlc.html#3612" class="InductiveConstructor Operator" >then</a ><a name="7973" > </a @@ -2157,7 +2157,7 @@ Formally: >M</a ><a name="7975" > </a - ><a name="7976" href="Stlc.html#835" class="InductiveConstructor Operator" + ><a name="7976" href="Stlc.html#3612" class="InductiveConstructor Operator" >else</a ><a name="7980" > </a @@ -2230,7 +2230,7 @@ Formally: > </a ><a name="8023" class="Symbol" >(</a - ><a name="8024" href="Stlc.html#835" class="InductiveConstructor Operator" + ><a name="8024" href="Stlc.html#3612" class="InductiveConstructor Operator" >if</a ><a name="8026" > </a @@ -2238,7 +2238,7 @@ Formally: >L</a ><a name="8028" > </a - ><a name="8029" href="Stlc.html#835" class="InductiveConstructor Operator" + ><a name="8029" href="Stlc.html#3612" class="InductiveConstructor Operator" >then</a ><a name="8033" > </a @@ -2246,7 +2246,7 @@ Formally: >M</a ><a name="8035" > </a - ><a name="8036" href="Stlc.html#835" class="InductiveConstructor Operator" + ><a name="8036" href="Stlc.html#3612" class="InductiveConstructor Operator" >else</a ><a name="8040" > </a @@ -2278,7 +2278,7 @@ A term in which no variables appear free is said to be _closed_. >→</a ><a name="8145" > </a - ><a name="8146" href="Stlc.html#708" class="Datatype" + ><a name="8146" href="Stlc.html#3485" class="Datatype" >Term</a ><a name="8150" > </a @@ -2337,7 +2337,7 @@ A term in which no variables appear free is said to be _closed_. >:</a ><a name="8184" > </a - ><a name="8185" href="Stlc.html#708" class="Datatype" + ><a name="8185" href="Stlc.html#3485" class="Datatype" >Term</a ><a name="8189" > </a @@ -2404,7 +2404,7 @@ Here are proofs corresponding to the first two examples above. >:</a ><a name="8315" > </a - ><a name="8316" href="Stlc.html#917" class="Function" + ><a name="8316" href="Stlc.html#3875" class="Function" >f</a ><a name="8317" > </a @@ -2412,7 +2412,7 @@ Here are proofs corresponding to the first two examples above. >≢</a ><a name="8319" > </a - ><a name="8320" href="Stlc.html#919" class="Function" + ><a name="8320" href="Stlc.html#3877" class="Function" >x</a ><a name="8321" > @@ -2435,7 +2435,7 @@ Here are proofs corresponding to the first two examples above. >:</a ><a name="8345" > </a - ><a name="8346" href="Stlc.html#919" class="Function" + ><a name="8346" href="Stlc.html#3877" class="Function" >x</a ><a name="8347" > </a @@ -2445,55 +2445,55 @@ Here are proofs corresponding to the first two examples above. > </a ><a name="8350" class="Symbol" >(</a - ><a name="8351" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="8351" href="Stlc.html#3520" class="InductiveConstructor Operator" >λ[</a ><a name="8353" > </a - ><a name="8354" href="Stlc.html#917" class="Function" + ><a name="8354" href="Stlc.html#3875" class="Function" >f</a ><a name="8355" > </a - ><a name="8356" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="8356" href="Stlc.html#3520" class="InductiveConstructor Operator" >∶</a ><a name="8357" > </a ><a name="8358" class="Symbol" >(</a - ><a name="8359" href="Stlc.html#636" class="InductiveConstructor" + ><a name="8359" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a ><a name="8360" > </a - ><a name="8361" href="Stlc.html#609" class="InductiveConstructor Operator" + ><a name="8361" href="Stlc.html#2550" class="InductiveConstructor Operator" >⇒</a ><a name="8362" > </a - ><a name="8363" href="Stlc.html#636" class="InductiveConstructor" + ><a name="8363" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a ><a name="8364" class="Symbol" >)</a ><a name="8365" > </a - ><a name="8366" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="8366" href="Stlc.html#3520" class="InductiveConstructor Operator" >]</a ><a name="8367" > </a - ><a name="8368" href="Stlc.html#727" class="InductiveConstructor" + ><a name="8368" href="Stlc.html#3504" class="InductiveConstructor" >`</a ><a name="8369" > </a - ><a name="8370" href="Stlc.html#917" class="Function" + ><a name="8370" href="Stlc.html#3875" class="Function" >f</a ><a name="8371" > </a - ><a name="8372" href="Stlc.html#779" class="InductiveConstructor Operator" + ><a name="8372" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a ><a name="8373" > </a - ><a name="8374" href="Stlc.html#727" class="InductiveConstructor" + ><a name="8374" href="Stlc.html#3504" class="InductiveConstructor" >`</a ><a name="8375" > </a - ><a name="8376" href="Stlc.html#919" class="Function" + ><a name="8376" href="Stlc.html#3877" class="Function" >x</a ><a name="8377" class="Symbol" >)</a @@ -2538,7 +2538,7 @@ Here are proofs corresponding to the first two examples above. >:</a ><a name="8439" > </a - ><a name="8440" href="Stlc.html#917" class="Function" + ><a name="8440" href="Stlc.html#3875" class="Function" >f</a ><a name="8441" > </a @@ -2548,55 +2548,55 @@ Here are proofs corresponding to the first two examples above. > </a ><a name="8444" class="Symbol" >(</a - ><a name="8445" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="8445" href="Stlc.html#3520" class="InductiveConstructor Operator" >λ[</a ><a name="8447" > </a - ><a name="8448" href="Stlc.html#917" class="Function" + ><a name="8448" href="Stlc.html#3875" class="Function" >f</a ><a name="8449" > </a - ><a name="8450" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="8450" href="Stlc.html#3520" class="InductiveConstructor Operator" >∶</a ><a name="8451" > </a ><a name="8452" class="Symbol" >(</a - ><a name="8453" href="Stlc.html#636" class="InductiveConstructor" + ><a name="8453" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a ><a name="8454" > </a - ><a name="8455" href="Stlc.html#609" class="InductiveConstructor Operator" + ><a name="8455" href="Stlc.html#2550" class="InductiveConstructor Operator" >⇒</a ><a name="8456" > </a - ><a name="8457" href="Stlc.html#636" class="InductiveConstructor" + ><a name="8457" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a ><a name="8458" class="Symbol" >)</a ><a name="8459" > </a - ><a name="8460" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="8460" href="Stlc.html#3520" class="InductiveConstructor Operator" >]</a ><a name="8461" > </a - ><a name="8462" href="Stlc.html#727" class="InductiveConstructor" + ><a name="8462" href="Stlc.html#3504" class="InductiveConstructor" >`</a ><a name="8463" > </a - ><a name="8464" href="Stlc.html#917" class="Function" + ><a name="8464" href="Stlc.html#3875" class="Function" >f</a ><a name="8465" > </a - ><a name="8466" href="Stlc.html#779" class="InductiveConstructor Operator" + ><a name="8466" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a ><a name="8467" > </a - ><a name="8468" href="Stlc.html#727" class="InductiveConstructor" + ><a name="8468" href="Stlc.html#3504" class="InductiveConstructor" >`</a ><a name="8469" > </a - ><a name="8470" href="Stlc.html#919" class="Function" + ><a name="8470" href="Stlc.html#3877" class="Function" >x</a ><a name="8471" class="Symbol" >)</a @@ -2654,7 +2654,7 @@ Prove formally the remaining examples given above. >:</a ><a name="8650" > </a - ><a name="8651" href="Stlc.html#919" class="Function" + ><a name="8651" href="Stlc.html#3877" class="Function" >x</a ><a name="8652" > </a @@ -2664,69 +2664,69 @@ Prove formally the remaining examples given above. > </a ><a name="8655" class="Symbol" >((</a - ><a name="8657" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="8657" href="Stlc.html#3520" class="InductiveConstructor Operator" >λ[</a ><a name="8659" > </a - ><a name="8660" href="Stlc.html#917" class="Function" + ><a name="8660" href="Stlc.html#3875" class="Function" >f</a ><a name="8661" > </a - ><a name="8662" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="8662" href="Stlc.html#3520" class="InductiveConstructor Operator" >∶</a ><a name="8663" > </a ><a name="8664" class="Symbol" >(</a - ><a name="8665" href="Stlc.html#636" class="InductiveConstructor" + ><a name="8665" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a ><a name="8666" > </a - ><a name="8667" href="Stlc.html#609" class="InductiveConstructor Operator" + ><a name="8667" href="Stlc.html#2550" class="InductiveConstructor Operator" >⇒</a ><a name="8668" > </a - ><a name="8669" href="Stlc.html#636" class="InductiveConstructor" + ><a name="8669" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a ><a name="8670" class="Symbol" >)</a ><a name="8671" > </a - ><a name="8672" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="8672" href="Stlc.html#3520" class="InductiveConstructor Operator" >]</a ><a name="8673" > </a - ><a name="8674" href="Stlc.html#727" class="InductiveConstructor" + ><a name="8674" href="Stlc.html#3504" class="InductiveConstructor" >`</a ><a name="8675" > </a - ><a name="8676" href="Stlc.html#917" class="Function" + ><a name="8676" href="Stlc.html#3875" class="Function" >f</a ><a name="8677" > </a - ><a name="8678" href="Stlc.html#779" class="InductiveConstructor Operator" + ><a name="8678" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a ><a name="8679" > </a - ><a name="8680" href="Stlc.html#727" class="InductiveConstructor" + ><a name="8680" href="Stlc.html#3504" class="InductiveConstructor" >`</a ><a name="8681" > </a - ><a name="8682" href="Stlc.html#919" class="Function" + ><a name="8682" href="Stlc.html#3877" class="Function" >x</a ><a name="8683" class="Symbol" >)</a ><a name="8684" > </a - ><a name="8685" href="Stlc.html#779" class="InductiveConstructor Operator" + ><a name="8685" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a ><a name="8686" > </a - ><a name="8687" href="Stlc.html#727" class="InductiveConstructor" + ><a name="8687" href="Stlc.html#3504" class="InductiveConstructor" >`</a ><a name="8688" > </a - ><a name="8689" href="Stlc.html#917" class="Function" + ><a name="8689" href="Stlc.html#3875" class="Function" >f</a ><a name="8690" class="Symbol" >)</a @@ -2741,7 +2741,7 @@ Prove formally the remaining examples given above. >:</a ><a name="8709" > </a - ><a name="8710" href="Stlc.html#917" class="Function" + ><a name="8710" href="Stlc.html#3875" class="Function" >f</a ><a name="8711" > </a @@ -2751,69 +2751,69 @@ Prove formally the remaining examples given above. > </a ><a name="8714" class="Symbol" >((</a - ><a name="8716" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="8716" href="Stlc.html#3520" class="InductiveConstructor Operator" >λ[</a ><a name="8718" > </a - ><a name="8719" href="Stlc.html#917" class="Function" + ><a name="8719" href="Stlc.html#3875" class="Function" >f</a ><a name="8720" > </a - ><a name="8721" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="8721" href="Stlc.html#3520" class="InductiveConstructor Operator" >∶</a ><a name="8722" > </a ><a name="8723" class="Symbol" >(</a - ><a name="8724" href="Stlc.html#636" class="InductiveConstructor" + ><a name="8724" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a ><a name="8725" > </a - ><a name="8726" href="Stlc.html#609" class="InductiveConstructor Operator" + ><a name="8726" href="Stlc.html#2550" class="InductiveConstructor Operator" >⇒</a ><a name="8727" > </a - ><a name="8728" href="Stlc.html#636" class="InductiveConstructor" + ><a name="8728" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a ><a name="8729" class="Symbol" >)</a ><a name="8730" > </a - ><a name="8731" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="8731" href="Stlc.html#3520" class="InductiveConstructor Operator" >]</a ><a name="8732" > </a - ><a name="8733" href="Stlc.html#727" class="InductiveConstructor" + ><a name="8733" href="Stlc.html#3504" class="InductiveConstructor" >`</a ><a name="8734" > </a - ><a name="8735" href="Stlc.html#917" class="Function" + ><a name="8735" href="Stlc.html#3875" class="Function" >f</a ><a name="8736" > </a - ><a name="8737" href="Stlc.html#779" class="InductiveConstructor Operator" + ><a name="8737" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a ><a name="8738" > </a - ><a name="8739" href="Stlc.html#727" class="InductiveConstructor" + ><a name="8739" href="Stlc.html#3504" class="InductiveConstructor" >`</a ><a name="8740" > </a - ><a name="8741" href="Stlc.html#919" class="Function" + ><a name="8741" href="Stlc.html#3877" class="Function" >x</a ><a name="8742" class="Symbol" >)</a ><a name="8743" > </a - ><a name="8744" href="Stlc.html#779" class="InductiveConstructor Operator" + ><a name="8744" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a ><a name="8745" > </a - ><a name="8746" href="Stlc.html#727" class="InductiveConstructor" + ><a name="8746" href="Stlc.html#3504" class="InductiveConstructor" >`</a ><a name="8747" > </a - ><a name="8748" href="Stlc.html#917" class="Function" + ><a name="8748" href="Stlc.html#3875" class="Function" >f</a ><a name="8749" class="Symbol" >)</a @@ -2828,7 +2828,7 @@ Prove formally the remaining examples given above. >:</a ><a name="8768" > </a - ><a name="8769" href="Stlc.html#919" class="Function" + ><a name="8769" href="Stlc.html#3877" class="Function" >x</a ><a name="8770" > </a @@ -2838,75 +2838,75 @@ Prove formally the remaining examples given above. > </a ><a name="8773" class="Symbol" >(</a - ><a name="8774" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="8774" href="Stlc.html#3520" class="InductiveConstructor Operator" >λ[</a ><a name="8776" > </a - ><a name="8777" href="Stlc.html#917" class="Function" + ><a name="8777" href="Stlc.html#3875" class="Function" >f</a ><a name="8778" > </a - ><a name="8779" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="8779" href="Stlc.html#3520" class="InductiveConstructor Operator" >∶</a ><a name="8780" > </a ><a name="8781" class="Symbol" >(</a - ><a name="8782" href="Stlc.html#636" class="InductiveConstructor" + ><a name="8782" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a ><a name="8783" > </a - ><a name="8784" href="Stlc.html#609" class="InductiveConstructor Operator" + ><a name="8784" href="Stlc.html#2550" class="InductiveConstructor Operator" >⇒</a ><a name="8785" > </a - ><a name="8786" href="Stlc.html#636" class="InductiveConstructor" + ><a name="8786" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a ><a name="8787" class="Symbol" >)</a ><a name="8788" > </a - ><a name="8789" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="8789" href="Stlc.html#3520" class="InductiveConstructor Operator" >]</a ><a name="8790" > </a - ><a name="8791" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="8791" href="Stlc.html#3520" class="InductiveConstructor Operator" >λ[</a ><a name="8793" > </a - ><a name="8794" href="Stlc.html#919" class="Function" + ><a name="8794" href="Stlc.html#3877" class="Function" >x</a ><a name="8795" > </a - ><a name="8796" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="8796" href="Stlc.html#3520" class="InductiveConstructor Operator" >∶</a ><a name="8797" > </a - ><a name="8798" href="Stlc.html#636" class="InductiveConstructor" + ><a name="8798" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a ><a name="8799" > </a - ><a name="8800" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="8800" href="Stlc.html#3520" class="InductiveConstructor Operator" >]</a ><a name="8801" > </a - ><a name="8802" href="Stlc.html#727" class="InductiveConstructor" + ><a name="8802" href="Stlc.html#3504" class="InductiveConstructor" >`</a ><a name="8803" > </a - ><a name="8804" href="Stlc.html#917" class="Function" + ><a name="8804" href="Stlc.html#3875" class="Function" >f</a ><a name="8805" > </a - ><a name="8806" href="Stlc.html#779" class="InductiveConstructor Operator" + ><a name="8806" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a ><a name="8807" > </a - ><a name="8808" href="Stlc.html#727" class="InductiveConstructor" + ><a name="8808" href="Stlc.html#3504" class="InductiveConstructor" >`</a ><a name="8809" > </a - ><a name="8810" href="Stlc.html#919" class="Function" + ><a name="8810" href="Stlc.html#3877" class="Function" >x</a ><a name="8811" class="Symbol" >)</a @@ -2921,7 +2921,7 @@ Prove formally the remaining examples given above. >:</a ><a name="8830" > </a - ><a name="8831" href="Stlc.html#917" class="Function" + ><a name="8831" href="Stlc.html#3875" class="Function" >f</a ><a name="8832" > </a @@ -2931,75 +2931,75 @@ Prove formally the remaining examples given above. > </a ><a name="8835" class="Symbol" >(</a - ><a name="8836" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="8836" href="Stlc.html#3520" class="InductiveConstructor Operator" >λ[</a ><a name="8838" > </a - ><a name="8839" href="Stlc.html#917" class="Function" + ><a name="8839" href="Stlc.html#3875" class="Function" >f</a ><a name="8840" > </a - ><a name="8841" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="8841" href="Stlc.html#3520" class="InductiveConstructor Operator" >∶</a ><a name="8842" > </a ><a name="8843" class="Symbol" >(</a - ><a name="8844" href="Stlc.html#636" class="InductiveConstructor" + ><a name="8844" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a ><a name="8845" > </a - ><a name="8846" href="Stlc.html#609" class="InductiveConstructor Operator" + ><a name="8846" href="Stlc.html#2550" class="InductiveConstructor Operator" >⇒</a ><a name="8847" > </a - ><a name="8848" href="Stlc.html#636" class="InductiveConstructor" + ><a name="8848" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a ><a name="8849" class="Symbol" >)</a ><a name="8850" > </a - ><a name="8851" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="8851" href="Stlc.html#3520" class="InductiveConstructor Operator" >]</a ><a name="8852" > </a - ><a name="8853" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="8853" href="Stlc.html#3520" class="InductiveConstructor Operator" >λ[</a ><a name="8855" > </a - ><a name="8856" href="Stlc.html#919" class="Function" + ><a name="8856" href="Stlc.html#3877" class="Function" >x</a ><a name="8857" > </a - ><a name="8858" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="8858" href="Stlc.html#3520" class="InductiveConstructor Operator" >∶</a ><a name="8859" > </a - ><a name="8860" href="Stlc.html#636" class="InductiveConstructor" + ><a name="8860" href="Stlc.html#2577" class="InductiveConstructor" >𝔹</a ><a name="8861" > </a - ><a name="8862" href="Stlc.html#743" class="InductiveConstructor Operator" + ><a name="8862" href="Stlc.html#3520" class="InductiveConstructor Operator" >]</a ><a name="8863" > </a - ><a name="8864" href="Stlc.html#727" class="InductiveConstructor" + ><a name="8864" href="Stlc.html#3504" class="InductiveConstructor" >`</a ><a name="8865" > </a - ><a name="8866" href="Stlc.html#917" class="Function" + ><a name="8866" href="Stlc.html#3875" class="Function" >f</a ><a name="8867" > </a - ><a name="8868" href="Stlc.html#779" class="InductiveConstructor Operator" + ><a name="8868" href="Stlc.html#3556" class="InductiveConstructor Operator" >·</a ><a name="8869" > </a - ><a name="8870" href="Stlc.html#727" class="InductiveConstructor" + ><a name="8870" href="Stlc.html#3504" class="InductiveConstructor" >`</a ><a name="8871" > </a - ><a name="8872" href="Stlc.html#919" class="Function" + ><a name="8872" href="Stlc.html#3877" class="Function" >x</a ><a name="8873" class="Symbol" >)</a @@ -3076,7 +3076,7 @@ then `Γ` must assign a type to `x`. >Γ</a ><a name="9392" > </a - ><a name="9393" href="Stlc.html#3112" class="Datatype Operator" + ><a name="9393" href="Stlc.html#6070" class="Datatype Operator" >⊢</a ><a name="9394" > </a @@ -3084,7 +3084,7 @@ then `Γ` must assign a type to `x`. >M</a ><a name="9396" > </a - ><a name="9397" href="Stlc.html#3112" class="Datatype Operator" + ><a name="9397" href="Stlc.html#6070" class="Datatype Operator" >∶</a ><a name="9398" > </a @@ -3138,7 +3138,7 @@ _Proof_: We show, by induction on the proof that `x` appears free in `M`, that, for all contexts `Γ`, if `M` is well typed under `Γ`, then `Γ` assigns some type to `x`. - - If the last rule used was `free-\``, then `M = \` x`, and from + - If the last rule used was `` free-` ``, then `M = `` `x ``, and from the assumption that `M` is well typed under `Γ` we have immediately that `Γ` assigns a type to `x`. @@ -3164,454 +3164,454 @@ _Proof_: We show, by induction on the proof that `x` appears <pre class="Agda"> -<a name="10865" href="StlcProp.html#9356" class="Function" +<a name="10871" href="StlcProp.html#9356" class="Function" >free-lemma</a - ><a name="10875" + ><a name="10881" > </a - ><a name="10876" href="StlcProp.html#7689" class="InductiveConstructor" + ><a name="10882" href="StlcProp.html#7689" class="InductiveConstructor" >free-`</a - ><a name="10882" + ><a name="10888" > </a - ><a name="10883" class="Symbol" + ><a name="10889" class="Symbol" >(</a - ><a name="10884" href="Stlc.html#3156" class="InductiveConstructor" + ><a name="10890" href="Stlc.html#6114" class="InductiveConstructor" >Ax</a - ><a name="10886" - > </a - ><a name="10887" href="StlcProp.html#10887" class="Bound" - >Γx≡A</a - ><a name="10891" class="Symbol" - >)</a ><a name="10892" > </a - ><a name="10893" class="Symbol" - >=</a - ><a name="10894" - > </a - ><a name="10895" class="Symbol" - >(_</a - ><a name="10897" - > </a - ><a name="10898" href="https://agda.github.io/agda-stdlib/Data.Product.html#509" class="InductiveConstructor Operator" - >,</a - ><a name="10899" - > </a - ><a name="10900" href="StlcProp.html#10887" class="Bound" + ><a name="10893" href="StlcProp.html#10893" class="Bound" >Γx≡A</a - ><a name="10904" class="Symbol" + ><a name="10897" class="Symbol" >)</a + ><a name="10898" + > </a + ><a name="10899" class="Symbol" + >=</a + ><a name="10900" + > </a + ><a name="10901" class="Symbol" + >(_</a + ><a name="10903" + > </a + ><a name="10904" href="https://agda.github.io/agda-stdlib/Data.Product.html#509" class="InductiveConstructor Operator" + >,</a ><a name="10905" + > </a + ><a name="10906" href="StlcProp.html#10893" class="Bound" + >Γx≡A</a + ><a name="10910" class="Symbol" + >)</a + ><a name="10911" > </a - ><a name="10906" href="StlcProp.html#9356" class="Function" + ><a name="10912" href="StlcProp.html#9356" class="Function" >free-lemma</a - ><a name="10916" + ><a name="10922" > </a - ><a name="10917" class="Symbol" + ><a name="10923" class="Symbol" >(</a - ><a name="10918" href="StlcProp.html#7778" class="InductiveConstructor" + ><a name="10924" href="StlcProp.html#7778" class="InductiveConstructor" >free-·₁</a - ><a name="10925" + ><a name="10931" > </a - ><a name="10926" href="StlcProp.html#10926" class="Bound" + ><a name="10932" href="StlcProp.html#10932" class="Bound" >x∈L</a - ><a name="10929" class="Symbol" + ><a name="10935" class="Symbol" >)</a - ><a name="10930" + ><a name="10936" > </a - ><a name="10931" class="Symbol" + ><a name="10937" class="Symbol" >(</a - ><a name="10932" href="Stlc.html#3287" class="InductiveConstructor" + ><a name="10938" href="Stlc.html#6245" class="InductiveConstructor" >⇒-E</a - ><a name="10935" + ><a name="10941" > </a - ><a name="10936" href="StlcProp.html#10936" class="Bound" + ><a name="10942" href="StlcProp.html#10942" class="Bound" >⊢L</a - ><a name="10938" - > </a - ><a name="10939" href="StlcProp.html#10939" class="Bound" - >⊢M</a - ><a name="10941" class="Symbol" - >)</a - ><a name="10942" - > </a - ><a name="10943" class="Symbol" - >=</a ><a name="10944" > </a - ><a name="10945" href="StlcProp.html#9356" class="Function" + ><a name="10945" href="StlcProp.html#10945" class="Bound" + >⊢M</a + ><a name="10947" class="Symbol" + >)</a + ><a name="10948" + > </a + ><a name="10949" class="Symbol" + >=</a + ><a name="10950" + > </a + ><a name="10951" href="StlcProp.html#9356" class="Function" >free-lemma</a - ><a name="10955" + ><a name="10961" > </a - ><a name="10956" href="StlcProp.html#10926" class="Bound" + ><a name="10962" href="StlcProp.html#10932" class="Bound" >x∈L</a - ><a name="10959" + ><a name="10965" > </a - ><a name="10960" href="StlcProp.html#10936" class="Bound" + ><a name="10966" href="StlcProp.html#10942" class="Bound" >⊢L</a - ><a name="10962" + ><a name="10968" > </a - ><a name="10963" href="StlcProp.html#9356" class="Function" + ><a name="10969" href="StlcProp.html#9356" class="Function" >free-lemma</a - ><a name="10973" + ><a name="10979" > </a - ><a name="10974" class="Symbol" + ><a name="10980" class="Symbol" >(</a - ><a name="10975" href="StlcProp.html#7822" class="InductiveConstructor" + ><a name="10981" href="StlcProp.html#7822" class="InductiveConstructor" >free-·₂</a - ><a name="10982" + ><a name="10988" > </a - ><a name="10983" href="StlcProp.html#10983" class="Bound" + ><a name="10989" href="StlcProp.html#10989" class="Bound" >x∈M</a - ><a name="10986" class="Symbol" + ><a name="10992" class="Symbol" >)</a - ><a name="10987" + ><a name="10993" > </a - ><a name="10988" class="Symbol" + ><a name="10994" class="Symbol" >(</a - ><a name="10989" href="Stlc.html#3287" class="InductiveConstructor" + ><a name="10995" href="Stlc.html#6245" class="InductiveConstructor" >⇒-E</a - ><a name="10992" + ><a name="10998" > </a - ><a name="10993" href="StlcProp.html#10993" class="Bound" + ><a name="10999" href="StlcProp.html#10999" class="Bound" >⊢L</a - ><a name="10995" - > </a - ><a name="10996" href="StlcProp.html#10996" class="Bound" - >⊢M</a - ><a name="10998" class="Symbol" - >)</a - ><a name="10999" - > </a - ><a name="11000" class="Symbol" - >=</a ><a name="11001" > </a - ><a name="11002" href="StlcProp.html#9356" class="Function" - >free-lemma</a - ><a name="11012" - > </a - ><a name="11013" href="StlcProp.html#10983" class="Bound" - >x∈M</a - ><a name="11016" - > </a - ><a name="11017" href="StlcProp.html#10996" class="Bound" + ><a name="11002" href="StlcProp.html#11002" class="Bound" >⊢M</a - ><a name="11019" + ><a name="11004" class="Symbol" + >)</a + ><a name="11005" + > </a + ><a name="11006" class="Symbol" + >=</a + ><a name="11007" + > </a + ><a name="11008" href="StlcProp.html#9356" class="Function" + >free-lemma</a + ><a name="11018" + > </a + ><a name="11019" href="StlcProp.html#10989" class="Bound" + >x∈M</a + ><a name="11022" + > </a + ><a name="11023" href="StlcProp.html#11002" class="Bound" + >⊢M</a + ><a name="11025" > </a - ><a name="11020" href="StlcProp.html#9356" class="Function" + ><a name="11026" href="StlcProp.html#9356" class="Function" >free-lemma</a - ><a name="11030" + ><a name="11036" > </a - ><a name="11031" class="Symbol" + ><a name="11037" class="Symbol" >(</a - ><a name="11032" href="StlcProp.html#7866" class="InductiveConstructor" + ><a name="11038" href="StlcProp.html#7866" class="InductiveConstructor" >free-if₁</a - ><a name="11040" + ><a name="11046" > </a - ><a name="11041" href="StlcProp.html#11041" class="Bound" + ><a name="11047" href="StlcProp.html#11047" class="Bound" >x∈L</a - ><a name="11044" class="Symbol" + ><a name="11050" class="Symbol" >)</a - ><a name="11045" + ><a name="11051" > </a - ><a name="11046" class="Symbol" + ><a name="11052" class="Symbol" >(</a - ><a name="11047" href="Stlc.html#3434" class="InductiveConstructor" + ><a name="11053" href="Stlc.html#6392" class="InductiveConstructor" >𝔹-E</a - ><a name="11050" - > </a - ><a name="11051" href="StlcProp.html#11051" class="Bound" - >⊢L</a - ><a name="11053" - > </a - ><a name="11054" href="StlcProp.html#11054" class="Bound" - >⊢M</a ><a name="11056" > </a ><a name="11057" href="StlcProp.html#11057" class="Bound" - >⊢N</a - ><a name="11059" class="Symbol" - >)</a - ><a name="11060" + >⊢L</a + ><a name="11059" > </a - ><a name="11061" class="Symbol" - >=</a + ><a name="11060" href="StlcProp.html#11060" class="Bound" + >⊢M</a ><a name="11062" > </a - ><a name="11063" href="StlcProp.html#9356" class="Function" + ><a name="11063" href="StlcProp.html#11063" class="Bound" + >⊢N</a + ><a name="11065" class="Symbol" + >)</a + ><a name="11066" + > </a + ><a name="11067" class="Symbol" + >=</a + ><a name="11068" + > </a + ><a name="11069" href="StlcProp.html#9356" class="Function" >free-lemma</a - ><a name="11073" + ><a name="11079" > </a - ><a name="11074" href="StlcProp.html#11041" class="Bound" + ><a name="11080" href="StlcProp.html#11047" class="Bound" >x∈L</a - ><a name="11077" + ><a name="11083" > </a - ><a name="11078" href="StlcProp.html#11051" class="Bound" + ><a name="11084" href="StlcProp.html#11057" class="Bound" >⊢L</a - ><a name="11080" + ><a name="11086" > </a - ><a name="11081" href="StlcProp.html#9356" class="Function" + ><a name="11087" href="StlcProp.html#9356" class="Function" >free-lemma</a - ><a name="11091" + ><a name="11097" > </a - ><a name="11092" class="Symbol" + ><a name="11098" class="Symbol" >(</a - ><a name="11093" href="StlcProp.html#7926" class="InductiveConstructor" + ><a name="11099" href="StlcProp.html#7926" class="InductiveConstructor" >free-if₂</a - ><a name="11101" + ><a name="11107" > </a - ><a name="11102" href="StlcProp.html#11102" class="Bound" + ><a name="11108" href="StlcProp.html#11108" class="Bound" >x∈M</a - ><a name="11105" class="Symbol" + ><a name="11111" class="Symbol" >)</a - ><a name="11106" + ><a name="11112" > </a - ><a name="11107" class="Symbol" + ><a name="11113" class="Symbol" >(</a - ><a name="11108" href="Stlc.html#3434" class="InductiveConstructor" + ><a name="11114" href="Stlc.html#6392" class="InductiveConstructor" >𝔹-E</a - ><a name="11111" - > </a - ><a name="11112" href="StlcProp.html#11112" class="Bound" - >⊢L</a - ><a name="11114" - > </a - ><a name="11115" href="StlcProp.html#11115" class="Bound" - >⊢M</a ><a name="11117" > </a ><a name="11118" href="StlcProp.html#11118" class="Bound" - >⊢N</a - ><a name="11120" class="Symbol" - >)</a - ><a name="11121" + >⊢L</a + ><a name="11120" > </a - ><a name="11122" class="Symbol" - >=</a + ><a name="11121" href="StlcProp.html#11121" class="Bound" + >⊢M</a ><a name="11123" > </a - ><a name="11124" href="StlcProp.html#9356" class="Function" + ><a name="11124" href="StlcProp.html#11124" class="Bound" + >⊢N</a + ><a name="11126" class="Symbol" + >)</a + ><a name="11127" + > </a + ><a name="11128" class="Symbol" + >=</a + ><a name="11129" + > </a + ><a name="11130" href="StlcProp.html#9356" class="Function" >free-lemma</a - ><a name="11134" + ><a name="11140" > </a - ><a name="11135" href="StlcProp.html#11102" class="Bound" + ><a name="11141" href="StlcProp.html#11108" class="Bound" >x∈M</a - ><a name="11138" + ><a name="11144" > </a - ><a name="11139" href="StlcProp.html#11115" class="Bound" + ><a name="11145" href="StlcProp.html#11121" class="Bound" >⊢M</a - ><a name="11141" + ><a name="11147" > </a - ><a name="11142" href="StlcProp.html#9356" class="Function" + ><a name="11148" href="StlcProp.html#9356" class="Function" >free-lemma</a - ><a name="11152" + ><a name="11158" > </a - ><a name="11153" class="Symbol" + ><a name="11159" class="Symbol" >(</a - ><a name="11154" href="StlcProp.html#7986" class="InductiveConstructor" + ><a name="11160" href="StlcProp.html#7986" class="InductiveConstructor" >free-if₃</a - ><a name="11162" + ><a name="11168" > </a - ><a name="11163" href="StlcProp.html#11163" class="Bound" + ><a name="11169" href="StlcProp.html#11169" class="Bound" >x∈N</a - ><a name="11166" class="Symbol" + ><a name="11172" class="Symbol" >)</a - ><a name="11167" + ><a name="11173" > </a - ><a name="11168" class="Symbol" + ><a name="11174" class="Symbol" >(</a - ><a name="11169" href="Stlc.html#3434" class="InductiveConstructor" + ><a name="11175" href="Stlc.html#6392" class="InductiveConstructor" >𝔹-E</a - ><a name="11172" - > </a - ><a name="11173" href="StlcProp.html#11173" class="Bound" - >⊢L</a - ><a name="11175" - > </a - ><a name="11176" href="StlcProp.html#11176" class="Bound" - >⊢M</a ><a name="11178" > </a ><a name="11179" href="StlcProp.html#11179" class="Bound" - >⊢N</a - ><a name="11181" class="Symbol" - >)</a - ><a name="11182" + >⊢L</a + ><a name="11181" > </a - ><a name="11183" class="Symbol" - >=</a + ><a name="11182" href="StlcProp.html#11182" class="Bound" + >⊢M</a ><a name="11184" > </a - ><a name="11185" href="StlcProp.html#9356" class="Function" - >free-lemma</a - ><a name="11195" - > </a - ><a name="11196" href="StlcProp.html#11163" class="Bound" - >x∈N</a - ><a name="11199" - > </a - ><a name="11200" href="StlcProp.html#11179" class="Bound" + ><a name="11185" href="StlcProp.html#11185" class="Bound" >⊢N</a - ><a name="11202" + ><a name="11187" class="Symbol" + >)</a + ><a name="11188" + > </a + ><a name="11189" class="Symbol" + >=</a + ><a name="11190" + > </a + ><a name="11191" href="StlcProp.html#9356" class="Function" + >free-lemma</a + ><a name="11201" + > </a + ><a name="11202" href="StlcProp.html#11169" class="Bound" + >x∈N</a + ><a name="11205" + > </a + ><a name="11206" href="StlcProp.html#11185" class="Bound" + >⊢N</a + ><a name="11208" > </a - ><a name="11203" href="StlcProp.html#9356" class="Function" + ><a name="11209" href="StlcProp.html#9356" class="Function" >free-lemma</a - ><a name="11213" + ><a name="11219" > </a - ><a name="11214" class="Symbol" + ><a name="11220" class="Symbol" >(</a - ><a name="11215" href="StlcProp.html#7717" class="InductiveConstructor" + ><a name="11221" href="StlcProp.html#7717" class="InductiveConstructor" >free-λ</a - ><a name="11221" + ><a name="11227" > </a - ><a name="11222" class="Symbol" - >{</a - ><a name="11223" href="StlcProp.html#11223" class="Bound" - >x</a - ><a name="11224" class="Symbol" - >}</a - ><a name="11225" - > </a - ><a name="11226" class="Symbol" - >{</a - ><a name="11227" href="StlcProp.html#11227" class="Bound" - >y</a ><a name="11228" class="Symbol" - >}</a - ><a name="11229" - > </a - ><a name="11230" href="StlcProp.html#11230" class="Bound" - >y≢x</a - ><a name="11233" - > </a - ><a name="11234" href="StlcProp.html#11234" class="Bound" - >x∈N</a - ><a name="11237" class="Symbol" - >)</a - ><a name="11238" - > </a - ><a name="11239" class="Symbol" - >(</a - ><a name="11240" href="Stlc.html#3210" class="InductiveConstructor" - >⇒-I</a - ><a name="11243" - > </a - ><a name="11244" href="StlcProp.html#11244" class="Bound" - >⊢N</a - ><a name="11246" class="Symbol" - >)</a - ><a name="11247" - > </a - ><a name="11248" class="Keyword" - >with</a - ><a name="11252" - > </a - ><a name="11253" href="StlcProp.html#9356" class="Function" - >free-lemma</a - ><a name="11263" - > </a - ><a name="11264" href="StlcProp.html#11234" class="Bound" - >x∈N</a - ><a name="11267" - > </a - ><a name="11268" href="StlcProp.html#11244" class="Bound" - >⊢N</a - ><a name="11270" - > -</a - ><a name="11271" class="Symbol" - >...</a - ><a name="11274" - > </a - ><a name="11275" class="Symbol" - >|</a - ><a name="11276" - > </a - ><a name="11277" href="StlcProp.html#11277" class="Bound" - >Γx≡C</a - ><a name="11281" - > </a - ><a name="11282" class="Keyword" - >with</a - ><a name="11286" - > </a - ><a name="11287" href="StlcProp.html#11227" class="Bound" - >y</a - ><a name="11288" - > </a - ><a name="11289" href="Maps.html#2509" class="Function Operator" - >≟</a - ><a name="11290" - > </a - ><a name="11291" href="StlcProp.html#11223" class="Bound" + >{</a + ><a name="11229" href="StlcProp.html#11229" class="Bound" >x</a - ><a name="11292" + ><a name="11230" class="Symbol" + >}</a + ><a name="11231" + > </a + ><a name="11232" class="Symbol" + >{</a + ><a name="11233" href="StlcProp.html#11233" class="Bound" + >y</a + ><a name="11234" class="Symbol" + >}</a + ><a name="11235" + > </a + ><a name="11236" href="StlcProp.html#11236" class="Bound" + >y≢x</a + ><a name="11239" + > </a + ><a name="11240" href="StlcProp.html#11240" class="Bound" + >x∈N</a + ><a name="11243" class="Symbol" + >)</a + ><a name="11244" + > </a + ><a name="11245" class="Symbol" + >(</a + ><a name="11246" href="Stlc.html#6168" class="InductiveConstructor" + >⇒-I</a + ><a name="11249" + > </a + ><a name="11250" href="StlcProp.html#11250" class="Bound" + >⊢N</a + ><a name="11252" class="Symbol" + >)</a + ><a name="11253" + > </a + ><a name="11254" class="Keyword" + >with</a + ><a name="11258" + > </a + ><a name="11259" href="StlcProp.html#9356" class="Function" + >free-lemma</a + ><a name="11269" + > </a + ><a name="11270" href="StlcProp.html#11240" class="Bound" + >x∈N</a + ><a name="11273" + > </a + ><a name="11274" href="StlcProp.html#11250" class="Bound" + >⊢N</a + ><a name="11276" > </a - ><a name="11293" class="Symbol" + ><a name="11277" class="Symbol" >...</a + ><a name="11280" + > </a + ><a name="11281" class="Symbol" + >|</a + ><a name="11282" + > </a + ><a name="11283" href="StlcProp.html#11283" class="Bound" + >Γx≡C</a + ><a name="11287" + > </a + ><a name="11288" class="Keyword" + >with</a + ><a name="11292" + > </a + ><a name="11293" href="StlcProp.html#11233" class="Bound" + >y</a + ><a name="11294" + > </a + ><a name="11295" href="Maps.html#2509" class="Function Operator" + >≟</a ><a name="11296" > </a - ><a name="11297" class="Symbol" - >|</a + ><a name="11297" href="StlcProp.html#11229" class="Bound" + >x</a ><a name="11298" - > </a - ><a name="11299" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#520" class="InductiveConstructor" - >yes</a - ><a name="11302" - > </a - ><a name="11303" href="StlcProp.html#11303" class="Bound" - >y≡x</a - ><a name="11306" - > </a - ><a name="11307" class="Symbol" - >=</a - ><a name="11308" - > </a - ><a name="11309" href="https://agda.github.io/agda-stdlib/Data.Empty.html#348" class="Function" - >⊥-elim</a - ><a name="11315" - > </a - ><a name="11316" class="Symbol" - >(</a - ><a name="11317" href="StlcProp.html#11230" class="Bound" - >y≢x</a - ><a name="11320" - > </a - ><a name="11321" href="StlcProp.html#11303" class="Bound" - >y≡x</a - ><a name="11324" class="Symbol" - >)</a - ><a name="11325" > </a - ><a name="11326" class="Symbol" + ><a name="11299" class="Symbol" >...</a - ><a name="11329" + ><a name="11302" > </a - ><a name="11330" class="Symbol" + ><a name="11303" class="Symbol" >|</a - ><a name="11331" + ><a name="11304" > </a - ><a name="11332" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#547" class="InductiveConstructor" - >no</a - ><a name="11334" - > </a - ><a name="11336" class="Symbol" - >_</a - ><a name="11337" - > </a - ><a name="11340" class="Symbol" + ><a name="11305" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#520" class="InductiveConstructor" + >yes</a + ><a name="11308" + > </a + ><a name="11309" href="StlcProp.html#11309" class="Bound" + >y≡x</a + ><a name="11312" + > </a + ><a name="11313" class="Symbol" >=</a - ><a name="11341" + ><a name="11314" > </a - ><a name="11342" href="StlcProp.html#11277" class="Bound" + ><a name="11315" href="https://agda.github.io/agda-stdlib/Data.Empty.html#348" class="Function" + >⊥-elim</a + ><a name="11321" + > </a + ><a name="11322" class="Symbol" + >(</a + ><a name="11323" href="StlcProp.html#11236" class="Bound" + >y≢x</a + ><a name="11326" + > </a + ><a name="11327" href="StlcProp.html#11309" class="Bound" + >y≡x</a + ><a name="11330" class="Symbol" + >)</a + ><a name="11331" + > +</a + ><a name="11332" class="Symbol" + >...</a + ><a name="11335" + > </a + ><a name="11336" class="Symbol" + >|</a + ><a name="11337" + > </a + ><a name="11338" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#547" class="InductiveConstructor" + >no</a + ><a name="11340" + > </a + ><a name="11342" class="Symbol" + >_</a + ><a name="11343" + > </a + ><a name="11346" class="Symbol" + >=</a + ><a name="11347" + > </a + ><a name="11348" href="StlcProp.html#11283" class="Bound" >Γx≡C</a > @@ -3629,68 +3629,68 @@ typed in the empty context is closed (has no free variables). <pre class="Agda"> -<a name="11779" class="Keyword" +<a name="11785" class="Keyword" >postulate</a - ><a name="11788" + ><a name="11794" > </a - ><a name="11791" href="StlcProp.html#11791" class="Postulate" + ><a name="11797" href="StlcProp.html#11797" class="Postulate" >∅⊢-closed</a - ><a name="11800" + ><a name="11806" > </a - ><a name="11801" class="Symbol" + ><a name="11807" class="Symbol" >:</a - ><a name="11802" + ><a name="11808" > </a - ><a name="11803" class="Symbol" - >∀</a - ><a name="11804" - > </a - ><a name="11805" class="Symbol" - >{</a - ><a name="11806" href="StlcProp.html#11806" class="Bound" - >M</a - ><a name="11807" - > </a - ><a name="11808" href="StlcProp.html#11808" class="Bound" - >A</a ><a name="11809" class="Symbol" - >}</a + >∀</a ><a name="11810" > </a ><a name="11811" class="Symbol" - >→</a - ><a name="11812" + >{</a + ><a name="11812" href="StlcProp.html#11812" class="Bound" + >M</a + ><a name="11813" > </a - ><a name="11813" href="Maps.html#10265" class="Function" - >∅</a - ><a name="11814" - > </a - ><a name="11815" href="Stlc.html#3112" class="Datatype Operator" - >⊢</a + ><a name="11814" href="StlcProp.html#11814" class="Bound" + >A</a + ><a name="11815" class="Symbol" + >}</a ><a name="11816" > </a - ><a name="11817" href="StlcProp.html#11806" class="Bound" - >M</a + ><a name="11817" class="Symbol" + >→</a ><a name="11818" > </a - ><a name="11819" href="Stlc.html#3112" class="Datatype Operator" - >∶</a + ><a name="11819" href="Maps.html#10265" class="Function" + >∅</a ><a name="11820" > </a - ><a name="11821" href="StlcProp.html#11808" class="Bound" - >A</a + ><a name="11821" href="Stlc.html#6070" class="Datatype Operator" + >⊢</a ><a name="11822" > </a - ><a name="11823" class="Symbol" - >→</a + ><a name="11823" href="StlcProp.html#11812" class="Bound" + >M</a ><a name="11824" > </a - ><a name="11825" href="StlcProp.html#8176" class="Function" - >closed</a - ><a name="11831" + ><a name="11825" href="Stlc.html#6070" class="Datatype Operator" + >∶</a + ><a name="11826" > </a - ><a name="11832" href="StlcProp.html#11806" class="Bound" + ><a name="11827" href="StlcProp.html#11814" class="Bound" + >A</a + ><a name="11828" + > </a + ><a name="11829" class="Symbol" + >→</a + ><a name="11830" + > </a + ><a name="11831" href="StlcProp.html#8176" class="Function" + >closed</a + ><a name="11837" + > </a + ><a name="11838" href="StlcProp.html#11812" class="Bound" >M</a > @@ -3699,294 +3699,294 @@ typed in the empty context is closed (has no free variables). <div class="hidden"> <pre class="Agda"> -<a name="11880" href="StlcProp.html#11880" class="Function" +<a name="11886" href="StlcProp.html#11886" class="Function" >contradiction</a - ><a name="11893" + ><a name="11899" > </a - ><a name="11894" class="Symbol" + ><a name="11900" class="Symbol" >:</a - ><a name="11895" + ><a name="11901" > </a - ><a name="11896" class="Symbol" + ><a name="11902" class="Symbol" >∀</a - ><a name="11897" + ><a name="11903" > </a - ><a name="11898" class="Symbol" + ><a name="11904" class="Symbol" >{</a - ><a name="11899" href="StlcProp.html#11899" class="Bound" + ><a name="11905" href="StlcProp.html#11905" class="Bound" >X</a - ><a name="11900" + ><a name="11906" > </a - ><a name="11901" class="Symbol" + ><a name="11907" class="Symbol" >:</a - ><a name="11902" + ><a name="11908" > </a - ><a name="11903" class="PrimitiveType" + ><a name="11909" class="PrimitiveType" >Set</a - ><a name="11906" class="Symbol" - >}</a - ><a name="11907" - > </a - ><a name="11908" class="Symbol" - >→</a - ><a name="11909" - > </a - ><a name="11910" class="Symbol" - >∀</a - ><a name="11911" - > </a ><a name="11912" class="Symbol" - >{</a - ><a name="11913" href="StlcProp.html#11913" class="Bound" - >x</a - ><a name="11914" - > </a - ><a name="11915" class="Symbol" - >:</a - ><a name="11916" - > </a - ><a name="11917" href="StlcProp.html#11899" class="Bound" - >X</a - ><a name="11918" class="Symbol" >}</a - ><a name="11919" + ><a name="11913" > </a - ><a name="11920" class="Symbol" + ><a name="11914" class="Symbol" >→</a - ><a name="11921" + ><a name="11915" > </a - ><a name="11922" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#414" class="Function Operator" - >¬</a - ><a name="11923" + ><a name="11916" class="Symbol" + >∀</a + ><a name="11917" > </a - ><a name="11924" class="Symbol" - >(</a - ><a name="11925" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#83" class="Datatype Operator" - >_≡_</a - ><a name="11928" - > </a - ><a name="11929" class="Symbol" + ><a name="11918" class="Symbol" >{</a - ><a name="11930" class="Argument" + ><a name="11919" href="StlcProp.html#11919" class="Bound" + >x</a + ><a name="11920" + > </a + ><a name="11921" class="Symbol" + >:</a + ><a name="11922" + > </a + ><a name="11923" href="StlcProp.html#11905" class="Bound" + >X</a + ><a name="11924" class="Symbol" + >}</a + ><a name="11925" + > </a + ><a name="11926" class="Symbol" + >→</a + ><a name="11927" + > </a + ><a name="11928" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#414" class="Function Operator" + >¬</a + ><a name="11929" + > </a + ><a name="11930" class="Symbol" + >(</a + ><a name="11931" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#83" class="Datatype Operator" + >_≡_</a + ><a name="11934" + > </a + ><a name="11935" class="Symbol" + >{</a + ><a name="11936" class="Argument" >A</a - ><a name="11931" + ><a name="11937" > </a - ><a name="11932" class="Symbol" + ><a name="11938" class="Symbol" >=</a - ><a name="11933" - > </a - ><a name="11934" href="https://agda.github.io/agda-stdlib/Data.Maybe.Base.html#335" class="Datatype" - >Maybe</a ><a name="11939" > </a - ><a name="11940" href="StlcProp.html#11899" class="Bound" - >X</a - ><a name="11941" class="Symbol" - >}</a - ><a name="11942" + ><a name="11940" href="https://agda.github.io/agda-stdlib/Data.Maybe.Base.html#335" class="Datatype" + >Maybe</a + ><a name="11945" > </a - ><a name="11943" class="Symbol" - >(</a - ><a name="11944" href="https://agda.github.io/agda-stdlib/Data.Maybe.Base.html#373" class="InductiveConstructor" - >just</a + ><a name="11946" href="StlcProp.html#11905" class="Bound" + >X</a + ><a name="11947" class="Symbol" + >}</a ><a name="11948" > </a - ><a name="11949" href="StlcProp.html#11913" class="Bound" - >x</a - ><a name="11950" class="Symbol" - >)</a - ><a name="11951" + ><a name="11949" class="Symbol" + >(</a + ><a name="11950" href="https://agda.github.io/agda-stdlib/Data.Maybe.Base.html#373" class="InductiveConstructor" + >just</a + ><a name="11954" > </a - ><a name="11952" href="https://agda.github.io/agda-stdlib/Data.Maybe.Base.html#403" class="InductiveConstructor" - >nothing</a - ><a name="11959" class="Symbol" + ><a name="11955" href="StlcProp.html#11919" class="Bound" + >x</a + ><a name="11956" class="Symbol" >)</a - ><a name="11960" + ><a name="11957" + > </a + ><a name="11958" href="https://agda.github.io/agda-stdlib/Data.Maybe.Base.html#403" class="InductiveConstructor" + >nothing</a + ><a name="11965" class="Symbol" + >)</a + ><a name="11966" > </a - ><a name="11961" href="StlcProp.html#11880" class="Function" + ><a name="11967" href="StlcProp.html#11886" class="Function" >contradiction</a - ><a name="11974" + ><a name="11980" > </a - ><a name="11975" class="Symbol" + ><a name="11981" class="Symbol" >()</a - ><a name="11977" + ><a name="11983" > </a - ><a name="11979" href="StlcProp.html#11979" class="Function" + ><a name="11985" href="StlcProp.html#11985" class="Function" >∅⊢-closed′</a - ><a name="11989" + ><a name="11995" > </a - ><a name="11990" class="Symbol" + ><a name="11996" class="Symbol" >:</a - ><a name="11991" + ><a name="11997" > </a - ><a name="11992" class="Symbol" - >∀</a - ><a name="11993" - > </a - ><a name="11994" class="Symbol" - >{</a - ><a name="11995" href="StlcProp.html#11995" class="Bound" - >M</a - ><a name="11996" - > </a - ><a name="11997" href="StlcProp.html#11997" class="Bound" - >A</a ><a name="11998" class="Symbol" - >}</a + >∀</a ><a name="11999" > </a ><a name="12000" class="Symbol" - >→</a - ><a name="12001" + >{</a + ><a name="12001" href="StlcProp.html#12001" class="Bound" + >M</a + ><a name="12002" > </a - ><a name="12002" href="Maps.html#10265" class="Function" - >∅</a - ><a name="12003" - > </a - ><a name="12004" href="Stlc.html#3112" class="Datatype Operator" - >⊢</a + ><a name="12003" href="StlcProp.html#12003" class="Bound" + >A</a + ><a name="12004" class="Symbol" + >}</a ><a name="12005" > </a - ><a name="12006" href="StlcProp.html#11995" class="Bound" - >M</a + ><a name="12006" class="Symbol" + >→</a ><a name="12007" > </a - ><a name="12008" href="Stlc.html#3112" class="Datatype Operator" - >∶</a + ><a name="12008" href="Maps.html#10265" class="Function" + >∅</a ><a name="12009" > </a - ><a name="12010" href="StlcProp.html#11997" class="Bound" - >A</a + ><a name="12010" href="Stlc.html#6070" class="Datatype Operator" + >⊢</a ><a name="12011" > </a - ><a name="12012" class="Symbol" - >→</a + ><a name="12012" href="StlcProp.html#12001" class="Bound" + >M</a ><a name="12013" > </a - ><a name="12014" href="StlcProp.html#8176" class="Function" - >closed</a - ><a name="12020" + ><a name="12014" href="Stlc.html#6070" class="Datatype Operator" + >∶</a + ><a name="12015" > </a - ><a name="12021" href="StlcProp.html#11995" class="Bound" - >M</a - ><a name="12022" - > -</a - ><a name="12023" href="StlcProp.html#11979" class="Function" - >∅⊢-closed′</a - ><a name="12033" - > </a - ><a name="12034" class="Symbol" - >{</a - ><a name="12035" href="StlcProp.html#12035" class="Bound" - >M</a - ><a name="12036" class="Symbol" - >}</a - ><a name="12037" - > </a - ><a name="12038" class="Symbol" - >{</a - ><a name="12039" href="StlcProp.html#12039" class="Bound" + ><a name="12016" href="StlcProp.html#12003" class="Bound" >A</a - ><a name="12040" class="Symbol" - >}</a - ><a name="12041" + ><a name="12017" > </a - ><a name="12042" href="StlcProp.html#12042" class="Bound" - >⊢M</a - ><a name="12044" + ><a name="12018" class="Symbol" + >→</a + ><a name="12019" > </a - ><a name="12045" class="Symbol" - >{</a - ><a name="12046" href="StlcProp.html#12046" class="Bound" - >x</a - ><a name="12047" class="Symbol" - >}</a - ><a name="12048" + ><a name="12020" href="StlcProp.html#8176" class="Function" + >closed</a + ><a name="12026" > </a - ><a name="12049" href="StlcProp.html#12049" class="Bound" - >x∈M</a - ><a name="12052" - > </a - ><a name="12053" class="Keyword" - >with</a - ><a name="12057" - > </a - ><a name="12058" href="StlcProp.html#9356" class="Function" - >free-lemma</a - ><a name="12068" - > </a - ><a name="12069" href="StlcProp.html#12049" class="Bound" - >x∈M</a - ><a name="12072" - > </a - ><a name="12073" href="StlcProp.html#12042" class="Bound" - >⊢M</a - ><a name="12075" + ><a name="12027" href="StlcProp.html#12001" class="Bound" + >M</a + ><a name="12028" > </a - ><a name="12076" class="Symbol" - >...</a - ><a name="12079" + ><a name="12029" href="StlcProp.html#11985" class="Function" + >∅⊢-closed′</a + ><a name="12039" > </a - ><a name="12080" class="Symbol" - >|</a + ><a name="12040" class="Symbol" + >{</a + ><a name="12041" href="StlcProp.html#12041" class="Bound" + >M</a + ><a name="12042" class="Symbol" + >}</a + ><a name="12043" + > </a + ><a name="12044" class="Symbol" + >{</a + ><a name="12045" href="StlcProp.html#12045" class="Bound" + >A</a + ><a name="12046" class="Symbol" + >}</a + ><a name="12047" + > </a + ><a name="12048" href="StlcProp.html#12048" class="Bound" + >⊢M</a + ><a name="12050" + > </a + ><a name="12051" class="Symbol" + >{</a + ><a name="12052" href="StlcProp.html#12052" class="Bound" + >x</a + ><a name="12053" class="Symbol" + >}</a + ><a name="12054" + > </a + ><a name="12055" href="StlcProp.html#12055" class="Bound" + >x∈M</a + ><a name="12058" + > </a + ><a name="12059" class="Keyword" + >with</a + ><a name="12063" + > </a + ><a name="12064" href="StlcProp.html#9356" class="Function" + >free-lemma</a + ><a name="12074" + > </a + ><a name="12075" href="StlcProp.html#12055" class="Bound" + >x∈M</a + ><a name="12078" + > </a + ><a name="12079" href="StlcProp.html#12048" class="Bound" + >⊢M</a ><a name="12081" - > </a + > +</a ><a name="12082" class="Symbol" + >...</a + ><a name="12085" + > </a + ><a name="12086" class="Symbol" + >|</a + ><a name="12087" + > </a + ><a name="12088" class="Symbol" >(</a - ><a name="12083" href="StlcProp.html#12083" class="Bound" + ><a name="12089" href="StlcProp.html#12089" class="Bound" >B</a - ><a name="12084" + ><a name="12090" > </a - ><a name="12085" href="https://agda.github.io/agda-stdlib/Data.Product.html#509" class="InductiveConstructor Operator" + ><a name="12091" href="https://agda.github.io/agda-stdlib/Data.Product.html#509" class="InductiveConstructor Operator" >,</a - ><a name="12086" - > </a - ><a name="12087" href="StlcProp.html#12087" class="Bound" - >∅x≡B</a - ><a name="12091" class="Symbol" - >)</a ><a name="12092" > </a - ><a name="12093" class="Symbol" - >=</a - ><a name="12094" - > </a - ><a name="12095" href="StlcProp.html#11880" class="Function" - >contradiction</a - ><a name="12108" - > </a - ><a name="12109" class="Symbol" - >(</a - ><a name="12110" href="https://agda.github.io/agda-stdlib/Relation.Binary.PropositionalEquality.Core.html#632" class="Function" - >trans</a - ><a name="12115" - > </a - ><a name="12116" class="Symbol" - >(</a - ><a name="12117" href="https://agda.github.io/agda-stdlib/Relation.Binary.PropositionalEquality.Core.html#565" class="Function" - >sym</a - ><a name="12120" - > </a - ><a name="12121" href="StlcProp.html#12087" class="Bound" + ><a name="12093" href="StlcProp.html#12093" class="Bound" >∅x≡B</a - ><a name="12125" class="Symbol" + ><a name="12097" class="Symbol" >)</a + ><a name="12098" + > </a + ><a name="12099" class="Symbol" + >=</a + ><a name="12100" + > </a + ><a name="12101" href="StlcProp.html#11886" class="Function" + >contradiction</a + ><a name="12114" + > </a + ><a name="12115" class="Symbol" + >(</a + ><a name="12116" href="https://agda.github.io/agda-stdlib/Relation.Binary.PropositionalEquality.Core.html#632" class="Function" + >trans</a + ><a name="12121" + > </a + ><a name="12122" class="Symbol" + >(</a + ><a name="12123" href="https://agda.github.io/agda-stdlib/Relation.Binary.PropositionalEquality.Core.html#565" class="Function" + >sym</a ><a name="12126" > </a - ><a name="12127" class="Symbol" - >(</a - ><a name="12128" href="Maps.html#10573" class="Function" - >apply-∅</a - ><a name="12135" + ><a name="12127" href="StlcProp.html#12093" class="Bound" + >∅x≡B</a + ><a name="12131" class="Symbol" + >)</a + ><a name="12132" > </a - ><a name="12136" href="StlcProp.html#12046" class="Bound" + ><a name="12133" class="Symbol" + >(</a + ><a name="12134" href="Maps.html#10573" class="Function" + >apply-∅</a + ><a name="12141" + > </a + ><a name="12142" href="StlcProp.html#12052" class="Bound" >x</a - ><a name="12137" class="Symbol" + ><a name="12143" class="Symbol" >))</a > @@ -4002,144 +4002,144 @@ exchanged for the other. <pre class="Agda"> -<a name="12491" href="StlcProp.html#12491" class="Function" +<a name="12497" href="StlcProp.html#12497" class="Function" >context-lemma</a - ><a name="12504" + ><a name="12510" > </a - ><a name="12505" class="Symbol" + ><a name="12511" class="Symbol" >:</a - ><a name="12506" + ><a name="12512" > </a - ><a name="12507" class="Symbol" + ><a name="12513" class="Symbol" >∀</a - ><a name="12508" - > </a - ><a name="12509" class="Symbol" - >{</a - ><a name="12510" href="StlcProp.html#12510" class="Bound" - >Γ</a - ><a name="12511" - > </a - ><a name="12512" href="StlcProp.html#12512" class="Bound" - >Γ′</a ><a name="12514" > </a - ><a name="12515" href="StlcProp.html#12515" class="Bound" - >M</a - ><a name="12516" + ><a name="12515" class="Symbol" + >{</a + ><a name="12516" href="StlcProp.html#12516" class="Bound" + >Γ</a + ><a name="12517" > </a - ><a name="12517" href="StlcProp.html#12517" class="Bound" + ><a name="12518" href="StlcProp.html#12518" class="Bound" + >Γ′</a + ><a name="12520" + > </a + ><a name="12521" href="StlcProp.html#12521" class="Bound" + >M</a + ><a name="12522" + > </a + ><a name="12523" href="StlcProp.html#12523" class="Bound" >A</a - ><a name="12518" class="Symbol" + ><a name="12524" class="Symbol" >}</a - ><a name="12519" + ><a name="12525" > </a - ><a name="12528" class="Symbol" + ><a name="12534" class="Symbol" >→</a - ><a name="12529" + ><a name="12535" > </a - ><a name="12530" class="Symbol" + ><a name="12536" class="Symbol" >(∀</a - ><a name="12532" - > </a - ><a name="12533" class="Symbol" - >{</a - ><a name="12534" href="StlcProp.html#12534" class="Bound" - >x</a - ><a name="12535" class="Symbol" - >}</a - ><a name="12536" - > </a - ><a name="12537" class="Symbol" - >→</a ><a name="12538" > </a - ><a name="12539" href="StlcProp.html#12534" class="Bound" + ><a name="12539" class="Symbol" + >{</a + ><a name="12540" href="StlcProp.html#12540" class="Bound" >x</a - ><a name="12540" - > </a - ><a name="12541" href="StlcProp.html#7659" class="Datatype Operator" - >∈</a + ><a name="12541" class="Symbol" + >}</a ><a name="12542" > </a - ><a name="12543" href="StlcProp.html#12515" class="Bound" - >M</a + ><a name="12543" class="Symbol" + >→</a ><a name="12544" > </a - ><a name="12545" class="Symbol" - >→</a + ><a name="12545" href="StlcProp.html#12540" class="Bound" + >x</a ><a name="12546" > </a - ><a name="12547" href="StlcProp.html#12510" class="Bound" - >Γ</a + ><a name="12547" href="StlcProp.html#7659" class="Datatype Operator" + >∈</a ><a name="12548" > </a - ><a name="12549" href="StlcProp.html#12534" class="Bound" - >x</a + ><a name="12549" href="StlcProp.html#12521" class="Bound" + >M</a ><a name="12550" > </a - ><a name="12551" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#83" class="Datatype Operator" - >≡</a + ><a name="12551" class="Symbol" + >→</a ><a name="12552" > </a - ><a name="12553" href="StlcProp.html#12512" class="Bound" - >Γ′</a - ><a name="12555" - > </a - ><a name="12556" href="StlcProp.html#12534" class="Bound" - >x</a - ><a name="12557" class="Symbol" - >)</a - ><a name="12558" - > - </a - ><a name="12567" class="Symbol" - >→</a - ><a name="12568" - > </a - ><a name="12569" href="StlcProp.html#12510" class="Bound" + ><a name="12553" href="StlcProp.html#12516" class="Bound" >Γ</a - ><a name="12570" - > </a - ><a name="12572" href="Stlc.html#3112" class="Datatype Operator" - >⊢</a - ><a name="12573" + ><a name="12554" > </a - ><a name="12574" href="StlcProp.html#12515" class="Bound" - >M</a - ><a name="12575" + ><a name="12555" href="StlcProp.html#12540" class="Bound" + >x</a + ><a name="12556" > </a - ><a name="12576" href="Stlc.html#3112" class="Datatype Operator" - >∶</a - ><a name="12577" + ><a name="12557" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#83" class="Datatype Operator" + >≡</a + ><a name="12558" > </a - ><a name="12578" href="StlcProp.html#12517" class="Bound" - >A</a - ><a name="12579" + ><a name="12559" href="StlcProp.html#12518" class="Bound" + >Γ′</a + ><a name="12561" + > </a + ><a name="12562" href="StlcProp.html#12540" class="Bound" + >x</a + ><a name="12563" class="Symbol" + >)</a + ><a name="12564" > </a - ><a name="12588" class="Symbol" + ><a name="12573" class="Symbol" >→</a - ><a name="12589" + ><a name="12574" > </a - ><a name="12590" href="StlcProp.html#12512" class="Bound" - >Γ′</a - ><a name="12592" - > </a - ><a name="12593" href="Stlc.html#3112" class="Datatype Operator" + ><a name="12575" href="StlcProp.html#12516" class="Bound" + >Γ</a + ><a name="12576" + > </a + ><a name="12578" href="Stlc.html#6070" class="Datatype Operator" >⊢</a - ><a name="12594" + ><a name="12579" > </a - ><a name="12595" href="StlcProp.html#12515" class="Bound" + ><a name="12580" href="StlcProp.html#12521" class="Bound" >M</a - ><a name="12596" + ><a name="12581" > </a - ><a name="12597" href="Stlc.html#3112" class="Datatype Operator" + ><a name="12582" href="Stlc.html#6070" class="Datatype Operator" >∶</a + ><a name="12583" + > </a + ><a name="12584" href="StlcProp.html#12523" class="Bound" + >A</a + ><a name="12585" + > + </a + ><a name="12594" class="Symbol" + >→</a + ><a name="12595" + > </a + ><a name="12596" href="StlcProp.html#12518" class="Bound" + >Γ′</a ><a name="12598" > </a - ><a name="12599" href="StlcProp.html#12517" class="Bound" + ><a name="12599" href="Stlc.html#6070" class="Datatype Operator" + >⊢</a + ><a name="12600" + > </a + ><a name="12601" href="StlcProp.html#12521" class="Bound" + >M</a + ><a name="12602" + > </a + ><a name="12603" href="Stlc.html#6070" class="Datatype Operator" + >∶</a + ><a name="12604" + > </a + ><a name="12605" href="StlcProp.html#12523" class="Bound" >A</a > @@ -4191,600 +4191,600 @@ _Proof_: By induction on the derivation of `Γ ⊢ M ∶ A`. <pre class="Agda"> -<a name="14772" href="StlcProp.html#12491" class="Function" +<a name="14778" href="StlcProp.html#12497" class="Function" >context-lemma</a - ><a name="14785" + ><a name="14791" > </a - ><a name="14786" href="StlcProp.html#14786" class="Bound" + ><a name="14792" href="StlcProp.html#14792" class="Bound" >Γ~Γ′</a - ><a name="14790" + ><a name="14796" > </a - ><a name="14791" class="Symbol" + ><a name="14797" class="Symbol" >(</a - ><a name="14792" href="Stlc.html#3156" class="InductiveConstructor" + ><a name="14798" href="Stlc.html#6114" class="InductiveConstructor" >Ax</a - ><a name="14794" - > </a - ><a name="14795" href="StlcProp.html#14795" class="Bound" - >Γx≡A</a - ><a name="14799" class="Symbol" - >)</a ><a name="14800" > </a - ><a name="14801" class="Keyword" - >rewrite</a - ><a name="14808" + ><a name="14801" href="StlcProp.html#14801" class="Bound" + >Γx≡A</a + ><a name="14805" class="Symbol" + >)</a + ><a name="14806" > </a - ><a name="14809" class="Symbol" - >(</a - ><a name="14810" href="StlcProp.html#14786" class="Bound" - >Γ~Γ′</a + ><a name="14807" class="Keyword" + >rewrite</a ><a name="14814" > </a - ><a name="14815" href="StlcProp.html#7689" class="InductiveConstructor" + ><a name="14815" class="Symbol" + >(</a + ><a name="14816" href="StlcProp.html#14792" class="Bound" + >Γ~Γ′</a + ><a name="14820" + > </a + ><a name="14821" href="StlcProp.html#7689" class="InductiveConstructor" >free-`</a - ><a name="14821" class="Symbol" + ><a name="14827" class="Symbol" >)</a - ><a name="14822" + ><a name="14828" > </a - ><a name="14823" class="Symbol" + ><a name="14829" class="Symbol" >=</a - ><a name="14824" + ><a name="14830" > </a - ><a name="14825" href="Stlc.html#3156" class="InductiveConstructor" + ><a name="14831" href="Stlc.html#6114" class="InductiveConstructor" >Ax</a - ><a name="14827" + ><a name="14833" > </a - ><a name="14828" href="StlcProp.html#14795" class="Bound" + ><a name="14834" href="StlcProp.html#14801" class="Bound" >Γx≡A</a - ><a name="14832" + ><a name="14838" > </a - ><a name="14833" href="StlcProp.html#12491" class="Function" + ><a name="14839" href="StlcProp.html#12497" class="Function" >context-lemma</a - ><a name="14846" + ><a name="14852" > </a - ><a name="14847" class="Symbol" + ><a name="14853" class="Symbol" >{</a - ><a name="14848" href="StlcProp.html#14848" class="Bound" + ><a name="14854" href="StlcProp.html#14854" class="Bound" >Γ</a - ><a name="14849" class="Symbol" + ><a name="14855" class="Symbol" >}</a - ><a name="14850" + ><a name="14856" > </a - ><a name="14851" class="Symbol" + ><a name="14857" class="Symbol" >{</a - ><a name="14852" href="StlcProp.html#14852" class="Bound" + ><a name="14858" href="StlcProp.html#14858" class="Bound" >Γ′</a - ><a name="14854" class="Symbol" + ><a name="14860" class="Symbol" >}</a - ><a name="14855" - > </a - ><a name="14856" class="Symbol" - >{</a - ><a name="14857" href="Stlc.html#743" class="InductiveConstructor Operator" - >λ[</a - ><a name="14859" - > </a - ><a name="14860" href="StlcProp.html#14860" class="Bound" - >x</a ><a name="14861" > </a - ><a name="14862" href="Stlc.html#743" class="InductiveConstructor Operator" - >∶</a - ><a name="14863" - > </a - ><a name="14864" href="StlcProp.html#14864" class="Bound" - >A</a + ><a name="14862" class="Symbol" + >{</a + ><a name="14863" href="Stlc.html#3520" class="InductiveConstructor Operator" + >λ[</a ><a name="14865" > </a - ><a name="14866" href="Stlc.html#743" class="InductiveConstructor Operator" - >]</a + ><a name="14866" href="StlcProp.html#14866" class="Bound" + >x</a ><a name="14867" > </a - ><a name="14868" href="StlcProp.html#14868" class="Bound" + ><a name="14868" href="Stlc.html#3520" class="InductiveConstructor Operator" + >∶</a + ><a name="14869" + > </a + ><a name="14870" href="StlcProp.html#14870" class="Bound" + >A</a + ><a name="14871" + > </a + ><a name="14872" href="Stlc.html#3520" class="InductiveConstructor Operator" + >]</a + ><a name="14873" + > </a + ><a name="14874" href="StlcProp.html#14874" class="Bound" >N</a - ><a name="14869" class="Symbol" + ><a name="14875" class="Symbol" >}</a - ><a name="14870" + ><a name="14876" > </a - ><a name="14871" href="StlcProp.html#14871" class="Bound" + ><a name="14877" href="StlcProp.html#14877" class="Bound" >Γ~Γ′</a - ><a name="14875" + ><a name="14881" > </a - ><a name="14876" class="Symbol" + ><a name="14882" class="Symbol" >(</a - ><a name="14877" href="Stlc.html#3210" class="InductiveConstructor" + ><a name="14883" href="Stlc.html#6168" class="InductiveConstructor" >⇒-I</a - ><a name="14880" - > </a - ><a name="14881" href="StlcProp.html#14881" class="Bound" - >⊢N</a - ><a name="14883" class="Symbol" - >)</a - ><a name="14884" - > </a - ><a name="14885" class="Symbol" - >=</a ><a name="14886" > </a - ><a name="14887" href="Stlc.html#3210" class="InductiveConstructor" - >⇒-I</a + ><a name="14887" href="StlcProp.html#14887" class="Bound" + >⊢N</a + ><a name="14889" class="Symbol" + >)</a ><a name="14890" > </a ><a name="14891" class="Symbol" + >=</a + ><a name="14892" + > </a + ><a name="14893" href="Stlc.html#6168" class="InductiveConstructor" + >⇒-I</a + ><a name="14896" + > </a + ><a name="14897" class="Symbol" >(</a - ><a name="14892" href="StlcProp.html#12491" class="Function" + ><a name="14898" href="StlcProp.html#12497" class="Function" >context-lemma</a - ><a name="14905" + ><a name="14911" > </a - ><a name="14906" href="StlcProp.html#14927" class="Function" + ><a name="14912" href="StlcProp.html#14933" class="Function" >Γx~Γ′x</a - ><a name="14912" + ><a name="14918" > </a - ><a name="14913" href="StlcProp.html#14881" class="Bound" + ><a name="14919" href="StlcProp.html#14887" class="Bound" >⊢N</a - ><a name="14915" class="Symbol" + ><a name="14921" class="Symbol" >)</a - ><a name="14916" + ><a name="14922" > </a - ><a name="14919" class="Keyword" + ><a name="14925" class="Keyword" >where</a - ><a name="14924" + ><a name="14930" > </a - ><a name="14927" href="StlcProp.html#14927" class="Function" + ><a name="14933" href="StlcProp.html#14933" class="Function" >Γx~Γ′x</a - ><a name="14933" + ><a name="14939" > </a - ><a name="14934" class="Symbol" - >:</a - ><a name="14935" - > </a - ><a name="14936" class="Symbol" - >∀</a - ><a name="14937" - > </a - ><a name="14938" class="Symbol" - >{</a - ><a name="14939" href="StlcProp.html#14939" class="Bound" - >y</a ><a name="14940" class="Symbol" - >}</a + >:</a ><a name="14941" > </a ><a name="14942" class="Symbol" - >→</a + >∀</a ><a name="14943" > </a - ><a name="14944" href="StlcProp.html#14939" class="Bound" + ><a name="14944" class="Symbol" + >{</a + ><a name="14945" href="StlcProp.html#14945" class="Bound" >y</a - ><a name="14945" - > </a - ><a name="14946" href="StlcProp.html#7659" class="Datatype Operator" - >∈</a + ><a name="14946" class="Symbol" + >}</a ><a name="14947" > </a - ><a name="14948" href="StlcProp.html#14868" class="Bound" - >N</a + ><a name="14948" class="Symbol" + >→</a ><a name="14949" > </a - ><a name="14950" class="Symbol" - >→</a + ><a name="14950" href="StlcProp.html#14945" class="Bound" + >y</a ><a name="14951" > </a - ><a name="14952" class="Symbol" + ><a name="14952" href="StlcProp.html#7659" class="Datatype Operator" + >∈</a + ><a name="14953" + > </a + ><a name="14954" href="StlcProp.html#14874" class="Bound" + >N</a + ><a name="14955" + > </a + ><a name="14956" class="Symbol" + >→</a + ><a name="14957" + > </a + ><a name="14958" class="Symbol" >(</a - ><a name="14953" href="StlcProp.html#14848" class="Bound" + ><a name="14959" href="StlcProp.html#14854" class="Bound" >Γ</a - ><a name="14954" - > </a - ><a name="14955" href="Maps.html#10368" class="Function Operator" - >,</a - ><a name="14956" - > </a - ><a name="14957" href="StlcProp.html#14860" class="Bound" - >x</a - ><a name="14958" - > </a - ><a name="14959" href="Maps.html#10368" class="Function Operator" - >∶</a ><a name="14960" > </a - ><a name="14961" href="StlcProp.html#14864" class="Bound" + ><a name="14961" href="Maps.html#10368" class="Function Operator" + >,</a + ><a name="14962" + > </a + ><a name="14963" href="StlcProp.html#14866" class="Bound" + >x</a + ><a name="14964" + > </a + ><a name="14965" href="Maps.html#10368" class="Function Operator" + >∶</a + ><a name="14966" + > </a + ><a name="14967" href="StlcProp.html#14870" class="Bound" >A</a - ><a name="14962" class="Symbol" - >)</a - ><a name="14963" - > </a - ><a name="14964" href="StlcProp.html#14939" class="Bound" - >y</a - ><a name="14965" - > </a - ><a name="14966" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#83" class="Datatype Operator" - >≡</a - ><a name="14967" - > </a ><a name="14968" class="Symbol" - >(</a - ><a name="14969" href="StlcProp.html#14852" class="Bound" - >Γ′</a + >)</a + ><a name="14969" + > </a + ><a name="14970" href="StlcProp.html#14945" class="Bound" + >y</a ><a name="14971" > </a - ><a name="14972" href="Maps.html#10368" class="Function Operator" - >,</a + ><a name="14972" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#83" class="Datatype Operator" + >≡</a ><a name="14973" > </a - ><a name="14974" href="StlcProp.html#14860" class="Bound" - >x</a - ><a name="14975" - > </a - ><a name="14976" href="Maps.html#10368" class="Function Operator" - >∶</a + ><a name="14974" class="Symbol" + >(</a + ><a name="14975" href="StlcProp.html#14858" class="Bound" + >Γ′</a ><a name="14977" > </a - ><a name="14978" href="StlcProp.html#14864" class="Bound" - >A</a - ><a name="14979" class="Symbol" - >)</a - ><a name="14980" + ><a name="14978" href="Maps.html#10368" class="Function Operator" + >,</a + ><a name="14979" > </a - ><a name="14981" href="StlcProp.html#14939" class="Bound" - >y</a - ><a name="14982" - > - </a - ><a name="14985" href="StlcProp.html#14927" class="Function" - >Γx~Γ′x</a - ><a name="14991" - > </a - ><a name="14992" class="Symbol" - >{</a - ><a name="14993" href="StlcProp.html#14993" class="Bound" - >y</a - ><a name="14994" class="Symbol" - >}</a - ><a name="14995" - > </a - ><a name="14996" href="StlcProp.html#14996" class="Bound" - >y∈N</a - ><a name="14999" - > </a - ><a name="15000" class="Keyword" - >with</a - ><a name="15004" - > </a - ><a name="15005" href="StlcProp.html#14860" class="Bound" + ><a name="14980" href="StlcProp.html#14866" class="Bound" >x</a - ><a name="15006" + ><a name="14981" > </a - ><a name="15007" href="Maps.html#2509" class="Function Operator" - >≟</a - ><a name="15008" + ><a name="14982" href="Maps.html#10368" class="Function Operator" + >∶</a + ><a name="14983" > </a - ><a name="15009" href="StlcProp.html#14993" class="Bound" + ><a name="14984" href="StlcProp.html#14870" class="Bound" + >A</a + ><a name="14985" class="Symbol" + >)</a + ><a name="14986" + > </a + ><a name="14987" href="StlcProp.html#14945" class="Bound" >y</a - ><a name="15010" + ><a name="14988" > </a - ><a name="15013" class="Symbol" - >...</a + ><a name="14991" href="StlcProp.html#14933" class="Function" + >Γx~Γ′x</a + ><a name="14997" + > </a + ><a name="14998" class="Symbol" + >{</a + ><a name="14999" href="StlcProp.html#14999" class="Bound" + >y</a + ><a name="15000" class="Symbol" + >}</a + ><a name="15001" + > </a + ><a name="15002" href="StlcProp.html#15002" class="Bound" + >y∈N</a + ><a name="15005" + > </a + ><a name="15006" class="Keyword" + >with</a + ><a name="15010" + > </a + ><a name="15011" href="StlcProp.html#14866" class="Bound" + >x</a + ><a name="15012" + > </a + ><a name="15013" href="Maps.html#2509" class="Function Operator" + >≟</a + ><a name="15014" + > </a + ><a name="15015" href="StlcProp.html#14999" class="Bound" + >y</a ><a name="15016" - > </a - ><a name="15017" class="Symbol" - >|</a - ><a name="15018" - > </a - ><a name="15019" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#520" class="InductiveConstructor" - >yes</a + > + </a + ><a name="15019" class="Symbol" + >...</a ><a name="15022" > </a - ><a name="15023" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#140" class="InductiveConstructor" - >refl</a - ><a name="15027" + ><a name="15023" class="Symbol" + >|</a + ><a name="15024" > </a - ><a name="15028" class="Symbol" + ><a name="15025" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#520" class="InductiveConstructor" + >yes</a + ><a name="15028" + > </a + ><a name="15029" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#140" class="InductiveConstructor" + >refl</a + ><a name="15033" + > </a + ><a name="15034" class="Symbol" >=</a - ><a name="15029" + ><a name="15035" > </a - ><a name="15030" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#140" class="InductiveConstructor" + ><a name="15036" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#140" class="InductiveConstructor" >refl</a - ><a name="15034" + ><a name="15040" > </a - ><a name="15037" class="Symbol" + ><a name="15043" class="Symbol" >...</a - ><a name="15040" + ><a name="15046" > </a - ><a name="15041" class="Symbol" + ><a name="15047" class="Symbol" >|</a - ><a name="15042" + ><a name="15048" > </a - ><a name="15043" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#547" class="InductiveConstructor" + ><a name="15049" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#547" class="InductiveConstructor" >no</a - ><a name="15045" + ><a name="15051" > </a - ><a name="15047" href="StlcProp.html#15047" class="Bound" + ><a name="15053" href="StlcProp.html#15053" class="Bound" >x≢y</a - ><a name="15050" + ><a name="15056" > </a - ><a name="15052" class="Symbol" + ><a name="15058" class="Symbol" >=</a - ><a name="15053" + ><a name="15059" > </a - ><a name="15054" href="StlcProp.html#14871" class="Bound" + ><a name="15060" href="StlcProp.html#14877" class="Bound" >Γ~Γ′</a - ><a name="15058" + ><a name="15064" > </a - ><a name="15059" class="Symbol" + ><a name="15065" class="Symbol" >(</a - ><a name="15060" href="StlcProp.html#7717" class="InductiveConstructor" + ><a name="15066" href="StlcProp.html#7717" class="InductiveConstructor" >free-λ</a - ><a name="15066" + ><a name="15072" > </a - ><a name="15067" href="StlcProp.html#15047" class="Bound" + ><a name="15073" href="StlcProp.html#15053" class="Bound" >x≢y</a - ><a name="15070" + ><a name="15076" > </a - ><a name="15071" href="StlcProp.html#14996" class="Bound" + ><a name="15077" href="StlcProp.html#15002" class="Bound" >y∈N</a - ><a name="15074" class="Symbol" + ><a name="15080" class="Symbol" >)</a - ><a name="15075" + ><a name="15081" > </a - ><a name="15076" href="StlcProp.html#12491" class="Function" + ><a name="15082" href="StlcProp.html#12497" class="Function" >context-lemma</a - ><a name="15089" + ><a name="15095" > </a - ><a name="15090" href="StlcProp.html#15090" class="Bound" + ><a name="15096" href="StlcProp.html#15096" class="Bound" >Γ~Γ′</a - ><a name="15094" + ><a name="15100" > </a - ><a name="15095" class="Symbol" + ><a name="15101" class="Symbol" >(</a - ><a name="15096" href="Stlc.html#3287" class="InductiveConstructor" + ><a name="15102" href="Stlc.html#6245" class="InductiveConstructor" >⇒-E</a - ><a name="15099" + ><a name="15105" > </a - ><a name="15100" href="StlcProp.html#15100" class="Bound" + ><a name="15106" href="StlcProp.html#15106" class="Bound" >⊢L</a - ><a name="15102" - > </a - ><a name="15103" href="StlcProp.html#15103" class="Bound" - >⊢M</a - ><a name="15105" class="Symbol" - >)</a - ><a name="15106" - > </a - ><a name="15107" class="Symbol" - >=</a ><a name="15108" > </a - ><a name="15109" href="Stlc.html#3287" class="InductiveConstructor" - >⇒-E</a + ><a name="15109" href="StlcProp.html#15109" class="Bound" + >⊢M</a + ><a name="15111" class="Symbol" + >)</a ><a name="15112" > </a ><a name="15113" class="Symbol" - >(</a - ><a name="15114" href="StlcProp.html#12491" class="Function" - >context-lemma</a - ><a name="15127" + >=</a + ><a name="15114" > </a - ><a name="15128" class="Symbol" + ><a name="15115" href="Stlc.html#6245" class="InductiveConstructor" + >⇒-E</a + ><a name="15118" + > </a + ><a name="15119" class="Symbol" >(</a - ><a name="15129" href="StlcProp.html#15090" class="Bound" - >Γ~Γ′</a + ><a name="15120" href="StlcProp.html#12497" class="Function" + >context-lemma</a ><a name="15133" > </a - ><a name="15134" href="https://agda.github.io/agda-stdlib/Function.html#713" class="Function Operator" - >∘</a - ><a name="15135" + ><a name="15134" class="Symbol" + >(</a + ><a name="15135" href="StlcProp.html#15096" class="Bound" + >Γ~Γ′</a + ><a name="15139" > </a - ><a name="15136" href="StlcProp.html#7778" class="InductiveConstructor" + ><a name="15140" href="https://agda.github.io/agda-stdlib/Function.html#713" class="Function Operator" + >∘</a + ><a name="15141" + > </a + ><a name="15142" href="StlcProp.html#7778" class="InductiveConstructor" >free-·₁</a - ><a name="15143" class="Symbol" + ><a name="15149" class="Symbol" >)</a - ><a name="15144" + ><a name="15150" > </a - ><a name="15146" href="StlcProp.html#15100" class="Bound" + ><a name="15152" href="StlcProp.html#15106" class="Bound" >⊢L</a - ><a name="15148" class="Symbol" + ><a name="15154" class="Symbol" >)</a - ><a name="15149" + ><a name="15155" > </a - ><a name="15189" class="Symbol" + ><a name="15195" class="Symbol" >(</a - ><a name="15190" href="StlcProp.html#12491" class="Function" + ><a name="15196" href="StlcProp.html#12497" class="Function" >context-lemma</a - ><a name="15203" - > </a - ><a name="15204" class="Symbol" - >(</a - ><a name="15205" href="StlcProp.html#15090" class="Bound" - >Γ~Γ′</a ><a name="15209" > </a - ><a name="15210" href="https://agda.github.io/agda-stdlib/Function.html#713" class="Function Operator" + ><a name="15210" class="Symbol" + >(</a + ><a name="15211" href="StlcProp.html#15096" class="Bound" + >Γ~Γ′</a + ><a name="15215" + > </a + ><a name="15216" href="https://agda.github.io/agda-stdlib/Function.html#713" class="Function Operator" >∘</a - ><a name="15211" + ><a name="15217" > </a - ><a name="15212" href="StlcProp.html#7822" class="InductiveConstructor" + ><a name="15218" href="StlcProp.html#7822" class="InductiveConstructor" >free-·₂</a - ><a name="15219" class="Symbol" + ><a name="15225" class="Symbol" >)</a - ><a name="15220" + ><a name="15226" > </a - ><a name="15221" href="StlcProp.html#15103" class="Bound" + ><a name="15227" href="StlcProp.html#15109" class="Bound" >⊢M</a - ><a name="15223" class="Symbol" + ><a name="15229" class="Symbol" >)</a - ><a name="15224" + ><a name="15230" > </a - ><a name="15226" href="StlcProp.html#12491" class="Function" + ><a name="15232" href="StlcProp.html#12497" class="Function" >context-lemma</a - ><a name="15239" + ><a name="15245" > </a - ><a name="15240" href="StlcProp.html#15240" class="Bound" + ><a name="15246" href="StlcProp.html#15246" class="Bound" >Γ~Γ′</a - ><a name="15244" + ><a name="15250" > </a - ><a name="15245" href="Stlc.html#3365" class="InductiveConstructor" + ><a name="15251" href="Stlc.html#6323" class="InductiveConstructor" >𝔹-I₁</a - ><a name="15249" + ><a name="15255" > </a - ><a name="15250" class="Symbol" + ><a name="15256" class="Symbol" >=</a - ><a name="15251" + ><a name="15257" > </a - ><a name="15252" href="Stlc.html#3365" class="InductiveConstructor" + ><a name="15258" href="Stlc.html#6323" class="InductiveConstructor" >𝔹-I₁</a - ><a name="15256" + ><a name="15262" > </a - ><a name="15257" href="StlcProp.html#12491" class="Function" + ><a name="15263" href="StlcProp.html#12497" class="Function" >context-lemma</a - ><a name="15270" + ><a name="15276" > </a - ><a name="15271" href="StlcProp.html#15271" class="Bound" + ><a name="15277" href="StlcProp.html#15277" class="Bound" >Γ~Γ′</a - ><a name="15275" + ><a name="15281" > </a - ><a name="15276" href="Stlc.html#3399" class="InductiveConstructor" + ><a name="15282" href="Stlc.html#6357" class="InductiveConstructor" >𝔹-I₂</a - ><a name="15280" + ><a name="15286" > </a - ><a name="15281" class="Symbol" + ><a name="15287" class="Symbol" >=</a - ><a name="15282" + ><a name="15288" > </a - ><a name="15283" href="Stlc.html#3399" class="InductiveConstructor" + ><a name="15289" href="Stlc.html#6357" class="InductiveConstructor" >𝔹-I₂</a - ><a name="15287" + ><a name="15293" > </a - ><a name="15288" href="StlcProp.html#12491" class="Function" + ><a name="15294" href="StlcProp.html#12497" class="Function" >context-lemma</a - ><a name="15301" + ><a name="15307" > </a - ><a name="15302" href="StlcProp.html#15302" class="Bound" + ><a name="15308" href="StlcProp.html#15308" class="Bound" >Γ~Γ′</a - ><a name="15306" + ><a name="15312" > </a - ><a name="15307" class="Symbol" + ><a name="15313" class="Symbol" >(</a - ><a name="15308" href="Stlc.html#3434" class="InductiveConstructor" + ><a name="15314" href="Stlc.html#6392" class="InductiveConstructor" >𝔹-E</a - ><a name="15311" - > </a - ><a name="15312" href="StlcProp.html#15312" class="Bound" - >⊢L</a - ><a name="15314" - > </a - ><a name="15315" href="StlcProp.html#15315" class="Bound" - >⊢M</a ><a name="15317" > </a ><a name="15318" href="StlcProp.html#15318" class="Bound" - >⊢N</a - ><a name="15320" class="Symbol" - >)</a - ><a name="15321" + >⊢L</a + ><a name="15320" > </a - ><a name="15322" class="Symbol" - >=</a + ><a name="15321" href="StlcProp.html#15321" class="Bound" + >⊢M</a ><a name="15323" > </a - ><a name="15324" href="Stlc.html#3434" class="InductiveConstructor" - >𝔹-E</a + ><a name="15324" href="StlcProp.html#15324" class="Bound" + >⊢N</a + ><a name="15326" class="Symbol" + >)</a ><a name="15327" > </a ><a name="15328" class="Symbol" - >(</a - ><a name="15329" href="StlcProp.html#12491" class="Function" - >context-lemma</a - ><a name="15342" + >=</a + ><a name="15329" > </a - ><a name="15343" class="Symbol" + ><a name="15330" href="Stlc.html#6392" class="InductiveConstructor" + >𝔹-E</a + ><a name="15333" + > </a + ><a name="15334" class="Symbol" >(</a - ><a name="15344" href="StlcProp.html#15302" class="Bound" - >Γ~Γ′</a + ><a name="15335" href="StlcProp.html#12497" class="Function" + >context-lemma</a ><a name="15348" > </a - ><a name="15349" href="https://agda.github.io/agda-stdlib/Function.html#713" class="Function Operator" + ><a name="15349" class="Symbol" + >(</a + ><a name="15350" href="StlcProp.html#15308" class="Bound" + >Γ~Γ′</a + ><a name="15354" + > </a + ><a name="15355" href="https://agda.github.io/agda-stdlib/Function.html#713" class="Function Operator" >∘</a - ><a name="15350" + ><a name="15356" > </a - ><a name="15351" href="StlcProp.html#7866" class="InductiveConstructor" + ><a name="15357" href="StlcProp.html#7866" class="InductiveConstructor" >free-if₁</a - ><a name="15359" class="Symbol" + ><a name="15365" class="Symbol" >)</a - ><a name="15360" + ><a name="15366" > </a - ><a name="15361" href="StlcProp.html#15312" class="Bound" + ><a name="15367" href="StlcProp.html#15318" class="Bound" >⊢L</a - ><a name="15363" class="Symbol" + ><a name="15369" class="Symbol" >)</a - ><a name="15364" + ><a name="15370" > </a - ><a name="15406" class="Symbol" + ><a name="15412" class="Symbol" >(</a - ><a name="15407" href="StlcProp.html#12491" class="Function" + ><a name="15413" href="StlcProp.html#12497" class="Function" >context-lemma</a - ><a name="15420" - > </a - ><a name="15421" class="Symbol" - >(</a - ><a name="15422" href="StlcProp.html#15302" class="Bound" - >Γ~Γ′</a ><a name="15426" > </a - ><a name="15427" href="https://agda.github.io/agda-stdlib/Function.html#713" class="Function Operator" + ><a name="15427" class="Symbol" + >(</a + ><a name="15428" href="StlcProp.html#15308" class="Bound" + >Γ~Γ′</a + ><a name="15432" + > </a + ><a name="15433" href="https://agda.github.io/agda-stdlib/Function.html#713" class="Function Operator" >∘</a - ><a name="15428" + ><a name="15434" > </a - ><a name="15429" href="StlcProp.html#7926" class="InductiveConstructor" + ><a name="15435" href="StlcProp.html#7926" class="InductiveConstructor" >free-if₂</a - ><a name="15437" class="Symbol" + ><a name="15443" class="Symbol" >)</a - ><a name="15438" + ><a name="15444" > </a - ><a name="15439" href="StlcProp.html#15315" class="Bound" + ><a name="15445" href="StlcProp.html#15321" class="Bound" >⊢M</a - ><a name="15441" class="Symbol" + ><a name="15447" class="Symbol" >)</a - ><a name="15442" + ><a name="15448" > </a - ><a name="15484" class="Symbol" + ><a name="15490" class="Symbol" >(</a - ><a name="15485" href="StlcProp.html#12491" class="Function" + ><a name="15491" href="StlcProp.html#12497" class="Function" >context-lemma</a - ><a name="15498" - > </a - ><a name="15499" class="Symbol" - >(</a - ><a name="15500" href="StlcProp.html#15302" class="Bound" - >Γ~Γ′</a ><a name="15504" > </a - ><a name="15505" href="https://agda.github.io/agda-stdlib/Function.html#713" class="Function Operator" + ><a name="15505" class="Symbol" + >(</a + ><a name="15506" href="StlcProp.html#15308" class="Bound" + >Γ~Γ′</a + ><a name="15510" + > </a + ><a name="15511" href="https://agda.github.io/agda-stdlib/Function.html#713" class="Function Operator" >∘</a - ><a name="15506" + ><a name="15512" > </a - ><a name="15507" href="StlcProp.html#7986" class="InductiveConstructor" + ><a name="15513" href="StlcProp.html#7986" class="InductiveConstructor" >free-if₃</a - ><a name="15515" class="Symbol" + ><a name="15521" class="Symbol" >)</a - ><a name="15516" + ><a name="15522" > </a - ><a name="15517" href="StlcProp.html#15318" class="Bound" + ><a name="15523" href="StlcProp.html#15324" class="Bound" >⊢N</a - ><a name="15519" class="Symbol" + ><a name="15525" class="Symbol" >)</a > @@ -4809,162 +4809,162 @@ _Lemma_: If `Γ , x ∶ A ⊢ N ∶ B` and `∅ ⊢ V ∶ A`, then <pre class="Agda"> -<a name="16218" href="StlcProp.html#16218" class="Function" +<a name="16224" href="StlcProp.html#16224" class="Function" >preservation-[:=]</a - ><a name="16235" + ><a name="16241" > </a - ><a name="16236" class="Symbol" + ><a name="16242" class="Symbol" >:</a - ><a name="16237" + ><a name="16243" > </a - ><a name="16238" class="Symbol" + ><a name="16244" class="Symbol" >∀</a - ><a name="16239" + ><a name="16245" > </a - ><a name="16240" class="Symbol" + ><a name="16246" class="Symbol" >{</a - ><a name="16241" href="StlcProp.html#16241" class="Bound" - >Γ</a - ><a name="16242" - > </a - ><a name="16243" href="StlcProp.html#16243" class="Bound" - >x</a - ><a name="16244" - > </a - ><a name="16245" href="StlcProp.html#16245" class="Bound" - >A</a - ><a name="16246" - > </a ><a name="16247" href="StlcProp.html#16247" class="Bound" - >N</a + >Γ</a ><a name="16248" > </a ><a name="16249" href="StlcProp.html#16249" class="Bound" - >B</a + >x</a ><a name="16250" > </a ><a name="16251" href="StlcProp.html#16251" class="Bound" + >A</a + ><a name="16252" + > </a + ><a name="16253" href="StlcProp.html#16253" class="Bound" + >N</a + ><a name="16254" + > </a + ><a name="16255" href="StlcProp.html#16255" class="Bound" + >B</a + ><a name="16256" + > </a + ><a name="16257" href="StlcProp.html#16257" class="Bound" >V</a - ><a name="16252" class="Symbol" + ><a name="16258" class="Symbol" >}</a - ><a name="16253" + ><a name="16259" > </a - ><a name="16271" class="Symbol" + ><a name="16277" class="Symbol" >→</a - ><a name="16272" + ><a name="16278" > </a - ><a name="16273" class="Symbol" + ><a name="16279" class="Symbol" >(</a - ><a name="16274" href="StlcProp.html#16241" class="Bound" + ><a name="16280" href="StlcProp.html#16247" class="Bound" >Γ</a - ><a name="16275" - > </a - ><a name="16276" href="Maps.html#10368" class="Function Operator" - >,</a - ><a name="16277" - > </a - ><a name="16278" href="StlcProp.html#16243" class="Bound" - >x</a - ><a name="16279" - > </a - ><a name="16280" href="Maps.html#10368" class="Function Operator" - >∶</a ><a name="16281" > </a - ><a name="16282" href="StlcProp.html#16245" class="Bound" - >A</a - ><a name="16283" class="Symbol" - >)</a - ><a name="16284" + ><a name="16282" href="Maps.html#10368" class="Function Operator" + >,</a + ><a name="16283" > </a - ><a name="16285" href="Stlc.html#3112" class="Datatype Operator" - >⊢</a - ><a name="16286" + ><a name="16284" href="StlcProp.html#16249" class="Bound" + >x</a + ><a name="16285" > </a - ><a name="16287" href="StlcProp.html#16247" class="Bound" - >N</a - ><a name="16288" - > </a - ><a name="16289" href="Stlc.html#3112" class="Datatype Operator" + ><a name="16286" href="Maps.html#10368" class="Function Operator" >∶</a + ><a name="16287" + > </a + ><a name="16288" href="StlcProp.html#16251" class="Bound" + >A</a + ><a name="16289" class="Symbol" + >)</a ><a name="16290" > </a - ><a name="16291" href="StlcProp.html#16249" class="Bound" - >B</a + ><a name="16291" href="Stlc.html#6070" class="Datatype Operator" + >⊢</a ><a name="16292" + > </a + ><a name="16293" href="StlcProp.html#16253" class="Bound" + >N</a + ><a name="16294" + > </a + ><a name="16295" href="Stlc.html#6070" class="Datatype Operator" + >∶</a + ><a name="16296" + > </a + ><a name="16297" href="StlcProp.html#16255" class="Bound" + >B</a + ><a name="16298" > </a - ><a name="16310" class="Symbol" + ><a name="16316" class="Symbol" >→</a - ><a name="16311" - > </a - ><a name="16312" href="Maps.html#10265" class="Function" - >∅</a - ><a name="16313" - > </a - ><a name="16314" href="Stlc.html#3112" class="Datatype Operator" - >⊢</a - ><a name="16315" - > </a - ><a name="16316" href="StlcProp.html#16251" class="Bound" - >V</a ><a name="16317" > </a - ><a name="16318" href="Stlc.html#3112" class="Datatype Operator" - >∶</a + ><a name="16318" href="Maps.html#10265" class="Function" + >∅</a ><a name="16319" > </a - ><a name="16320" href="StlcProp.html#16245" class="Bound" - >A</a + ><a name="16320" href="Stlc.html#6070" class="Datatype Operator" + >⊢</a ><a name="16321" + > </a + ><a name="16322" href="StlcProp.html#16257" class="Bound" + >V</a + ><a name="16323" + > </a + ><a name="16324" href="Stlc.html#6070" class="Datatype Operator" + >∶</a + ><a name="16325" + > </a + ><a name="16326" href="StlcProp.html#16251" class="Bound" + >A</a + ><a name="16327" > </a - ><a name="16339" class="Symbol" - >→</a - ><a name="16340" - > </a - ><a name="16341" href="StlcProp.html#16241" class="Bound" - >Γ</a - ><a name="16342" - > </a - ><a name="16343" href="Stlc.html#3112" class="Datatype Operator" - >⊢</a - ><a name="16344" - > </a ><a name="16345" class="Symbol" + >→</a + ><a name="16346" + > </a + ><a name="16347" href="StlcProp.html#16247" class="Bound" + >Γ</a + ><a name="16348" + > </a + ><a name="16349" href="Stlc.html#6070" class="Datatype Operator" + >⊢</a + ><a name="16350" + > </a + ><a name="16351" class="Symbol" >(</a - ><a name="16346" href="StlcProp.html#16247" class="Bound" + ><a name="16352" href="StlcProp.html#16253" class="Bound" >N</a - ><a name="16347" + ><a name="16353" > </a - ><a name="16348" href="Stlc.html#1276" class="Function Operator" + ><a name="16354" href="Stlc.html#4234" class="Function Operator" >[</a - ><a name="16349" + ><a name="16355" > </a - ><a name="16350" href="StlcProp.html#16243" class="Bound" + ><a name="16356" href="StlcProp.html#16249" class="Bound" >x</a - ><a name="16351" + ><a name="16357" > </a - ><a name="16352" href="Stlc.html#1276" class="Function Operator" + ><a name="16358" href="Stlc.html#4234" class="Function Operator" >:=</a - ><a name="16354" + ><a name="16360" > </a - ><a name="16355" href="StlcProp.html#16251" class="Bound" + ><a name="16361" href="StlcProp.html#16257" class="Bound" >V</a - ><a name="16356" + ><a name="16362" > </a - ><a name="16357" href="Stlc.html#1276" class="Function Operator" + ><a name="16363" href="Stlc.html#4234" class="Function Operator" >]</a - ><a name="16358" class="Symbol" + ><a name="16364" class="Symbol" >)</a - ><a name="16359" + ><a name="16365" > </a - ><a name="16360" href="Stlc.html#3112" class="Datatype Operator" + ><a name="16366" href="Stlc.html#6070" class="Datatype Operator" >∶</a - ><a name="16361" + ><a name="16367" > </a - ><a name="16362" href="StlcProp.html#16249" class="Bound" + ><a name="16368" href="StlcProp.html#16255" class="Bound" >B</a > @@ -4994,7 +4994,7 @@ we show that if `∅ ⊢ V ∶ A` then `Γ ⊢ N [ x := V ] ∶ B`. - If `N` is a variable there are two cases to consider, depending on whether `N` is `x` or some other variable. - - If `N = \` x`, then from `Γ , x ∶ A ⊢ x ∶ B` + - If `N = `` `x ``, then from `Γ , x ∶ A ⊢ x ∶ B` we know that looking up `x` in `Γ , x : A` gives `just B`, but we already know it gives `just A`; applying injectivity for `just` we conclude that `A ≡ B`. @@ -5038,381 +5038,369 @@ we show that if `∅ ⊢ V ∶ A` then `Γ ⊢ N [ x := V ] ∶ B`. We need a couple of lemmas. A closed term can be weakened to any context, and `just` is injective. <pre class="Agda"> -<a name="19516" href="StlcProp.html#19516" class="Function" +<a name="19525" href="StlcProp.html#19525" class="Function" >weaken-closed</a - ><a name="19529" - > </a - ><a name="19530" class="Symbol" - >:</a - ><a name="19531" - > </a - ><a name="19532" class="Symbol" - >∀</a - ><a name="19533" - > </a - ><a name="19534" class="Symbol" - >{</a - ><a name="19535" href="StlcProp.html#19535" class="Bound" - >V</a - ><a name="19536" - > </a - ><a name="19537" href="StlcProp.html#19537" class="Bound" - >A</a ><a name="19538" > </a - ><a name="19539" href="StlcProp.html#19539" class="Bound" - >Γ</a - ><a name="19540" class="Symbol" - >}</a - ><a name="19541" + ><a name="19539" class="Symbol" + >:</a + ><a name="19540" > </a - ><a name="19542" class="Symbol" - >→</a - ><a name="19543" + ><a name="19541" class="Symbol" + >∀</a + ><a name="19542" > </a - ><a name="19544" href="Maps.html#10265" class="Function" - >∅</a + ><a name="19543" class="Symbol" + >{</a + ><a name="19544" href="StlcProp.html#19544" class="Bound" + >V</a ><a name="19545" > </a - ><a name="19546" href="Stlc.html#3112" class="Datatype Operator" - >⊢</a + ><a name="19546" href="StlcProp.html#19546" class="Bound" + >A</a ><a name="19547" > </a - ><a name="19548" href="StlcProp.html#19535" class="Bound" - >V</a - ><a name="19549" - > </a - ><a name="19550" href="Stlc.html#3112" class="Datatype Operator" - >∶</a - ><a name="19551" - > </a - ><a name="19552" href="StlcProp.html#19537" class="Bound" - >A</a - ><a name="19553" - > </a - ><a name="19554" class="Symbol" - >→</a - ><a name="19555" - > </a - ><a name="19556" href="StlcProp.html#19539" class="Bound" + ><a name="19548" href="StlcProp.html#19548" class="Bound" >Γ</a - ><a name="19557" + ><a name="19549" class="Symbol" + >}</a + ><a name="19550" > </a - ><a name="19558" href="Stlc.html#3112" class="Datatype Operator" + ><a name="19551" class="Symbol" + >→</a + ><a name="19552" + > </a + ><a name="19553" href="Maps.html#10265" class="Function" + >∅</a + ><a name="19554" + > </a + ><a name="19555" href="Stlc.html#6070" class="Datatype Operator" >⊢</a - ><a name="19559" + ><a name="19556" > </a - ><a name="19560" href="StlcProp.html#19535" class="Bound" + ><a name="19557" href="StlcProp.html#19544" class="Bound" >V</a - ><a name="19561" + ><a name="19558" > </a - ><a name="19562" href="Stlc.html#3112" class="Datatype Operator" + ><a name="19559" href="Stlc.html#6070" class="Datatype Operator" >∶</a - ><a name="19563" + ><a name="19560" > </a - ><a name="19564" href="StlcProp.html#19537" class="Bound" + ><a name="19561" href="StlcProp.html#19546" class="Bound" >A</a - ><a name="19565" + ><a name="19562" + > </a + ><a name="19563" class="Symbol" + >→</a + ><a name="19564" + > </a + ><a name="19565" href="StlcProp.html#19548" class="Bound" + >Γ</a + ><a name="19566" + > </a + ><a name="19567" href="Stlc.html#6070" class="Datatype Operator" + >⊢</a + ><a name="19568" + > </a + ><a name="19569" href="StlcProp.html#19544" class="Bound" + >V</a + ><a name="19570" + > </a + ><a name="19571" href="Stlc.html#6070" class="Datatype Operator" + >∶</a + ><a name="19572" + > </a + ><a name="19573" href="StlcProp.html#19546" class="Bound" + >A</a + ><a name="19574" > </a - ><a name="19566" href="StlcProp.html#19516" class="Function" + ><a name="19575" href="StlcProp.html#19525" class="Function" >weaken-closed</a - ><a name="19579" + ><a name="19588" > </a - ><a name="19580" class="Symbol" + ><a name="19589" class="Symbol" >{</a - ><a name="19581" href="StlcProp.html#19581" class="Bound" + ><a name="19590" href="StlcProp.html#19590" class="Bound" >V</a - ><a name="19582" class="Symbol" + ><a name="19591" class="Symbol" >}</a - ><a name="19583" + ><a name="19592" > </a - ><a name="19584" class="Symbol" + ><a name="19593" class="Symbol" >{</a - ><a name="19585" href="StlcProp.html#19585" class="Bound" + ><a name="19594" href="StlcProp.html#19594" class="Bound" >A</a - ><a name="19586" class="Symbol" - >}</a - ><a name="19587" - > </a - ><a name="19588" class="Symbol" - >{</a - ><a name="19589" href="StlcProp.html#19589" class="Bound" - >Γ</a - ><a name="19590" class="Symbol" - >}</a - ><a name="19591" - > </a - ><a name="19592" href="StlcProp.html#19592" class="Bound" - >⊢V</a - ><a name="19594" - > </a ><a name="19595" class="Symbol" - >=</a + >}</a ><a name="19596" > </a - ><a name="19597" href="StlcProp.html#12491" class="Function" - >context-lemma</a - ><a name="19610" - > </a - ><a name="19611" href="StlcProp.html#19629" class="Function" - >Γ~Γ′</a - ><a name="19615" - > </a - ><a name="19616" href="StlcProp.html#19592" class="Bound" - >⊢V</a - ><a name="19618" - > - </a - ><a name="19621" class="Keyword" - >where</a - ><a name="19626" - > - </a - ><a name="19629" href="StlcProp.html#19629" class="Function" - >Γ~Γ′</a - ><a name="19633" - > </a - ><a name="19634" class="Symbol" - >:</a - ><a name="19635" - > </a - ><a name="19636" class="Symbol" - >∀</a - ><a name="19637" - > </a - ><a name="19638" class="Symbol" + ><a name="19597" class="Symbol" >{</a - ><a name="19639" href="StlcProp.html#19639" class="Bound" - >x</a - ><a name="19640" class="Symbol" - >}</a - ><a name="19641" - > </a - ><a name="19642" class="Symbol" - >→</a - ><a name="19643" - > </a - ><a name="19644" href="StlcProp.html#19639" class="Bound" - >x</a - ><a name="19645" - > </a - ><a name="19646" href="StlcProp.html#7659" class="Datatype Operator" - >∈</a - ><a name="19647" - > </a - ><a name="19648" href="StlcProp.html#19581" class="Bound" - >V</a - ><a name="19649" - > </a - ><a name="19650" class="Symbol" - >→</a - ><a name="19651" - > </a - ><a name="19652" href="Maps.html#10265" class="Function" - >∅</a - ><a name="19653" - > </a - ><a name="19654" href="StlcProp.html#19639" class="Bound" - >x</a - ><a name="19655" - > </a - ><a name="19656" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#83" class="Datatype Operator" - >≡</a - ><a name="19657" - > </a - ><a name="19658" href="StlcProp.html#19589" class="Bound" + ><a name="19598" href="StlcProp.html#19598" class="Bound" >Γ</a - ><a name="19659" + ><a name="19599" class="Symbol" + >}</a + ><a name="19600" > </a - ><a name="19660" href="StlcProp.html#19639" class="Bound" - >x</a - ><a name="19661" + ><a name="19601" href="StlcProp.html#19601" class="Bound" + >⊢V</a + ><a name="19603" + > </a + ><a name="19604" class="Symbol" + >=</a + ><a name="19605" + > </a + ><a name="19606" href="StlcProp.html#12497" class="Function" + >context-lemma</a + ><a name="19619" + > </a + ><a name="19620" href="StlcProp.html#19638" class="Function" + >Γ~Γ′</a + ><a name="19624" + > </a + ><a name="19625" href="StlcProp.html#19601" class="Bound" + >⊢V</a + ><a name="19627" > </a - ><a name="19664" href="StlcProp.html#19629" class="Function" + ><a name="19630" class="Keyword" + >where</a + ><a name="19635" + > + </a + ><a name="19638" href="StlcProp.html#19638" class="Function" >Γ~Γ′</a + ><a name="19642" + > </a + ><a name="19643" class="Symbol" + >:</a + ><a name="19644" + > </a + ><a name="19645" class="Symbol" + >∀</a + ><a name="19646" + > </a + ><a name="19647" class="Symbol" + >{</a + ><a name="19648" href="StlcProp.html#19648" class="Bound" + >x</a + ><a name="19649" class="Symbol" + >}</a + ><a name="19650" + > </a + ><a name="19651" class="Symbol" + >→</a + ><a name="19652" + > </a + ><a name="19653" href="StlcProp.html#19648" class="Bound" + >x</a + ><a name="19654" + > </a + ><a name="19655" href="StlcProp.html#7659" class="Datatype Operator" + >∈</a + ><a name="19656" + > </a + ><a name="19657" href="StlcProp.html#19590" class="Bound" + >V</a + ><a name="19658" + > </a + ><a name="19659" class="Symbol" + >→</a + ><a name="19660" + > </a + ><a name="19661" href="Maps.html#10265" class="Function" + >∅</a + ><a name="19662" + > </a + ><a name="19663" href="StlcProp.html#19648" class="Bound" + >x</a + ><a name="19664" + > </a + ><a name="19665" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#83" class="Datatype Operator" + >≡</a + ><a name="19666" + > </a + ><a name="19667" href="StlcProp.html#19598" class="Bound" + >Γ</a ><a name="19668" > </a - ><a name="19669" class="Symbol" - >{</a - ><a name="19670" href="StlcProp.html#19670" class="Bound" + ><a name="19669" href="StlcProp.html#19648" class="Bound" >x</a - ><a name="19671" class="Symbol" + ><a name="19670" + > + </a + ><a name="19673" href="StlcProp.html#19638" class="Function" + >Γ~Γ′</a + ><a name="19677" + > </a + ><a name="19678" class="Symbol" + >{</a + ><a name="19679" href="StlcProp.html#19679" class="Bound" + >x</a + ><a name="19680" class="Symbol" >}</a - ><a name="19672" + ><a name="19681" > </a - ><a name="19673" href="StlcProp.html#19673" class="Bound" + ><a name="19682" href="StlcProp.html#19682" class="Bound" >x∈V</a - ><a name="19676" - > </a - ><a name="19677" class="Symbol" - >=</a - ><a name="19678" - > </a - ><a name="19679" href="https://agda.github.io/agda-stdlib/Data.Empty.html#348" class="Function" - >⊥-elim</a ><a name="19685" > </a ><a name="19686" class="Symbol" - >(</a - ><a name="19687" href="StlcProp.html#19710" class="Function" - >x∉V</a - ><a name="19690" + >=</a + ><a name="19687" > </a - ><a name="19691" href="StlcProp.html#19673" class="Bound" + ><a name="19688" href="https://agda.github.io/agda-stdlib/Data.Empty.html#348" class="Function" + >⊥-elim</a + ><a name="19694" + > </a + ><a name="19695" class="Symbol" + >(</a + ><a name="19696" href="StlcProp.html#19719" class="Function" + >x∉V</a + ><a name="19699" + > </a + ><a name="19700" href="StlcProp.html#19682" class="Bound" >x∈V</a - ><a name="19694" class="Symbol" + ><a name="19703" class="Symbol" >)</a - ><a name="19695" + ><a name="19704" > </a - ><a name="19700" class="Keyword" + ><a name="19709" class="Keyword" >where</a - ><a name="19705" + ><a name="19714" > </a - ><a name="19710" href="StlcProp.html#19710" class="Function" + ><a name="19719" href="StlcProp.html#19719" class="Function" >x∉V</a - ><a name="19713" - > </a - ><a name="19714" class="Symbol" - >:</a - ><a name="19715" - > </a - ><a name="19716" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#414" class="Function Operator" - >¬</a - ><a name="19717" - > </a - ><a name="19718" class="Symbol" - >(</a - ><a name="19719" href="StlcProp.html#19670" class="Bound" - >x</a - ><a name="19720" - > </a - ><a name="19721" href="StlcProp.html#7659" class="Datatype Operator" - >∈</a ><a name="19722" > </a - ><a name="19723" href="StlcProp.html#19581" class="Bound" + ><a name="19723" class="Symbol" + >:</a + ><a name="19724" + > </a + ><a name="19725" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#414" class="Function Operator" + >¬</a + ><a name="19726" + > </a + ><a name="19727" class="Symbol" + >(</a + ><a name="19728" href="StlcProp.html#19679" class="Bound" + >x</a + ><a name="19729" + > </a + ><a name="19730" href="StlcProp.html#7659" class="Datatype Operator" + >∈</a + ><a name="19731" + > </a + ><a name="19732" href="StlcProp.html#19590" class="Bound" >V</a - ><a name="19724" class="Symbol" + ><a name="19733" class="Symbol" >)</a - ><a name="19725" + ><a name="19734" > </a - ><a name="19730" href="StlcProp.html#19710" class="Function" + ><a name="19739" href="StlcProp.html#19719" class="Function" >x∉V</a - ><a name="19733" + ><a name="19742" > </a - ><a name="19734" class="Symbol" + ><a name="19743" class="Symbol" >=</a - ><a name="19735" + ><a name="19744" > </a - ><a name="19736" href="StlcProp.html#11791" class="Postulate" + ><a name="19745" href="StlcProp.html#11797" class="Postulate" >∅⊢-closed</a - ><a name="19745" + ><a name="19754" > </a - ><a name="19746" href="StlcProp.html#19592" class="Bound" + ><a name="19755" href="StlcProp.html#19601" class="Bound" >⊢V</a - ><a name="19748" + ><a name="19757" > </a - ><a name="19749" class="Symbol" + ><a name="19758" class="Symbol" >{</a - ><a name="19750" href="StlcProp.html#19670" class="Bound" + ><a name="19759" href="StlcProp.html#19679" class="Bound" >x</a - ><a name="19751" class="Symbol" + ><a name="19760" class="Symbol" >}</a - ><a name="19752" + ><a name="19761" > </a - ><a name="19754" href="StlcProp.html#19754" class="Function" + ><a name="19763" href="StlcProp.html#19763" class="Function" >just-injective</a - ><a name="19768" - > </a - ><a name="19769" class="Symbol" - >:</a - ><a name="19770" - > </a - ><a name="19771" class="Symbol" - >∀</a - ><a name="19772" - > </a - ><a name="19773" class="Symbol" - >{</a - ><a name="19774" href="StlcProp.html#19774" class="Bound" - >X</a - ><a name="19775" - > </a - ><a name="19776" class="Symbol" - >:</a ><a name="19777" > </a - ><a name="19778" class="PrimitiveType" - >Set</a - ><a name="19781" class="Symbol" - >}</a - ><a name="19782" - > </a - ><a name="19783" class="Symbol" - >{</a - ><a name="19784" href="StlcProp.html#19784" class="Bound" - >x</a - ><a name="19785" - > </a - ><a name="19786" href="StlcProp.html#19786" class="Bound" - >y</a - ><a name="19787" - > </a - ><a name="19788" class="Symbol" + ><a name="19778" class="Symbol" >:</a - ><a name="19789" + ><a name="19779" > </a - ><a name="19790" href="StlcProp.html#19774" class="Bound" + ><a name="19780" class="Symbol" + >∀</a + ><a name="19781" + > </a + ><a name="19782" class="Symbol" + >{</a + ><a name="19783" href="StlcProp.html#19783" class="Bound" >X</a - ><a name="19791" class="Symbol" - >}</a - ><a name="19792" + ><a name="19784" > </a - ><a name="19793" class="Symbol" - >→</a + ><a name="19785" class="Symbol" + >:</a + ><a name="19786" + > </a + ><a name="19787" class="PrimitiveType" + >Set</a + ><a name="19790" class="Symbol" + >}</a + ><a name="19791" + > </a + ><a name="19792" class="Symbol" + >{</a + ><a name="19793" href="StlcProp.html#19793" class="Bound" + >x</a ><a name="19794" > </a - ><a name="19795" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#83" class="Datatype Operator" - >_≡_</a + ><a name="19795" href="StlcProp.html#19795" class="Bound" + >y</a + ><a name="19796" + > </a + ><a name="19797" class="Symbol" + >:</a ><a name="19798" > </a - ><a name="19799" class="Symbol" - >{</a - ><a name="19800" class="Argument" - >A</a + ><a name="19799" href="StlcProp.html#19783" class="Bound" + >X</a + ><a name="19800" class="Symbol" + >}</a ><a name="19801" > </a ><a name="19802" class="Symbol" - >=</a + >→</a ><a name="19803" > </a - ><a name="19804" href="https://agda.github.io/agda-stdlib/Data.Maybe.Base.html#335" class="Datatype" - >Maybe</a - ><a name="19809" + ><a name="19804" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#83" class="Datatype Operator" + >_≡_</a + ><a name="19807" + > </a + ><a name="19808" class="Symbol" + >{</a + ><a name="19809" class="Argument" + >A</a + ><a name="19810" > </a - ><a name="19810" href="StlcProp.html#19774" class="Bound" - >X</a ><a name="19811" class="Symbol" - >}</a + >=</a ><a name="19812" > </a - ><a name="19813" class="Symbol" - >(</a - ><a name="19814" href="https://agda.github.io/agda-stdlib/Data.Maybe.Base.html#373" class="InductiveConstructor" - >just</a + ><a name="19813" href="https://agda.github.io/agda-stdlib/Data.Maybe.Base.html#335" class="Datatype" + >Maybe</a ><a name="19818" > </a - ><a name="19819" href="StlcProp.html#19784" class="Bound" - >x</a + ><a name="19819" href="StlcProp.html#19783" class="Bound" + >X</a ><a name="19820" class="Symbol" - >)</a + >}</a ><a name="19821" > </a ><a name="19822" class="Symbol" @@ -5421,42 +5409,54 @@ We need a couple of lemmas. A closed term can be weakened to any context, and `j >just</a ><a name="19827" > </a - ><a name="19828" href="StlcProp.html#19786" class="Bound" - >y</a + ><a name="19828" href="StlcProp.html#19793" class="Bound" + >x</a ><a name="19829" class="Symbol" >)</a ><a name="19830" > </a ><a name="19831" class="Symbol" - >→</a - ><a name="19832" - > </a - ><a name="19833" href="StlcProp.html#19784" class="Bound" - >x</a - ><a name="19834" - > </a - ><a name="19835" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#83" class="Datatype Operator" - >≡</a + >(</a + ><a name="19832" href="https://agda.github.io/agda-stdlib/Data.Maybe.Base.html#373" class="InductiveConstructor" + >just</a ><a name="19836" > </a - ><a name="19837" href="StlcProp.html#19786" class="Bound" + ><a name="19837" href="StlcProp.html#19795" class="Bound" >y</a - ><a name="19838" + ><a name="19838" class="Symbol" + >)</a + ><a name="19839" + > </a + ><a name="19840" class="Symbol" + >→</a + ><a name="19841" + > </a + ><a name="19842" href="StlcProp.html#19793" class="Bound" + >x</a + ><a name="19843" + > </a + ><a name="19844" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#83" class="Datatype Operator" + >≡</a + ><a name="19845" + > </a + ><a name="19846" href="StlcProp.html#19795" class="Bound" + >y</a + ><a name="19847" > </a - ><a name="19839" href="StlcProp.html#19754" class="Function" + ><a name="19848" href="StlcProp.html#19763" class="Function" >just-injective</a - ><a name="19853" + ><a name="19862" > </a - ><a name="19854" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#140" class="InductiveConstructor" + ><a name="19863" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#140" class="InductiveConstructor" >refl</a - ><a name="19858" + ><a name="19867" > </a - ><a name="19859" class="Symbol" + ><a name="19868" class="Symbol" >=</a - ><a name="19860" + ><a name="19869" > </a - ><a name="19861" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#140" class="InductiveConstructor" + ><a name="19870" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#140" class="InductiveConstructor" >refl</a > @@ -5464,937 +5464,937 @@ We need a couple of lemmas. A closed term can be weakened to any context, and `j <pre class="Agda"> -<a name="19891" href="StlcProp.html#16218" class="Function" +<a name="19900" href="StlcProp.html#16224" class="Function" >preservation-[:=]</a - ><a name="19908" + ><a name="19917" > </a - ><a name="19909" class="Symbol" + ><a name="19918" class="Symbol" >{</a - ><a name="19910" href="StlcProp.html#19910" class="Bound" + ><a name="19919" href="StlcProp.html#19919" class="Bound" >Γ</a - ><a name="19911" class="Symbol" + ><a name="19920" class="Symbol" >}</a - ><a name="19912" + ><a name="19921" > </a - ><a name="19913" class="Symbol" + ><a name="19922" class="Symbol" >{</a - ><a name="19914" href="StlcProp.html#19914" class="Bound" + ><a name="19923" href="StlcProp.html#19923" class="Bound" >x</a - ><a name="19915" class="Symbol" + ><a name="19924" class="Symbol" >}</a - ><a name="19916" + ><a name="19925" > </a - ><a name="19917" class="Symbol" + ><a name="19926" class="Symbol" >{</a - ><a name="19918" href="StlcProp.html#19918" class="Bound" + ><a name="19927" href="StlcProp.html#19927" class="Bound" >A</a - ><a name="19919" class="Symbol" + ><a name="19928" class="Symbol" >}</a - ><a name="19920" + ><a name="19929" > </a - ><a name="19921" class="Symbol" + ><a name="19930" class="Symbol" >(</a - ><a name="19922" href="Stlc.html#3156" class="InductiveConstructor" + ><a name="19931" href="Stlc.html#6114" class="InductiveConstructor" >Ax</a - ><a name="19924" + ><a name="19933" > </a - ><a name="19925" class="Symbol" + ><a name="19934" class="Symbol" >{</a - ><a name="19926" href="StlcProp.html#19926" class="Bound" + ><a name="19935" href="StlcProp.html#19935" class="Bound" >Γ,x∶A</a - ><a name="19931" class="Symbol" - >}</a - ><a name="19932" - > </a - ><a name="19933" class="Symbol" - >{</a - ><a name="19934" href="StlcProp.html#19934" class="Bound" - >x′</a - ><a name="19936" class="Symbol" - >}</a - ><a name="19937" - > </a - ><a name="19938" class="Symbol" - >{</a - ><a name="19939" href="StlcProp.html#19939" class="Bound" - >B</a ><a name="19940" class="Symbol" >}</a ><a name="19941" > </a - ><a name="19942" href="StlcProp.html#19942" class="Bound" + ><a name="19942" class="Symbol" + >{</a + ><a name="19943" href="StlcProp.html#19943" class="Bound" + >x′</a + ><a name="19945" class="Symbol" + >}</a + ><a name="19946" + > </a + ><a name="19947" class="Symbol" + >{</a + ><a name="19948" href="StlcProp.html#19948" class="Bound" + >B</a + ><a name="19949" class="Symbol" + >}</a + ><a name="19950" + > </a + ><a name="19951" href="StlcProp.html#19951" class="Bound" >[Γ,x∶A]x′≡B</a - ><a name="19953" class="Symbol" + ><a name="19962" class="Symbol" >)</a - ><a name="19954" + ><a name="19963" > </a - ><a name="19955" href="StlcProp.html#19955" class="Bound" + ><a name="19964" href="StlcProp.html#19964" class="Bound" >⊢V</a - ><a name="19957" - > </a - ><a name="19958" class="Keyword" - >with</a - ><a name="19962" - > </a - ><a name="19963" href="StlcProp.html#19914" class="Bound" - >x</a - ><a name="19964" - > </a - ><a name="19965" href="Maps.html#2509" class="Function Operator" - >≟</a ><a name="19966" > </a - ><a name="19967" href="StlcProp.html#19934" class="Bound" + ><a name="19967" class="Keyword" + >with</a + ><a name="19971" + > </a + ><a name="19972" href="StlcProp.html#19923" class="Bound" + >x</a + ><a name="19973" + > </a + ><a name="19974" href="Maps.html#2509" class="Function Operator" + >≟</a + ><a name="19975" + > </a + ><a name="19976" href="StlcProp.html#19943" class="Bound" >x′</a - ><a name="19969" + ><a name="19978" > </a - ><a name="19970" class="Symbol" + ><a name="19979" class="Symbol" >...|</a - ><a name="19974" - > </a - ><a name="19975" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#520" class="InductiveConstructor" - >yes</a - ><a name="19978" - > </a - ><a name="19979" href="StlcProp.html#19979" class="Bound" - >x≡x′</a ><a name="19983" > </a - ><a name="19984" class="Keyword" + ><a name="19984" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#520" class="InductiveConstructor" + >yes</a + ><a name="19987" + > </a + ><a name="19988" href="StlcProp.html#19988" class="Bound" + >x≡x′</a + ><a name="19992" + > </a + ><a name="19993" class="Keyword" >rewrite</a - ><a name="19991" + ><a name="20000" > </a - ><a name="19992" href="StlcProp.html#19754" class="Function" + ><a name="20001" href="StlcProp.html#19763" class="Function" >just-injective</a - ><a name="20006" + ><a name="20015" > </a - ><a name="20007" href="StlcProp.html#19942" class="Bound" + ><a name="20016" href="StlcProp.html#19951" class="Bound" >[Γ,x∶A]x′≡B</a - ><a name="20018" + ><a name="20027" > </a - ><a name="20020" class="Symbol" + ><a name="20029" class="Symbol" >=</a - ><a name="20021" + ><a name="20030" > </a - ><a name="20023" href="StlcProp.html#19516" class="Function" + ><a name="20032" href="StlcProp.html#19525" class="Function" >weaken-closed</a - ><a name="20036" + ><a name="20045" > </a - ><a name="20037" href="StlcProp.html#19955" class="Bound" + ><a name="20046" href="StlcProp.html#19964" class="Bound" >⊢V</a - ><a name="20039" + ><a name="20048" > </a - ><a name="20040" class="Symbol" + ><a name="20049" class="Symbol" >...|</a - ><a name="20044" - > </a - ><a name="20045" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#547" class="InductiveConstructor" - >no</a - ><a name="20047" - > </a - ><a name="20049" href="StlcProp.html#20049" class="Bound" - >x≢x′</a ><a name="20053" - > </a - ><a name="20055" class="Symbol" - >=</a + > </a + ><a name="20054" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#547" class="InductiveConstructor" + >no</a ><a name="20056" > </a - ><a name="20058" href="Stlc.html#3156" class="InductiveConstructor" + ><a name="20058" href="StlcProp.html#20058" class="Bound" + >x≢x′</a + ><a name="20062" + > </a + ><a name="20064" class="Symbol" + >=</a + ><a name="20065" + > </a + ><a name="20067" href="Stlc.html#6114" class="InductiveConstructor" >Ax</a - ><a name="20060" + ><a name="20069" > </a - ><a name="20061" href="StlcProp.html#19942" class="Bound" + ><a name="20070" href="StlcProp.html#19951" class="Bound" >[Γ,x∶A]x′≡B</a - ><a name="20072" + ><a name="20081" > </a - ><a name="20073" href="StlcProp.html#16218" class="Function" + ><a name="20082" href="StlcProp.html#16224" class="Function" >preservation-[:=]</a - ><a name="20090" + ><a name="20099" > </a - ><a name="20091" class="Symbol" + ><a name="20100" class="Symbol" >{</a - ><a name="20092" href="StlcProp.html#20092" class="Bound" + ><a name="20101" href="StlcProp.html#20101" class="Bound" >Γ</a - ><a name="20093" class="Symbol" + ><a name="20102" class="Symbol" >}</a - ><a name="20094" + ><a name="20103" > </a - ><a name="20095" class="Symbol" + ><a name="20104" class="Symbol" >{</a - ><a name="20096" href="StlcProp.html#20096" class="Bound" + ><a name="20105" href="StlcProp.html#20105" class="Bound" >x</a - ><a name="20097" class="Symbol" + ><a name="20106" class="Symbol" >}</a - ><a name="20098" + ><a name="20107" > </a - ><a name="20099" class="Symbol" + ><a name="20108" class="Symbol" >{</a - ><a name="20100" href="StlcProp.html#20100" class="Bound" + ><a name="20109" href="StlcProp.html#20109" class="Bound" >A</a - ><a name="20101" class="Symbol" + ><a name="20110" class="Symbol" >}</a - ><a name="20102" - > </a - ><a name="20103" class="Symbol" - >{</a - ><a name="20104" href="Stlc.html#743" class="InductiveConstructor Operator" - >λ[</a - ><a name="20106" - > </a - ><a name="20107" href="StlcProp.html#20107" class="Bound" - >x′</a - ><a name="20109" - > </a - ><a name="20110" href="Stlc.html#743" class="InductiveConstructor Operator" - >∶</a ><a name="20111" > </a - ><a name="20112" href="StlcProp.html#20112" class="Bound" - >A′</a - ><a name="20114" + ><a name="20112" class="Symbol" + >{</a + ><a name="20113" href="Stlc.html#3520" class="InductiveConstructor Operator" + >λ[</a + ><a name="20115" > </a - ><a name="20115" href="Stlc.html#743" class="InductiveConstructor Operator" - >]</a - ><a name="20116" + ><a name="20116" href="StlcProp.html#20116" class="Bound" + >x′</a + ><a name="20118" > </a - ><a name="20117" href="StlcProp.html#20117" class="Bound" - >N′</a - ><a name="20119" class="Symbol" - >}</a + ><a name="20119" href="Stlc.html#3520" class="InductiveConstructor Operator" + >∶</a ><a name="20120" > </a - ><a name="20121" class="Symbol" - >{</a - ><a name="20122" class="DottedPattern Symbol" - >.</a - ><a name="20123" href="StlcProp.html#20112" class="DottedPattern Bound" + ><a name="20121" href="StlcProp.html#20121" class="Bound" >A′</a + ><a name="20123" + > </a + ><a name="20124" href="Stlc.html#3520" class="InductiveConstructor Operator" + >]</a ><a name="20125" > </a - ><a name="20126" href="Stlc.html#609" class="InductiveConstructor Operator" - >⇒</a - ><a name="20127" + ><a name="20126" href="StlcProp.html#20126" class="Bound" + >N′</a + ><a name="20128" class="Symbol" + >}</a + ><a name="20129" > </a - ><a name="20128" href="StlcProp.html#20128" class="Bound" - >B′</a ><a name="20130" class="Symbol" - >}</a - ><a name="20131" - > </a - ><a name="20132" class="Symbol" >{</a - ><a name="20133" href="StlcProp.html#20133" class="Bound" - >V</a - ><a name="20134" class="Symbol" - >}</a - ><a name="20135" + ><a name="20131" class="DottedPattern Symbol" + >.</a + ><a name="20132" href="StlcProp.html#20121" class="DottedPattern Bound" + >A′</a + ><a name="20134" > </a - ><a name="20136" class="Symbol" - >(</a - ><a name="20137" href="Stlc.html#3210" class="InductiveConstructor" - >⇒-I</a + ><a name="20135" href="Stlc.html#2550" class="InductiveConstructor Operator" + >⇒</a + ><a name="20136" + > </a + ><a name="20137" href="StlcProp.html#20137" class="Bound" + >B′</a + ><a name="20139" class="Symbol" + >}</a ><a name="20140" > </a - ><a name="20141" href="StlcProp.html#20141" class="Bound" + ><a name="20141" class="Symbol" + >{</a + ><a name="20142" href="StlcProp.html#20142" class="Bound" + >V</a + ><a name="20143" class="Symbol" + >}</a + ><a name="20144" + > </a + ><a name="20145" class="Symbol" + >(</a + ><a name="20146" href="Stlc.html#6168" class="InductiveConstructor" + >⇒-I</a + ><a name="20149" + > </a + ><a name="20150" href="StlcProp.html#20150" class="Bound" >⊢N′</a - ><a name="20144" class="Symbol" + ><a name="20153" class="Symbol" >)</a - ><a name="20145" + ><a name="20154" > </a - ><a name="20146" href="StlcProp.html#20146" class="Bound" + ><a name="20155" href="StlcProp.html#20155" class="Bound" >⊢V</a - ><a name="20148" - > </a - ><a name="20149" class="Keyword" - >with</a - ><a name="20153" - > </a - ><a name="20154" href="StlcProp.html#20096" class="Bound" - >x</a - ><a name="20155" - > </a - ><a name="20156" href="Maps.html#2509" class="Function Operator" - >≟</a ><a name="20157" > </a - ><a name="20158" href="StlcProp.html#20107" class="Bound" + ><a name="20158" class="Keyword" + >with</a + ><a name="20162" + > </a + ><a name="20163" href="StlcProp.html#20105" class="Bound" + >x</a + ><a name="20164" + > </a + ><a name="20165" href="Maps.html#2509" class="Function Operator" + >≟</a + ><a name="20166" + > </a + ><a name="20167" href="StlcProp.html#20116" class="Bound" >x′</a - ><a name="20160" + ><a name="20169" > </a - ><a name="20161" class="Symbol" + ><a name="20170" class="Symbol" >...|</a - ><a name="20165" - > </a - ><a name="20166" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#520" class="InductiveConstructor" - >yes</a - ><a name="20169" - > </a - ><a name="20170" href="StlcProp.html#20170" class="Bound" - >x≡x′</a ><a name="20174" > </a - ><a name="20175" class="Keyword" - >rewrite</a - ><a name="20182" + ><a name="20175" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#520" class="InductiveConstructor" + >yes</a + ><a name="20178" > </a - ><a name="20183" href="StlcProp.html#20170" class="Bound" + ><a name="20179" href="StlcProp.html#20179" class="Bound" >x≡x′</a - ><a name="20187" + ><a name="20183" > </a - ><a name="20188" class="Symbol" + ><a name="20184" class="Keyword" + >rewrite</a + ><a name="20191" + > </a + ><a name="20192" href="StlcProp.html#20179" class="Bound" + >x≡x′</a + ><a name="20196" + > </a + ><a name="20197" class="Symbol" >=</a - ><a name="20189" + ><a name="20198" > </a - ><a name="20190" href="StlcProp.html#12491" class="Function" + ><a name="20199" href="StlcProp.html#12497" class="Function" >context-lemma</a - ><a name="20203" + ><a name="20212" > </a - ><a name="20204" href="StlcProp.html#20229" class="Function" + ><a name="20213" href="StlcProp.html#20238" class="Function" >Γ′~Γ</a - ><a name="20208" + ><a name="20217" > </a - ><a name="20209" class="Symbol" + ><a name="20218" class="Symbol" >(</a - ><a name="20210" href="Stlc.html#3210" class="InductiveConstructor" + ><a name="20219" href="Stlc.html#6168" class="InductiveConstructor" >⇒-I</a - ><a name="20213" + ><a name="20222" > </a - ><a name="20214" href="StlcProp.html#20141" class="Bound" + ><a name="20223" href="StlcProp.html#20150" class="Bound" >⊢N′</a - ><a name="20217" class="Symbol" + ><a name="20226" class="Symbol" >)</a - ><a name="20218" + ><a name="20227" > </a - ><a name="20221" class="Keyword" + ><a name="20230" class="Keyword" >where</a - ><a name="20226" + ><a name="20235" > </a - ><a name="20229" href="StlcProp.html#20229" class="Function" + ><a name="20238" href="StlcProp.html#20238" class="Function" >Γ′~Γ</a - ><a name="20233" + ><a name="20242" > </a - ><a name="20234" class="Symbol" + ><a name="20243" class="Symbol" >:</a - ><a name="20235" + ><a name="20244" > </a - ><a name="20236" class="Symbol" + ><a name="20245" class="Symbol" >∀</a - ><a name="20237" + ><a name="20246" > </a - ><a name="20238" class="Symbol" + ><a name="20247" class="Symbol" >{</a - ><a name="20239" href="StlcProp.html#20239" class="Bound" + ><a name="20248" href="StlcProp.html#20248" class="Bound" >y</a - ><a name="20240" class="Symbol" + ><a name="20249" class="Symbol" >}</a - ><a name="20241" + ><a name="20250" > </a - ><a name="20242" class="Symbol" + ><a name="20251" class="Symbol" >→</a - ><a name="20243" + ><a name="20252" > </a - ><a name="20244" href="StlcProp.html#20239" class="Bound" + ><a name="20253" href="StlcProp.html#20248" class="Bound" >y</a - ><a name="20245" - > </a - ><a name="20246" href="StlcProp.html#7659" class="Datatype Operator" - >∈</a - ><a name="20247" - > </a - ><a name="20248" class="Symbol" - >(</a - ><a name="20249" href="Stlc.html#743" class="InductiveConstructor Operator" - >λ[</a - ><a name="20251" - > </a - ><a name="20252" href="StlcProp.html#20107" class="Bound" - >x′</a ><a name="20254" > </a - ><a name="20255" href="Stlc.html#743" class="InductiveConstructor Operator" - >∶</a + ><a name="20255" href="StlcProp.html#7659" class="Datatype Operator" + >∈</a ><a name="20256" > </a - ><a name="20257" href="StlcProp.html#20112" class="Bound" - >A′</a - ><a name="20259" + ><a name="20257" class="Symbol" + >(</a + ><a name="20258" href="Stlc.html#3520" class="InductiveConstructor Operator" + >λ[</a + ><a name="20260" > </a - ><a name="20260" href="Stlc.html#743" class="InductiveConstructor Operator" - >]</a - ><a name="20261" + ><a name="20261" href="StlcProp.html#20116" class="Bound" + >x′</a + ><a name="20263" > </a - ><a name="20262" href="StlcProp.html#20117" class="Bound" - >N′</a - ><a name="20264" class="Symbol" - >)</a + ><a name="20264" href="Stlc.html#3520" class="InductiveConstructor Operator" + >∶</a ><a name="20265" > </a - ><a name="20266" class="Symbol" - >→</a - ><a name="20267" + ><a name="20266" href="StlcProp.html#20121" class="Bound" + >A′</a + ><a name="20268" > </a - ><a name="20268" class="Symbol" - >(</a - ><a name="20269" href="StlcProp.html#20092" class="Bound" - >Γ</a + ><a name="20269" href="Stlc.html#3520" class="InductiveConstructor Operator" + >]</a ><a name="20270" > </a - ><a name="20271" href="Maps.html#10368" class="Function Operator" - >,</a - ><a name="20272" - > </a - ><a name="20273" href="StlcProp.html#20107" class="Bound" - >x′</a - ><a name="20275" - > </a - ><a name="20276" href="Maps.html#10368" class="Function Operator" - >∶</a - ><a name="20277" - > </a - ><a name="20278" href="StlcProp.html#20100" class="Bound" - >A</a - ><a name="20279" class="Symbol" + ><a name="20271" href="StlcProp.html#20126" class="Bound" + >N′</a + ><a name="20273" class="Symbol" >)</a - ><a name="20280" + ><a name="20274" > </a - ><a name="20281" href="StlcProp.html#20239" class="Bound" - >y</a - ><a name="20282" + ><a name="20275" class="Symbol" + >→</a + ><a name="20276" > </a - ><a name="20283" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#83" class="Datatype Operator" - >≡</a + ><a name="20277" class="Symbol" + >(</a + ><a name="20278" href="StlcProp.html#20101" class="Bound" + >Γ</a + ><a name="20279" + > </a + ><a name="20280" href="Maps.html#10368" class="Function Operator" + >,</a + ><a name="20281" + > </a + ><a name="20282" href="StlcProp.html#20116" class="Bound" + >x′</a ><a name="20284" > </a - ><a name="20285" href="StlcProp.html#20092" class="Bound" - >Γ</a + ><a name="20285" href="Maps.html#10368" class="Function Operator" + >∶</a ><a name="20286" > </a - ><a name="20287" href="StlcProp.html#20239" class="Bound" + ><a name="20287" href="StlcProp.html#20109" class="Bound" + >A</a + ><a name="20288" class="Symbol" + >)</a + ><a name="20289" + > </a + ><a name="20290" href="StlcProp.html#20248" class="Bound" >y</a - ><a name="20288" - > - </a - ><a name="20291" href="StlcProp.html#20229" class="Function" - >Γ′~Γ</a + ><a name="20291" + > </a + ><a name="20292" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#83" class="Datatype Operator" + >≡</a + ><a name="20293" + > </a + ><a name="20294" href="StlcProp.html#20101" class="Bound" + >Γ</a ><a name="20295" > </a - ><a name="20296" class="Symbol" - >{</a - ><a name="20297" href="StlcProp.html#20297" class="Bound" + ><a name="20296" href="StlcProp.html#20248" class="Bound" >y</a - ><a name="20298" class="Symbol" - >}</a - ><a name="20299" - > </a - ><a name="20300" class="Symbol" - >(</a - ><a name="20301" href="StlcProp.html#7717" class="InductiveConstructor" - >free-λ</a - ><a name="20307" - > </a - ><a name="20308" href="StlcProp.html#20308" class="Bound" - >x′≢y</a - ><a name="20312" - > </a - ><a name="20313" href="StlcProp.html#20313" class="Bound" - >y∈N′</a - ><a name="20317" class="Symbol" - >)</a - ><a name="20318" - > </a - ><a name="20319" class="Keyword" - >with</a - ><a name="20323" - > </a - ><a name="20324" href="StlcProp.html#20107" class="Bound" - >x′</a - ><a name="20326" - > </a - ><a name="20327" href="Maps.html#2509" class="Function Operator" - >≟</a - ><a name="20328" - > </a - ><a name="20329" href="StlcProp.html#20297" class="Bound" - >y</a - ><a name="20330" + ><a name="20297" > </a - ><a name="20333" class="Symbol" - >...|</a + ><a name="20300" href="StlcProp.html#20238" class="Function" + >Γ′~Γ</a + ><a name="20304" + > </a + ><a name="20305" class="Symbol" + >{</a + ><a name="20306" href="StlcProp.html#20306" class="Bound" + >y</a + ><a name="20307" class="Symbol" + >}</a + ><a name="20308" + > </a + ><a name="20309" class="Symbol" + >(</a + ><a name="20310" href="StlcProp.html#7717" class="InductiveConstructor" + >free-λ</a + ><a name="20316" + > </a + ><a name="20317" href="StlcProp.html#20317" class="Bound" + >x′≢y</a + ><a name="20321" + > </a + ><a name="20322" href="StlcProp.html#20322" class="Bound" + >y∈N′</a + ><a name="20326" class="Symbol" + >)</a + ><a name="20327" + > </a + ><a name="20328" class="Keyword" + >with</a + ><a name="20332" + > </a + ><a name="20333" href="StlcProp.html#20116" class="Bound" + >x′</a + ><a name="20335" + > </a + ><a name="20336" href="Maps.html#2509" class="Function Operator" + >≟</a ><a name="20337" > </a - ><a name="20338" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#520" class="InductiveConstructor" - >yes</a - ><a name="20341" - > </a - ><a name="20342" href="StlcProp.html#20342" class="Bound" - >x′≡y</a - ><a name="20346" - > </a - ><a name="20348" class="Symbol" - >=</a - ><a name="20349" - > </a - ><a name="20350" href="https://agda.github.io/agda-stdlib/Data.Empty.html#348" class="Function" - >⊥-elim</a - ><a name="20356" - > </a - ><a name="20357" class="Symbol" - >(</a - ><a name="20358" href="StlcProp.html#20308" class="Bound" - >x′≢y</a - ><a name="20362" - > </a - ><a name="20363" href="StlcProp.html#20342" class="Bound" - >x′≡y</a - ><a name="20367" class="Symbol" - >)</a - ><a name="20368" + ><a name="20338" href="StlcProp.html#20306" class="Bound" + >y</a + ><a name="20339" > </a - ><a name="20371" class="Symbol" + ><a name="20342" class="Symbol" >...|</a - ><a name="20375" + ><a name="20346" > </a - ><a name="20376" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#547" class="InductiveConstructor" - >no</a - ><a name="20378" + ><a name="20347" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#520" class="InductiveConstructor" + >yes</a + ><a name="20350" + > </a + ><a name="20351" href="StlcProp.html#20351" class="Bound" + >x′≡y</a + ><a name="20355" > </a - ><a name="20380" class="Symbol" - >_</a - ><a name="20381" - > </a - ><a name="20386" class="Symbol" + ><a name="20357" class="Symbol" >=</a - ><a name="20387" + ><a name="20358" > </a - ><a name="20388" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#140" class="InductiveConstructor" + ><a name="20359" href="https://agda.github.io/agda-stdlib/Data.Empty.html#348" class="Function" + >⊥-elim</a + ><a name="20365" + > </a + ><a name="20366" class="Symbol" + >(</a + ><a name="20367" href="StlcProp.html#20317" class="Bound" + >x′≢y</a + ><a name="20371" + > </a + ><a name="20372" href="StlcProp.html#20351" class="Bound" + >x′≡y</a + ><a name="20376" class="Symbol" + >)</a + ><a name="20377" + > + </a + ><a name="20380" class="Symbol" + >...|</a + ><a name="20384" + > </a + ><a name="20385" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#547" class="InductiveConstructor" + >no</a + ><a name="20387" + > </a + ><a name="20389" class="Symbol" + >_</a + ><a name="20390" + > </a + ><a name="20395" class="Symbol" + >=</a + ><a name="20396" + > </a + ><a name="20397" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Equality.html#140" class="InductiveConstructor" >refl</a - ><a name="20392" + ><a name="20401" > </a - ><a name="20393" class="Symbol" + ><a name="20402" class="Symbol" >...|</a - ><a name="20397" - > </a - ><a name="20398" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#547" class="InductiveConstructor" - >no</a - ><a name="20400" - > </a - ><a name="20402" href="StlcProp.html#20402" class="Bound" - >x≢x′</a ><a name="20406" > </a - ><a name="20407" class="Symbol" + ><a name="20407" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#547" class="InductiveConstructor" + >no</a + ><a name="20409" + > </a + ><a name="20411" href="StlcProp.html#20411" class="Bound" + >x≢x′</a + ><a name="20415" + > </a + ><a name="20416" class="Symbol" >=</a - ><a name="20408" - > </a - ><a name="20409" href="Stlc.html#3210" class="InductiveConstructor" - >⇒-I</a - ><a name="20412" - > </a - ><a name="20413" href="StlcProp.html#20524" class="Function" - >⊢N′V</a ><a name="20417" + > </a + ><a name="20418" href="Stlc.html#6168" class="InductiveConstructor" + >⇒-I</a + ><a name="20421" + > </a + ><a name="20422" href="StlcProp.html#20533" class="Function" + >⊢N′V</a + ><a name="20426" > </a - ><a name="20420" class="Keyword" + ><a name="20429" class="Keyword" >where</a - ><a name="20425" + ><a name="20434" > </a - ><a name="20428" href="StlcProp.html#20428" class="Function" + ><a name="20437" href="StlcProp.html#20437" class="Function" >x′x⊢N′</a - ><a name="20434" - > </a - ><a name="20435" class="Symbol" - >:</a - ><a name="20436" - > </a - ><a name="20437" href="StlcProp.html#20092" class="Bound" - >Γ</a - ><a name="20438" - > </a - ><a name="20439" href="Maps.html#10368" class="Function Operator" - >,</a - ><a name="20440" - > </a - ><a name="20441" href="StlcProp.html#20107" class="Bound" - >x′</a ><a name="20443" > </a - ><a name="20444" href="Maps.html#10368" class="Function Operator" - >∶</a + ><a name="20444" class="Symbol" + >:</a ><a name="20445" > </a - ><a name="20446" href="StlcProp.html#20112" class="Bound" - >A′</a - ><a name="20448" + ><a name="20446" href="StlcProp.html#20101" class="Bound" + >Γ</a + ><a name="20447" > </a - ><a name="20449" href="Maps.html#10368" class="Function Operator" + ><a name="20448" href="Maps.html#10368" class="Function Operator" >,</a - ><a name="20450" + ><a name="20449" > </a - ><a name="20451" href="StlcProp.html#20096" class="Bound" - >x</a + ><a name="20450" href="StlcProp.html#20116" class="Bound" + >x′</a ><a name="20452" > </a ><a name="20453" href="Maps.html#10368" class="Function Operator" >∶</a ><a name="20454" > </a - ><a name="20455" href="StlcProp.html#20100" class="Bound" - >A</a - ><a name="20456" + ><a name="20455" href="StlcProp.html#20121" class="Bound" + >A′</a + ><a name="20457" > </a - ><a name="20457" href="Stlc.html#3112" class="Datatype Operator" - >⊢</a - ><a name="20458" + ><a name="20458" href="Maps.html#10368" class="Function Operator" + >,</a + ><a name="20459" > </a - ><a name="20459" href="StlcProp.html#20117" class="Bound" - >N′</a + ><a name="20460" href="StlcProp.html#20105" class="Bound" + >x</a ><a name="20461" > </a - ><a name="20462" href="Stlc.html#3112" class="Datatype Operator" + ><a name="20462" href="Maps.html#10368" class="Function Operator" >∶</a ><a name="20463" > </a - ><a name="20464" href="StlcProp.html#20128" class="Bound" + ><a name="20464" href="StlcProp.html#20109" class="Bound" + >A</a + ><a name="20465" + > </a + ><a name="20466" href="Stlc.html#6070" class="Datatype Operator" + >⊢</a + ><a name="20467" + > </a + ><a name="20468" href="StlcProp.html#20126" class="Bound" + >N′</a + ><a name="20470" + > </a + ><a name="20471" href="Stlc.html#6070" class="Datatype Operator" + >∶</a + ><a name="20472" + > </a + ><a name="20473" href="StlcProp.html#20137" class="Bound" >B′</a - ><a name="20466" + ><a name="20475" > </a - ><a name="20469" href="StlcProp.html#20428" class="Function" + ><a name="20478" href="StlcProp.html#20437" class="Function" >x′x⊢N′</a - ><a name="20475" + ><a name="20484" > </a - ><a name="20476" class="Keyword" + ><a name="20485" class="Keyword" >rewrite</a - ><a name="20483" + ><a name="20492" > </a - ><a name="20484" href="Maps.html#11491" class="Function" + ><a name="20493" href="Maps.html#11491" class="Function" >update-permute</a - ><a name="20498" - > </a - ><a name="20499" href="StlcProp.html#20092" class="Bound" - >Γ</a - ><a name="20500" - > </a - ><a name="20501" href="StlcProp.html#20096" class="Bound" - >x</a - ><a name="20502" - > </a - ><a name="20503" href="StlcProp.html#20100" class="Bound" - >A</a - ><a name="20504" - > </a - ><a name="20505" href="StlcProp.html#20107" class="Bound" - >x′</a ><a name="20507" > </a - ><a name="20508" href="StlcProp.html#20112" class="Bound" + ><a name="20508" href="StlcProp.html#20101" class="Bound" + >Γ</a + ><a name="20509" + > </a + ><a name="20510" href="StlcProp.html#20105" class="Bound" + >x</a + ><a name="20511" + > </a + ><a name="20512" href="StlcProp.html#20109" class="Bound" + >A</a + ><a name="20513" + > </a + ><a name="20514" href="StlcProp.html#20116" class="Bound" + >x′</a + ><a name="20516" + > </a + ><a name="20517" href="StlcProp.html#20121" class="Bound" >A′</a - ><a name="20510" + ><a name="20519" > </a - ><a name="20511" href="StlcProp.html#20402" class="Bound" + ><a name="20520" href="StlcProp.html#20411" class="Bound" >x≢x′</a - ><a name="20515" + ><a name="20524" > </a - ><a name="20516" class="Symbol" + ><a name="20525" class="Symbol" >=</a - ><a name="20517" + ><a name="20526" > </a - ><a name="20518" href="StlcProp.html#20141" class="Bound" + ><a name="20527" href="StlcProp.html#20150" class="Bound" >⊢N′</a - ><a name="20521" + ><a name="20530" > </a - ><a name="20524" href="StlcProp.html#20524" class="Function" + ><a name="20533" href="StlcProp.html#20533" class="Function" >⊢N′V</a - ><a name="20528" + ><a name="20537" > </a - ><a name="20529" class="Symbol" + ><a name="20538" class="Symbol" >:</a - ><a name="20530" + ><a name="20539" > </a - ><a name="20531" class="Symbol" + ><a name="20540" class="Symbol" >(</a - ><a name="20532" href="StlcProp.html#20092" class="Bound" + ><a name="20541" href="StlcProp.html#20101" class="Bound" >Γ</a - ><a name="20533" + ><a name="20542" > </a - ><a name="20534" href="Maps.html#10368" class="Function Operator" + ><a name="20543" href="Maps.html#10368" class="Function Operator" >,</a - ><a name="20535" - > </a - ><a name="20536" href="StlcProp.html#20107" class="Bound" - >x′</a - ><a name="20538" - > </a - ><a name="20539" href="Maps.html#10368" class="Function Operator" - >∶</a - ><a name="20540" - > </a - ><a name="20541" href="StlcProp.html#20112" class="Bound" - >A′</a - ><a name="20543" class="Symbol" - >)</a ><a name="20544" > </a - ><a name="20545" href="Stlc.html#3112" class="Datatype Operator" - >⊢</a - ><a name="20546" + ><a name="20545" href="StlcProp.html#20116" class="Bound" + >x′</a + ><a name="20547" > </a - ><a name="20547" href="StlcProp.html#20117" class="Bound" - >N′</a + ><a name="20548" href="Maps.html#10368" class="Function Operator" + >∶</a ><a name="20549" > </a - ><a name="20550" href="Stlc.html#1276" class="Function Operator" - >[</a - ><a name="20551" - > </a - ><a name="20552" href="StlcProp.html#20096" class="Bound" - >x</a + ><a name="20550" href="StlcProp.html#20121" class="Bound" + >A′</a + ><a name="20552" class="Symbol" + >)</a ><a name="20553" > </a - ><a name="20554" href="Stlc.html#1276" class="Function Operator" - >:=</a - ><a name="20556" + ><a name="20554" href="Stlc.html#6070" class="Datatype Operator" + >⊢</a + ><a name="20555" > </a - ><a name="20557" href="StlcProp.html#20133" class="Bound" - >V</a + ><a name="20556" href="StlcProp.html#20126" class="Bound" + >N′</a ><a name="20558" > </a - ><a name="20559" href="Stlc.html#1276" class="Function Operator" - >]</a + ><a name="20559" href="Stlc.html#4234" class="Function Operator" + >[</a ><a name="20560" > </a - ><a name="20561" href="Stlc.html#3112" class="Datatype Operator" - >∶</a + ><a name="20561" href="StlcProp.html#20105" class="Bound" + >x</a ><a name="20562" > </a - ><a name="20563" href="StlcProp.html#20128" class="Bound" - >B′</a + ><a name="20563" href="Stlc.html#4234" class="Function Operator" + >:=</a ><a name="20565" + > </a + ><a name="20566" href="StlcProp.html#20142" class="Bound" + >V</a + ><a name="20567" + > </a + ><a name="20568" href="Stlc.html#4234" class="Function Operator" + >]</a + ><a name="20569" + > </a + ><a name="20570" href="Stlc.html#6070" class="Datatype Operator" + >∶</a + ><a name="20571" + > </a + ><a name="20572" href="StlcProp.html#20137" class="Bound" + >B′</a + ><a name="20574" > </a - ><a name="20568" href="StlcProp.html#20524" class="Function" + ><a name="20577" href="StlcProp.html#20533" class="Function" >⊢N′V</a - ><a name="20572" + ><a name="20581" > </a - ><a name="20573" class="Symbol" + ><a name="20582" class="Symbol" >=</a - ><a name="20574" + ><a name="20583" > </a - ><a name="20575" href="StlcProp.html#16218" class="Function" + ><a name="20584" href="StlcProp.html#16224" class="Function" >preservation-[:=]</a - ><a name="20592" + ><a name="20601" > </a - ><a name="20593" href="StlcProp.html#20428" class="Function" + ><a name="20602" href="StlcProp.html#20437" class="Function" >x′x⊢N′</a - ><a name="20599" + ><a name="20608" > </a - ><a name="20600" href="StlcProp.html#20146" class="Bound" + ><a name="20609" href="StlcProp.html#20155" class="Bound" >⊢V</a - ><a name="20602" + ><a name="20611" > </a - ><a name="20603" href="StlcProp.html#16218" class="Function" + ><a name="20612" href="StlcProp.html#16224" class="Function" >preservation-[:=]</a - ><a name="20620" + ><a name="20629" > </a - ><a name="20621" class="Symbol" + ><a name="20630" class="Symbol" >(</a - ><a name="20622" href="Stlc.html#3287" class="InductiveConstructor" + ><a name="20631" href="Stlc.html#6245" class="InductiveConstructor" >⇒-E</a - ><a name="20625" + ><a name="20634" > </a - ><a name="20626" href="StlcProp.html#20626" class="Bound" + ><a name="20635" href="StlcProp.html#20635" class="Bound" >⊢L</a - ><a name="20628" - > </a - ><a name="20629" href="StlcProp.html#20629" class="Bound" - >⊢M</a - ><a name="20631" class="Symbol" - >)</a - ><a name="20632" - > </a - ><a name="20633" href="StlcProp.html#20633" class="Bound" - >⊢V</a - ><a name="20635" - > </a - ><a name="20636" class="Symbol" - >=</a ><a name="20637" > </a - ><a name="20638" href="Stlc.html#3287" class="InductiveConstructor" - >⇒-E</a + ><a name="20638" href="StlcProp.html#20638" class="Bound" + >⊢M</a + ><a name="20640" class="Symbol" + >)</a ><a name="20641" > </a - ><a name="20642" class="Symbol" - >(</a - ><a name="20643" href="StlcProp.html#16218" class="Function" - >preservation-[:=]</a - ><a name="20660" + ><a name="20642" href="StlcProp.html#20642" class="Bound" + >⊢V</a + ><a name="20644" > </a - ><a name="20661" href="StlcProp.html#20626" class="Bound" + ><a name="20645" class="Symbol" + >=</a + ><a name="20646" + > </a + ><a name="20647" href="Stlc.html#6245" class="InductiveConstructor" + >⇒-E</a + ><a name="20650" + > </a + ><a name="20651" class="Symbol" + >(</a + ><a name="20652" href="StlcProp.html#16224" class="Function" + >preservation-[:=]</a + ><a name="20669" + > </a + ><a name="20670" href="StlcProp.html#20635" class="Bound" >⊢L</a - ><a name="20663" + ><a name="20672" > </a - ><a name="20664" href="StlcProp.html#20633" class="Bound" + ><a name="20673" href="StlcProp.html#20642" class="Bound" >⊢V</a - ><a name="20666" class="Symbol" + ><a name="20675" class="Symbol" >)</a - ><a name="20667" + ><a name="20676" > </a - ><a name="20668" class="Symbol" + ><a name="20677" class="Symbol" >(</a - ><a name="20669" href="StlcProp.html#16218" class="Function" + ><a name="20678" href="StlcProp.html#16224" class="Function" >preservation-[:=]</a - ><a name="20686" + ><a name="20695" > </a - ><a name="20687" href="StlcProp.html#20629" class="Bound" + ><a name="20696" href="StlcProp.html#20638" class="Bound" >⊢M</a - ><a name="20689" + ><a name="20698" > </a - ><a name="20690" href="StlcProp.html#20633" class="Bound" + ><a name="20699" href="StlcProp.html#20642" class="Bound" >⊢V</a - ><a name="20692" class="Symbol" + ><a name="20701" class="Symbol" >)</a - ><a name="20693" + ><a name="20702" > </a - ><a name="20694" href="StlcProp.html#16218" class="Function" + ><a name="20703" href="StlcProp.html#16224" class="Function" >preservation-[:=]</a - ><a name="20711" + ><a name="20720" > </a - ><a name="20712" href="Stlc.html#3365" class="InductiveConstructor" + ><a name="20721" href="Stlc.html#6323" class="InductiveConstructor" >𝔹-I₁</a - ><a name="20716" + ><a name="20725" > </a - ><a name="20717" href="StlcProp.html#20717" class="Bound" + ><a name="20726" href="StlcProp.html#20726" class="Bound" >⊢V</a - ><a name="20719" + ><a name="20728" > </a - ><a name="20720" class="Symbol" + ><a name="20729" class="Symbol" >=</a - ><a name="20721" + ><a name="20730" > </a - ><a name="20722" href="Stlc.html#3365" class="InductiveConstructor" + ><a name="20731" href="Stlc.html#6323" class="InductiveConstructor" >𝔹-I₁</a - ><a name="20726" + ><a name="20735" > </a - ><a name="20727" href="StlcProp.html#16218" class="Function" + ><a name="20736" href="StlcProp.html#16224" class="Function" >preservation-[:=]</a - ><a name="20744" + ><a name="20753" > </a - ><a name="20745" href="Stlc.html#3399" class="InductiveConstructor" + ><a name="20754" href="Stlc.html#6357" class="InductiveConstructor" >𝔹-I₂</a - ><a name="20749" + ><a name="20758" > </a - ><a name="20750" href="StlcProp.html#20750" class="Bound" + ><a name="20759" href="StlcProp.html#20759" class="Bound" >⊢V</a - ><a name="20752" + ><a name="20761" > </a - ><a name="20753" class="Symbol" + ><a name="20762" class="Symbol" >=</a - ><a name="20754" + ><a name="20763" > </a - ><a name="20755" href="Stlc.html#3399" class="InductiveConstructor" + ><a name="20764" href="Stlc.html#6357" class="InductiveConstructor" >𝔹-I₂</a - ><a name="20759" + ><a name="20768" > </a - ><a name="20760" href="StlcProp.html#16218" class="Function" + ><a name="20769" href="StlcProp.html#16224" class="Function" >preservation-[:=]</a - ><a name="20777" + ><a name="20786" > </a - ><a name="20778" class="Symbol" + ><a name="20787" class="Symbol" >(</a - ><a name="20779" href="Stlc.html#3434" class="InductiveConstructor" + ><a name="20788" href="Stlc.html#6392" class="InductiveConstructor" >𝔹-E</a - ><a name="20782" + ><a name="20791" > </a - ><a name="20783" href="StlcProp.html#20783" class="Bound" + ><a name="20792" href="StlcProp.html#20792" class="Bound" >⊢L</a - ><a name="20785" + ><a name="20794" > </a - ><a name="20786" href="StlcProp.html#20786" class="Bound" + ><a name="20795" href="StlcProp.html#20795" class="Bound" >⊢M</a - ><a name="20788" - > </a - ><a name="20789" href="StlcProp.html#20789" class="Bound" - >⊢N</a - ><a name="20791" class="Symbol" - >)</a - ><a name="20792" - > </a - ><a name="20793" href="StlcProp.html#20793" class="Bound" - >⊢V</a - ><a name="20795" - > </a - ><a name="20796" class="Symbol" - >=</a ><a name="20797" + > </a + ><a name="20798" href="StlcProp.html#20798" class="Bound" + >⊢N</a + ><a name="20800" class="Symbol" + >)</a + ><a name="20801" + > </a + ><a name="20802" href="StlcProp.html#20802" class="Bound" + >⊢V</a + ><a name="20804" + > </a + ><a name="20805" class="Symbol" + >=</a + ><a name="20806" > </a - ><a name="20800" href="Stlc.html#3434" class="InductiveConstructor" + ><a name="20809" href="Stlc.html#6392" class="InductiveConstructor" >𝔹-E</a - ><a name="20803" + ><a name="20812" > </a - ><a name="20804" class="Symbol" + ><a name="20813" class="Symbol" >(</a - ><a name="20805" href="StlcProp.html#16218" class="Function" + ><a name="20814" href="StlcProp.html#16224" class="Function" >preservation-[:=]</a - ><a name="20822" + ><a name="20831" > </a - ><a name="20823" href="StlcProp.html#20783" class="Bound" + ><a name="20832" href="StlcProp.html#20792" class="Bound" >⊢L</a - ><a name="20825" + ><a name="20834" > </a - ><a name="20826" href="StlcProp.html#20793" class="Bound" + ><a name="20835" href="StlcProp.html#20802" class="Bound" >⊢V</a - ><a name="20828" class="Symbol" + ><a name="20837" class="Symbol" >)</a - ><a name="20829" + ><a name="20838" > </a - ><a name="20830" class="Symbol" + ><a name="20839" class="Symbol" >(</a - ><a name="20831" href="StlcProp.html#16218" class="Function" + ><a name="20840" href="StlcProp.html#16224" class="Function" >preservation-[:=]</a - ><a name="20848" + ><a name="20857" > </a - ><a name="20849" href="StlcProp.html#20786" class="Bound" + ><a name="20858" href="StlcProp.html#20795" class="Bound" >⊢M</a - ><a name="20851" + ><a name="20860" > </a - ><a name="20852" href="StlcProp.html#20793" class="Bound" + ><a name="20861" href="StlcProp.html#20802" class="Bound" >⊢V</a - ><a name="20854" class="Symbol" + ><a name="20863" class="Symbol" >)</a - ><a name="20855" + ><a name="20864" > </a - ><a name="20856" class="Symbol" + ><a name="20865" class="Symbol" >(</a - ><a name="20857" href="StlcProp.html#16218" class="Function" + ><a name="20866" href="StlcProp.html#16224" class="Function" >preservation-[:=]</a - ><a name="20874" + ><a name="20883" > </a - ><a name="20875" href="StlcProp.html#20789" class="Bound" + ><a name="20884" href="StlcProp.html#20798" class="Bound" >⊢N</a - ><a name="20877" + ><a name="20886" > </a - ><a name="20878" href="StlcProp.html#20793" class="Bound" + ><a name="20887" href="StlcProp.html#20802" class="Bound" >⊢V</a - ><a name="20880" class="Symbol" + ><a name="20889" class="Symbol" >)</a > @@ -6410,95 +6410,95 @@ reduction preserves types. <pre class="Agda"> -<a name="21140" href="StlcProp.html#21140" class="Function" +<a name="21149" href="StlcProp.html#21149" class="Function" >preservation</a - ><a name="21152" - > </a - ><a name="21153" class="Symbol" - >:</a - ><a name="21154" - > </a - ><a name="21155" class="Symbol" - >∀</a - ><a name="21156" - > </a - ><a name="21157" class="Symbol" - >{</a - ><a name="21158" href="StlcProp.html#21158" class="Bound" - >M</a - ><a name="21159" - > </a - ><a name="21160" href="StlcProp.html#21160" class="Bound" - >N</a ><a name="21161" > </a - ><a name="21162" href="StlcProp.html#21162" class="Bound" - >A</a - ><a name="21163" class="Symbol" - >}</a - ><a name="21164" + ><a name="21162" class="Symbol" + >:</a + ><a name="21163" > </a - ><a name="21165" class="Symbol" - >→</a - ><a name="21166" + ><a name="21164" class="Symbol" + >∀</a + ><a name="21165" > </a - ><a name="21167" href="Maps.html#10265" class="Function" - >∅</a + ><a name="21166" class="Symbol" + >{</a + ><a name="21167" href="StlcProp.html#21167" class="Bound" + >M</a ><a name="21168" > </a - ><a name="21169" href="Stlc.html#3112" class="Datatype Operator" - >⊢</a + ><a name="21169" href="StlcProp.html#21169" class="Bound" + >N</a ><a name="21170" > </a - ><a name="21171" href="StlcProp.html#21158" class="Bound" - >M</a - ><a name="21172" - > </a - ><a name="21173" href="Stlc.html#3112" class="Datatype Operator" - >∶</a - ><a name="21174" - > </a - ><a name="21175" href="StlcProp.html#21162" class="Bound" + ><a name="21171" href="StlcProp.html#21171" class="Bound" >A</a - ><a name="21176" + ><a name="21172" class="Symbol" + >}</a + ><a name="21173" > </a - ><a name="21177" class="Symbol" + ><a name="21174" class="Symbol" >→</a - ><a name="21178" + ><a name="21175" > </a - ><a name="21179" href="StlcProp.html#21158" class="Bound" - >M</a - ><a name="21180" - > </a - ><a name="21181" href="Stlc.html#1762" class="Datatype Operator" - >⟹</a - ><a name="21182" - > </a - ><a name="21183" href="StlcProp.html#21160" class="Bound" - >N</a - ><a name="21184" - > </a - ><a name="21185" class="Symbol" - >→</a - ><a name="21186" - > </a - ><a name="21187" href="Maps.html#10265" class="Function" + ><a name="21176" href="Maps.html#10265" class="Function" >∅</a - ><a name="21188" + ><a name="21177" > </a - ><a name="21189" href="Stlc.html#3112" class="Datatype Operator" + ><a name="21178" href="Stlc.html#6070" class="Datatype Operator" >⊢</a - ><a name="21190" + ><a name="21179" > </a - ><a name="21191" href="StlcProp.html#21160" class="Bound" - >N</a - ><a name="21192" + ><a name="21180" href="StlcProp.html#21167" class="Bound" + >M</a + ><a name="21181" > </a - ><a name="21193" href="Stlc.html#3112" class="Datatype Operator" + ><a name="21182" href="Stlc.html#6070" class="Datatype Operator" >∶</a - ><a name="21194" + ><a name="21183" > </a - ><a name="21195" href="StlcProp.html#21162" class="Bound" + ><a name="21184" href="StlcProp.html#21171" class="Bound" + >A</a + ><a name="21185" + > </a + ><a name="21186" class="Symbol" + >→</a + ><a name="21187" + > </a + ><a name="21188" href="StlcProp.html#21167" class="Bound" + >M</a + ><a name="21189" + > </a + ><a name="21190" href="Stlc.html#4720" class="Datatype Operator" + >⟹</a + ><a name="21191" + > </a + ><a name="21192" href="StlcProp.html#21169" class="Bound" + >N</a + ><a name="21193" + > </a + ><a name="21194" class="Symbol" + >→</a + ><a name="21195" + > </a + ><a name="21196" href="Maps.html#10265" class="Function" + >∅</a + ><a name="21197" + > </a + ><a name="21198" href="Stlc.html#6070" class="Datatype Operator" + >⊢</a + ><a name="21199" + > </a + ><a name="21200" href="StlcProp.html#21169" class="Bound" + >N</a + ><a name="21201" + > </a + ><a name="21202" href="Stlc.html#6070" class="Datatype Operator" + >∶</a + ><a name="21203" + > </a + ><a name="21204" href="StlcProp.html#21171" class="Bound" >A</a > @@ -6536,435 +6536,435 @@ _Proof_: By induction on the derivation of `∅ ⊢ M ∶ A`. <pre class="Agda"> -<a name="22453" href="StlcProp.html#21140" class="Function" +<a name="22462" href="StlcProp.html#21149" class="Function" >preservation</a - ><a name="22465" + ><a name="22474" > </a - ><a name="22466" class="Symbol" + ><a name="22475" class="Symbol" >(</a - ><a name="22467" href="Stlc.html#3156" class="InductiveConstructor" + ><a name="22476" href="Stlc.html#6114" class="InductiveConstructor" >Ax</a - ><a name="22469" - > </a - ><a name="22470" href="StlcProp.html#22470" class="Bound" - >Γx≡A</a - ><a name="22474" class="Symbol" - >)</a - ><a name="22475" - > </a - ><a name="22476" class="Symbol" - >()</a ><a name="22478" + > </a + ><a name="22479" href="StlcProp.html#22479" class="Bound" + >Γx≡A</a + ><a name="22483" class="Symbol" + >)</a + ><a name="22484" + > </a + ><a name="22485" class="Symbol" + >()</a + ><a name="22487" > </a - ><a name="22479" href="StlcProp.html#21140" class="Function" + ><a name="22488" href="StlcProp.html#21149" class="Function" >preservation</a - ><a name="22491" - > </a - ><a name="22492" class="Symbol" - >(</a - ><a name="22493" href="Stlc.html#3210" class="InductiveConstructor" - >⇒-I</a - ><a name="22496" - > </a - ><a name="22497" href="StlcProp.html#22497" class="Bound" - >⊢N</a - ><a name="22499" class="Symbol" - >)</a ><a name="22500" > </a ><a name="22501" class="Symbol" + >(</a + ><a name="22502" href="Stlc.html#6168" class="InductiveConstructor" + >⇒-I</a + ><a name="22505" + > </a + ><a name="22506" href="StlcProp.html#22506" class="Bound" + >⊢N</a + ><a name="22508" class="Symbol" + >)</a + ><a name="22509" + > </a + ><a name="22510" class="Symbol" >()</a - ><a name="22503" + ><a name="22512" > </a - ><a name="22504" href="StlcProp.html#21140" class="Function" + ><a name="22513" href="StlcProp.html#21149" class="Function" >preservation</a - ><a name="22516" + ><a name="22525" > </a - ><a name="22517" class="Symbol" + ><a name="22526" class="Symbol" >(</a - ><a name="22518" href="Stlc.html#3287" class="InductiveConstructor" + ><a name="22527" href="Stlc.html#6245" class="InductiveConstructor" >⇒-E</a - ><a name="22521" - > </a - ><a name="22522" class="Symbol" - >(</a - ><a name="22523" href="Stlc.html#3210" class="InductiveConstructor" - >⇒-I</a - ><a name="22526" - > </a - ><a name="22527" href="StlcProp.html#22527" class="Bound" - >⊢N</a - ><a name="22529" class="Symbol" - >)</a ><a name="22530" > </a - ><a name="22531" href="StlcProp.html#22531" class="Bound" - >⊢V</a - ><a name="22533" class="Symbol" - >)</a - ><a name="22534" - > </a - ><a name="22535" class="Symbol" + ><a name="22531" class="Symbol" >(</a - ><a name="22536" href="Stlc.html#1794" class="InductiveConstructor" - >βλ·</a + ><a name="22532" href="Stlc.html#6168" class="InductiveConstructor" + >⇒-I</a + ><a name="22535" + > </a + ><a name="22536" href="StlcProp.html#22536" class="Bound" + >⊢N</a + ><a name="22538" class="Symbol" + >)</a ><a name="22539" > </a ><a name="22540" href="StlcProp.html#22540" class="Bound" - >valueV</a - ><a name="22546" class="Symbol" - >)</a - ><a name="22547" - > </a - ><a name="22548" class="Symbol" - >=</a - ><a name="22549" - > </a - ><a name="22550" href="StlcProp.html#16218" class="Function" - >preservation-[:=]</a - ><a name="22567" - > </a - ><a name="22568" href="StlcProp.html#22527" class="Bound" - >⊢N</a - ><a name="22570" - > </a - ><a name="22571" href="StlcProp.html#22531" class="Bound" >⊢V</a - ><a name="22573" + ><a name="22542" class="Symbol" + >)</a + ><a name="22543" + > </a + ><a name="22544" class="Symbol" + >(</a + ><a name="22545" href="Stlc.html#4752" class="InductiveConstructor" + >βλ·</a + ><a name="22548" + > </a + ><a name="22549" href="StlcProp.html#22549" class="Bound" + >valueV</a + ><a name="22555" class="Symbol" + >)</a + ><a name="22556" + > </a + ><a name="22557" class="Symbol" + >=</a + ><a name="22558" + > </a + ><a name="22559" href="StlcProp.html#16224" class="Function" + >preservation-[:=]</a + ><a name="22576" + > </a + ><a name="22577" href="StlcProp.html#22536" class="Bound" + >⊢N</a + ><a name="22579" + > </a + ><a name="22580" href="StlcProp.html#22540" class="Bound" + >⊢V</a + ><a name="22582" > </a - ><a name="22574" href="StlcProp.html#21140" class="Function" + ><a name="22583" href="StlcProp.html#21149" class="Function" >preservation</a - ><a name="22586" + ><a name="22595" > </a - ><a name="22587" class="Symbol" + ><a name="22596" class="Symbol" >(</a - ><a name="22588" href="Stlc.html#3287" class="InductiveConstructor" + ><a name="22597" href="Stlc.html#6245" class="InductiveConstructor" >⇒-E</a - ><a name="22591" + ><a name="22600" > </a - ><a name="22592" href="StlcProp.html#22592" class="Bound" + ><a name="22601" href="StlcProp.html#22601" class="Bound" >⊢L</a - ><a name="22594" - > </a - ><a name="22595" href="StlcProp.html#22595" class="Bound" - >⊢M</a - ><a name="22597" class="Symbol" - >)</a - ><a name="22598" - > </a - ><a name="22599" class="Symbol" - >(</a - ><a name="22600" href="Stlc.html#1864" class="InductiveConstructor" - >ξ·₁</a ><a name="22603" > </a ><a name="22604" href="StlcProp.html#22604" class="Bound" - >L⟹L′</a + >⊢M</a + ><a name="22606" class="Symbol" + >)</a + ><a name="22607" + > </a ><a name="22608" class="Symbol" - >)</a - ><a name="22609" + >(</a + ><a name="22609" href="Stlc.html#4822" class="InductiveConstructor" + >ξ·₁</a + ><a name="22612" > </a - ><a name="22610" class="Keyword" - >with</a - ><a name="22614" - > </a - ><a name="22615" href="StlcProp.html#21140" class="Function" - >preservation</a - ><a name="22627" - > </a - ><a name="22628" href="StlcProp.html#22592" class="Bound" - >⊢L</a - ><a name="22630" - > </a - ><a name="22631" href="StlcProp.html#22604" class="Bound" + ><a name="22613" href="StlcProp.html#22613" class="Bound" >L⟹L′</a - ><a name="22635" - > -</a - ><a name="22636" class="Symbol" - >...|</a - ><a name="22640" - > </a - ><a name="22641" href="StlcProp.html#22641" class="Bound" - >⊢L′</a - ><a name="22644" - > </a - ><a name="22645" class="Symbol" - >=</a - ><a name="22646" - > </a - ><a name="22647" href="Stlc.html#3287" class="InductiveConstructor" - >⇒-E</a - ><a name="22650" - > </a - ><a name="22651" href="StlcProp.html#22641" class="Bound" - >⊢L′</a - ><a name="22654" - > </a - ><a name="22655" href="StlcProp.html#22595" class="Bound" - >⊢M</a - ><a name="22657" - > -</a - ><a name="22658" href="StlcProp.html#21140" class="Function" - >preservation</a - ><a name="22670" - > </a - ><a name="22671" class="Symbol" - >(</a - ><a name="22672" href="Stlc.html#3287" class="InductiveConstructor" - >⇒-E</a - ><a name="22675" - > </a - ><a name="22676" href="StlcProp.html#22676" class="Bound" - >⊢L</a - ><a name="22678" - > </a - ><a name="22679" href="StlcProp.html#22679" class="Bound" - >⊢M</a - ><a name="22681" class="Symbol" + ><a name="22617" class="Symbol" >)</a - ><a name="22682" + ><a name="22618" > </a - ><a name="22683" class="Symbol" + ><a name="22619" class="Keyword" + >with</a + ><a name="22623" + > </a + ><a name="22624" href="StlcProp.html#21149" class="Function" + >preservation</a + ><a name="22636" + > </a + ><a name="22637" href="StlcProp.html#22601" class="Bound" + >⊢L</a + ><a name="22639" + > </a + ><a name="22640" href="StlcProp.html#22613" class="Bound" + >L⟹L′</a + ><a name="22644" + > +</a + ><a name="22645" class="Symbol" + >...|</a + ><a name="22649" + > </a + ><a name="22650" href="StlcProp.html#22650" class="Bound" + >⊢L′</a + ><a name="22653" + > </a + ><a name="22654" class="Symbol" + >=</a + ><a name="22655" + > </a + ><a name="22656" href="Stlc.html#6245" class="InductiveConstructor" + >⇒-E</a + ><a name="22659" + > </a + ><a name="22660" href="StlcProp.html#22650" class="Bound" + >⊢L′</a + ><a name="22663" + > </a + ><a name="22664" href="StlcProp.html#22604" class="Bound" + >⊢M</a + ><a name="22666" + > +</a + ><a name="22667" href="StlcProp.html#21149" class="Function" + >preservation</a + ><a name="22679" + > </a + ><a name="22680" class="Symbol" >(</a - ><a name="22684" href="Stlc.html#1917" class="InductiveConstructor" - >ξ·₂</a + ><a name="22681" href="Stlc.html#6245" class="InductiveConstructor" + >⇒-E</a + ><a name="22684" + > </a + ><a name="22685" href="StlcProp.html#22685" class="Bound" + >⊢L</a ><a name="22687" > </a ><a name="22688" href="StlcProp.html#22688" class="Bound" - >valueL</a - ><a name="22694" - > </a - ><a name="22695" href="StlcProp.html#22695" class="Bound" - >M⟹M′</a - ><a name="22699" class="Symbol" - >)</a - ><a name="22700" - > </a - ><a name="22701" class="Keyword" - >with</a - ><a name="22705" - > </a - ><a name="22706" href="StlcProp.html#21140" class="Function" - >preservation</a - ><a name="22718" - > </a - ><a name="22719" href="StlcProp.html#22679" class="Bound" >⊢M</a - ><a name="22721" + ><a name="22690" class="Symbol" + >)</a + ><a name="22691" > </a - ><a name="22722" href="StlcProp.html#22695" class="Bound" + ><a name="22692" class="Symbol" + >(</a + ><a name="22693" href="Stlc.html#4875" class="InductiveConstructor" + >ξ·₂</a + ><a name="22696" + > </a + ><a name="22697" href="StlcProp.html#22697" class="Bound" + >valueL</a + ><a name="22703" + > </a + ><a name="22704" href="StlcProp.html#22704" class="Bound" >M⟹M′</a - ><a name="22726" + ><a name="22708" class="Symbol" + >)</a + ><a name="22709" + > </a + ><a name="22710" class="Keyword" + >with</a + ><a name="22714" + > </a + ><a name="22715" href="StlcProp.html#21149" class="Function" + >preservation</a + ><a name="22727" + > </a + ><a name="22728" href="StlcProp.html#22688" class="Bound" + >⊢M</a + ><a name="22730" + > </a + ><a name="22731" href="StlcProp.html#22704" class="Bound" + >M⟹M′</a + ><a name="22735" > </a - ><a name="22727" class="Symbol" - >...|</a - ><a name="22731" - > </a - ><a name="22732" href="StlcProp.html#22732" class="Bound" - >⊢M′</a - ><a name="22735" - > </a ><a name="22736" class="Symbol" - >=</a - ><a name="22737" + >...|</a + ><a name="22740" > </a - ><a name="22738" href="Stlc.html#3287" class="InductiveConstructor" - >⇒-E</a - ><a name="22741" - > </a - ><a name="22742" href="StlcProp.html#22676" class="Bound" - >⊢L</a + ><a name="22741" href="StlcProp.html#22741" class="Bound" + >⊢M′</a ><a name="22744" > </a - ><a name="22745" href="StlcProp.html#22732" class="Bound" + ><a name="22745" class="Symbol" + >=</a + ><a name="22746" + > </a + ><a name="22747" href="Stlc.html#6245" class="InductiveConstructor" + >⇒-E</a + ><a name="22750" + > </a + ><a name="22751" href="StlcProp.html#22685" class="Bound" + >⊢L</a + ><a name="22753" + > </a + ><a name="22754" href="StlcProp.html#22741" class="Bound" >⊢M′</a - ><a name="22748" + ><a name="22757" > </a - ><a name="22749" href="StlcProp.html#21140" class="Function" + ><a name="22758" href="StlcProp.html#21149" class="Function" >preservation</a - ><a name="22761" + ><a name="22770" > </a - ><a name="22762" href="Stlc.html#3365" class="InductiveConstructor" + ><a name="22771" href="Stlc.html#6323" class="InductiveConstructor" >𝔹-I₁</a - ><a name="22766" + ><a name="22775" > </a - ><a name="22767" class="Symbol" + ><a name="22776" class="Symbol" >()</a - ><a name="22769" + ><a name="22778" > </a - ><a name="22770" href="StlcProp.html#21140" class="Function" + ><a name="22779" href="StlcProp.html#21149" class="Function" >preservation</a - ><a name="22782" + ><a name="22791" > </a - ><a name="22783" href="Stlc.html#3399" class="InductiveConstructor" + ><a name="22792" href="Stlc.html#6357" class="InductiveConstructor" >𝔹-I₂</a - ><a name="22787" + ><a name="22796" > </a - ><a name="22788" class="Symbol" + ><a name="22797" class="Symbol" >()</a - ><a name="22790" + ><a name="22799" > </a - ><a name="22791" href="StlcProp.html#21140" class="Function" + ><a name="22800" href="StlcProp.html#21149" class="Function" >preservation</a - ><a name="22803" + ><a name="22812" > </a - ><a name="22804" class="Symbol" + ><a name="22813" class="Symbol" >(</a - ><a name="22805" href="Stlc.html#3434" class="InductiveConstructor" + ><a name="22814" href="Stlc.html#6392" class="InductiveConstructor" >𝔹-E</a - ><a name="22808" + ><a name="22817" > </a - ><a name="22809" href="Stlc.html#3365" class="InductiveConstructor" + ><a name="22818" href="Stlc.html#6323" class="InductiveConstructor" >𝔹-I₁</a - ><a name="22813" + ><a name="22822" > </a - ><a name="22814" href="StlcProp.html#22814" class="Bound" + ><a name="22823" href="StlcProp.html#22823" class="Bound" >⊢M</a - ><a name="22816" + ><a name="22825" > </a - ><a name="22817" href="StlcProp.html#22817" class="Bound" + ><a name="22826" href="StlcProp.html#22826" class="Bound" >⊢N</a - ><a name="22819" class="Symbol" + ><a name="22828" class="Symbol" >)</a - ><a name="22820" - > </a - ><a name="22821" href="Stlc.html#1984" class="InductiveConstructor" - >βif-true</a ><a name="22829" > </a - ><a name="22830" class="Symbol" - >=</a - ><a name="22831" + ><a name="22830" href="Stlc.html#4942" class="InductiveConstructor" + >βif-true</a + ><a name="22838" > </a - ><a name="22832" href="StlcProp.html#22814" class="Bound" + ><a name="22839" class="Symbol" + >=</a + ><a name="22840" + > </a + ><a name="22841" href="StlcProp.html#22823" class="Bound" >⊢M</a - ><a name="22834" + ><a name="22843" > </a - ><a name="22835" href="StlcProp.html#21140" class="Function" + ><a name="22844" href="StlcProp.html#21149" class="Function" >preservation</a - ><a name="22847" + ><a name="22856" > </a - ><a name="22848" class="Symbol" + ><a name="22857" class="Symbol" >(</a - ><a name="22849" href="Stlc.html#3434" class="InductiveConstructor" + ><a name="22858" href="Stlc.html#6392" class="InductiveConstructor" >𝔹-E</a - ><a name="22852" + ><a name="22861" > </a - ><a name="22853" href="Stlc.html#3399" class="InductiveConstructor" + ><a name="22862" href="Stlc.html#6357" class="InductiveConstructor" >𝔹-I₂</a - ><a name="22857" + ><a name="22866" > </a - ><a name="22858" href="StlcProp.html#22858" class="Bound" + ><a name="22867" href="StlcProp.html#22867" class="Bound" >⊢M</a - ><a name="22860" + ><a name="22869" > </a - ><a name="22861" href="StlcProp.html#22861" class="Bound" + ><a name="22870" href="StlcProp.html#22870" class="Bound" >⊢N</a - ><a name="22863" class="Symbol" + ><a name="22872" class="Symbol" >)</a - ><a name="22864" + ><a name="22873" > </a - ><a name="22865" href="Stlc.html#2037" class="InductiveConstructor" + ><a name="22874" href="Stlc.html#4995" class="InductiveConstructor" >βif-false</a - ><a name="22874" + ><a name="22883" > </a - ><a name="22875" class="Symbol" + ><a name="22884" class="Symbol" >=</a - ><a name="22876" + ><a name="22885" > </a - ><a name="22877" href="StlcProp.html#22861" class="Bound" + ><a name="22886" href="StlcProp.html#22870" class="Bound" >⊢N</a - ><a name="22879" + ><a name="22888" > </a - ><a name="22880" href="StlcProp.html#21140" class="Function" + ><a name="22889" href="StlcProp.html#21149" class="Function" >preservation</a - ><a name="22892" + ><a name="22901" > </a - ><a name="22893" class="Symbol" + ><a name="22902" class="Symbol" >(</a - ><a name="22894" href="Stlc.html#3434" class="InductiveConstructor" + ><a name="22903" href="Stlc.html#6392" class="InductiveConstructor" >𝔹-E</a - ><a name="22897" + ><a name="22906" > </a - ><a name="22898" href="StlcProp.html#22898" class="Bound" + ><a name="22907" href="StlcProp.html#22907" class="Bound" >⊢L</a - ><a name="22900" + ><a name="22909" > </a - ><a name="22901" href="StlcProp.html#22901" class="Bound" + ><a name="22910" href="StlcProp.html#22910" class="Bound" >⊢M</a - ><a name="22903" - > </a - ><a name="22904" href="StlcProp.html#22904" class="Bound" - >⊢N</a - ><a name="22906" class="Symbol" - >)</a - ><a name="22907" - > </a - ><a name="22908" class="Symbol" - >(</a - ><a name="22909" href="Stlc.html#2092" class="InductiveConstructor" - >ξif</a ><a name="22912" > </a ><a name="22913" href="StlcProp.html#22913" class="Bound" - >L⟹L′</a - ><a name="22917" class="Symbol" + >⊢N</a + ><a name="22915" class="Symbol" >)</a - ><a name="22918" + ><a name="22916" > </a - ><a name="22919" class="Keyword" - >with</a - ><a name="22923" + ><a name="22917" class="Symbol" + >(</a + ><a name="22918" href="Stlc.html#5050" class="InductiveConstructor" + >ξif</a + ><a name="22921" > </a - ><a name="22924" href="StlcProp.html#21140" class="Function" - >preservation</a - ><a name="22936" - > </a - ><a name="22937" href="StlcProp.html#22898" class="Bound" - >⊢L</a - ><a name="22939" - > </a - ><a name="22940" href="StlcProp.html#22913" class="Bound" + ><a name="22922" href="StlcProp.html#22922" class="Bound" >L⟹L′</a - ><a name="22944" + ><a name="22926" class="Symbol" + >)</a + ><a name="22927" + > </a + ><a name="22928" class="Keyword" + >with</a + ><a name="22932" + > </a + ><a name="22933" href="StlcProp.html#21149" class="Function" + >preservation</a + ><a name="22945" + > </a + ><a name="22946" href="StlcProp.html#22907" class="Bound" + >⊢L</a + ><a name="22948" + > </a + ><a name="22949" href="StlcProp.html#22922" class="Bound" + >L⟹L′</a + ><a name="22953" > </a - ><a name="22945" class="Symbol" - >...|</a - ><a name="22949" - > </a - ><a name="22950" href="StlcProp.html#22950" class="Bound" - >⊢L′</a - ><a name="22953" - > </a ><a name="22954" class="Symbol" - >=</a - ><a name="22955" + >...|</a + ><a name="22958" > </a - ><a name="22956" href="Stlc.html#3434" class="InductiveConstructor" - >𝔹-E</a - ><a name="22959" - > </a - ><a name="22960" href="StlcProp.html#22950" class="Bound" + ><a name="22959" href="StlcProp.html#22959" class="Bound" >⊢L′</a - ><a name="22963" + ><a name="22962" > </a - ><a name="22964" href="StlcProp.html#22901" class="Bound" + ><a name="22963" class="Symbol" + >=</a + ><a name="22964" + > </a + ><a name="22965" href="Stlc.html#6392" class="InductiveConstructor" + >𝔹-E</a + ><a name="22968" + > </a + ><a name="22969" href="StlcProp.html#22959" class="Bound" + >⊢L′</a + ><a name="22972" + > </a + ><a name="22973" href="StlcProp.html#22910" class="Bound" >⊢M</a - ><a name="22966" + ><a name="22975" > </a - ><a name="22967" href="StlcProp.html#22904" class="Bound" + ><a name="22976" href="StlcProp.html#22913" class="Bound" >⊢N</a > @@ -6988,226 +6988,226 @@ term can _never_ reach a stuck state. <pre class="Agda"> -<a name="23620" href="StlcProp.html#23620" class="Function" +<a name="23629" href="StlcProp.html#23629" class="Function" >Normal</a - ><a name="23626" - > </a - ><a name="23627" class="Symbol" - >:</a - ><a name="23628" - > </a - ><a name="23629" href="Stlc.html#708" class="Datatype" - >Term</a - ><a name="23633" - > </a - ><a name="23634" class="Symbol" - >→</a ><a name="23635" > </a - ><a name="23636" class="PrimitiveType" + ><a name="23636" class="Symbol" + >:</a + ><a name="23637" + > </a + ><a name="23638" href="Stlc.html#3485" class="Datatype" + >Term</a + ><a name="23642" + > </a + ><a name="23643" class="Symbol" + >→</a + ><a name="23644" + > </a + ><a name="23645" class="PrimitiveType" >Set</a - ><a name="23639" + ><a name="23648" > </a - ><a name="23640" href="StlcProp.html#23620" class="Function" + ><a name="23649" href="StlcProp.html#23629" class="Function" >Normal</a - ><a name="23646" + ><a name="23655" > </a - ><a name="23647" href="StlcProp.html#23647" class="Bound" + ><a name="23656" href="StlcProp.html#23656" class="Bound" >M</a - ><a name="23648" + ><a name="23657" > </a - ><a name="23649" class="Symbol" + ><a name="23658" class="Symbol" >=</a - ><a name="23650" + ><a name="23659" > </a - ><a name="23651" class="Symbol" + ><a name="23660" class="Symbol" >∀</a - ><a name="23652" + ><a name="23661" > </a - ><a name="23653" class="Symbol" + ><a name="23662" class="Symbol" >{</a - ><a name="23654" href="StlcProp.html#23654" class="Bound" + ><a name="23663" href="StlcProp.html#23663" class="Bound" >N</a - ><a name="23655" class="Symbol" + ><a name="23664" class="Symbol" >}</a - ><a name="23656" - > </a - ><a name="23657" class="Symbol" - >→</a - ><a name="23658" - > </a - ><a name="23659" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#414" class="Function Operator" - >¬</a - ><a name="23660" - > </a - ><a name="23661" class="Symbol" - >(</a - ><a name="23662" href="StlcProp.html#23647" class="Bound" - >M</a - ><a name="23663" - > </a - ><a name="23664" href="Stlc.html#1762" class="Datatype Operator" - >⟹</a ><a name="23665" > </a - ><a name="23666" href="StlcProp.html#23654" class="Bound" + ><a name="23666" class="Symbol" + >→</a + ><a name="23667" + > </a + ><a name="23668" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#414" class="Function Operator" + >¬</a + ><a name="23669" + > </a + ><a name="23670" class="Symbol" + >(</a + ><a name="23671" href="StlcProp.html#23656" class="Bound" + >M</a + ><a name="23672" + > </a + ><a name="23673" href="Stlc.html#4720" class="Datatype Operator" + >⟹</a + ><a name="23674" + > </a + ><a name="23675" href="StlcProp.html#23663" class="Bound" >N</a - ><a name="23667" class="Symbol" + ><a name="23676" class="Symbol" >)</a - ><a name="23668" + ><a name="23677" > </a - ><a name="23670" href="StlcProp.html#23670" class="Function" + ><a name="23679" href="StlcProp.html#23679" class="Function" >Stuck</a - ><a name="23675" - > </a - ><a name="23676" class="Symbol" - >:</a - ><a name="23677" - > </a - ><a name="23678" href="Stlc.html#708" class="Datatype" - >Term</a - ><a name="23682" - > </a - ><a name="23683" class="Symbol" - >→</a ><a name="23684" > </a - ><a name="23685" class="PrimitiveType" + ><a name="23685" class="Symbol" + >:</a + ><a name="23686" + > </a + ><a name="23687" href="Stlc.html#3485" class="Datatype" + >Term</a + ><a name="23691" + > </a + ><a name="23692" class="Symbol" + >→</a + ><a name="23693" + > </a + ><a name="23694" class="PrimitiveType" >Set</a - ><a name="23688" + ><a name="23697" > </a - ><a name="23689" href="StlcProp.html#23670" class="Function" + ><a name="23698" href="StlcProp.html#23679" class="Function" >Stuck</a - ><a name="23694" + ><a name="23703" > </a - ><a name="23695" href="StlcProp.html#23695" class="Bound" + ><a name="23704" href="StlcProp.html#23704" class="Bound" >M</a - ><a name="23696" - > </a - ><a name="23697" class="Symbol" - >=</a - ><a name="23698" - > </a - ><a name="23699" href="StlcProp.html#23620" class="Function" - >Normal</a ><a name="23705" > </a - ><a name="23706" href="StlcProp.html#23695" class="Bound" - >M</a + ><a name="23706" class="Symbol" + >=</a ><a name="23707" > </a - ><a name="23708" href="https://agda.github.io/agda-stdlib/Data.Product.html#1073" class="Function Operator" - >×</a - ><a name="23709" + ><a name="23708" href="StlcProp.html#23629" class="Function" + >Normal</a + ><a name="23714" > </a - ><a name="23710" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#414" class="Function Operator" - >¬</a - ><a name="23711" - > </a - ><a name="23712" href="Stlc.html#1105" class="Datatype" - >Value</a - ><a name="23717" - > </a - ><a name="23718" href="StlcProp.html#23695" class="Bound" + ><a name="23715" href="StlcProp.html#23704" class="Bound" >M</a - ><a name="23719" + ><a name="23716" + > </a + ><a name="23717" href="https://agda.github.io/agda-stdlib/Data.Product.html#1073" class="Function Operator" + >×</a + ><a name="23718" + > </a + ><a name="23719" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#414" class="Function Operator" + >¬</a + ><a name="23720" + > </a + ><a name="23721" href="Stlc.html#4063" class="Datatype" + >Value</a + ><a name="23726" + > </a + ><a name="23727" href="StlcProp.html#23704" class="Bound" + >M</a + ><a name="23728" > </a - ><a name="23721" class="Keyword" + ><a name="23730" class="Keyword" >postulate</a - ><a name="23730" + ><a name="23739" > </a - ><a name="23733" href="StlcProp.html#23733" class="Postulate" + ><a name="23742" href="StlcProp.html#23742" class="Postulate" >Soundness</a - ><a name="23742" - > </a - ><a name="23743" class="Symbol" - >:</a - ><a name="23744" - > </a - ><a name="23745" class="Symbol" - >∀</a - ><a name="23746" - > </a - ><a name="23747" class="Symbol" - >{</a - ><a name="23748" href="StlcProp.html#23748" class="Bound" - >M</a - ><a name="23749" - > </a - ><a name="23750" href="StlcProp.html#23750" class="Bound" - >N</a ><a name="23751" > </a - ><a name="23752" href="StlcProp.html#23752" class="Bound" - >A</a - ><a name="23753" class="Symbol" - >}</a - ><a name="23754" + ><a name="23752" class="Symbol" + >:</a + ><a name="23753" > </a - ><a name="23755" class="Symbol" - >→</a - ><a name="23756" + ><a name="23754" class="Symbol" + >∀</a + ><a name="23755" > </a - ><a name="23757" href="Maps.html#10265" class="Function" - >∅</a + ><a name="23756" class="Symbol" + >{</a + ><a name="23757" href="StlcProp.html#23757" class="Bound" + >M</a ><a name="23758" > </a - ><a name="23759" href="Stlc.html#3112" class="Datatype Operator" - >⊢</a + ><a name="23759" href="StlcProp.html#23759" class="Bound" + >N</a ><a name="23760" > </a - ><a name="23761" href="StlcProp.html#23748" class="Bound" - >M</a - ><a name="23762" - > </a - ><a name="23763" href="Stlc.html#3112" class="Datatype Operator" - >∶</a - ><a name="23764" - > </a - ><a name="23765" href="StlcProp.html#23752" class="Bound" + ><a name="23761" href="StlcProp.html#23761" class="Bound" >A</a - ><a name="23766" + ><a name="23762" class="Symbol" + >}</a + ><a name="23763" > </a - ><a name="23767" class="Symbol" + ><a name="23764" class="Symbol" >→</a - ><a name="23768" + ><a name="23765" > </a - ><a name="23769" href="StlcProp.html#23748" class="Bound" + ><a name="23766" href="Maps.html#10265" class="Function" + >∅</a + ><a name="23767" + > </a + ><a name="23768" href="Stlc.html#6070" class="Datatype Operator" + >⊢</a + ><a name="23769" + > </a + ><a name="23770" href="StlcProp.html#23757" class="Bound" >M</a - ><a name="23770" + ><a name="23771" > </a - ><a name="23771" href="Stlc.html#2287" class="Datatype Operator" - >⟹*</a + ><a name="23772" href="Stlc.html#6070" class="Datatype Operator" + >∶</a ><a name="23773" > </a - ><a name="23774" href="StlcProp.html#23750" class="Bound" - >N</a + ><a name="23774" href="StlcProp.html#23761" class="Bound" + >A</a ><a name="23775" > </a ><a name="23776" class="Symbol" >→</a ><a name="23777" > </a - ><a name="23778" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#414" class="Function Operator" - >¬</a + ><a name="23778" href="StlcProp.html#23757" class="Bound" + >M</a ><a name="23779" > </a - ><a name="23780" class="Symbol" - >(</a - ><a name="23781" href="StlcProp.html#23670" class="Function" - >Stuck</a + ><a name="23780" href="Stlc.html#5245" class="Datatype Operator" + >⟹*</a + ><a name="23782" + > </a + ><a name="23783" href="StlcProp.html#23759" class="Bound" + >N</a + ><a name="23784" + > </a + ><a name="23785" class="Symbol" + >→</a ><a name="23786" > </a - ><a name="23787" href="StlcProp.html#23750" class="Bound" + ><a name="23787" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#414" class="Function Operator" + >¬</a + ><a name="23788" + > </a + ><a name="23789" class="Symbol" + >(</a + ><a name="23790" href="StlcProp.html#23679" class="Function" + >Stuck</a + ><a name="23795" + > </a + ><a name="23796" href="StlcProp.html#23759" class="Bound" >N</a - ><a name="23788" class="Symbol" + ><a name="23797" class="Symbol" >)</a > @@ -7216,342 +7216,342 @@ term can _never_ reach a stuck state. <div class="hidden"> <pre class="Agda"> -<a name="23836" href="StlcProp.html#23836" class="Function" +<a name="23845" href="StlcProp.html#23845" class="Function" >Soundness′</a - ><a name="23846" - > </a - ><a name="23847" class="Symbol" - >:</a - ><a name="23848" - > </a - ><a name="23849" class="Symbol" - >∀</a - ><a name="23850" - > </a - ><a name="23851" class="Symbol" - >{</a - ><a name="23852" href="StlcProp.html#23852" class="Bound" - >M</a - ><a name="23853" - > </a - ><a name="23854" href="StlcProp.html#23854" class="Bound" - >N</a ><a name="23855" > </a - ><a name="23856" href="StlcProp.html#23856" class="Bound" - >A</a - ><a name="23857" class="Symbol" - >}</a - ><a name="23858" + ><a name="23856" class="Symbol" + >:</a + ><a name="23857" > </a - ><a name="23859" class="Symbol" - >→</a - ><a name="23860" + ><a name="23858" class="Symbol" + >∀</a + ><a name="23859" > </a - ><a name="23861" href="Maps.html#10265" class="Function" - >∅</a + ><a name="23860" class="Symbol" + >{</a + ><a name="23861" href="StlcProp.html#23861" class="Bound" + >M</a ><a name="23862" > </a - ><a name="23863" href="Stlc.html#3112" class="Datatype Operator" - >⊢</a + ><a name="23863" href="StlcProp.html#23863" class="Bound" + >N</a ><a name="23864" > </a - ><a name="23865" href="StlcProp.html#23852" class="Bound" - >M</a - ><a name="23866" - > </a - ><a name="23867" href="Stlc.html#3112" class="Datatype Operator" - >∶</a - ><a name="23868" - > </a - ><a name="23869" href="StlcProp.html#23856" class="Bound" + ><a name="23865" href="StlcProp.html#23865" class="Bound" >A</a - ><a name="23870" + ><a name="23866" class="Symbol" + >}</a + ><a name="23867" > </a - ><a name="23871" class="Symbol" + ><a name="23868" class="Symbol" >→</a - ><a name="23872" + ><a name="23869" > </a - ><a name="23873" href="StlcProp.html#23852" class="Bound" + ><a name="23870" href="Maps.html#10265" class="Function" + >∅</a + ><a name="23871" + > </a + ><a name="23872" href="Stlc.html#6070" class="Datatype Operator" + >⊢</a + ><a name="23873" + > </a + ><a name="23874" href="StlcProp.html#23861" class="Bound" >M</a - ><a name="23874" + ><a name="23875" > </a - ><a name="23875" href="Stlc.html#2287" class="Datatype Operator" - >⟹*</a + ><a name="23876" href="Stlc.html#6070" class="Datatype Operator" + >∶</a ><a name="23877" > </a - ><a name="23878" href="StlcProp.html#23854" class="Bound" - >N</a + ><a name="23878" href="StlcProp.html#23865" class="Bound" + >A</a ><a name="23879" > </a ><a name="23880" class="Symbol" >→</a ><a name="23881" > </a - ><a name="23882" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#414" class="Function Operator" - >¬</a + ><a name="23882" href="StlcProp.html#23861" class="Bound" + >M</a ><a name="23883" > </a - ><a name="23884" class="Symbol" - >(</a - ><a name="23885" href="StlcProp.html#23670" class="Function" - >Stuck</a + ><a name="23884" href="Stlc.html#5245" class="Datatype Operator" + >⟹*</a + ><a name="23886" + > </a + ><a name="23887" href="StlcProp.html#23863" class="Bound" + >N</a + ><a name="23888" + > </a + ><a name="23889" class="Symbol" + >→</a ><a name="23890" > </a - ><a name="23891" href="StlcProp.html#23854" class="Bound" + ><a name="23891" href="https://agda.github.io/agda-stdlib/Relation.Nullary.html#414" class="Function Operator" + >¬</a + ><a name="23892" + > </a + ><a name="23893" class="Symbol" + >(</a + ><a name="23894" href="StlcProp.html#23679" class="Function" + >Stuck</a + ><a name="23899" + > </a + ><a name="23900" href="StlcProp.html#23863" class="Bound" >N</a - ><a name="23892" class="Symbol" + ><a name="23901" class="Symbol" >)</a - ><a name="23893" + ><a name="23902" > </a - ><a name="23894" href="StlcProp.html#23836" class="Function" + ><a name="23903" href="StlcProp.html#23845" class="Function" >Soundness′</a - ><a name="23904" - > </a - ><a name="23905" href="StlcProp.html#23905" class="Bound" - >⊢M</a - ><a name="23907" - > </a - ><a name="23908" class="Symbol" - >(</a - ><a name="23909" href="StlcProp.html#23909" class="Bound" - >M</a - ><a name="23910" - > </a - ><a name="23911" href="Stlc.html#2320" class="InductiveConstructor Operator" - >∎</a - ><a name="23912" class="Symbol" - >)</a ><a name="23913" > </a - ><a name="23914" class="Symbol" + ><a name="23914" href="StlcProp.html#23914" class="Bound" + >⊢M</a + ><a name="23916" + > </a + ><a name="23917" class="Symbol" >(</a - ><a name="23915" href="StlcProp.html#23915" class="Bound" - >¬M⟹N</a + ><a name="23918" href="StlcProp.html#23918" class="Bound" + >M</a ><a name="23919" > </a - ><a name="23920" href="https://agda.github.io/agda-stdlib/Data.Product.html#509" class="InductiveConstructor Operator" - >,</a - ><a name="23921" - > </a - ><a name="23922" href="StlcProp.html#23922" class="Bound" - >¬ValueM</a - ><a name="23929" class="Symbol" + ><a name="23920" href="Stlc.html#5278" class="InductiveConstructor Operator" + >∎</a + ><a name="23921" class="Symbol" >)</a + ><a name="23922" + > </a + ><a name="23923" class="Symbol" + >(</a + ><a name="23924" href="StlcProp.html#23924" class="Bound" + >¬M⟹N</a + ><a name="23928" + > </a + ><a name="23929" href="https://agda.github.io/agda-stdlib/Data.Product.html#509" class="InductiveConstructor Operator" + >,</a ><a name="23930" > </a - ><a name="23931" class="Keyword" - >with</a - ><a name="23935" + ><a name="23931" href="StlcProp.html#23931" class="Bound" + >¬ValueM</a + ><a name="23938" class="Symbol" + >)</a + ><a name="23939" > </a - ><a name="23936" href="StlcProp.html#2024" class="Function" - >progress</a + ><a name="23940" class="Keyword" + >with</a ><a name="23944" > </a - ><a name="23945" href="StlcProp.html#23905" class="Bound" - >⊢M</a - ><a name="23947" - > -</a - ><a name="23948" class="Symbol" - >...</a - ><a name="23951" - > </a - ><a name="23952" class="Symbol" - >|</a + ><a name="23945" href="StlcProp.html#2024" class="Function" + >progress</a ><a name="23953" > </a - ><a name="23954" href="StlcProp.html#1947" class="InductiveConstructor" - >steps</a - ><a name="23959" - > </a - ><a name="23960" href="StlcProp.html#23960" class="Bound" - >M⟹N</a - ><a name="23963" - > </a - ><a name="23965" class="Symbol" - >=</a - ><a name="23966" - > </a - ><a name="23967" href="StlcProp.html#23915" class="Bound" - >¬M⟹N</a - ><a name="23971" - > </a - ><a name="23972" href="StlcProp.html#23960" class="Bound" - >M⟹N</a - ><a name="23975" + ><a name="23954" href="StlcProp.html#23914" class="Bound" + >⊢M</a + ><a name="23956" > </a - ><a name="23976" class="Symbol" + ><a name="23957" class="Symbol" >...</a - ><a name="23979" + ><a name="23960" > </a - ><a name="23980" class="Symbol" + ><a name="23961" class="Symbol" >|</a - ><a name="23981" + ><a name="23962" > </a - ><a name="23982" href="StlcProp.html#1986" class="InductiveConstructor" - >done</a - ><a name="23986" + ><a name="23963" href="StlcProp.html#1947" class="InductiveConstructor" + >steps</a + ><a name="23968" > </a - ><a name="23987" href="StlcProp.html#23987" class="Bound" - >ValueM</a - ><a name="23993" + ><a name="23969" href="StlcProp.html#23969" class="Bound" + >M⟹N</a + ><a name="23972" > </a - ><a name="23995" class="Symbol" + ><a name="23974" class="Symbol" >=</a - ><a name="23996" + ><a name="23975" > </a - ><a name="23997" href="StlcProp.html#23922" class="Bound" - >¬ValueM</a - ><a name="24004" + ><a name="23976" href="StlcProp.html#23924" class="Bound" + >¬M⟹N</a + ><a name="23980" > </a - ><a name="24005" href="StlcProp.html#23987" class="Bound" - >ValueM</a - ><a name="24011" + ><a name="23981" href="StlcProp.html#23969" class="Bound" + >M⟹N</a + ><a name="23984" > </a - ><a name="24012" href="StlcProp.html#23836" class="Function" + ><a name="23985" class="Symbol" + >...</a + ><a name="23988" + > </a + ><a name="23989" class="Symbol" + >|</a + ><a name="23990" + > </a + ><a name="23991" href="StlcProp.html#1986" class="InductiveConstructor" + >done</a + ><a name="23995" + > </a + ><a name="23996" href="StlcProp.html#23996" class="Bound" + >ValueM</a + ><a name="24002" + > </a + ><a name="24004" class="Symbol" + >=</a + ><a name="24005" + > </a + ><a name="24006" href="StlcProp.html#23931" class="Bound" + >¬ValueM</a + ><a name="24013" + > </a + ><a name="24014" href="StlcProp.html#23996" class="Bound" + >ValueM</a + ><a name="24020" + > +</a + ><a name="24021" href="StlcProp.html#23845" class="Function" >Soundness′</a - ><a name="24022" + ><a name="24031" > </a - ><a name="24023" class="Symbol" + ><a name="24032" class="Symbol" >{</a - ><a name="24024" href="StlcProp.html#24024" class="Bound" + ><a name="24033" href="StlcProp.html#24033" class="Bound" >L</a - ><a name="24025" class="Symbol" + ><a name="24034" class="Symbol" >}</a - ><a name="24026" + ><a name="24035" > </a - ><a name="24027" class="Symbol" + ><a name="24036" class="Symbol" >{</a - ><a name="24028" href="StlcProp.html#24028" class="Bound" + ><a name="24037" href="StlcProp.html#24037" class="Bound" >N</a - ><a name="24029" class="Symbol" - >}</a - ><a name="24030" - > </a - ><a name="24031" class="Symbol" - >{</a - ><a name="24032" href="StlcProp.html#24032" class="Bound" - >A</a - ><a name="24033" class="Symbol" - >}</a - ><a name="24034" - > </a - ><a name="24035" href="StlcProp.html#24035" class="Bound" - >⊢L</a - ><a name="24037" - > </a ><a name="24038" class="Symbol" + >}</a + ><a name="24039" + > </a + ><a name="24040" class="Symbol" + >{</a + ><a name="24041" href="StlcProp.html#24041" class="Bound" + >A</a + ><a name="24042" class="Symbol" + >}</a + ><a name="24043" + > </a + ><a name="24044" href="StlcProp.html#24044" class="Bound" + >⊢L</a + ><a name="24046" + > </a + ><a name="24047" class="Symbol" >(</a - ><a name="24039" href="Stlc.html#2340" class="InductiveConstructor Operator" + ><a name="24048" href="Stlc.html#5298" class="InductiveConstructor Operator" >_⟹⟨_⟩_</a - ><a name="24045" + ><a name="24054" > </a - ><a name="24046" class="DottedPattern Symbol" + ><a name="24055" class="DottedPattern Symbol" >.</a - ><a name="24047" href="StlcProp.html#24024" class="DottedPattern Bound" + ><a name="24056" href="StlcProp.html#24033" class="DottedPattern Bound" >L</a - ><a name="24048" - > </a - ><a name="24049" class="Symbol" - >{</a - ><a name="24050" href="StlcProp.html#24050" class="Bound" - >M</a - ><a name="24051" class="Symbol" - >}</a - ><a name="24052" - > </a - ><a name="24053" class="Symbol" - >{</a - ><a name="24054" class="DottedPattern Symbol" - >.</a - ><a name="24055" href="StlcProp.html#24028" class="DottedPattern Bound" - >N</a - ><a name="24056" class="Symbol" - >}</a ><a name="24057" > </a - ><a name="24058" href="StlcProp.html#24058" class="Bound" - >L⟹M</a + ><a name="24058" class="Symbol" + >{</a + ><a name="24059" href="StlcProp.html#24059" class="Bound" + >M</a + ><a name="24060" class="Symbol" + >}</a ><a name="24061" > </a - ><a name="24062" href="StlcProp.html#24062" class="Bound" + ><a name="24062" class="Symbol" + >{</a + ><a name="24063" class="DottedPattern Symbol" + >.</a + ><a name="24064" href="StlcProp.html#24037" class="DottedPattern Bound" + >N</a + ><a name="24065" class="Symbol" + >}</a + ><a name="24066" + > </a + ><a name="24067" href="StlcProp.html#24067" class="Bound" + >L⟹M</a + ><a name="24070" + > </a + ><a name="24071" href="StlcProp.html#24071" class="Bound" >M⟹*N</a - ><a name="24066" class="Symbol" + ><a name="24075" class="Symbol" >)</a - ><a name="24067" + ><a name="24076" > </a - ><a name="24068" class="Symbol" + ><a name="24077" class="Symbol" >=</a - ><a name="24069" + ><a name="24078" > </a - ><a name="24070" href="StlcProp.html#23836" class="Function" + ><a name="24079" href="StlcProp.html#23845" class="Function" >Soundness′</a - ><a name="24080" + ><a name="24089" > </a - ><a name="24081" href="StlcProp.html#24099" class="Function" + ><a name="24090" href="StlcProp.html#24108" class="Function" >⊢M</a - ><a name="24083" + ><a name="24092" > </a - ><a name="24084" href="StlcProp.html#24062" class="Bound" + ><a name="24093" href="StlcProp.html#24071" class="Bound" >M⟹*N</a - ><a name="24088" + ><a name="24097" > </a - ><a name="24091" class="Keyword" + ><a name="24100" class="Keyword" >where</a - ><a name="24096" - > - </a - ><a name="24099" href="StlcProp.html#24099" class="Function" - >⊢M</a - ><a name="24101" - > </a - ><a name="24102" class="Symbol" - >:</a - ><a name="24103" - > </a - ><a name="24104" href="Maps.html#10265" class="Function" - >∅</a ><a name="24105" - > </a - ><a name="24106" href="Stlc.html#3112" class="Datatype Operator" - >⊢</a - ><a name="24107" - > </a - ><a name="24108" href="StlcProp.html#24050" class="Bound" - >M</a - ><a name="24109" - > </a - ><a name="24110" href="Stlc.html#3112" class="Datatype Operator" - >∶</a - ><a name="24111" - > </a - ><a name="24112" href="StlcProp.html#24032" class="Bound" - >A</a - ><a name="24113" > </a - ><a name="24116" href="StlcProp.html#24099" class="Function" + ><a name="24108" href="StlcProp.html#24108" class="Function" >⊢M</a + ><a name="24110" + > </a + ><a name="24111" class="Symbol" + >:</a + ><a name="24112" + > </a + ><a name="24113" href="Maps.html#10265" class="Function" + >∅</a + ><a name="24114" + > </a + ><a name="24115" href="Stlc.html#6070" class="Datatype Operator" + >⊢</a + ><a name="24116" + > </a + ><a name="24117" href="StlcProp.html#24059" class="Bound" + >M</a ><a name="24118" > </a - ><a name="24119" class="Symbol" - >=</a + ><a name="24119" href="Stlc.html#6070" class="Datatype Operator" + >∶</a ><a name="24120" > </a - ><a name="24121" href="StlcProp.html#21140" class="Function" + ><a name="24121" href="StlcProp.html#24041" class="Bound" + >A</a + ><a name="24122" + > + </a + ><a name="24125" href="StlcProp.html#24108" class="Function" + >⊢M</a + ><a name="24127" + > </a + ><a name="24128" class="Symbol" + >=</a + ><a name="24129" + > </a + ><a name="24130" href="StlcProp.html#21149" class="Function" >preservation</a - ><a name="24133" + ><a name="24142" > </a - ><a name="24134" href="StlcProp.html#24035" class="Bound" + ><a name="24143" href="StlcProp.html#24044" class="Bound" >⊢L</a - ><a name="24136" + ><a name="24145" > </a - ><a name="24137" href="StlcProp.html#24058" class="Bound" + ><a name="24146" href="StlcProp.html#24067" class="Bound" >L⟹M</a > @@ -7731,65 +7731,65 @@ booleans, for brevity). <pre class="Agda"> -<a name="28553" class="Keyword" +<a name="28562" class="Keyword" >data</a - ><a name="28557" + ><a name="28566" > </a - ><a name="28558" href="StlcProp.html#28558" class="Datatype" + ><a name="28567" href="StlcProp.html#28567" class="Datatype" >Type′</a - ><a name="28563" + ><a name="28572" > </a - ><a name="28564" class="Symbol" + ><a name="28573" class="Symbol" >:</a - ><a name="28565" + ><a name="28574" > </a - ><a name="28566" class="PrimitiveType" + ><a name="28575" class="PrimitiveType" >Set</a - ><a name="28569" + ><a name="28578" > </a - ><a name="28570" class="Keyword" + ><a name="28579" class="Keyword" >where</a - ><a name="28575" + ><a name="28584" > </a - ><a name="28578" href="StlcProp.html#28578" class="InductiveConstructor Operator" + ><a name="28587" href="StlcProp.html#28587" class="InductiveConstructor Operator" >_⇒_</a - ><a name="28581" + ><a name="28590" > </a - ><a name="28582" class="Symbol" + ><a name="28591" class="Symbol" >:</a - ><a name="28583" + ><a name="28592" > </a - ><a name="28584" href="StlcProp.html#28558" class="Datatype" + ><a name="28593" href="StlcProp.html#28567" class="Datatype" >Type′</a - ><a name="28589" + ><a name="28598" > </a - ><a name="28590" class="Symbol" + ><a name="28599" class="Symbol" >→</a - ><a name="28591" + ><a name="28600" > </a - ><a name="28592" href="StlcProp.html#28558" class="Datatype" + ><a name="28601" href="StlcProp.html#28567" class="Datatype" >Type′</a - ><a name="28597" + ><a name="28606" > </a - ><a name="28598" class="Symbol" + ><a name="28607" class="Symbol" >→</a - ><a name="28599" + ><a name="28608" > </a - ><a name="28600" href="StlcProp.html#28558" class="Datatype" + ><a name="28609" href="StlcProp.html#28567" class="Datatype" >Type′</a - ><a name="28605" + ><a name="28614" > </a - ><a name="28608" href="StlcProp.html#28608" class="InductiveConstructor" + ><a name="28617" href="StlcProp.html#28617" class="InductiveConstructor" >ℕ</a - ><a name="28609" + ><a name="28618" > </a - ><a name="28610" class="Symbol" + ><a name="28619" class="Symbol" >:</a - ><a name="28611" + ><a name="28620" > </a - ><a name="28612" href="StlcProp.html#28558" class="Datatype" + ><a name="28621" href="StlcProp.html#28567" class="Datatype" >Type′</a > @@ -7800,226 +7800,226 @@ plus, minus, and testing for zero. <pre class="Agda"> -<a name="28733" class="Keyword" +<a name="28742" class="Keyword" >data</a - ><a name="28737" + ><a name="28746" > </a - ><a name="28738" href="StlcProp.html#28738" class="Datatype" + ><a name="28747" href="StlcProp.html#28747" class="Datatype" >Term′</a - ><a name="28743" + ><a name="28752" > </a - ><a name="28744" class="Symbol" + ><a name="28753" class="Symbol" >:</a - ><a name="28745" + ><a name="28754" > </a - ><a name="28746" class="PrimitiveType" + ><a name="28755" class="PrimitiveType" >Set</a - ><a name="28749" + ><a name="28758" > </a - ><a name="28750" class="Keyword" + ><a name="28759" class="Keyword" >where</a - ><a name="28755" + ><a name="28764" > </a - ><a name="28758" href="StlcProp.html#28758" class="InductiveConstructor Operator" + ><a name="28767" href="StlcProp.html#28767" class="InductiveConstructor Operator" >`_</a - ><a name="28760" + ><a name="28769" > </a - ><a name="28761" class="Symbol" + ><a name="28770" class="Symbol" >:</a - ><a name="28762" + ><a name="28771" > </a - ><a name="28763" href="Maps.html#2171" class="Datatype" + ><a name="28772" href="Maps.html#2171" class="Datatype" >Id</a - ><a name="28765" + ><a name="28774" > </a - ><a name="28766" class="Symbol" + ><a name="28775" class="Symbol" >→</a - ><a name="28767" + ><a name="28776" > </a - ><a name="28768" href="StlcProp.html#28738" class="Datatype" + ><a name="28777" href="StlcProp.html#28747" class="Datatype" >Term′</a - ><a name="28773" + ><a name="28782" > </a - ><a name="28776" href="StlcProp.html#28776" class="InductiveConstructor Operator" + ><a name="28785" href="StlcProp.html#28785" class="InductiveConstructor Operator" >λ[_∶_]_</a - ><a name="28783" + ><a name="28792" > </a - ><a name="28784" class="Symbol" + ><a name="28793" class="Symbol" >:</a - ><a name="28785" + ><a name="28794" > </a - ><a name="28786" href="Maps.html#2171" class="Datatype" + ><a name="28795" href="Maps.html#2171" class="Datatype" >Id</a - ><a name="28788" + ><a name="28797" > </a - ><a name="28789" class="Symbol" + ><a name="28798" class="Symbol" >→</a - ><a name="28790" + ><a name="28799" > </a - ><a name="28791" href="StlcProp.html#28558" class="Datatype" + ><a name="28800" href="StlcProp.html#28567" class="Datatype" >Type′</a - ><a name="28796" + ><a name="28805" > </a - ><a name="28797" class="Symbol" + ><a name="28806" class="Symbol" >→</a - ><a name="28798" + ><a name="28807" > </a - ><a name="28799" href="StlcProp.html#28738" class="Datatype" + ><a name="28808" href="StlcProp.html#28747" class="Datatype" >Term′</a - ><a name="28804" + ><a name="28813" > </a - ><a name="28805" class="Symbol" + ><a name="28814" class="Symbol" >→</a - ><a name="28806" + ><a name="28815" > </a - ><a name="28807" href="StlcProp.html#28738" class="Datatype" + ><a name="28816" href="StlcProp.html#28747" class="Datatype" >Term′</a - ><a name="28812" + ><a name="28821" > </a - ><a name="28815" href="StlcProp.html#28815" class="InductiveConstructor Operator" + ><a name="28824" href="StlcProp.html#28824" class="InductiveConstructor Operator" >_·_</a - ><a name="28818" + ><a name="28827" > </a - ><a name="28819" class="Symbol" + ><a name="28828" class="Symbol" >:</a - ><a name="28820" + ><a name="28829" > </a - ><a name="28821" href="StlcProp.html#28738" class="Datatype" + ><a name="28830" href="StlcProp.html#28747" class="Datatype" >Term′</a - ><a name="28826" + ><a name="28835" > </a - ><a name="28827" class="Symbol" + ><a name="28836" class="Symbol" >→</a - ><a name="28828" + ><a name="28837" > </a - ><a name="28829" href="StlcProp.html#28738" class="Datatype" + ><a name="28838" href="StlcProp.html#28747" class="Datatype" >Term′</a - ><a name="28834" + ><a name="28843" > </a - ><a name="28835" class="Symbol" + ><a name="28844" class="Symbol" >→</a - ><a name="28836" + ><a name="28845" > </a - ><a name="28837" href="StlcProp.html#28738" class="Datatype" + ><a name="28846" href="StlcProp.html#28747" class="Datatype" >Term′</a - ><a name="28842" + ><a name="28851" > </a - ><a name="28845" href="StlcProp.html#28845" class="InductiveConstructor Operator" + ><a name="28854" href="StlcProp.html#28854" class="InductiveConstructor Operator" >‶_</a - ><a name="28847" + ><a name="28856" > </a - ><a name="28848" class="Symbol" + ><a name="28857" class="Symbol" >:</a - ><a name="28849" + ><a name="28858" > </a - ><a name="28850" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Nat.html#97" class="Datatype" + ><a name="28859" href="https://agda.github.io/agda-stdlib/Agda.Builtin.Nat.html#97" class="Datatype" >Data.Nat.ℕ</a - ><a name="28860" + ><a name="28869" > </a - ><a name="28861" class="Symbol" + ><a name="28870" class="Symbol" >→</a - ><a name="28862" + ><a name="28871" > </a - ><a name="28863" href="StlcProp.html#28738" class="Datatype" + ><a name="28872" href="StlcProp.html#28747" class="Datatype" >Term′</a - ><a name="28868" + ><a name="28877" > </a - ><a name="28871" href="StlcProp.html#28871" class="InductiveConstructor Operator" + ><a name="28880" href="StlcProp.html#28880" class="InductiveConstructor Operator" >_+_</a - ><a name="28874" + ><a name="28883" > </a - ><a name="28875" class="Symbol" + ><a name="28884" class="Symbol" >:</a - ><a name="28876" + ><a name="28885" > </a - ><a name="28877" href="StlcProp.html#28738" class="Datatype" + ><a name="28886" href="StlcProp.html#28747" class="Datatype" >Term′</a - ><a name="28882" + ><a name="28891" > </a - ><a name="28883" class="Symbol" + ><a name="28892" class="Symbol" >→</a - ><a name="28884" + ><a name="28893" > </a - ><a name="28885" href="StlcProp.html#28738" class="Datatype" + ><a name="28894" href="StlcProp.html#28747" class="Datatype" >Term′</a - ><a name="28890" + ><a name="28899" > </a - ><a name="28891" class="Symbol" + ><a name="28900" class="Symbol" >→</a - ><a name="28892" + ><a name="28901" > </a - ><a name="28893" href="StlcProp.html#28738" class="Datatype" + ><a name="28902" href="StlcProp.html#28747" class="Datatype" >Term′</a - ><a name="28898" + ><a name="28907" > </a - ><a name="28901" href="StlcProp.html#28901" class="InductiveConstructor Operator" + ><a name="28910" href="StlcProp.html#28910" class="InductiveConstructor Operator" >_-_</a - ><a name="28904" + ><a name="28913" > </a - ><a name="28905" class="Symbol" + ><a name="28914" class="Symbol" >:</a - ><a name="28906" + ><a name="28915" > </a - ><a name="28907" href="StlcProp.html#28738" class="Datatype" + ><a name="28916" href="StlcProp.html#28747" class="Datatype" >Term′</a - ><a name="28912" + ><a name="28921" > </a - ><a name="28913" class="Symbol" + ><a name="28922" class="Symbol" >→</a - ><a name="28914" + ><a name="28923" > </a - ><a name="28915" href="StlcProp.html#28738" class="Datatype" + ><a name="28924" href="StlcProp.html#28747" class="Datatype" >Term′</a - ><a name="28920" + ><a name="28929" > </a - ><a name="28921" class="Symbol" + ><a name="28930" class="Symbol" >→</a - ><a name="28922" + ><a name="28931" > </a - ><a name="28923" href="StlcProp.html#28738" class="Datatype" + ><a name="28932" href="StlcProp.html#28747" class="Datatype" >Term′</a - ><a name="28928" + ><a name="28937" > </a - ><a name="28931" href="StlcProp.html#28931" class="InductiveConstructor Operator" + ><a name="28940" href="StlcProp.html#28940" class="InductiveConstructor Operator" >if0_then_else_</a - ><a name="28945" + ><a name="28954" > </a - ><a name="28946" class="Symbol" + ><a name="28955" class="Symbol" >:</a - ><a name="28947" + ><a name="28956" > </a - ><a name="28948" href="StlcProp.html#28738" class="Datatype" + ><a name="28957" href="StlcProp.html#28747" class="Datatype" >Term′</a - ><a name="28953" + ><a name="28962" > </a - ><a name="28954" class="Symbol" + ><a name="28963" class="Symbol" >→</a - ><a name="28955" + ><a name="28964" > </a - ><a name="28956" href="StlcProp.html#28738" class="Datatype" + ><a name="28965" href="StlcProp.html#28747" class="Datatype" >Term′</a - ><a name="28961" + ><a name="28970" > </a - ><a name="28962" class="Symbol" + ><a name="28971" class="Symbol" >→</a - ><a name="28963" + ><a name="28972" > </a - ><a name="28964" href="StlcProp.html#28738" class="Datatype" + ><a name="28973" href="StlcProp.html#28747" class="Datatype" >Term′</a - ><a name="28969" + ><a name="28978" > </a - ><a name="28970" class="Symbol" + ><a name="28979" class="Symbol" >→</a - ><a name="28971" + ><a name="28980" > </a - ><a name="28972" href="StlcProp.html#28738" class="Datatype" + ><a name="28981" href="StlcProp.html#28747" class="Datatype" >Term′</a > diff --git a/src/Stlc.lagda b/src/Stlc.lagda index 9abc392d..6cfc0fa1 100644 --- a/src/Stlc.lagda +++ b/src/Stlc.lagda @@ -70,7 +70,7 @@ data Type : Set where \end{code} Terms have six constructs. Three are for the core lambda calculus: - * Variables, `\` x` + * Variables, `` ` x `` * Abstractions, `λ[ x ∶ A ] N` * Applications, `L · M` and three are for the base type, booleans: @@ -285,7 +285,7 @@ outermost term is now `if_then_else_`, which is typed using `𝔹-E`. The ?2 : ∅ , x ∶ 𝔹 ⊢ true ∶ 𝔹 Again we fill in the three holes by typing C-c C-r in each. Agda observes -that `\` x`, `false`, and `true` are typed using `Ax`, `𝔹-I₂`, and +that `` ` x ``, `false`, and `true` are typed using `Ax`, `𝔹-I₂`, and `𝔹-I₁` respectively. The `Ax` rule in turn takes an argument, to show that `(∅ , x ∶ 𝔹) x = just 𝔹`, which can in turn be specified with a hole. After filling in all holes, the term is as above. diff --git a/src/StlcProp.lagda b/src/StlcProp.lagda index 6b9fbddb..d717c5ab 100644 --- a/src/StlcProp.lagda +++ b/src/StlcProp.lagda @@ -266,7 +266,7 @@ _Proof_: We show, by induction on the proof that `x` appears free in `M`, that, for all contexts `Γ`, if `M` is well typed under `Γ`, then `Γ` assigns some type to `x`. - - If the last rule used was `free-\``, then `M = \` x`, and from + - If the last rule used was `` free-` ``, then `M = `` `x ``, and from the assumption that `M` is well typed under `Γ` we have immediately that `Γ` assigns a type to `x`. @@ -452,7 +452,7 @@ we show that if `∅ ⊢ V ∶ A` then `Γ ⊢ N [ x := V ] ∶ B`. - If `N` is a variable there are two cases to consider, depending on whether `N` is `x` or some other variable. - - If `N = \` x`, then from `Γ , x ∶ A ⊢ x ∶ B` + - If `N = `` `x ``, then from `Γ , x ∶ A ⊢ x ∶ B` we know that looking up `x` in `Γ , x : A` gives `just B`, but we already know it gives `just A`; applying injectivity for `just` we conclude that `A ≡ B`.