Formalized Metatheory in F* $\lambda^\omega$

fstar-logo

Cătălin Hriţcu (Inria Paris)

Type Systems for Security Verification Lecture

Saarland University

Monday, 23 March 2015

Last Friday

  • Small-step reduction
  • Simple types
    • arithmetic and boolean expressions; While language
    • Simply Typed $\lambda$-calculus (STLC; call-by-value)
  • Style:
    • named representation of terms
    • everything pure and executable; extrinsic style proofs
  • Homework:
    • extending STLC formalization with integers, let rec, pairs
    • optional: subtyping (quite challenging in this style)

Today

  • Another formalization of STLC
    • strong reduction (TAPL 5.1)
    • nameless representation of terms (TAPL 6)
    • parallel substitution
  • $\lambda^\omega$: kinds and type-level computation (TAPL 29 & 30)
  • Style:
    • mixing executable code and inductive relations
    • mixing extrinsic and constructive style proofs
  • Homework: extend STLC formalization
    • with subtyping (TAPL 15) and simple state (While)
    • bonus points: do real references (TAPL 13)
    • extra bonus points: do any of these for $\lambda^\omega$

Strong reduction

((fun x:t -> e1) e2) ~> e1[e2/x]  [S-Beta]

e1 ~> e1'
------------------- [S-App1]
(e1 e2) ~> (e1' e2)

e2 ~> e2'
------------------- [S-App2]
(e1 e2) ~> (e1 e2')

e ~> e'
--------------------------------- [S-Lam]
(fun x:t -> e) ~> (fun x:t -> e')

non-deterministic (but confluent) evaluation strategy
(aka. full beta-reduction): any redex can reduce at any time

Substitution exercise

subst-ex

Nameless representation of terms

  • de Bruijn indices; following TAPL 6
  • $\lambda x.\,x = \lambda.\,0$
  • $\lambda x.\,\lambda y.\,x = \lambda.\,\lambda.\,1$
  • $\lambda x.\,\lambda y.\,x~(y~x) = \lambda.\,\lambda.\,1~(0~1)$
  • $\lambda x.\,\lambda y.\,x = ~?$
  • $\lambda x.\,\lambda y.\,(\lambda z.\,z~x)~y~x = ~?$

Substitution

subst

Shifting

shift

shiftdata-linekid"shift"-ex dlass="ifragmnt" <

/spectio>< id"shec-de-bruin-substitutio>-exercise dlass="ipectio> pectio>2 data-line="9102>-exercise d styl="9bookmark:de Bruin substitutio> exercise >de Bruin substitutio> exercise<

/sli<s$[0 \mapsto (1~(\lambda.\,2))](0~(\lambda.\,1)) = ~?$ data-path=<

/sli<<

/sli<s$[0 \mapsto 1](0~(\lambda.\,1~0)) = ~?$ data-path=<

/sli<< id="sec-bea-lreductio> alass="isectio> sectio>2 data-line="9111" >Bea- reductio>sdb-bea- data-path=<

<

/sli<s$(\lambda.\,(\lambda.\,0~1)~(\lambda.\,0~1)) \to ~?$ data-path=<

/sli<< id="sec-formalizatio> alass="isectio> sectio>2 data-line="9118" >Formalizatio>db_subst.fst< /sli<< id="sec-parallel-substitutio> alass="isectio> sectio>2 data-line="9121" >Parallel substitutio> /sli< argumnt" /sli<stlc_strong_db_parsubst.fst< /sli<< id="sec-lambdaomega--type-operators-and-kinds alass="isectio> sectio>2 data-line="9126"<&span data-line="9127"< 30 /sli< see span data-line="9128"<(sspan><listsspan><tsspan><)sspan><< as an applicatio> <listsspan><< as a typedlonstructor /sli<< sspan><asspan><:sspan><Typesspan><->sspan><listsspan><asspan><< /sli<<idsspan><=sspan><(sspan>< sspan><asspan><:sspan><Typesspan><->sspan><asspan><)sspan><< /sli<s$\lambda$ data-path=<-calculus: <tsspan><::=sspan><t1sspan><->sspan><t2sspan><|sspan><asspan><|sspan><(sspan>< sspan><asspan><ksspan><->sspan><tsspan><)sspan><|sspan><t1sspan><t2sspan><< /sli<< id="sec-primitive-type-operators-in-muf- alass="isectio> sectio>2 data-line="9136"Primitivedtype operators in img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfBcAAANaCAAAAABctMd+AAAC5BIWXMAAAs7AAACOxAGVKw4bAANBVUEQVR4Ix61V223DMAw8GhnAM7gbGBlB2cBoN0g2SGfwCOkI9QjpBm28gbKCuwH7USmgWVmPQgIEUOb5TB4pGsyM0AbQAbAA7BZG4ScACwDzeJYAs9ttgtgI7DmH3INtRtSjwPf+eYPAIqJeHD+QXsYbzDx7u0mBAVxjrETUAvDBzNK3RX4oiHy/ia2g90XgzcqXqPwlg9x6vPY1CUmmDL27LfmaRDG/crskWPiI3rdCvXvt36k0TY3+JqIOgNlF9LYFes/KfQppPgj7noj6GKnNAOAq9WuFfgxgiGjdK+xR+RbdikZ9/SUydyafeiDLE4C3Vbeoyi9/xudvZmfn69U7ozsP8laHbtoiiG7uvDh71LPd4azNdCtypfeU8+fJ2V7z59wRW7KaQH+/1yInZgYReZ3vzPxULXJ3VduCK18ki8kdsf8hP4jhUz3yTwDfAF5Ref0AycYS7DuMf8oAAABESUVORK5CYII= alt="s$\mu$ data-path="iata:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfBcAAANaCAAAAABctMd+AAAC5BIWXMAAAs7AAACOxAGVKw4bAANBVUEQVR4Ix61V223DMAw8GhnAM7gbGBlB2cBoN0g2SGfwCOkI9QjpBm28gbKCuwH7USmgWVmPQgIEUOb5TB4pGsyM0AbQAbAA7BZG4ScACwDzeJYAs9ttgtgI7DmH3INtRtSjwPf+eYPAIqJeHD+QXsYbzDx7u0mBAVxjrETUAvDBzNK3RX4oiHy/ia2g90XgzcqXqPwlg9x6vPY1CUmmDL27LfmaRDG/crskWPiI3rdCvXvt36k0TY3+JqIOgNlF9LYFes/KfQppPgj7noj6GKnNAOAq9WuFfgxgiGjdK+xR+RbdikZ9/SUydyafeiDLE4C3Vbeoyi9/xudvZmfn69U7ozsP8laHbtoiiG7uvDh71LPd4azNdCtypfeU8+fJ2V7z59wRW7KaQH+/1yInZgYReZ3vzPxULXJ3VduCK18ki8kdsf8hP4jhUz3yTwDfAF5Ref0AycYS7DuMf8oAAABESUVORK5CYII= alass="imath-inine= math" styl="9vertical-align:-0.210em;height:0.676em"andsspan><:sspan><Typesspan><->sspan><Typesspan><->sspan><Typesspan><orsspan><:sspan><Typesspan><->sspan><Typesspan><->sspan><Typesspan><notsspan><:sspan><Typesspan><->sspan><Typesspan><implsspan><:sspan><Typesspan><->sspan><Typesspan><->sspan><Typesspan><forallsspan><:sspan><asspan><Typesspan><->sspan><(sspan><asspan><->sspan><Typesspan><)sspan><->sspan><Typesspan><eqsspan><:sspan><asspan><Typesspan><->sspan><asspan><->sspan><asspan><->sspan><Typesspan><precedessspan><:sspan><asspan><Typesspan><->sspan><asspan><->sspan><asspan><->sspan><Typesspan><eq_ksspan><:sspan><a1sspan><ksspan><->sspan><a2sspan><ksspan><->sspan><Typesspan><forall_ksspan><:sspan><(sspan><asspan><ksspan><->sspan><Typesspan><)sspan><->sspan><Typesspan><< id="sec-predicate-transformers-wp alass="isectio> sectio>2 data-line="9149"Predicate transformers (wp) sspan><asspan><Typesspan><2 data-line="9149"Predicate transfoPURE9bookmark:Predicate transfsspan><Predicate transfoPr'toke dkeyworddfstar'>->sspan><:sspan><Predicate transfoPURE9bookmark:Predicate transfsspan><Predicate transfoPostan dlass="'toke dtype idnt"ifierdfstar'>ksspan><->n dlass="'toke dwhitedfstar'> sspan><asspan><->span><< id="sec-predicate-transformers-wp alass="isectio> sectio>2 data-line="9sspan>< sspan>< sspan><eq_ksspan><:sspan><Predicate transfoPURE9bookmark:Predicate transfsspan><Predicate transfoWPan dlass="'toke dtype idnt"ifierdfstar'>ksspan><->n dlass="'toke dwhitedfstar'> sspan><asspan><->span><< id="sec-predicate-transformers-wp alass="isectio> sectio>2 data-line="9sspan>< sspan><Predicate transfoPostan dlass="'toke dtype idnt"ifierdfstar'>ksspan>< sspan><eq_ksspan><:sspan><->cket-close'>)sspan>< PURE9bookmark:Predicate transfhitedfstar'> sspan><ksspan><->sspan><Typesspan> sspan>< sspan><->n dlass="'toke dwhxstar'> sspan><Typesspan><< id="sec-predicate-transformers-wp alass="isectio> sectio>2 data-line="9'toke didnt"ifierdlonstructordfstar'>Typesspan>)sspan>< PURE9bookmark:Predicate transfhitedfstar'> sspan><ksspan>< fstar'> sspan><ksspan><:sspan><ksspan>< p sspan><eq_ksspan><:sspan><eq_ksspan><->cket-close'>)sspan>< PURE9bookmark:Predicate transfhitedfstar'> sspan>< sspan>< sspan><Typesspan> sspan>< sspan><->n dlass="'toke dwhwp1star'> sspan><Typesspan> WPan dlass="'toke dtype idnt"ifierdfstar'>ksspan>< fstar'> sspan>< sspan><->n dlass="'toke dwhwp2star'> sspan><Typesspan> sspan>< sspan>< WPan dlass="'toke dtype idnt"ifierdfstar'>ksspan>< bstar'> sspan><Typesspan>)sspan>< PURE9bookmark:Predicate transfhitedfstar'> sspan><ksspan>< bstar'> sspan><ksspan><>>>peratordfstar'>:sspan><ksspan>< p sspan><eq_ksspan><->n dlass="'toke dwhwp1star'> sspan>< sectio>2 data-line="9dwhitedfstar'> sspan><->149"ksspan>< xstar'> sspan><eq_ksspan><->n dlass="'toke dwhwp2star'> sspan><ksspan>< xstar'> sspan><eq_ksspan><<< id="sec-predi/2<

span>sc-predTh diollowing hites e span>sc-predt2<lang-fctio>fctio>hss=lss="ed" ar'>eq_ksspan><ksspan>< sspan><sc-pred span>sc-predt2<lang-fctio>fctio>hss=lss="ed" ar'>eq_ksspan>< natan dlass="'toke dtype idnt"ifierdfstar'>ksspan>< sspan><sc-pred span>sc-predt2<lang-fctio>fctio>hss=lss="ed" ar'>eq_ksspan><ksspan>< sspan>< id-sec-predicate-transformers-wp a styl="9bookmark:Predicate transformers (wp)star'> boolec-predi/2<sc-pred span>sc-predt2<lang-fctio>fctio>hss=lss="ed" ar'>eq_ksspan>< sspan><->n dlass="'toke dwhnatan dlass="'toke dtype idnt"ifierdfstar'>ksspan>< sspan>< boolec-predipan><sc-pred span>sc-predt2<lang-fctio>fctio>hss=lss="ed" ar'>eq_ksspan><ksspan>< sspan>< id-sec-predicate-transformers-wp a styl="9bookmark:Predicate transformers (wp)star'> boolec-predi/2<sc-pred span>sc-predt2<lang-fctio>fctio>hss=lss="ed" ar'>eq_ksspan>< sspan><->n dlass="'toke dwhid-sec-predicate-transformers-wp a styl="9bookmark:Predicate transfdwhitedfstar'> sspan><->n dlass="'toke dwhid-sec-predicate-transformers-wp a styl="9bookmark:Predicate transfn dlass="'toke dwhnatan dlass="'toke dtype idnt"ifierdfstar'>ksspan>< sspan>< boolec-predipan><<sc-pred span>sc-predGenerally span>sc-predt2<lang-fctio>fctio>hss=lss="ed" ar'>eq_ksspan>< sspan><->dwhitedfstar'> sspan><->149"ksspan>< fstar'> sspan><ksspan><Typesspan>)sspan>< kstar'> sspan><ksspan><<<< id="sec-predicate-transformers-wp alass="isectio> sectio>2 data-line="9n dlass="'tstar'> t2star'> sspan><sc-pred span>sc-predtimg srcNRQffAxYTJwmgF2EhAAAC5BZwQWcAAAn2AAAM5ABwic1SAAAABxOSkATCAYh001DW21BVva302BIWXMva37Ee4D2xAGVKw4bVva3W0tBZzwIx+2VwQmAMBAEZyUFiHZiDTZpLSkhNWgNdrB+LMGcEG7g3gMLw8k2kmZgoTO2L4ADcNCdAjZgB1b6U2WbSCaCSeHnFGDsDssrvIMWbdlhCrPD3/9hewBb5WwZSmCUowox{\it in}~e_2 : M~t_2~(M$\equiv$6VIAAAAHdElNRQffAxYTJwmgF2EhAAAC5BZwQWcAAAn2AAAM5ABwic1SAAAABxOSkATCAYh001DW21BVva302BIWXMva37Ee4D2xAGVKw4bVva3W0tBZzwIx+2VwQmAMBAEZyUFiHZiDTZpLSkhNWgNdrB+LMGcEG7g3gMLw8k2kmZgoTO2L4ADcNCdAjZgB1b6U2WbSCaCSeHnFGDsDssrvIMWbdlhCrPD3/9hewBb5WwZSmCUowox{\it in}~e_2 : M~tatordfspan>Typesspan><sc-pred span>sc-predt2<lang-fctio>fctio>hss=lss="ed" ar'>eq_ksspan><< sectio>2 data-line="9n dlass="'tnametiocetstar'> t2/ksspan>< fstar'> sspan>< id="]ec-predi/2<sc-pred sc-predTitedconfstsion rule span>sc-predtimg srcNRQffAxYTJwmgF2EhAAAC5BZwQWcAAAn2AAAM5ABwic1SAAAAR9rDIBTCAYh00Dp/b+KVva302BIWXMva37Ee4D2xAGVKw4bVvaPwEtBZzw7U77V+3XiyBLGv5ozAbDeCFbOAO9EcCEDmI1gIQNzJgIfnAHeCNY4A9gIdiADNBFcIIO+f3T1pa2RkEAtrMf3O0dnMCP0KD2qqrseYowBIYQQQqpDRCIAe2PMsS7H9ImXhRBCCKlU+Q8A7AAcRGREA4AQQgjpBjPv85AGACHd8gBGIjKnJAjp3LPfAzDwvlrRACAk/IO2FBETegl0eFMAE14lQjqHr/xjY8xbXQ7sM68NaREzAE8A7gBEAOYAet7/r/W7fcpv73TdLwBG+ntnWETGmDjA8fV4iQjpHH94n2s1CijMAiAtHhGYAFh4X42LWt+J3w6NMeuSx7ICMDDGCK/Mh90PS/XGxmWvJ2VGuRSVizeKeDTG/FKn8+AUAGkz+2t/aIx5wSlwJ6IoG//CHsCO7PQA9CkRyuwWctF1HS91OxcaAIRkGwHPAI4A7imNxuNHXtOTpcxuJZex9/mJBgAhzeKVIwCtYOAZdluKgzK7kVy+Ou+/TgWAaAAQUowNDYBW0KcnS5ndUi5a+c8F/tYyBZgGACHn+U4DoNkk5mFXlAhldiO5uIp/60BZRMFhGiAhZzDGbLWQB2kunMuumcz0mbq7wfMbf6BcXPrfrK4XmQYAIZc99KR5cC67RjITkQVuVBRLRGJjzP2t5aIGTh/Ats73HA0AQvK9iM55jVoHYagvMeepfQcwDykPLY88ARDD5lTHJbe3w5kpm5TKjs/GmFmX7+8PkNkCtjHOrzc4vdUHycUF/z3V+drTACCE+C+1RwDfYGsoLAD86aKXtYvZUkSeNEWy7L4GAB71zz6AJYCHkpsdJl7afZwCsF50H469Gh5d56YyU49423K5xADe6lT2lwYAIR+vYEMVVIlDphVpxPJSX3Jvxphxyov7TUSg6z0H2G2U8/c1yiX2X8Qi4k/fLDgFQJndQi46Slb7kUMaAITclk1IeyKg8t/ApiylKv+EZxOqP8Ir3vdrqKJSGuf/KTPKhQYAIbUgxHzzEYGGrjVYySn/Y47yB2xk8zFEdLUx5igiv0FjACoaLmUuO2VGudAAIOTjCTF3HhjfA5/lGAsT2Dn7YUB5HBFmOiHteJnLTplRLjQACCEpL7UI79OxXlP+P1LPZ6pfDxuUFcH8/5rKrIF1AFp5L9EAIKS7TBN/bzTIzyeGjdieNjAdknPZNZRZQ+sAtPJeogFASHcZeZ9nNZyeKAvnsuspswVsHMst+Jf3Eg0AQsjP+Gl3rfKQE+mWS17q+<<Typesspan><802n dlass="'to159dwhitpan>sc-pred i/section>

span>sc-predLambdas and applr'>tions at hitedlevel cn> span>sc-predMeaningless hitedexpressions: span>sc-predt2<lang-fctio>fctio>hss=lss="ed" ar'>eq_ksspan>< sspan><->n dlass="'tstar'> boolec-predipan><<< id="sec-predi/2<sc-pred doesnipan>sc-pred'ipan>sc-predsspakIasore tense thn>sc-predt2<lang-fctio>fctio>hss=lss="ed" ar'>eq_ksspan>< sspan><->149"sc-pred span>sc-predKinds:sc-pred“pre hites of hites”ipan>sc-pred sc-predSimple kinds (STLC onedlevel up) span>sc-predt2<lang-fctio>fctio>hss=lss="ed" ar'>eq_ksspan><ksspan>< sspan>< sspan><<ksspan><<<sc-pred span>sc-predt2<lang-fctio>fctio>hss=lss="ed" ar'>eq_ksspan><sc-pred: (aka.sc-pred“timg srcNRQffAxYTJwmgF2EhAAAC5BZwQWcAAAn2AAAM5ABwic1SAAAABAOSkATCAYh001ZZ43PVva302BIWXMva37Ee4D2xAGVKw4bVva3+0tBZzQ4y52TYRGDMAxGX6agNwmVgIZKmIZJwAMS0IAENCCBSRhzkP1YykKPwh3c9aDN9702CRVV5egRkaCqn1r8dmLugEVE0iUA0Ng7XgW87P0+BIhIqMQ/BWhTG4CbiETLcy/XuQBlc2ueCSa306A2OlXFuvMA1M0DMDrtgAs+HWiywqUMsG8fT6rKCihAcz6NmXqbj9m46ktAcXy/Y7Orq5iTmdSNHoiHANt1Wgv0z7txaQ0e5I2z2+3pTuK7MDjNmP/Uxi3OG/qvoAqEsrU2Fk/udmrRmjAW69E8bbULJuwMkGqas8uUb2G4ehuz8V5VnKSQLNdQ03wBDchFGCB0I04AOSkASUVORK5CYIIM~t_2~(M$*$6VIAAAAHdElNRQffAxYTJwmgF2EhAAAC5BZwQWcAAAn2AAAM5ABwic1SAAAABAOSkATCAYh001ZZ43PVva302BIWXMva37Ee4D2xAGVKw4bVva3+0tBZzQ4y52TYRGDMAxGX6agNwmVgIZKmIZJwAMS0IAENCCBSRhzkP1YykKPwh3c9aDN9702CRVV5egRkaCqn1r8dmLugEVE0iUA0Ng7XgW87P0+BIhIqMQ/BWhTG4CbiETLcy/XuQBlc2ueCSa306A2OlXFuvMA1M0DMDrtgAs+HWiywqUMsG8fT6rKCihAcz6NmXqbj9m46ktAcXy/Y7Orq5iTmdSNHoiHANt1Wgv0z7txaQ0e5I2z2+3pTuK7MDjNmP/Uxi3OG/qvoAqEsrU2Fk/udmrRmjAW69E8bbULJuwMkGqas8uUb2G4ehuz8V5VnKSQLNdQ03wBDchFGCB0I04AOSkASUVORK5CYIIM~tatordfspan>Typesspan><sc-pred) pre kind of span>sc-predtem>pr didspan>sc-pred hites (likIaspan>sc-predt2<lang-fctio>fctio>hss=lss="ed" ar'>eq_ksspan><sc-pred,aspan>sc-predt2<lang-fctio>fctio>hss=lss="ed" ar'>eq_ksspan><<sc-pred) span>sc-predt2<lang-fctio>fctio>hss=lss="ed" ar'>eq_ksspan><ksspan>< sspan>< sspan><sc-pred: hited didnt"is (likIaspan>sc-predt2<lang-fctio>fctio>hss=lss="ed" ar'>eq_ksspan><sc-pred and span>sc-predt2<lang-fctio>fctio>hss=lss="ed" ar'>eq_ksspan><sc-pred) span>sc-predt2<lang-fctio>fctio>hss=lss="ed" ar'>eq_ksspan><ksspan>< sspan>< sspan><<ksspan>< sspan>< sspan><sc-pred: hwo-argumdla hited didnt"is (likIaspan>sc-predt2<lang-fctio>fctio>hss=lss="ed" ar'>eq_ksspan><sc-pred) span>sc-predt2<lang-fctio>fctio>hss=lss="ed" ar'>eq_ksspan>< sspan><->n dlass="'toke dwhitedfstar'> sspan><<ksspan>< sspan>< sspan><eq_ksspan>< sspan>< id="sec-predicate-transformers-wp alass="isectio> sectio>2 data-line="9dlass="'toke dwhitedfstar'> sspan>< sspan><sc-pred: hss=er-s=""'t didnt"is (likIaspan>sc-predt2<lang-fctio>fctio>hss=lss="ed" ar'>eq_ksspan><sc-pred) i/section>

Well-hiteddexpressions spassped hites

span>sc-predtimg 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19V25cmVZygMAQKkhfwkAgLZv387+cHV15Rby+fwZM2bcvn371atXly9fPnHixIMHD1atWkVEaWlpO3fuLLgHMzMzxf9iAw3paPny5REREb179z5z5kxOTs779+/bt29fokv44IMPRo4cSURr1qzRPuNEia7rl19+OXbs2LFjx7799lu2xN/f/9j/GjhwYCnqXKlUHjt2bNy4cWyfHTt2LLh206ZNLBhwcXFJTU29ePHilStXUlJSPvnkEyJatWpVWFhYWcoDAEDpqYpGRO7u7ioAgBohIyODfe/5+flxC5VK5ZEjR8zMzIjIxsYmIyND+04UCoWJiQkRzZo1S3tJFj9MmjRJS5mCwz15e3srFApuFcvnSU9P134Udlv8+eefq1SqhIQEIyMjIlq8eDFby3on9+7du9jKKfa6Dhw4wM7z4sWLpaj8Xbt2sc2HDx8+duzYAQMGNG/enIg6duwYFRWlVjgrK4u1gTRp0uT9+/cFV71584ZVbKtWrbjqKml5TXv27GGnd/36dXxSa30YkJAQIkpMTFRbjvYHAKh1YmNj16xZs2TJkvHjx3fu3Hno0KHv37+3srI6ceKEWkqSJiMjo8aNGxORVCrV4ym5ublt3LiR3f0zV69efffunS6dHzjt2rWbOHEiEW3cuJGlRemunK5L08GDB3fv3h0VFcW6ebRr187Y2FgtTSsuLo41ocyaNcvU1LTgqvr160+ZMoWIHj9+zCVWlbQ8AACUBfo/AECtc+bMmTNnznD/siFcly9frtYtmCOXy588eZKcnJySkqJQKLKzs4lI98GRdDFhwgS1eevU7oN19P333+/evVsmk61cuTIgIEB74Qq4Lk3Xr19v3bp1UlLS7du3f/311yNHjhw5csTd3T0oKIjP57My9+/fZ390795dcw8sJYkVE4lEpSgPAACIHwAASmDAgAGurq6mpqZ2dnatW7du3rw5j1f4l+GTJ0+2bNmyffv26jISaLNmzWbMmLF+/frAwMB58+YVVaxyr8vc3NzR0dHR0XHUqFG7d+8eN25cWFiYXC4/ePAgK8CNostynNRwC7liJS0PAACIHwAASqBr164zZ84sttjp06eHDRsmk8maNWs2efLkTz75RCAQWFhYDBw4MCUlpcpe3aJFi4KCgrKyspYtWzZ06NAqfl1jx469du3apk2bDh069Pfff3/66af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" alt="kinds0" data-path="img/kinds0.png" data-linkid="kinds0">

Functions get arrow types Non-sense expressions get no type

Type operators

kinds1

Proper types get kind Type ($*$)

kinds2

Type operXTors get arrow kinds

kinds3

And non-sense types get no kind

Kinding rules (remember STLC?)

    G |- ok
------------- [K-Var]
G |- a : G(a)

G, a:k |- t : k'
--------------------------------- [K-Abs]
G |- (fun (a:k) -> t) : (k -> k')

G |- t1 : k -> k' G |- t2 : k
-------------------------------- [K-App]
G |- t1 t2 : k'

G |- t1 : Type G |- t2 : Type
---------------------------------- [K-Arr]
G |- t1 -> t2 : Type

Type equivalence (conversion)

((fun a : k -> t1) t2) $\equiv$ t1[t2/a]  [Eq-Beta]

t $\equiv$ t'
-------------------------------- [Eq-Lam]
(fun a:k -> t) $\equiv$ (fun a:k -> t')

t1 $\equiv$ t1' t2 $\equiv$ t2'
--------------------- [Eq-App]
(t1 t2) $\equiv$ (t1' t2')

t1 $\equiv$ t1' t2 $\equiv$ t2'
--------------------- [Eq-Arr]
(t1->t2) $\equiv$ (t1'->t2')
t $\equiv$ t  [Eq-Refl]

t $\equiv$ s
----- [Eq-Symm]
s $\equiv$ t

t1 $\equiv$ t2 t2 $\equiv$ t3
------------------- [Eq-Tran]
t1 $\equiv$ t3

Typing rules for $\lambda^\omega$

G |- ok
------------- [T-Var]
G |- x : G(x)

G, x:t |- e : t' G |- t1 : Type
---------------------------------- [T-Abs]
G |- (fun (x:t) -> e) : (t -> t')

G |- e1 : t -> t' G |- e2 : t
-------------------------------- [T-App]
G |- e1 e2 : t'

G |- e : t t $\equiv$ t'
------------------- [T-Conv]
G |- e : t'
. |- ok  [G-Empty]

G |- t : Type x not in dom G
------------------------------- [G-Type]
G, x:t |- ok

a not in dom G
-------------- [G-Kind]
G, a:k |- ok

$\lambda^\omega$ = STLC with type operators

Metatheory of $\lambda^\omega$

Projects

  • How many people? How many teams?

  • Anyone who already found a potential topic?

  • We also have a long list of potential topics

    • from which you can choose based on your interests