Top Banner
89

Proof-Assistants Using Dependent Type Systems

Apr 25, 2023

Download

Documents

Martijn Koster
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Proof-Assistants Using Dependent Type Systems

����������� �

���������������������� ���!" ��$#%����!'& (*),+-),!%.'),!" 0/213+-)4 13�5 �),6 �

798;:=<?>A@�BC8;:ED=BC8GFIH

7J8;BLKM@�:'N,8;OEPI8;BLQ

R�SUT�VXWYTZV\[]_^I`\aLacbZdXegfhdXiYjlkgm?nononononononon=nononononononon=nonononononononon=nononononononononEnonononon pq2rIsLtufwvyx\egfhaz`{fwx\jld|kCacx{jlazkg}~b�az`�tC`{aYacb�dXegfhdXiYjlkgm�n=nonononononononon=nononononononononEnonononon �qCnl]2^�`{aYacb�dXegfhdXiYjlkgm�����x{eCf�����x\jld��c�;}�xX��x\fh��f�k�x\}�nononononononon=nononononononononEnonononon �qCn q�^�`{azt�az}{j x\jlazkg}��c}�x�sLt�fh}�n=nononononononon=nonononononononon=nononononononononEnonononon �qCn p��Z�g�c��tg�lfh}~acb�tg`\aLacb�}��c}�x\fh`{��}�nonononon=nonononononononon=nononononononononEnonononon �qCn ����k�x{fh`\��f��h�hag�U��azmzjld��c�;b�`X�c��fw��az`\iL}~nononon=nonononononononon=nononononononononEnonononon ]�qqCn ���U�gkCdhx\jlazkg}����c�lmzaz`{j x\eg��}���fh`{}{�C}�mz`{�ctgeg}�n=nonononononononon=nononononononononEnonononon ]��qCn � �L�C¡C¢�f�dwxE£�fh¤g�Cdhx\jlazk�nonon=nononononononon=nonononononononon=nononononononononEnonononon ]��qCn ¥�¦§azk���f�`\}{jlazk��ckg¤�¦§az��tg�Cx{��x\jlazk¨nonononon=nonononononononon=nononononononononEnonononon ]��qCn ����©L�U�c�lj x�s�nonononononononon=nononononononon=nonononononononon=nononononononononEnonononon qzªqCn � ¦§azkgkgfhdwx\jlazk�¡�fhx��§f�fhk��lazmzjldo�ckC¤�x�sCt�f=x\egfhaz`\s�nonononononon=nononononononononEnonononon q�¥

p2rIsLtuf�}�sC}�x{fh��}�b«az`�tC`{aYacb�d{egfhdXiLjlkCm¬nononononon=nonononononononon=nononononononononEnonononon pzqpCnl]®­�jlmzegfh`�az`\¤gfh`~tg`{fh¤gjld���x\f¯�lazmzjld�nononononon=nonononononononon=nononononononononEnonononon pzppCn q�­�jlmzegfh`�az`\¤gfh`�x�sCt�fh¤�°gv�d��c�ldh�g�l�g}=nonononon=nonononononononon=nononononononononEnonononon p�¥pCn p�^��g`{f=r�sCt�f|�YsL}\x\f���}±non=nononononononon=nonononononononon=nononononononononEnonononon ���pCn ��^�`{azt�fh`\x\jlf�}~acbZ^I�C`{f=rIsLt�f|�YsC}�x{fh��}�nonon=nonononononononon=nononononononononEnonononon �C]pCn ���Z�Lx\fhkg}{jlazkg}�acbZ^I�g`\f=rIsLt�f²��sC}�x{fh��}�non=nonononononononon=nononononononononEnonononon �c�pCn ��^�`{aY¤g�gdwx{}��ckg¤��L�g��}³non=nononononononon=nonononononononon=nononononononononEnonononon �c�pCn ¥�´Ivyx�sLt�f�}µnonononononononon=nononononononon=nonononononononon=nononononononononEnonononon �z�pCn ����kg¤C�gdwx{j ��f�rIsLt�f�}¶nononon=nononononononon=nonononononononon=nononononononononEnonononon ��¥

�®^I`\aLacb·v�¤gfw��fh�laztg��fhkYx�jlk5x�sCt�fo}\sL}\x\fh��}Enonononon=nonononononononon=nononononononononEnonononon �zp�gnl]2r��cdwx\jld�}±nonononononononon=nononononononon=nonononononononon=nononononononononEnonononon �zp�gn q��Z�g�c��tg�lfh}~acb�^I`\aLacbZ¸�fh��fh�laztg��fhk�x'nonon=nonononononononon=nononononononononEnonononon �z��gn p�¹��CxX�c`\iLjld¯¦§az��tg�LxX��x\jlazkg}�nononononononon=nonononononononon=nononononononononEnonononon ¥cq

�2^I`\aLacb��c}{}\jl}\x{�ckYx\}ºnonononononon=nononononononon=nonononononononon=nononononononononEnonononon ¥���Cnl]»¦§az��tU�c`\jlkgm|tC`{aYacb�v¼�c}\}{jl}�xX�ck�x{}½nononononon=nonononononononon=nononononononononEnonononon ¥c��Cn q�¹�tgtg�ljld���x{jlazkC}�acb�tg`\aLacb·v¼�c}\}{jl}\x{�ck�x{}�nononon=nonononononononon=nononononononononEnonononon ¥c�¾ jl¡g�ljlazmz`X�ctCeYs¶nonononononononon=nononononononon=nonononononononon=nononononononononEnonononon �C]��kg¤gfw�±nononon=nonononononononon=nononononononon=nonononononononon=nononononononononEnonononon �z�¿ �c��f=jlkC¤gfw��n=nonononononononon=nononononononon=nonononononononon=nononononononononEnonononon �z�r�aztgjldojlkg¤gfw�Jn=nonononononononon=nononononononon=nonononononononon=nononononononononEnonononon �z�

À=Á=ÂEÃoÄEÅ�Å=ÆMÅoÇ9Á�È=É=ÅoÊ�ÁIÉ�˧Ã�ÌEËIÁ�Í�ÅoÂEÎ\Â�Ï�I¤Cj x{fh¤�¡�s5¹E�Ð�ck�£�az¡gjlkC}{azk��ckC¤�¹EkC¤g`{fhjGÑ�az`{azkCizaÒ�dÓ ���l}{fw�Cjlfh`��Ldhjlfhkgdhf�^I�g¡g�ljl}\egfh`{} ¾ n ѲnlÔCqzªzªC]

Page 2: Proof-Assistants Using Dependent Type Systems
Page 3: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� &

'�(*),+�-.-�/10#24350 6.798;:

<>=@?A?�B>CEDGF CEH5IKJGLMC?�JONPIQNSREN1?�BTRPDGFVU�WXR@?�YZU�R@F�[]\�F=@I_^`C�U�R@Ia?�J]?�B>YZU�R@DGFYZU�R@IKC�U�b;RPDGF�?�=@IaF N1cAd^O=ENSReBfWObabKdMBf?�=PYZU�baIKgIKJGL*RPDOF�WGJO[XF�=PbKdAIaJGLZhO=PIKY*I_R@Ia\�F�JG?�R@Ia?�JON�iXRPDGF�[GFj^OJGIaRPIK?�J`NiORPDGFkU�lXIa?�Y*NU�J`[MR@DGF�hG=@?A?�BmN�nGopDGFJqR@DGFk[XF^OJGIaRPIK?�JONrU�=@F,CEDOF�CEH�F [sBf?�=eRPDOFIK=1tuF�babav"Bf?�=@YVF [XJGF NPNeU�JO[wRPDGFhG=@?A?�BmNxBf?�=1RPDGF�Ia=rC?�=@=PF C�R@JGF�N@NiXU�bab%R@DGIQN1teIaRPDGIKJ]U*L�IK\�FJybK?�L�IQC�nOz JwR@DGIQNetxU#dwU*DGIaL�D][XFL�=PF�F?�B{=@FbKIKU�cGIabKIaRSdZIKNe?�cXR@U�IaJOF�[%n

| B�RPF�=sU}CF=PR@U�IKJ~bK?�L�IKCMIKN*CEDG?5N�F�J��fF�n L`n�CjbQU�N@N�IQCU�bubK?�L�IKCM?�=VIaJ5RPWOI_R@Ia?�JGIKN�RPIQCyba?�L�IQC��;^O=ENSRPv@iNPF�Cj?�JO[Av�?�=*DGIKL�DOF=Pv"?�=@[XF�=kbK?�L�IKC ��R@DGF=@FyU�=PFqN�RPIKbab1NPF\�F=EU�bxtxU#dXN�IaJ�teDGIQCED�U}RPDGF�?�=@d�CU�Jc�F�[XF�\�F�ba?�h`F [%n5opDOF��xU�J�R@?�=Pv��rIabKc�F=PR�v �u?�WG=@cOU�HAIGN�RSd5bKFrIQNuRP?�WON�F�N�FR�v"RPDGF�?�=@d�iANPU#ds��F�=PY*FbK?�v�G=EU�F�JGH�F�b`NPFjRPv9R@DGF?�=Pd�teI_R@DsRPDOF!U�lXIK?�Y�?�B�CEDG?�IKCFeBf?�=@YZU�bKIag�F�[*IKJZ^O=ENSRPv"?�=@[GF=TCbKU�NPNPIKC�U�b`ba?�L�IQC�"�%�4�p�P��n�z JO[GFF�[.i.RPDOFsL�=@F�U�R�U�R�R@=@U�C�RPIK?�J�?�BpNPFjRPv9R@DGF?�=Pd�IQN�R@DGFZBmU�C�R�RPD`U�RM� T}��� � T�� � ����W I_RCU�Jkc�FpWON�F [�R@?rBf?�=PYZU�baIKgFxY*?�N�R4YZU�R@DGFYZU�RPIQCU�bAJG?�RPIK?�JON�n��xWXR�N�FR�v"RPDGF�?�=@d�DOU�N{U�N4F NPNPFJ5RPIQU�bhG=@?�cGbKFY�RPDOU�RrIaR�CU�JGJG?�RrCU�hGRPWG=@F�Cj?�YVhOWXR@U�RPIK?�JONe\�F=@dMtxFbKb9n%�u?�Y*hGWXREU�R@Ia?�JON1U�=@F�JGF�F�[XF [Bf?�=1U�hGhGbKIKC�U�R@Ia?�JONp?�B4RPDGF�?�=@IaF NeU�JO[A��U�NptuF,teIKbab�NPFF�bQU�R@F=���U�bKNP?�Bf?�=ehG=@?�\AIK[XIKJGL*hG=@?A?�BmN�nXz Jc�?�RPD�CU�NPF�NrtuF�txU�J5R�i`N@U#dwBf?�=,U*BfWGJOCjRPIK?�J����Gz  �¡�z  ki`R@DOU�R!Bf?�=!J5WOYkc�F=ENr¢�£P¤�¥%z  ¦N�W`CEDRPD`U�R��{�f¢���§¨¤�i�tuFsC�U�J�^OJO[�UyBf?�=@YZU�b�hG=@?A?�Bp?�B1� �f¢ ��§©¤ i.teDGF�=PF*R@DGFZWGJO[GF=@baIKJGIKJGL�NN�R@U�J`[]Bf?�=,=@FhG=@F�NPFJ5REU�RPIK?�J`N1IKJ}R@DGFVRPDGF�?�=@d�n | baRPDG?�WGL�D}RPDGIQN,IQNrR@DGF?�=PFRPIQCU�babKdqh`?5NPNPIacObaF�Bf?�=NPFjR�v"RPDOF?�=@d�i�� Ts���Pª���V � �cW RPDOIKNeYZU#dZJG?�Rec`F,BfF U�NPIacGbKF�nGopDOIKNpIQNpc`F CU�WON�F�U*Cj?�Y*hGWXR@U�RPIK?�JwDOU�NRP?�c�F}C?A[GF�[«IKJ«NPFjRPv9R@DGF?�=Pd¬U�NsU�NPF�­5WGF�JOCjF]?�B�NPFjRENZc�FIKJGL�U�Bf?�=@YZU�br[XF NPC=PIKhXR@Ia?�J�?�B,UCj?�Y*hGWXR@U�RPIK?�JyhOU�R@D��mCj?�JONPF�CjWGRPIK\�F�NSREU�R@F�NE�uU�CC?�=E[XIaJOLkR@?sN�?�YVF�C?�Y*hGWXREU�RPIK?�J`U�b%Y*?X[XFb"n

oTdAh�F!R@DGF?�=PdZhO=PF N�F�J�RENuUVh�?�tuF�=�BfWOb`Bf?�=PYZU�b�NPdXNSR@FY©R@DOU�R1CU�hXRPWO=PF Nuc�?�R@DMR@DGF,JG?�R@Ia?�Jw?�B�cS�®r��¯�V ªUV � SUT �m\5IQUkRPDGF�IKJOCjbKWONPIa?�Jw?�B�BfWGJ`C�RPIK?�J`U�b%hG=@?�L�=@U�Y*Nute=@I_RPRPFJyIKJwRSdAh�F�[q°Xv CU�bKCWGbKWON@�U�J`[�?�B ����SLS�± �m\5IQU¬RPDGF�NP?«CU�bKbKF�[³² Bf?�=PY�WGbKU�NSv U�N�v"RSd5h�F�NMFY�c`F [G[XIKJGLO´KieteDGF=@F�RSdAh`F N]U�=@F\AIaF�tuF [qU�NehG=@?�h�?�NPIaRPIK?�JON1U�JO[wRPF�=PYZNrU�NehG=@?A?�BmNE��n | NrU*YZU�RPRPF=r?�B{BmU�CjR1RPDGF�=PF�U�=PF�\�U�=PIK?�WONRSdAh`F*R@DGF?�=PIKF�N�i�C�U�hXR@WG=PIKJGLq\�U�=@Ia?�WON,JG?�RPIK?�JON,?�BeC?�Y*hGWXREU�R@Ia?�J��mF�n LOn.hG=@IKYVIaRPIK\�FZ=@F�CWG=EN�IK?�J.i=@F�CjWO=@NPIa?�Js?�\�F�=TDGIKL�DOF=xRSdAh`F N@�xU�J`[s\�U�=@Ia?�WONuba?�L�IQCU�b�NPdAN�RPF�YZN��mF�n LOn5^O=ENSRp?�=E[XF�=�i5DGIKL�DGF�=x?�=�v[XF�=E�jn�z JZR@DGIKNuU�=PRPIQCjbKF1txF1teIabKbOJO?�RuU�R�RPF�Y*hXRTR@?k[XF�N@Cj=@IKc`FrU�babORPDGF�[XIaµ�F�=PF�J�Ruh`?5NPNPIacObaFrCEDO?�IQCjF�N?�B�RSd5h�F!RPDGF�?�=@IaF Nn5z JON�RPF�U�[stxF!tpU�J5RuRP?*[XIKN@CjW`NPNuRPDOF!YZU�IKJMWOJO[XF=@bKd5IKJGL�IK[XF U�N�iAteI_R@DwUVN�h�FjvCjIQU�b�Bf?XCjW`Nu?�JsR@DGF!W`N�F�?�B.RSdAh�FrR@DGF?�=PdsU�N>R@DGF�Bf?�=@YZU�bKIKNPY�Bf?�=xRPDGF,[XF NPC=PIKhXRPIK?�Jw?�B.R@DGF?�=PIKF�NIKJOCjbKWO[XIKJGLZhG=@?A?�BmN�n

¶ JOCjFTUeRPDGF�?�=@drIQN%Bf?�=@YZU�bKIag�F�[%i�I_REN�C?�=@=PF C�RPJOF�[email protected]�J�c�FT\�F=@I_^`F�[,cAd!U1NPYZU�bKb�hG=@?�L�=@U�YqiERPDGF����SLS�±1�@·ZW@�E¸GWj� n��xWXR{IaJ�?�=E[XF=�RP?!Y*U�H�FTRPDGFuBf?�=@YZU�bKIag U�RPIK?�JkhG=P?XCF�N@N%BfF�U�N�IKcGbKF�i�U�JkIaJ5RPF�=@U�C�R@Ia\�F����SLS�±E¹�ºuW»gW��S@��®AWYTZV�[E¼g[zVwWj® IQN1JGF�F�[XF [%n`opDGIQNeIQNrU*hG=@?A?�B�FJA\AIK=P?�JGY*FJ5RpRPDOU�R!NSREU�JO[ON1JGFl5RRP?*R@DGF�hG=@?A?�B�v CEDGF�CEH�F=eU�J`[qDGFbKhONpR@DGF�DAWGYZU�JqR@?s[XF\�FbK?�hyRPDGFkhG=P?A?�BmNnOopDOFkCj?�YkcGIKJOU�R@Ia?�J?�B4U�hG=@?A?�B�v [XF\�FbK?�hGY*FJ5RuNPdXNSR@FY½U�JO[sU�hG=P?A?�B�CEDGF�CEH�F=TIQNxCU�bKbKF�[MU ���ÒSCSS±E¹�ªU[c[ � [zV ªUT�V nO¾AW`CEDUVCj?�Y�cGIKJOU�R@Ia?�JsIKNp[XIaµ�F=@FJ5RpBf?�=@Y½UZ² RPDGF�?�=@FY¨hG=@?�\�F�=�´Kn5opDOIKNxIQNxUVCj?�Y*hGWXRPF�=eN�dXN�RPFY©R@DOU�RU�bKbK?�t1N>R@DGF!W`N�F�=TR@?VCEDGF CEHVRPDGF�\�U�bKIK[XIaRSdZ?�B;Y*U�RPDGF�YZU�RPIQCU�bOR@DGF?�=PF�YZNTcAdZL�F�JGF=EU�R@IaJOL�RPDGF�YU�WGRP?�YZU�RPIQCU�bKbKd�n ¶ B�C?�WG=EN�F�i#Bf?�={hG=@?A?�B�v U�N@N�IQNSREU�J5R@N�RPDOFeFJO[�L�?5U�bAIKN�U�bKNP?!RP?,hG=@?�\�FuRPDGF�?�=@FYZNn�xWXR>R@DGIKN>IKNTJG?�RT[X?�JGFecAdkIKY*hGbaF�Y*FJ5RPIKJGLkU,JAWGY�c`F�=>?�B%N�YZU�=�RTU�baL�?�=@I_R@DGYZNe�fbKIaH�Fe=PF N�?�baWXR@Ia?�J?�=ucGIKJOU�=@dZ[XF�CIKNPIa?�JM[XIQU�L�=@U�Y*NE��i�cGWXRpcAdVbKFjRPRPIKJGL�R@DGF�WON�F�=uL�FJGF�=@U�RPFrU ���ÒSCSS± iXIKJ5RPF=EU�CjRPIK\�F�badteIaRPDwRPDGF�NPdAN�RPF�YqnO¾A?Oi5RPDOF�WON�F�=p?�B�hG=@?A?�B�v U�N@N�IQN�R@U�J5RENTIQNx\�F=@dZYkW`CEDMIKJyC?�J5RP=@?�b"�Ac5dZY*F U�JON

¿PÀ `�tufh`\eU�ctg}�}{az��fE}�x{`\azkgmzfh`���f�`\}{jlazkg}���j x\e��Ð�c`\mzf=d��c`{¤gjlkU�c�l}�ÔCfzn mgnLb«az`§x\egf=b�az`{���c�ljl����x{jlazk�acb�d���x\fhmzaz`\sx\egfhaz`\s

Page 4: Proof-Assistants Using Dependent Type Systems

� À��GÄ.�������������������� À��;Ï{�����������?�B�² R@U�CjRPIQCN�´>��R@DOU�RkU�=PF*IKJGhGWXR�R@?yRPDGFsNPdXNSR@FYs�,UqN�?�v�C�U�bKbaF [�² hG=P?A?�B�v9R@F=@Yy´%IQN�C=PF U�RPF [�R@DOU�RCjbK?�NPFbKdZCj?�=P=@F�NPh`?�JO[GNTRP?*U�N�R@U�JO[GU�=@[ZYZU�RPDGF�Y*U�RPIQCU�b�hO=P?A?�Bx�fIKJwJOU�RPWG=EU�b�[XF [XWOC�R@Ia?�JyN�RSdAbaF#��n

�G?�=*YZU�CEDOIaJGFyU�N@N�IQN�RPF�[�RPDGF�?�=@FY hG=@?�\AIaJGL��f\AIQU�U�WXRP?�Y*U�RPF [�RPDOF?�=@FY hG=@?�\AIaJOL}?�=V\AIKUIKJ�R@F=EU�CjRPIK\�F*hG=@?5?�BxL�FJGF�=@U�RPIK?�J�?�=�U]C?�YkcOIaJOU�RPIK?�J�?�BxRPDGFsRStu?A�!RPDGFZYZU�IKJ�L�?5U�b�IQN,RP?]IKJXvCj=@F�U�N�F�R@DGF�=@FbKIKU�cGIabKIaRSds?�B�YZU�R@DGFYZU�R@IKC�U�b.=@F�NPWGbaR@N���n��1?�WGL�DGbadMRPDGF�=PF�U�=PF�RStx?Z=PF U�NP?�JONxteDAdYZU�R@DGFYZU�R@IKC�U�b`=PF N�WGbaR@NTYZU#d�c�F�[GIsCjWOb_RuRP?k\�F=@I_Bfd�n�opDGF1^O=@N�RuIQN �cS�®1����W�� � V"¼ �5RPDGF!hG=P?�cGbKFYIQNT\�F=@d�cGIKLOi�RPDOFrJAWGYkc�F=x?�B�C�U�NPF�N>RP?�c�F�[GIKN�RPIKJGL�WOIKNPDGF�[sc`F�IaJGL�\�F�=PdVbKU�=PL�F�i�FjR@CFjR@F=EUGn�opDOIKNIQN!UwN�IaRPWOU�RPIK?�J]R@DOU�R,?�JOFk?�B�R@FJ�FJOC?�WGJ5RPF�=@NrIaJ�Cj?�Y*hGWGRPF=,N@CjIKFJOCF�i�teDGF=@F�i`F�n LOn�IaJ�UshG=@?�vRP?XC?�b.?�JGF�DOU�NeRP?sL�?�R@DG=@?�WGL�DqU�bab�h`?5NPNPIacObaF�N�R@U�RPF�Nr?�B�UZN�dXN�RPF�Yyn`opDGFkNPF�Cj?�JO[yhG=@?�cGbKFY IKNºuW �IVf· �ORPDGF,hG=@?�cObaF�Y½IKN1\�F=@ds[XF�Fh.iX\�F=@dMCj?�YVhObaIQCU�RPF�[.nGopDGIKNpIQNeU*N�IaRPW`U�RPIK?�JyR@DOU�ReIQNeY*?�=@F?�B�R@FJ�F�JOCj?�WGJ5RPF�=PF [qIaJ]hGWO=PF�Y*U�RPDGF�YZU�RPIQCN�iOF�n L`n`�OF=@Y*U�R�´ N1bQU�N�RrR@DGF?�=PF�Y IQNrU�J]FjlGU�Y*hGbKF�nz J}C�U�NPF�?�B �cS�®r���«W�� � V"¼ i�txF�YZU#dyFjlXh`F C�R�DGFbKh]Bf=@?�Y U�J�U�WXRP?�Y*U�RPF []=PF U�NP?�JGIKJGL*R@?5?�b9i`F�n LOnRP?*L�?kR@DG=P?�WGL�DyUVD5WOL�F,JAWGYkc�F=p?�B{CU�N�F NTR@DOU�R1F U�CEDwc5dsRPDGF�Y*NPFbK\�F NxIKNpF U�NPIabKdZ\�F�=PIa^OF�[.nXz JCU�N�F�?�B ºuW �IVf· iOU�JwU�WXRP?�Y*U�RPF [s=@F�U�NP?�JOIaJGLkRP?A?�b%teIKbKb%c`F,?�B4baIaR�R@baF,WONPF�iXcOWXRetuF,YZU#dZFjlXh�F�C�RNP?�Y*F�DGF�bah]Bf=@?�Y UZhG=@?A?�B�U�N@N�IQN�R@U�J5R1R@DOU�R�[X?AF�NeR@DGFkc�?A?�HAH�F�FhGIKJGLsU�JO[]hG=@F\�FJ5R@NeW`NeBf=@?�Y?�\�F�=@NPFF�IaJOLk[XFjREU�IKbKN�nXz JwRPDGF,bQU�R�R@F=eCU�N�F�iAtuF,Y*IaL�D5ReU�bKNP?ktpU�J5RxRP?*WONPF�RPDGF,hG=@?A?�B;U�NPNPIKN�R@U�J5RU�NpUkRP?A?�b�Bf?�=xFlXhGba?�=PIKJGL�JGFt�^OFbQ[GN�n | RuR@DGIKNpY*?�YVF�J5RpDO?�tuF�\�F= i�R@DGF=@F,IKNxJG?�Rxd�FjR1U�WON�F�=�vBf=@IaF�JO[XbKdwNPdAN�RPF�Y¨RPD`U�R1hG=@?�\AIK[XF NxY*U�CEDGIKJGF�U�N@N�IQNSREU�JOCF�Bf?�=1[X?�IaJGL*YZU�R@DGFYZU�RPIQCU�b%=@F�NPF�U�=@CED�n�xWXReRPDOF�h`?�RPFJ5R@IKU�b%IKNpR@DGF=@F�n

<>=@?5?�B.U�N@N�IQNSREU�J5R@NTcOU�NPF�[s?�J*RSdAh`F!RPDOF?�=@dVhG=PF N�F�J5RxU�L�FJGF�=@U�b`NPh`F CjIa^`CU�RPIK?�JZbQU�JGL�WOU�L�FeRP?[XF^OJGFZYZU�R@DGFYZU�R@IKC�U�b>JO?�RPIK?�J`N�U�JO[}Bf?�=@YkWObKU�Nn� ]?�=PF�?�\�F�=�i�IaRkU�bKba?�t1N�R@?�Cj?�J`NSR@=PWOCjRkU�bKL�?�v=@I_R@DGYZN1U�JO[yhG=@?A?�BmNeU�Nx^O=@N�R1CjbQU�N@NeCjIaRPIKgF�JONn`opDGF�U�[X\�U�J�REU�L�F�NpU�=@F�RPDOU�RrU*WON�F�=1CU�Jq[GFj^OJGFDGIQN{?�=�DGF�={?�teJVN�RP=@WOC�R@WG=@F�N4IaJZU�\�F�=Pd��`FjlXIacObaFptpU#d�i#IaJ`CjbKWO[XIKJGL,RPDGF��mFjlXF�CWXR@U�cGbaF#�;BfWGJOCjRPIK?�JONRPD`U�R!U�=PF�hOU�=�R1?�B{RPDGF N�FkN�RP=@WOCjRPWG=@F�N�nO�GWO=�R@DGF=@Y*?�=@F�� U�JO[wRPDOIKNrIKNrteDOU�R![GIKN�RPIKJGL�WOIKNPDGF�NeRPDGFRSdAh`FxR@DGF?�=PFRPIQCuU�hGhG=@?�U�CED�RP?!RPDGF�?�=@FY hG=@?�\AIaJOL1Bf=@?�Y Y*?�N�R4?�BOR@DGFp?�RPDOF={?�JGF N ��hG=@F�NPFJ5RPF [IKJqRPDGIQN!N�RSdAbaF�iXRPDOF?�=@FY hG=@?�\AIaJGLZC?�JONPIKN�R@N1?�B{RPDGFy�fIKJ5RPF=EU�CjRPIK\�F#�pCj?�J`NSR@=PWOCjRPIK?�Jq?�B>UZhO=P?A?�B�vRPF�=PYqi�� · � �E·��Eª�T��cW WEªU[ � �_¼}�@·ZW@�E¸GW@º � T�ºuW �ZW�T�ºuWYTZV"��¼ n.opDGF�NPFVIKN@N�WOF�N!teIabKb�c`F*[XIQNPCWON@N�F [�IKJY*?�=@F![XFR@U�Iab�c`F�ba?�t�n | L5U�IKJstxFrtpU�J5R>RP?Vh�?�IKJ�Rx?�WXRxRPD`U�RTRSdAh�FrR@DGF?�=PdVhG=@F�NPFJ5RPbKdZ[X?AF�NuJG?�RhG=@?�\AIK[XF�UZBmU�N�RrRP?A?�b.Bf?�=!U�WXR@?�YZU�R@F�[yRPDOF?�=@FY hG=@?�\AIaJGL`�XRPDOF=@F�IKNV�fIKJ]L�F�JGF=EU�b��pJG?�RrYkW`CEDU�WGRP?�YZU�RPIK?�J�U�J`[yRPDGFkBmU�C�RrRPDOU�R!FjlXhGbKIQCjIaR!hG=@?A?�B�v"RPF=@YZN1U�=@F�Cj?�JON�RP=@WOC�R@F�[]NPba?�t1N![X?�teJyRPDGFIKYVhObaF�YVF�J5R@U�R@Ia?�J.n | bKNP?sU�NrU*=PF N�F U�=ECEDMR@?5?�b.hG=@?A?�B�v U�N@N�IQNSREU�J5R@NeU�=PF,JG?�Rrd�FR1YZU�RPWO=PF�n`�1?�tpvF\�F= iGR@DGFdqhG=@?�\AIK[XF�UZ\�F�=PdyDGIKL�D�=@FbKIKU�cGIKbaIaRSd�i`c`?�RPD�c�F�C�U�WONPFk?�B�RPDGF�FjlXhGbKIKCI_R�hG=P?A?�B�v9R@F=@Y*NU�J`[VRPDGF�Ia=xtuF�babav�WGJO[XF�=@N�RP?A?X[VYVFR@U�v9R@DGF?�=Pd�n | JO?�RPDOF=TL�?A?A[*h�?�IKJ5RuIQN�R@DGFIK=TFlAhO=PF NPNPIa\�F��OFjlAvIKcGIabKIaRSd�n;�O?�=,BfWG=PRPDOF=�=@F�U�[XIaJOLy?�J�RPDGF N�FsIQN@N�WGF Ni%c�Fd�?�JO[�R@DGFMN@Cj?�h�FZ?�BxRPDOIKN��uD`U�hXR@F= i.tuFU�[G\5IQNPF�� �.WO?�������� �%?�=!�  1?�=@[GN�RP=#"?�YqiX<{FjR@F=ENPNP?�JyU�JO[q¾AY*IaRPD��$�%��& �"n

| JG?�RPDGF�=uh�?�N@N�IKcGbKFV�fBfWXRPWO=PF#�TU�hGhGbKIKC�U�RPIK?�JM?�B�YZU�CEDOIaJGF�U�N@N�IQN�RPF�[ZRPDGF�?�=@FY©hG=@?�\5IKJGL�IQNTRPDGF^OF�bK[}?�B �cS�®r��¯�VwWj��®*ª�V�·ZWj®ZªUV � ��[ n'�eIKL�D5R�JG?�t�i�C?�Y*hGWXR@F=EN!U�=PFkWON�F []IKJ�\�U�=@Ia?�WON1hOU�=�RENr?�BYZU�R@DGFYZU�R@IKC�Ni�JG?�R@U�cObadyBf?�=,Cj?�Y*hGWXRPF�=!U�baL�FcG=EUsU�J`[]JAWGY*F=@IKC�U�b�Y*FRPDG?X[GN�n'(TU�CED]?�BTN�W`CEDU�hOhGbaIQCU�RPIK?�JON!=@F�­5WGIK=PF NeRPDOFkBf?�=PYZU�bKIKg�U�R@Ia?�J]?�BTUyN�h�F�CI_^�C�hOU�=�R�?�BTYZU�R@DGFYZU�RPIQCN�i�C?�\�F=@IKJGLRPDOFp[G?�YZU�IKJk?�BORPDOFxU�hGhGbKIKC�U�RPIK?�J�n#o;?,DOU#\�Fu\�U�=@Ia?�WON;NPdXNSR@FYZN4IaJ5R@F=EU�C�R{teIaRPDVF�U�CED�?�R@DGF=�U�J`[teIaRPD�R@DGFMWONPF=ktu?�WGbK[�=@F�­5WGIK=@FMUqBf?�=@YZU�bKIag U�R@Ia?�J�?�B1N�WGc`NSREU�J5RPIQU�buhOU�=PR@Nk?�BeYZU�RPDOFYZU�R@IKC�Nn

) r�eCf�`\fA�c`\f }�sC}�x{fh��}ÒÔ~�ljlizf+*z¹E^��-, ]��z��¥�.�Ô0/���x{egt�fh`\x�, ]��z��¥�.²�ckC¤¨­~sCt�fh`{tC`{aYacb\Ô�}{fhf ¾ �c`\��jl}{f �ckg¤��x\dXegfh��fhkg¤Cs1, ]��z�z��.�Ô�x{eU��x eU����f����cjlkg� s �ck f�¤C�gd���x{jlazkU�c��mza��c���ckg¤ �c`{f5kgacx²mzfÒ�c`\fh¤Ax{a��~�c`{¤g}²tg`{a��Cjlkgm�Ð�c`{mzfo����x\egfh����x\jldÒ�c�Gx{egfhaz`\f���}�n�­�a���fw��fh`�x\egfh}{f¯}\sL}\x\f���}��c`{fodhaz��tU�c`{�c¡g�lfo}{jlkCd�fox\egfws��~�ck�x�x{a�tg`\fw��f�k�xx\egfhjl`��g}\fh`{}�b«`\az� fh`\`{azkgfhaz�g}�`{f��c}{azkCjlkgmgn

Page 5: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� �

�G?�=TFlXU�Y*hGbaFrRPDGF!bKU�JGL�W`U�L�F ¶ h�FJ� �U�R@D ����������OIQNuU�IaY*IKJGLkU�RuhG=@?�\AIK[XIKJGLkU�JZIaJ5R@F=@YVF [XIQU�RPFbKF\�F�b{c`FRStuF�FJ�NPWOCED�Y*U�RPDGF�YZU�RPIQCU�b�Cj?�Y*hGWGRPF=�U�hGhGbKIKC�U�RPIK?�J`Nn'�eF U�CEDGIKJGLMF�\�F�J�BfWG=PRPDGF�=,IKNRPDOF]IK[XF UGi�bQU�IQ[¬[G?�teJ�RPDOF�� (��rv"YZU�JOI_BfF NSR@?��9N�F�Fq�xWGJ`[Xd � �$����� �f��i{?�B,Cj=@F�U�RPIKJGL�U�J¬F�baF C�vRP=@?�JOIKCrbaIKcG=EU�=@dV?�B;Cj?�Y*hGbaFRPF�bad*Bf?�=PYZU�bKIKgF�[MU�JO[wCEDGF�CEH�F�[ZYZU�R@DGFYZU�RPIQCU�b�=@F�NPWGb_RENi5R@DOU�Rp?�JGFCU�J�=@FjBfF�={RP?`i�cG=@?�t1N�FuRPDG=@?�WOL�D.i�WONPFeU�JO[VFl5R@FJO[.n��G?�={RPDGIQN{I_RuIKN{JGF CjF NPN@U�=@d,RPDOU�R�RPDGFehO=P?A?�B�vU�N@NPIKN�R@U�J�REN,c`F Cj?�YVFMYkWOCED�Y*?�=@FZWONPF=Pv9Bf=@IKFJO[XbKd�n;opDGIKNktu?�WGbQ[�^O=@N�R�?�B1U�babu=PF ­�WOIa=@FsUq\�F�=PdL�F�JGF=EU�b{U�J`[ �OFlXIacGbKFVY*U�RPDGF�YZU�RPIQCU�b{\�F=@JOU�CjWGbQU�=�cAd]YVF U�JON�?�ButeDGIQCED}?�=@[XIKJOU�=PdqYZU�R@DGFjvYZU�R@IKCIKU�JONeCU�Jy[X?VR@DGF�tu?�=PHZ?�B;Bf?�=PYZU�baIKgIKJGL*U�JO[wIaJ5R@F=EU�C�ReteIaRPDyRPDOF�baIKcG=EU�=@d�n���F�c�FbKIKF\�FRPD`U�RpRSdAh`F!RPDGF�?�=@dZCU�JwhG=@?�\5IQ[XF�N�WOCEDyUkbQU�JOL�WOU�L�F�n | NxIaR1NSREU�JO[GN�iA?�JGbKd*RPDOF ]IKg�U�=phG=P?SF�CjR�mNPFF ]zP� | � � �$��%���f�pDOU�N!C=PF U�RPF [�U�J`[]YZU�IKJ�REU�IKJON�UsbQU�=@L�FkC?�bKbaF C�RPIK?�J}?�B>YZU�R@DGFYZU�R@IKC�U�b=@F�NPWGb_RENn`opDGF=@F�IKN�iGDG?�txF\�F= iXJG?ZtpU#ds?�B{RP=EU�J`NSBfF�=P=@IaJOLVUZ=@F�NPWGbaReBf=P?�Y½R@DGF ]IKg�U�=pRPDGF�?�=@FYhG=@?�\�F�={RP?�U�JO?�RPDOF=TU�hGhGbKIKC�U�RPIK?�JZU�JO[*U�bQN�?�IaRTIQN�DOU�=E[�RP?�^`JO[*=PF N�WOb_REN�IaJ*R@DGF ]IKg�U�=>bKIacG=EU�=@d�n

�.( �����T3���� 2;3A-`+�3�� 7m0q84-�� 7m-�8��*/�-O+��;+�-.-�/e0#2;3A0 6.7m84:

opDGF,RSdAh�FkN�dXN�RPF�Y*NeRPDOU�R!U�=@F,WON�F [qU�N1UVBf?�WGJO[GU�RPIK?�JOU�b%RPDGF�?�=@dMU�=@F�IKJ �OWGF�JOCjF [qc5dyN�F�\�F�=@U�bh�F?�hObaF�n���FwY*F�J�R@Ia?�J�RPDOFY DGF�=PFMU�JO[�JOU�Y*FsRPDOFIK=VIKY*h`?�=�REU�J5R�C?�J5RP=@IacOWXRPIK?�J.n{�x=P?�WAtuF�=U�J`[��1F�d�R@IaJOLMBf?�=!IKJ5RPWGIaRPIK?�JGIQN�RPIQCkbK?�L�IKC�� �eW`NPNPFbKb4Bf?�=!RPDGFVJG?�R@Ia?�J�?�BTRSd5h�F�U�JO[]Bf?�=rR@DGFVWON�F?�B,DGIKL�DGF�=Z?�=E[XF=s­5WOU�J5RPIa^`CU�RPIK?�J¬RP?�[XFj^`JGF]ba?�L�IQCU�be?�h�F=EU�RPIK?�J`N����F�J�R@gF�J«U�JO[�<>=EU#teI_R@gBf?�=rJOU�R@WG=@U�b�[XF [XWOC�R@Ia?�J.���uDAWG=ECEDqU�JO[}�uWG=@=@dZBf?�=eRSdAh�F�[qbQU�Y�c�[GUVR@F=@YZN���1?�tpU�=E[ZBf?�=1RPDGFhG=@?�h�?�NPI_R@Ia?�JONS��U�N �«RSdAh`F NuIKJ5RPF�=PhG=@FjREU�R@Ia?�J.�G[XF��x=PWOI SJyBf?�=eIKJ5RP=@?X[XWOCjIKJGLZ[XF�h`F�JO[XFJ5R1RSdAh�F�NU�J`[,Bf?�=�RSd5h�FpCj?�JA\�F=EN�IK?�J!Bf?�=�� v�U�JO[��%v�=@F�[XWOCjRPIK?�J.��¾XC?�R�R;Bf?�=;IaJO[GWOC�R@Ia\�FTRSdAh�F�N��� �U�=�R@IaJGv � "?�BBf?�=�RPDGFTWON�Fu?�BXIKJO[XWOCjRPIK\�F�RSdAh�F�N%R@?![XF^OJGF�R@DGFTbK?�L�IKC�U�b�?�h`F�=@U�RPIK?�JON�i�R@DGF=@FcAd!C?�Y*hGbKFjR@IaJGL1RPDGFhG=@?�h�?�NPI_R@Ia?�JONS��U�N �«RSdAh`F NTIKJ5RPF=@hG=@FjREU�RPIK?�J�iGU�JO[MBf?�=pRSdAh�F,C?�JA\�F�=@NPIK?�JZBf?�=eIa?�R@U�v�=@F�[XWOCjRPIK?�J.���IK=@U�=@[yBf?�=rDGIKL�DGF�=r?�=@[XF�=eRSdAh`FVN�dXN�RPF�Y*N�U�J`[yRPDGF�Ia=�JG?�=@YZU�bKIag U�R@Ia?�J.���u?X­5WOU�JO[}U�JO[]�rWGFjRBf?�=ecOWGIabQ[XIKJGLsU�RSdAh`F�NPdXNSR@FY¨R@DOU�R1IKJOCj?�=Ph�?�=EU�R@F�NpU�bKb�RPDOF�hG=PF�\AIa?�WONpJG?�R@Ia?�JON�n

�uF N�IQ[XF N�R@DGIKNVtxFMY*FJ5R@Ia?�J�RPDOFsBf?�bKbK?�teIaJGL�h`F�?�hGbKF�n �C#�xU�=PRPDAd ���������TBf?�=�DGIQNVIK[GF�U�?�BhG=@?A?�B%CEDGF�CEHAIKJGLOi�IKJOCjbKWO[XIKJGLkNPdAYkc�?�bKIKCeC?�Y*hGWXR@IaJOLOn��rFr[XIQ[*JG?�R i�DG?�txF\�F�=�i�C?�JONPIQ[XF=�=@FhG=@FjvNPFJ5RPIKJGL,hG=@?5?�BmN4IaJVJOU�R@WG=EU�bG[XF [XWOC�R@Ia?�JkBf?�=PYqi�JG?�=�[XIK[VDGFpDOU#\�FTR@DGFeWONPFp?�B`DOIaL�DGF=4RSdAh`F N4Bf?�=YZU�HAIKJGL�U�hGhO=P?�hG=PIQU�R@FeU�cON�RP=EU�CjRPIK?�JON�n �rF!�u=@WGI SJ*Bf?�=>DOIKNT\5IKL�?�=P?�WON4hGbKF�U,Bf?�=>hG=@?5?�B�CEDOF�CEHAIaJOLU�J`[s=@F\AI_REU�bKIag�IaJOL�RSdAh`F,NPdAN�RPF�YZN>Bf?�=uR@DGIQNuhOWG=Ph�?�NPF�n �U�=�R@IaJXv � "?�B%Bf?�=pDGIQNxFY*hGDOU�N�IQNT?�JM=@FbKI_vU�cOIabKI_RSd��mcAds=PF ­5WGIa=@IKJGL�UVCjbKF�U�=xhODGFJG?�Y*FJG?�ba?�L�IQCU�b�N�F�YZU�J5RPIQCNE�TU�JO[yCj?�J`N�F ­�WOFJ5RuhG=@?�h�?�N@U�bRP?*=@F�N�RP=@IKCjRpRP?ZhG=@F�[XIQCU�RPIK\�F!RSdAh`F�NPdXNSR@FYZNn

!#"%$�"�& �ÒSCSS±k�E·�WE�E¸ � T�'M®ZªUVf·�W®ZªUV � �@ª��~[zV ªUVwWj® W�T�V�[ �U�RPDGF�Y*U�RPIQCN�IQN>W`N�WOU�babKdkhO=PF N�F�J�R@F�[VIKJsU�J*IaJGBf?�=@Y*U�bGcGWXRuhG=PF CjIQN�FetpU#d�n ¶ JGF1N�h�F�U�HXN>U�c�?�WXR² IaJXBf?�=PYZU�b`=@IaL�?�= ´an | RSdAhGIQCU�b`=@F�NPWGbaRuIKJMYZU�R@DGFYZU�R@IKC�NTIQNxhG=@F�NPFJ5RPF [*IaJMRPDGF!Bf?�bKba?�teIKJGL�Bf?�=PYqn

z J]N�IaRPW`U�RPIK?�J)(�txF�D`U#\�F+*�n<>=@?A?�BSn-,/.0 T�±�S���®*ª��.®ZªUVf·�W®*ª�V � ��[

�1F�=PF1(�IKN!U�J]IKJXBf?�=@YZU�bKbady[XF�N@Cj=@Iac�F�[qNPFjRr?�B>U�N@N�WGY*hXR@Ia?�JON1U�JO[2* IQNrU�J]IKJXBf?�=PYZU�bKbKdML�IK\�F�JN�R@U�R@FY*FJ5R n | bQN�?,R@DGF1hG=@?A?�B�,ZIKN>hG=PF N�F�J5RPF�[VIKJXBf?�=@YZU�bKbad�n�z J*ba?�L�IQCxRPDGF1N�R@U�RPF�YVF�J5R@N3(T£�*�c�Fjv

Page 6: Proof-Assistants Using Dependent Type Systems

� À��GÄ.�������������������� À��;Ï{�����������Cj?�Y*FpBf?�=@Y*U�bG?�c SF�C�REN>U�J`[ZN�?�[X?AF N{RPDGFrJG?�R@Ia?�JV?�B%hG=P?�\�U�cGIabKIaRSd�n�<T=P?A?�BmN�N�RPIKbKb`U�=@FphG=@F�NPFJ5RPF [IKJ�U�J�IKJXBf?�=@YZU�b>tpU#d�i.cOWXRkR@DGF?�=PFRPIQCU�bKbKd�RPDOFd�CU�J�c�FZBf?�=PYZU�bKIKgF�[�U�NkU][XF�=PIK\�U�RPIK?�JGv9R@=PF�F��Bf?�babK?�teIKJGLZN�?�YVF,hG=@F�CIKNPFbKdsL�Ia\�FJwNPFjR1?�B;=@WGbKF�NE��n

(���� *<>=@?A?�BSn ,/.

� ªUVf·�W®*ª�V � ��[u±�S���®*ª�� ��� W@º � T��«S�' � �z�R�RPWG=@JON�?�WXR!RPDOU�R!R@DGF=@F*U�=@F�NPF\�F�=@U�b�JOU�RPWG=EU�b4tpU#dAN1RP?MRP=EU�JONPbKU�RPF�hG=P?�h`?5N�IaRPIK?�J`N!U�N V"¼@��W�[��Bf?�=,RPDGF*Y*?�Y*F�J�R�?�JGF*Y*U#dqR@DGIKJGH�?�BuRPDGF N�FZU�NV² NPFjREN´���U�JO[}hG=P?A?�BmN�U�N VXW��® [ � TA·Oª�� � V � T�'� ² FbKFY*F�J�REN1?�B´ �pRPDGF N�F�RSdAh�F�N�nOopDGF�IKJ5RPWGIaRPIK\�F�[GI_µ�F=@FJOCF�c�FjRStxFFJ]NPFjREN1U�JO[yRSdAh�F�NeIQNeR@DOU�RU�JV?�c SF�C�R>C�U�JVc`FeIKJZN�F�\�F=EU�bA[XIaµ�F�=PF�J5RTN�FR@N�i�cGWXR>?�JObad�IKJ*?�JGFxRSdAh�F�n� ]?�=PF�?�\�F�=�i UrRSdAh�FeIKN�U=EU�RPDOF=!² NPIaY*hGbKF�´AHAIKJO[s?�B;N�FR��AteDGFRPDGF�=pUkRPF�=PY¨IQNx?�B;U�CjF�=�REU�IKJZRSdAh`F,IQNuW`N�WOU�babKdZ[XF�CIK[OU�cGbKF�i[XWGF!RP?�RPDOFrBmU�C�RxRPDOU�R!² c`F�IaJOL�?�B�U�RSdAh�F�´AIKNxUVN�dAJ5R@U�C�RPIQCrC=PIaRPF�=PIK?�J�n�z JZR@DGF�Cj?�J�R@FjlARu?�B.RSdAh`FRPDOF?�=@d�iXY*F�Ykc�F=EN�DGIKhy?�B4U�R@F=@Y�*RP?VR@DGF�RSd5h�F * IKNe[GFJG?�RPF�[ycAd��� * =EU�R@DGF=xR@DOU�J���¥ *�n��=PIaRPIKJGL*RPDOF,RP=EU�JONPbKU�RPIK?�Jw?�B{hG=P?�h`?5N�IaRPIK?�J * U�N � * �;U�JO[y?�B{U�hO=P?A?�B ,�U�N � , �.?�JGF,DOU�N

� * WONPIKJGL*hG=P?A?�B , ��� � , ��� � * ��£

U�J`[MDGF�JOCjF* IQNphG=@?�\�U�cGbKF�� � * ��IKNpIKJGDOU�cGIaRPF�[/.

opDGF�=PFBf?�=@F�RPDOF�Bf?�=PYZU�baIKg�U�RPIK?�J}?�BTYZU�R@DGFYZU�R@IKC�N�IaJ�RSdAh`FVRPDOF?�=@d]c�F�Cj?�Y*F�N!RPDGFVBf?�babK?�teIaJOL�ftxF�[X?*JG?�Rpte=@IaRPF,RPDOF �#��cGWXR1IQ[XF�J�R@I_BfdyUVhG=P?�h`?5N�IaRPIK?�Jy?�=phG=@?A?�B4teI_R@D]I_RENxRP=EU�JONPbKU�RPIK?�J`�jn

(���� ,]�*� ª�V�·ZWj®ZªUV � �z[T±�S���®*ª�� ��� WEº � T¨V9¼@�ZW V�·ZW�S���¼

 1?�t U�bKb.?�B (T£�* U�JO[ ,}U�=@F�Bf?�=@Y*U�baIKgF [ybaIKJGL�WOIKN�RPIQC,?�c SF C�RENn�opDGF�N�R@U�RPF�YVF�J5R�(�����,��#*IQNpF�­5WGIK\#U�baF�J5ReRP?

oTdAh�F��.� ,��>§ *& �ÒSCSS±k�E·�WE�E¸ � T�'

�1F�=PF�i�oud5h�F ���r��IKNkUyBfWGJOC�R@Ia?�J�RPDOU�R�^OJO[GN�Bf?�= ,�UyRSdAh�FZIaJ�R@DGFZL�IK\�F�J�C?�J5RPFlAR (>n�opDGF[XF CjIQ[GU�cGIKbKI_RSds?�B;RSdAh�Fjv CEDGF�CEHAIKJGL�Bf?�bKba?�t1NxBf=@?�Yq�� oTdAh�F��.� ,��xL�F�JGF=EU�R@F�NpU�RSdAh`F,?�B ,qIaJ]Cj?�J5RPFjlAR (�?�=p=@FjRPWO=PJON�² BmU�bQNPF�´.�fIaB ,yD`U�NxJG?ZN�W`CEDRSdAh`F#��n

� opDGF�F�­5WOU�baIaRSdy§ IKN1[GF�CjIQ[GU�cGbaF�nopDGFyNSR@?�=@d�IQN�U}baIaR�R@baFycGIaRVY*?�=PFMC?�Y*hGbKIKC�U�R@F�[%n{�4Ia=ENSR�RPDGF�=PFyU�=@FMNPF\�F�=@U�b>h�?�N@N�IKcGbKFMbK?�L�IQCN�fF�n L`nO^`=@N�Rr?�=�N�F Cj?�JO[]?�=E[XF�=1ba?�L�IQC��`IaJ5RPWOI_R@Ia?�JGIKN�RPIQC�?�=!CbKU�NPNPIQCU�b�ba?�L�IQC���n�opDGIQN1teIKbab{L�Ia\�F�=PIQNPFRP?sNPF\�F=EU�b�RSdAh`F,R@DGF?�=PIKF�N�nO¾AF Cj?�J`[XbadMRPDGF�F ­5WOU�bKI_RSdq§ IKJyRPDGF�bQU�N�RrNSREU�R@FY*FJ5Rr[XF�h`F�JO[GNe?�JRPDOF�RSdAh`F�R@DGF?�=Pd��jIaR;IQN.U1C?�JA\�F�=@NPIK?�Jr=@FbQU�R@Ia?�J,L�FJOF=EU�RPF [!Bf=P?�Y UeNPh`F CjIa^`C>NPFjR�?�BAF�baF�Y*FJ5R@U�=Pd=@F�[XWOCjRPIK?�JON�n

z JwR@DGF�hG=EU�CjRPIQCjF�?�B�U�JyIaJ5RPF�=@U�C�R@Ia\�F�hO=P?A?�B{U�N@N�IQN�R@U�J5RpcOU�NPF�[w?�JwRSdAh`F,R@DGF?�=Pd�iARPDGF�hO=P?A?�B�vRPF�=PYZNpU�=@FrL�FJGF�=@U�RPF [ZIaJ5R@F=EU�C�R@Ia\�FbKd*c`FRStuF�FJwRPDGF�WONPF=eU�JO[sRPDGF�hG=@?A?�B;[XF�\�F�ba?�hGY*FJ5RpNPdXNSvRPF�Yqn�opDGF�WONPF=1RSdAh�F�N!IaJ�N�?MC�U�bKbaF [ V ª��YV � ��[ i`L�WGIK[GIaJGLMRPDGF�hG=@?5?�B>[XF\�FbK?�hGY*FJ5R!NPdXNSR@FY RP?Cj?�JON�RP=@WOC�ReUVhG=P?A?�B�v9R@F=@Yyn | ReRPDOF�F�JO[%iAR@DGIKNxR@F=@Y½IQNTRSdAh�F�CEDGF�CEH�F�[MU�JO[MRPDGF�RSdAh`F,IQNeCj?�Y�vhOU�=PF [steIaRPDwRPDGF,?�=@IKL�IKJOU�b�L�?5U�b"n�z JqCj?�JGJGF C�RPIK?�JMRP?*hG=@?A?�B;CEDGF CEHAIaJGL`i5RPDGF�=PF�U�=@F1R@DG=@FF,YZU�IKJ

Page 7: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� �

[XF CjIQ[GU�cGIKbKI_RSdshO=P?�cGbaF�YZNxRPDOU�R1tuF�CU�J][XIKN�RPIKJGL�WGIKNPD.n

( ��� � �*�� or�x<{i oTdAh�Fk�uDGF�CEHAIKJGLZ<>=@?�cGbKFYq�( ��� � ��� o1¾X<{i oTdAh�F�¾AdAJ�R@DGF�NPIQN1<>=@?�cGbKFYq�( ��� ����* opzS<{i oTdAh�F,z JGDOU�cOI_REU�RPIK?�J]<T=P?�cGbaF�Yqn

z�BGtxF�RPDGIKJGH�?�B�*�U�N�UpBf?�=PY�WGbQUeU�JO[�� U�N�I_REN.hG=@?A?�BSiRPDGF�J�RPDGFuor�x<�U�NPHXN�RP?1\�F=@I_Bfd � ·�WYVf·�W�ªUT]ª����«W ';WEº1���ÒSCSS± � � T�ºuWcWEº1���ÒS�»gW�[ *�n5o1¾X<�U�NPHXN4RP?�\�F=@I_Bfd � ·ZW�Vf·�W�5Vf·�W,ª�����W 'GWEº1���ÒSCSS± �� [�ª!���ÒSCSS±�ª�Vxª���� nGopzS<¬U�N�HXNTRP?V\�F=@IaBfd�� ·ZW�Vf·�W� *©� [u���ÒS�»#ª%�j��W nGz�ReteIKbab�c�F,CbaF U�=uRPDOU�RpopzS<IQN!WOJO[XF�CIK[OU�cGbKFkBf?�=�U�JAdqRSd5h�F�RPDGF�?�=@dwR@DOU�R,IQN!?�BTIKJ�R@F=@F�N�R!Bf?�=rBf?�=PYZU�baIKgIKJGLMYZU�RPDGF�Y*U�RPIQCN�fI"n F�n�Bf?�=�U�J5d��¦IaJ�teDGIQCED}FJO?�WGL�D�^O=ENSR,?�=E[XF�=!hG=@F�[GIKC�U�RPFVbK?�L�IQCkC�U�J�c`FZ[X?�JGF �jn���DGFjR@DGF=or�x<³U�JO[�o1¾X<�U�=@FM[XF CjIQ[GU�cObaFy[XFh�FJO[ON�IKJ~L�FJGF�=@U�bT?�J�RPDOFw=@WGbKF�N�?�B1RPDOFMRSdAh�FMR@DGF?�=PdU�J`[sF�NPh�F�CjIQU�bKbKdV?�JsDG?�t�Y�WOCEDsRSdAh�Fjv�IaJXBf?�=PYZU�RPIK?�JZIQNxU�[G[XF [sIKJZRPDGF�R@F=@Y���nAz JMU�bab�?�B%RPDGFNPdAN�RPF�YZN�RPDOU�RktuFZ[XIQN@CjWON@Ni�c`?�RPD�or�x< U�JO[�o1¾X< U�=PFZ[XF CjIQ[GU�cGbKF�n �!F�CIK[OU�cGIKbaIaRSd}?�Bpor�x<U�J`[so1¾X<~C?�JXBf?�=PYZNTteI_R@DsRPDOFrIKJ�R@WGIaRPIK?�JsR@DOU�R i�F�\�F�JZRPDG?�WGL�DMtuF!Y*U#dVJG?�Ruc�F�U�cGbaFrRP? T�ºUVhG=@?5?�B;?�B{UVL�IK\�F�JMBf?�=PY�WGbQUk?�WG=@NPFbK\�F NiAtxF�CU�J �ÒWE�cS '�T � [�W UVhG=P?A?�B;IaB4hG=@F�NPFJ5R@F�[MRP?ZWON�n

¾A?�B�RStpU�=@F��mbaIKH�F]?�WG=ZhG=@?A?�B�[GF\�F�ba?�hGY*FJ5RsN�dXN�RPF�YZ��IQN ªw��� � S�� �VJG?�RZ=@FbKIKU�cGbaF�i>N�?�teDAdtx?�WGbQ[�?�JGFTc�FbKIaF�\�FpU!NPdXNSR@FY RPD`U�R>NPU#dXN�I_R�DOU�N�\�F=@I_^OF [kUrhG=P?A?�B��popDGIQN;IQN{UrL�?A?A[k­�WOF�N�RPIK?�J.nopDGF*hGIK?�JGF�F=�?�BxCj?�Y*hGWXRPF�=�\�F�=PIa^OF�[}hG=@?5?�BmNi% kn �Vn�[GF*�x=@WGI SJ.i.DOU�N!L�Ia\�FJ�UqNPU�RPIQNSBmU�C�RP?�=PdU�J`N�txF= n���F]N�DO?�WGbQ[�REU�H�FqCU�=PFwRPD`U�RVRPDGFq\�F�=PIaBfdAIaJOL�hG=@?�L�=@U�Y �fRPDGFyRSdAh�FqCEDOF�CEH�F�=E�s� [qª»UWj��¼ [�®Zª����G���ÒS '��@ª�® �GR@DGFJyRPDOIKNrhG=P?�L�=EU�Y½C�U�Jyc`F�\�F=@I_^`F�[wc5dwDOU�J`[%iGL�IK\AIaJOL�R@DGF�DGIKL�DGF NSRh�?�N@N�IKcGbKF�=@FbKIQU�cGIKbaIaRSdZR@?*RPDGF�hG=@?A?�B{CEDGF�CEH�F= n5opDGIQNeIQNxRPDGF�NP?ZCU�babKF�[ ºuW �1��¯ � � T��� � VXW� � SUT n

| hG=@?A?�B�U�N@N�IQN�R@U�J5RMN@U�R@IKN�^OF�NsRPDGF�[XF}�x=PWOI SJ C=PIaRPF�=PIK?�J�IaB�I_RyL�FJOF=EU�RPF Ny² hO=P?A?�B�v?�c SF C�REN´��m?�B{N�?�YVF�Bf?�=PYs�uRPD`U�RrCU�Jwc�F�CEDGF CEH�F�[wcAdMU�J�² F�U�NPd�´GU�bKL�?�=PIaRPDGYqn

z JwRPDGF,bQU�RPF�NPI_lAR@IaF Nx[GF,�x=@WGI SJwYZU�[GF,U�JMIKY*hG=PF NPNPIK\�F,NSREU�=PRxteIaRPDwRPDGF�R@F�CEDGJG?�ba?�L�dZ?�B�hG=@?5?�BCEDGF CEH5IKJGL`n��rF*[GF�NPIaL�JGF�[�Bf?�=@Y*U�b�N�dXN�RPFYZN!Bf?�=!RPDOFVF sCjIKFJ5R�=PF�hG=PF N�F�J5R@U�R@Ia?�J�?�BuhG=P?A?�BmN�U�b_vbK?�teIaJGL�U�\�F�=PIaBfdAIaJGL�U�bKL�?�=PIaRPDOY RPDOU�RZC�U�J�c`F]C?A[GF�[¬IaJ � &%&�bKIaJOF�N*?�B�IaY*h�F=EU�R@Ia\�FqC?X[XF�nopDGF N�FsNPdXNSR@FYZN,tuF�=PF*L�Ia\�FJ�RPDGFMC?�bKbaF C�R@Ia\�FVJ`U�Y*F | WXR@?�YZU�[email protected];NPFFZ 1F [XF=@h�FbaR�i ��F�WG\�F�=@NU�J`[�[GF���=PI SF= � �$�%� ���xBf?�=sU�J«WGh�RP?�[OU�RPF�NPWG=@\�F�d�n | NZRP?�RPDOF]h`?�IaJ5Rs?�B,=@FbKIKU�cGIabKIaRSd�iT[XF�x=PWOI SJ�D`U�N!=PF�Y*U�=PH�F�[yR@DOU�R,?�JGFVCU�JGJG?�R�?�cXREU�IKJ}U�c`N�?�baWXR@FkCjF�=�REU�IKJ5RSd�n�opDGF=@F�U�batpU#dXN1CU�Jc�F1N�?�YVFpHAIKJO[V?�B`F�baF C�R@=P?�JGIKCuBmU�IabKWG=@FuR@DOU�R>YZU�H�F�N{U,hG=@?A?�B�v U�N@N�IQN�R@U�J5R{U�CCFhXR>U�te=@?�JGL�hG=@?5?�B�mU�C�R@WOU�bKbadyR@DGIKN�IQN�\�F=@dqWGJGbKIaH�FbKd��OR@DGF=@F�IQN�UMcGIKL�L�F=�CEDOU�JOCF�R@DOU�R�UwC?�=@=PF C�RrhO=P?A?�B>IQN�JG?�RU�C�CjF�hXRPF [O��n��xWXR{Bf?�=@YZU�bKIag�F�[khG=P?A?�BmN;hO=P?�\AIQ[XFu=@F�NPWGbaR@N4teIaRPDVRPDGF · � ' ·ZWz[zVO��SU[�[ � ���W!�ÒW� � ª�� � � � V"¼ nopDGF�=@FbKIKU�cGIKbaIaRSdZ?�B{YZU�CEDGIKJGF�CEDGF�CEH�F�[whG=@?5?�BmNpCU�Jqc�F�N�WOYVYZU�=PIKgF [wU�NTBf?�babK?�t1N�n

<>=@?A?�B�v�?�c SF C�R@NTYZU#dZc`F�bKU�=PL�F�i5h`?5NPNPIKcGbadsNPF\�F=EU�b ]c.�XcGWXRxRPDOFdMU�=PF�N�F�b_B�v�F\AIQ[XFJ5R�nopDGIQN�Y*F�U�J`N{RPDOU�RTU�N�YZU�babXhG=@?�L�=@U�Y CU�JV\�F=@I_Bfd�RPDGF�Yy��RPDGFehO=P?�L�=EU�Y SWON�R�Bf?�bKba?�t1NteDGFjR@DGF=rba?XCU�babKdZR@DGF�Cj?�=P=@F�CjRpN�RPF�hONeU�=@F,c`F�IaJGLZYZU�[XF�n

��FVC�U�J�NPWGY*YZU�=@Iag�F�R@DGFkRSdAh�FVRPDGF�?�=@FjRPIQCkU�hGhG=@?�U�CEDqRP?yIaJ5RPF�=@U�C�R@Ia\�F�RPDOF?�=@FY hG=@?�\AIaJOLwU�NBf?�bKbK?�t1Nn

Page 8: Proof-Assistants Using Dependent Type Systems

� À��GÄ.�������������������� À��;Ï{�����������

hG=P?�\�U�cGIabKIaRSdZ?�B�Bf?�=PY�WGbQU * § ² IKJGDOU�cGI_REU�R@Ia?�J.´G?�B;RPDGF,RSdAh�F *hG=@?A?�B{CEDGF�CEHAIKJGL § RSd5h�F�CEDGF CEH5IKJGL

IKJ5RPF=EU�CjRPIK\�F!RPDGF�?�=@FY½hO=P?�\AIKJGL § IaJ5RPF�=@U�C�R@Ia\�F,C?�JON�RP=@WOCjRPIK?�JM?�B{U�R@F=@Y�?�BU�L�Ia\�FJwRSdAh`F�n

¾A?kRPDGF�[XF�CIK[GU�cGIKbaIaRSd*?�B�RSdAh`F�CEDGF�CEHAIKJGL�IQNuU�RTRPDOF!Cj?�=PFr?�B%RPDOF1RSdAh`Fv9R@DGF?�=PFRPIQC1U�hOhG=P?5U�CEDVRP?RPDOF?�=@FY�hG=P?�\AIKJGLOn

!#" !�"�& �ÒS@�ZSg[ � V � SUTZ[Vªg[�V"¼@��W�[

z�RZIKNVh�?�N@N�IKcGbKFsR@?�=@FhO=PF N�F�J�RVhG=@?5?�BmNkIKJ¬U�[XIaµ�F�=PF�J5R*U�JO[�Y*?�=@FyF sCjIKFJ5R*txU#d�U�N�Bf?�=PYZU�bRPF�=PYZN�n;opDGFwIaJ5R@WGI_R@Ia?�J�c`F�DGIKJO[�R@DGIKNkIKN�IKJON�hOIa=@F�[�cAd�IaJ5RPWOI_R@Ia?�JGIKN�RPIQC}�9Cj?�JONSR@=PW`C�RPIK\�F#�,bK?�L�IQC�nz JqRPDOIKNrhGDGIKba?5N�?�hGDAdwU*hG=@?A?�B{?�B>U�JqIKYVhObaIQCU�RPIK?�J *����½IKN1UsYVFRPDG?X[yR@DOU�R1R@=@U�JON�Bf?�=@Y*NeUhG=@?A?�B%?�B/*�IaJ5RP?�U�hG=@?5?�B%?�B��sn | hO=P?A?�B%?�B�*���� IQNxU�hOU�IK=� ,�£� �>NPWOCED*RPDOU�R�,wIKNuU�hG=@?5?�B?�B * U�J`[��?�JOF�?�B��sn | hO=P?A?�B4?�B *����¨IQN1UVhOU�IK=����#£ ,��jiOteDGF�=PF��!IKN1FIaRPDGF�= &V?�= ��U�J`[IaB��e§ &Oi5RPDGF�J ,yIQNeUkhG=@?A?�B4?�B�*k�GI_B��e§-��RPDGF�J1,qIQNpU�hO=P?A?�B;?�B��MnGopDGF=@F�IKNpJG?*hG=@?A?�B�?�B� iARPDOF!BmU�bKNPF,hG=@?�h�?�NPI_R@Ia?�J.n | hO=P?A?�B4?�B�����¥�� . *��yIQNeUVY*FjRPDO?A[1,yRPDOU�ReRP=EU�JON�Bf?�=@YZNTF�\�F�=PdFbKFY*F�J�R ��¥ *³IKJ5RP?yUshG=@?A?�B>?�B�* ��n��4IKJOU�bKbKdqUMhG=@?5?�B>?�B�� ��¥�� . *!��IKN,UMhOU�IK="� ��£ ,��rN�W`CEDRPD`U�R ��¥ * U�JO[2,~IKNVU]hG=@?A?�Be?�B * �`n{�1F�=PF�i#��£��*£��x£ � £$�¬U�JO[%��U�=@FZRPDGFwWONPWOU�buba?�L�IQCU�bCj?�JGJGF C�RPIK\�F NeU�JO[y­5WOU�J5R@I_^OF�=@N�nG 1F�L�U�RPIK?�JyIKNe[XF^OJGF [yU�N!&�* § *�� � n

opDGF�hG=@?�h�?�NPI_R@Ia?�JONeU�NpRSdAh�F�NeIKJ5RPF�=PhG=@FjREU�R@Ia?�JyIKJ5RPWGIaRPIK\�F�badyCU�Jyc�Fk[XF^OJGF [yU�NpBf?�bKbK?�t1Nn |NPFJ5RPF�JOCjF2* IKN*IKJ5RPF�=PhG=@FjR@F�[�U�N1� * ��iT[XFj^`JGF�[�U�NVR@DGF]Cj?�bKbKF�C�R@Ia?�J¬?�B!hG=@?A?�BmNV?�B+*�nTopDOFJ.iU�C�Cj?�=@[XIKJGL�RP?VRPDOF�IaJ5RPWOI_R@Ia?�JGIKN�RPIQC,IKJ�R@F=@hG=@FjR@U�RPIK?�Jy?�B;RPDGF�bK?�L�IKC�U�b.Cj?�JGJGF C�RPIK\�F Nx?�JGF�DOU�N

� *'�(�!� § � * ��¡ � � �� *)�*�!� § � * �,+ � �!�� *-�.�!� § � * �0/ � �!�

� � � § 1� �2��¥�� . *!� � § 3!��� � . � *!� �� � ��¥4� . *!� � § 56��� � . � *!� �

opDGFZ?�h�F=EU�R@Ia?�JON�¡�£7+ U�JO[8/ U�=@F*=PF N�h�F�CjRPIK\�F�bad]R@DGF*Bf?�=@YZU�R@Ia?�J�?�BuBfWGJ`C�RPIK?�J`N�N�h`U�CjF Ni�xU�=PRPF N�IQU�JwhG=@?A[GWOC�REN1U�JO[y[XIQN S?�IaJ5R1WGJOIa?�JONnXz J5R@WGI_R@Ia\�FbKdsR@DGIKN1YVF U�JONxR@DGF,Bf?�bKbK?�teIaJGL`n

9 ¡;: § <��>=?��,�� 9 . �{� ,��x�@:BA��9C+D: § <0� ,;£E �4=�,;� 9�U�JO[�A� :BA��9F/�: § <0� &O£ ,���=�,�� 9"A6/G<@� ��£� �4=�A� :BA�.

Page 9: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� �

�GWO=�R@DGF=@Y*?�=@F�i41wIKN�R@DGFZFY*hXRSd]RSdAh�F�n.�4IKJOU�bKbad�i%RPDOFq���xU�=PRPF N�IQU�J`�!hG=@?X[XWOCjR�U�JO[�N�WGY ?�BxUBmU�Y*IKbad < 9 ��A���� ��?�B;RSdAh�F�NeU�=PF,IKJ�R@WGIaRPIK\�FbKdw[GFj^OJGF [qU�N

3���� * . 9 � § <#�4�a� * ¡;/���� ��9 ���4=?�2��� * �"����� 9 ��� A56��� * . 9 � § <5� �;£ ,��4=2��� * U�J`[ ,;�K��9 ��� A#.

 1?�t�i�U�NSREU�RPF�Y*FJ5R�*«IKN>hG=P?�\�U�cGbaFpIaB � * �`IQN�IaJODOU�cGIaRPF [%i�I"n F�n�IaB`R@DGF=@FeIQN>U 9 NPWOCEDVRPD`U�R/,q��*DG?�bK[GNpIKJyRSdAh`F,R@DGF?�=Pd�n

!#"��#" �Aª�®r����W�[ SS±u���ÒSLS�±�[�ªg[�VwWj��® [o;?�L�FjR1U�JwIK[XF Uk?�B;teDOU�RehG=P?A?�B�v"?�c SF�CjR@Nu=PF U�bKbad*bK?5?�HZbaIKH�F�U�JO[sDG?�t RSd5h�F�CEDGF�CEHAIKJGLktx?�=@HXNitxFxbK?A?�HkU�R>U�JVFjlGU�Y*hGbKF���txFeCj?�J`NSR@=PWOCjR>U!hO=P?A?�B�v�?�c SF�C�R�U�J`[�RSdAh�Fjv CEDGF�CEH�IaR�n�opDOIKN{FlXU�Y*hGbaFNPDG?�WGbQ[sc�F,WGJO[XF�=@N�R@U�JO[GU�cGbaF!teI_R@DG?�WGReU�JAd*BfWG=�R@DGF=pHAJG?�tebKF�[XL�Fr?�B.RPDGF�RSdAhGIKJGLV=PWGbKF�N��AN�?�YVFcOU�N�IQC�² hG=@?�L�=@U�Y*YVF�=@N�´5IaJ5RPWOI_R@Ia?�Jy?�B;RSdAh�F�NeNPDG?�WObK[qNPW sCjF�n

opDGFk^`=@N�R!JG?�JXv"RP=@Ia\AIQU�b�FlGU�Y*hGbKFkIKJ}hG=@F�[XIQCU�RPF�ba?�L�IQC�IKN!R@DGFkhG=@?�h�?�NPIaRPIK?�J]R@DOU�R�UscGIKJOU�=PdU�J5R@IKNPdAYVY*FRP=@IKC�=@FbQU�RPIK?�JyIQNpIa=@=PF �OFjlXIK\�F�n

�.FjR!� c�F�UVNPFjRrU�JO[wbaFR�� c`F�UVcGIKJOU�=Pds=@FbQU�R@Ia?�Jw?�J.�~nO¾AWGhGh�?�NPF

����£� �¥�� . � �� �(&��� 0�/.

opDGF�J �2��¥�� . &�� � �;n��FstpU�J5R�R@?]Bf?�=@YZU�bKIag�F�R@DGIQNn;z J�RPDGFZRSdAh�FZRPDOF?�=@d}txFZDOU#\�F*RStu? ¯�T � »gW�c[YWz[ i�������U�J`[

������� n#opDGFTIQ[XF U1IQN%RPD`U�R�UpRPF�=PY'�¨?�BXRSdAh�F������ji JG?�REU�RPIK?�J �~� ��� �ji IQN�U1RSdAh`FTRPDOU�R;=@FhG=@F�NPFJ5R@NU ºuS�®*ª � T ?�B`RPDGFebK?�L�IKC�nA�mz J�bK?�L�IKCu?�JOFpU�bKNP?,N�h�F�U�HAN4?�B [YS��zV\[ ?�= SWONSR [YWYV�[ n�� | R@F=@Y *�� ������� iIQN4U1RSdAh`FuRPDOU�R�=PF�hG=PF N�F�J5R@N�U ����S@�ZSg[ � V � S�T ?�BORPDGFxba?�L�IQC�i�RPDGFxIQ[XF�U!c`F�IaJOLrR@DOU�R *�IKN;IK[GFJ5RPIa^OF�[teIaRPDyRPDGF,RSdAh�F�?�B4I_RENehG=@?5?�BmNnO¾X? * IQNehG=@?�\�U�cGbKF�I_B{tuF�C�U�Jy^OJO[qU�RPF�=PY ,]��*�n

�xU�N�F [�?�JkR@DGIKN{IQ[XF UGi�U!hG=PF [XIQCU�R@Fu?�J �¬�S�!��� �P�;IKN{=@FhG=@F�NPFJ5R@F�[�cAd�U!RPF�=PY 9 � ��¡ ������� nopDGIQN1CU�Jwc�F�WGJO[GF=ENSR@?5?X[yU�NxBf?�babK?�t1Nn

" �S� ���xN@U�RPIQN�^OF�NxR@DGF�hG=@F�[XIQCU�RPF 9 Iaµ�RPDOF,RSd5h�F�9 " IKNpIKJGDOU�cGI_R@F�[%i

I"n F�nuR@DGF=@F}IQNqU�hG=@?A?�B�v"RPF�=PY ?�B�RSdAh�F89 " n1¾A?~RPDGF�C?�bKbaF C�RPIK?�J�?�B�hG=@F�[XIQCU�RPF NM?�\�F= � IKN=@FhG=@F�NPFJ5RPF []U�N��¡ �����#� U�JO[}N�IKY*IabQU�=@bad�iOR@DGF*Cj?�bKbKF�C�R@Ia?�J�?�B>cOIaJOU�=Pdq=@FbQU�R@Ia?�JON1?�\�F=�� IKN=@FhG=@F�NPFJ5RPF [MU�N ��¡ � ��¡ �����#� ��n

¶ JGF>?�BAR@DGFTcOU�N�IQC�?�h`F�=@U�RPIK?�JON%?�BGYZU�RPDOFYZU�R@IKC�NT�fF�\�F�J,RPDG?�WGL�D�IaR;IQN.JG?�R�Bf?�=PYZU�bKbKd1RP=@F�U�RPF [IKJ�ba?�L�IQC%$��,IQN ºGW T � T#' n{opDGIKN�IQN�Bf?�=PYZU�bKbKd�C�U�hXR@WG=PF [�IaJ�RSd5h�FsR@DGF?�=Pd�\AIKU}U�HAIaJ`[�?�B,² baFR�´Cj?�JON�RP=@WOC�R@Ia?�J.n �.FR1WONpL�IK\�F�NP?�Y*F�[XFj^OJOI_R@Ia?�JONn

& �%' ��§ ° �~� ��� � . ��¡�� ��¡ ������� �j£(�) �+* �-,-. ��§ ° �~� ��� � . °��V�K� & �%' ��� . ���;£/ �� � .K�0��� G��� ���0�� @��� � � ��£

12�3� ��4 ��§ ° �~� ��� � . °��V�K� & �%' ��� . ���;� � .Q�5� �?��� � � .

opDGF N�Fr[GFj^OJGIaRPIK?�J`NuU�=PF ±�S���®*ª�����S�T�[zV"��¯O��V � SUTZ[ IaJ*RSdAh�F1RPDOF?�=@dVteI_R@DMU�Cj?�Y*hGWXR@U�RPIK?�JOU�bOc�FjvDOU#\AIK?�= i�N�?�v�C�U�bKbaF [ � v"=@F�[GWOC�R@Ia?�J.i�cAdVteDGIQCEDM[XFj^`JGI_R@Ia?�JONxU�=@FrWGJXBf?�bK[GF�[%n & �%'�R@U�H�F NTU�[X?�YZU�IKJ

Page 10: Proof-Assistants Using Dependent Type Systems

��� À��GÄ.�������������������� À��;Ï{������������ U�JO[w=PFRPWG=@JONxR@DGF�[X?�YZU�IaJy?�B{cGIKJOU�=@ds=@FbQU�RPIK?�J`Nu?�J ���

� & � ' ��� ¡�� �9° ��� ����� . ��¡�� ��¡ � ���#� ��� �¡�� ��¡ � ��¡ �����#� � .

¾A? cAd ?�JGF [XFj^OJOI_R@Ia?�J WGJGBf?�bQ[XIaJOL U�JO[ ?�JOF �%v N�RPFh tuF�^OJO[ RPDOU�R � & �%' ��� §��¡ � ��¡ � ���#� ��n�¾AIaY*IKbKU�=PbKd�iABf?�= � �������pU�JO[D:³� ��¡�� ��¡ � ���#� ��i

� (�) �+* �-,-.G� :�� § ����£� �� � .Q��: �� G��� �P��: 0��� � � ��£� 12�3� ��4 � :�� § ����� � .Q��: �?��� � � .

opDGFpRSdAh�Fe?�B (�) �+* �-,-.�IKN#3!��� ����� .Q� ��¡�� ��¡ ������� �P�P¡ � ���#� i�R@DGFpRSdAh`Fe?�B�?�h`F�=@U�RP?�=EN;RPDOU�R�iL�IK\�F�J¬U�N�FR"� U�JO[�U�cGIaJ`U�=@d�=PF�bKU�RPIK?�J�?�\�F=�RPDGIQNB��i{=PFRPWG=@J¬U�hG=@?�h�?�NPI_R@Ia?�J.n��1F�=PFytuFFJ`Cj?�WOJ�R@F=1U ºGW��ZW�T�ºuWYTZV²V9¼@�ZW iGI9n F�n`UVRSd5h�F�?�B4BfWGJOCjRPIK?�JON!��teDGF�=PF�R@DGF�=@U�JGL�Fv�NPFjRe[XF�h`F�JO[GN?�JwRPDOF�IaJGhOWXRr\�U�bKWGF�nO¾XFF,RPDOF�hG=PF�\AIa?�WONe¾AF�CjRPIK?�JyBf?�=1U*NPFjR�v"RPDOF?�=@FjR@IKC�WGJ`[XF=ENSREU�JO[GIaJGL`nopDGFrBf?�=@YkWGbQU �2��£/ �� � .K� : �� G��� ��� : 0����� � ��IQN>R@=@U�JON�bQU�R@F�[sU�N>R@DGF![GFh�FJO[XF�J5RuBfWGJ`C�RPIK?�JRSdAh`F

3!�;£/ �� � .Q��: �� X�@¡ �P��: 0���P¡ � � .�m�O?�=;JG?�t�itxF�R@U�H�F � R@?1c`FxN�?�Y*F�^GlXF�[�Cba?5N�F [!RPF=@Y ?�BARSdAh`F � ���#� n��/��IK\�FJ,R@DGF!�mIaJGBf?�=@Y*U�bQ�FjlXhGbQU�J`U�RPIK?�JV?�B�RPDOF�3ev"RSdAh`FeL�Ia\�FJ*c`FBf?�=@F�i�txFp?�cONPF=@\�FxR@DGFpBf?�bKba?�teIKJGL,RStx?,=PWGbKF�N�Bf?�={RPF�=PYVvCj?�JON�RP=@WOC�R@Ia?�Jw=@FbQU�R@F�[MRP?VRPDGF�[GFh�FJO[XF�J5ReBfWGJOC�R@Ia?�JONpRSdAh�F�n� z�B��¦�73���� * . �¨U�JO[ �*kiXRPDGF�J��� �7� � � � ��i�� �©teIaRPD� N�WOcONSR@I_R@WXRPF [yBf?�= ����n� z�B � � �³WOJO[XF=uRPDOF�U�NPNPWGY*hXRPIK?�J �]�*¦�mteDGF=@F��yYZU#d*h`?5NPNPIacObad*?XCCWG=uIKJ � ?�=6�V��iRPDGF�J}° �;� * . � �73���� * . �

�.FR�´ NpJG?�t�R@=Pd*R@?VhO=P?�\�F1RPD`U�R1U�J5RPIav N�dAY*Y*FjRP=@dZIKYVhObaIKF�NpIK=P=@F �`FjlXIa\AIaRSdVBf?�=pcGIKJOU�=@dZ=PF�bKU�RPIK?�JON�VnO¾A?OiOtuF�RP=@dZR@?*^OJO[qUVhG=P?A?�B�v9R@F=@Y½?�B;RSd5h�F

3!��� ��� � . 3 ���Q� & � ' ���� (�) �+* �-,-. � ���P¡ � 1 �0� ��4 � ��� .��F�CjbQU�IKY¨RPDOU�ReRPDGF,R@F=@Y

° ��� ����� .�°��V�Q� & �%' ��� . °����K� (�) �+* �-,-.G� ��� .�° ��� � . °?A���5� � ��� .�� �?�? IQNeU�R@F=@Y¨?�B�R@DGIQNxRSd5h�F�n ��F,DOU#\�F!FJOC?�WGJ5R@F=@F�[MU*or�x<r��R@DGF,\�F�=PIa^`CU�RPIK?�Js?�B;?�WG=eCjbQU�IKY¨IKNh�F=PBf?�=@YVF [scAd*RPDOF!RSdAh�Fjv CEDGF�CEHAIKJGL�U�baL�?�=@I_R@DGYqn ]?�N�RuRSdAh�Fjv CEDGF�CEHAIKJGL�U�baL�?�=@I_R@DGYZNTtx?�=@HsU�NBf?�bKbK?�t1N���n.�4Ia=ENSRrNP?�bK\�F!RPDOF�o1¾X<

�9Cj?�YVhOWXRPF�U�RSdAh`F��³?�B4RPDOF,RPF=@Y° �~� ��� � . °��V�K� & �%' ��� .�°��.�Q� (�) �+* �-,-.G� ��� .�° �;� � . °?A�K�0� � ��� . � � �� ���i

�Gn.opDGFJ]C?�Y*hOU�=@F�RPDGF�C?�Y*hGWXR@F�[MRSdAh`F�teIaRPDyRPDOF�L�IK\�FJwRSdAh`F�mCEDGF CEHsIaB�� § ��� 3!�~� ��� � . 3 ���Q� & � ' ���j� (�) �+* �-,-.G� ���P¡ � 1 �0� ��4 � �����jn

¾A?�U�or�x<©IQNZN�?�ba\�F�[¬c5d�N�?�ba\AIKJGL�U�o1¾X<¨U�JO[«CEDGF CEHAIaJGL�U�J«F ­�W`U�bKI_RSd�n> 1?�R@FqRPDOU�RsRPDOIKNY*FjR@DG?X[�IQN,?�JObad}C?�Y*hGbKFjR@FZI_BxRSdAh`F N�U�=@F ¯�T ��� ¯ZWs¯ � VXSµW � ¯Oª�� � V9¼ �;I_B � DOU�N�RSdAh`F *¨U�J`[RSdAh`FB�si�R@DGFJ *¦§ ��� �Mn��O?�=!RPDGFZU�baL�?�=@I_R@DGY RP?wRPF=@Y*IaJ`U�RPF�tuFVYkW`NSR�U�N@N�WO=PFkRPDOU�R,o1¾X<U�J`[MF ­�W`U�bKI_RSdMCEDOF�CEHAIaJOL*U�=PF,[XF CjIQ[GU�cGbKF�n

�G?�=e?�WG=eFjlGU�YVhObaF,txF,NP?�bK\�F�R@DGF�o1¾X<«NSR@FhqcAdMN�RPFh��XRPDGF�=PF�U�=PF�RStx?VYZU�IaJqNSR@FhON

Page 11: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � �

��n.�G?�=1U*°Gv U�cON�RP=EU�CjRPIK?�Jy° ��� � . ��iXtxF!^`=@N�R1Cj?�Y*hGWGRPF,RPDOF,RSd5h�F,?�B ��iXWGJO[XF�=pRPDGF�FlARP=EUCj?�JO[XIaRPIK?�J¬RPDOU�R ��DOU�N�RSdAh`FD�~n�¾GU#d�tuFy^OJ`[-� U�NkRSdAh�FyBf?�= ��n>opDGF�J�° ��� � . �=PF CjF�Ia\�F�NxRPDOF,RSd5h�F 3!�;� � . �Mn

�Gn.�G?�=pU�JwU�hGhGbKIKC�U�RPIK?�J ���iAtuF!^O=ENSReCj?�YVhOWXRPF�RPDOFrRSdAh�F!?�B �nG¾XU#d*txFr^OJ`[ * U�NuRSdAh`FBf?�= �n�opDGF�JktxFxC?�Y*hGWXR@FTR@DGFxRSd5h�Fx?�B �*i�N@U#d��Vn� r?�t�tuFpCEDGF CEH�teDOFjRPDOF=���=@F�[XW`CjF�NRP?yU*RPF�=PY ?�B�R@DGF�Bf?�=PY 3!�;���2. �Mn`z�BxN�?`iOtxFkCEDGF�CEHyIaB�� § ��� �Vn�z�B�RPDGIQNrIQNrRPDGFVCU�NPF�i�� =PF CjFIK\�F NuRPDGF,RSdAh�F�� � � � ��n

z�B�UVCEDOF�CEHZBmU�IabQNiXtxF�=@FjRPWO=PJ�² BmU�bKNPF�´KiXY*F�U�JGIaJOL�R@DOU�ReR@DGF,RPF�=PY DOU�NpJO?�RSdAh�F�n�G?�=T?�WG=TFlXU�Y*hGbaF1RPF=@Y½° �~� ��� � . °��V�K� & �%' ��� .�°��.�Q� (�) �+* �-,-.G� ��� .�° �;� � .�°?A�Q�0� � ��� . � � �� AitxF,C?�Y*hGWXR@F,RPDGF,RSdAh�F

3���� ����� . 3��V�K� & �%' ��� . 3 ���K� (�) �+* ��,!. � �,� . 3���� � . 3�A�Q�5� � ��� .���£

teIaRPD�� RPDGF!RSdAh`F,?�B � �?�? kWGJO[XF�=TR@DGF�Cj?�J`[XI_R@Ia?�JON6��� �����ji��V�K� & � ' ����i �.�Q� (�) �+* �-,-.G� ����i��� � U�JO[ A�K�0��?���jn� 1?�t�i ���4� (�) �+* �-,-. � ���ji�teDOIKCED�N�DO?�WGbQ[�c�FZU�hGhGbKIKF�[}RP? ��i%?�BTRSdAh`F��n ��Fk=@F�[GWOCjFs� (�) �+* �-,-.G� ���pWGJ5R@Iab;tuF�?�cXR@U�IaJG3���£/ �� � .Q�5� �� G�P¡����0�� @���P¡ � ��n�¾A?Oi � �=@F�CjF�Ia\�F�N!RPDOF*RSd5h�F 3 �� � .Q�5� �� G�P¡����0�� @���P¡ � ��n;opDGFVRPF=@Y � ��DOU�N�U�31v9RSdAh�FZteI_R@D�RPDGF=@IaL�D�R1[X?�YZU�IKJ�� ����iONP?*I_RrC�U�Jyc`F�U�hGhGbKIaF [sR@? ��iG?�cXR@U�IaJOIaJGL

� � ���`�5� � ���P¡ ���0��?���@¡ � � .

opDGIQN1U�L5U�IKJwC�U�Jyc`F�U�hGhGbKIaF [MR@? w�fRSteIKCF ��iO?�cXREU�IKJGIaJOL�� � �� V� � iGN�?Zo1¾X<�^`JO[GNeU�NxRSdAh�F

3!��� ��� � . 3 ���Q� & � ' ��� . 3 �.�Q� (�) �+* �-,-. � ��� . 3!�;� � . 3A�K�0��?��� . � .

��FrF�U�N�IKbKdk\�F�=PIaBfd�RPDOU�R>RPDGIQNTRSd5h�F1IQN3�/� v Cj?�JA\�F=PRPIKcGbKFeteI_R@DZRPDOF![XF N�IK=PF [VRSdAh`FrU�JO[ZCj?�JOCjbKWO[XFRPD`U�R1IKJO[XFF [

° ��� ��� � . °��V�K� & � ' ��� .�° ���Q� (�) �+* �-,!.G� �,� . ° ��� � .�° A���0��?��� . � � �� �3!�~� ��� � . 3 �V�K� & � ' ���j� (�) �+* �-,-.G� ���P¡ � 1 �0� ��4 � ��� .

��FsWGJO[XF�=@N�R@U�JO[}RPDOU�R �~U�JO[ 3©?�B�R@FJ�teIKbabTc`FsW`N�F [�U�N�N�dAJG?�JAd5Y*?�WONi.U�JO[�N�IKY*IabQU�=@bKd%�U�J`[q¡ n

�G=@?�Y R@DGIKNkFjlGU�Y*hGbKF�i%?�JGFsCU�J�L�FjRkUy=@?�WGL�D�IQ[XF�Uq?�BxDO?�t RSdAh`FsNPdAJ5RPDGF N�IQN,tu?�=PHXN���RPDGFN�RP=@WOC�R@WG=PFr?�B�RPDGF1RPF=@Y©[XIKCjR@U�RPF�N>RPDGF1Bf?�=@Y¦?�B�R@DGF1RSdAh�FeRPD`U�RTIQNTNPdAJ�R@DGF�NPIKgF�[.n��G?�=�RPDOF1RSdAh`FNPd5J5R@DGF�NPIKNkU�bKL�?�=@IaRPDGY RP?]R@F=@YVIKJOU�RPFstxFsJGF�F�[�RPDOFMCj?�J5\�F=PRPIKcGIKbaIaRSd�§ ���VR@?�c�FM[XF�CIK[OU�cGbKF�nopDGIQN�IQN�WONPWOU�bKbadkF�N�R@U�cObaIQN�DOF�[VcAd�hG=@?�\5IKJGL�RPD`U�R3�/� v�=PF [XWOCjRPIK?�JVIKN> r?�=@YZU�bKIag�IaJGLZ�mF\�F�=Pd�RPF=@Y� �/� v�=PF [XWOCF�NrRP?qUsJG?�=PYZU�b;Bf?�=@Ys�rU�JO[��u?�J �OWGF�J�RZ�fIaB � ��� v"=@F�[XW`CjF�NrRP?yc�?�RPD89 � U�J`[9 � i�RPDGF�JZRPDGF�=PFrIKNuU>: N�W`CED*RPDOU�Ruc�?�RPD 9 � U�JO[ 9 � �/� v�=PF [XWOCFeRP?B:���n5opDGFJZR@DGFr­5WGF NSR@Ia?�J� � § � �� ���ZCU�J]c�Fk[XF CjIQ[XF�[�c5dy=@F�[XWOCIaJOLZc`?�RPD � U�JO[� R@?sJG?�=PYZU�b.Bf?�=@Y U�JO[]Cj?�Y�vhOU�=PIKJGL*RPDOF�NPF,RPF=@YZN1bKFjlXIQCU�bKbKd�nGz�R!NPDG?�WGbK[qc�F�h�?�IKJ5RPF�[q?�WXR1DGF�=PF�R@DOU�R�Cj?�Y*hOU�=PIKJGL*JG?�=PYZU�bBf?�=@YZN*IKN*?�B�RPF�J«U�\�F=@d�IaJGF sCjIKFJ5RshG=@?ACF�[XWO=PFwBf?�=sCEDGF CEHAIaJGL�C?�JA\�F�=�R@IacGIKbKI_RSd�n{opDOF=@FjBf?�=@F�iRPDOF!Cj?�JA\�F=PRPIKcGIKbaIaRSd*CEDGF�CEHAIKJGLkU�bKL�?�=PIaRPDOY¦teIKbab�=@F�[XWOCFr?�JGbadVIaB�JGF�CF�N@NPU�=Pd�nO�mopDOF=@FrIQNuU�batpU#dXNU�² tu?�=@N�R*C�U�NPF�´>teDOF=@FytxF]=@F�U�bKbKd�DOU#\�FyRP?�L�?�U�bKbeRPDGF]tpU#d�R@?�RPDGF]JG?�=PYZU�bpBf?�=@Y*N�n��Vz JhOU�=�R@IKCWGbKU�=�i�R@DGIKN�YVF U�JON!R@DOU�Rk[XF^OJGIaRPIK?�JON�U�=PF*WGJGBf?�bQ[XF�[�U�N,bKI_RPRPbKFsU�N,h�?�N@N�IKcGbKF��.U�b_R@DG?�WGL�DRPDOF�=@F�U�b%Cj?�Y*hGbKFjlXIaRSdZ?�B{§ � � IQNxIaJwRPDGF+�%v�=@F�[XWOCjRPIK?�JON�i5RPDGF�[GFj^OJGIaRPIK?�J`Nr² DGIQ[XF�´XY*?5NSRe?�B�RPDGF

Page 12: Proof-Assistants Using Dependent Type Systems

��� À��GÄ.�������������������� À��;Ï{������������%v�=PF [XFjlXF Nn�opDOIKN�CU�J�c�FwNPFF�J�Bf=P?�Y R@DGFsBmU�C�R�R@DOU�RVhG=P?A?�B�v9R@F=@Y*NkU�=@FsU�bKYV?5NSRkU�batpU#dXN�IKJ�%v�JG?�=@YZU�bOBf?�=@Y �mcGWXReCjF�=�REU�IKJGbad*JG?�RuIKJ�� v�JG?�=@YZU�bGBf?�=PYs�jnA¾AF�F,� ¶ � � �$�%������U�JO[Z\�U�JM�xFJXvRPDOFY���WGR�RPIKJGL`i� �C��,IaJGJ`UsU�JO[]<{?�babQU�CEH �������� �%Bf?�=!YV?�=PF�IKJXBf?�=PYZU�R@Ia?�Jq?�JqRSdAh`Fv�CEDOF�CEHAIaJOLU�J`[sCEDGF�CEHAIKJGLkC?�JA\�F�=�R@IacGIKbKI_RSdVIaJy[XFh�FJ`[XFJ5RxRSd5h�F1R@DGF?�=PIKF�N�n5z Jw¾AF�CjRPIK?�J��On ��tuF�[XIQNPCWONPNuIKJ[XFR@U�IKb�U�RSdAh`Fv�CEDOF�CEHAIaJOLVU�baL�?�=@I_R@DGY©Bf?�=1?�JGF�N�h�F�CI_^�CrRSdAh�F�N�dXN�RPF�Yyn

!#" " 0 TZVwW��®AW � � S� ��S ' � �@ª���±E�Pª�®AW � S��P¸U[��DOU�R>DOU�N4c�FFJZ[XF NPC=PIKc�F�[�IaJVRPDOFehG=PF�\AIa?�WON;RStu?�¾AF�CjRPIK?�JON>IKN�NP?�Y*FjR@IaY*F N�CU�bKbKF�[kRPDGF º � ��W@�YVFJ`Cj?X[XIKJGL*?�B{ba?�L�IQC!IKJyRSdAh`F�RPDOF?�=@d�nGopDOF�ba?�L�IQCU�b%C?�JON�RP=@WOC�R@Ia?�JON��mC?�JGJOF�C�R@Ia\�F�NE�uF�U�CEDyDOU#\�FU�Cj?�WGJ5RPF�=PhOU�=�R>IKJVRPDGFrRSdAh`FpR@DGF?�=Pd�iO� ®r��� � �EªUV � SUT i�Bf?�=TFlXU�Y*hGbaF�i�IQN�Y*Ia=@=P?�=PF [Vc5dkRPDGF ª����ÒS �V"¼@��W IKJsRSdAh�FrR@DGF?�=Pd�n ]?�=@F?�\�F= i�RPDGF�FbKIKYVIKJOU�RPIK?�JwU�JO[sIKJ5RP=@?X[XWOC�R@Ia?�JM=@WGbKF�NuBf?�=pU�C?�JGJOF�C�vRPIK\�F*U�bQNP?MDOU#\�F�RPDOFIK=,C?�WGJ5R@F=@hOU�=PR!IKJ}RSdAh�FkR@DGF?�=Pd��"°Xv U�cON�RP=EU�CjRPIK?�J�YVIK=@=P?�=@NrIaY*hGbKIKC�U�R@Ia?�JIKJ�R@=P?X[XW`C�RPIK?�J�U�JO[�U�hGhGbKIKC�U�RPIK?�J�Y*IK=P=@?�=EN�IKY*hGbaIQCU�RPIK?�J�F�baIKY*IaJ`U�RPIK?�J���n4z J�RPDGFw=PF NSR�?�BeRPDOIKNhOU�h`F�=TtxF1=PF NSR@=PIQC�Ru?�WG=EN�F�ba\�F�N4R@?�RPDOIKNu[XIa=@F�CjRuF�JOCj?X[XIKJGLOn5opDGF=@F1IQNi�DG?�txF\�F�=�i�UkN�F Cj?�J`[*txU#d?�B.IKJ5RPF�=PhG=@FjR@IaJOL�ba?�L�IQC1IKJZRSdAh`F!RPDOF?�=@d�i�teDGIQCEDsIKNxCU�babKF�[ZRPDGF ��S ' � �Eª���±E�@ª�® W � S��P¸g[ FJOC?A[GIaJGL?�=*U�bQNP?�RPDOF [P·Oª�����S ��FJ`Cj?X[XIKJGLOn | N�R@DGFwJ`U�Y*FyU�ba=@F�U�[Xd�IaJ`[XIKC�U�R@F�N�i;R@DGFwRSd5h�FyRPDGF�?�=@d�IKNRPDOFJ]WONPF�[]U�N1U ��S ' � �Eª��5±E�Pª�®AW � S��P¸ i%U*Y*FjR@UMN�dXN�RPFY Bf?�=rFJOC?A[GIaJGLZ?�JGF�Nr?�teJqba?�L�IQC�nOopDGFFJ`Cj?X[XIKJGLZ?�B{U*ba?�L�IQC���IQN1[X?�JGF�cAdMCEDG?A?�NPIaJOL*U�JyU�hGhG=@?�hG=@IQU�RPF,Cj?�J5RPFjlAR ( � iGIaJqteDGIQCEDwRPDGFbQU�JGL�WOU�L�FZ?�B��½�mIaJOCbaW`[XIaJOL}R@DGFwC?�JGJGF C�R@Ia\�F�NE��U�JO[�R@DGFyhG=P?A?�Bp=@WGbKF�N�U�=@FM[XF�CbKU�=PF [%n;opDOIKNCj?�J5RPFjlAR,IKN�WONPWOU�babKd�CU�babKF�[�U [ � 'uT�ªUV"¯X�ÒW n�z J}R@DGFZ[XIa=@F�CjR�F�JOCj?X[XIKJGL`i�UyCj?�J5RPFjlAR,IKN�WONPF�[�Bf?�=[XF CjbQU�=@IaJGLM\#U�=PIQU�cObaF N��fF�n L`n�[XF CjbQU�=@IaJOLZRPDOU�RrR@DGF�\�U�=PIQU�cGbKF���IKN!?�BT[X?�YZU�IKJ *!�r?�=1Bf?�=!YZU�H�vIKJGLMU�N@NPWGY*hXRPIK?�JON��fcAd][XF�CbKU�=PIKJGL��y���xiOBf?�=��«UZhG=@?�h�?�NPI_R@Ia?�J.iOtxF ªU[�[�¯X® W �{�jn`z J}ba?�L�IQCU�bBf=EU�Y*Ftx?�=@HXNi�RPDGF�Cj?�J5RPFjlARxIKNxWONPF�[wU�bQN�?kRP?y² [GF�CjbQU�=@F�´�RPDOF!bK?�L�IKC!I_REN�F�b_BSn ¶ JGF�?�B�RPDGF,=@F�U�NP?�J`NRPD`U�RZ�fF\�FJ�=EU�R@DGF=�N�IKY*hGbKF �pRSdAh�FVNPdXNSR@FYZN1hO=P?�\AIQ[XF�UZ\�F=@dwh�?�txF=PBfWGb;bK?�L�IKC�U�b�Bf=@U�YVF�tu?�=PHIQN{RPDOU�R>RSdAh`F1RPDGF�?�=@dkIQN�\�F�=PdkU�CCWG=@U�RPFpIKJs[XF�U�baIKJGL�teIaRPDZ\�U�=@IKU�cGbKF�Ne�fcOIaJO[GIaJGL`i�NPWGcON�RPIaRPWXR@Ia?�J.i� v�C?�JA\�F�=@NPIa?�J`��n��1F�JOCjF�i�teDOFJ}F�JOCj?X[XIKJGLqUsbK?�L�IKC�i�U�bab{IQNPNPWGF�N�[XF U�bKIaJGLwteI_R@D�\�U�=PIQU�cGbKF�N!CU�Jc�F�bKFjB�ReR@?kR@DGF�RSdAh`F�RPDOF?�=@d��5RPDGF,bK?�L�IQCU�b�Bf=@U�YVF�tu?�=PH*IQNxWON�F [wU�NuRPDGF,WGJO[GF=@badAIKJGLVC�U�bQCjWGbKWONBf?�=eNPWGcON�RPIaRPWXR@Ia?�J]U�JO[McGIaJ`[XIaJOLOnG�1?�t�RPDGIQNptx?�=@HANuhG=@F�CIKNPFbKdZIKNpIKbKbaWON�RP=EU�R@F�[Mc5dsRPDG=@FF,N�YZU�babFjlGU�YVhObaF Nn��O?�=�BfWO=�R@DGF=x[XFjREU�IKbKNT?�J*ba?�L�IQCU�bXBf=@U�Y*Ftx?�=@HAN{txFe=@FjBfF=>RP?V�uDOU�hXRPF�=����!z�?�B�RPDOIKN\�?�baWOYVF!?�=xRP?*�rU�=Ph�F= iA�1?�J`N�F�bab%U�J`[M<>bK?�R@HAIaJ � �$�%��� ��?�=x[XF,�x=PWOI SJ ������& �"n5z�ReN�DG?�WGbQ[MU�bQNP?c�F�=@FYZU�=PH�F�[ZDGF�=PF�R@DOU�R iXF\�F�JsR@DG?�WGL�DwtxF,[X?*JG?�RpRP=@F�U�RuR@DGF�RPF CEDGJGIQCU�b.[GFjR@U�IabQNx?�B4ba?�L�IQCU�bBf=EU�Y*Ftx?�=@HXNuc`U�NPF�[y?�JyRSdAh`F�RPDGF�?�=@dwU�J`[MR@DGF�F�JOCj?X[XIKJGLZ?�B{bK?�L�IQCNpIKJqRPDOFYqiOY�WOCEDq?�B�?�WG=[XIQNPCWON@N�IK?�JON�U�bKNP?�U�hGhObadkRP?,RPDOF�NPFpRSd5h�F1NPdAN�RPF�YZNi�JO?�R@U�cGbKd�RPDOFeIKN@N�WOFe?�B�RSd5h�F1CEDGF CEH5IKJGL`n ��FJG?�t =PF CU�hOI_R@WGbKU�RPF�RPDOF�Y*U�IaJq[XIaµ�F�=PF�JOCjF Nec�FjRStxFFJwRPDOF,RStu?*FJ`Cj?X[XIKJGL�N�n

�rIK=PF C�R1F�JOCj?X[XIKJGL ¾ADOU�babK?�t�F�JOCj?X[XIKJGL¶ JGF�RSd5h�F�NPdAN�RPF�Y � ¶ JGF,bK?�L�IKC ¶ JGF�RSdAh`F�NPdXNSR@FY � �U�JAdsbK?�L�IKC�N�.?�L�IKC�U�b�=@WGbaF N�� RSdAh�F,RPDGF�?�=@FjRPIQC�=PWObaF N �.?�L�IQCU�b�=@WGbKF�N����u?�J5RPFlARe[GF�CjbQU�=EU�R@Ia?�JON

opDGF1FJ`Cj?X[XIKJGL�?�B%bK?�L�IQCN{IKJsU,bK?�L�IQCU�bXBf=EU�Y*Ftx?�=@H�cOU�NPF�[*?�JVRSd5h�FeR@DGF?�=Pd�teIabKbOc�FrNPDG?�teJcAdsL�IK\AIaJOL�R@DG=@FF,FjlGU�Y*hGbKF�N��n.opDGFB<7� A�v9Bf=EU�L�Y*FJ5Ru?�B4Y*IKJGIaYZU�b.hG=@?�h�?�NPI_R@Ia?�JOU�b�bK?�L�IQC�i�Gn.opDGFB<7��£$�,A�v9Bf=EU�L�YVF�J5RT?�B{Y*IaJGIKYZU�b.hO=PF [XIKC�U�R@F�bK?�L�IKC�i

Page 13: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � &

�On.opDGF�WGJ5RSdAh`F []°Xv CU�bKCWGbaW`Nn

�]� T � ®Zª��G���ÒSE��SU[ � V � SUT�ª��4��S ' � �opDGF�Bf?�=@YkWGbQU�N�U�=@FVcGWGIKb_R�WGh}Bf=P?�Y U�RP?�Y*IKC�?�JGF N�WON�IKJGLyIaY*hGbKIQCU�R@Ia?�J¬� �r�!U�Nr?�JGbKd]ba?�L�IQCU�b?�h�F=EU�R@?�= n�z JZ?�=E[XF={R@?,RP=EU�JONPbQU�RPFehO=P?�h`?5N�IaRPIK?�JON�U�N{RSdAh`F Ni�?�JGFeh�?�N�RPWObKU�RPF�N�RPDGF�²�NPIaL�JOU�R@WG=PF�´a�

�%���#� ��������� � �Xn � �*2. � � �%����� ¡ �%���#� ¡ �%���#� � �Xn ���

 1?�t [XFj^`JGF,RPDGF�F�JOCj?X[XIKJGL*?�B{hG=@?�h�?�NPI_R@Ia?�JON�� ����U�NxBf?�bKba?�t1N�n

� *��-� �.§ *2. � � * � � �!� .

opDGF�J ?�JGF DOU�N�Bf?�=«FjlGU�Y*hGbKF � * � * � § *2. � � * � � * ��U�JO[ � * � * � � � §*2. � � * ��� *2. � � * � � � �f��n�opDGFxRSdAh�F �%���#� CU�Jkc�FeN�F�FJ�U�N.R@DGFxRSdAh`Fx?�B.² JOU�YVF N´#?�BOhG=@?�h�?�NPI_R@Ia?�JON�UkRPF=@Y½?�B�RSdAh`F �%���#� IQNpJG?�R1U�hG=@?�h�?�NPI_R@Ia?�JMIaR@NPFbaBSiXc`F CU�W`N�F,IaReC�U�JwJG?�Rec�F�IKJGDOU�cGIaRPF�[��fI"n F�nhG=@?�\�F [O��i�U�N4IaR�IKN4JG?�R�UrRSdAh`F�n�z J�?�=@[GF=4RP?,NSREU�R@FuR@DOU�R�F�n L`n � *'� * �GIQN{\#U�baIQ[%i�?�JGFuIKJ5RP?X[XWOCF�NRPDOF,Bf?�bKba?�teIKJGL*YZU�h.�

� � �%���#� ¡������� . � �Xn ���

opDGFVIaJ5R@FJO[XF [}Y*F U�JGIKJGLy?�B � ,}IQNk² RPDOF*C?�bKbaF C�R@Ia?�J~��RSdAh�F �!?�BxhG=P?A?�BmNr?�B/,�´Ki%N�? � YZU�h`N�U² JOU�Y*F�´5?�B.U�hO=P?�h`?5N�IaRPIK?�J*R@?�RPDGFrRSdAh`F!?�B.IaR@N>hO=P?A?�BmN�n�opDOF=@FjBf?�=@F1IaRuIQN>JOU�RPWG=EU�bORP?�IKJ5RPF�=PhG=@FjR² ,}IQN1\�U�bKIK[.´`cAd�² � ,�IKN!IKJGDOU�cOI_R@F�[%´Kn`z J}?�=E[XF=eR@?wNPDG?�t JG?�t RPDOU�RrR@U�WXRP?�ba?�L�IKF�NebKIKH�F1* � *U�=@F,\�U�bKIK[wIaJyR@DGIKNrN�F�JON�FZ�9U�B�RPF�=eRP=EU�J`N�bQU�R@Ia?�J`��iA?�JOF�h`?5NSR@WGbKU�RPF N

*2. � * ) � � � 3�,�£E�� �%���#� .Q� � ,%¡ � ��P¡ � �3*2. � , ���£ � �Xn �5�*2. � �%' � 3�,�£E�� �%���#� . � �3*2. � , ��P¡ � ,�¡ � �. � �Xn���

opDGF�JyIKJO[XF�F�[wRPDOF,RP=EU�JONPbKU�RPIK?�Jw?�B{F�n LOn *'� *�iGteDGIQCEDyIKN *2. � � * � � * �"iOc`F Cj?�Y*F Np\#U�baIQ[%�

*2. � * ) � � � * � � * � �9° ��� � � * � . ���x� � �3*2. � � * � � * ���j£

NPIaJOCF}CjbKF�U�=PbKd �"° �;� � � * � . ������� � � * �f¡ � � * �f��ne¾AIKYVIKbQU�=@bad�?�JGF�C�U�J C?�JON�RP=@WOC�RwhG=P?A?�BmN*Bf?�=?�R@DGF=,REU�WXR@?�bK?�L�IaF NV�mF�n LOnT� * � * �C��� � * � �Mn.z J�BmU�CjR,?�JGFsCU�J�NPDG?�t¦c5d�U�J�F�U�N�dIKJO[XWOCjRPIK?�Jq?�Jq[XF=@IK\#U�RPIK?�JONpIKJyRPDGF�bK?�L�IKC �¬RPD`U�R

� ������� * � 5��������4£ � � � �%����� £ . . .�£ ���� �%����� � ,]� � � * ��£pBf?�=1NP?�Y*F , .

�1F�=PF8< ��� . . .£ � � A]IQNVRPDGF�NPFjRs?�B!cOU�N�IQCyhG=P?�h`?5N�IaRPIK?�J�N�dAY�c`?�bKN*IKJ * U�JO[)5�������«IQNVRPDGF[ � '�T�ªUV"¯X�ÒW ?�B;?�WG=xY*IaJGIKYZU�b%hG=@?�h�?�NPIaRPIK?�JOU�bObK?�L�IQC ������ iAI"n F�n5RPDGF,N�FRx?�B;[XF CjbQU�=EU�RPIK?�J`Nr� �v����n<>=@?�h�F=PRSd�� �5�rIQN�CU�babKF�[ ª�ºGW � ¯Oª��¼ ?�=,NP?�WOJO[XJGF NPN�?�BuRPDGF*F�JOCj?X[XIKJGLOn.opDOF*C?�JA\�F�=@NPFk?�BTIaR�i±jª � Vf·�±E¯X�·TIW�[�[ �f?�=1Cj?�YVhObaFRPFJOF�N@N@�jiXIKN1U�bKNP?V\#U�baIQ[%iGcOWXR1Y*?�=@F�IKJA\�?�ba\�F�[ZR@?ZhG=@?�\�F�n

Page 14: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{������������]� T � ®Zª��G���ÒWEº � �Eª�VXW���S ' � ���F�Cj?�JONPIK[XF�=1R@DGF <@��£ �,A�v9Bf=EU�L�Y*FJ5Rx?�Br�f?�JGFjv N�?�=�R@F�[O�xhO=PF [XIKC�U�R@F�ba?�L�IQC�n�¾AWGhGh�?�NPFktxF�DOU#\�FU*bK?�L�IQCU�b.N�IKL�J`U�RPWO=PF�teIaRPD]?�JGF�Cj?�JONSREU�J5R�iO?�JGF�WGJ`U�=@dsBfWGJOCjRPIK?�J�U�JO[q?�JGF�cOIaJOU�=Pdw=PF�bKU�RPIK?�J.nopDGIQN1U�Y*?�WGJ5R@NuRP?*R@DGF,Bf?�bKba?�teIKJGLq��^O=EN�R1hOU�=PRe?�B4RPDGF#�uRSd5h�F,RPDOF?�=@FjR@IKC,NPIaL�JOU�R@WG=@F�n

�%���#� � ������X£ � �Xn ���( � ������X£ � �Xn����� � ( £ � �Xn ���� � ( ¡ ( £ � �Xn ���& � ( ¡ ( ¡ �%����� £ � �Xn �$&5�

*2. � � �%���#� ¡ � ����� ¡ �%���#� £ � �Xn ���#�*2. � * ) � � � 3�,�£E�� �%���#� .Q� � ,%¡ � ��P¡ � �3*2. � , ���£ � �Xn � ���*2. � �%' � 3�,�£E�� �%���#� . � �3*2. � , ��P¡ � ,�¡ � �. � �Xn ���5�

opDGIQNuC?�\�F�=@N4R@DGFrbQU�JGL�WOU�L�F1U�JO[ZRPDGF!IaY*hGbKIKC�U�R@Ia?�JOU�b`hOU�=PR!�mC?�hGIKF�[ZBf=P?�Y³R@DGFrbK?�L�IKC1< � ¶ <u��n 1?�t ?�JGF�DOU�NxRP?*FJOC?X[XF!�{iXteDGIQCEDwIQNe[X?�JOF!cAds?�cON�F�=P\AIKJGL�R@DOU�R �qR@U�H�F NxU�BfWGJ`C�RPIK?�JwBf=@?�Y( RP? � ����� i����x� ( ¡ �%���#� �P¡ �%����� n4opDGFsIKJ�R@=P?X[XW`C�RPIK?�J�U�JO[�FbKIaY*IKJOU�R@Ia?�J�=PWObaF N,Bf?�=��¬U�=@FRPDOFJq=PF�YZU�=@H#U�cGbKdsNSR@=@U�IaL�D�RPBf?�=@txU�=@[.n

� ����� ' ' � � ( ¡ �%���#� �P¡ �%���#� £ � �Xn � �A�� ����� ' ' * ) � � � 3�9*� ( ¡ �%���#� .Q� 3���� ( . � � 9 �����@¡ � � � ����� ' ' 9���£ � �Xn � ��� ����� ' ' �%' *2. � 3�9*� ( ¡ �%���#� . � � � ����� ' ' 9��@¡�3���� ( . � � 9 ��� . � �Xn � �5�

 1?�t�txF�RP=EU�JONPbQU�RPF,WGJOIa\�F=ENPU�b�­5WOU�J5RPIa^`CU�RPIK?�JqU�NxBf?�bKbK?�t1Nn� ���;� * . 9 � �%§ � ����� ' '��"° �;� * . � 9 � �f� .

opDGF�hG=@?A?�B4?�B4U�JqIaY*hGbKIKC�U�R@Ia?�JwbKIaH�F� �O� *k� ����£� �� * . � �� G� � ��� �

IQNpJG?�t�Y*IK=P=@?�=@F�[Mc5dMRPDGF�hO=P?A?�B�v"RPF�=PY� ����� ' ' * ) � � � � �9° �O� ( . *2. � * ) � � � � � ���"° ��� � � � ���;£/ �� * . � �� %�f� . � ����� ' ' �%' *2.+� ��� � ����� ' ' � ' *2.+� � � �5�P����£teDGF�=PF�tuF�D`U#\�F�=@FhGbQU�CF�[�yBf?�=�=PF U�[GU�cGIabKIaRSd�MR@DGFVIaJON�R@U�J5RPIQU�RPIK?�J`N1?�B�R@DGFB3ev"RSd5h�FkcAd�� �"nopDGIQNpRPF�=PY�IKNe?�B�RSdAh�F

� ����� ' '_�"° �`� ( . *2. � � � ����� ' '��9° ��� ( .Q� � ����� ' '_�9°� �� ( . & �� G�����P�j� & � �A��� .| L�U�IaJy?�JOF,C�U�JqhG=@?�\�F,U�[XF ­5WOU�Cd

� ������ � � 5������� x£ � � � ( £ . . .�£ � �.� ( � ,]� � � � ��£xBf?�=1NP?�Y*F ,�£teDGF�=PF8< � � £ . . .j£ � � A]IKN*R@DGF�NPFjRs?�B�Bf=@FFq\�U�=@IKU�cGbaF N*IaJ �¦U�JO[�5 ������ IKNZRPDGF�NPIaL�JOU�R@WG=@FCj?�JONPIKN�RPIKJGL*?�B;RPDGF�[XF CjbQU�=EU�R@Ia?�JON,� ��� � �5��nG�OU�I_R@DXBfWGbKJGF�N@N1C�U�Jyc`F�hG=@?�\�F [MU�NptuF�bab"n

Page 15: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � �

� T�V9¼@�ZWEº ° ¹��Eª��a�¯X��¯�[<{F=@DOU�hON�YV?�=PFZWOJGFjlXh�F�C�R@F�[�IQN,RPDOU�R�WGJ5RSdAh`F [�°Xv CU�bKCWGbaW`N�CU�J�c�FsY*?X[XFbKF�[�IKJ�Uq=EU�R@DGF=NPIaY*hGbKF�RSdAh�F�RPDOF?�=@d �fRPDGF�N@U�Y*F}U�NsBf?�=y< � ( � U�J`[�< � ¶ <u�jnuopDGF�JOFF�[GF�[ NPIaL�JOU�R@WG=@F5�� ��������pJG?�t IKN

� �������X� � �Xn ������-�!� � ¡ � ¡ �j� � �Xn � �5����� � � ¡ �P¡ . � �Xn �$�5�

 1?�t F�\�F�=Pdy\�U�=@IKU�cGbaF ��IKJ�R@DGFZ°Xv CU�bKCWGbaW`NrIQN�=PF�hG=PF N�F�J5RPF�[qcAdqR@DGF�\�U�=PIQU�cGbKF���� IaJ�RPDGFRSdAh`F�NPdXNSR@FYqnGopDGF,R@=@U�JON�bQU�R@Ia?�JM?�B4WGJ5RSdAh�F�[]°Xv"RPF�=PYZNpIQN1[XF^OJGF�[qU�NxBf?�bKba?�t1N�n

� � � § �;�� 9�: � § �-�-� � 9 � � : ���

� ° ��. 9 � § ���� �9° ��� . � 9 �f� .

��F!JG?�t�DOU#\�FeR@?�FlXhG=PF NPNTRPD`U�RpF�n LOn%�9° �/. ��� Z§ �iAU�JO[ZR@DGFJwtuF�DOU#\�FeRP?VhG=@?�\�FeR@DOU�RpRPDOIKNF�­5WOU�baIaRSdsIQNp\�U�bKIK[%n | NpR@?�R@DGF�N�R@U�R@FY*FJ5R1?�B;F�­5WOU�baIaRPIKF�N�iG?�JGF�[XF�CbKU�=PF NxU�R@F=@Y

���`� ¡ ¡������� . � �Xn � &5�

opDGF�°Gv CU�bQCjWObaWONsF�­5WOU�R@Ia?�J)9 §;: IQNsJG?�t RP=EU�JONPbQU�RPF [«U�N*R@DGF]RSdAh`F ��� � 9 � � : ��nuopDGF\�U�bKIK[GI_RSdZ?�B.RPDGIQNxF�­5WOU�RPIK?�JMIQNxcAds[XFj^OJOI_R@Ia?�JMF�­5WGIK\�U�bKFJ5RxRP?�RPDGF�IaJODOU�cGIaR@U�RPIK?�Jw?�B.R@DGIKNxRSdAh�F�nz Jq?�=E[XF=xR@?VF�JONPWG=PF�R@DGIKN1tuF�JGF�F�[MRPDGF,Bf?�babK?�teIKJGLZU�lXIa?�YZNn

� � 4 � 3���� . ��� � �;£ � �Xn � �#� ,!. � 3���£/ �� . ��� � O¡ ��� ��;£ � �Xn ����

� ���-)� � 3���£/ �£ �O� . ��� � O¡ ��� �X¡ ��� ���`£ � �Xn � �5�. �#) � 3���£ ����£ �`£ ����� . ��� �?���f¡ ����� ���K¡ ����� �-�-� � ���� �-�-� ��� ���Q��£ � �Xn ���A�

� * � 3 �p£�*� ¡ .K��3!��� . ������� ���j��� �����@¡ ����� ���� ���j� ���� ����£ � �Xn ����� ��� � � 3 �*� ¡ . 3!��� . ����� �-�-� � ���� ���$���j� � ��� . � �Xn � �5�

 1?�t�?�JGF�CU�JyhO=P?A?�B;RPDGF�U�[XF�­5WOU�Cjd

9 § � : � 5�� ��������£ � � � £ . . .£E� � � � ,]�%��� � 9 � � : ��£xBf?�=1NP?�Y*F ,/.

�1F�=PF�i?� � £ . . .�£ � �qIKNrRPDGF�baIQN�R!?�B�Bf=@FF�\�U�=@IKU�cGbaF NeIKJ 9�:¨U�J`[ 5 � ��������� IQN1R@DGF�NPIKL�JOU�RPWG=@F,Bf?�=WGJ5RSdAh`F [w°Gv�C�U�bQCjWGbKWON�i5C?�JONPIQNSR@IaJGL�?�B;[GF�CjbQU�=EU�R@Ia?�JONr� ��� � � �5��n | L�U�IaJMRPDGF�?�hOh`?5N�IaRPF!IaY*hGbKIKC�U�vRPIK?�J�iXBmU�IaRPDXBfWObaJGF NPN�iOU�bKNP?�DO?�bQ[GNn

opDGFxRPDG=@FFpFjlGU�YVhObaF N�N�DG?�t�RPDOU�R{W`N�IKJGL�RSdAh`FxRPDOF?�=@IKF�N{U�N{bK?�L�IKC�U�b5Bf=@U�Y*Ftx?�=@H�IQN �OFlAIKcGbKF�icGWXRrNP?�Y*F�teDOU�RxRPIK=PF N�?�Y*F�n (>\�F=@d5RPDGIKJGLVDOU�NuRP?*c�F�N�h�FbKbKF�[y?�WXR n ¶ B4C?�WG=EN�F�iAIaJ]U*Cj?�JOCj=@FjR@FIKYVhObaF�YVF�J5R@U�R@Ia?�J�R@DGIKNZC�U�J¬c`Fy?�\�F�=@C?�Y*FscAd�DOU#\AIaJOL�NP?�Y*Fw?�B1RPDOFyU�=PL�WGY*FJ5R@N�IaJGBfF=@=PF [U�WGRP?�YZU�RPIQCU�bKbKd�n. 1?�RPFZR@DOU�R�Bf?�=�F�U�CED}Bf?�=PYZU�baIKg�U�RPIK?�J�RPDGFZBmU�I_R@DXBfWGbKJGF�N@N�D`U�N,R@?]c`FZhG=@?�\�F [NPFhOU�=@U�RPFbKd�n

Page 16: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{�����������!#"���"�� ¯�T���V � SUTZ[��ª�� ';S�� � Vf·A® [�»gW�c[�¯�[ '��PªE�G·;[z J,RSdAh`F{R@DGF?�=PdrRPDGF�=PF�IQN.UxRSdAh�F>?�B ±E¯�T��YV � S�T�[ *,¡%�MijBf?�=�*�U�JO[ ��RSdAh�F�N�n ��DGIQCED,BfWGJOCjRPIK?�JONRPDOF=@FVU�=PFV[XFh�FJO[ON,?�J�R@DGF*[XF=@Ia\�U�RPIK?�J}=@WGbKF�N!RPD`U�R�RPFbKb�WON�DG?�t R@?yC?�JON�RP=@WOCjRrBfWGJOCjRPIK?�JON�n�rNPWOU�babKd}�mCF=PR@U�IaJGbKdZBf?�=pRPDGF�NPdXNSR@FYZNpIaJwRPDOIKNeh`U�h�F=��TtxF�N�F�F�RPDG=@FF,tpU#dANx?�B{C?�JON�RP=@WOC�R@IaJOLBfWGJOCjRPIK?�JON�n� | lXIK?�YZU�R@IKC�U�bKbadM[GF�CjbQU�=@F��]�#*�¡���Bf?�=1UVJGFt NPd5Y�c`?�b��4n� ��Ia\�FJMRPDOU�R � � �¦IaJyU�C?�J5RPFl5RpCj?�J�REU�IKJGIKJGL>����*¦�9U�JO[MJG?�?�RPDGF�=x[GFh�FJO[XF�JOCjIKF�Nx?�J��IKJMR@DGF�Cj?�J�R@FjlARE�jiGtxF,C?�JON�RP=@WOCjR�iXWONPIaJOL*RPDGFk°Gv"=@WGbKF�i

° ��� * . � ��*�¡�� .

� �rIQU*hG=@IaY*IaRPIK\�F,=PF CjWG=ENPIa?�J.�AL�IK\�FJD�!� �¨U�J`[y�}� ) � �@¡%�*¡%�©txF�CU�JqCj?�JON�RP=@WOC�R

& � � �%�]� )�� �@¡�� .

opDGF N�FkBfWGJOC�R@Ia?�JON�U�bQN�? �cS�®1��¯�VXW ��RPDGF�=PFVU�=@F�=PF [XWOCjRPIK?�J�=@WGbKF�NrU�NPNP?XCjIQU�R@F�[yRP?MRPDGF�Yqi`R@DGF �U�J`[���=PWGbKF�N��

�9° ��� * . � � ¡ � � � � ��£& � � �%� & ¡�� �#£

& � � �%���0��B��� ¡�� �!��� & � � �%����� .

¾A?`i�RPF�=PYZNT?�B�RSdAh`F *,¡%�³[XFJG?�RPF ª�� ';S�� � Vf·A® [ iAteDG?5N�Fe?�h`F�=@U�RPIK?�JOU�bONPFYZU�J5RPIQCN>IKNTL�IK\�FJ*cAdRPDOF1=PF [XWOCjRPIK?�J*=PWObaF Nn�z JVR@DGIKNT\AIaF�t¬txF1CU�J*NPFF1U�[GF�CjbQU�=EU�R@Ia?�J*����*,¡%� U�N>U�Jy² WGJGHAJG?�teJ.´U�bKL�?�=PIaRPDOYyn

| R4R@DGFeNPU�Y*FTR@IaY*FxRPDGFeNPFjRPv9R@DGF?�=PFRPIQCuC?�JOCFhXR�?�B�U ±E¯�T���V � SUTqªg[1ª '��Pª@�O· IKN�U�bKNP?�hG=PF N�F�J5RIKJ}RSdAh�FkR@DGF?�=Pd�n�z�B���� *�¡-�V¡ ������� �0�©IKN�UwcGIKJOU�=@dq=PF�bKU�RPIK?�J�?�\�F= *©U�JO[ ����U�JO[}tuFDOU#\�FVUyhG=@?A?�B�v"RPF=@Y ?�BxRSdAh`F �2��� * . � $ �� � . � �� �i%RPDOFJ�tuFZCU�J�?�BpC?�WG=ENPF�\AIKFt R@DGIQN��U�NUyBfWGJOCjRPIK?�J��mL�=EU�hGD���IaJ�R@DGFMNPFjR�v"RPDOF?�=@FjR@IKC*tpU#d�n. r?�R@F�i�DO?�tuF�\�F= i�RPD`U�RktxFZDOU#\�FZJO?]txU#d?�B�=PF U�bKbad�REU�bKH5IKJGL�U�c�?�WGR�R@DGF�² �!v�IaYZU�L�F�´4?�B,U}L�Ia\�FJ � � *ki�c`F CU�WON�FytxFqC�U�J.´ RZL�IK\�FwI_RU�J`U�Y*F��mbaIKH�Fq�{� �X���jn{z J�RPF�=PYZNV?�BeBf?�=PYZU�bubK?�L�IKC�i�R@DGFw?�JGbKd�tpU#d�RP?�WON�FyIaRVIQNVWGJO[XF�=VU�J�5v�FbKIaY*IKJOU�R@Ia?�J.iGteDGF�=PF�txF�DOU#\�F�L�Ia\�FJwRPDGF wU*JOU�YVF �MbK?XCU�babKd �wU�J`[wtxF�HAJG?�t I_ReR@?Zc`FWGJGIQ­5WGF�nG¾A?�RPDOF�NPFjRPv9R@DGF?�=PFRPIQCrCj?�JOCjF�hXRp?�B>² BfWGJOCjRPIK?�J.´X[X?AF�NPJ.´ RxL�Ia\�FrWONpU�JwU�bKL�?�=PIaRPDOY¦R@DOU�RCj?�Y*hGWXRPF Nn.o;?y=PF�YVF [XdqRPDOIKN�NPIaRPWOU�RPIK?�J}?�JGF*CU�J�U�[O[}UqCj?�JONSREU�J5R �}�uDAWG=ECED � �$���%&��{WONPF�NRPDOF�4Bf?�=xRPDGIQN �*RPDOU�RpFlARP=EU�C�RENpUs² teI_R@JGF�N@N�´�Bf=@?�Y UkhG=@F�[GIKC�U�RPF�nAz J]�uDAWG=ECED.´ NTDGIKL�DOF=p?�=E[XF=bK?�L�IQC�i`I_B�9©IKN�UshG=@F�[GIKC�U�RPFk?�\�F= *��mI9n F�n�9½� *,¡ � ���#� IaJ�RSd5h�Fjv"RPDOF?�=@FjR@IKC�U�b�RPF=@YZN@�jiOR@DGFJ��9©��* U�JO[wRPDGF�=PF�IQN1U�JqU�lXIa?�Y N@U#d5IKJGL>�29*� *�¡ � ���#� ��� $ �;� * . 9 ���u¡ 9Z����9���n�¾A?OiGIaB{RPDGF�=PFIQN�UrWGJOIK­5WGFpFbKFY*F�J�R{Bf?�=4teDOIKCEDB9�DG?�bK[GN�i#RPDOFJ�� 9 [XFJO?�RPF N;RPDGIQN{FbKFY*FJ5R i�?�RPDOF=@teIKNPF ��9�IKNU�JZU�=PcGIaRP=EU�=@d�WGJONPh�F�CjIa^OF [*FbKFY*FJ5R�n ¶ c5\AIK?�WONPbKd�i#RPDOFebKU�R�RPF�=TU�NPh�F�C�R>?�B`R@DGF��%IKN�JO?�RTNP?�JGIKCF�iF�NPh�F�CjIQU�bKbKdyIKJ�UMNPdAN�RPF�Y teI_R@D�IKJO[XW`C�RPIK\�F�RSdAh`F N�baIKH�F )�� �ji�teDGF�=PFVtuF�JG?�t teIKbab{F�JOCj?�WGJ5RPF=CjbK?�NPF�[ZRPF=@YZNx?�B.RSdAh�F ) � �!�fF�n L`n������ &5���>RPDOU�RpU�=PF!JG?�RpIKJwCj?�JON�RP=@WOC�R@?�=uBf?�=@Yyi5I"n F�nXF�­5WOU�b`RP?� � &�Bf?�=1NP?�Y*F,¢�¥%z  �n

z JVC?�JON�RP=@WOC�R@Ia\�FxNPdXNSR@FYZN�i#RPDGF�=PFpIQN4U,[XIaµ�F=@FJ5R�txU#d,R@?�?�cXR@U�IaJ*Uk² teIaRPJGF NPN�´#Bf=@?�Y³U!hG=@?5?�B?�BxU�J}FlXIKN�RPF�J�R@IKU�b�NSREU�RPF�Y*FJ5R���IaB ���;� * �� �� ��. � �� }DG?�bQ[GN�Cj?�J`NSR@=PWOCjRPIK\�F�bad�i`R@DGFJ}RPDGF�=PFVIQN�U

Page 17: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � �

BfWGJOCjRPIK?�J��mU�baL�?�=@I_R@DGYs�TRPDOU�ReC?�Y*hGWXR@F�NpR@DGF ZBf=@?�Y¨R@DGF ��n��9opDGIQN1Cj?�WGbK[yU�bKY*?�N�Rec`F�R@U�H�F�JU�NeU*[XF^OJGIaRPIK?�Jq?�B{teDOU�RpIaR1Y*F�U�JONxBf?�=1U*bK?�L�IKCrRP?Zc�F�Cj?�JONSR@=PW`C�RPIK\�F�n �

z�B/,}IQN�UsCjbK?�NPF�[qhG=@?A?�B�v"RPF�=PY ?�B�RSdAh�F��2��� * �� �� ��. � �� �i�R@DGFJ ,�Cj?�J�REU�IKJONrUZRPF=@Y�4� *,¡%�¨U�JO[qUVhG=P?A?�B�v9R@F=@Y¨?�B4RSd5h�F ���;� * . � �;�"�����jn

 1?�RPFwRPDOU�R�R@DGIQN*IKN*U ® WYV�ª�¹wV�·ZW�S��ÒWYV � � hG=@?�h�F=PRSd�?�B!C?�JON�RP=@WOC�R@Ia\�FwNPdXNSR@FYZN�4R@DGF=@FwIQNVJG?�R�fJOF�CjF NPN@U�=@IKbadG�4U!BfWGJOC�R@Ia?�J]� T�[ � ºuW RPDOF1N�dXN�RPFY³RPDOU�R>FjlARP=EU�CjR@N4R@DGFr�4� *,¡%� Bf=@?�Y³RPDGFehO=P?A?�B�vRPF�=PY ,�n�z JsN�?�YVFeNPdXNSR@FYZNi�YV?5NSRuJG?�REU�cGbKd�R@DGFrCj?�JON�RP=@WOC�R@Ia\�FuRSdAh�FeRPDOF?�=@IKF�N{?�B� �U�=�R@IaJGv � "?�B� }U�=PRPIKJXv � "?�B � �$��� � ��i; r?�=E[GN�RP=#"?�Y FjRZU�b"n�� �$�%��&��f��i�RPDGIQNVhG=@?�h�F=PRSd�DOU�Nkc�FF�J~IKJ5RPF=@JOU�baIQN�F [cAd¬IKJ5RPF�=PhG=@FjR@IaJOL~U�J�FlAIQN�RPFJ5R@IKU�b1Bf?�Y�WGbQU��� �� ��. �©U�NMU-5Tv"RSdAh`F85 �� � . �xixC?�JONPIKN�RPIKJGL�?�BhOU�Ia=END���#£� �VteI_R@D������ U�JO[F«� ��� � � ��nu¾A?Oi{R@DGF�?�JGbad~txU#d�R@?�Cj?�J`NSR@=PWOCjRMU�RPF=@Y ?�BRPDOF 5Tv"RSd5h�F�5 �� � . � IQN�cAd�L�IK\AIaJOL�U �y�,� Bf?�=�teDGIKCED ��� � � �uDO?�bQ[GNn4�G=@?�Y UqR@F=@Y " �5 �� ��. �xi>?�JGF]CU�J~FjlAR@=@U�C�R*RPDGFqRStx?�Cj?�Y*h�?�JGF�J5R@N*cAd�hG=@? SF C�RPIK?�J`N��� � " �6� U�JO[�� � " ���� � � " � ��n;opDGF N�FwU�=@FZRPDGF 5Tv"IKJ5RP=@?A[GWOC�R@Ia?�J�U�JO[�R@DGF 5Tv�FbKIaY*IKJOU�R@Ia?�J�=PWObaF Ni;=PF N�h�F�CjRPIK\�FbKd�nopDGIQN�IKYVhObaIKF�N{R@DOU�RTBf=P?�Y³U,hG=@?5?�B�v9R@F=@Y ,]� �2��� *�� �� � . ��� �i�tuF1C�U�JVIaY*Y*F�[GIKU�RPFbKdVFjlARP=EU�CjRRPDOF ±E¯�T��YV � S�T � �/*,¡-� [XFj^`JGF�[�cAd�° �;� * . � � � , ����U�J`[�tuFMC�U�J�hG=@?�\�F*Bf?�=�RPDGIQN*��R@DOU�R���;� * . � �4�9�����1DG?�bQ[GN�n;�9opDGFkhG=@?A?�B�v"RPF�=PY IKN�° �;� * . � � � , ����n��ropDOF�FjlARP=EU�CjRPF [yBfWGJOC�R@Ia?�J}U�bQNP?DOU�N�UyhG=P?�h`F�=kCj?�Y*hGWXR@U�RPIK?�JOU�b�c`F�DOU#\AIa?�=��.U]Cba?5N�F [}hO=P?A?�B�v"RPF�=PY ,«������� *�� �� � . � �� �DOU�NRPDOF,Bf?�=@Y ° �;� * . � " £E �j�GR@DGF,BfWGJOCjRPIK?�JqFjlARP=EU�CjRPF [sBf=@?�Y¨R@DGIQN ,qIKN��mIaJ`[XFF [O�e° �;� * . " n

opDGFqIaJ5RPF�=PJ`U�bKIKN@U�R@Ia?�J~?�B!RPDGF��9Cj?�J`NSR@=PWOCjRPIK\�F#�kFlXIKN�RPF�JOCjFqhG=@?�h�F=PRSd�\AIKU�U%5Tv9RSdAh�FyYZU#dNPFFY U*JGF�U�RptpU#d*RP?sNP?�bK\�F!RPDOF�hG=P?�cGbKFY½?�Bu² BfWGJOCjRPIK?�JOU�b_v�=PF�bKU�RPIK?�JON�v�JG?�RPv"c�FIKJGL�v"BfWGJOCjRPIK?�JON�´Kn�1?�txF\�F= i�F�\�F�=Pd�U�[X\�U�J5R@U�L�FTD`U�N{IaR@N�[XIQNPU�[X\�U�J5R@U�L�F�i IKJ�RPDGIQN�CU�N�FuRPDOU�R>tuFxbK?5?5N�FuRPDOFeIaY*Y*Fjv[XIQU�R@FrCj?�JGJGF�CjRPIK?�J*c�FjRStxFFJVRSdAh�FeRPDGF�?�=@d�U�JO[Vba?�L�IQC�n�opDGFr=PF U�NP?�JVIKN{R@DOU�RuteI_R@D*RPDGF 5Tv"RSdAh`FtxFsCU�J�C?�JON�RP=@WOCjR S�� � W@�YV\[ V�·OªUV�ºuW ��WYT�º�S�T]����SLS�±�[ i{UqBfF U�RPWO=PFsU�baIKFJ�R@?�?�=E[XIKJOU�=@d�bK?�L�IQC�nopDGFVN�IKY*hGbaF NSR�FjlGU�Y*hGbKFkIQN!teDGF=@F�txFkDOU#\�F�UshG=@?A?�B�,}?�B�56��� )�� � . *�i�Bf=@?�Y teDGIQCED]tuF�L�FjRRPDOF�?�c SF C�R�� � ,]� ) � �jn ¶ =@[XIKJOU�=PdZbK?�L�IKC�IQNecGWGIKb_R1WOhyIKJ [zV�ª 'GW�[ iGteDGF=@F� IaJ}RPDGF�^O=ENSR,NSREU�L�F�?�JGFV[XFj^`JGF�N�teDOU�RrRPDOFV[X?�YZU�IKJONrU�JO[]R@DGF�R@F=@Y*N!?�BTRPDGF*[X?�YZU�IaJONU�=@F��

� IaJ�R@DGFsN�F Cj?�JO[�N�R@U�L�FV?�JGFZ[XF^OJGF N,RPDGF*Bf?�=PY�WGbQU�N*�f?�=�?�JGFZNPIaJGL�baF N,?�WXR,R@DGF*Bf?�=@YkWGbQU�NBf=P?�Y½R@DGF�Cj?�babKF�CjRPIK?�Jy?�B�R@F=@YZN@�j�

� IaJyR@DGF,RPDGIK=E[yN�R@U�L�F,?�JOF,[GFj^OJGF NpteDOU�RrUVhG=@?A?�B4IKN�nopDGIQN,cGWGIKb_RPv"WOh�YZU�H�F�N�IaR,IKY*h`?5NPNPIKcGbaFVBf?�=�?�c SF�CjR@N!RP?][XF�h`F�JO[�?�J}hO=P?A?�BmN�i�Bf?�=,R@DGFZN�IKY*hGbaF=@F�U�NP?�J�RPD`U�R�R@DGFs?�c SF�C�REN�txF=@F*U�ba=@F�U�[Xd]R@DGF=@Fsc�FjBf?�=@FZtxFZF\�F�J�RPDG?�WGL�D5RkU�c�?�WGRkhG=@?5?�BmNn 1?�RPFZR@DOU�RV�uDAWG=ECED.´�U�hGhG=@?�U�CED.i%WONPIaJGLqR@DGF �1?�h�F=EU�R@?�= i.Cj?�JGBf?�=@Y*N,teIaRPD�R@DGFMC?�JOCFhXR@Ia?�J?�B!?�=E[XIaJ`U�=@d�bK?�L�IKCsRPDOU�R*txFyDOU#\�F�SW`NSRsNPH�FjRECEDGF�[.��R@DGFq?�c SF C�R � 9 [X?AF�N TIS�V [XFh�FJ`[~?�JRPDOF�hG=P?A?�B4?�B�� $ �� * . 9 �;iOcGWXR1?�JGbKdM?�JyR@DGF�?�c SF C�R!9*n��uDG?A?5N�IKJGLZUVRSdAh`F,R@DGF?�=PdsIKJqteDGIQCED?�c SF�C�REN![G?wJG?�R,[GFh�FJO[}?�J}hO=P?A?�BmN!DOU�N!NP?�Y*F*CjbKF�U�=�U�[X\�U�J�REU�L�F�N1IaButxFktpU�J5R!RP?yFjlXhGbQU�IKJU�J`[kWGJ`[XF=ENSREU�JO[�R@DGF1N�dXN�RPF�Y IaJVR@F=@Y*N{?�B�?�=@[GIaJOU�=Pd�bK?�L�IKC�n-��F1C?�Y*FecOU�CEH,R@?,RPDGIQN�bQU�R@F=�IKJ�Xn �Gn5�1F�=PF1txF SWON�Ru=@FYZU�=PH�R@DOU�RxI_B�U�RSd5h�FeR@DGF?�=PdVIKN>RP?�c�FrW`N�F [ZU�NTU�cOU�NPIKN>Bf?�=TU�RPDGF�?�=@FYhG=@?�\�F�=�iXU*CjbKF�U�=pC?�JGJOF�C�R@Ia?�JMR@?sN�?�Y*F�txFbKbav"HAJG?�teJyNSREU�JO[GU�=@[wbK?�L�IQC!IKN1[GF�NPIa=EU�cGbKF�n

��FqCj?�JOCjbKWO[XFwRPDOU�R�i�IaBrtxFwbK?A?�H�U�RVBfWGJOCjRPIK?�JON*IKJ�RSdAh�FMR@DGF?�=Pd�i;R@DGF=@FyIKNVU�CbaF U�=*[XIQNSvRPIKJOCjRPIK?�J�c�FjRStxFF�J�U�bKL�?�=@IaRPDGYZNM�"� � *,¡%�V��U�J`[�L�=EU�hGDONM�5� � *,¡%�*¡ �����#� NPWOCED�R@DOU�R���;� * . � $ %�5� �� X�;DG?�bK[ON@�jn#(T\�F�JkIaB`txFxU�babK?�t�RP?�FjlAR@=@U�C�R4Bf=P?�Y UrhG=@?A?�BO?�B ���;� * . � $ %�5� �� X�4U�J�}�*�¡��si�RPDGF�=PFeIQNTN�RPIKbab�U�CjbKF�U�=>[XIKN�RPIKJOCjRPIK?�J.��RPDGF1hO=P?A?�B�IQN>JG?�R�RPDGFrN@U�Y*F1U�N{RPDGF1BfWGJOC�R@Ia?�J.n

Page 18: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{�����������!#"��"�� ¯ � � W@�YV��5WEº�¯O�YV � S�TopDGF�hG=@?�h�F=PRSds?�B�¾AWOc SF�CjR �eF�[GWOC�R@Ia?�J��"¾ �r�eC�U�Jqc�F�N�F�FJ]U�NxR@DGFZ²�N�IKJGF�­5WOU*JG?�J.´G?�B4RSdAh`FRPDOF?�=@d�nTz�RyN�R@U�R@F�N*R@DOU�RMRPDGF�N�FRs?�B,RSdAh`F [«RPF�=PYZNZ?�B�U�L�IK\�FJ�RSdAh�F * IQNMCjbK?�NPF�[�WGJ`[XF==@F�[XWOCjRPIK?�J.n ]?�=PFkBf?�=@Y*U�babKd��OIaB � � *¦U�JO[ � ¡ ¡ �iOR@DGFJ ��*kn%�G?�=+* =@FhO=PF N�F�J�R@IaJOLUq[GU�REUwRSd5h�F�i%txFZCU�J�WGJ`[XF=ENSREU�JO[}RPDOIKN�U�N,NPU#dAIKJGLMR@DOU�R *�IQN�CjbK?�NPF�[}WGJO[XF�=�F\�U�bKWOU�RPIK?�J.nopDGF�=PWGbKF�NMBf?�=yF\�U�baWOU�RPIK?�J U�=PF��>i �~U�JO[ �kR@DOU�RytuF�DOU#\�F�U�bK=PF U�[Xd�FJOC?�WGJ5R@F=@F�[%n ��FIKbabKWON�RP=EU�RPFxR@DGFeWONPFe?�B�=PF [XWOC�R@Ia?�J�cAdkU�J*FjlGU�Y*hGbKF�n�¾AWOhGh`?5N�FetxFpDOU#\�FpU�N�[GFj^OJGIaRPIK?�J � '�� ��§° ��£/ �� ) � � . & � � �;�"° �`� )�� � .�r� �n�opDGF�J*RPDGF�² \�U�bKWGF�´�?�B�R@DGFrFlAhO=PF NPNPIa?�J � '�� � &,IKNuCj?�YVhOWXRPF [cAd~^`=@N�RMWGJXBf?�bK[GIaJGL~RPDGF � '�� �f?�JGF � v�=PF [XWOCjRPIK?�J N�RPFh���iuRPDGF�J h`F�=�Bf?�=PY*IKJGL�RStx? �%v NSR@FhONU�J`[�R@DGFJ«?�JOF �fv [email protected]�R@?�?�cXREU�IKJ ��n>opDGF�¾AWGc SF C�R �eF [XWOC�R@Ia?�J¬hO=P?�h`F�=�RSd�N@U#dXNkR@DOU�RsU�babFjlXhG=@F�N@NPIa?�JONxIaJyRPDOIKN1C?�Y*hGWXREU�R@Ia?�JyU�=PF,?�B;RSdAh`F ) � �jn

z J~U]hG=@?A?�B�v"RPF=@Yqi�=@F�[XW`C�RPIK?�J¬CU�hGRPWG=@F�N�RPDGFwtuF�babav"HAJG?�teJ�hG=@?A?�B�v"RPDGF�?�=@FjR@IKC�U�b>JG?�RPIK?�J�?�B�¯�V9¹�W� � ® � T�ªUV � SUT n | �j¯�V IKJ�UMhG=@?A?�B>IQN�UwNPIaRPWOU�RPIK?�J}teDOF=@F�U�J�IaJ5R@=P?X[XWOCjRPIK?�J�=PWGbKFq�fz��rBf?�=U�C?�JGJGF C�R@Ia\�FZIKNkIaY*Y*F�[XIQU�R@FbKd�Bf?�bKba?�txF�[�cAd�U�J�FbKIaY*IKJOU�R@Ia?�J�=PWGbKF}� (u�,Bf?�=�RPD`U�RVC?�JGJOF�C�vRPIK\�F�n�z�R,IQN!RPDGF�J�h�?�N@NPIacGbKF�R@?qY*U�H�FVU�²�N�DO?�=PR@CjWGR�´Ki�F�baIKY*IaJ`U�RPIKJGLwRPDGFZC?�JONPF�CWXRPIK\�FVU�hGhGbKIQCU�vRPIK?�J�?�B!RPDGF��mz��V=PWGbKFqU�JO[~RPDGF�� (u��=@WGbaF�ne�m 1?�RPFqR@DOU�R*RPDOIKN*YZU#d�JG?�RZU�batpU#dXNkYZU�H�FwRPDGFhG=@?A?�BubKIaRPF=EU�bKbKd�NPDG?�=PRPF�=�n��,¾AWGhGh�?�NPFZtuF*DOU#\�FVRPDGFZhG=@?A?�B�v"RPF�=PY °���� *,¡ *,¡%��. ° �`� * . � ������ *,¡ *�¡����P¡�� *,¡-����i>C?�=@=PF N�h�?�J`[XIaJOL�RP?�R@DGF]NSREU�JO[GU�=@[~JOU�R@WG=EU�be[XF�[GWOC�R@Ia?�J¬hG=@?A?�Br?�BRPDOIKN.BmU�C�R i�F�JO[XIKJGL1teIaRPDkU�J,IaJ5RP=@?X[XWOCjRPIK?�J�=@WGbaF�n� r?�t�iIaBGtuF>U�bKNP?1DOU#\�F>UphG=P?A?�B ��*,¡ *,¡��txF1CU�JVFbKIKYVIKJOU�RPFpRPDOF1IaY*hGbKIQCU�R@Ia?�J*?�cXREU�IKJGIaJOL*�"° ��� *�¡ *�¡�� .�° �`� * .�� � �5� ��*,¡-�sn�z�B�tuF[X?Z?�JGF+�%v�N�RPF�hqtuF�F�baIKY*IaJOU�RPF,R@DGF�CjWXR1?�cXR@U�IaJOIaJGL*R@DGF�hG=@?A?�B�v"RPF=@Y ° �O� * . � �*��*�¡��sn�¾A?OiBf?�=ehO=P?A?�B�v"RPF�=PYZN�i

RPDGF�¾AWOc SF�CjR �1F�[XWOCjRPIK?�J¬hG=P?�h`F�=�RSd�N�R@U�RPF�N�R@DOU�R �¯�V9¹�W� � ® � T�ªUV � SUT � []�cS����ÒWE�YV IKJRPDGFwN�F�JON�F*R@DOU�R�IaB ,�IKNkUqhG=P?A?�Bx?�B *½U�JO[�tuFZ?�cXR@U�IaJ , � cAd}FbKIKYVIKJOU�RPIKJGL�N�?�Y*FCjWXRENpBf=@?�Y ,;iXRPDGF�J]U�bQN�?+, � IQN1UVhG=@?A?�B;?�B�*kn

z J}hO=@U�C�RPIQCjF�iOtxF�NPFbQ[X?�Y teIQN�D}RP?wh`F�=�Bf?�=PY �%v�=PF [XWOCjRPIK?�J�?�J�hG=@?5?�B�v9R@F=@YZN�`?�JOCFktxFkDOU#\�FhG=@?�\�F [sU�=@F�NPWGbaR,�mI9n F�nXtxF!D`U#\�F!C?�JON�RP=@WOCjRPF�[wU�R@F=@Y ,]�*!�jiXtuF�U�=@F!YZU�IaJGbKdZIKJ�R@F=@F�N�RPF [sIKJIaR@NeN�R@U�R@FY*FJ5R���R@DGF,RSdAh`F+*!�pU�JO[ZR@DGF�BmU�C�RpR@DOU�RpRPDOF=@F!IQN [�S�®AW hG=@?5?�Bu�fIKJGDOU�cGIaR@U�J5R��T?�B�IaR�nopDGF�hG=@?5?�B.IKNx?�JGbadZIKJONPh`F C�R@F�[wI_B�txF�txU�J�RuRP?*NSR@WO[XdZIaR@NpN�RP=@WOC�R@WG=PF*�fF�n L`n5RP?�RP=@d�R@?�=@FW`N�F!I_RBf?�=�hG=@?�\AIaJGLyN�IKY*IabQU�=,N�R@U�R@FY*FJ5REN@�jn�opDOFVU�C�RPW`U�b�N�IaRPW`U�RPIK?�J}IKN!RPD`U�R�?�JOCFktxF�D`U#\�F�hG=@?�\�F [UybaF�Y*Y*UOi.NPU#dqtxF*DOU#\�F*Cj?�JONSR@=PW`C�RPF [�°��.� *,¡ *,¡%��. ° �O� * .�� ���}�4� *�¡ *�¡����@¡�� *�¡����U�N*U�c`?�\�F�i�txFyteIabKb [ª�»UW RPDGIQN*bKFY*YZU}WGJ`[XF=ZU�JOU�Y*F�i�N@U#d ' �%. . � � i�U�JO[~tuFyteIabKbp?�JGbKd=@FjBfF=�R@?MR@DGIKN�² JOU�Y*F�´�' �%. . � � n�z J}RSdAh�FkR@DGF?�=Pd�i�teD`U�R,DOU�hGh�FJ`N!IQN�RPD`U�R,tuFVIaJ5R@=P?X[XWOCFVU[XF^OJGIaRPIK?�J ' �%. . � � ��§½°���� *,¡ *,¡%��. ° �`� * . � ���]U�JO[�tuFZW`N�F ' � . . � � U�N�U]C?�JON�R@U�J5R,?�BRSdAh`FZ� *�¡ *�¡����@¡�� *�¡����jnGz�ReIKN1U ºuW T§WEº C?�JON�R@U�J�R iXcGWXR1IKJwIKY*hGbKFY*FJ5R@U�RPIK?�JONpIaR1teIKbabc�F S@�Oª � ¯ZW i`YVF U�JGIKJGLVRPD`U�R1IaR1teIabKb.JGF�\�F=pc�F�WGJXBf?�bK[XF [yc5d �An

!#"�-" RoS�TO»UWj�c[ � S�T�ª�T�ºµRoS�®1��¯�V�ª�V � S�T��F�D`U#\�FrU�ba=@F�U�[Xd*FJOC?�WGJ5RPF�=PF [*RPDO=PF�F!JG?�RPIK?�JONx?�B;Cj?�YVhOWXR@U�RPIK?�J.���%vEi���vTU�JO[ � v�=PF [XWOCjRPIK?�J.n�G?�=>Y*?�N�R�RSdAh`FeR@DGF?�=PIKF�N4R@DGF�NPF1=@F�[XW`C�RPIK?�J*=@FbQU�R@Ia?�JON4RP?�L�FjR@DGF=>U�=PF1C?�J �`WGFJ5RTU�J`[�JO?�=@Y*U�b_vIKgIKJGLOiXdAIKFbQ[XIaJOL*U*[XF CjIQ[GU�cObaF �cSUT`»gW�c[ � SUT =@FbQU�R@Ia?�Jq§ � � � ?�JwRPDOF�N�FRp?�B;txFbKb_v"RSdAh`F [sR@F=@YZNn

Page 19: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � �

opDGIQNu[GF�CjIQ[GU�cGIabKIaRSd*U�bKNP?�YZU�H�F�N>RPDGFrRSd5h�F,CEDGF�CEHAIKJGLkU�bKL�?�=PIaRPDOY¦tx?�=@H�i�N�F�F�¾AF C�R@Ia?�J �Xn ��n���FteIKbab.bK?A?�HsY*?�=PF,CjbK?�NPFbKdMU�ReR@DGF�WONPF,?�B�Cj?�JA\�F=EN�IK?�J.n

¾AWGhGh�?�NPF�U�L5U�IKJ¬txFqDOU#\�FyRPDOF�[XFj^OJOI_R@Ia?�J�?�B � '�� U�NZL�IK\�F�J�U�c`?�\�FyU�JO[�tuF]tpU�J5R*RP?hG=@?�\�F ��� &�Bf=@?�Y , � �2��£� �£ �O� )�� � . ��� � � '�� ��5�@¡ ��� ��U�JO[ � ��� ��np r?�t,����0&������ � � '�� � &5�P¡�� ��� &���U�JO[�txFMtpU�J5R�RP?�U�hGhGbKd�RPDGIQNVhG=@?5?�BeRP?8qRP?�?�cXREU�IKJRPDOFshG=@?5?�B�v9R@F=@Y , � �$&7]�T� ��� &��jn;opDGFsU�hGhGbKIKC�U�RPIK?�J�C�U�J�?�JGbKd}tx?�=@H�IaBetuF*^O=EN�R�=PF [XWOCjFRPDOFZRSdAh`F}� ��� � � '�� � &��P�P¡ � ��� &��!RP?¬� ��� �#�P¡�� ��� &��ji.teDGIQCED�IKN�[G?�JGFscAd�?�JGF � v=@F�[XWOCjRPIK?�J��mWGJXBf?�bQ[XIKJGLsR@DGF�[GFj^OJGIaRPIK?�J]?�B � '�� ��i`RStx? �%v NSR@FhON!U�JO[]U �fv [email protected]��1F�=PFktuFkNPFFU�JqU�hOhGbaIQCU�RPIK?�Jy?�B4RPDGF�C?�JA\�F�=@NPIK?�Js=@WGbKF��

�mC?�JA\X�� ��� ��� �������

� ���I_B ��§ � � ��

z J¬RPDGFqFjlGU�YVhObaF]U�c�?�\�F�i � IKN+, � ��&Gi � IQN]� �� � � '�� ��&��P�P¡�� �� &��VU�JO[��©IKN]� ��� �@¡ � ��� &5��n.opDGF*hG=@?A?�B�v"RPF=@Y � IQN,bKFjB�R�WGJOCED`U�JGL�F�[�WOJO[XF=,R@DGFVRP=EU�JONPIaRPIK?�J�Bf=P?�Y �«RP?�rn�opDGIQN1h�?�NPF�NeJG?ZhO=P?�cGbaF�Y½Bf?�=1RPDOF�RSdAh`FkCEDOF�CEHAIaJOL*U�baL�?�=@I_R@DGYqiGc�F�CU�WONPF,RPDGFkC?�JA\�F�=@NPIK?�J§ � � �uIKNT[XF�CIK[GU�cGbKF�nG�9¾X?Oi�IaB�txFeU�=@FpL�IK\�FJ*U!RPF�=PY � U�J`[ktxFetxU�J5R4R@?�CEDGF�CEH�teDOFjRPDOF= � IKN?�B�RSdAh�F ��txF1?�JObadVDOU#\�FpR@?kCEDGF CEHkteDGFRPDGF�= � DOU�NuU�RSdAh`F�U�JO[*IaB.N�?`i�\�F�=PIaBfdVteDGFjR@DGF=uI_R ´ NCj?�JA\�F=PRPIKcGbKFpteI_R@D��!n ��z J*C�U�NPFxRPDGF1F ­5WOU�bKI_RSdkIaJVRPDOFrN�IQ[XFv�C?�JO[XIaRPIK?�J�RP?,R@DGF1Cj?�JA\�F=ENPIa?�Jk=@WGbaFIQN�JG?�RT[GF�CjIQ[GU�cGbaF��fteDGIQCED*IKN{R@DGFrNPI_R@WOU�R@Ia?�J*IaJ*R@DGFpRSdAh`FeR@DGF?�=Pdk?�B% 1WGhG=@b"iA�u?�J`NSREU�cGbKFeFjRTU�b9n� �$������f��iXR@DGFkC?�JA\�F�=@NPIa?�JsBf=@?�Y RSdAh`F �~RP?�� tu?�WGbQ[qDOU#\�F�RP?MbaF U#\�F�Uy² RP=EU�CjF�´GIKJ]RPDGF�RPF=@Y� IKJ~?�=E[XF�=�RP?�YZU�H�FsRSd5h�FqCEDGF�CEHAIKJGL}[XF CjIQ[GU�cGbKF�np�mopDOFMR@=@U�CjFwC?�WGbQ[�c�FMR@DGFM=@F�[GWOC�R@Ia?�JNPF�­5WGFJ`CjFyBf=P?�Y � RP?��rn�� ¶ JGF�Cj?�WGbQ[¬U�bKNP?�baF U#\�FqU}R@=@U�CjFq?�B�RPDOF�Cj?�JA\�F=EN�IK?�J�IKJ«?�=E[XF=RP?wDGFbKh�R@DGF�RSd5h�F*CEDGF�CEHAIKJGLMU�bKL�?�=PIaRPDOYyi�cGWXR�RPDOIKN�IQNrWONPWOU�babKdqJG?�R�[X?�JOF���I_R,YZU�H�F NrhO=P?A?�B�vRPF�=PYZN4WGJGJOF�CjF NPN@U�=@IKbad�Cj?�Y*hGbaIQCU�RPF [%n� �?�=@F?�\�F�=�txFTtpU�J5R4RP?!Bf?�bKba?�t�R@DGFeN�?�v�C�U�bKbaF [ & S � T��@ª����W��� � T�� � ����W i`teDGIQCEDqCU�Jqc�F�NSREU�R@F�[wIaJ5RPWOI_R@Ia\�FbKdwU�NxBf?�babK?�t1N�n

opDGF=@F,IKNeUV[XIQNSR@IaJ`C�RPIK?�Jyc�FjRStxFFJ �cS�®r��¯�V ªUV � SUTZ[ U�JO[ ���ÒSCSS±�[ U�JO[yCj?�Y*hGWXR@U�RPIK?�JON[X?ZJG?�Rp=@F�­5WGIK=@F,UVhG=@?A?�BSn

opDGIQNkIKY*hGbKIaF Ni4Bf?�=VFjlGU�YVhObaF�i�R@DOU�RVRPDGFwF�­5WOU�baIaRSd�?�B � '�� � &}U�JO[ �w[X?AF�N�JG?�R�=@F�­5WGIK=PFMUhG=@?A?�BS� � '�� � &�U�JO[ �]U�=@F]Cj?�Y*hGWGR@U�R@Ia?�JOU�bKbKd�F�­5WOU�b"i>NP? � '�� �0&~§ �wBf?�bKbK?�t1NVRP=@Ia\AIQU�bKbad��Bf=@?�Y R@DGFw=@F �`FjlXIa\AIaRSd�?�B,§,�jn4opDGFyh�?�tuF�=k?�BrRPDGFy<{?�IKJOCU�=��FZhO=PIKJOCjIKhGbKFw[XF�h`F�JO[GNV?�J�RPDGFFjlXhG=@F�N@NPIa\AIaRSd�?�B%RPDGF!RSdAh`FrRPDGF�?�=@dVIKJZR@F=@Y*Nu?�B�U�baL�?�=@I_R@DGYZN�R@DOU�ReCU�JZc`F�te=PIaR�[email protected] YZU�L�IaJOFRPDOF1N�IaRPWOU�RPIK?�J*teDGF�=PFptxFxD`U#\�FeU,CjbQU�N@N{?�B�Bf?�=@YkWGbQU�N4R@DOU�RTC�U�JVc`FeF�JOCj?X[XF [VNPdAJ5R@U�CjRPIQCU�babKd�IKJ?�WO=pRSd5h�F�NPdAN�RPF�YqnOopDOU�ReIQNiOtuF,DOU#\�F,Uq�mIaJO[GWOC�R@Ia\�F �xRSdAh�F*²�� ' �� � v � � v�� ��� .k´XRP?�L�FRPDGF�=xteIaRPDU}² [XF Cj?X[XIKJGLwBfWGJOC�R@Ia?�J.´ � � ����' �� v � � v�� ��� .,¡ ������� NPWOCED}RPDOU�R�F�\�F=@dyBf?�=@YkWGbQU �©� � ���#�IKJ~?�WO=VCbKU�NPN�DOU�N*U�N�dAJ5R@U�C�RPIQCw=PF�hG=PF N�F�J5R@U�R@Ia?�J " ��� ' �� � v � � v�� ��� . teIaRPD � � " § � � � ��n¾AWGhOh`?5N�FZR@DOU�R�tuFsC�U�J�te=PIaRPFwU][XF�CIKNPIa?�J�U�bKL�?�=@IaRPDGY IaJ�?�WG=�RSdAh`FsNPdXNSR@FYqi�I"n F�n�txFZDOU#\�FUMRPF=@Y������ � � �!� ' �� � v � � v�� ��� .,¡ � ���#� NPWOCED�R@DOU�R�IaB"�#� � �$� " § � � �&%�i`R@DGFJ " F�JOCj?X[XF N�UhG=@?�\�U�cGbKFpBf?�=@YkWGbQU�Bf=@?�Y�?�WG=xCjbQU�N@Nn��'%�IKN>RPDGF!hG=@?�h�?�NPI_R@Ia?�JVteIaRPDM?�JGF1WOJGIK­5WGFrhG=P?A?�BSi%� � ����n �z JqY*?�=@F�hO=PF CjIQN�F!RSdAh`Fv9R@DGF?�=PFRPIQCrR@F=@YZN�ONPWGhGh�?�NPF,tuF,DOU#\�F�U�hO=P?A?�B�v"RPF�=PY � � teIaRPD

� � � � " � � ' �� � v � � v(� ��� . .K�)�#� � �$� " �>¡ � � � " � .

opDGF�J.iXRP?*hG=@?�\�F!RPD`U�RrU�Bf?�=@YkWGbQU � � � ���#� Bf=@?�Y�?�WG=1CbKU�NPNxIQNehG=@?�\#U�cGbKF�iAtuF,?�JGbadwDOU#\�F!RP?

Page 20: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{�����������^OJO[yIaR@NeF�JOCj?X[XIKJGL " � ��' �� v � � v(� ��� . U�J`[sR@DGFJ

� � " � � � ��� � .

IaB ��IKN�IKJO[XFF [�hG=P?�\�U�cGbaFy�fIKJGDOU�cGI_R@F�[O�ji.teDGIQCED�C�U�J�c`F*\�F=@I_^OF [�cAd]R@DGFVRSd5h�FZCEDGF�CEH�F= n�z JRPDOIKNeFlGU�Y*hGbKF�iARPDOF�Y*U�IaJwR@U�N�HM?�B�R@DGF,RSdAh`F�CEDOF�CEH�F�=uIQNpR@?VFlXF�CjWGRPF�RPDGF�U�baL�?�=@I_R@DGY ����� � � nopDGIQN,WONPF�?�BTRPDOF*<{?�IaJ`CU�= �F�hG=@IKJOCjIKhGbKF*NPDG?�t1N�DG?�t³U�WXRP?�YZU�RPF []R@DGF?�=PF�Y hG=P?�\AIKJGLwC�U�J�c`F[X?�JGF~�mN@U�BfF�badG��� T�[ � ºuW RSdAh`F}RPDGF�?�=@d�nxopDGIKNsRPF CEDGJGIQ­�WOF}IQNsWONPWOU�bKbKd�C�U�bKbaF [ �ÒW���WE�YV � S�T �f=@Fjv�OF C�RPIKJGL��fhOU�=�R�?�B@�1RPDGFVbQU�JGL�WOU�L�F�IaJ�I_REN�F�b_B@�jn%opDGFk?�=PIKL�IKJONr[OU�RPF�cOU�CEHyR@?w�1?�txF � �$�������nOz�RDOU�N,c`F�FJ�WONPF�[�N�WOC�CjF NSBfWGbKbKd�IaJ�RPDOFw�u?A­}N�dXN�RPFY RP?qte=PIaRPFsUMR@U�C�R@IKCVBf?�=�[XF�CIK[XIKJGLqF�­5WOU�b_vIaRSd�IKJ�=PIKJGL�v N�RP=@WOC�R@WG=PF Nn�¾XFFMU�bKNP?]�xU�=�R@DGF�i0�eWGdXNkU�JO[��xU�=PF�JO[X=@FL�R � �$�%�� � �}teDGF=@FZI_R�IKNCU�babKF�[MRPDOF*² RStx?�v�baF�\�F�b�U�hGhG=@?�U�CED.´5U�JO[ ¶ ?�N�R@[XI SHMU�J`[ ��F�WG\�F�=@N � � &%& � ��nAo�?*L�FR1=PF U�bKbad*BmU�NSRU�WGRP?�YZU�RPF�[¬R@DGF?�=PF�Y hG=@?�\5IKJGL`i�I_RsIQNsU�[G\5IQN@U�cGbKFyRP?�WONPF�U�N�h�F�CIKU�b1hGWG=@h`?5N�F]U�WXRP?�Y*U�RPF [RPDOF?�=@FY�hG=P?�\�F= i�teDGIQCEDyDOU�NxR@DGF,FjlARP=EU�U�[GU#\�U�J5R@U�L�FrRPDOU�Rp?�JGF�[X?AF�NPJ.´ RpD`U#\�F!RP?*hG=@?�L�=EU�Y�mU�JO[whG=P?A?�B4Cj?�=P=@F�CjR $���R@DGF�[XF CjIQN�IK?�JyhG=@?ACF�[XWO=PF Nu?�JGF�NPFbaBSnXz�B{?�JGF,WONPF�Nx=@F �OF C�RPIK?�J��mU�JO[MRPDGF<{?�IKJOC�U�=��FThG=@IKJOCjIKhGbKF �{?�JGFe?�cXREU�IKJON>U,Y*F�[GIaWGY¦BmU�N�RT[XF NPCIKNPIa?�J*hG=P?XCF�[XWG=@FpcGWXRT\�F=@dk=@FbKIKU�cGbKFhG=@?A?�B�v"RPF=@YZNiAteDGIQCED]CU�Jwc�F�CEDGF�CEH�F�[wIaJ`[XFh�FJO[GFJ5RPbKd�n

!#"��#" � ¯Oª�� � V"¼ 1?�RPF*R@DOU�RktxFZDOU#\�FZJG?�R�IKJOCjbKWO[XF [��5v"=@F�[XW`C�RPIK?�J�IKJ�RPDGFsC?�JA\�F�=@NPIK?�J�=PWGbKF�i�cGWXR SWON�R �>i �U�J`[ ��n.opDGIQN!YZU#d]NPFFY =@FYZU�=PH�U�cObaF�i`c�F�C�U�WONPF�Bf?�=!R@DGFVWGJ5RSd5h�F�[�°Gv�C�U�bQCjWGbKWON�i`YZU�JAd]JGIQCjF=@F�NPWGb_RENe?�B �%v�=@F�[XWOCjRPIK?�J��mbaIKH�F�C?�J �OWOFJOCF �pFl5R@FJO[yR@? ����n`opDOIKNrIKNrDG?�tuF�\�F�=eJG?�R1R@DGFkC�U�NPFBf?�=kRSdAh`F [�°Xv CU�bKCWGbaW`Nn4opDGFMNPJOU�L]bKIaF N�IKJ�RPDGFsBmU�C�RkRPDOU�R�?�WO=�RSdAh`F [�RPF=@YZN�DOU#\�FsUqRSdAh`FU�RPR@U�CEDGF�[�R@?]RPDGFMc`?�WGJO[�\�U�=@IQU�cGbKFZIaJ�RPDGFw°Gv U�cON�RP=EU�CjRPIK?�J��9° ��� * . � �jn;opDGIQNkIKJXBf?�=PYZU�R@Ia?�JIQN!C=PWOCIKU�b.Bf?�=rR@DGF�RSdAh�F�CEDGF CEH5IKJGLMU�baL�?�=@I_R@DGY �fteIaRPDG?�WXR!IaR�i�RSdAh`FVCEDGF�CEHAIKJGLsIKJ}[XF�h`F�JO[XFJ5RRSdAh`F�R@DGF?�=PdZIQNpWGJO[XF CjIQ[GU�cObaF��!?�tuF�H �������� ���jiAcGWXReI_RrC?�Y*hGbKIKC�U�R@F�NuRPDGF�C?�YkcOIaJOU�RPIK?�Jy?�B/�U�J`[���nO�O?�=eFjlGU�YVhObaF�C?�JONPIK[GF=1° �;� * .Q�9°� �� ��. G� �;i

° �;� * .Q�9°� �� ��. G� � ¡ � ° �;� * . �° �;� * .Q�9°� �� ��. G� � ¡ °# �� � .

opDGF]R@F=@YZNs?�J«R@DGF}=@IKL�D5RMDOU�JO[�N�IQ[XF�D`U#\�F�U�C?�Y*Y*?�J�=@F�[XWOCjRM?�JObad�I_B * U�JO[�� [X?OnopDGIQNeCj?�YVhObaIQCU�RPIK?�Jy?�B��stxU�NeU�bK=PF U�[XdZHAJG?�teJMRP?*R@DGF | WXR@?�YZU�R@DyC?�Y*YkWOJGI_RSdw 1F�[GF=@h`F�b_R� �$� � �����A�u?�J �OWGF�JOCjF�U�JO[s r?�=@YZU�bKIag U�RPIK?�J*Bf?�=TRSdAh�F�NpNPdAN�RPF�YZN>Bf=@?�Y�RPDOF | WXRP?�Y*U�RPDMBmU�Y*IabKdtpU�N�hO=P?�\�F�[�cAd ��U�U�baF�J ������& �"n;�G?�=VU}N�RPWO[Gd�U�JO[�hG=@?A?�Be?�BeR@DGFML�FJGF�=@U�bTN�IaRPW`U�RPIK?�J�NPFF��FWO\�F=EN � �$�%���#��i/��FWO\�F=EN � �$��������n.�G?�=kU�N�RPWO[Xd�?�BpRSdAh`FsRPDGF�?�=@d}teIaRPD~°Gv9R@F=@Y*N ��� V�·ZS�¯�VRSdAh`F N1U�RPR@U�CEDGF�[MRP?*R@DGF�c`?�WGJO[y\�U�=@IKU�cGbKF�N�iGN�F�F,�pU�=�R@DGF�U�JO[]¾ ��=PF�JON�F�J � � &%&�&���iAteDGF=@F�IaR1IKNNPDG?�teJ�RPDOU�R.RPDGF>RSd5h�F>CEDGF CEH5IKJGL��mJG?�REU�cGbKdrIaR@N�WGJO[XF CjIQ[GU�cGIKbKI_RSdG��IQN%JG?�R;Cj?�YVhObaFRPFbKdrDO?�h�FbKF�N@Nnz J �U�L�JAWONPNP?�J �������� ��iAU�JwIKY*hGbKFY*FJ5R@U�RPIK?�Jq?�B�UVhG=@?5?�B4U�NPNPIKN�R@U�J5RxcOU�N�F [y?�JqN�WOCEDqUVRSdAh`FRPDOF?�=@d}�mteI_R@DG?�WXReRSdAh�F�N1U�R�REU�CEDGF [sR@?�R@DGF�c�?�WGJO[y\�U�=@IQU�cGbKF�NE�uIKNe[XF NPC=PIKc�F�[%n

opDGF=@FwU�=PFyN�F�\�F=EU�bu?�R@DGF=VtxU#dXNk?�B1FjlAR@FJO[XIKJGL�RPDGFyF�­5WOU�baIaRSd�IaJ~RPDGFqCj?�JA\�F=ENPIa?�J�=@WGbKF�n| hG=@?�Y*IaJOFJ5R�FjlGU�Y*hGbKF�IQN�RPDOF W��GVXWYT�[ � S�T�ª��¯W � ¯Oª�� � V"¼ ?�J�BfWGJOCjRPIK?�JON�n%z J�YZU�RPDOFYZU�R@IKC�Ni�IaB��£�����*�¡��si.R@DGFw�¬U�JO[��}tx?�WObK[�c�FMCj?�JON�IQ[XF�=PF [}R@?]c`FMF�­5WOU�bTI_BpRPDOFd}D`U#\�F*RPDOFsNPU�YVFL�=EU�hOD.i�I"n F�nO�q§��ZI_µ �2��� *k�"� �y§��>���jnXz�B;txF!tpU�J5RxRP?V\AIaF�t�RPDGF�BfWGJ`C�RPIK?�J`NpJG?�ReN�?VYkW`CED

Page 21: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � �

U�NeU�baL�?�=@I_R@DGYZNiXcOWXRrY*?�=@F�U�cON�RP=EU�CjRPbKdMU�NpL�=@U�hGDON�iARPDGF�IKJOCjbKWONPIa?�Jq?�B{FjlARPF�JON�IK?�J`U�b.F ­�W`U�bKI_RSdIKJ�RPDOFxC?�JA\�F�=�R@IacGIKbKI_RSdZ�mU�N;NPIQ[XFxC?�JO[GI_R@Ia?�JkIKJ�RPDOFxC?�JA\�F�=@NPIa?�J�=PWObaF#�%tx?�WGbQ[�c�Fu\�F=@d,JOU�R@WG=@U�b9nz�B�tuFktxU�J�ReR@?M[X?*R@DGIKN�i�I_RrIQN1=@F�­5WGIK=@F�[wRPDOU�RrtxF�IaJ5RP=@?X[XWOCFkU�J W � ¯Oª�� � V"¼ � ¯Oº '�® W�T�V ?�B4RPDGFBf?�=@Y

(�� � § �* .�xFjBf?�=PFZ[XIQNPCWON@N�IKJGLqFjlARPF�JONPIa?�JOU�bKI_RSd�BfWG=�R@DGF= i.txF*^O=ENSR,Bf?XCjWON�?�J�RPDGFs[GI_µ�F=@FJ5RkJG?�RPIK?�JON,?�BF�­5WOU�baIaRSd�n

� ¯Oª�� � V"¼wªU[�ª � ¯Oº '�®AWYTZV�S��kªU[kª V"¼@��W| N{=@WGbKF�N�Bf?�=�[XF�=PIK\AIaJGL,U�J�F�­5WOU�baIaRSd SWO[XL�YVF�J5R{txFxtu?�WGbK[kDOU#\�F �>i �1U�JO[ ��hGbaW`N4RPDGFpJG?�=PYZU�b=@WGbaF N>Bf?�=TYZU�HAIKJGLkIaRxU�JsF�­5WGIK\�U�bKFJOCFr=@FbQU�R@Ia?�J��f=@F �OFlAIK\AI_RSd�i5NPdAY*YVFRP=@d�i�RP=EU�JONPIaRPIK\5IaRSdG��hGbKWON=@WGbaF N4Bf?�=>YZU�H5IKJGL�RPDOF1F�­5WOU�baIaRSdkCj?�Y*hOU�R@IacGbKFeteIaRPD*RPDOFpRPF=@YVv�C?�JON�RP=@WOCjRPIK?�JON�n��G?�=�FjlGU�Y*hGbKF�itxF�tx?�WObK[wDOU#\�F

� �;�(��y° ��� * . � �73!����� . � (�� � �

(����9° ��� * . � � § � � � � �.� � � � �

� ��� ( � £�����§ � �*�£ ( � ����� �(����1§ � � �

�f=@F ��� (�� � �@�(�� � § � � �

��RP=EU�J`N@� (�� � § � � (�� §)9¦� �(�� � §�9³� �

�mU�hOhXv�C?�Y*h`�(�� � § � 3!�;� * . � (��.9 §*: ��*

(�� �'9 § :¦� � � 9 � �

�9U�cON�v Cj?�Y*hO� (T£ ��� * � � § �7� (�� *�§ � � �(��y° ��� * . � § ° ��� �2. �@3!��� * . �

opDGF�C?�JA\�F�=@NPIa?�Js=@WGbaF�R@DGFJyR@U�H�F NxRPDGF,Bf?�babK?�teIaJOLkBf?�=PY

�9Cj?�JA\X� (�� � �* (�� *�§��(�� � � �

opDGF�U�[G[XIaRPIK?�Jy?�B{FjlARPF�JON�IK?�J`U�bKI_RSdZtx?�WGbQ[yU�Y*?�WGJ5ReR@?�R@DGF�=@WGbaF

�fFl5R�� (�� � £ �*�¡�� (�� ,]� 3���� * .Q� � �y§ D���( � � § �*�¡-�

z JVRPDGF��fFjlAR��4=PWGbKF�i�RPDGF1F ­5WOU�bKI_RSdkIaJVRPDOF1hG=@FY*IKNPF��"§��x� IQNTU�JVF�­5WOU�baIaRSd�R@DOU�RTC�U�J*c�FehG=P?�\�F�[%�txFxC?�WGbQ[kC�U�bKb�IaR>U ��S ' � �@ª���W � ¯Oª�� � V"¼ i�cGWXR�IaJkRSdAh`Fv9R@DGF?�=Pd,IaR{IQN4WONPWOU�bKbad�C�U�bKbaF [ �cSCS�¸ W � ¯Oª�� � V"¼ i

Page 22: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{�����������U�N>I_R>IQN{RPDO?�WGL�D�R>?�B�U�N{RPDOF1WONPF=Pv�[XF^OJGF [kF ­�W`U�bKI_RSd�IaJy² RPDGF1c�?A?�H�´KnO�fz J | WXRP?�Y*U�RPDZNPdAN�RPF�YZNiRPDOF�JG?�R@Ia?�J ² c�?A?�H�´TDOU�NsU�\�F�=Pd¬hG=@F�CjIQNPFqBf?�=@Y*U�beY*F�U�JOIaJGL`�TIaRwCj?�=P=@F�NPh�?�JO[GN*=@?�WOL�DGbKd�RP?RPDOF�WONPF=Pv�[XF^OJGF [yC?�J5RPFlAR1RPDOU�Rr=@FhG=@F�NPFJ5R@NeNP?�Y*F�NPh`F CjIa^`C,R@DGF?�=Pd�n �eopDOF�F�­5WOU�bKIaRSdMIKJqRPDGFCj?�JOCjbKWONPIa?�J�?�BeR@DGF��fFjlAR���=@WGbKFwIQN�R@DGF�² IKJ5RPF=@JOU�buF ­�W`U�bKI_RSd�´4?�BeRPDOFMRSdAh�FyNPdXNSR@FYqi;W`N�WOU�babKdCU�babKF�[�R@DGF ºGW T � V � SUT�ª���W � ¯Oª�� � V9¼ npopDGIQNw[XF^OJGIaRPIK?�JOU�brF ­�W`U�bKI_RSd«CU�J�c`F�=PF�hG=PF N�F�J5RPF�[�cAdU�SWO[XL�Y*F�J�RZIaR@NPFbaBV�9U�N*U�c�?�\�F#��i{cGWXRZ?�B�R@FJ�I_RZIQNV=PF�hG=PF N�F�J5RPF�[¬U�N*U~² C?�JA\�F�=�R@IacGIKbKI_RSd�NPIK[XFCj?�JO[XIaRPIK?�J.´KiXbKIaH�F�IKJ2�Xn��AnAz JMR@DGF�bQU�R�R@F=eCU�N�F�i5RPDGF�C?�JA\�F�=�R@IacGIKbKI_RSd *�§ ��� ����IKNpWOJO[XF=EN�RP?A?X[U�N*U�J¬F ­�W`U�bKI_RSd�?�J�U�N�FRZ?�Bk² hONPFWO[G?}R@F=@Y*N�´Ki�IaJOCbaW`[XIaJOL�R@DGFqtuF�babav"RSd5h�F�[¬?�JOF�N�n���FjRZWONNPWGY*Y*U�=PIKgF�R@DGF�[XIaµ�F�=PF�J�ReF ­�W`U�bKI_R@IaF Nn��n�� W T � V � S�T�ª��§W � ¯Oª�� � V"¼ n5opDOF,² WGJ`[XF=@badAIKJGL�F�­5WOU�baIaRSd�´�?�B�R@DGFeRSdAh`F!N�dXN�RPFYqn5�xU�hXRPWO=PF N �>i

�kU�JO[%iAI_B;hG=PF N�F�J5R�iXU�bQN�? ��nG�xU�JMc�F � ¯Oº 'GW® W�T�V�ª�� �fI"n F�nAcGWGIKb_ReIKJ5RP?�RPDGF�Bf?�=@YZU�b�N�dXN�RPF�YZ�?�=1U �cSUT`»gW�zV � � � � � V"¼ [ � ºuWV�cSUT�º � V � SUT n

�Gn �5SCS�¸�W � ¯Oª�� � V"¼ n;opDOFq² F ­�W`U�bKI_RSd�hG=P?�\�U�cGbaF�´%IaJ`N�IQ[XFZR@DGFZRSdAh`[email protected]�B � §�� IKNUMc�?A?�HqF�­5WOU�baIaRSd�i`RPDOFJ�I_R,IKN�UMRSd5h�Fq� � §��� � ������� Bf?�= � £ ��*!�!U�JO[}tuFVCU�JRP=@dyRP?s^`JO[}UZhO=P?A?�B�v"RPF�=PY IKJGDOU�cOI_R@IaJGLwI_RZ� ,�� � §�� }��n.¾AWOCED�U�J]F�­5WOU�baIaRSd]CU�J]c`F[XFj^`JGF�[ycAdsR@DGF�WONPF= n

�u?A?�HkF�­5WOU�baIaRSd�C?�Y*F�NTIaJZ\�U�=PIK?�WON �`U#\�?�WG=@N�i�[XF�h`F�JO[XIKJGL�JG?�RT?�JGbKdk?�J*RPDGFrWON�F�=�´ NTCEDO?�IQCjF�icGWXR*U�bQN�?]?�J�RPDGFsRSd5h�FZR@DGF?�=Pd�i�c�F�CU�WONPFsY*?�N�R�RSdAh`FZR@DGF?�=PIKF�NM�mU�J`[�CjF=PR@U�IaJObad�RPDGF�Ia=�IaYVvhGbKFY*FJ5REU�RPIK?�J`N@�TDOU#\�F�Us² cGWGIKbaR�v�IaJ.´X?�=r² hG=@FjBfF�=P=@F�[%´AF ­�W`U�bKI_RSd�n���F,L�IK\�F!UVNPDG?�=PRx?�\�F=@\AIaF�t�?�BNP?�Y*F,?�hXR@Ia?�JONnG�4IK=@N�R1?�B{U�bKb9iOtuF,tpU�J5RpRPDGF,Bf?�babK?�teIaJOLkBf=@?�Y�U*c�?A?�H5v�F�­5WOU�bKIaRSd�n� opDGF,F�­5WOU�baIaRSdMNPDG?�WGbQ[sc�F�U�JwF�­5WGIK\�U�bKFJOCF�=@FbQU�R@Ia?�JM?�JsRPDOF�CU�=@=@IaF�=TRSdAh�F��ABf?�= * �-�����ji§ � �*�¡ � *,¡ �����#� �pN�DG?�WGbQ[Mc�F�U�JqF�­5WGIK\�U�bKFJOCF,=PF�bKU�RPIK?�J.n

� ¾AWGcON�RPIaRPWGRPIK?�J~hO=P?�h`F�=�RSd�n/��FwtpU�J5R�R@?}=@FhGbQU�CF]² F ­5WOU�bTRPF=@YZNkIKJ~U}hG=P?�h`?5N�IaRPIK?�J�´an;z JRSdAh`FwRPDGF�?�=@FjR@IKC�U�b>R@F=@Y*IaJG?�ba?�L�d�i�txFstxU�J5RkRPDOFsBf?�bKbK?�teIaJGL}=PWGbKFsR@?}c�Fy[GF=@Ia\�U�cObaF}�fBf?�=N�?�Y*F!R@F=@Y C?�JON�RP=@WOC�R@Ia?�J � � £ �P��n

(�� �*�� " � (����k� " § � (�� � ��]£��#�x��*k� ��

o;?*U�CEDGIKF\�F!RPDOIKNetxF�[XIQNSR@IaJOL�WGIQN�DwRPDOF,Bf?�bKba?�teIKJGLVRPDG=@FF�R@=PF U�RPY*F�J�RENp?�B{F�­5WOU�baIaRSd�n��n ��W � �YT ��� W � ¯Oª�� � V"¼ iO[XFj^`JGF�[yIKJyDOIaL�DGF=e?�=@[XF�=pba?�L�IQC�n ��F�txU�J�RpR@?*N@U#d���Bf?�babK?�teIKJGL �.FIKcXv

JGIKg �pR@DOU�R " § � *IaB�Bf?�=�U�bKb�hG=@F�[XIQCU�RPF N�9�?�\�F�= *�i29©DG?�bQ[GN1Bf?�= " Iaµ 9¦DO?�bQ[GN1Bf?�=Anz JyRSd5h�F,RPDOF?�=@d��

" § � ��§ 3�9*� *�¡ � ���#� � 9 " �P¡�� 9 �� . 1?�RPF!RPDOU�RuR@DGIKNxF ­�W`U�bKI_RSd*bK?5?�HXNuU�N�dAY*Y*FjRP=@IQC��5DG?�tuF�\�F�=�i�I_ReCU�Jsc`F�NPDG?�teJ*RPD`U�R!§���IKNN�dAY*Y*FjR@=PIQC�n

�Gn/0 T�º�¯O�YV � »UWj�_¼�ºGW TIWEº�W � ¯Oª�� � V9¼ n (T­5WOU�baIaRSd�§ � � *,¡ � *�¡ � ���#� ��IQNkRPDGF�² NPYZU�bKbaF NSR ´;=@Fjv�OFjlXIK\�FV=PF�bKU�RPIK?�J�?�J�*ki�I"n F�n�RPDGFy²�N�YZU�babKF�N�R�´�=@FbQU�RPIK?�J �©?�J *¦Bf?�=�teDGIQCEDD�2���Q�5� �G���DG?�bQ[GN�nGz JyRSdAh`F�RPDOF?�=@FjR@IKC,NPdAJ�REU�lsR@DGIQNetu?�WGbQ[MbK?A?�HsbKIaH�F

12)�� � � �+* ��� � � � �*,¡ *,¡ �����#� ��§& ��4y� 3!�;� * .Q�� � � ��� .

opDGIQNTNPh`F CjIa^`CeBf?�=PY¦?�B.[XFj^`JGI_R@Ia?�J.i�RP?�c�F1RP=@F�U�RPF [�IKJsY*?�=@F1[XFR@U�IKbOIKJM¾AF C�RPIK?�J��On �Oi�N@U#dANRPDOU�R & � 4*IQNTRPDGF�?�JGbKd ��S�T�[zV"��¯O��VwS�� Bf?�=uRPDOFrIKJO[XWOCjRPIK\�FbKdZ[XFj^`JGF�[M=PF�bKU�RPIK?�J� �`n5opDGIQNuIKNYZU�[XF�hG=@F�CIKNPF,cAdMU�J�� T�º�¯O��V � SUT hG=PIKJOCIahGbKF�RPDOU�RrCj?�YVF NeU�bK?�JGL*teIaRPDyRPDOIKN1[GFj^OJGIaRPIK?�J�n

Page 23: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � &

�On � �ZWE� � ª���V9¼@�ZW ��� Vf·9[9�ZWE� � ª�����¯X��Wz[ i5=P?�WGL�DObadV=PF �OF�CjRPIKJGL�R@DGFrIKJO[XW`C�RPIK\AI_RSdZ?�B4§��TiXU�N>IKJ �Xnz J �U�=PRPIKJXv � "?�BS´ N!RSdAh`FsRPDGF�?�=@d~�mNPFF �U�=�R@IaJGv � "?�B � �$��� ���"i% 1?�=@[ONSR@=�"?�Y FjR�U�b9n � �$�%��&��f��iF�­5WOU�baIaRSdsIQNpR@U�H�FJqU�NeUVcOU�N�IQC!RSdAh`F�C?�JON�RP=@WOC�R@?�= �

(���* �!�����(T£ ��£� �� * ��� 1 � ��� G�x�!�����

(�� � �*(��}� & ��4#� � �x�O� 1 � � � � �

��F�[G?�J.´ RsL�IK\�FyRPDOFqBfWGbabrFbKIaY*IKJOU�R@Ia?�J �mIaJ`[XWOC�R@Ia?�J`�VhG=@IaJ`CjIKhGbaF�i>cGWXRs?�JGbKd�?�JGFq?�B�IaR@NIaJ`NSREU�JOCF�N��

(��.9¦�*�¡ ����� (�� V�O� 9 �X� (�� �k�O�fzS[#� � �j�(��}�3* ��� � � ����x�`��9��j�

 1?�RPFpR@DOU�RTIKJ*RPDOFeRPDGIK=E[VU�hGhG=@?�U�CED.i#RPDGFrIK[XF�J5RPIaRSd�RSdAh`F�� 1 � � � �j�4IKNT?�B�RSdAh`F �����ji�U�JO[VJG?�RT?�BRSdAh`F � ���#� n�opDGIKN!IQNrJG?�R�UMh`F CjWGbKIKU�=!U�N�h�F�CjR!?�B }U�=PRPIKJXv � "?�BS´ NrU�hGhG=@?�U�CEDyR@?MF�­5WOU�baIaRSd�i`cGWXRUyCj?�J`N�F ­�WOFJOCF�?�BuDGIQN,U�hGhG=@?�U�CED]RP?ybK?�L�IQC�IaJ�L�F�JGF=EU�b"��RPDGF�=PFVIKN,JO?y[XIQN�RPIKJOC�R@Ia?�J�c�FjRStxFF�JNPFjR@NTU�JO[*hG=@?�h�?�NPIaRPIK?�JON���c`?�RPDq² baIK\�F�´�IKJ*RPDGF1WOJGIa\�F=EN�F ��� �1�mU�J`[�DOFJOCFeRPDGF�=PFeIQN>JO?�WGJGIK\�F=ENPF������� �jn

opDGF=@FuU�=PFxN�?�YVFxCjbKF�U�=4[XIaµ�F=@FJOCF�N�i�F�n L`n�R@DGFu^O=@N�R;=@F�­5WGIK=@F�N;IaY*hG=@F�[XIQCU�RPIK\AI_RSd�RP?�c�Fx[XF^OJXvU�cObaF�iXteDGIabKF,RPDOF,NPF�C?�JO[w=@F�­5WGIK=PF NuIKJO[XW`C�RPIK\�F�RSdAh�F�N�nO�1?�txF\�F= i�F U�CEDy?�B�R@DGF�NPF�U�hGhO=P?5U�CEDGF NRP?kF�­5WOU�bKIaRSdkdAIaF�bK[ON>U�JZF ­�WOIa\�U�bKFJ`CjFe=@FbQU�RPIK?�JVBf?�=>teDGIQCED*RPDGFrNPWGcON�RPIaRPWGRPIK?�JshG=@?�h�F=PRSd�DG?�bK[ONn�.FRxW`Nx[GIKN@CjWON@Nu?�JGF�FjlGU�Y*hGbKFrteDOF=@F1RPDOF,[GI_µ�F=@FJ5RpF�­5WOU�bKIaRPIKF�Nx[XIa\�F=@L�F�nA¾AWOhGh`?5N�F�txFrDOU#\�F[XF^OJGF�[M�fIKJO[XWOCjRPIK\�FbKdG�.UeYZU�h ��* ) � ) � �@¡ ������NPWOCED,RPD`U�Rx� ��* ) ¢���=PF�hG=@F�NPFJ5R@N�R@DGFT¢�v�FbKFY*F�J�RRSdAh`F�n�opDGFJV?�JGFutu?�WGbQ[�bKIaH�F�� ��* ) ¢��;U�J`[M� ��* ) ¤]�%R@?!c�FpIKNP?�Y*?�=PhGDOIKCTI_BO¢wU�JO[k¤©U�=PFuF�­5WOU�b9n¾A?�tuFutxU�J5Rx�mU�R4bKF�U�NSR��%R@DGFuBf?�bKba?�teIKJGL1R@?rc�Fe[XF=@Ia\�U�cGbaF���Bf?�=4NP?�Y*FpN�?�YVFTRPF�=PY C?�JON�RP=@WOC�R@Ia?�J�s� £ ���jn

(�� " �O� ��* ) ¢�� (����k��¢�§�� ����¤(����s� " £ ���p�O� ��* ) ¤]�

�G?�= ��FIKcGJGIKg!F ­�W`U�bKI_RSdq��� � �uU�c�?�\�F �ji�txFrCU�JsJG?�RxCj?�JON�RP=@WOC�RpN�WOCEDsU�RPF�=PY��s� " £ ����i5c`F CU�WON�FIaReU�babK?�t1NxFbKIaY*IKJOU�R@Ia?�J}² ?�\�F�= �����#� ´X?�JGbKd�nX�G?�=pRPDGF,IKJO[XWOCjRPIK\�F,F�­5WOU�baIaRSd�iAIaRr[XFh�FJ`[GNp?�JMRPDGFFbKIKYVIKJOU�RPIK?�Js=@WGbKF�NTRPDOU�RxU�=@F!U�babK?�txF�[*IKJZRPDGF!RSdAh`F�N�dXN�RPF�Y �mF�n LOn�RPDGF!RSdAh`F�N�dXN�RPF�Y�?�B{� ¶ �� �$���%���.[X?AF�NpJO?�RrU�bKbK?�t I_R���nO�O?�= �U�=�R@IaJGv � "?�BS´ NxRSd5h�F,RPDOF?�=@d�i5R@DGF�U�c�?�\�F,=@WGbaF,IQNp?�cA\AIa?�WONPbad[XF�=PIK\�U�cGbKF�iXc�F�C�U�WONPF � ���#� U�JO[ �����pU�=@F!R@DGF�NPU�Y*F�WOJGIa\�F=EN�F�iGU�JO[w?�JOF,C�U�JyFbKIaY*IKJOU�R@F�?�\�F�=IaR�n

�GVwW�TZ[ � S�T�ª�� � V9¼Z»UW�c[E¯�[ � T�VXWYT�[ � SUT�ª�� � V"¼opDGFq[XFj^`JGI_R@Ia?�JOU�beF ­5WOU�bKI_RSd�C�U�J~c�F�� TZVwW�TZ[ � SUT�ª�� ?�= W��GVXWYT�[ � SUT�ª�� n�z J¬RPDOFw^`=@N�R*C�U�NPF�i4tuF[X?yJG?�R�DOU#\�F�Uy[XF=@IK\#U�RPIK?�J�=PWGbKFq�fFjlAR���i.U�J`[�DGF�JOCjF*F�­5WOU�baIaRSd]?�BTBfWGJOC�R@Ia?�JON,IQN!F ­5WOU�bKI_RSd]?�BU�bKL�?�=PIaRPDOY*N�nAz JMR@DGF�N�F Cj?�JO[wC�U�NPF�iAtxF�D`U#\�F,U�[XF�=PIK\�U�R@Ia?�Jw=@WGbKF*�mFjlARE�jiOU�J`[sDGF�JOCjF�F ­�W`U�bKI_RSd?�B4BfWGJOCjRPIK?�JONpIQNeF ­�W`U�bKI_RSds?�B;L�=@U�hGDON�n

z�R�Bf?�bKba?�t1N�Bf=@?�Y ?�WG=�[GIKN@CjWON@NPIa?�J�?�Bpor�x< U�JO[�opzS< IaJ �Gn �wR@DOU�R�R@DGFMU�[O[XI_R@Ia?�J�?�BxRPDGF=@WGbaF*�fFlARE�u=PF�JO[XF�=@Nxor�x<�WGJ`[XF�CIK[GU�cGbKF�n �rIKg�nXNPWGhGh�?�NPF� �O� *�¡����@¡ �����#� U�JO[MtuF�HAJG?�t���{�� �%�j��RPDGF�J �«�{��� �G�!I_µ~RPDGF�=PF*IQN�UMR@F=@Y ?�BuRSdAh`F 3!�;� * .�� ��§ � ��n4¾A?yBf?�=,RPDOIKNor�x<¬RP?Zc�F�N�?�ba\�U�cGbaF�iAtuF�JGF�F�[MRP?sNP?�bK\�F,U*opzS<{n

Page 24: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{�����������opDGFV^O=@N�R,RSdAh`FZNPdAN�RPF�YZN,c5d �U�=PRPIKJXv � "?�B��mNPFF �U�=PRPIKJXv � "?�B ������� �f�1txF=@F�FlARPFJ`N�IK?�JOU�b9n

��U�RPF�=�DGFu=PF SF�C�R@F�[�FlARPFJ`N�IK?�JOU�baIaRSd�i�c`F CU�WON�FT?�BXRPDOFTIKYVhObaIKF�[�WOJO[XF�CIK[OU�cGIKbaIaRSd,?�BXRSdAh�FuCEDGF CEH�vIKJGLOn{opDGFMIKJ5RPF�=@U�C�RPIK\�F*R@DGF?�=PF�Y hG=P?�\�F=� rWGhG=@bu?�B��u?�JON�R@U�cGbaFMFjRVU�b9n�� �$������TIQN�cOU�NPF�[�?�JFjlAR@FJONPIa?�JOU�b`RSdAh`F�R@DGF?�=Pd�n�z�RpIKNpCbaF U�=xRPDOU�RuBf=@?�Y½UkY*?�=@F�CbKU�NPNPIKC�U�b`\5IKFt�?�JMYZU�RPDGF�Y*U�RPIQCN�fIQ[XF�J�R@I_BfdAIKJGLwBfWGJOC�R@Ia?�JON!teI_R@D}L�=EU�hODON1IKJ�NPFjRPv9R@DGF?�=PFRPIQC�txU#dG�ji`Fl5R@FJONPIK?�JOU�baIaRSdwIQN!\�F=@dq[XFjvNPIa=EU�cGbKF�n �eF CjFJ5R@bad�i5tx?�=@H*DOU�Nuc�FFJq[X?�JGF��mY*U�IaJObadZcAds�1?�BfYZU�JGJ ������ �����TN�DO?�teIaJGL�DG?�t«RP?FJ`Cj?X[XFM�m?�=1FlAhObKU�IaJ`�eFjlARPF�JON�IK?�J`U�b.F ­�W`U�bKI_RSdyIaJ�U�JqIaJ5RPF�JONPIa?�JOU�b�RSd5h�F�R@DGF?�=Pd�nOopDGF�IQ[XF�UsIKNRP?sRP=EU�JONPbKU�RPF�U�JyFlARPFJ`N�IK?�JOU�b%RSdAh`F�RP?MUZh`U�IK=rCj?�JON�IQN�RPIKJGLZ?�B>U�JqIKJ5RPFJ`N�IK?�JOU�b%RSdAh`F�U�JO[]U�JF�­5WGIK\�U�bKFJOCFZ=PF�bKU�RPIK?�J�?�J�IaR�n;�rF=@F�i%R@DGFsF ­�WOIa\�U�bKFJ`CjFZ=@F�U�baRPIK?�J�IQN�UqWONPF=Pv�[XF^OJGF [��mc`?A?�HX�F�­5WOU�baIaRSd�i`cGWGIKb_R�WGh}U�CCj?�=@[GIaJGL*R@?ZRPDOF�RSdAh`F�Cj?�J`NSR@=PWOCjRPIK?�JON1Bf=P?�Y c`U�NPIKC�F ­5WOU�bKI_R@IaF Ni`teDGIQCEDU�=@F�RPDGF*IKJO[XWOCjRPIK\�FbKd}[XF^OJGF [}?�JGFVBf?�=,IaJ`[XWOC�R@Ia\�FVRSd5h�F�N�U�JO[�U�J�U�lXIa?�Y*U�RPIQCU�babKd�[XF�CbKU�=PF [?�JOF!Bf?�=ecOU�NPIQC!\�U�=PIQU�cGbKF�RSdAh`F Nn

� WYVwS � ºg[| hOU�IK= � *k£E§ ��teI_R@D *½� ��� �ji.§���*,¡ � *�¡ ������� ��NPWOCED]RPD`U�R�§�IQN�U�J�F�­5WGIK\�U�bKFJOCF�=@FbQU�vRPIK?�J�?�J *©IQN�CU�babKF�[�U [YW�VwS � º n�z J�RPDGF*R@=@U�JON�bQU�R@Ia?�J�?�BuFl5R@FJONPIK?�JOU�b{RSd5h�F�N�RP?]N�FRP?�IK[GNZ�mIaJIKJ�R@FJONPIK?�JOU�b�RSd5h�F,RPDOF?�=@dG�x?�JGF,DOU�NpRP?ZU�bKNP?VRP=EU�JONPbKU�RPF�Cj?�Y*h`?�WGJO[wRSdAh`F NiGbKIKH�F *�¡��¨U�J`[3!�;� * . �si�RPDOIKN�U�Y*?�WGJ5R@N!R@?q[GFj^OJGIKJGLyRPDOF�BfWOJOC�R@Ia?�J�NPhOU�CFZU�JO[�RPDGFs[XF�h`F�JO[XF�J�R,BfWGJ`C�RPIK?�JNPhOU�CFec`FRStuF�FJsNPFjRP?�IK[ONn5o�?�L�Ia\�FpRPDGFrIK[XF U�txFeRP=@F�U�R>RPDGF1BfWGJOC�R@Ia?�JMNPhOU�CFeDGF=@F�n���Ia\�FJ*RStx?NPFjRP?�IK[ON � *k£E§ � ��U�JO[ � �s£E§ � �"iOtuF�[XF^OJGF�RPDGF ±E¯�T���V � SUT½[9�Oª��cW [YW�VwS � º � *��¡-�s£�§ ���

�� �.cAd

*��¡-� ��§ 5p�4� *�¡�� .Q� 3���£/ �� * .Q�5� � � X�@¡ �P�9�.���>§ � �9� G���P��£�y§ ���

�� � ��§ 3���£/ �� * .Q� �q§ � G�P¡�� � � � ���T§ � � � � � G� .

��IK\�FJ * teI_R@DyF ­5WOU�bKI_RSdM§ � U�JO[ ��teIaRPDyF�­5WOU�baIaRSdw§ � iAR@DGIKNpIQNuRPDGFV²�CU�JG?�JGIQCU�b`F ­5WOU�bKI_RSd�´?�J *�¡��sn> r?�RPFyR@DOU�RVRPDGF]C�U�=@=PIKF=*N�FR *��¡%� IQNVJG?�R+SWON�R *�¡��si�cGWXR*R@DGF}²�NPWGcONPFjR�´�?�BRPDO?�NPFw� ��*�¡-� RPD`U�Rk=@F�NPh`F C�R�R@DGFMF ­�W`U�bKI_R@IaF N � � U�J`[~§ � n4¾XWOCED�U�J��¬IKNkU�bQN�?�C�U�bKbaF [U [YWYVXS � º!±E¯�T���V � SUT Bf=P?�Y � *�£�§ � �4RP? � �s£�§�� ��nOz JqRSdAh�F�RPDOF?�=@d�i`N�WOCED]UsNPWGcONPFjRV�f?�B>NPFjR@?�IQ[BfWGJOCjRPIK?�JONE�xIQNp=PF�hG=PF N�F�J5RPF�[McAdMU 5Tv9RSdAh�F�iGCj?�JONPIKN�RPIKJGL*?�B4hOU�IK=@N �"��£ ,;£��uteI_R@D��fIKJwR@DGIQNeCU�NPF ��}�*�¡��si ,]� 3���£� �� * .Q� �q§�� G�P¡����"� ���T§ � �9� G����nXopDGF,F ­�WOIa\�U�bKFJ`CjF�=PF�bKU�RPIK?�Jy§ ���

��

IKL�JG?�=PF NpRPDGF�hG=@?5?�B�v9R@F=@YZNi�N�? �"��£ ,2�p§ ������"��£E �1DG?�bQ[GNeBf?�=�U�bab;FbKFY*FJ5RENr?�B�RPDGFVCU�=@=@IaF�=

NPFjR * �¡��snopDGFkCU�JG?�JOIKC�U�b%F�­5WOU�baIaRSdM?�J2*�¡��¨IKNeRPDGF�FlARPFJ`N�IK?�JOU�b.F�­5WOU�baIaRSds?�B4BfWOJOC�R@Ia?�JONn�opDGF=@Fjv

Bf?�=@F�iuRPDOF}IKJ�R@F=@hG=@FjR@U�RPIK?�J�?�B�FjlARPF�JON�IK?�J`U�b!RSd5h�F�R@DGF?�=Pd�IKJ�IKJ�R@FJONPIK?�JOU�b1RSdAh`F�RPDOF?�=@d�IKNNP?�WGJO[.nT� ¶ BeCj?�WG=@NPF�i�R@DGFZ?�R@DGF=�RSd5h�FsCj?�JON�RP=@WOC�R@Ia?�JON�NSR@IabKb>DOU#\�FVRP?]c�FZ\�F=@Ia^OF�[%�.NPFFs�r?�B�vYZU�JGJ � �$�%� � �{Bf?�=�[XFjREU�IKbKN�n �!z�R�DOU�N,c`F�FJ�?�cON�F�=P\�F�[�RPDOU�R�NPFjR@?�IQ[GN�hG=@F�NPFJ5R�UyL�F�JGF=EU�b�U�J`[hG=EU�CjRPIQCU�bXtpU#d�?�B%[GF�U�bKIKJGL,teI_R@DZFjlARPF�JON�IK?�J`U�bXF�­5WOU�baIaRSd�U�JO[VteI_R@DZYZU�RPDOFYZU�R@IKC�U�bOC?�JON�RP=@WOC�vRPIK?�J`NuIKJML�FJGF�=@U�b9n5z�BSiXIKJwYZU�R@DGFYZU�RPIQCNx?�JGF�N�h�F�U�HXNuIKJXBf?�=PYZU�bKbKdV?�B;UM² NPFjR ´aiXtxF!F�JOCj?X[XF!RPDOIKNIKJqRSd5h�F,RPDOF?�=@dMcAdyUy² NPFjR@?�IQ[%´an�o�?sNPDG?�t�RPDGF �`FjlXIacOIabKI_RSdwtuF�N�DG?�t DG?�t U � ¯ZS�V � WYTZV U�J`[yU[�¯ �z[YWYV C�U�Jyc`F�=@FhO=PF N�F�J�R@F�[wWONPIaJGLZNPFjR@?�IQ[GNn��Ia\�FJ�UZNPFjRP?�IK[ � *�£�§ � �{U�JO[qU�J]F�­5WGIK\#U�baF�JOCjF�=@FbQU�R@Ia?�JG:³?�\�F=pR@DGIKN!N�FRP?�IK[%iOtuFk[GFj^OJGF

RPDOF�� ¯ZSUV � WYTZV"¹X[�WYVwS � º � *�£�§��0� :*n5 r?�R@FrR@DOU�RpRPDOFrBmU�C�RpRPDOU�R : IKNpU�JMF�­5WGIK\�U�bKFJOCF!=@FbQU�R@Ia?�J?�\�F�=xRPDGF�NPFjR@?�IQ[ � *�£�§�� �;YVF U�JONxR@DOU�R� :¦�*�¡ � *,¡ �����#� �xIKNeU�JyF ­5WGIa\�U�baF�JOCjF,=@FbQU�RPIK?�J�i

Page 25: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � �

� §����):*iXI"n F�n0���;£/ �� * .K� �y§�� G�P¡���:*� G��n��Fq[GFj^OJGFyR@DGF]­�WO?�RPIKFJ5RZN�FRP?�IK[ � *k£E§ � � : NPIaY*hGbKd�U�N1� *�£ : �"n�z�RZIQN*U�J~F U�NPd�FjlXF=ECjIQNPFRP?�N�DO?�t DG?�t U~NPFjR@?�IQ[«BfWGJOCjRPIK?�J � Bf=@?�Y � *�£�§ � ��RP? � �M£E§ � ��R@DOU�Ry=PF N�h�F�CjR@N : �fI"n F�n���;£/ �� * .K� : � X�@¡ �P�9�����k§ � �"� G���P�,IKJO[XWOCF�N�U]NPFjR@?�IQ[}BfWOJOC�R@Ia?�J�Bf=P?�Y � *�£E§ � �� :�RP?� �s£E§ � �"n��Ia\�FJ�U!N�FRP?�IK[ � *�£�§ � �XU�JO[�U!hG=@F�[XIQCU�RPF69«?�J1*ki txFu[GFj^OJGFuRPDOF [�¯ �¹X[�WYVwS � º � *�£�§ � ��� 9

U�N�RPDGFsh`U�IK= � 56��� * .Q� 9 ���j£E§ � � 9 ��i�teDOF=@Fy§ � � 9 IKN*§ � =@F�N�RP=@IKCjRPF [�RP?G9*i�I"n F�n.Bf?�= A£����56��� * .Q� 9 ����i

���§ � � 9���� ��§ � � � ��>§ � � � � ��� .

z J}[XF^OJGIKJGLqUsN�WOcON�FRP?�IK[%i�txF�[X?wJG?�R�=PF ­�WOIa=@F�R@DGFkhG=@F�[GIKC�U�RPF"9�RP?w=PF N�h�F�CjRrRPDOF�F ­�W`U�bKI_RSd§ � n%�mopDOU�RpIQN�i5txF,[X? T§SUV =PF ­5WGIa=@F �2��£� �� *k� �y§ �� 9 ���P¡-9 *R@?�DG?�bK[.n �p¾A?`i5IKJsREU�HAIKJGLVUNPWGcONPFjRP?�IK[MtuF!YZU#dV=@FY*?�\�FrFbKFY*F�J�REN>Bf=@?�Y©R@DGF�§rv"F ­�WOIa\�U�bKFJ`CjF!CbKU�NPNPF�N�nAopDGIKNxIQNxJOU�R@WG=@U�b9ic�F�CU�WONPFxtxFpU�=@FxJO?�R�IaJ5R@F=@F�N�RPF�[kIaJVR@DGFpFbKFY*FJ5R@N{?�B *ki�cGWXR�IKJ�R@DGFr§rv"F ­5WGIa\�U�baF�JOCjFpCjbQU�N@N�F Nn�u?�J`N�IQ[XF=TRPDGF!Bf?�bKbK?�teIaJGLkFjlGU�Y*hGbKF1teDGF�=PFrRPDGIQNuU�hGh�F�U�=EN>=EU�R@DGF=uJOU�R@WG=EU�bKbad�n ��FjR * ��§ * ) ��+) � �*c�F�R@DGF�RSdAh�F}?�B�hOU�IK=@Ns?�BkU�J�IKJ5RPF�L�F=yU�JO[�U~JOU�R@WG=EU�b1JAWGY�c`F�=�npo�?~=PF�hG=PF N�F�J5RZRPDGF=EU�RPIK?�J`U�bQNutxF�[XFj^`JGF�iXBf?�=�� �;£ ,��j£ �5 �£� ��� *�i

� �;£ ,2�T§ � �5 �£� � ��§ �4� � �>§ �� ,� �#� .

 1?�t Cj?�JON�IQ[XF�=pRPDGF�hG=@F�[GIKC�U�RPF 9³?�J)* [XFj^OJOF�[ycAd

:F� �;£ ,2� ��§ L5C[%� �;£ ,� � �>§ �.

opDGFkNPWGcONPFjR@?�IQ[ � *k£E§��0��� 9¦IKNrIKNP?�Y*?�=@hGDGIQC!RP? � *�£�§�� �4I_REN�F�b_BSi`cGWXR!U�bab�F�­5WGIK\#U�baF�JOCjF�CbKU�NPNPF�NDOU#\�F!c�FF�Jy=@F�[GWOCjF [MR@?ZU�?�JGF�FbKFY*F�J�R1NPFjR n

� ¯ �YV"¼@��W�[�ª�T�ºy�cSLW�P� � SUT�[��DGF�JVW`N�IKJGL�NPFjRP?�IK[ON4RP?,Bf?�=@YZU�bKIag�FTR@DGF1JG?�RPIK?�JV?�B%N�FR�i�?�JGFpFJOC?�WGJ5R@F=EN�UrRSdAhGIKJGL,hG=@?�cGbKFYqn¾AWGhOh`?5N�F�txF�DOU#\�F,RPDGFkNPFjR@?�IQ[ � *k£E§ � �"n� 1?�t�i�*³�������jiOcOWXR1RPDOF�NPFjRP?�IK[ � *�£�§ � �4IKN1JG?�Rr?�BRSdAh`F �����ji.cOWXR�?�BuRSdAh�F�5 *�� ����� . *�¡�� *,¡ � ���#� ���1F�JOCjFZtxFMC�U�J�JG?�Rk[GF�CjbQU�=@FsUq\�U�=@IKU�cGbKF�~��� *�£E§ � �r�fc�F�C�U�WONPFVtuFZCU�J}?�JGbad�[GF�CjbQU�=@F�Uw\�U�=@IKU�cGbKF �¬�?� I_B � � ������?�= � � � ���#� ��n¾AIKY*IabQU�=@bad�iXI_B �s��*�iXR@DGFJ �sIQNeJG?�Re?�B4RSd5h�F � *k£E§ � ��n

| N1UVYZU�RPRPF=e?�B;BmU�C�R iOU*N�FRP?�IQ[yCj?�J`N�IQNSRENp?�B{U V9� � ����W� *�£�§ � £���� � � ' �%���-� � ���@5 *k� ����� . 5 ��� *�¡�� *,¡ �����#� � .Q� 1 ��� � �%' ( & �j£

teDGF�=PF ��� � � ' �%����� � IQNVU�hG=@?A?�B1?�BV� 1 ��� � �%' ( & �ji�NSREU�RPIKJGL�RPDOU�Rw§ � IQN*U�J¬F�­5WGIK\#U�baF�JOCjF=@FbQU�RPIK?�Jy?�\�F�= *knGz�B{tuF,Bf?�=PYZU�bKIKgF!RPDGF,RSdAh�F�?�B{F�­5WGIK\#U�baF�JOCjF,=@FbQU�R@Ia?�JONx?�\�F=eU�^GlXF�[)* U�N

� � & �%' M��§ 5 ��� *�¡�� *,¡ � ���#� � .Q� 1 ��� � �%' ( & �£

RPDOFJ.i.IaB � � � � & � ' }U�J`[���£ � � ��*�i%?�JGF*tu?�WGbK[}baIKH�FVR@?yte=@IaRPF � � � � i%cGWXR�R@DGIKN,IQN,JG?�R�UhG=@?�h�?�NPI_R@Ia?�J.n.�mopDOF � IKNp=@F�U�babKdMU �Oª � � Cj?�JON�IQN�RPIKJGL*?�B4UVcGIKJOU�=Pds=@FbQU�R@Ia?�JyU�JO[yU�hO=P?A?�BSn��

z�ButxF�bK?A?�H]U�R,RPDOFkBf?�=PYZU�bKIKg�U�R@Ia?�J�?�BpN�WOcON�FR@N,U�N�NPWGcONPFjRP?�IK[ONi�txF�F�JOCj?�WGJ5RPF=�UyN�IKY*IabQU�=hG=@?�cGbKFYqnXz�B � *k£E§��0��� 9¦IKNrUVNPWGcONPFjR@?�IQ[M?�B�� *�£�§��0�"iXR@DGFJ]U�J�² FbKFY*F�J�R ´X?�B4RPDGIQN1NPWGcONPFjR@?�IQ[

Page 26: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{�����������IQN�L�IK\�F�J�c5d�U �Oª � � � ��£ ,���i;teDGF=@F�¬�/*�U�JO[ , ��9 ��i�cGWGR�RPDGIQN�IKN�JO?�R�U�J«² F�baF�YVF�J5R�´�?�B� *�£E§��0����I_B � ��*,¡%� U�J`[G��� � *�£�§��0��� 9*i�tuFVCU�J�JG?�R,te=@I_R@F � ��i.U�N���IaR@NPFbaBTIKN�JG?�R�?�BRSdAh`F *kn

opDGF�hG=@?�cGbKFY baIKF�NrIaJqR@DGF�BmU�C�RrR@DOU�R!?�WG=eR@F=@YZN1U�=@F�\�F�=PdwFjlXhGbKIKCI_R iOteDGF�=PF U�NetxF�tu?�WGbQ[bKIaH�F,RP?sc�FkY*?�=@F�IKYVhObaIQCjIaR�n�opDGIKN!N�IaRPW`U�RPIK?�J]IQNrU�bKNP?*FJOC?�WGJ5R@F=@F�[qIKJ]Y*U�RPDGF�YZU�RPIQCN�iGteDGF�=PF?�JOFs[XFj^OJOF�N�i%Bf?�=�FlGU�Y*hGbKFsU�² L�=P?�WGh.´.U�NkUyRPWGhGbKF�� § � *�£��A£ * ) �X£ � ��i�teDGF=@F *¨IQN�U]N�FR�i�ZUMcGIKJOU�=@dq?�h�F=EU�RPIK?�J�i * ) �sUsWGJOU�=Pdq?�h`F�=@U�RPIK?�J}U�JO[�*U�J�FbKFY*FJ5R!?�B *�i%N@U�R@IKN�BfdAIaJGLsRPDGFL�=@?�WOh«U�lXIa?�Y*N�nuopDOFJ ?�JGF}NPh`F U�HXNZ?�BZ² FbKFY*F�J�RENs?�B�RPDGF�L�=@?�WGh��Z´KiuteDOF=@F�?�JGF}=PF U�bKbadY*F�U�JON�² FbKFY*FJ5RENr?�B�RPDGFy�mCU�=P=@IKF=��eN�FR�*�´Kn.¾A?Oi`?�JGFy�m[XF�baIKc�F=EU�RPF�badG�1YVIalXF�N!WGh]R@DGFkL�=P?�WGh�³U�JO[ZIaR@NpCU�=P=@IKF=TNPFjR *�nXopDGIQNTIQNuJG?�ReN�bK?�hOhGIaJOF�N@Ni5cGWXReCj?�J5\�FJGIKFJ`CjF��5N�?�Y*Fr?�B%R@DGF,[XFjREU�IKbKNU�=@Fq[XFbKIac�F=EU�R@FbKd�?�Y*IaR�RPF [%i>HAJG?�teIKJGL�R@DOU�RZ?�JGF]CU�J~^ObKbpRPDGF�Y IKJ¬IaB!JGF CjF NPN@U�=@d�n{opDGIQN*IKNNP?�Y*FjR@IaY*F�NeC�U�bKbaF [�² IKJXBf?�=@YZU�b.=@IaL�?�= ´an

| NptpU�Nx^O=ENSReJG?�RPF [McAd | CjgF�b9iX?�JGF,tu?�WGbQ[MbKIaH�F�RP?*DOU#\�F,U*N�IKY*IabQU�=pY*F�CED`U�JGIQN�Y�IaJyRSdAh`FRPDOF?�=@d�iABf?�=1c�FIKJGLZU�cGbKF,RP?ZWONPF,IaJGBf?�=@Y*U�b.=@IaL�?�= n | tpU#dZR@?*[G?*RPDGIQNeIQNecAdMCj=@F�U�RPIKJGLZU�bKF\�Fb?�J¬RP?�h¬?�B!R@DGFyRSdAh`FqR@DGF?�=Pd�i�teDGF=@Fq?�JGFqCU�J¬WONPF]Y*?�=@FwIKJXBf?�=PYZU�bebQU�JOL�WOU�L�F�i{teDGIQCED�IKNRPDOFJwRP=EU�JONPbKU�RPF [ZRP?VR@DGF�Bf?�=@Y*U�b�baF�\�Fb"nGopDGIQNp=PF ­5WGIa=@F�NTRPD`U�RpRPDGF,IKJXBf?�=@YZU�b%FlAhO=PF NPNPIa?�JONxU�=@FFjlXhOU�JO[XF [�IaJ�N�W`CED¬U�tpU#d�RPDOU�R�R@DGFd�c�F�C?�Y*FMtxFbKbav9Bf?�=PY*F�[�IaJ~RPDGFyWGJO[XF�=PbKdAIaJOL}Bf?�=PYZU�bRSdAh`FwRPDOF?�=@d�n4z�RVRPWG=@JONV?�WXRVRPD`U�R*IaJ~RPDGIQNVFjlXhOU�J`N�IK?�J.i;RPDOFMRSdAh�FyNPdAJ�R@DGF�NPIQN�U�baL�?�=@I_R@DGY IKN\�F�=Pd�WONPFjBfWOb9i>U�N�IaRZL�F�JGF=EU�R@F�NkRPDGFqY*IKN@NPIaJGL�IKJXBf?�=@YZU�RPIK?�J�n{opDOIKN*CU�J¬c�FyY*U�[XFyBf?�=@YZU�bKbadhG=@F�CIKNPF,c5dMIaJ5RP=@?X[XWOCIaJGLVR@DGF�JG?�R@Ia?�Jw?�B �cSCWj�@� � S�T n

¾A?�Y*Fk?�B�RPDGF�hG=@?�cGbKFYZU�R@IKCkFjlGU�Y*hGbKF�N1RPDOU�R!txFkL5U#\�F�U�c�?�\�F�CU�J}c`FVN�F�FJ}U�N1IKJONSREU�JOCF�N?�B!RPDGF [�¯ �¹wV9¼@� � T#'w���ÒS����W® n>z J¬RSdAh`FyR@DGF?�=Pd�U�N�txFyDOU#\�Fq[XIQNPCWONPNPF�[~WGJ5RPIKbeJG?�t�i4RPDGF�=PFIQNkJG?�JG?�R@Ia?�J�?�BrNPWGcXRSdAh�F��4tuFyCU�J�JG?�R*NPU#d�RPD`U�R *�� �Mi4teIaRPD¬U�N�IaJ5RPF�JO[XF [�Y*F�U�JOIaJGLRPD`U�RMIaB � � * R@DGFJ U�bKNP? � �!�snuz�RMR@WG=PJ`Ns?�WGRsRPDOU�RMIaB,?�JGF}U�[G[GNsNPWOCED U�NPWGcXv"RSdAhGIaJOL=@FbQU�RPIK?�J�i`R@DGF*[XF�CIK[GU�cGIKbaIaRSd�?�BTRSd5h�FZCEDGF�CEHAIKJGLMc�F�C?�Y*F�N�=EU�R@DGF=,hG=@?�cGbKFYZU�RPIQC�n' ]?�=@F?�\�F= iRPDOF=@FrU�=@F1\�U�=@Ia?�WON�tpU#dXN�IaJMteDGIKCED*R@DGF!NPWGcXv"RSdAhGIKJGL�=@FbQU�RPIK?�JZC�U�JZc�FrbKI_B�R@F�[MU�ba?�JGL,RPDOF1RSdAh`FCj?�JON�RP=@WOC�R@Ia?�JON��fbKIKH�F�3 U�JO[}¡~�jn ¶ JyRPDOFk?�R@DGF=rDOU�JO[.iON�?�Y*F�?�B4RPDGFkhG=P?�cGbKFYZN1[XIQNPCWON@N�F [U�c�?�\�F,CU�Jwc�F�NP?�bK\�F�[wWONPIaJOL*NPWGcXv"RSdAhGIKJGLO�

z�B#5 *�� ��� � . *,¡ � *�¡ � ���#� ��� �����j£ RPDGF�J �]��� *k£E§ � �;CU�Jwc�F�[XF CjbQU�=@F�[�£z�B � � & � ' �� *�¡�� *,¡ � ���#� ��£ RPDGF�J � � � � & � ' �£ ��£ � � �* � � � � � � � ���#� £

z�B � *k£E§ � ��� 9� � *�£�§ � �"£ RPDGF�J �³��*,¡%�M£ �s��� *k£E§ � ��� 9 � � �M� � .

 1?�RPF�i�DG?�tuF�\�F�=kR@DOU�R*RPDOIKNs[G?5F NVJG?�RsNP?�bK\�FqU�bKbehG=P?�cGbKFYZN�{IaB ��� *ki>tuFqCU�J¬JO?�RZte=PIaRPF�s��� *k£E§ � �>��RPDOF��JGFF [GN>R@?�c�F,=PF�\�F�=@NPF�[O�jn��OWG=�R@DGF=@Y*?�=@F�i�RPDGF,Y*F�U�JGIKJGLk?�B � *k£E§ � ��� 9�� *�£E§ � ��IQNpJG?�RrN�?ZCjbKF�U�=�iXU�Npc`?�RPD]U�=@F,JG?�RpRPDOFYZN�F�ba\�F�NxRSdAh�F�N�n

| =PF�bKU�RPF�[�cGWXRk[GI_µ�F=@FJ5RkNP?�bKWXRPIK?�J�CU�J�c�F*Bf?�WGJ`[�cAd�YZU�H5IKJGLyRPDOFZIaJOCbaW`N�IK?�JON�*��C�FjlXhGbKIQCjIaR1c5dwU �cSCWj�@� � S�T�®Zª@� nOopDGFJqtxF,DOU#\�F,F�n LOn

� � � 5 *�� ��� � . *,¡ � *�¡ � ���#� ��� �����j£� � � � � & � ' � *�¡�� *,¡ ������� � .

��F�D`U#\�FrJO?kYZU�hwBf=P?�Y � *k£E§��0��� 9 R@?�� *�£�§ � ��iGU�NTRPDOF�NPF,U�=PF!JG?�RxRSdAh`F NnXopDGF,YZU�h`NTDGF�=PFU�=@F SWON�R![XFj^`JOU�cGbKF�RPF�=PYZN1U�JO[ytuF�C�U�Jy=PF�hGbKU�CjF�RPDOF�� cAdwU�J]¡ nO�xWXR1R@DGFJqtxF�U�=@F,cOU�CEHRP?*R@DGF�?�=@IKL�IKJOU�b�Bf?�=PY�WGbKU�RPIK?�JONxteDGF�=PF�txF,DOU#\�F�R@?ZL�IK\�F�U�bKb%RPF�=PYZNeFlXhGbaIQCjIaRPbKdMF�\�F�=PdAteDGF�=PF�n

Page 27: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � �

opDGF!IK[XF U�IQN�RP?�[XF�CbKU�=PFeR@DGF!C?AF=ECjIK?�JON>U�NTNPh`F CjIQU�b`Y*U�hON�i�RP?kc`F!WON�F [ZcAdkR@DGF1RSdAh�F!CEDGF CEH�F�=RP?MRSdAh`FVFjlXhG=@F�N@N�IK?�J`Nn�¾A?sR@DGF�W`N�F�=�[X?AF NrJG?�R�D`U#\�F�R@?wIKJONPF=PRrRPDOF�NPFkYZU�hON�i�cGWXR�RPDGF�RSdAh`FCEDGF CEH�F=rteIabKb4[G?wNP?ZRP?MC?�Y*hGWXR@F�UsRSd5h�F�n (TN@NPFJ5RPIQU�bKbad�iXRPDOF=@F�U�=@F�R@DG=PF�F�tpU#dAN1IaJ�teDGIKCED�URSdAh`F�CEDOF�CEHAIaJOLVU�baL�?�=@I_R@DGY�CU�JwW`N�F�U*Cj?AF=ECjIK?�JyYZU�h.n

�}�*���* �-��½�!������m?�= ������� �

� �������* IQNpFjlXhOU�JO[XF [sR@? �]�`� � ��� .

�¦� ��!� ��� *,¡���Z�#*

� ����� �sIQNpFjlXhOU�JO[XF�[wR@? ��� �Z?�B;RSdAh�F�� .

�¦�*�¡����� ��� *�s� �

� ����� �ZIQNeFjlXhOU�JO[XF�[MRP? ��� ���X�x?�B;RSdAh�F�� .

z�RyNPDG?�WGbK[«U�bKNP?�c�F�h`?5NPNPIKcGbaF�RP?�WONPF�Y�WGb_R@IahObaF�Cj?AF=ECjIK?�J«YZU�hON��TIaB,RPDGF�=PF�U�=@F�Cj?AF=ECjIK?�JON� � ��* � � U�JO[ � � ��� � �Vi.R@DGFJ�R@DGF=@FsIQNkU�C?AF=ECjIK?�J�° �;� * . � � � � � ���Z� * � �Vn{¾A?RPDOFwCj?AF�=@CIa?�JON�U�=@FZ=@F�U�bKbKd�SWON�RV[GFj^OJOU�cGbKFw°Xv"RPF�=PYZN�RPDOU�RVCU�J�c`FyCj?�YVh�?�NPF�[.n ¶ B1Cj?�WG=@NPF�iRPDOF=@F�NPDG?�WObK[Zc�F,?�JGbKd*?�JGF,Cj?AF�=@CIa?�JZc`FRStuF�FJsRStx?�RSdAh�F�N * U�JO[.�¦U�JO[ZR@DGF=@F�NPDG?�WGbK[sc`FJG?]Cj?AF�=@CIa?�J]Bf=P?�Y UMRSd5h�F *¦[email protected],D`U�N!RP?qc�F*CEDOF�CEH�F [�cAd]R@DGFZN�dXN�RPFY U�R�RPDGFY*?�Y*FJ5R!UZC?AF=ECjIK?�JyIKN![XF�CbKU�=PF [%�GIaR!N�DO?�WGbQ[yL�?*RPDO=P?�WGL�DyRPDOFZ² C?AF=ECjIK?�JyL�=EU�hGD.´GRP?s\�F=@I_BfdRPD`U�R1IaR1IKNeN�RPIKbab;UkR@=PF�F�nO�O?�=eY*?�=@F,?�JqCj?AF=ECjIK?�J`NxNPFF � �pU�=PRPDGF��$�%�� ��?�=!� ��WG?1�$�%������n

!#"��#" RoS�TZT§W@�YV � SUT �cWYV � WcWYT}��S ' � �Vª�T�º V9¼@�ZW Vf·�WcS���¼��DGF�J*[G?�IKJGL�Bf?�=@Y*U�bXhG=@?5?�BmN{teI_R@DVRPDGFeDGF�bah*?�B�NP?�Y*FeCj?�Y*hGWGRPF=>NPdXNSR@FYqi�?�JGFpY*U#dktu?�JO[XF=teDOU�R1?�JGF,IQNp=PF U�bKbadshO=P?�\AIKJGLOn ¶ = iARP?*hGWXR1IaRr[XIaµ�F�=PF�J�R@bad�i

teDOU�RpIQN>R@DGF [YW®*ª�TZV � �z[ ?�B%RPDOFrBf?�=PYZU�b`?�c SF C�REN>R@DOU�RuRPDGF,N�dXN�RPF�Y �9U�JO[ZRPDGF�WONPF=��IKNr[XF�U�baIKJGL*teI_R@D �

opDGFpN�dXN�RPF�Y*N�RPD`U�R�tuFxU�=@FuC?�JOCF=@JGF�[�teIaRPDVDGF�=PFxU�=@FTcOU�N�F [�?�JkRSd5h�FuRPDGF�?�=@d�i teDGIKCED�Y*?�\�F�NRPDOFwNPFYZU�J5RPIQCN�v ­�WOF�N�RPIK?�J�Bf=P?�Y R@DGFsbKF\�F�bT?�BxR@DGFwC?�Y*hGWXR@F=kNPdXNSR@FY RP?]R@DGFMbKF\�Fb>?�BpRPDGFBf?�=@YZU�b.NPdXNSR@FYq�

teDOU�Rr[G?�R@DGF�FjlXhG=@F�N@NPIa?�JONx?�B4RPDGF,RSdAh�F!R@DGF?�=PdMYVF U�J �

 1?�RPFZR@DOU�RkRPDGIQN�?�JGbad�L�IK\�F N�U�N@U�RPIQN�BmU�C�R@?�=@d}U�J`N�txF=�IKJ�CU�N�F*R@DGFMCj?�Y*hGWXRPF�=�NPdXNSR@FY IKN�UBmU�IaRPDGBfWGb�IaY*hGbKFY*F�J�REU�R@Ia?�J}?�BTRPDGFVRSdAh`F�RPDOF?�=@d�n�opDGFZU�CjRPWOU�b4NPIaRPWOU�RPIK?�J}IQN,U�NrBf?�bKba?�t1N��`RPDGFIKJ�R@F=EU�CjRPIK\�F�hOU�=PR��fteDGF�=PF�RPDOF�hG=P?A?�B�v9R@F=@Y*NpU�=PF �j��W@ª�VXWEº �xIKNpJG?�ReBfWGbKbadwFjlXhGbQU�IKJGF�[wIaJwRPF�=PYZN?�BTRPDGF�RSdAh`F�RPDGF�?�=@d��`DG?�txF\�F= iXRPDOF �E·�WE�E¸ � T�' �fteDGIQCED}IQN,[X?�JGFVU�B�R@F=�RPDGFVhG=@?A?�B�v"RPF=@Y DOU�Nc�FFJ]C?�Y*hGbKFjRPF [O�xIQNeCj?�Y*hGbKFjR@FbKdsBmU�I_R@DXBfWGb%R@?*RPDGF,RSdAh�F,RPDGF�?�=@d�n

Page 28: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{�����������¾A?Oi4tuFwteIabKbeCj?�JX^OJGFw?�WG=EN�F�ba\�F�N,R@?�R@DGFy­5WGF NSR@Ia?�J�teDOU�RkRPDOFwFlAhO=PF NPNPIa?�JON�?�BeRPDGFwRSdAh`F

RPDOF?�=@dyYVF U�J.n�opDGIQNr­5WGF�N�RPIK?�J�C�U�J]c�F�[XF U�baRrteIaRPD�IKJ�[XIaµ�F�=PF�J�R�txU#dXN�nO�4Ia=EN�RrtuF�CU�J]bK?A?�HU�R�NP?�Y*F]�fhG=@FjBfF�=P=@F�[`�rY*?X[XF�b9i�� i%?�BpUyhGIKF�CFZ?�BxY*U�RPDGF�YZU�RPIQCN�U�JO[�U�NPH]teDOU�R�R@DGF*RSdAh`FRPDOF?�=@FjR@IKC�U�b4FjlXhG=@F�N@N�IK?�J`NrY*F�U�J}IKJ�� n.¾AF Cj?�J`[%i�tuF*CU�J}bK?5?�H]U�R�N�?�YVFVbK?�L�IQC�� U�JO[}U�N�HteDOU�R�RPDGFMYVF U�JGIKJGL]?�BuR@DGFZRSdAh`FsRPDGF�?�=@FjRPIQCU�b>FjlXhG=@F�N@NPIa?�JON,IaJ�� IQN�n;opDGIQN�=@F�NPWGbaR@N�IKJ�RPDGFBf?�bKbK?�teIaJGLZ­5WGF NSR@Ia?�JONn� ��DOU�R>IQN{R@DGFeIaJ5R@F=@hG=PFR@U�RPIK?�Jk?�B`R@DGFeFjlXhG=@F�N@NPIa?�JON4IaJVRPDOFeYV?X[XF�b�� U�JO[%i#Bf?�=3* � ������� iIKN * RP=@WGF,IaJ�� I_µ�* IQNpIKJGDOU�cOI_R@F�[ �

� ��DOU�R�IKNrRPDOF�IaJ5R@F=@hG=PFR@U�RPIK?�J]?�B{R@DGFkFlAhO=PF NPNPIa?�JONeIKJ]RPDOFkbK?�L�IQC�� U�JO[%iOBf?�=�*�� ������� iIKN * hG=P?�\�U�cGbaF�IKJ��Iaµ�* IQNeIKJGDOU�cOI_R@F�[ �

| N�RSd5h�FxRPDGF�?�=@d�IQN�L�F�JGF=@IKC�i#tuF1U�=PFxYZU�IKJGbad�IaJ5R@F=@F�N�RPF�[�IKJ�R@DGF1NPF�Cj?�JO[V­�WOF�N�RPIK?�J.n�opDGF1C?�JXvJGF C�RPIK?�JwteI_R@DwbK?�L�IKCrIKNxF�\�FJMYV?�=PF�=@FbKF\�U�J5RxU�NuRSd5h�F!RPDGF�?�=@d*NPFF�HXN>R@?�=@FhG=@F�NPFJ5R ���ÒSCSS±�[ U�NRPF�=PYZN���R@DGF�NPFrhO=P?A?�B�v"RPF�=PYZN>RPDGF�JMc�FjR�R@F=pDOU#\�FrN�?�Y*Fr=@FbQU�RPIK?�J*R@?�UkhG=P?A?�B.IaJwba?�L�IQC�n��O?�bKba?�tpvIKJGLVRPDGFk�uWG=@=Pd5v �1?�tpU�=E[Av [XF1�x=PWGI SJ ���ÒSE��SU[ � V � SUTZ[�¹�ªg[�¹wV9¼@�ZW�[E¹�W® ��WEº�º � T#' iGBf?�=PY�WGbQU�Nx?�B4ba?�L�IQCU�=@FrIKJ5RPF�=PhG=@FjR@F�[sU�NuRSd5h�F�N�iXU�JO[wU�RuRPDGF�N@U�Y*F1R@IaY*F�i.�mJOU�R@WG=EU�b�[XF�[XW`C�RPIK?�J��u[GF=@Ia\�U�R@Ia?�JONxU�=@FIKJ�R@F=@hG=@FjRPF []U�NrhG=P?A?�B�v9R@F=@Y*N�n`¾A?`iOR@DGFkU�JON�txF=1RP?sR@DGF�­5WGF NSR@Ia?�J]teDGFjR@DGF=!hG=@?5?�B�v9R@F=@YZN1IKJRSdAh`FVR@DGF?�=Pd�=@FhO=PF N�F�J�R,hG=@?A?�BmN�IKN�U Z=PYZU�R@Ia\�F���hG=@?A?�B�v"RPF=@YZN�=PF�hG=PF N�F�J5R@N�JOU�R@WG=EU�b�[XF�[GWOC�vRPIK?�J�hG=@?5?�BmNn ¶ BuC?�WG=EN�F�iOR@DGF*N�IaRPWOU�RPIK?�J�IKN�Y*?�=@F�C?�Y*hGbKIKC�U�RPF [%��RPDGF�=PF*U�=@F�UMba?�R�?�BTbK?�L�IQCNU�J`[�UybK?�R�?�BuRSd5h�FVRPDGF�?�=@IaF Nn.�xWXR�IaBxtxFZCEDG?A?�NPF�i�L�IK\�F�J}?�WG=�ba?�L�IQCkIKJ�JOU�R@WG=@U�b>[XF�[GWOC�R@Ia?�JN�RSd5bKF��riOU�JyU�hGhG=@?�hG=@IQU�RPF!RSdAh`F,R@DGF?�=Pd � ��p��iGtxF,DOU#\�F�RPDOF,Bf?�bKba?�teIKJGL

� S�¯�T�ºUT§Wz[c[ ?�B4RPDGF,Bf?�=PY�WGbQU�N�v�U�NSv"RSdAh`F NTF�Ykc�F�[G[XIKJGL`���� � � (������ �� � � 5 � ��� �x£

teDGF�=PF 5�[GFJG?�RPF�NTRPDOF![XF [XWOC�R@Ia?�JM?�B ��IKJ���U�JO[ � � 5 � ��IaR@NuFJ`Cj?X[XIKJGLkU�NxU,R@F=@Y�IKJ � ���x�jn�(IQNTU�Cj?�J5RPFjlARTIKJZteDGIQCED*RPDGFr=PF�baF�\#U�J5RT\�U�=@IKU�cGbaF N�U�=@F1[XF�CbKU�=PF [%n�z Jw¾XF�C�R@Ia?�J �Gn �Xi�txF1[XF NPC=PIKc`FRPDOFpBf?�=@YkWGbQU�N�v�U�NSv"RSdAh`F N�F�Ykc�F�[G[GIaJGL�IKJ*Y*?�=@Fp[GFjR@U�IabGBf?�=�DGIKL�DGF�=�?�=E[XF={hG=@F�[GIKC�U�RPFpbK?�L�IKCpU�J`[IaR@N1C?�=@=PF N�h�?�JO[GIaJGLkRSdAh`F�NPdXNSR@FYqn

opDGF�?�R@DGF=rtxU#dMU�=P?�WGJO[%iOtuF�YZU#dwtu?�JO[XF=eteDOFjRPDOF= iOIaB �¬IQN1IKJGDOU�cOI_R@F�[qIKJ � ��p��iGR@DGFJ��IQNe[XF�=PIK\�U�cGbKF�IaJ� �fteDOF=@F ��� ������� �jn

R�S�®r����WYVXWYTIW�[c[ ?�B4RPDGF,Bf?�=PY�WGbQU�N�v�U�NSv"RSdAh`F N>FY�c`F [G[XIKJGLO�(������ �� � ��� �� � �x£

teDGF�=PF (�IQNrU�L�U�IaJqUsCj?�J5RPFjlAR1IKJ]teDGIQCEDqRPDGF�=@FbKF\�U�J�R1\�U�=PIQU�cGbKF�NeU�=PF�[GF�CjbQU�=@F�[.nGz�B�tuF�REU�H�FIKJ�R@?VU�CC?�WGJ5RxRPDOU�ReUkRPF�=PY � ����IKNxIKJ�R@FJO[GF�[MRP?*=PF�hG=@F�NPFJ5RxUVJOU�RPWG=EU�b%[XF [XWOC�R@Ia?�JMhG=@?A?�BSitxF>YZU#d!N�RP=@FJGL�RPDGF�J�?�WG=�C?�Y*hGbKFjRPF�JGF�[email protected]!=PF ­�WOIa=@IaJOL1U�J�FY�c`F [G[XIKJGL � ��Bf=@?�Y hG=P?A?�B�v9R@F=@Y*NRP?Z[XF [XWOCjRPIK?�JON�n

� V"�ÒSUT�',R�S�®r���«W�VwW�T§Wz[c[ ?�B;R@DGF,Bf?�=@YkWGbQU�N�v U�N�v9RSdAh�F�N>F�Ykc�F�[G[GIaJGL`�(������ �� � ��� �� ��� ��� � .

�u?�Y*hGbKFjRPF�JGF�N@N!IKN�JG?�R!IKJ�U�bKb{CU�NPF�N�NP?sF�U�N�d�n%�u?�JON�IQ[XF�=rBf?�=!FlXU�Y*hGbaFkRPDGF� �U�=�R@IaJXv � "?�BS´ NRSdAh`FrRPDGF�?�=@IaF Ni�teDGF=@FeR@DGF=@F1IQN>JG?V[XIKN�RPIKJOCjRPIK?�Jsc�FjRStxFF�Jq² NPFjREN´AU�JO[q´ hG=@?�h�?�NPI_R@Ia?�JON�´���c�?�RPDU�=@F�?�B4RSdAh�F ��� �jn ��FkD`U#\�FkU�ba=@F�U�[Xdw[XIQN@CjWON@N�F [yRPDGIQN�N�IaRPWOU�RPIK?�J�IKJ}¾AF C�RPIK?�J �Xn�XiOteDOF=@F�tuFh�?�IKJ�R@F�[�?�WXRkR@DOU�RkIKJ�?�=E[XIKJOU�=@d}bK?�L�IKCVR@DGF=@FsIQNkU�NPDOU�=Ph�[XIQNSR@IaJ`C�RPIK?�J~c`FRStuF�FJ ������� U�J`[

Page 29: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � �

��� �kBf=@?�Y RPDOFy\�F=@d�NSREU�=PR�n{z�RZIKN�SWON�R*RPDGFqtpU#d�ba?�L�IQCsIQNZ[XFj^OJOF�[%i�IKJ [zV ª ';Wz[ i�teDGF�=PFy?�JGF^O=ENSRs[XF^OJGF NVRPDGFqR@F=@Y*N]�mIaJ`CjbKWO[XIKJGL�RPDGF�[G?�YZU�IKJONE��i{RPDOFJ�RPDGFyBf?�=PY�WGbKU�N*U�JO[¬RPDOFJ¬RPDGF[XF�=PIK\�U�RPIK?�J`Nn{opDOU�RVY*F�U�J`N�R@DOU�R�Bf?�=� �U�=PRPIKJXv � "?�BS´ N�RSdAh�FMR@DGF?�=PIKF�N�i4I_RVIKNVJG?�RVNP?}F�U�N�d�RP?[XF^OJGF�UVY*U�hGhGIKJGL*cOU�CEH*R@?VRPDGF�bK?�L�IKCV�fIKJyRPDGIQNeCU�N�F�^O=ENSRp?�=E[XF�=xIKJ5RPWGIaRPIK?�JOIKN�RPIQC,ba?�L�IQC��jnA�O?�=FjlGU�YVhObaF�iXba?A?�HwU�ReRPDOF�Cj?�J5R@FjlAR

*k� ��� �j£ ��� *�£E9*� *�¡ ��� �j£ ���K��9 �A�j£�:*�Q� 9 �X�@¡ ��� �j£@�4�Q� 9 �X�P¡ * .

z�B!txFyRP=@d�RP?�IKJ5RPF=@hG=@FjRVRPDGIQNZIKJ~^`=@N�RZ?�=E[XF=*IKJ�R@WGIaRPIK?�JGIQNSR@IKCybK?�L�IKC�i4txF]CU�J¬\AIKFt * U�NVU[X?�Y*U�IaJ�i �ZU�NuU�JsFbKFY*FJ5Rp?�B�*ki 9 U�NxUkhG=@F�[GIKC�U�RPF!?�J�* U�J`[ �wU�NTRPDGF,U�N@N�WOYVhGRPIK?�JsR@DOU�R� 9 �X�pDG?�bK[ON�� �qIQN1U�J ªU[c[E¯X® WEº,���ÒSCSS± ?�Bp��9 �X����n`�uWGR1RPDGF�J :�CU�Jq?�JGbadwc`F�WOJO[XF=EN�RP?A?X[U�N�UyhG=@F�[GIKC�U�RPF*?�J}R@DGFsN�FR�?�BphG=P?A?�BmN,?�B���9 �X����i.U�JO[��~U�N�UyYZU�h�Bf=P?�Y RPDGFZhO=P?A?�BmN,?�B� 9 �X�4RP?�RPDGF�[X?�YZU�IKJ *�n5z�RTteIKbab`c`F�CjbKF�U�=>RPDOU�R>RPDGF�=PF!U�=@FeY*U�JAdkRSdAh�F�N���� ��� �{IKJ*RPDOF1RSdAh`FRPDOF?�=@d�RPDOU�RVD`U#\�FMJO?}IKJ�R@F=@hG=@FjR@U�RPIK?�J.i4JGF�I_R@DGF=ZU�NVU~² [X?�YZU�IKJ.´;JO?�=*U�NVU�² hG=@?�h�?�NPI_R@Ia?�J.´aiIKJ�^`=@N�R�?�=E[XF=,IKJ�R@WGIaRPIK?�JGIQNSR@IKC*bK?�L�IKC�n | N�UqCj?�JONPF�­5WGFJ`CjF�i�¾ARP=@?�JGL��u?�Y*hGbKFjR@FJGF NPN�BmU�IabQN�Bf?�= �U�=�R@IaJXv � "?�BS´ NxRSdAh�F,RPDGF�?�=@d�nXz�RrD`U�Npc�FFJ]NPDG?�teJ �McGWXR1R@DGF�hG=@?5?�B;IQNe=@F�U�bKbKdsIaJ5R@=PIQCU�RPF�iGNPFF¾AtpU�F�J�� �$������� ��R@DOU�RTC?�Y*hGbKFjRPF�JGF�N@Ne��R@DGFetxF�U�H�F={\�U�=@IKU�J5RE�;DG?�bQ[GN�n��1?�txF\�F= i#I_B�tuFeFlARPFJ`[RPDOF�NPF�RSdAh`F�R@DGF?�=PIKF�N1RP?sDOIaL�DGF=1?�=@[GF= iGtuF�?�cXR@U�IaJ]F�I_R@DGF=�U�J]IKJOCj?�JONPIKN�RPF�J�R�N�dXN�RPFY �fIaB>tuFIKJ�R@F=@hG=@FjR4RPDGFpDGIKL�DGF�={?�=E[XF= ��U�N{U 5Tv"RSdAh`F�i�N�F�Fe�u?X­5WOU�JO[ � �$������f��i#?�=x�mI_B�tuFxIKJ�R@F=@hG=@FjR4RPDGFDGIKL�DGF�=e?�=E[XF=!�wIKYVhO=PF [XIKC�U�R@Ia\�FbKdX�xU*NPdAN�RPF�Y½Bf?�=eteDGIKCEDqCj?�Y*hGbaFRPF�JGF�N@NpBmU�IKbQNpteI_R@Dy=@F�NPh�F�C�RRP?ZC?�JON�RP=@WOC�R@Ia\�F,DGIaL�DGF=e?�=@[GF=phG=@F�[XIQCU�RPF,ba?�L�IQC��GNPFF��xF=EU�=E[XI ������%&���i ��F�WG\�F�=@N � �$�%��� �"n

¾AWGY*YZU�=@Iag�IaJGL`i{tuFq?�c`N�F�=P\�FsRPDOFwBf?�babK?�teIKJGL�h�?�N@NPIacGbKFqh`?�IaJ5REN*?�B!\AIKFt��e� �#��^O=ENSR*?�=E[XF=hG=@F�[XIQCU�RPF]bK?�L�IKCyIQNsIKJOCj?�YVhObaFRPF�iuU�NZIaRw[X?AF�NsJG?�RMU�babK?�t�?�c SF�CjR@N*R@?�[XFh�FJO[ ?�J«hG=@?5?�BmNiteDGF�=PF U�Nuc`?�RPDwU�=PF�SWON�R!²�Cj?�JONSR@=PW`C�RPIK?�J`N´K��� ���>RPDGF�IQ[XF�Uk?�B�WGJOI_BfdAIKJGLkR@DGF � ���#� U�J`[ZRPDOF ��� �WGJGIK\�F�=@NPFxIaJ5RP?�?�JGF��0��� �P�4IKN>te=P?�JGLOi�U�N{IaRTCj=@F�U�RPF N;?�c SF�CjR@N�[XF�h`F�JO[XIKJGL�?�JVhG=@?A?�BmN�i�UrBfF U�R@WG=PFU�bKIKFJwRP?*?�=E[XIKJOU�=@dZba?�L�IQC�n���F,RPFJ`[MR@?*DOU#\�F!RPDGF�NPF�C?�JO[M\AIaF�t�iOU�baRPDG?�WGL�DMRPDGF�NPIaRPWOU�RPIK?�JyIKNJG?�RrN�?VF�U�N�d�iGU�NeCU�Jwc�F�NPFFJyBf=@?�Y¨R@DGF,RStx?VFlGU�Y*hGbKF�Nxc`F�ba?�t�iOteDGF=@F,tuF�U�hOhGbadsRPDGF�IQ[XF�U?�B{bKFjR�R@IaJOLV?�c SF�CjR@N1[GFh�FJO[y?�JyhG=@?A?�BmN�n

��I_R@DZ=PF N�h�F�CjR4R@?,RPDGFeIKJ5RPF�=PhG=@FjREU�R@Ia?�Jk?�B�RPDOF1Cj?�J`NSR@=PWOCjRPIK\�FpFjlXIQNSR@FJ5RPIQU�bG­5WOU�J5RPIa^OF= i#RPDGF�=PFU�=@F�U�bQN�?�RStx?«h`?5NPNPIacObaF�h�?�NPI_R@Ia?�JON��k�fz��qIKJ5RPF�=PhG=@FjR � cAd R@DGF-5Tv"RSd5h�F�irteDGIKCED [X?AF N]JG?�Rtx?�=@HVtxFbKb�Bf?�=pDGIKL�DOF=p?�=E[XF=pbK?�L�IKC�i��mcGWXReDGIKL�DGF�=�v�?�=E[XF�=ubK?�L�IKC!IKNx?�B�RPFJqCj?�JONPIK[XF�=PF [MU�NuJO?�JXvCj?�JON�RP=@WOC�R@Ia\�F �Zc`F CU�WON�F,IKY*hG=PF [XIQCU�R@Ia\�F �sU�JAdAtpU#dX�j���mz�z��xIKJ5RPF=@hG=@FjRpI_R1IKJqU�[XIaµ�F=@FJ5RetxU#d�fF�n L`nOWONPIKJGLMU*DGIKL�DGF�=r?�=@[XF�=eFJOC?X[XIaJOLs?�=rU�J]IaJ`[XWOC�R@Ia\�F�FJ`Cj?X[XIKJGL5�xR@DOU�R�U#\�?�IQ[GNpR@DGF�hG=@?�vSF�CjRPIK?�JON�?�B!hG=P?A?�BmN�R@?}?�c SF�C�RENn ¶ cA\AIa?�WON�bKd�i;h`?5N�IaRPIK?�J �fz���?�J�R@DGFyFjlXIKN�RPF�J5RPIQU�bp­�W`U�J5RPIa^OF=IKJ�R@F=@hG=@FjR@U�RPIK?�J¬L�?AF�NVtxFbKbeteI_R@D¬h�?�NPI_R@Ia?�J � � �V?�J�RPDOF � ���#� v ������v"IQN@N�WGF]U�c`?�\�F�n�¾AIaY*IKbKU�=PbKd�fzPz��pL�?AF NutxFbKb.teIaRPD�� ���xU�c�?�\�F�n

�u?�JOCbaWO[GIaJGL�RPDGIQNw[GIKN@CjWON@NPIa?�J�?�J«RPDOF}hG=@F�CIKNPF}CEDG?�IKCF�?�B�R@DGF�RSdAh�F�RPDOF?�=@FjR@IKC�U�b1=@WGbKF�NRP?�IKJ�R@F=@hG=@FjRVRPDGFqbK?�L�IQC�i{txFwJO?�RPFwRPDOFwBf?�babK?�teIKJGLOn�opDGFycGWGIKbK[¬WGh�?�BrbK?�L�IKCwIKJ [zV ª ';Wz[ i>U�N[XF NPC=PIKc`F [Mc�FjBf?�=PF�iGIQNp\�F=@dsY�WOCEDw=@FbQU�R@F�[MRP?ZUZ<>bQU�R@?�JGIQN�Rx\AIKFt ?�B�R@DGF�tx?�=@bK[%iXteDOF=@F

RPDGFV?�c SF�C�REN!U�=PF SWONSR Vf·�W�ÒW U�JO[]bK?�L�IKC�IKN�UsY*F�U�JON!?�BT[XF�=PIK\AIaJGLsRP=@WGFkhG=@?�h�F=PRPIKF�NU�c�?�WXReR@DGF�NPF�?�c SF�C�RENn

� ¹���tg`{aYacb·vyx{eCf�az`\fwx{jld��c�l� s���jlk�x{fh`\f�}�x{jlkCm�tg`\fh¤gjld���x{f|azk�tg`{aYacb«}�����s�¡�f�� x\a�¡uf¯dh�Cx�vyb«`\fhf�lnu­�aÒ��fw��fh`ÒÔG�tg`\f�¤CjldÒ��x\f�d��ck�kgacx�¤gjl}\x\jlkgmz�gjl}\e�¡�fwx���fhfhk�Gv�fh©Y�U�c�Gx\fh`{��}�Ôg}{a¯x{eCjl}�tg`\fh¤gjld���x{f�d��ck�kgacx�¡�fofw�Ctg`\fh}{}{fh¤;n

Page 30: Proof-Assistants Using Dependent Type Systems

& � À��GÄ.�������������������� À��;Ï{�����������

¾A?ZU�Jq?�c SF�CjRpIQNpJG?�RrU�µ�F�C�R@F�[ycAds?�WO=e=PF U�NP?�JGIKJGL*U�c�?�WXReIaR�nGz JyRPDOF�Cj?�J`NSR@=PWOCjRPIK\�F,\AIaF�t�i

c`?�RPD�?�c SF C�R@N�U�J`[]hG=@?5?�BmNrU�=PF �cS�T�[zV9��¯O�YV � SUT�[ U�JO[qR@DGF�?�JGbKdy?�c SF�CjR@N1RPDOU�R�FlAIQN�RU�=@F�RPDGF�?�JGF�NxR@DOU�RrC�U�Jyc`F�C?�JON�RP=@WOC�R@F�[%n

opDGF�J U�Bf?�=@YkWGbQU�IKNZIQ[XF�J�R@I_^`F�[«teIaRPD«RPDOF}N�FRs?�B�IaR@NZhG=@?A?�BmNsU�JO[¬RPDGF�=PF]IQN ªq��� � S�� �*JG?hG=@?�cGbKFY teI_R@D�C?�JON�RP=@WOC�R@IaJOLyU�J�F�baF�YVF�J5R,?�Bu?�JGFZN�FRZ�9NPU#dqR@DGFsNPFjR )�� ����?�WXR�?�BxU�JG?�R@DGF=NPFjRk�mN@U#dwUVBf?�=PY�WGbQU *���n�¾A?OiGIaB�tuF,REU�H�F!R@DGFkC?�JON�RP=@WOC�R@Ia\�F,\5IKFt U�NrUZNSREU�=PRPIKJGL*h`?�IaJ5R�iGRPDGF[XF�h`F�JO[XFJ`Cjdy?�B�?�c SF C�RENe?�J]hG=@?A?�BmNeIQN1JO?ZhG=P?�cGbKFYqn` r?�RPF�RPDOU�R1RPDGIQNrN�RPIKbKb�bKF�U#\�F NeUsCEDG?�IKCF?�Bu=PF U�bKbadqIQ[XFJ5RPIaBfdAIaJOLMR@DGF�WOJGIa\�F=EN�F�?�BuNPFjREN!U�JO[�hO=P?�h`?5N�IaRPIK?�JONV��R@DGFJ *¨� �����1Bf?�=�NPFjREN *U�J`[ * �!�����xBf?�=1Bf?�=@YkWGbQU�N *!�e?�=eH�F�FhGIKJGLVRPDOF�[XIKN�RPIKJOCjRPIK?�J���R@DGFJ2* �������xBf?�=1NPFjREN * U�J`[*¦� �����#� Bf?�=eBf?�=@YkWObKU�N *!�jn`z J]R@DGIQNrU�=PRPIQCjbKF�txFkNSREU�=PR1Bf=@?�Y RSd5h�FkNPdXNSR@FYZN1teDGF�=PF�?�c SF�CjR@N[X?*JG?�Rr[XFh�FJO[y?�JwhG=@?A?�BmN�n

z�BO?�JGFxCEDG?A?�NPF�N;U1RSdAh�F>RPDOF?�=@d�RPDOU�R4=@FYZU�IaJON4­5WGIaRPFpCjbK?�NPFbKdrR@?rR@DGFu?�=PIKL�IKJOU�b�Cj?�JON�RP=@WOC�R@Ia\�FbK?�L�IQC��fIKJsJOU�RPWG=EU�b�[XF�[GWOC�R@Ia?�JsNSRSdAbKF ��i�I_RxIKNTJG?�RxN�?k[GIsCjWOb_R,�mU�baRPDO?�WGL�DVbQU�c�?�=@IK?�WONE�;RP?�hG=P?�\�F¾5R@=P?�JGL��u?�Y*hGbKFjR@FJGF NPN�?�BuR@DGFZBf?�=PY�WGbKU�NSv U�N�v"RSd5h�F�N�F�Ykc�F�[G[XIKJGL`n4¾AF�F � ��F�WG\�F�=@N ���������{Bf?�=NP?�Y*F�[XFjREU�IKbaF [whO=P?A?�BmNpU�JO[yFjlGU�Y*hGbKF�N�n

�Aª�®r���«Wz[ S�± S�� � W@�YV\[�ºuW ��WYT�º � T#' SUTs���ÒSCSS±�[z J¬RPDGF][XIQNPCWON@N�IK?�J~U�c`?�\�F�i4tuFqhG=@?�Y*?�RPF�[�RPDGFqIQ[XF�U�?�B�JG?�R*baFR�R@IaJGL�?�c SF�CjR@N*[XFh�FJ`[~?�JhG=@?A?�BmN�n | baRPDO?�WGL�D*RPDGIQNTNP?�bK\�F N>N�?�Y*F1?�B�RPDOF!Cj?�Y*hGbaFRPF�JGF�N@NT­5WGF NSR@Ia?�JON�IKJMU�=@FbQU�RPIK\�F�bad�F�U�N�dtpU#d�i�R@DGIQNTh�?�NPI_R@Ia?�JsIQNTJG?�RpNP?kNPIaY*hGbKF1R@?kc�F!YZU�IaJ5R@U�IaJOF�[%n5z�B.?�JGF �ÒWEª�����¼ N�R@U�=�REN�Bf?�=@YZU�bKIag�IaJOLYZU�R@DGFYZU�R@IKC�NpIaJyRSdAh�F�N�dXN�RPFYZN�iX?�c SF C�RENe[XFh�FJO[GIaJGLZ?�JqhG=P?A?�BmNu?XC�CjWG=1­5WGIaRPF�JOU�RPWG=EU�bKbKd�n

�u?�JONPIK[GF=eU * �!�����uRPDOU�R1tuF�tpU�J5RpRP?ZN�DO?�t�RP?*c�F,U�^OF�bK[.nGopDOU�ReY*F�U�JONxRPDOU�RetuF,DOU#\�FRP?V[XFj^`JGF!U�bab�HAIaJO[ONT?�B.?�c SF C�R@N�� &Oi��#�>U�JO[*BfWGJOCjRPIK?�JON�� .��!' �j£ . . .���?�J�*�U�JO[*R@?khG=@?�\�FeR@DOU�RRP?�L�FRPDGF�=pRPDGF�dyN@U�R@IKN�BfdsR@DGF�^OF�bK[Av U�lXIK?�YZN�nG 1?�t teDOU�RrNPDG?�WObK[wRPDOF�RSdAh`F�?�B4R@DGF�=@F�CjIKhG=@?XCU�bc�F�i%L�IK\�F�J�R@DOU�R�RPDGF*=@F�CIahG=@?XCU�b;?�B�&wIKN�JG?�R,[XF^OJGF [ � | J�?�hXRPIK?�J�IKN!RP?ybKFjR � � � * � � *,¡ *teIaRPDqRPDOF�hG=@?�h�F=PRSdZRPDOU�R ���;� * . ���§ &V¡ . �-' � �;� � � � * � ���x§ ��nO�1?�txF\�F= iARPDGIQNeIQN1JG?�R1\�F�=PdJGIQCjF�� � � � * � &ZNPDG?�WGbQ[yc`FkWGJO[XF^OJGF�[��mteDGF=@F�U�NeJG?�t I_R!IKN1U�J�² WOJON�h�F�CI_^`F�[%´`FbKFY*FJ5Rr?�B�*���nz JyRSdAh`F,R@DGF?�=Pd*R@DGF=@F�IKNeU*[XIaµ�F=@FJ5RrN�?�baWGRPIK?�JwRP?*RPDOIKN��OCj?�JON�RP=@WOC�R

� � � * � �O� 56�;� * . ���§ &��>¡ * .

opDGF�J � � � * � IQN!?�JGbKdq[GFj^OJGF [�?�J]RPDGF*NPWGcONPFjR,?�B>FbKFY*F�J�REN!RPDOU�R,U�=PF�JO?�JXv�gF�=P?`�OIaR�=@F�CFIK\�F�NU�hOU�IK=G� ��£ ,��VteIaRPD ��� * U�J`[ , � ���§ &�U�JO[¬=PFRPWG=@JON � � � * � � ��£ ,��]� *�nT�xWXRsDO?�t½RP?WGJO[GF=ENSREU�JO[}RPDGFs[GFh�FJO[XF�JOCjd�?�BxRPDGIQN�?�c SF�CjRZ�m?�BxRSdAh`F *��,?�J�RPDGFZhO=P?A?�B ,�IaJ�R@F=@Y*N,?�B?�=E[XIKJOU�=@dZYZU�R@DGFYZU�R@IKC�N��

| h�?�N@N�IKcGbKFwNP?�bKWXRPIK?�J~IKNVhG=@?�\AIK[XF [�cAd�RPDGFqN�FRP?�IK[GNVU�hOhG=P?5U�CED �9N�F�FwU�bQNP?�RPDOFwhG=@F\AIK?�WON¾AF C�RPIK?�J���n ��F,R@U�H�F�U�NxRPDGF�C�U�=@=PIKF=x?�B{Uk^`FbQ[wU*NPFjRP?�IK[ � *k£E§��0��iON�? * �!��� �pU�JO[y§���IKNeU�JF�­5WGIK\�U�bKFJOCFk=@FbQU�R@Ia?�J�?�J *kn%opDGFk?�h`F�=@U�RPIK?�JONr?�J]R@DGFk^`FbQ[}U�=@F�JG?�t REU�H�FJ]R@?Mc�FVNPFjR@?�IQ[BfWGJOCjRPIK?�JON�i�NP?qF�n LOn�. �-' ��D`U�N�RP?qhG=@F�NPF=@\�F�RPDOFZF�­5WOU�bKIaRSd��%IaB ��§ � � � U�JO[ ��§��*� � i�R@DGFJ� .��!' ��� �j�>§ ��� . �-' � � � � � ��nG¾AIKY*IabQU�=@bKd�iAU�bKbOR@DGF,hG=P?�h`F�=�R@IaF N>?�B.^OFbQ[GNpU�=@F1JG?�t [GFJG?�RPF�[MWONPIaJGLRPDOFsN�FRP?�IQ[�F�­5WOU�baIaRSd�§ � IaJON�RPF U�[�?�BxRPDOFZL�FJOF=EU�b�F�­5WOU�baIaRSd�§�n��O?�=�R@DGFZ=@F�CjIKhG=@?XCU�b"i�RPDOIKN

Page 31: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� & �

U�Y*?�WGJ5R@NxRP?� � � * � � � *k£E§ �0���a�9° ��� * . ���§�� &��>¡ � *�£�§��0�"£

U�NPFjRP?�IK[�BfWGJ`C�RPIK?�J*Bf=@?�Y RPDGFrNPWGcONPFjR@?�IQ[V?�B�JG?�JXv�gF�=P?5N;RP? � *�£�§ � ��I_REN�F�b_BSn�z J�R@DGIQN>CU�N�F�i � � � * �N�RPIKbab�REU�H�F�N�UyhOU�IK=�?�BeU�J�?�c SF�C�RkU�JO[�UqhG=P?A?�B � ��£ ,���i�teI_R@D ��� *¨U�JO[ ,¬� � �§ � &Gi.U�J`[=@FjRPWO=PJON � � � * � � ��£ ,2�x�*�nAopDGF�[XI_µ�F=@FJ`CjFrDO?�tuF�\�F=�IQNTRPDOU�R � � � * � JG?�t«IQNTU [YWYVXS � ºp±E¯�T��YV � S�T iteDGIQCEDqIaY*hGbKIaF NxRPDGF,Bf?�babK?�teIKJGLOn

z�B �`£ � �%�* U�J`[ ,]� � �§ � &O£E�� � � �§ � &G£pR@DGFJ � � � * � � �`£ ,��>§ � � � � * � � � �9£� � .

¾A?`i>RPDOF}\�U�bKWGF}?�B � � � * � � ��£ ,2�s[X?AF�NMJG?�Rq[XFh�FJ`[�?�J«R@DGF�U�C�RPW`U�b ,��>R@DGF}?�JGbKd~R@DGIaJOL�RP?U�N@CjF�=�REU�IKJMIQNpRPD`U�RrNPWOCEDyU�R@F=@Y�FjlXIQNSREN��fI"n F�nXRPD`U�R � �§ � &*IKNxR@=PWGF#��n

��FZCj?�J SF�CjRPWG=@F�R@DOU�R�IaB>RPDOFV?�c SF�CjR@NrRPDOU�R�[XFh�FJO[�?�J}hG=P?A?�BmN!?�JGbKdy?XC�CjWG=,IKJ�RPDOF*C?�JXvRPFlAR!?�B>NPFjR@?�IQ[GNi�U�N!U�c�?�\�F�iOtuFkC�U�J]YZU�H�FkNPFJONPF�?�B{R@DGF�NPFk?�c SF�CjR@N1IKJqRPF�=PYZNr?�BTN�R@U�J`[GU�=E[YZU�R@DGFYZU�R@IKC�NnXopDGF�L�F�JGF=EU�b`hG=@IaJOCIahObaF!RPDOU�RuBf?�=xU�JM?�c SF�CjR " � ,��x��*ki5teDOF=@F�,]����[XF�JG?�R@F�NU*N�WOcXv9R@F=@Y½?�B " i

" � ,��T§ " � ��xBf?�=1U�bKb ,�£�k���

IQN�CU�babKF�[�RPDOF ��� � T�� � ����W SS± & ��SLS�± 0 ���ÒW��W»#ª�T��cW n�z�R�N�R@U�RPF�N�RPDOU�R�RPDGFMU�C�R@WOU�b>hO=P?A?�B ,�?�B �IQN�Ia=@=@FbKF\�U�J5R�Bf?�=,RPDOFs\�U�bKWGF*?�B " � ,��jn�opDGFsNPFjR@?�IQ[}F ­�W`U�bKI_RSd�[XIKN@CjW`NPNPF�[�c`FBf?�=@F*?�c�FdXN,RPDOIKNhG=@IaJ`CjIKhGbaF�iO[XWGF�R@?*RPDGF�tpU#d*RPDGF�NPFjR@?�IQ[yF�­5WOU�bKIaRSdZIKNehO=P?�YV?�RPF [sR@?*NPWGcONPFjR@?�IQ[GN�n

| JG?�RPDGF�=1FjlGU�Y*hGbKF�?�B{?�c SF�C�REN1[XF�h`F�JO[XIKJGLZ?�JqhG=@?A?�BmNp?XCCWG=@NeBf?�=eFjlGU�YVhObaF�IKJyRPDGFk[GFj^GvJGIaRPIK?�Jq?�B;RPDGF�U�cONP?�bKWXRPF,\�U�bKWGF�IKJqU�Jw?�=@[GF=@F�[Z^`FbQ[%n`¾AWGhOh`?5N�F

,q�73!�;� � .Q� � � &!�.� � &�� .

opDGF�Jq[GFj^OJGF,R@DGF�U�c`N�?�baWXR@F,\#U�baWOF!BfWOJOC�R@Ia?�J ���� U�NxBf?�babK?�t1Nn

���� ��§ ° �;� � . � �� ��� , ��� � ��3* ) ' � � ��3* )-� � � � �

opDGIQN!BfWGJOC�R@Ia?�J�[GIKN�RPIKJGL�WOIKNPDGF�N�CU�N�F N!U�CC?�=E[XIaJOLsRP?wRPDOF�\�U�bKWGFV?�B/,?��n%z�BTIaR�IKN�?�B>RPDGF�Bf?�=@Y* ) ' �V�mteI_R@D ��� � � &5��i�txFeREU�H�F �;��IaB%I_RxIKNT?�B�RPDOFeBf?�=@Y * )-� �Z�fteIaRPD �V� � � &���i�tuFpREU�H�F � ��n 1?�t�i�Bf?�= �}� �*i�RPDGFVR@F=@Y � ���� �X��Cj?�J�REU�IKJON,UMhO=P?A?�B�v"RPF�=PY ,;n���F*tpU�J5R�RP?yhG=P?�\�FkR@DOU�RRPDOF�\#U�baWOF�Np?�B ���� [X?*JG?�Rr[XFh�FJ`[w?�JMR@DGF�U�CjRPWOU�b%\�U�bKWGF,?�B ,;nGz JwRPDGF�C?�J5RPFl5Re?�B4NPFjRP?�IK[ONiRPDOIKNeY*F U�JONxR@DOU�R1IaB�tuF,DOU#\�F!RStx?*[XFj^OJOI_R@Ia?�JONe?�B4RPDOF�U�cONP?�bKWXRPF,\�U�bKWGF,BfWGJ`C�RPIK?�J�i ���� �� U�J`[���� �� iG?�JGF�[XFj^`JGF�[yWONPIaJOL�R@DGF�hG=@?A?�B ,]�73!����� . � � & �.� � &*U�JO[y?�JOF�W`N�IKJGLVRPDGF�hO=P?A?�B�?�B4RPDOF�NPU�YVF�RSdAh�F�iXtxF�DOU#\�F!RP?ZhG=@?�\�F

3!��£E� � � � .K� �q§�� � � �T¡ � ���� �� ���T§���� ���� �� � � � .

 1?�RPFeR@DOU�RxI_RxYZU#dkc�F1RPDOF!CU�N�FpR@DOU�RuBf?�=xN�?�YVF���i�RPDGF1\�U�baWGF!?�B , �wIKN�* ) ' i5teDGIKbaFeR@DGFr\�U�baWGF?�B� �ZIQN * )!� n5opDGFJ ���� �� �ZDOU�N�\�U�baWGF �sU�JO[ ���� �� �sDOU�N{\�U�bKWGF � ��n ¶ JOFpRPDGF�JVD`U�N{R@?�hG=P?�\�FRPD`U�R1IKJwR@DGIQNe?�\�F�=PbQU�hGhOIaJGLVCU�N�F �w§� � ��iGteDGIQCEDyDG?�bQ[GN�iOU�NpIaR1?�JGbKds?XCCWG=ENuIaB��w§� &On

Page 32: Proof-Assistants Using Dependent Type Systems

& � À��GÄ.�������������������� À��;Ï{�������������( �����T3 � � � ��3�� �V/"-`+ �4+�-.-`/r0 243A0 6.7m84:

| NxtxF!NPFF!I_R i�R@DGF=@F�IKNuJG?�Rp?�JOF�² =PIKL�D5R�´�RSdAh`F,NPdAN�RPF�Yqn5opDGF�teIQ[XFbKdZWONPF�[*R@DGF?�=PF�Y�hO=P?�\�F=ENRPD`U�RsU�=@Fwc`U�NPF�[�?�J�RSdAh�FwR@DGF?�=Pd�U�babeD`U#\�FMIKJO[XW`C�RPIK\�FyRSdAh�F�N�n>�uWGRVR@DGFJ«N�RPIKbabpR@DGF=@F]U�=@F?�R@DGF=ZIKY*h`?�=�REU�J5RZhOU�=EU�Y*FRPF=EN��;R@DGF]CEDG?�IQCjFq?�B�U�bKbK?�tuF [~­5WOU�J5R@I_^`C�U�R@Ia?�J�U�JO[�R@DGF�CEDG?�IKCF?�B�=@F�[GWOC�R@Ia?�J =PF�bKU�RPIK?�JONsRP?¬c`F�WON�F [ IKJ�RPDOF}RSdAh�F�Cj?�JA\�F=ENPIa?�J�=@WGbKF�n ��F�DOU#\�F�U�bK=PF U�[XdY*FJ5RPIK?�JOF�[wRPDGFkh`?5NPNPIacOIabKI_RSdw?�B�U�bKba?�teIKJGL*IKYVhO=PF [XIKC�U�R@Ia\�F�­�W`U�J5RPIa^`CU�RPIK?�Jy?�=1JO?�R�n | bQN�?`iGtuFY*FJ5RPIK?�JOF�[«R@DGF �>i �Ai ��U�JO[ �«=@WGbKF�NyU�Nsh�?�N@NPIacGbKF�=@F�[XW`C�RPIK?�J�=PWGbKF�N�n | \�F�=Pd�h�?�tuF�=�BfWGbFjlAR@FJONPIa?�J«?�B�RPDGF]=@F�[XW`C�RPIK?�J«=@FbQU�R@Ia?�J¬IQNZ?�cGR@U�IKJGF [~cAd¬U�[G[XIKJGL�U�^GlXF�[Av�h�?�IKJ�RPv"?�h`F�=@U�RP?�=� � 3 *k� ����� .Q� *,¡ *��P¡ * NPU�RPIQNSBfdAIKJGL

� �.¡ � �{� � �%� .

��IaRPD*RPDOIKNuU�[G[XIaRPIK?�JVR@DGFe=PF [XWOCjRPIK?�J*?�B�RPDGF1RSd5h�F1NPdAN�RPF�Y¦[X?AF N�JG?�RTN@U�R@IKN�Bfd�N�RP=@?�JOL�JO?�=@Y*U�b_vIKg�U�R@Ia?�JVU�JO[�hG=P?A?�B�v"?�c SF�CjR@N{U�=@F ��S�VXWYTZV � ª�� ?�JGF Nn�z�R>DOU�N{c`F�FJZNPDG?�teJ�IKJ ��FWG\�F=ENi�<{?�babXU�J`[��tpU�JGF�JAcGWG=@L+� �$���%���5RPDOU�R�WGJO[XF�=�YVIKbQ[�C?�JO[XIaRPIK?�J`N4RPDGF � v"=@WGbKF�N{U�=@FpCj?�J`N�F�=P\�U�R@Ia\�FT?�\�F=;RPDGF?�JOF�NuteI_R@DG?�WXR1U � n | NPIaY*IKbKU�=uFl5R@FJONPIK?�JM?�B.RSdAh`F!RPDOF?�=@d*teI_R@DM^OlAF [sh�?�IKJ5R@NuIKNp[XIQNPCWON@N�F [IKJ | W`[XFcOU�WO[ � �$�%� � �"i�teDGF=@FrR@DGF!^GlXF�[sh�?�IKJ5R@NxU�=@FrWONPF�[sRP?V[XFj^OJOF�=@F�CWG=EN�IK\�Fr[OU�R@U�RSdAh`F Nn

z�RkIKN�?�WXREN�IQ[XFZR@DGFMN@Cj?�h�FZ?�BxRPDOIKN�U�=PRPIQCjbKF*RP?�[XIQNPCWON@N,RPDGFsRPF�CEDOJGIKC�U�bT[GFjR@U�IabQN�?�Bx\�U�=PIK?�WON[XIaµ�F�=PF�J5RTRSdAh`F�N�dXN�RPF�Y*N�nA�1?�txF\�F�=�i�tuFr[G?ktpU�J5R>RP?�L�IK\�FrNP?�Y*F1?�B%RPDGF!WGJO[XF�=PbKdAIaJOL�RPDGF�?�=@d�iRP?�NPDG?�t¬RPDGF!N�?�WGJO[�RPDGF�?�=@FjR@IKC�U�bGcOU�N�Fp?�B�RSdAh�FpRPDGF�?�=@FjR@IKC�U�bXR@DGF?�=PF�Y³hG=@?�\�F�=@N{U�J`[kR@?�YZU�H�FCj?�JOCj=@FjR@F!NP?�Y*F�?�B�R@DGF�IKN@N�WOF�NuRPDOU�RetuF�=PF�[XIKN@CjW`NPNPF�[MIaJwRPDGF,hG=@F\AIK?�WONp¾AF C�RPIK?�J`NnXopDGF�=PFBf?�=@FtxFqN�R@U�=�RZ?�µ c5d¬Cj?�J`N�IQ[XF=@IKJGL�?�JGF]N�h�F�CI_^�CMRSdAh�F�N�dXN�RPF�Y IaJ«[XFR@U�IKb"n3��F][XF^OJGF�U�RSdAh`FRPDOF?�=@d*Bf?�=pDGIKL�DOF=x?�=E[XF=xhG=@F�[XIQCU�RPF�ba?�L�IQC�iG°�����VU�JO[wN�DO?�t DG?�t�YZU�R@DGFYZU�R@IKC�U�b�JG?�RPIK?�JONCU�Jwc�F�IKJ5RPF=@hG=@FjR@F�[wIaJqIaR�n`o;?*YZU�H�F�R@DGF�bKU�R�R@F=1hG=@F�CIKNPF�iXtxF,^O=ENSRebK?A?�HsIKJ5RP?ZDGIKL�DGF�=e?�=E[XF=hG=@F�[XIQCU�RPFZbK?�L�IKCZIaR@NPFbaBSn;opDOFJ�txFsNSR@WO[Xd�RPDGFMBf?�=@YZU�b>IKJ5RPF=@hG=@FjREU�RPIK?�J�Bf=@?�Y DGIKL�DGF�=�?�=E[XF=hG=@F�[XIQCU�RPF�bK?�L�IKC�IKJ�R@?M°�����XiOc`?�RPD�U�NeU*Y*?�RPIK\#U�RPIK?�JyBf?�=1RPDGF�[XF^OJGIaRPIK?�J]?�B�°����ZU�JO[qU�NU�JyIKbabKWON�RP=EU�RPIK?�Jy?�B{DG?�t hG=PF CjIQN�F�badZYZU�RPDGF�Y*U�RPIQCNeIQNe[XF U�baR1teI_R@DyIKJyRSdAh`F,R@DGF?�=Pd�nAopDOFJqtuF[XF^OJGF!U�YV?�=PFeL�FJGF�=@U�b`CbKU�NPN�?�B�RSd5h�F!NPdXNSR@FYZN�n��F![XIQNPCWON@N�RPDOFrF�N@NPFJ5RPIQU�bGhO=P?�h`F�=�R@IaF NTU�J`[DG?�t�RSdAh`F!N�dXN�RPFYZNuU�=@FeWON�F [VRP?VCj=@F�U�R@F1U�JZIKJ5RPF=EU�CjRPIK\�FpR@DGF?�=PF�Y¦hG=@?�\�F�=�n��O?�=p°�����,IaR@NPFbaBtxF!L�Ia\�F���IaJM[GFjR@U�Iab_�«RPDGF!RSdAh`F,CEDGF�CEHAIKJGL�U�baL�?�=@I_R@DGYqi�teDOIKCEDsIQNpU�RxRPDGF,Cj?�=PF!?�B�F�\�F�=PdVRSdAh`FRPDOF?�=@FjR@IKC�U�b�R@DGF?�=PF�Y½hG=@?�\�F= n

�ud�FjlGU�Y*hGbKF�N�i tuFxL�IK\�FeNP?�Y*Feh`?5NPNPIKcGbaFpFl5R@FJONPIK?�JON{?�B%°����!teIaRPDZ?�RPDGF�={RSdAh`F1C?�JON�RP=@WOC�vRPIK?�J`NiAbKIaH�F!IKJO[XWOCjRPIK\�F�RSdAh`F NnXopDGF!RSdAh`F�NPdXNSR@FYZNuRPDOU�RxtxF�[GIKN@CjWON@NxDGF=@F,U�bKb�U�[XDGF�=PFrRP?�RPDGFhG=@IaJ`CjIKhGbaFkRPDOU�R�?�c SF�CjR@N![X?MJG?�R,[GFh�FJO[]?�J�hG=@?A?�BmN�U�JO[qR@DOU�R!RPDGF�=PF�IKN�UM[GIKN�RPIKJOC�R@Ia?�J}c�FjvRStxFFJZNPFjREN>U�JO[�Bf?�=PY�WGbKU�Nn�opDOIKN�IQN�YZU�IKJGbKd�[X?�JGFpRP?�H�FF�hkR@DGF�² ba?�L�IQCU�b"´�FjlXhGbQU�J`U�RPIK?�J*CjbKF�U�=��NPFF*U�bQN�?MRPDGF*[XIQNPCWONPNPIK?�J}IKJ�¾XF�C�R@Ia?�J �Gn �On ��F*U�bQN�?wL�IK\�FVJG?sBf?�=PYZU�b4R@=PF U�RPY*F�J�R,?�Bx[XFj^OJOI_vRPIK?�J`NTDGF�=PF*��R@DGF+� v"=@WGbKF1Bf?�=xWGJXBf?�bK[GIaJGL*[XF^OJGIaRPIK?�JONxFjREC�nKiXN�F�F�¾AF C�RPIK?�J)�Xn ���jn#�!Fj^OJOI_R@Ia?�JONpU�=@F\�F�=PdZhO=P?�YVIKJGF�J�R1IKJ]U�RPDGF�?�=@FY½hG=@?�\�F�=xU�JO[ytuF,c�FbKIaF�\�F,R@DOU�Rk�mDGFJOCF �p[XF^OJGIaRPIK?�JONrU�=@F�U�JIKYVh�?�=PR@U�J5R�Bf?�=@Y*U�bXJG?�R@Ia?�J.i�cGWGRTtuFptpU�J5R�RP?�=@F�N�RP=@IQC�R{RP?,R@DGFeYZU�IKJZIKN@N�WOF�N{DGF�=PF�n�¾AFFr¾XF\�F�=PIU�J`[Z<{?�bKb0� �$����� �XBf?�=>RPDOFrFjlAR@FJONPIa?�JZ?�B�RSdAh`F�N�dXN�RPF�Y*NTteI_R@DsU,Bf?�=@YZU�b`JG?�R@Ia?�JZ?�B.[XFj^`JGI_R@Ia?�J.n

Page 33: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� & &

��"%$�"�� � '#·�W� S��PºGWj�x���ÒWEº � �EªUVwW���S ' � �z�BTtxFktpU�J5R1R@?w[X?whG=P?A?�BTCEDGF�CEHAIKJGLOi`tuFk^O=@N�R!D`U#\�F�R@?MYZU�H�FkUMCEDG?�IKCF�Bf?�=,UsbK?�L�IKC�n`opDGF�=PFU�=@Fe\�U�=@Ia?�WON�h�?�N@N�IKcGIKbaIaRPIKF�N���^`=@N�RT?�=E[XF�=�i�NPF�C?�JO[*?�=@[GF= i�DGIKL�DGF�=>?�=E[XF= n�z�RxIKNuU�bQN�?�h�?�N@N�IKcGbKFeRP?CEDG?A?�NPF1c�FjRStxFF�JsFIaRPDGF�=xCbKU�NPNPIQCU�b`?�=uIaJ5RPWOI_R@Ia?�JGIKN�RPIQC!ba?�L�IQC�i5?�=Tc�FjRStxFF�JsJOU�RPWG=EU�b�[XF�[GWOC�R@Ia?�JU�J`[wNPF�­5WGF�J�RrC�U�bQCjWGbKWON�n

�G?�=eCEDGF CEHAIaJGL�Bf?�=@YZU�b�hG=@?A?�BmNpIKJyUVN�dXN�RPF�Y½cOU�NPF�[w?�JMRSdAh`F�RPDOF?�=@d�iXIaRpRPWG=@JONp?�WXRpRPDOU�ReUCU�bKCWGbKWON>?�B�IKJ5RPWGIaRPIK?�JOIKN�RPIQC1JOU�RPWG=EU�b`[XF�[XW`C�RPIK?�JMIKN>RPDGF!YV?5NSRxU�[XF ­�W`U�RPF�n | b_R@DG?�WGL�DZI_RxIKNTJG?�R[XI sCjWGbaR;R@?!U�[G[�CjbQU�N@NPIKC�U�b�=@F�U�N�?�JGIaJOLOijRSdAh�F>R@DGF?�=Pd�IKN;Y*?�=@F>REU�IKba?�=PF [�RP?�tpU�=E[GN.Cj?�JON�RP=@WOC�R@Ia\�F=@F�U�NP?�JOIaJGL`n��GWG=PRPDGF�=PY*?�=PF�i#RSd5h�F�[Z°Gv9R@F=@YZN>U�=@FeU�BmU�IaRPDXBfWGbORPF�=PY¦=PF�hG=PF N�F�J5R@U�R@Ia?�Jk?�B�JOU�RPWG=EU�b[XF [XWOC�R@Ia?�JON�n!�fz J N�F ­�WOFJ5RMCU�bKCWGbaW`NZRPDOF=@F�IKNMYkWOCED�Y*?�=PF�² cGWG=@F�U�WOCj=EU�Cd�´Kn��*opDGF}CEDG?�IKCFc�FjRStxFFJV^O=EN�R>?�=E[XF= i�N�F Cj?�JO[k?�=@[GF=�?�=�DOIaL�DGF=�?�=@[XF�=>CU�JVc�FeYZU�[XFecAdVU�[GU�hXRPIKJGL�RPDGFe=@WGbKF�N?�BrRPDGFwRSdAh`FqN�dXN�RPF�Yy�4txFwteIKbabeC?�Y*FsR@?}R@DOU�R*bKU�RPF�=�n�¾A?Oi4R@?�NPFjR*?�WG=Vba?�L�IQCU�bxNPdXNSR@FY tuFCEDG?A?�NPF,Cj?�J`NSR@=PWOCjRPIK\�F,DGIKL�DGF�=e?�=E[XF=phG=@F�[GIKC�U�RPF,bK?�L�IKC�IKJyJ`U�RPWO=@U�b�[GF�[XWOCjRPIK?�J]N�RSd5bKF�n

��� � ��� ���� y������ � opDGF�bQU�JGL�WOU�L�F!?�B������¬IQN1[XF^OJGF [yU�NxBf?�bKba?�t1N�n��n.opDGF�NPFjR1?�B ºuS�®*ª � T�[ i � IQNe[XF^OJGF�[ycAd

� �K��§�� ��� � �w¡ ��£

teDGF=@F ��=PF�hG=PF N�F�J5R@NxU �EªU[ � �VºuS�®*ª � T �ftxF�U�N@N�WGY*F!RPDOU�ReRPDGF�=PF,U�=@F,Cj?�WOJ�REU�cGbKdZYZU�JAdcOU�NPIQC�[G?�YZU�IKJONE�pU�JO[�� =@FhO=PF N�F�J�RENuRPDGF ºGS�®Zª � T SS±u����S@�ZSg[ � V � S�T�[ n

�Gn.�G?�=ZF\�F�=Pd��{¥ �]i�RPDOF�N�FRs?�B VwW��® [½SS± V"¼@��W �{iuo;F=@Y��¬IKN*IKJO[XW`C�RPIK\�F�bad�[XFj^`JGF�[«U�NBf?�bKba?�t1N�n.� | NeWONPWOU�b%txF�te=@I_R@F " ���}RP?s[XF�JG?�R@F�RPDOU�R " IQNeU�RPF=@Y�?�B�RSdAh�F��{n ��mU5�!RPDGF�C?�JON�R@U�J5R@N � � � £��

�� £ . . .GU�=@F,IaJ]o;F=@Y���i

�fc���RPDGF�\�U�=PIQU�cGbKF�N�� � � £ ��� £ . . .GU�=@F,IaJqo�F�=PY ��i

�mC �,I_B �¬�!� U�JO[�� � IKNeUV\�U�=@IKU�cGbKF�iARPDOFJ�� �2� � . �{�x�"��i�m[`�,I_B �¬�!� U�JO[ ���!��iXRPDOFJ�� � � �p�x�!��i�fF#�,I_B � ����¡$#]U�JO[ ���{iGRPDGF�J�� � }�x�%#%i��B@��I_B � �%#yU�JO[�� � IKNeUV\�U�=@IQU�cGbKF�iAR@DGFJ��9° � � . � �x����¡&#%n

�On.opDGF�NPFjR1?�B;RPF�=PYZNe?�B'��� �riOo;F=@YwiGIQN1[XF^OJGF [wcAdMo;F=@Y���§�/ �"(") o�F�=PY � n�`n.opDGF�NPFjR1?�B;Bf?�=@YkWGbQU�Np?�B'�����1i � ��� .qiGIQNe[XFj^OJOF�[ycAd � ��� .���§ o;F=@Y *�n��F]U�[OU�hXRVRPDGFqtxFbKb_v�HAJG?�teJ�JG?�RPIK?�JONV?�B ±E�ÒWcW U�JO[ �cS�¯�T�º \�U�=PIQU�cGbKF�i�NPWGcON�RPIaRPWXR@Ia?�J.i �%v

=@F�[XWOCjRPIK?�JqU�JO[ �%v Cj?�JA\�F=ENPIa?�JZRP?VRPDOF,RPF=@YZNe?�B;RPDGIQN1NPdXNSR@FYqnopDGF=@FsU�=@F*JG?�² hG=@?X[XWOCjR�´�[X?�YZU�IKJONs� � + �w��IaJ�?�WO=�ba?�L�IQC�n���FZhG=@F�NPFJ5R�BfWGJOCjRPIK?�JON�?�B

DGIKL�DGF�=kU�=@IaRSd}cAd �¯X����¼ � T#' �;UqcGIKJOU�=Pd}BfWGJOC�R@Ia?�J�?�J � IQN�=@FhG=@F�NPFJ5RPF [�U�N�UyR@F=@Y IKJ�RPDGF[X?�Y*U�IaJ �w¡�� �w¡ �M�jn | hO=PF [XIKC�U�R@F�IQN,=PF�hG=@F�NPFJ5RPF [�U�N�UMBfWGJOCjRPIK?�J�RP?+��i�Bf?�bKba?�teIKJGLMRPDGFIQ[XF�U��mhG=P?�cOU�cObad�[XWGFZR@?��uD5WO=@CED.��I_R�U�hGh�F�U�=EN,IKJ � �uDAWG=ECED �$� � &��f�eR@DOU�RVUqhG=PF [XIQCU�R@FsCU�Jc�F}N�F�FJ�U�NMU�BfWGJOC�R@Ia?�J«RPDOU�RsR@U�H�F NZU�\�U�bKWGF�U�NZIKJGhGWGRwU�JO[�=@FjR@WG=PJ`NsU�Bf?�=@YkWGbQUGnx¾A?OiTUcGIKJOU�=@d~=@FbQU�R@Ia?�J«?�\�F= � IQNs=@FhO=PF N�F�J�R@F�[�U�NsU�RPF=@Y IaJ«R@DGF}[X?�Y*U�IaJ �w¡ � �w¡,�e�jn!�mz�B� � �w¡�� �y¡,�e�kU�JO[ " £��� �]i�RPDGF�J����0� " � ��s����n �kopDGFsbK?�L�IKC�U�bTC?�JGJGF C�R@Ia\�F�NkU�=PF+SW`NSRIKYVhObaIQCU�RPIK?�JwU�JO[ZWGJOIa\�F=ENPU�b�­5WOU�J�R@I_^�CU�R@Ia?�J.n��rWGF!RP?kRPDGF�BmU�C�RTR@DOU�RptxF!DOU#\�F · � '#·�W� S��@ºuW�WGJGIK\�F�=@N@U�b.­5WOU�J5RPIa^`CU�RPIK?�J.iGtxFkC�U�JqFjlXhG=@F�N@N1U�bKb.?�RPDGF�=r­5WOU�J5RPIa^OF�=@NeW`N�IKJGL+SWON�R � U�JO[.�4n¾AF�F �Gn ��Bf?�=eYV?�=PF�[XFR@U�IabQNn

Page 34: Proof-Assistants Using Dependent Type Systems

& � À��GÄ.�������������������� À��;Ï{�������������������� �~�� � ��F,^GlsR@DGF,Bf?�bKbK?�teIaJGL*JG?�R@U�RPIK?�JOU�b�C?�JA\�F�J5RPIK?�JON�n� ¶ WXR@NPIQ[XF�cG=EU�CEH�FR@NpU�=@F�?�Y*I_RPRPF [%n� z JyRPDGF�[X?�YZU�IKJONptuF,?�YVIaRpRPDGF�cO=@U�CEH�FjRENxc5dMbaFR�RPIKJGL*R@DGFY U�N@N�?XCjIQU�R@FrR@?VRPDGF�=@IaL�D5R�iGNP?�w¡ �w¡�� [XF�JG?�R@F�N �w¡ � �y¡,�e�jn

� z JkR@F=@YZN;txFx?�Y*I_R�cG=EU�CEH�FjREN�cAd�U�N@NP?ACIKU�RPIKJGL1R@DGFY RP?!RPDGFpbKFjB�R�i�NP? � " r[XFJG?�RPF Nx�0� " �$An 1?�RPF,RPD`U�R1IKJy?�=@[GIaJOU�=PdZYZU�RPDGF�Y*U�RPIQCN�iARPDGIQNeIQNpWONPWOU�bKbadwte=PIaR�R@FJqU�N �*� " £����n

� z�BxtxFVte=PIaRPF � � �#i%tuF ª�� � ª�¼g[ Y*F�U�J¬���0� �X���j�ji.N�? �¨U�hOhGbaIKF�[}RP? ��i.U�J`[�R@DGFJ�RPDOIKNU�hGhObaIKF�[yR@? �#nGz�B{tuF�tpU�J5ReRP?ZIKJ5RP=@?X[XWOCjF�U*J`U�Y*Fs�mU�N1U�JqU�cGcO=PF�\5IQU�R@Ia?�J`��iOtuF�teIKbab�WON�FRPDGFwNPU�JON,N�F�=PIaBuBf?�J5R�i.F�n L`n%IaJ�te=@I_R@IaJGL � ���-)� U�N�U�J�U�cGcO=PF�\5IQU�R@Ia?�J�?�BTR@DGFZRP=EU�J`N�IaRPIK\AI_RSdhG=@?�h�F=@F=PRSd�n

��� ������� ���5�G � �xFBf?�=@F1L�IK\AIaJGLkRPDGF�bK?�L�IQCU�bO=@WGbKF�Nu?�B������1iAtuFrRP=@F�U�RxNP?�Y*FrFlXU�Y*hGbaF NT?�BRPF�=PYZNuU�JO[�Bf?�=@YkWObKU�N{RPDOU�RuCU�JZc`Frte=PIaR�R@FJs[X?�teJZIKJ*RPDGIQN>bQU�JOL�WOU�L�F�n ��FjR>R@DGF1Bf?�babK?�teIKJGL,c`FL�IK\�F�J.��[X?�YZU�IaJON{z  �U�JO[ *�i#RPDOFe=PF�bKU�RPIK?�JXv Cj?�JONSREU�J5R����z  ,¡�z  �¡���i#RPDOFe=PF�bKU�RPIK?�JXv�\�U�=@IKU�cGbaF N�V£�:³�*�¡ *,¡,� U�JO[MRPDOF,BfWGJOC�R@Ia?�JXv Cj?�J`NSREU�J5R@N &V��z  ³U�JO[ � ��z  �¡�z  �n��n.opDGFphG=@F�[XIQCU�RPF1² c�FIKJGL,bKU�=PL�F=.R@DOU�J &G´#IQN;FlXhG=PF NPNPF�[�c5d,R@DGFxRPF�=PY³° �� � . � � &V��z  �¡,��n�Gn%z JO[XWOCjRPIK?�J�?�\�F=!z  ©CU�J�c`FVFjlXhG=@F�N@NPF�[]cAdyRPDGFq�mNPF�C?�JO[}?�=E[XF=��xBf?�=PY�WGbKU * ) � [XF^OJGF [

U�N

��9 � � � * .Q� 9 &5� � � ��� � � .K��9 � � 9Z� � ���P����� ��� � � . 9 ��.

�On.opDGFZBf?�=PY�WGbKU � ���-)� �5����i4[XFj^`JGF�[�U�N ��� � � � � �5� �� � �� �� � � � �5�,[XF�JG?�R@F�NRPDGFwBmU�CjRkR@DOU�R � IKNkRP=EU�JONPIaRPIK\�F�n{¾A?Oi�� ���-)� �x� *�¡ *�¡��e�P¡���n� 1?�RPFsR@DOU�RVtuFwte=PIaRPF��� � � � � U�NeU*NPDG?�=PRPDOU�JO[MBf?�=���� � . � � . � � � n

�`n.opDGF,RPF�=PY ���G� *,¡ *,¡,�e�@¡ � *�¡ *�¡��e�P¡ � IKN1[GFj^OJGF [yc5d

� �):¦��§F��� � � .Q�5� �� � : �� X� .

� ��F�IKJXBf?�=@YZU�bKbadsW`N�F�RPDOF�IaJX^OlwJG?�R@U�R@Ia?�J � �(:³RP?Z[XF�JG?�R@F�� � :Zn �Gn.opDGFwRPF=@Y ° � � � .Q� �4: �

���* .K� � ���-)� � :�� � �5� � :�� � : �� G�P��IQNk?�B1RSdAh`F

*�¡ *�¡���n�z�Rx[XFJG?�RPF N�RPDOFeRP=EU�JONPIaRPIK\�F1CjbK?�NPWG=@Fp?�B �Vn��F1WONPF!° � � � U�NTU�N�DO?�=PRPDOU�JO[Bf?�=!° � � .�°# � n

opDGF�[XF=@IK\#U�RPIK?�Jy=PWObaF Np?�B'������U�=@F!L�Ia\�FJyIaJ]UVJOU�RPWG=EU�b.[XF [XWOCjRPIK?�J]NSRSdAbKF�n

���� ���� ���� y������ � opDGFsJG?�RPIK?�J�?�B ����S�»�ª�� � � � V9¼ i3( � �xi%Bf?�= ( Uw^OJGIaRPFwN�FRk?�BxBf?�=@YkWGbQU�N��R@F=@YZNe?�B;RSd5h�F � ��� .s�pU�JO[ �~UVBf?�=PY�WGbKUOiAIKN1[GFj^OJGF [yIaJO[GWOC�R@Ia\�FbKdMU�NxBf?�babK?�t1Nn

Page 35: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� &-�

�9U�lXIa?�Ys� (�� � I_B �x¥/(

� � v�IaJ5R@=P?X[XWOCjRPIK?�JO�( / � ���

(�� � � �

� � v�FbKIaY*IKJOU�R@Ia?�JO�(�� � (�� � � �

(�� �

� �`v�IaJ5RP=@?X[XWOCjRPIK?�JO�(�� �

(�� ��� � . �I_B�� � ¥]� �V� (;�

� �`v�FbKIaY*IKJOU�R@Ia?�JO�(�� ��� � . �(�� ��� " � � �

I_B " ���

�9Cj?�JA\�F=EN�IK?�JG�(����(����

I_B ��§ � �

��������� ������ � opDGF�=PWGbKF*�mCj?�JA\�F=ENPIa?�J`�{IQNxU�JM?�h`F�=@U�RPIK?�JOU�baIKg�U�RPIK?�JZ?�B�RPDGF,<{?�IKJOCU�=��FehG=PIKJXvCjIKhGbKF�[XIQN@CjWON@N�F [�IKJ ¾AF�CjRPIK?�J �Gn �OnuopDGF�=PWObaF}N@U#dXNZR@DOU�RytuF�[X?�J.´ RwtpU�J5RsR@?¬[XIQN�RPIKJGL�WGIQNPDc�FjRStxFFJ)�%v�F�­5WOU�b%hG=@?�h�?�NPI_R@Ia?�JONn

����������� ���5�G � | tuF�babav"HAJG?�teJ�BmU�C�R4U�c`?�WXR.R@DGIKN;bK?�L�IQC�IQN%R@DOU�R;RPDGFxCj?�JOJGF�CjRPIK\�F�N��*£��x£ � £ &U�J`[-��U�=PFy[XFj^`JOU�cGbKFyIaJ~RPF=@YZNV?�B � U�JO[ �4ne�mopDOIKNVIQNV[GWGFMR@? � �eWON@NPFbKb ����&�����n ���O?�=�x£ ���!��i`[XFj^OJOF

��� � ��§ ��� * .Q� � � � � ����� �;£� � � ��§ ��� * .Q� � � ��� � � � � ����� ��£

� ��§ ��� * . ��£& � ��§ � � � £

�0� � . � ��§ � � * .K� ��� � .K� � � �5�P� � � .

z�R�´ N1JO?�R![XI sCjWGbaRrR@?sCEDGF�CEHMRPDOU�RrR@DGF�IKJ�R@WGIaRPIK?�JGIQNSR@IKC�FbKIaY*IKJOU�R@Ia?�J�U�JO[qIKJ5RP=@?A[GWOC�R@Ia?�Jy=@WGbKF�NBf?�=pR@DGF�NPF�Cj?�JGJGF C�RPIK\�F NpU�=@F,NP?�WOJO[%n

(T­5WOU�bKIaRSdyc�FjRStxFF�J�R@F=@Y*N!?�BxUZ^GlXF�[�RSdAh`F ��IQN![GFj^OJOU�cGbKF�cAd�N@U#d5IKJGLZR@DOU�R�RStx?sRPF�=PYZNU�=@F�F�­5WOU�b�IaB�RPDGF�dyNPDOU�=PF,R@DGF�N@U�Y*F�hG=@?�h�F=PRPIKF�N�nOopDGIQN!F�­5WOU�bKIaRSdMIQN1WONPWOU�bKbKdyC�U�bKbaF [ ��W � ��T ���W � ¯Oª�� � V"¼ U�JO[wIQN1[XFj^`JGF�[ycAd

" §�� " � ��§F�29 ��* .K��9 " � 9 " � �j£pBf?�= " £ " � �* .

z�RqIKNwJG?�R][XI sCjWGbaRwR@?�NPFF}RPDOU�RwR@DGIQNwF ­5WOU�bKI_RSd«IQNM=@F �`FjlXIa\�F}U�J`[�RP=EU�J`N�IaRPIK\�F�nuz�RqIKNyU�bQNP?NPd5Y*Y*FjR@=PIQC��$�.FjR�:~c�FTUphG=@F�[GIKC�U�RPF�\�U�=PIQU�cGbKF{?�\�F�= * �mNP?�:¦�*�¡��e��n o;U�H�F>°# � . : � : "

Page 36: Proof-Assistants Using Dependent Type Systems

& � À��GÄ.�������������������� À��;Ï{�����������Bf?�=!9*n`opDGF�[XF�[XW`C�RPIK?�JqIQN1U�NxBf?�babK?�t1N�n�� | ReRPDGF�bKFjB�R!tuF�U�hOhGbadsRPDGFs� �`v�FbKIaYs�x=@WGbaF�Bf?�babK?�tuF [cAdZRPDOFs�mCj?�JA\X�x=@WGbKF�n��

(��"��9 ��* ��9 " � 9 " � �

(�����: " � : " � � ��: " � � : " �(>£ : " ��: "

( ��: " � : "

(���: " � � : "(��B��: �

�* .Q��: " � � : " �

0 ®r����W@º � �EªUV � » � V"¼ z J]RPDOFV[XF^OJGIaRPIK?�J�?�B�RPDGFVCj?�JGJGF�CjRPIK\�F N�� (�lGU�Y*hGbKF �Gn ���1U�JO[]IKJ�R@DGF�[GFj^GvJGIaRPIK?�Jq?�B4F�­5WOU�baIaRSd�iX?�JGF�YZU�H�F NxWON�F�?�Bu� ®r���ÒWEº � �@ª�V � » � V"¼ iOR@DOU�R1IQN

RPDGFZh�?�N@NPIacGIKbKI_RSd�?�BxC?�JON�RP=@WOCjRPIKJGL]UyRPF=@Y ?�BpUqCjF�=�REU�IKJ�[G?�YZU�IKJ�cAd�U�cON�RP=EU�CjRPIKJGL?�\�F�=uR@DOU�RrN@U�Y*F�[X?�Y*U�IaJy?�=e?�\�F=eU*[X?�YZU�IaJy?�B4RPDGF�N@U�Y*FV² ?�=E[XF= ´an

(1n LOnxIKJ (�lGU�Y*hGbKF �On �~?�JGF�Cj?�JONSR@=PW`C�R@NMRPDOF ����S@�ZSg[ � V � S�T ��� � cAd�U�c`NSR@=@U�C�RPIKJGL��mWONPIaJGLRPDOF�WGJOIa\�F=ENPU�br­5WOU�J5RPIa^OF�=E�s?�\�F=MRPDGF�Cj?�babKF�CjRPIK?�J ?�B ª����T���ÒSE��SU[ � V � SUTZ[ nr¾AIaY*IKbKU�=PbKd«IaJ RPDGF[XF^OJGIaRPIK?�JZ?�B���FIKcGJGIKg1F�­5WOU�baIaRSdk?�JGF1[XFj^`JGF�NuU,cGIaJ`U�=@d �ÒW�aªUV � SUT½S�T *�cAdVU�cON�RP=EU�CjRPIKJGL�?�\�F�=RPDOF�Cj?�bKbKF�C�R@Ia?�JM?�B4U�bKb ����W@º � �EªUVwWz[ S�T *�nO�x?�RPDqU�=@F�[X?�YZU�IKJONp?�B{N�F Cj?�J`[M?�=@[XF�=�n%�9opDGF,cOU�NPIKC[X?�Y*U�IaJ`N�U�=@Fu?�BO^O=ENSR�?�=@[XF�=�n��;opDGFpBmU�CjR4R@DOU�R�R@DGIQN{ba?�L�IQCuIQN{DGIKL�DGF�={?�=E[XF=�U�bKbK?�t1N;W`N{RP?,YZU�H�FRPDOF�NPF�IaY*hG=@F�[XIQCU�RPIK\�F,Cj?�JONSR@=PW`C�RPIK?�J`Nn

opDGF�JG?�RPIK?�Jq?�B�?�=E[XF�=1txU�Nx^O=ENSRrIKJ5RP=@?X[XWOCjF [yc5d1�eWON@NPFbKbT�mNPFF ��DOI_R@FDGF U�[]U�J`[ �eWON@N�F�bab� �$� ��&Gi �$�#� ���f�eIKJ}DOIKN,=EU�Y*Ia^OF�[�RSd5h�F�RPDGF�?�=@d�i�RP?qhG=@F\�FJ5RrR@DGF*hOU�=EU�[X?#lXF NrU�=@IQN�IKJGLsBf=@?�Y UJOU�Ia\�FMCj?�JOCjF�hXRPIK?�J�?�BxR@DGFMJO?�RPIK?�J~?�B1N�FR�n���U�RPF=kI_RVtxU�N�JG?�RPF�[�c5d �1U�Y*NPFd � �$��� #�>R@DOU�RRPDOF�NPIaY*hGbKF�RSdAh`F NrNPW sCjF�R@?MU#\�?�IK[wR@DGFkNPd5J5REU�C�R@IKC�hOU�=EU�[X?#lXF NnXopDGFVN�F�Y*U�J5RPIQC,hOU�=EU�[X?#lXF NCU�Jqc`FVU#\�?�IQ[XF [McAdMYZU�H5IKJGLsUsCbaF U�=1[XIQN�RPIKJOC�R@Ia?�J]c`FRStuF�FJ�NPd5J5REU�l��fBf?�=@YZU�b�NPdXNSR@FYs�eU�J`[NPFYZU�J5RPIQCN!�fY*?X[XFbQNE��n5z J � ��DGIaRPF�DGF�U�[sU�J`[ �eWON@N�F�bab �$� �$&Gi ����� ���GR@DGIKNx[XIQNSR@IaJ`C�RPIK?�JZtpU�NTJG?�RYZU�[XF�U�JO[wRPDGF�=EU�Y*Ia^`CU�RPIK?�JMtpU�NpW`N�F [sR@?ZhG=PF�\�F�J�RpR@DGF�N�F�YZU�J5RPIQCU�b�h`U�=EU�[X?#lXF�N�n

z YVhO=PF [XIKC�U�R@Ia\AIaRSd�IKN*?�B�RPFJ«NPFFJ�U�Ny² JG?�JGv�C?�JON�RP=@WOC�R@Ia\�F�´K�4U�J~IKY*hG=PF [XIQCU�R@Ia\�Fy[GFj^OJGIaRPIK?�JCU�J~JG?�RZ=PF U�bKbad�c�FqWGJO[XF�=@N�RP?A?X[~U�NVU �cSUTZ[cV"��¯O�YV � S�T i�cGWXRZ?�JGbad�U�N*U ºGWz[�� � �IV � SUT ?�B!U�J?�c SF�C�RpteDG?5N�F�FjlXIQNSR@FJOCF!txF�U�NPNPWGY*Fr?�JM?�RPDGF�=xL�=P?�WGJO[GN�nA�G?�=pFlXU�Y*hGbaF�i5RPDGF,[XFj^`JGI_R@Ia?�Jw?�B�.F�IacOJGIag!F�­5WOU�baIaRSd ºGWz[�� � �cWz[ U�cGIKJOU�=@dV=PF�bKU�RPIK?�JZcAdV­5WOU�J5RPIaBfd5IKJGL�?�\�F=>RPDGF�Cj?�bKbKF�C�R@Ia?�JZ?�B�U�babhG=@F�[XIQCU�RPF Nn#opDGIQN{IKN4JG?�R{U �cSUT�[zV"��¯O��V � SUT i U�N;RPDOU�R{tx?�WObK[�=@F�­5WGIK=@F>RPD`U�R{RPDGFpCj?�babKF�CjRPIK?�J�?�B`U�babhG=@F�[XIQCU�RPF NeDOU�[]U�ba=@F�U�[XdMc�FF�J�Cj?�JONSR@=PW`C�RPF [%iOc�FjBf?�=PFktuF�C?�JON�RP=@WOC�RrRPDGIQN1cGIKJOU�=Pdy=PF�bKU�RPIK?�J.nopDGF�=PFBf?�=@F�i#IaY*hG=@F�[GIKC�U�RPIK\AI_RSd�IQN�NPFFJ*U�N{U�baIKFJ�RP?�Cj?�JON�RP=@WOC�R@Ia\�FubK?�L�IKC�n ��FpteIabKbON�RPIKbabGC�U�bKbX?�WG=bK?�L�IQCpCj?�JONSR@=PW`C�RPIK\�F�i�U�N{IaRTbQU�CEHXN;RPDGFr[G?�WGcGbKFeJGF�L�U�R@Ia?�J�bQU#t �9U�JO[VDGF�JOCjFeIaR>IQN�JG?�RTCbKU�NPNPIQCU�b���n ]?�=PF�?�\�F= i�RPDGFpbK?�L�IQCxFJ S?�dXN;RPDOF º � [ � ¯�T��YV � S�T����ÒS@�ZW�zV9¼ �fIaB � � � �!i�RPDGF�J ���}?�= � �x�{U�J`[RPDOF W�� � [zVXWYT��cW����ÒSE��W�zV"¼ �mI_B �-�0��� * . �xi.RPDOFJ � ��� � � �TBf?�=kNP?�Y*F ��� *!�!R@DOU�R�txFZHAJG?�tBf=@?�Y Cj?�JON�RP=@WOC�R@Ia\�FMbK?�L�IQCN�n4z�BrtuFqCEDOU�=@U�CED�R@F=@Iag�FsU}bK?�L�IKCwU�N*Cj?�JON�RP=@WOC�R@Ia\�FMIaBrI_RsN@U�R@IKN�^OF�NRPDOF,[GIKN SWGJOCjRPIK?�JqU�JO[sRPDGF,FjlXIQNSR@FJOCF,hG=P?�h`F�=�RSd�i�R@DGFJy?�WO=xDOIaL�DGF=p?�=E[XF�=uhG=@F�[GIKC�U�RPF�bK?�L�IQC!IKNCj?�JON�RP=@WOC�R@Ia\�F�n

Page 37: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� & �

��" !�"�� � '#·�W� S��PºGWj��V"¼@�ZW@º ° ¹��@ª��a�¯X��¯�[z J�RSdAh`FMRPDGF�?�=@d�i.?�JGFsIKJ5RPF=@hG=@FjREN�Bf?�=@YkWObKU�N�U�JO[�hO=P?A?�BmN�\5IQUqR@DGFstxFbKb_v�HAJG?�teJ�² Bf?�=PY�WGbKU�NSvU�N�v"RSd5h�F�N�´�U�JO[q² hG=P?A?�BmNSv U�N�v9R@F=@YZN´�F�Ykc�F�[G[XIKJGL`i�?�=@IKL�IKJOU�bKbadV[XWGFrRP?V�uWG=@=@d�i5�1?�tpU�=E[�U�JO[s[XF�x=PWOI SJ.n`�9¾AF�F!� �r?�txU�=@[ �$��%&Gi�[XF1�x=@WGI SJ1��� ��& �"n�� �1JO[XF�=�RPDOIKN�IKJ5RPF�=PhG=@FjREU�R@Ia?�J.i�U!Bf?�=@YkWGbQU�IKN\AIaF�tuF [sU�N>RPDGFrRSdAh`F!?�B.IaR@NuhG=P?A?�BmNn5z�RTR@WG=PJ`NT?�WXRTR@DOU�Rx?�JGF�CU�Js[GFj^OJGF�U�RSdAh�F�[M°Gv�C�U�bQCjWGbKWON°� � �MR@DOU�R�=@FhG=@F�NPFJ5REN ����� IaJ�Uy\�F�=Pd]hO=PF CjIQN�F*tpU#d�n���DOU�R »gW��¼V���ÒWE� � [YW Y*F�U�JON�teIKbabJG?�Ruc�F�[XF^OJGF [ZDGF=@F�i5cGWXReNPFF1F�n L`n5�pU�=@FJ`[X=PF�L�R � �$�%�����O?�= ��FWG\�F=EN � �$��������n��rF=@F�i5tuF SW`NSR[XF^OJGFqRPDOFqNPdXNSR@FY °����Gi�WONPIKJGL�RPDGF]IKJ5RPWGIaRPIK?�JON*?�B �����1n>z J�?�=E[XF=VR@?�L�FjRMU�c`FR�R@F=WGJO[GF=ENSREU�JO[XIKJGL*txF�JO?�RPF�U�BfF�t�R@DGIaJOL�N�n��n.opDGFMbQU�JOL�WOU�L�FZ?�B �����³U�N�hG=PF N�F�J5RPF�[�IKJ �On �sIQNkU]RSd5h�F�[�bKU�JGL�WOU�L�FsU�ba=@F�U�[Xd�n�opDOIKN

bKU�JGL�W`U�L�F�teIKbab.c�F�UVhOU�=PRe?�B>°������Gn%z J}°�����XiOBf?�=@YkWGbQU�NpbKIKH�F � � � U�J`[.��� � . �~teIKbab;c`F Cj?�YVF,RSdAh�F�N�nO�1?�txF\�F= iARPDGF N�F

² hO=P?�h`?5N�IaRPIK?�JOU�b9´>RSd5h�F�NMU�=@F]JG?�RZR@DGF}N@U�Y*F�U�N*R@DGF�²�N�FR�´TRSd5h�F�NsbaIKH�F]F�n L`nTz  knu�1F�JOCjFRPDGF�=PFqteIKbabpc�FyRStu?¬² WOJGIa\�F=EN�F N´K� � ���#� i�Cj?�J5REU�IKJGIaJOL}R@DGF�² hG=@?�h�?�NPIaRPIK?�JOU�b9´;RSdAh`F Ni�U�J`[� , � ��iOCj?�J5R@U�IKJGIKJGLVRPDGF*²�NPFjR�´ARSdAh�F�N�n ������� I_REN�F�b_B{IQNeUM²�NPFjR�´GRSd5h�F�n

�On.opDGFT[XF [XWOCjRPIK?�JON;U�=@F4=@FhO=PF N�F�J�R@F�[,U�N%RSd5h�F�[�°Gv"RPF=@YZNn opDGF>[XIQNPCED`U�=@L�IKJGLp?�BXDAd5h�?�R@DGF�NPF�NIKNx[X?�JGFrcAds° ¹�ª%�z[zV"�Pª��YV � SUT nXopDGF�Y*?X[XWONuh`?�JGFJONu=@WGbaF!IKNuIKJ�R@F=@hG=@FjRPF [Z\AIKU ª@����� � �EªUV � SUT n

opDGF ºuW� � »#ª%�j�«W � ¯Oº '�®AWYTZV\[ ?�B�°����*U�=@F!?�B;R@DGF,Bf?�=@Y

(�� � �*�£

teDGF�=PF ( IKN U �cSUTZVwW��uV U�JO[ � U�JO[ * U�=@F RPF�=PYZN�n | C?�J5RPFlAR�IKN�?�B�RPDOF Bf?�=@Y� � � * � £ . . .£ � ��� * �%i>teDGF�=PFD� � £ . . .�£ � ��U�=PFq\�U�=@IQU�cGbKF�N*U�J`[ * � £ . . .j£�* ��U�=PFyR@F=@Y*N�nTopDGF\�U�=@IKU�cGbKF�NuRPDOU�Re?AC�CjWG=eIKJ�� U�J`[ * U�=@F,L�IK\�F�JwU�RSdAh`F,IKJyU*Cj?�J5RPFjlAR nXz�BSiGIaJwRPDOF SW`[XL�Y*FJ5R( � � � *�i`RPDOF�RPF�=PY * IQN�Uq² hO=P?�h`?5N�IaRPIK?�JOU�b%RSdAh`F�´;�mI9n F�n ( �)*�� �����#� ��i�tuF�\AIKFt � U�NU ����SLS�± ?�B *�n;z�BuR@DGFZR@F=@Y *¨IQN�U�² NPFjRkRSd5h�F�´u�fI"n F�n�( � * � � , � � �ji�txFZ\AIaF�t � U�N�U�JW��Wj® WYTZV ?�B4RPDGF�NPFjR *kn

����� ��� ���� y������ � opDGF!RSd5h�F�[w°Xv CU�bKCWGbaW`Nx°����Gi5=PF�hG=PF N�F�J5RPIKJGL�DGIKL�DGF�=u?�=@[GF=>hG=@F�[GIKC�U�RPFbK?�L�IQC�iXIQNe[XF^OJGF�[qU�NxBf?�bKba?�t1N�nGopDGF�N�FR1?�B ��[YW¯OºuSUVwW��® [�� IKNe[GFj^OJGF [yc5d

� �K��§ ������� � � , � � � � , � � � ��� �j��3��!� � . � � �j�9°��!� � . � � � ��� .

�1F�=PF�i���IQNeUVNPFjR1?�B4\�U�=PIQU�cGbKF�N�nXopDGF�NPFjRe?�B [YS��zV\[ i IQN < �����#� £ � , � ��£ � , � � � AsnopDGFTRSdAhGIKJGL!=PWGbKF�N�i�RPDOU�R{NPFbKF�CjR�RPDOF � W����¹wV"¼@��WEº R@[email protected]=@?�Y RPDOFuhONPFW`[X?�R@F=@Y*N�i#U�=@FTL�IK\�F�J

IKJq�4IKL�WG=@F���nG�rF=@F�i���=EU�JOL�F�Nx?�\�F=xRPDGF�NPFjRe?�B{NP?�=PR@N rnz J,RPDGFu=PWGbKF�Nu�f\�U�=��%U�JO[Z�ftxF�U�HX�%I_R4IKN;U�bKtxU#dXN%U�N@NPWGY*F�[�RPD`U�R�R@DGF>JGF�tebad,[XF CjbQU�=@F�[,\�U�=@IKU�cGbKF

IQNrBf=@F�NPD.i`RPDOU�R�IQN�i�IaR,DOU�N�JG?�R!d�FR�c�FF�J�[XF CjbQU�=@F�[]IKJ�(Tn%opDGF�F ­5WOU�bKI_RSdqIKJ�R@DGFVC?�JA\�F�=@NPIK?�J=@WGbaFZ�9Cj?�JA\G�xIQNxRPDGF��%v�F�­5WOU�baIaRSds?�JMR@DGF�N�FR1?�B4hON�F�WO[X?�RPF=@YZN � n

��FrNPFF1RPDOU�R>RPDGF�=PFrIKNTJG?k[XIQNSR@IaJ`C�RPIK?�JZc�FjRStxFF�J*RSdAh`F NTU�J`[VRPF=@YZN�IKJ*RPDGF�N�F�JON�FpR@DOU�RTRPDGFRSdAh`F N�U�=@FTBf?�=PY*F [�^O=EN�R�U�JO[kRPDGF�J�R@DGFxRPF�=PYZN�U�=@FuBf?�=@YVF [kW`N�IKJGL�RPDGFpRSdAh�F�N�n | hON�F�WO[X?�RPF=@Y* IKN ��W '�ª�� IaB!R@DGF=@FqIKNZU�Cj?�J5RPFjlAR ( U�JO[�U�hON�F�WO[X?�RPF=@Y � NPWOCED~R@DOU�R�( � * �6� ?�=(��.�©�* IQNe[XF=@Ia\�U�cGbaF�nXopDGF�N�FRp?�B4bKFL5U�b�RPF�=PYZNp?�B{°� � �kIQNe[XFJG?�RPF [McAdMo;F=@Y]�9°� � ����n

Page 38: Proof-Assistants Using Dependent Type Systems

& � À��GÄ.�������������������� À��;Ï{�����������

�9U�lXIa?�Ys� � �����#� � � , � � � � , � ��� � , � � �

�m\#U�=E�(�� * � �

(>£ �;� * � ����*

�mtuF U�HX�(���* � � (�� � ���

(>£E��� * � � ���

��3!�(���* � � � (T£ ��� * �.�©� � �

(�� 3���� * . �¨� � �

I_Be� � � £ � � �j¥ <k� � , � ��£ � , � � �j£� � ���#� £ �����#� ��£� � , � ��£ ������� �6A

�"°`� (>£ �;� * � � � � (��.3!��� * . �¨� �(��M° ��� * . � �73���� * . �

�9U�hGh`�(�� � � 3!�;� * . � (�� ��*

(�� � � � � � �

�9Cj?�JA\G� (�� � �* (��.�©� �(�� � � �

IaB * § � �

�4IaL�WG=@F ���GoTdAhGIKJGL*=@WGbaF N

| Cj?�J�R@FjlAR (~IQN�� W����¹�±�S���® WEº I_BxI_R�U�hOh`F U�=EN!IKJ�N�?�YVF*[XF�=PIK\�U�cGbKFZNSREU�RPF�Y*FJ5R�i%I"n F�n%I_BuRPDGF�=PFU�=@F�N�?�Y*F � U�JO[ * NPWOCEDyRPDOU�R (�� � �* IQNe[XF=@Ia\�U�cGbaF�n

opDGF�?�JObadMRSd5h�Fjv"Bf?�=@Y*IaJOLZ?�h�F=EU�RP?�=eIaJ�RPDGIQN1bQU�JGL�WOU�L�F,IKN1RPDGF>3kiOteDGIQCED�Cj?�Y*F�NeIKJqRPDG=@FF�`U#\�?�=ENi#[XFh�FJ`[XIaJOL�?�JVRPDGFxRSdAh�Fe?�B�RPDGF ºGS�®Zª � T �fRPDGF *«IKJ 3!��� * . ���>U�JO[kRPDGFpRSdAh�Fe?�B`RPDGF�Pª�T#';W �fRPDGF � IKJ 3!�;� * . �V��nAz J5RPWGIaRPIK\�F�bad�i5U�31v9RSdAh�FrNPDG?�WGbQ[Zc�Fr=@F�U�[VU�NTU�NPFjRx?�B�BfWGJOCjRPIK?�JON�nz�B{tuF�[XF�hGIKCjReRPDGF�?XC�CjWG=@=PF�JOCjF Nx?�B��]IaJD�©FjlXhGbKIQCjIaRPbKdscAdMte=@I_R@IaJGL �w� ���jiGR@DGF�IaJ5R@WGI_R@Ia?�JqIKN��

3���� * . �M� ��� ���� ( �

�M� �A�>§ <#��� ����¥ *+� � ��¥4�M� �A� ��A#.

¾A?`i,3!�;� * . � IQN�R@DGF ºGW��ZW�T�ºuWYTZV>±E¯�T���V � SUTMV9¼@�ZW ?�BeBfWGJ`C�RPIK?�J`N�REU�HAIaJOL}UqRPF�=PY ?�BeRSd5h�F *U�NrIaJOhGWXR�U�JO[�[GFbKIa\�F=@IaJGLwUZRPF�=PY ?�B�RSd5h�F � IKJ�teDGIQCEDG��IQN!=PF�hGbKU�CjF [qc5dyR@DGFkIKJGhGWXR n ��FRPDOF=@FjBf?�=@F,IaY*Y*F�[GIKU�RPFbKds=@F�C?�\�F=xR@DGF�?�=E[XIKJOU�=@dVBfWGJOC�R@Ia?�JqRSdAh`F�U�NeUZNPh�F�CjIQU�b%IKJON�R@U�JOCjF�n

��������� ������ � z J CU�N�FD� ¥¦� �Z� �V��iutuF�te=@IaRPF *�¡�� Bf?�=.3!�;� * . �Mn ��F}C�U�bKbeRPDGIQNMUTIS�TO¹�ºGW��ZW�T�ºuWYTZV BfWGJOCjRPIK?�JyRSdAh`F�n

Page 39: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� &��

| N�FlXU�Y*hGbaF N�txFxbKIQNSRTU�babGIKJON�R@U�JOCjF N�?�B�RPDGF!31v9RSdAh�FpRPDOU�RuCU�J�c�F1F�JOCj?�WGJ5RPF=@F�[�IKJZ°����Gn

����������� ���5�G ���n �rNPIaJOLwR@DGFZCj?�YkcGIKJOU�R@Ia?�J¬� � , � ��i � , � � �ji.tuF*CU�J}Bf?�=PY R@DGF*BfWGJOCjRPIK?�J�RSdAh`F *�¡�� Bf?�=

*�£��s� � , � ��n�opDOIKN!U�bQN�?MC?�Y*hG=@IKNPF�NeRPDGFkRSd5h�F�N!?�B�WGJ`U�=@dwhG=@F�[GIKC�U�RPF NrU�JO[qcGIKJOU�=@dw=@FbQU�vRPIK?�JON���*,¡ �����#� U�J`[ *,¡ *�¡ � ���#� nO�GWO=�R@DGF=@Y*?�=@F�iXIaRrU�bQN�?*FjlAR@FJO[GNeRP?ZDGIKL�DGF�=e?�=E[XF=hG=@F�[XIQCU�RPF�RSdAh`F NebaIKH�FZ� *�¡ *�¡ � ���#� �P¡ ������� nz�B ( �2*�� � , � �VU�JO[2(T£ �;� * � ��� � , � ��i`RPDGF�JG� ¥�� �Z� �V�eIKJ�°�����Oi`NP?MU�bKb�RSdAh�F�NBf?�=@Y*F�[ycAd}� � , � ��i � , � �#�pU�=@F,JG?�JXv [XF�h`F�JO[XFJ5ReBfWGJ`C�RPIK?�JyRSdAh�F�N�n

�Gn �rNPIaJOL*� � ���#� i � ���#� ��i�txFxC�U�J�Bf?�=@Y RPDGFphG=@?�h�?�NPIaRPIK?�JOU�b�RSdAh�F �>¡ ��Bf?�= �x£ �!� ������� n�opDOIKNIKNeRP?*c`F�=@F�U�[wU�NeU�J�� ®1��� � �EªUV � SUT�ª��X±�S���®V¯X�aª nz�B ( � ��� � ���#� U�JO[ (T£ ��� � � �³� � ���#� i�RPDGF�J � ¥�� �Z� �x�!IaJ�°�����Oi�NP?qU�bKb;RSdAh�F�NBf?�=@Y*F�[ycAd}� ������� i ������� �pU�=PF,JG?�JXv�[GFh�FJO[XF�J5RxRSdAh�F�N�n

�On �rNPIaJOL¦� � , � ��i ������� �ji�txF~C�U�J Bf?�=PY RPDOF¬[XF�h`F�JO[XFJ5R�hG=@?�h�?�NPI_R@Ia?�JOU�b�RSdAh�F-3���� * . �Bf?�= *�� � , � ��i �x� �����#� nqopDOIKN IQN�R@? c�F©=PF U�[ U�N U ¯�T � »UW�c[jª�����¼ � ¯OªUT�V � WEº�±�S���¹®�¯X�Kª npopDGIKNy­5WOU�J5R@I_^`C�U�R@Ia?�J«C�U�J U�bKNP?�=EU�JGL�F]?�\�F=MDGIaL�DGF=M?�=E[XF=y[X?�YZU�IKJON�iTbKIaH�F�IKJ3�9*� *�¡ *�¡ ������� . �xnz�B ( � * � � , � �sU�J`[ (T£ �;� * � � � � ���#� i%RPDOFJ�I_R �Eª�T DOU�hOh`F�J�R@DOU�R��;¥�� �Z� ���,IKJ°�����On

��Fk[G?sJG?�R�[XFj^OJOF�Bf?�=@YZU�b.IKJ5RPF=@hG=@FjREU�RPIK?�J`NpBf=P?�Y �����«RP?w°����ZU�JO[qc`U�CEH�n`¾AF�F�F�n LOn�pU�=@FJO[G=PF�L�R ����������ABf?�=>[XFR@U�IKbQNn�z JON�RPF U�[%i�tuFpY*?�R@Ia\�U�R@FpRPDGFeIKJ5RPF�=PhG=@FjREU�R@Ia?�JkcAdkNP?�Y*F��mNPWGL�vL�F NSR@Ia\�F �>FjlGU�Y*hGbKF�N�n5opDOFJMtxF![GIKN@CjWON@NuRPDGF�YZU�IKJMU�N@NPFjR@Nu?�B�RPDGF�IaJ5R@F=@hG=PFR@U�RPIK?�JMU�JO[ZY*?�R@I_v\�U�R@F�I_RENeCj?�Y*hGbKFjR@FJGF NPN�n

�G?�=,UZL�?5?X[]=@F�U�[XIKJGLs?�B�R@DGFVFjlGU�Y*hGbKF�N!c`F�ba?�t�i�txF�=PF CU�bab;RPDGF�JG?�REU�R@Ia?�JOU�b{Cj?�J5\�FJ5RPIK?�J`NIKJ�R@=P?X[XW`CjF�[�IKJ �Gn �X� � � �y[XFJO?�RPF N}�P�5� �X� �j��ixN�? � U�hGhGbKIKF�[�RP? �~U�J`[�RPDOU�RsRP?�L�FjR@DGF=U�hOhGbaIKF�[�R@?��#n$ �?�=@F?�\�F�=�i�U�hGhGbKIKC�U�RPIK?�J,cGIKJO[GN4N�RP=@?�JGL`ijN�? � � �¡ � � �4[GFJG?�RPF�NT�5� � �j�P¡��5� � ��U�J`[ ° ��� � �0� . � [XF�JG?�R@F�N]° �;���5� � �j� . ��n | NyWONPWOU�b"ixU�=P=@?�t U�N@N�?XCIKU�RPF]R@?~R@DGF�=@IKL�D5R�ieNP?*�¡ *�¡ ������� [XFJO?�RPF N *�¡ � *,¡ �����#� ��n

��� ��� ����� ����� G ���n%z  �� � , � ��£�&G� z  k£ ��� z  �¡�z  �¡ � ���#� ��° �;� z   . � � &��`z  ,¡ �����#� n.�1F=@FVtuF*N�F�FkR@DGF*WONPFV?�B

°Xv U�c`NSR@=@U�C�RPIK?�JwRP?Z[XF^OJGF�hG=@F�[GIKC�U�RPF Nn�Gn%z  �� � , � ��£�&G� z  k£ � � z  �¡�z   � 3�9*� z  ,¡ ������� .Q� 9 &5�P¡

� 3���� z   .K��9 ��¡-9Z� � �����P�P¡-3!�;� z   . 9 �]� ������� .opDGIQN>IQN{RPDGFpBf?�=PY�WGbQU�Bf?�=>IKJO[XWOCjRPIK?�J*te=@I_RPRPFJs[G?�teJ�IKJM°������U�N�U�RPF=@Y³?�B`RSdAh�F ������� n

�On *�� � , � ��£��V� *�¡ *�¡ � ���#� ��3!��£� �£ �`� * . � �� O¡ � ��X¡ � � ��� ������� ne�mo;=@U�JONPI_R@Ia\AIaRSd�?�B���

�`n *�� � , � � �w°��V£�:*� *�¡ *�¡ ������� . 3!�;£/ �� * . � �� G¡-: �� M�� *,¡ *,¡ �����#� �P¡�� *�¡ *,¡ ������� �@¡ �����#� n��fz JOCbaW`N�IK?�Jq?�B4=PF�bKU�RPIK?�JONE�

Gn *�� � , � � �w° ��£� �� * . 39*� *,¡ �����#� .K��9 ��¡�9 X�x��*�¡ *�¡ � ���#� nopDGIQN�IKNe² ��FIKcGJGIKgeF�­5WOU�bKIaRSd�´�U�JO[VIKN>WON�W`U�bKbadk[GFJG?�RPF�[VcAd*§��ui�Y*FJ5R@Ia?�JGIaJOL,RPDGF1[X?�YZU�IKJRSdAh`F�FlAhObaIQCjIaRPbKd�n

�On *�� � , � ��£ �;£/ �� * �w° �A��� �y§�� X� . °?9*� *�¡ � ���#� . �X�"° �`� * . 9 �A¡%9 ���j�"° A� 9 ��. ��x�� �y§�� G�P¡�� *§�� ���jnOopDGF�hG=@?A?�B;?�B�R@DGF,BmU�CjReRPDOU�R �.FIKcGJGIKg�F�­5WOU�baIaRSdsIQNeN�dAY*Y*FjR@=PIQC�n

Page 40: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{�������������WON�ReU�NxIaJ���� �riAI_ReIQNuh�?�N@NPIacGbKF!RP?Z[XFj^`JGFrR@DGF,?�=E[XIKJOU�=@dZCj?�JOJGF�CjRPIK\�F�N��*i �xi � i &�U�J`[

�wIaJ�°����XnO�G?�= �x£ �r� ������� iO[GFj^OJGF

��� � ��§ 3 � � � ���#� .Q� �>¡ �p¡ � �@¡ � £��� � ��§ 3 � � � ���#� .Q� �>¡ � �@¡�� �p¡ � �@¡ � £

� ��§ 3 � � � ���#� . � £& � ��§ �>¡ � £

�0�;� * . � ��§ 3 � � � ���#� .Q� 3!�;� * .Q� �>¡ � �P�P¡ � .

o;?*Bf?�=@Y�R@DGF�NPF�hG=@?�h�?�NPI_R@Ia?�JON���R@F=@YZN1?�B{RSdAh�F � ���#� ��iORPDGFk=PWGbKF�Nk� ������� i � ���#� ���fBf?�=!U�bab.RPDGFU�=@=@?�t1N@�TU�JO[�� � , � ��i ������� �,�fBf?�=1U�bKb%R@DGF�3ev"RSdAh`F N@�xU�=@F,WONPF�[%n

opDGFwbK?�L�IKC�U�bu=PWGbKF�NkBf?�=�RPDOF�NPFyC?�JGJGF C�R@Ia\�F�NVCU�J~c`Fq[XF=@IK\�F�[.n4�O?�=VFjlGU�Y*hGbKF�i4Bf?�= ��� �ritxFMDOU#\�FZRPF�=PYZN � � �x� ��� �p�P¡ � U�JO[ � � �p� ��� �x�P¡�� �fRPDGFyhG=@? SF C�RPIK?�J`N@��U�JO[�U�RPF=@Y� ��£ ���,� ��¡ �e¡ � ��� �p�V��RPDOFVh`U�IK=PIKJGLqCj?�J`NSR@=PWOCjRP?�=E�jn ¶ JOFVC�U�J}F U�NPIabKd]\�F�=PIaBfdqRPD`U�R�I_BxtuFR@U�H�F

� � ��§ ° ,;�K� ��� �x� . , �p�"° �;� � .�°� �� ��. ����£� � ��§ ° ,;�K� ��� �x� . , ���9° ��� � .�°# �� � . X�j£

� ��£ ��� ��§ ° �;� � .�°� �� � .�° � � ������� .�° ����� �>¡��p¡ � � . � �� �£

RPDOFJVRPDGF N�FpR@F=@YZN>U�=@Fu?�B`R@DGFe=@IaL�D�R{RSdAh�F�n��rFJOCFpRPDGF1IKJ5RP=@?X[XWOC�R@Ia?�JVU�JO[VFbKIaY*IKJOU�R@Ia?�J�=@WGbKF�NBf?�=1RPDGFkC?�JGJOF�C�R@Ia\�F��¦U�=PF�[GFj^OJOU�cGbKF�nOopDGF�dyU�bKNP?*DOU#\�F,R@DGFkC?�=@=PF C�Re=PF [XWOCjRPIK?�Jqc`F�DOU#\AIa?�=�iCj?�=P=@F�NPh�?�JO[XIKJGL�RP?ZCjWGR�v�FbKIaY*IKJOU�R@Ia?�JyIKJyRPDGF�bK?�L�IKC��

� � � " � £ " � � ¡ ¡ � " � £� � � " � £ " � � ¡ ¡ � " � .

¾AIaY*IKbKU�=PbKdsBf?�=eRPDOF�?�R@DGF=rC?�JGJOF�C�R@Ia\�F�N�iARPDGFkIaJ5RP=@?X[XWOCjRPIK?�J]U�JO[yF�baIKY*IaJOU�RPIK?�J]=@WGbKF�NeCU�Jqc`F[XF^OJGF�[.n

 1?�R@F>R@DOU�R4?�J�R@DGF � , � �TbKF\�Fb"iIaR4IQN.JO?�R{h`?5NPNPIacObaF�R@?![XF^OJGFx[GU�REUeRSdAh`F Ni bKIaH�F>RPDOFThG=@?X[XWOC�RRSdAh`F�n | hG=@?X[XWOCjRkRSdAh`FyIQNkF ­�WOIa\�U�bKFJ5RVRP?}RPDGFqCj?�J SWGJOCjRPIK?�J ������i{cGWXRVRPDOFyC?�JON�RP=@WOC�R@Ia?�JU�c�?�\�F!Bf?�=!��CU�Jw?�JGbKdsc`F�[G?�JGF�U�ReR@DGF ������� baF�\�Fb"n

� S���®V¯X�aªg[�¹�ªg[�¹wV"¼@��W�[>±�S���· � ' ·ZWj� S��PºGWj�p���ÒWEº � �EªUVwWk��S�' � �opDGFVBf?�=@YkWObKU�NSv U�N�v9RSdAh�F�NrIaJ5RPF�=PhO=PFR@U�R@Ia?�J�Bf=@?�Y DGIKL�DOF=,?�=E[XF=�hG=@F�[XIQCU�RPF*bK?�L�IQC ����� IaJ5RP?°� � ��YZU�hONxU�Bf?�=PY�WGbKU�RP?*U�RSdAh�F�U�JO[sUk[GF=@Ia\�U�R@Ia?�J}�fIKJMJ`U�RPWO=@U�b�[XF [XWOCjRPIK?�J`�T?�B.Bf?�=PY�WGbQU��R@?ZUVRSd5h�F�[]°Gv9R@F=@Y �f?�B;R@DGF,RSdAh`F�U�NPNP?XCjIQU�R@F�[steIaRPD �����

5

��¡ � � 5 � ������ �p��

Page 41: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � �

teDGF=@F �� �r��p[GFJG?�RPF�NkRPDOFMIKJ�R@F=@hG=@FjR@U�RPIK?�J�?�BeBf?�=@YkWGbQU�N�U�N�RSdAh�F�N�U�JO[ � ����� �p[XF�JG?�R@F�N�RPDGFIKJ�R@F=@hG=@FjR@U�RPIK?�J�?�Be[XF=@IK\#U�RPIK?�JON,U�Nk°Xv"RPF�=PYZN�n%z J�U][XF=@Ia\�U�RPIK?�J.i%txF*WON�FZFlXhG=PF NPNPIK?�JON!Bf=@?�YRPDOFZba?�L�IQCU�b{bQU�JGL�WOU�L�Fy�mF�n LOn%R@?]IaJ`NSREU�J5RPIQU�R@F�R@DGF"�%�ji%teDGIQCED�YZU#d}C?�J5R@U�IaJ�Bf=@FF*\�U�=@IKU�cGbaF NiCj?�JON�R@U�J5REN�U�JO[�[X?�YZU�IaJONZ�mF�n LOn%IKJ��{�9° ��� * . ����jn�z J�RSdAh`F*R@DGF?�=Pd�i%IaJ�?�=E[XF�=!R@?]YZU�H�FZNPWG=@FRPD`U�RsU�bKbpRPF�=PYZNZU�=@FytuF�babav9RSdAh�F�[%i4R@DGF]cOU�NPIQCMIaRPF�Y*N]�mbaIKH�Fq\�U�=@IQU�cGbKF�N*U�J`[~[X?�Y*U�IaJ`N@��DOU#\�FRP?qc�FZ[XF�CbKU�=PF [�FjlXhGbKIQCjIaRPbKd�IaJ�RPDOF*C?�J5RPFlAR�n | bQN�?`i.Uw[GF=@Ia\�U�R@Ia?�J}teIKbab�IKJ�L�FJOF=EU�b�Cj?�J�REU�IKJJG?�JXv�[GIKN@CEDOU�=@L�F [qU�N@N�WGY*hXR@Ia?�JONk� � � £ . . .�£ � �G�pR@DOU�R,teIKbab{U�hGh�F�U�=!U�Nr\�U�=@IQU�cGbKFk[XF CjbQU�=EU�RPIK?�J`N� � � ��� � £ . . .j£ � �w��� �O�xIKJyRPDGF,RSdAh�F!R@DGF?�=PFRPIQC�Cj?�J�R@FjlAR�nO¾X?�R@DGF�L�F�JGF=EU�b�hGIQC�R@WG=@F�IKNxR@DGIKN�n

� � . . . � �5

�¡ ( � £ � � ��� � £ . . .£ � �s��� �� � � 5 � ������ �x�� £

teDGF=@F ( � IQN�RPDOFVC?�J5RPFl5R,R@DOU�R�[XF�CbKU�=PF N,U�bKb{[G?�YZU�IKJON�i�C?�JON�R@U�J5R@N�U�JO[}Bf=PF�F�\�U�=PIQU�cGbKF�NRPD`U�R1?XCCWG=eIaJ 5!n

| N�U�J]FjlGU�YVhObaF�txF�R@=PF U�R1R@DGF�[GF=@Ia\�U�R@Ia?�J]?�B>IK=P=@F �`FjlXIa\AIaRSdsBf=@?�Y U�J5R@I_v N�dAY*Y*FjR@=PdMBf?�=!U=@FbQU�RPIK?�J �Vn{opDGFM[XF�=PIK\�U�RPIK?�J�IQNkU�N,Bf?�bKbK?�t1Nnx� ( [XF�JG?�R@F�N ��� � � � �� � �� 0� � � i ( �[XF�JG?�R@F�N (>£+� � ��n��

( � � ��� � � � �� � �� 0� � �( � � � � � �� � �� 0� � �( � � � � � � ��?� � � ( � � � �?�

( � � ��?� � � ( � � � �?�( � � �

(�� � � � � �(�� �2� � . � � � � �

opDGIQNx[XF=@Ia\�U�RPIK?�JsIQNTYZU�hGh`F [ZR@?�RPDOFrRSdAh�F�[w°Gv"RPF=@Y�° ��� * .�° ��!� �?�/. � �?�? AnXopDGIQNTR@F=@Y©IKNtxFbKb_v"RSdAh`F [�IKJ�RPDOF*C?�J5RPFlAR+*¨� � , � ��£�� � *,¡ *,¡ ������� £ �]�?3���£� �� * .K�0��� O¡ �� 0��¡ � ��idAIaF�bK[GIaJGL,R@DGFeBf?�babK?�teIaJOL SW`[XL�Y*FJ5R i�[XF=@IK\#U�cGbKFeIaJs°� � ��IaB%tuFpREU�H�FuBf?�=�(yRPDOF1Cj?�J5R@FjlAR�(}§< *k� � , � ��£+�V� *�¡ *,¡ ������� £ �O� 3!�;£/ �� * .K�0� �� O¡ � 0�%¡ � � A�n

(��y° ��� *!°?A���5� � ��� . � �?�? V�`��3!��� * . � � �%¡ � � .

opDGF�Cj?�J�R@FjlAR ( � DGF�=PF�Cj?�JONPIKN�R@Np?�B * � � , � ��£+� �`� *�¡ *�¡ � ���#� ��n 1?�t ?�JGFkY*U#dytx?�JO[XF�=1IaB�RPDGFkRSd5h�F�NPdXNSR@FY °�����ZIQN1=@F�U�babKdwBmU�IaRPDXBfWGb;RP?MDGIaL�DGF=!?�=E[XF=

hG=@F�[XIQCU�RPFyba?�L�IQC �����1n><TWXRs[XI_µ�F=@FJ5R@bad�i�?�JGFqCU�J�U�N�H�R@DGF]­�WOF�N�RPIK?�J~?�B �cS�®r���«W�VwW�T§Wz[c[ �L�IK\�F�J~U�hO=P?�h`?5N�IaRPIK?�J�?�B ��� ��N�W`CED�RPDOU�R (

�� � � �� ����1IKJ�°� � �Xi4IQN � [XF=@Ia\�U�cGbaFyIKJ

��� � ��z�RwR@WG=@JONy?�WXRyRPDOU�RwR@DGIQNqIKNMRPDGF�C�U�NPF�n�(>\�F�J�RPDO?�WGL�D RPDOF�JAWGY�c`F�=y?�Bk=@WGbaF NM?�B°� � �VIQNebKIaY*IaRPF [��fteDGF�=PF�?�JGF�=PWObaF�NPF=@\�F NeN�F�\�F=EU�b%[XIaµ�F=@FJ5R1hGWG=@h`?5N�F NiOF�n LOnXR@DGFM�9°���v�=@WGbaFU�bKbK?�t1N�RP?qBf?�=@Y c�?�R@D�BfWGJOCjRPIK?�JON�i�hG=@?A?�BmN,?�BeU�J�IaY*hGbKIKC�U�R@Ia?�J�U�JO[�hG=@?5?�BmN�?�BeUqWGJGIK\�F�=@N@U�b

Page 42: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{�����������­5WOU�J5R@I_^`C�U�R@Ia?�J`�xU�JO[wRPDOF=@F�N�F�FYZNxRP?Zc�F�DOU�=E[XbKdMU�JAdM[GIKN�RPIKJOC�R@Ia?�JqIaJyRP=@F�U�RPY*FJ5R1c�FjRStxFF�JRPDOFMhG=@?�h�?�NPI_R@Ia?�JONs�fRPF=@YZN�?�BxRSdAh�F ������� ��U�JO[�R@DGFMNPFjRENM��R@F=@YZNk?�BxRSdAh�F � , � � �ji�txFMCU�JCj?�Y*hGbaFRPF�bad º � [ª�® � � '�¯OªUVwW RPDGF�NPdAJ�REU�l%nGopDGIQNpIKNrNSREU�RPF [McAdMRPDGF,Bf?�babK?�teIaJOL ��FY*YZUGn

��� ��� ��� � �5��� �!IQNPU�YkcGIKL�WOU�RPIK?�J1�.F�YVYZU5��n��p� »UW�T«ª � ¯Oº '�®AWYTZV ( � � ��* � T °� � ���Vf·�W�ÒW � [kª °����� ¹��cSUT�VXW��GV ( ) £�( �4£ (�� [�¯O�@·,V�·OªUV$" (�)�£ ( � £�( � � [kª h�F=@YkWXREU�RPIK?�J S�± (�!#" (�)�£ ( � £�( � � � �*��" (�) �cSUTZ[ � [cV\[ SUT`��¼9SS±kºGWE�j�aª��PªUV � SUTZ[ * � � , � �� " ( � �cSUTZ[ � [cV\[ SUTO�_¼JSS±�ºGW@��aª��PªUV � SUTZ[ �]�* ��� Vf· (�) � * � � , � ����" (�� �cSUTZ[ � [cV\[ SUT`��¼9SS±kºGWE�j�aª��PªUV � SUTZ[ �Z��� ��� Vf· ( ) £ ( � ���¬� ������� "� S��ÒWcS�»gW� Vf·�Wu±�S�����S ��� T#']ª���W Vf·�WV�Eªg[YW "� 0 ± ( � * � � , � �� Vf·�WYT (�) � * � � , � � ªUT�º * � � � ¡������E¡�� ���Q¢ � ��� ª�T�º(�) � ����� � , � � ±�S��kª������ "

� 0 ± (�� � �* � ·ZWj�ÒW ( � * � � , � �� Vf·�WYT (�)�£�( � � � �* "� 0 ± ( � 3���� * . ��� � ���#� � ·ZWj�ÒW ( �)* � � ���#� � Vf·�WYT � ¥�� �Z� ����� ªUT�º [YS 3!�;� * . ���*�¡-��� ��W����ÒWz[YWYTZV � T#'yªZ�ÒWEª�� � ®1��� � �EªUV � SUT � "

opDGF �rIQN@U�YkcOIaL�WOU�R@Ia?�J �.F�Y*Y*U =@F�U�babKd³N�R@U�R@F�N�R@DOU�R¬°���� =@FhO=PF N�F�J�REN ��� � \�F�=PdCjbK?�NPFbKd�n. r?�R@F*RPDOU�R�I_RkN@U#dXN � U�Y*?�JOLM?�R@DGF=�RPDGIKJGL�NS�«RPDOU�R�hG=P?A?�B�v9R@F=@Y*N*�fRPF=@YZN � teIaRPD� � �¬Bf?�=�N�?�Y*F ��� ������� �1[G?MJG?�R!?XCCWG=rIKJ]?�c SF C�RPv9R@F=@Y*N���R@F=@Y*N " � *³teI_R@D]Bf?�=�N�?�YVF* � � , � � ��n �rNPIaJOLZRPDGF+�.FY*YZUGiO?�JGF�C�U�J�[XF^OJGFkU*YZU�hOhGIaJOLZcOU�CEHMBf=P?�Y °� � ��R@? ��� �RPD`U�RZCj?�J`NSR@=PWOCjR@NVU}[XF�=PIK\�U�R@Ia?�J�?�WXRV?�B!U}hG=@?5?�B�v9R@F=@Yqn0�.FR*U �¦teIaRPD ( � � � �����#� c`FL�IK\�F�J.n

(�� � �$��¡

� � . . . � �� � ��

�1F=@F�R@DGF � � . . . � � U�=@F�Cj?�YVhOWXRPF [yBf=P?�Y (TiGWONPIaJGL �.FY*YZU �Gn ����iGIKJ�N�WOCED�U*tpU#dsR@DOU�R(���§ � � ��� � £ . . .j£ � � ��� � n

opDGFrYZU�hOhGIaJOL�cOU�CEHkBf=P?�Y½°�����,R@? ��� ��hO=P?A?�BmN>RPDGF�Cj?�YVhObaFRPFJOF�N@N>?�B�R@DGF1Bf?�=PY�WGbKU�NSvU�N�v"RSd5h�F�N>IaJ5RPF�=PhO=PFR@U�R@Ia?�J.��IaB (�� � ���xi�R@DGFJ���IQN>[XF�=PIK\�U�cGbKF1IKJ���� ��Bf=@?�Y³RPDGF�U�N@N�WGY*hXvRPIK?�J`NpbaIQNSR@F�[yIKJ)( � n

� ¼@��W9R�·�WE�@¸ � T#'| J IKYVh�?�=PR@U�J5RwhG=@?�h�F=PRSd«?�B�U~RSdAh`F�N�dXN�RPF�Y IKN �cS�®r��¯�V ª�� � � � V"¼�S�±µV"¼@�ZWz[ ipI9n F�neL�Ia\�FJ (U�J`[ � C?�Y*hGWXR@F}U�J * Bf?�=steDGIQCED ( � � � * DG?�bQ[GN�iuU�J`[¬IaB�RPDOF=@F�IKNsJG?~NPWOCED *�i=@FjRPWO=PJ«² BmU�bQN�F�´an{opDGIQNkIQN�WON�W`U�bKbad�CU�babKF�[�R@DGF V"¼@�ZWJ[E¼UT�V�·ZWz[ � [,���ÒS����W® ��� � & ?�=kRPDGF V"¼@��W� T�±�W�ÒWYT��cWx���ÒS����W® nXz JMRPDGIQNe¾AF�CjRPIK?�J.iXU�RSd5h�F,N�dAJ5RPDGF N�IQNpU�bKL�?�=PIaRPDGY¦Bf?�=xR@DGF�NPdXNSR@FY½°� � �IQNuL�Ia\�FJ.i5teDGIQCEDsIQNx­5WGIaRPF�=@FY*IaJOIKN@CjF�J�RxBf?�=uRSdAh`F,NPd5J5R@DGF�NPIKNxU�bKL�?�=PIaRPDOY*NTIaJwL�F�JGF=EU�b"n5�xFBf?�=@F[XIQNPCWON@N�IKJGL�RPDGF][XFR@U�IKbQN�txFycG=PIKF �`d�=PF CU�hOI_R@WGbKU�RPFqN�?�Y*FwL�FJGF�=@U�baIaRPIKF�N�?�J¬RSdAh`F]NPd5J5R@DGF�NPIKNU�J`[sRSdAh�F�CEDGF�CEHAIKJGLOnO¾AF�F�U�bQN�?s¾AF C�RPIK?�J`N �Xn �Xi��Xn �Gn

Page 43: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � &

| hO=P?�cGbaF�Y¨=PF�bKU�RPF [ZRP?�RSdAh`F�NPdAJ�R@DGF�NPIQNuIQN ºuWE� � º�ª%� � � � V"¼ S�±�V9¼@� � T#' iGI9n F�nAL�Ia\�FJ (Ti � U�J`[*�i�[XF CjIQ[XFxteDGFjR@DGF= (�� � �*¬DG?�bK[GN�n�opDGIQN�IQN4WON�W`U�bKbad�CU�babKF�[�RPDGF V"¼@��W!�@·ZW@�E¸ � T#'x���ÒS����W® �� R & n��x?�RPD�hG=@?�cGbKFYZN�U�=PFu\�F�=Pd,YkW`CED�=PF�bKU�RPF [%i�c�F�C�U�WONPFxIaJkRPDGFxhG=@?ACF�N@N.?�BGRSdAh`FpCEDGF�CEHAIKJGLOi?�JOF>DOU�N�RP?�N�?�ba\�F{RSdAh`FxN�dAJ5RPDGF N�IQN;hG=P?�cGbKFYZN�U�N.txFbKb9��Bf?�=;FjlGU�Y*hGbKF>teDGF�J �@·ZWE�@¸ � T#' teDGFjR@DGF=� � �ViX?�JOF�D`U�NuRP?q� T�±�W� U�RSdAh�F!Bf?�= �iGN@U#d *�iGU�J`[wU�RSdAh`F�Bf?�= ��iGN@U#d �]iGU�JO[sR@DGFJRP?�CEDOF�CEH�teDGFRPDGF�=ZBf?�=sNP?�Y*FD�si � § ��3!�;� * . � teI_R@DF� � � �k§ � �VnTz�RMNPDG?�WGbQ[¬c`FCjbKF�U�=kBf=@?�Y R@DGIQNZCU�NPFsR@DOU�R*RSdAh�FqNPdAJ5RPDGF N�IQN�U�JO[�RSdAh�F]CEDGF�CEHAIKJGL�U�=PFyCjbK?�NPFbKd�FJ5RSteIaJOF�[%n�9¾XFF!¾AF C�R@Ia?�J��Xn �,Bf?�=TU�JZFjlARPF�JO[XF [*FjlGU�Y*hGbKF�n���opDGF�Cj=@WOCjIQU�bOU�baL�?�=@I_R@DGY R@?kCj?�JON�RP=@WOC�R>IQNTU�JU�bKL�?�=PIaRPDOY½oTdAh�F � �r�jiXRPD`U�ReR@U�H�F NeUVC?�J5RPFlAR (�U�JO[qUkR@F=@Y � N�WOCEDwRPD`U�R

oud5h�F��.� � �T§ � * � (�� � ��* .

�1F�JOCjF�iG?�JOF�teIKbKb.JGFF [qU�JqU�bKL�?�=@IaRPDGY©Bf?�= � ¹�W � ¯Oª�� � V9¼y�@·ZW@�E¸ � T#' RP?s[XF CjIQ[XF�RSdAhGIaJOLOnopDGF=@F>U�=@F{RStu?pIKY*h`?�=�REU�J5R�hG=@?�h�F=PRPIKF�N�R@DOU�R;NP?�bK\�F4R@DGFT[XF CjIQ[GU�cGIKbKI_RSd�?�B��%v�F�­5WOU�bKIaRSd!CEDGF CEH�v

IKJGLO�G�u?�J �`WGFJOCFrBf?�= �.v"=@F�[XW`C�RPIK?�JwU�JO[y¾5RP=@?�JGL� 1?�=@YZU�bKIag U�R@Ia?�JZBf?�= �%v�=PF [XWOC�R@Ia?�J.n��mopDGIQNxIKNUwtuF�babav"HAJG?�teJ�BmU�C�R,Bf=@?�Y =@Fte=@I_R@IaJOLO��I_BpUy=PF�te=PIaRPIKJGLM=@FbQU�R@Ia?�J}IQN,Cj?�J �OWGFJ5R�U�J`[}N�RP=@?�JGL�badJG?�=PYZU�bKIKgIKJGLOi RPDOFJVRPDGFeIKJO[XW`CjF�[VF ­�W`U�bKI_RSd�=@FbQU�R@Ia?�J�IQN�[XF�CIK[OU�cGbKF��#R@?,[GFjRPF�=PY*IKJGF � § � �i?�JOF�=@F�[GWOCjF N � U�J`[ RP?ZJO?�=@Y*U�b�Bf?�=@Y U�J`[wC?�Y*hOU�=@F�NuR@DGF�NPF�JG?�=@YZU�b�Bf?�=@YZNn��

��� � ����� ��� ��� y������ � �u?�J �OWGF�JOCjF#��n�� T¬V�·ZW [YWYV SS±q��[YWj¯OºGSUVwWj��® [ � � � ¹ ��W@º�¯O��V � SUT � [Cj?�J �OWGF�J5R�� " W " ±�S��Vª���� � £ � £ � ¥ � �T� ± � ¡ ¡ � � ª�T�º � ¡ ¡ � � � V�·ZW�T V�·ZWj��W W�� � [cV\[ª 9*¥ �º[E¯O�E· Vf·Gª�V � ¡ ¡ � 9 ªUT�º � ¡ ¡ � 9 "

�u?�J �OWOFJOCFZBf?�=1� CU�J�c�FshG=@?�\�F [�c5d�Bf?�bKbK?�teIaJGLqR@DGFMtxFbKbav"HAJG?�teJ�hG=@?5?�BmN�Bf?�=kCj?�J �OWXvFJ`CjFVBf?�=�RPDOFVWOJ�RSdAh�F�[�°Gv�C�U�bQCjWGbKWON�n | JG?�R@DGF=�IKY*h`?�=�REU�J5R�hG=@?�h�F=PRSdy?�Bp°����wIQN�¾AWGc SF C�R�eF [XWOC�R@Ia?�J.n

��� � ����� ��� ��� y������ � ¾XWGc SF�CjR �eF�[GWOC�R@Ia?�J`��n � ·ZW [�WYV²S�±���W '5ª���VwW��® [ SS±kª1' � »UWYTµV"¼@��W � [���Sg[YWEºy¯�T�ºGWj���ÒWEº�¯O�YV � S�T " � ·OªUV � [ � ±�S�� ( ªq��S�TZVwW��GVrª�T�º � £ � * � T � �p� ± ( � � ��*ªUT�º � ¡ ¡��� � Vf·�WYT (�� ��* "

¾AFF�¾AF�CjRPIK?�J �Xn ��Bf?�=qU�[XIQNPCWON@N�IK?�J ?�J ¾XWGc SF�CjR �eF�[XW`C�RPIK?�J U�JO[ ¾AF C�RPIK?�J �Gn ��Bf?�=qUbKIKN�R�?�BxhG=P?�h`F�=�R@IaF N�Bf?�=�°� � ���9U�Y*?�JGLqteDGIQCED�¾AWGc SF C�R �eF [XWOC�R@Ia?�J`��n;opDGF*Bf?�bKba?�teIKJGLyIKN�UCj?�JONPF�­5WGFJ`CjF,?�B{Cj?�J �OWGFJ`CjF,?�J � U�JO[q¾AWGc SF�C�R �1F�[XWOCjRPIK?�J.n

��� � �� � �� �� u���� � �u?�J �OWGFJ`CjF,?�JqbKFL�U�b�RPF=@YZN@�jn�� T Vf·�W�[�WYVES�±p��W '�ª��ZVwWj��® [�SS± °� � ���� ¹ �ÒWEº�¯O��V � SUT � [*�cS�T �x¯ZW�T�V " � ·OªUV � [ � ±�S�� � �«W '5ª�� �x� ± � ¡ ¡�� � ª�T�º � ¡ ¡ � � � V�·ZW�TVf·�W�ÒWAW�� � [zV�[�ªw��W '5ª��EVXW��® 9 [�¯O�@·½Vf·GªUV � ¡ ¡ � 9 ªUT�º � ¡ ¡ �.9 " � S��ÒWcS�»gW� �� � ª�T�º � ª��ÒWk��W '5ª�� "

��� � ����� ��� ��� y������ � ¾ARP=@?�JGLZ 1?�=PYZU�baIKg�U�RPIK?�J`�jn � S��eª�TO¼�VwWj��® � �«W '5ª�� � T °������� Vf·�W�ÒWª���W TIS � T T � VXW � ¹ �ÒWEº�¯O�YV � S�Tq�OªUVf·;[ [cV ª��zV � T#'k±E�ÒS�® � " � & ¯�V!º � W�ÒWYTZV"��¼�eª����T�ÒWEº�¯O�YV � S�T�[[zV�ª��zV � T�'r±E��S�® ªZ��W '5ª���VwW��®±VwWj��® � T�ª�VXW " �

opDGFMhG=@?A?�Be?�BpR@DGIKNV<>=@?�h�?�NPIaRPIK?�J�IKN�=EU�RPDOF=�C?�Y*hGbKIKC�U�R@F�[%n{¾AFFy�xU�=PF�JO[X=@FL�R � �$�%�����>Bf?�==@FjBfF=@FJ`CjF�NuR@?ZhG=P?A?�BmNn

Page 44: Proof-Assistants Using Dependent Type Systems

��� À��GÄ.�������������������� À��;Ï{�����������opDGF V"¼@��W�[�¼UT�V�·ZWz[ � [,ª�� ';S�� � Vf·A® oud5h�F ���r�>U�R�RPF�Y*hXR@NTRP?VU�hGhGbKd�RPDGFrRSd5hOIaJGLk=PWGbKF�NuIKJ*RPDGF

=@F\�F�=@NPF�[GIa=@F�CjRPIK?�J.n%�G?�=,FjlGU�Y*hGbKF�i%Cj?�Y*hGWXRPIKJGL]oud5h�F ���"° �;� * . � �rIQN,[X?�JOFVcAd�C?�Y*hGWXR@IaJGLoud5h�F�� � � � � � � ��i;U�JO[�IaBxR@DGIQN�dAIaF�bK[GN �Mi;C?�Y*hGWXR@IaJGL�oudAh`F���� 3���� * . ���jn.z�BpRPDGIQN�=@FjRPWO=PJON�U��¥�< ������� £ � , � � A�i`RPDGF�J�tuFk=PFRPWG=@J 3!�;� * . � U�Nr=PF N�WOb_Rr?�BToTdAh�F ���"° �;� * . � �jn�¾X?OiOtxFk=@F�U�[RPDOFs�9°���v�=PWGbKF�IKJwR@DGF�=@F\�F�=@NPF![GIa=@F�CjRPIK?�J.n

opDGF=@FrIQNuUkh`?�RPF�J�R@IKU�b�hG=P?�cGbKFY©IaJMRPDGIQNutxU#d*?�B�C?�JON�RP=@WOCjRPIKJGL�R@DGF�oudAh`F � �r�uU�bKL�?�=@IaRPDGYcAdq=PF�\�F=ENPIaJGLVR@DGFk=@WGbKF�N���UsC?�JOCbaW`N�IK?�J ( ��° ��� * . � � �¨JGFF []JG?�R!DOU#\�F�c�FF�J�?�cGR@U�IKJGF [Bf=@?�Y RPDOFy�"°`� v"=@WGbKF�n��fz�R�Cj?�WGbQ[}U�bQNP?sc`FZUwCj?�J`CjbKWON�IK?�J}?�B>R@DGFy�mtuF U�HG��v�=@WGbaF�?�=!RPDGF]�9Cj?�JA\G��v=@WGbaF�n�opDGIKN*NPI_R@WOU�R@Ia?�J�IQN�W`N�WOU�babKd�=@FjBfF=@=@F�[�R@?�U�N�R@DGF}² JG?�JXv�NPdAJ5R@U�lAv [XIK=PF C�RPF [XJGF NPN�´�?�BeRPDGF[XF�=PIK\�U�RPIK?�JV=@WGbaF Nn | NPFjR>?�B�[XF�=PIK\�U�RPIK?�JV=@WGbaF N{IKN�C�U�bKbaF [ [�¼UT�V�ª$��¹�º � �ÒWE��VwWEº IaBSi�L�Ia\�FJ�U,C?�J5RPFl5R(�U�J`[�UyRPF=@Y ��i ªUV,®ASU[zV ?�JGFZ=@WGbaFsC�U�J�DOU#\�F*U�N�Cj?�JOCjbKWONPIa?�J ( � � � � ��Bf?�=�N�?�YVF����n.¾AF�F�<{?�babQU�CEH ������ ��4U�JO[]\�U�J}�xF�J�R@DGFY���WXR�R@IaJOLMFjR�U�b"n��������� �.Bf?�=�Y*?�=@F�?�J�N�dAJ5R@U�l5v[XIK=PF C�R@F�[ NPFjRENM?�Bk=PWObaF NsBf?�=sRSdAh`F�NPdAN�RPF�YZNwU�JO[«RPDOFIK=yU�[X\�U�J5R@U�L�F�N�n���F�teIabKb�RP=@F�U�RMRPDGF�fh�?�R@FJ5RPIQU�b��;hG=@?�cGbKFY ?�B`JG?�JXv�NPdAJ5R@U�lAv [XIK=PF C�RPF [XJGF NPN�bKU�RPF={teDGF�J�txFp[XIKN@CjW`NPN4R@DGFeN�?�WGJO[XJGF NPNU�J`[wC?�Y*hGbKFjRPF�JGF�N@Np?�B4RPDOF�oTdAh�F � �r�pU�baL�?�=@I_R@DGYqn

| JG?�RPDGF�=!hOU�=�R�?�B�R@DGFVU�baL�?�=@I_R@DGY RPDOU�R!JGF�F�[GN�N�?�Y*F�NPh`F CjIQU�b{U�R�R@FJ5RPIK?�J}IKNrRPDGFV\�U�=@IKU�cGbKFCU�N�F�n`opDGFk=PF N�WGbaRr?�B�oudAh`F � � ���rNPDG?�WObK[qc�F * IaB ��� * ?XC�CjWG=EN1IKJ (�U�J`[�² BmU�bKNPF�´`?�R@DGF=@teIKNPF�n�xWXR�i#IaB�(MIQN;JG?�R{U1txFbKb_v"Bf?�=@Y*F�[�Cj?�J5RPFjlAR i�txFTtpU�J5R�R@?r=@FjR@WG=PJs² BmU�bKNPF�´#U�N;tuF�bab3$�¾A?rtxFTDOU#\�F�RP?CEDGF CEH�RPDGFetxFbKbav9Bf?�=PY*F�[GJGF�N@N4?�B�(>n | RSdAh�F1N�dAJ5RPDGF N�IQN�U�bKL�?�=PIaRPDOY Cj?�J`N�IQNSREN{?�B�RStu?,Y�WXRPWOU�babKd[XF�h`F�JO[XFJ5R�=@F�CjWO=@NPIa\�F>BfWGJ`C�RPIK?�J`N��oudAh`F � �r��i#R@DGFp=PF U�b5RSdAh`FeNPdAJ�R@DGF�NPIQN4U�baL�?�=@I_R@DGYqi�U�JO[�RPDGF�cSUT�VXW��GVu�@·ZWE�@¸ � T#'yª�� ';S�� � Vf·A® ¶ H�� �r��nGopDOF�bQU�RPRPF�=pR@U�H�F�NpU�NxIKJGhGWXR1U*Cj?�J5RPFjlAReU�JO[w=@FjRPWO=PJON² RP=@WGF�´GIaB�U�JO[w?�JGbKdsIaB;R@DGF�Cj?�J5RPFjlAR1IQNptuF�babav"Bf?�=@YVF [��9U�JO[}² BmU�bQN�F�´G?�R@DGF=@teIKNPF �jn

��� � ����� ���� y������ � ��Fu[XF^OJGF�R@DGFuU�baL�?�=@I_R@DGYZN ¶ H����r��i�R@U�H5IKJGL1U1C?�J5RPFlAR;U�JO[,=@FjR@WG=@JGIaJOL² RP=@WGF�´�?�=k² BmU�bKNPF�´Ki�U�JO[�oudAh`F � �r��i`R@U�HAIaJGLyUMC?�J5RPFl5R�U�JO[�UsRPF�=PY U�J`[]=PFRPWG=@JGIKJGLMUsRPF=@Y?�=,² BmU�bQNPF�´_i`U�NxBf?�bKbK?�t1NnG�rF=@F ��[GFJG?�RPF�NeU*\�U�=PIQU�cGbKF�n

¶ H%��� �r� § ² RP=@WGF�´O�fRPDGF�F�Y*hXRSdwC?�J5RPFl5R���£¶ H�� (>£E��� *!� § oud5h�F��.� *!�j¥�< ������� £ � , � ��£ � , � � � A�£oud5h�F��.� ��� § * �u¶ H�� (;� �-)�� ��� *�¥�( � � � ) * � ' ��² BmU�bKNPF�´K£

oudAh`F �.� ������� � § * �u¶ H�� (;� � � � ) � , � � � ' �,² BmU�bQN�F�´a£oTdAh�F � � � , � � � § * �u¶ H�� (;� � � � ) � , � � � �%' ��² BmU�bKNPF�´K£oTdAh�F � � � , � � � � § ² BmU�bQN�F�´a£oudAh`F �.� � }� § * � oTdAh�F��.� � �>§ � �-) � oudAh`F �.��}�>§ �

� � � ) * � � ¡ ¡ �B3���� * . � �-) � *�§ � �

� � � ) � � � ���%' �,² BmU�bKNPF�´� ' � ² BmU�bQN�F�´a£

oTdAh�F��.�"° �;� * . � � § * � oTdAh�F�� � ��� � � � �>§��

Page 45: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � �

� � � ) * � oud5h�F ����3!�;� * . �V��¥�< � ���#� £ � , � ��£ � , � � � A� � � ) 3���� * . � � ' ��² BmU�bKNPF�´

� ' �,² BmU�bQN�F�´a£oudAh`F �.� 3���� * . ��� § * � oTdAh�F��.� *��T§ � � �-)�� oud5h�F�� � � � � � ���u§ � �

�-)�� � � £ � � ¥�< ������� £ � , � ��£ � , � � � A� � � ) * � � � � £ � � �j¥�<�� � , � ��£ � , � ���j£�� � ���#� £ �����#� �j£

� � , � ��£ ������� �6A� � � ) � � � ' ��² BmU�bQN�F�´

� ' �,² BmU�bQN�F�´a£

opDGF,IaJ5RPWOI_R@Ia?�Jyc�FDOIaJO[MRPDOF,RSd5h�F�N�dAJ5RPDOF�NPIKNpU�bKL�?�=PIaRPDOY¨c`F�IaJGLsCbaF U�= iAtuF�txU�J5RxR@?*hG=P?�\�FRPD`U�R1IaR1IKNeNP?�WGJ`[yU�JO[yCj?�Y*hGbKFjR@F�nOopDOIKNpY*F�U�JONphG=@?�\AIaJGL�RPDOF,Bf?�bKba?�teIKJGLOn

��� � � ��� ���� y������ � opDGFpRSdAh�F1N�dAJ5RPDGF N�IQN�U�bKL�?�=PIaRPDOY oTdAh�F � �r�4IQN [YS�¯�T�º IaB�Bf?�=>U�bKb (]U�J`[��i

oTdAh�F��.� � �>§ * � (�� � �* .opDGF,RSdAh�F,NPdAJ5RPDGF N�IQNeU�bKL�?�=PIaRPDGY oTdAh�F � �r�uIQN �cS�®r����WYVwW IaB;Bf?�=1U�bKb (>i � U�JO[ *�i

(�� � ��* � oudAh`F �.� � �T§ � * .

 1?�R@FMR@DOU�RsC?�Y*hGbKFjRPF�JGF�N@N�?�B!oudAh`F � �r�kIaY*hGbKIaF NVRPDOU�RVIaB�oudAh`F � � � �Z§ ² BmU�bQNPF�´Ki;R@DGFJ� IKNeJO?�RpRSdAhOU�cGbKF�IKJ)(TnOopDGF�[XF^OJGIaRPIK?�J]?�B{C?�Y*hGbKFjRPF�JGF�N@Np?�JObadwY*U�H�F NeN�F�JON�F,IaB4txF�DOU#\�F¯�T ��� ¯ZWYTIW�[�[ SS± V9¼@�ZWz[ �

z�B (�� � �* U�JO[ (�� � � �s£xR@DGFJ *�§ �B� .

opDGIQNehG=@?�h�F=PRSdMDG?�bK[ONpBf?�=!°����Xn���IaRPDO?�WXRrWOJGIK­5WGF�JGF�N@N1?�B;RSdAh�F�N�iOtxF�tu?�WGbQ[wD`U#\�F�RP?sbKFjRoud5h�F ���r�4L�F�JGF=EU�R@FpU [YWYV=S�±{�ZSg[c[ � �j�«W�V9¼@�ZWz[ i�Bf?�=>?�RPDGF�=PteIQN�FpIaRuCj?�WGbQ[�D`U�hGh�FJVRPD`U�RuU,\�U�bKIQ[RSdAh`F * Bf?�= � IKJ2(�IKNpJG?�RrCj?�YVhOWXRPF [��mWGhqRP?M§ � �xcAdwoud5h�F � � � ��n

�uF N�IQ[XF N>N�?�WGJO[XJOF�N@N�U�JO[ZC?�Y*hGbKFjRPF�JGF�N@N�i�tuFetpU�J5R{RP?kH5JO?�t�RPD`U�RuoudAh`F � �r�;RPF�=PY*IKJOU�R@F�N?�J�U�bKb;IKJGhGWGR@N�i%I9n F�n�IaR�NPDG?�WGbK[�c`FZU VwSUV ª�� BfWGJOC�R@Ia?�J.n>� | NP?�WGJ`[�U�JO[�Cj?�YVhObaFRPF*U�bKL�?�=@IaRPDGYYZU#d]NSR@IabKb{JG?�R�RPF�=PY*IKJOU�R@F�?�J}N�?�Y*FkJG?�JXv9RSdAhOU�cGbKF�RPF�=PYqn�����FVteIabKb�[XF�U�b;teIaRPD�NP?�WGJO[GJGF�N@NiRPF�=PY*IKJOU�R@Ia?�JyU�JO[qCj?�YVhObaFRPFJOF�N@NpJG?�t�n

��� � ����� ��� ��� y������ � ¾X?�WGJO[GJGF�N@Np?�B�oTdAh�F ���r����n � ·ZW RSdAh`F}NPdAJ5RPDGF N�IQNMU�baL�?�=@I_R@DGY ª�T�ºVf·�W Cj?�J�R@FjlAR�CEDGF CEH5IKJGL1U�baL�?�=@I_R@DGY ��oTdAh�F � �r� ª�T�ºp¶ H����r� � ª��ÒW¯[YS�¯�T�º �`� " W " � ± oud5h�F��.� � �>§* � Vf·�WYT (�� � ��* ª�T�º � ±r¶ H�� (;�>§�� V9��¯ZW�� � Vf·�WYT ( � [ � W����¹�±�S���® WEº "

opDGFThG=@?A?�BX?�BGNP?�WGJ`[XJGF�N@N.?�BOoTdAh�F ���r�.U�J`[ ¶ H����r�%IQN;NPIaY�WGbaR@U�JOF?�W`N�bKd�i�c5d�IKJO[XWOCjRPIK?�J�?�JRPDOF1JAWGYkc�F=>?�B�F�\�U�bKWOU�R@Ia?�JXv�N�RPF�hON{=@F�­5WGIK=PF [kBf?�=�RPDOF1U�bKL�?�=@IaRPDGY R@?�RPF�=PY*IKJOU�R@F�nO�"¾A?�WOJO[XJGF NPNN�R@U�R@F�N�UqhO=P?�h`F�=�RSd�?�JGbKd�Bf?�=,R@DG?�NPFZIKJGhGWXREN�Bf?�=kteDGIKCED�R@DGFMU�bKL�?�=PIaRPDOY RPF�=PY*IKJOU�R@F�N�n �,opDGF?�JObadyIaJ5R@F=@F�N�RPIKJGLMCU�N�FkIKN�oTdAh�F � � � }��i�teDGF=@F�?�JGF�DOU�NeRP?wWONPF�RPDGF*¾AWGc SF C�R �eF�[GWOC�R@Ia?�JhG=@?�h�F=PRSdsU�JO[��u?�J �OWGF�JOCjF�n

Page 46: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{�����������opDGF�RPF�=PY*IKJOU�R@Ia?�J�?�BGoud5h�F ���r�%U�J`[ ¶ H����r�%NPDG?�WGbQ[�U�bQNP?ec`FuhG=P?�\�F�[,NPIaY�WGb_REU�JGF�?�WONPbKd�ijcAd

[XF�\5IQNPIaJGL*U�Y*F U�NPWG=PFrRPDOU�R1[XF�C=PF U�NPF�N>teIaRPDyF\�F=@d�=@F�CWG=EN�IK\�F�CU�bKb"n#��F,[XFj^OJOFrR@DGF,YVF U�NPWG=@FY½Bf?�=1U*Cj?�J5R@FjlAR (�?�=1UVhOU�IK=e?�B{U*Cj?�J5R@FjlAR (�U�JO[qU�RPF�=PY � U�NxBf?�babK?�t1N�n

Y]� (;� ��§ � < NPd5Y�c`?�bKNxIKJ2(�A�£Yq� (>£ � � ��§ � < NPd5Y�c`?�bKNxIKJ2(>£�� A#.

 1?�t�i�Y¦[XF Cj=@F�U�NPF�N;Bf?�=>F\�F=@d�=PF CjWG=ENPIa\�FxC�U�bKbG?�B%oTdAh�F � �r��?�= ¶ H�� �r��i�FjlGCjF�hXR�Bf?�={R@DGFrC�U�NPF?�BxoTdAh�F � �9° ��� * . � �ji%teDGF=@FkY]� (T£E3���� * . ���!YZU#dqc`F*bQU�=@L�F�=1RPD`U�J}Y]� (>£@° ��� * . � �V�fIaB��IQN!bK?�JOL�F=rRPDGF�J � �jn%¾X?Oi`RPDGFV?�JGbKdqhG=@?�cGbKFY teIaRPD}RPF=@Y*IaJ`U�RPIK?�J}IKN�IKJ�RPDOFVNPIK[GFjv Cj?�J`[XI_R@Ia?�J?�BpR@DGF��"°`� v"=@WGbKF�i4teDGF=@FstxFsDOU#\�F*R@?�\�F�=PIaBfd�teDGFjR@DGF="3!��� * . � IKN�U]baF�L�U�b>RSdAh`F�n4opDOIKNkIKNUMNPIaRPWOU�RPIK?�J�F�JOCj?�WGJ5RPF=@F�[q\�F=@dwL�FJGF�=@U�babKdyIaJ}RSd5h�F�NPdAJ5RPDGF N�IQN!U�baL�?�=@I_R@DGYZNpBf?�=,[XF�h`F�JO[XFJ5RRSdAh`F,R@DGF?�=Pd�nO¾AFF�<{?�babQU�CEH � �$����#�.U�J`[y¾AF�\�F�=PI � �$�%�����Bf?�=1N�?�YVF�L�F�JGF=EU�b.NP?�bKWXR@Ia?�JONuRP?*RPDOIKNhG=@?�cGbKFY U�JO[qUZ[XIQN@CjWON@N�IK?�J�nXz JqRPDGFkC�U�NPF,?�B>°�����GiGRPDGF�=PF�IQN1U*=EU�RPDOF=eF�U�N�dwtxU#dM?�WXR �GtuFCU�Jq=PF�hGbKU�CjF�RPDOFkN�IQ[XFv�C?�JO[XIaRPIK?�J2(��D3!��� * . �½� ��IKJqRPDOFM�9°���v�=PWObaF�cAdyU�JqF�­5WGIK\�U�bKFJ5R1cGWXRNPIaY*hGbKF=e?�JGF�n

��� � ����� � �5� � ��W�V (T£ ��� * �cWsª]�cSUT�VXW��GVrªUT�º � �cWsª VXW��® "�� ¯ ���ZSg[YW (T£ ��� * � � �?�±�S�� [�S�®AW � " � ·�WYTµVf·�Wu±�S�����S ��� T#'s·ZS��aºU[ "

(��.3!��� * . �¨� � � � ± ��� ���#¡ ������¡�� � ±�S�� [�S�®AW ¢�¥%z  +��� V�·� � � � � ���#� ��� ��� � � ±�S�� [�S�®AW ����� V�· �O� � , � ��¥ (;���Vf·�WYT (�� * � � , � �W�l[YW � ± � �� � , � ��£ � , � � � V�·ZW�T (���* � � ���#�

��DGFJ�U�hGhGbKdAIaJOLZRPDGF�RSdAh`FVN�dAJ5RPDOF�NPIKN!U�bKL�?�=@IaRPDGY RP?yUw°Gv�U�cONSR@=@U�C�R@Ia?�J.iOtxFkteIKbab4=@FhGbQU�CFRPDOF1hOU�=PR1²�* � oudAh`F �.� 3���� * . ���j¥�< ������� £ � , � ��£ � , � � � A�´�cAd�RPDGFrF�­5WGIK\#U�baF�J5RuCj?�JO[XIaRPIK?�JZL�IK\�F�JIKJwR@DGF!�.F�Y*Y*UOn

����� � ��� ���� y������ � opDGF�JGFt V"¼@��Wµ[�¼UTZVf·�W�[ � [�ª�� ';S�� � Vf·A® oudAh`F � �r�ZU�JO[�RPDGF �cSUTZVwW��uV�E·�WE�@¸ � T#'yª�� 'GS�� � V�·X® ¶ H�� �r�xU�=PF,[XFj^`JGF�[ycAds=@FhGbQU�CIaJGL�IaJyR@DGF�CU�NPF,oTdAh�F��.�9° ��� * . �V�TRPDGFhOU�=�R* � oTdAh�F��.��3!��� * . �V��¥�< � ���#� £ � , � ��£ � , � � � A�cAd

* � ��� ����¡ �����@¡ � �wBf?�=1NP?�Y*F,¢�¥%z  �� * � �� � � � � ���#� ��� � � � �VBf?�=1NP?�Y*F ��� * � � �O� � , � ��¥/(;�P�

� � � ) oTdAh�F � � *!�T§ � , � ��%' � * � � �� � , � ��£ � , � � � � � � ) oud5h�F��.� *!�T§ �������

 1?�R@F]RPD`U�RMR@DGF�U�baL�?�=@I_R@DGY ?�JGbKd¬\�F=@I_^OF N*RPDOIKNyCj?�JO[XIaRPIK?�J�teDGF�J«RPDGF�hG=PF�Y*IKNPF�IKJ«RPDGF�.F�Y*Y*UMIKN,N@U�R@IKN�^OF�[.n�opDGF�JGFt¦Cj?�J`[XI_R@Ia?�J�YZU#dqba?A?�Hq=EU�R@DGF=�Cj?�Y*hGbKIQCU�R@F�[%i�cGWGR�IaR�IQN�[XFjvCjIQ[GU�cGbaF�U�JO[MJO?�t�U�bKb�RPDGF�=@F�CWG=EN�IK\�F�CU�bKbQNeU�=@F�[X?�JGF�RP?*IKJGhGWXRENeteI_R@DyU*NPYZU�bKbaF NSReY*F�U�N�WG=@F�n��F�=@FYZU�=PHVRPD`U�R�iAR@DGIQNeN�bKIaL�D5Rp\�U�=PIQU�R@Ia?�Js?�B;RPDGF�RSdAh`F�NPdAJ�R@DGF�NPIQNxU�baL�?�=@I_R@DGY©IKNeN�RPIKbKb.N�?�WGJO[%n

Page 47: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � �

o�?�F NSREU�cGbKIQN�D*R@F=@YVIKJOU�RPIK?�J.i5tuFrDOU#\�FpR@?�\�F�=PIaBfdkR@DOU�RpU�bKb`NPIK[GFrCj?�JO[XIaRPIK?�JONxU�=@F1[XF�CIK[OU�cGbKF�n�1F�=PF,R@DGF�?�JObadwtu?�=PHsIQNeIKJyRPDGFkU�hGhGbKIKC�U�R@Ia?�JyC�U�NPF��GIKJ]Cj?�Y*hGWGRPIKJGLsoTdAh�F��.� � }��iGtxF�DOU#\�FRP?]CEDGF CEH}U �%v�F�­5WOU�bKIaRSd}U�JO[�txF*DOU#\�F�RP?�CEDGF CEH]teDGFjR@DGF=�UMR@F=@Y =@F�[XWOCF�N�R@?�U�31v9RSdAh�F�nz J�L�F�JGF=EU�b"i�CEDGF CEHAIaJGL2�.v"F ­�W`U�bKI_RSd�?�J�hONPFWO[G?�RPF�=PYZN�IQN T§SUV�ºuWE� � º�ª%�j��W c`F CU�W`N�FZtxFsDOU#\�FRPDOFrBfWGbKb�FjlXhG=@F�N@N�IK\�Frh`?�txF=u?�B%RPDOF!WGJ5RSdAh�F�[M°Gv�C�U�bQCjWGbKWON�nX�1?�txF\�F�=�i�[XWGF!RP?�R@DGF,N�?�WGJO[XJGF NPN?�BTRPDGFZU�bKL�?�=PIaRPDOY �9<>=@?�h�?�NPI_R@Ia?�J �Gn � �5��i�tuF�HAJG?�t RPD`U�R�RPDGF*IKJ�R@F=@Y*F�[XIQU�R@Fk=@F�NPWGb_REN�IaJ}RPDGFCj?�Y*hGWXR@U�RPIK?�J�?�BToTdAh�F��.� � }��i �¨U�J`[ �]i�U�=@F�RSdAhOU�cObaFkRPF=@YZNn� 1?�t�i �%v�F�­5WOU�bKIaRSdyIQN�[XFjvCjIQ[GU�cGbaF�Bf?�=1RSdAhOU�cGbKF�RPF�=PYZN�i`[XWGFkRP?w¾ARP=@?�JGLs r?�=@Y*U�baIKg�U�RPIK?�J]U�J`[}�u?�J �OWOFJOCF�n��1FJ`CjFkU�babNPIK[XF�C?�JO[GI_R@Ia?�JONeU�=@F�[XF�CIK[GU�cGbKF�nOo;?ZYZU�H�F�R@DGF�U�bKL�?�=PIaRPDGY½BfWGbabKdq[XFjR@F=@YVIKJGIQNSR@IKC,txF�N�F U�=ECEDRPDOF 3!�;� * . � �fIKJ �¦¡ ¡ � 3!�;� * . �V�ecAd]Cj?�YVhOWXRPIKJGLZR@DGF � WEª�¸�¹9·�WEª�º�¹wTIS���®*ª���¹�±�S���® �mteDGIQCEDFjlXIQNSRENiG[GWGF,RP?M¾5R@=P?�JGL* 1?�=@YZU�bKIag U�R@Ia?�J`��n

����� � ��� ��� ��� y������ � � ·�W,ª�� ';S�� � Vf·A® [ oudAh`F � �r� ª�T�º�¶ H����r� VwWj��® � T�ª�VXW�SUTqª���� � T���¯�V\[ " 1?�t³txFZCj?�YVFVR@?qRPDGFZCj?�Y*hGbaFRPF�JGF�N@N,?�BxRPDGFsU�baL�?�=@I_R@DGYZNn �!N�WOU�babKd]R@DGIKN�IKN,hG=@?�\�F [�cAd

[XF^OJGIKJGLsU*[XI_µ�F=@FJ5R!NPFjRe?�B{[XF�=PIK\�U�R@Ia?�Jy=@WGbKF�N�� � �uRPD`U�R1IQNeF�­5WGIK\�U�bKFJ5ReRP?*R@DGF�?�=@IaL�IaJ`U�b�?�JGF�fI"n F�n`RPDGF�dwDOU#\�F,RPDGFVNPU�Y*F�N�FRr?�BT[XF�=PIK\�U�cGbKF�N�R@U�R@FY*FJ5REN ( ��� ��*!��i{� ���pBf?�=1teDGIQCEDqRPDGFCj?�Y*hGbaFRPF�JGF�N@Np?�B4RPDGF�U�baL�?�=@I_R@DGY�U�=PF�F�U�N�dZR@?ZhG=@?�\�F�nAz Jq?�=E[XF�=uR@?sU�CEDGIKF\�FV� ���jiGtuF�[GFj^OJGFU*[XF=@IK\#U�RPIK?�JqN�dXN�RPF�Y½RPD`U�ReIKNrCjbK?�NPF!R@?VRPDGF,RSdAh�F�N�dAJ5RPDGF N�IQNeU�bKL�?�=PIaRPDOYyn

����� ����� ���� y������ � opDGF ® S�º � WEºMºGWj� � »�ªUV � SUT���¯X��W�[ ?�B�°�����VU�=@FrR@?Z[XF=@Ia\�F1RStx?kBf?�=PYZN?�B�SWO[GL�Y*FJ5R���( ����� � ��* U�JO[ ( ����� � � n{opDGFd�U�=@FZL�IK\�F�J�c5d�RPDOFs?�=@IaL�IaJ`U�b>=@WGbKF�N�?�B°� � �XiGFjlGCjF�hXReRPD`U�R� opDGF�=@WGbaF N��mU�lG�ji��ftxF�U�HG��i.�f\�U�=E�xU�J`[��9Cj?�J5\G�xU�=@F,=PF�Y*?�\�F�[.i� opDGF,Bf?�bKbK?�teIaJGL*=@WGbKF�NeU�=@F,U�[G[XF [%n

�fFY*hXRSdG� ��� ����� � �

�fhG=@? �� ( � ��� � �(�� ��� ����*

IaBe� ��� *���¥/(

�mNP?�=PR@� ( � ��� � �(�� ��� ������� � � , � �

(�� ��� � �(�� ��� � , � ��� � , � � �

�mCj?�J5RPFjlAR�� (�� ��� * � �(>£ �;� * � ��� � �

� opDGFs�mU�hGh`�x=@WGbKF�IQNe=@FhGbQU�CF�[wcAd

�9U�hGh�� (�� ��� � ��� (�� ��� � �(�� ��� � � � � � �

I_B�� ¡ ¡ � 3!��� * . �½U�JO[ �½§ � *

��F�NSREU�RPF�R@DGF,Bf?�bKba?�teIKJGL*hG=@?�h�F=PRPIKF�NxBf?�=pRPDGF�Y*?X[XIa^OF�[q[XF�=PIK\�U�RPIK?�Jy=@WGbaF Nn

Page 48: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{���������������������� ��� ��� y������ � $" � S�¯�T�ºUT§Wz[c[ SS±�Vf·�Wk® S�º � WEºZ��¯X��W�[

(�� ��� � �* � (�� � �*

!#" R�S�®r����WYVXWYTIW�[c[ SS±�Vf·�Wk® S�º � WEºZ��¯X��W�[

(�� � �* �;� * � � * �!§ � *)� (�� � �* �$�

��" R�S�®r����WYVXWYTIW�[c[ SS±�Vf·�Wk® S�º � WEºZ��¯X��W�[ � " � " V oudAh`F � �r� ªUT�º�¶ H�� �r�

(�� ��� � �* � oud5h�F � � � �T§ *k£(�� ��� � � � ¶ H%� (4�>§ � V"��¯ZW � .

| bKb�CU�N�F NpIaJwRPDGF�hO=P?A?�B4?�B4RPDGIQN1<T=P?�h`?5N�IaRPIK?�JyU�=@F!cAdwU�JwF U�NPdsIKJO[XWOCjRPIK?�J.n

��"��#"�& ¯X�ÒW � ¼@�ZW � ¼g[zVXW® [

opDGFVN�dXN�RPFY °����sIQN3SWON�R�U�J]IKJONSREU�JOCFk?�BTUsL�F�JGF=EU�b4CjbQU�N@N1?�B�RSd5h�F�[�°}C�U�bQCjWGbKI"iOR@DGFVNP?�vCU�babKF�[]² <TWG=PF�oTdAh�F,¾XdAN�RPF�YZN´A?�=p<To1¾GNnAopDGF�NPF�tuF�=PFr^O=@N�RuIKJ5RP=@?X[XWOCjF [scAdZ�xF=EU�=E[XI � �$���� �U�J`[�o�F�=PbK?�WAt � �$����� �"i.WOJO[XF=�[XI_µ�F=@FJ5RkJ`U�Y*F�N�U�JO[�teIaRPD�NPbaIKL�D5RPbKd�[XI_µ�F=@FJ5R�[GFj^OJGIaRPIK?�J`NiU�N�UqL�FJGF�=@U�baIKg�U�RPIK?�J�?�BxRPDGFsNP?]CU�bKbKF�[�° ¹��¯ �cW i;N�F�Fs�xU�=PF�JO[X=@FL�R�� �$�%���#��n%opDGFZ=@F�U�NP?�J}Bf?�=[XF^OJGIKJGL*RPDGF�CbKU�NPNp?�B{<uo1¾XNpIKNxR@DOU�R1YZU�J5dMH5JO?�teJyNPdXNSR@FYZNeU�=@FV�m?�=ec�FjRPRPF= �OC�U�Jyc`F�NPFF�JU�NE�!<To1¾XN�n%opDGIKN�YZU�H�F�N!I_R,Bf=@WGIaR�BfWGb{R@?yN�RPWO[GdqRPDGF*L�F�JGF=EU�b4hG=@?�h�F=PRPIKF�N!?�Bu<uo1¾XN�IaJ�?�=E[XF=RP?k?�cXREU�IKJVYZU�J5d*NPh`F CjIa^`Ce=@F�NPWGb_REN{Bf?�=uN�h�F�CI_^`C!N�dXN�RPF�Y*NTU�N�IKY*YVF [XIQU�RPFrIaJON�R@U�JOCjF Nn�z JZteDOU�RBf?�bKbK?�t1N�tuFZteIKbKb>Y*FJ5RPIK?�J�UqJAWGY�c`F�=�?�BpRPDOF�NPFZhG=P?�h`F�=�R@IaF Nn | JG?�RPDGF�=kU�[X\�U�J�REU�L�FVIQN�R@DOU�RRPDOF,<uo1¾XNpCU�JMc�F�W`N�F [wU�NxUkBf=EU�Y*Ftx?�=@HkBf?�=eCj?�Y*hOU�=PIKJGL�RSdAh`F,N�dXN�RPF�Y*NpU�JO[sBf?�=e[XFj^OJOIaJGLRP=EU�J`N�bQU�R@Ia?�JONxc`FRStuF�FJyRPDGF�Yqn

<>WG=@F!oudAh`F�¾AdXNSR@FYZNpU�=@F�U�JMIKY*YVF [XIQU�RPF�L�F�JGF=EU�bKIKg�U�R@Ia?�JZ?�B4°����kIaB;txF SWONSRpJG?�RPF!RPDGFBf?�bKbK?�teIaJGL*hOU�=@U�Y*FjRPF�=@NuIKJwR@DGF�[XF^OJGIaRPIK?�Jq?�B>°�����Xn� opDGF�NPFjR1?�Bu² NP?�=PR@N�´ CU�Jwc�F�\�U�=@IaF [%n.�fz J�°� � �G� � ���#� £ � , � ��£ � , � � � n��� opDGF�=@FbQU�R@Ia?�Jyc�FjRStxFF�JqRPDGF�N�?�=�REN1CU�Jyc�F�\�U�=@IKF�[%n4�fz J}°� � �X�4< � , � �k� � , � � � £ ������� �� , � � A�n��

� opDGF�C?�Y�cGIaJ`U�RPIK?�J`Ne?�B>NP?�=PR@NpBf?�=rteDGIQCED�txF�U�bKba?�t RPDOFkCj?�JONSR@=PW`C�RPIK?�J]?�B 3ev"RSd5h�F�N!CU�Jc`F�\�U�=PIKF�[%n.�mz J}°�����X�;� � , � ��£ � , � � �j£�� � ���#� £ ������� �j£�� � , � ��£ ������� �jn �

����� ���� ���� y������ � �G?�= ¬UkN�FR!��R@DGF!NPFjRT?�B.N�?�=�REN@�ji � � +���fRPDGF�N�FRT?�B.U�lAIK?�YZNE�SU�JO[� � '+ '+ ½��R@DGFsN�FR�?�Bp=PWGbKF�NE��i�R@DGF & ¯X�ÒW � ¼@�ZW � ¼g[zVXW® °;��r£ �Z£��w��IKN�R@DGF*RSdAh`F [

Page 49: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � �

bQU�Ykc�[GU*CU�bKCWGbKWONpteI_R@DyRPDGF,Bf?�babK?�teIaJOL*[GF�[XWOCjRPIK?�Jq=@WGbaF Nn

�mNP?�=PR@� � � � �� � IaBe� � � £ � � ��¥ �

�f\�U�=E�( � * � �

(>£ �;� * � �]��*IaB�� ¥)(

�ftxF�U�HA�(���* �� (�� � ���

(>£E��� * � � ���IaB�� ¥)(

� 3��(���* �� � (T£ �;� * � �¨� � �

( � 3���� * . �¨� � �IaBp� � � £ � � £ � � �j¥ �

�9°�� (>£ �;� * � � � � (��.3!�;� * . �©� �(��y° �;� * . � � 3���� * . �

�mU�hGh`�(�� � � 3���� * . � (�� �*

(�� � � � � � �

�mC?�JA\ � � (�� � �* (��.�©� �(�� � � �

*�§ � �

z�B�� � � � � IaJ�UyR@=PIKhGbKF�� � � £ � � £ � � ��¥ ��i;tuFZte=@I_R@F�� � � £ � � �j¥ ��n.z J�RPDOFM[XF=@IK\#U�RPIK?�J�=PWObaF NiRPDOF�FjlXhG=@F�N@N�IK?�JONpU�=PF!R@U�H�FJwBf=@?�Y½R@DGF�NPFjRe?�B ��[YW¯OºuSUVwW��® [�� [XFj^`JGF�[ycAd

� �a��§ � � �� 3 �r� � . � � ��9°��r� � . � � � ��� .

opDGF*hONPFWO[G?�RPF�=PY *©IKN ��W '5ª�� I_BuRPDGF�=PFZIQN�UyCj?�J5R@FjlAR (�U�JO[�UMh`N�F�WO[X?�R@F=@Y � NPWOCED}R@DOU�R(�� * � ��?�= (�� �©��* IKNe[XF�=PIK\�U�cGbKF�nXopDGF�NPFjRp?�B4baF�L�U�b`RPF�=PYZNx?�B�°�� r£ �s£��w�xIQNe[XFJG?�RPF [cAdMo;F=@Yq�"°�� r£ �s£��w���jn

z�R*IQNVIaJ`NSR@=PWOCjRPIK\�FwRP?�[XFj^`JGFyNP?�Y*Fq<To1¾XNkRP?�NPFFwDG?�t �OFlAIKcGbKFMR@DGFqJG?�R@Ia?�J~IQNn{z J~RPDGFBf?�bKbK?�teIaJGL`iAtuF,[XF�N@Cj=@IKc`F,U*<To1¾ZcAd�SW`NSRebKIKN�RPIKJGLVRPDGF�NP?�=PR�i5RPDOF,U�lXIa?�Y*NxU�J`[sR@DGF,=PWGbKF�NxIKJyUc�?#l�nG�O?�=r°����kR@DGIQN1U�Y*?�WOJ�RENxRP?VRPDOF,Bf?�bKba?�teIKJGLOn

°����� ������� £ � , � ��£ � , � � �� ������� � � , � ��£ � , � ��� � , � � �� � �����#� £ ������� �j£�� � , � ��£ � , � �#��£ � � , � ��£ �����#� �

o�?�[XFj^`JGFy^O=@N�RZ?�=E[XF=VhG=@F�[XIQCU�RPFyba?�L�IQCwU�N*U�<uo1¾�i{tuFyDOU#\�FMR@?�YZU�H�FqU�NPdAJ�REU�CjRPIQCU�b[XIQNSR@IaJ`C�RPIK?�JMc`FRStuF�FJ]² ^O=ENSRx?�=E[XF=x[X?�YZU�IKJON�´`�m?�\�F=uteDGIQCEDs?�JGF�CU�Js­�W`U�J5RPIaBfdG�TU�JO[y² DOIaL�DGF=?�=E[XF�=![X?�Y*U�IaJ`N´{�f?�\�F=rteDOIKCED}­5WOU�J5RPIa^`CU�RPIK?�J�IQNrJO?�R�U�babK?�txF�[O�jn�opDGF�=PFBf?�=@F�i�UMNP?�=PR ��� �1IKN

Page 50: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{�����������IKJ�R@=P?X[XW`CjF�[.iGRPDOFkN�?�=�R1?�B{^O=@N�R1?�=E[XF�=r[X?�YZU�IaJON�iOU�JO[]U�N@N�?XCIKU�RPF�[wteIaRPD]R@DOU�R!UZNP?�=PR � , � � � iRPDOF,RSd5h�F�?�B �����jn`opDGF�<>WG=@F�oTdAh�F�¾AdXNSR@FY °`< � (���iG=PF�hG=@F�NPFJ5RPIKJGL�^O=@N�Re?�=E[XF=phG=@F�[GIKC�U�RPFbK?�L�IQC�iXIQNe[XF^OJGF�[qU�NxBf?�bKba?�t1N�n

°`< � (�� ��� �j£ � , � � � £ � ���#� £ � , � �� ��� �x� � , � � � £ ������� � � , � �� �3�����j£ �����P�j£��0�����£ � , � ���j£�� � ���#� £ �����#� �j£��3�����£ � ���#� �

��F�cG=@IaF �Od¬FlXhGbKU�IaJ�R@DGF�=@WGbaF NnxopDGF]=@WGbaF¬� ������� £ � ���#� �*IQN*RPDGF�WONPWOU�beBf?�=ZBf?�=@Y*IaJOL�RPDGFIKYVhObaIQCU�RPIK?�J.n-��IaRPDq�0��� �j£ � , � � ��?�JGFpCU�J�Bf?�=@Y *�¡ � ���#� � � , � �pU�J`[ *�¡ *�¡ ������� � � , � ��iRPDOF*[G?�YZU�IKJON�?�BxWGJOU�=@d]hG=@F�[XIQCU�RPF N�U�JO[�cOIaJOU�=Pd]=@FbQU�R@Ia?�JON�n�opDOFV=@WGbKFy�3�����j£ � ���#� ��U�bKba?�t1NRPDOF}­5WOU�J5RPIa^`C�U�RPIK?�J�?�\�F�= ����� v"RSdAh`F N�T?�JGF�C�U�J�Bf?�=@Y 3���� * . � � * � �����ZU�JO[ � � ������� iteDGIQCED�IQN�RP?qc�FZ=PF U�[�U�N�UyWGJGIK\�F�=@N@U�b{­5WOU�J5RPIa^`C�U�RPIK?�J���n �rNPIKJGL��0��� �£+��� ����?�JGFZCU�J�[GFj^OJGFBfWGJOCjRPIK?�J�RSdAh�F�N�bKIaH�F*RPDGFsRSd5h�FZ?�BecGIKJOU�=Pd]BfWOJOC�R@Ia?�JON� *�¡ *�¡ *�i;cGWXR�U�bKNP?�� *�¡ *��P¡ *�iteDGIQCEDwIQNxWONPWOU�bKbadZ=@FjBfF�=P=@F�[ZRP?ZU�NpUM² DGIKL�DOF=p?�=E[XF=uBfWGJOCjRPIK?�JwRSdAh`F�´anO¾A?VJG?�RPF�RPDOU�Rr°O< � (��IQNk^`=@N�RV?�=@[GF=V?�JGbKd�IaJ~RPDGF ��S ' � �@ª�� NPFJ`N�F�i;I"n F�n>­5WOU�J5RPIa^`C�U�RPIK?�J~?�\�F=VhG=@F�[XIQCU�RPFq[X?�YZU�IaJON�fbKIKH�F�*�¡ *�¡ ������� �xIQNpJG?�RrU�babK?�txF�[%n

opDGF�N�dXN�RPFY�°`< � (���iGU�Np[XF�N@Cj=@IKc`F [MU�c�?�\�F�i5C�U�hXR@WG=@F�Np­5WGI_R@F�UkbK?�Rp?�B;^O=@N�Rp?�=E[XF=xhG=@F�[AvIQCU�R@F�bK?�L�IKC�n | N!UwYZU�RPRPF=�?�BTBmU�C�R,IaR�hG=@F�CIKNPFbKd]CU�hXRPWG=@F�N ® � T � ®Zª�� ^`=@N�R!?�=@[XF�=rhG=@F�[GIKC�U�RPFbK?�L�IQCVteI_R@D · � '#·�W�JS��@ºuW�r±E¯�T��YV � S�T�[ " opDGFZY*IaJOIaYZU�bKIaRSd}Y*F�U�JON,RPD`U�R�RPDOF=@FsU�=@FV?�JGbKd�RStx?Cj?�JGJGF C�RPIK\�F N��IaY*hGbKIKC�U�R@Ia?�J*U�JO[�^O=ENSR>?�=@[XF�=>WGJGIK\�F�=@N@U�bG­5WOU�J5RPIa^`CU�RPIK?�J.n | N>txF1U�=@FxIKJsU�^O=ENSR?�=E[XF�={Bf=@U�YVF�tu?�=PH�i RPDOF1?�R@DGF=TC?�JGJOF�C�R@Ia\�F�N�C�U�J*JG?�R>c�Fr[XF^OJGF [%n�opDGIQN>YZU�H�F�N4R@DGFeFjlXhG=@F�N@NSvIKcGIabKIaRSd�=EU�R@DGF=>bK?�t�i�U�N�?�JOFrCU�JZJG?�RTte=@IaRPFr[X?�teJZJOFL�U�RPIK\�FpBf?�=PY�WGbKU�Nn ¶ J*RPDGF1?�RPDGF�=TDOU�JO[%itxFM[X?�DOU#\�FZDGIKL�DGF�=k?�=E[XF�=�BfWGJOCjRPIK?�J�RSdAh�F�N�n;z�RkIQN�h`?5NPNPIacObaFZR@?}[XF^OJGFwU}<To1¾�RPD`U�RVC�U�hXvRPWO=PF NpYVIKJGIKYZU�b%^O=EN�Rp?�=@[GF=phG=@F�[XIQCU�RPF�ba?�L�IQC!FlGU�C�R@bad��fI"n F�nO°O< � (�� teIaRPDO?�WXR1DGIKL�DOF=p?�=E[XF=BfWGJOCjRPIK?�JONE��n�¾AFF � �pU�=@FJO[X=@FL�R �����#�#��Bf?�=1[XFR@U�IabQNn

o�?�=PF�L�U�IKJsU�bKb`C?�JGJOF�C�R@Ia\�F�N�iA°`< � (�� CU�JMc`F!FjlARPF�JO[XF�[sRP?kRPDGF�N�F Cj?�J`[Z?�=E[XF=T?�=xDGIaL�DGF=?�=E[XF�=�hG=PF [XIQCU�R@Feba?�L�IQC��fteDGF�=PF1U�bab�Cj?�JGJGF�CjRPIK\�F N�U�=@F1[XFj^OJ`U�cGbKF �jn��F1?�JGbKd�R@=PF U�R�R@DGF1FjlAR@FJXvNPIa?�JMR@?ZDGIaL�DGF=p?�=@[XF�=ehG=@F�[XIQCU�RPF,ba?�L�IQC��"°O< � (��

��uDGF�=PF�U�J`[yC?�Y*hOU�=PF�I_R1teIaRPD�°����Gn

°`< � (���

��� �j£ � , � � � £ � ���#� £ � , � �� ��� �x� � , � � � £ ������� � � , � �� �3�����j£ �����P�j£��0�����£ � , � �#��£�� � , � ��£ � , � � �j£�� �����#� £ ������� �j£

�3�����j£ � ���#� ��£ � � , � ��£ � ���#� �

opDGFV=PWObaFq� � , � ��i ������� �!U�bKbK?�t1N!­5WOU�J�R@I_^�CU�R@Ia?�J}?�\�F=![G?�YZU�IKJON�?�B>RSdAh�F � , � ��i%teDOIKCED�U�=@F*�¡ ������� i#*�¡ *�¡ � ���#� FjR@CFjR@F=EUGn�opDGF!U�[G[XIaRPIK?�J*?�B�� � , � ��i � , � � �{IKY*hGbKIaF N�RPD`U�RTJG?�t«U�bQNP?� *,¡ � ���#� �P¡ � ���#� � � , � �]U�JO[ �P� *�¡ ������� �@¡ �����#� �@¡ � ���#� � � , � ��n �!W`U�J5RPIa^`CU�RPIK?�J¬IKN?�\�F�= � , � ��iGteDGIQCEDyC?�\�F=ENxU�bKb.DGIKL�DGF�=e?�=E[XF=e[X?�Y*U�IaJ`Nn

¶ RPDGF�=�txFbKb_v�HAJG?�teJ�RSd5h�F�[�°Gv CU�bQCjWObaI�RPDOU�R4CU�J,c`Fx[XF�N@Cj=@Iac�F�[�U�N.U1<uo1¾,U�=@F>N�IKY*hGbaFTRSdAh`F [°Gv�C�U�bQCjWGbKWON�i`h�?�bKdAYV?�=PhODGIKC�RSd5h�F�[�°Xv CU�bKCWGbKWONk�9U�bQN�?sHAJG?�teJ�U�NrNPdXNSR@FY �xi ��Ia=EU�=E[����� ��#��i��IK=@U�=@[%i ��U�Bf?�J5RVU�JO[�o4U#d5bK?�=������%���f��i�DOIaL�DGF=V?�=E[XF=kRSdAh`F [~°Xv CU�bKCWGbKWONw�9U�bQN�?�HAJG?�teJ~U�N

Page 51: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � �

��i���Ia=EU�=E[ � �$� � �#�f��n | bKb%R@DGF�NPF�NPdXNSR@FYZNpCU�Jwc�F�N�F�FJwU�NpN�WGc`N�dXN�RPFYZNx?�B;RPDGFk�xU�bKCWGbaW`Nu?�B

�u?�J`NSR@=PWOCjRPIK?�JON�iO�u?X­�W`U�JO[ ������#��iG�u?X­5WOU�JO[MU�JO[w�rWGFjR � �$���� �"n���F,[GFj^OJGF,R@DGFk�xU�bQCjWGbKWON?�BT�u?�J`NSR@=PWOCjRPIK?�JON,���e�p�pU�NxRPDOF,Bf?�bKba?�teIKJGLZ<To1¾�n

�e� �A£��� ������ ���X£�����£����A£��x��£ ���!£����j£����r£�p�

opDGFrU�Bf?�=@FY*FJ5R@Ia?�JGF�[*NPWGcONPdAN�RPF�YZN>CU�JZc`F1?�cXR@U�IaJOF�[VBf=@?�Y R@DGIQNuNPh`F CjIa^`CU�RPIK?�J*cAd�=@F�N�RP=@IQC�R�vIKJGL�R@DGF�NPFjRq?�B�=PWGbKF�N ��neopDGIQNy[GF�Cj?�Y*h`?5N�IaRPIK?�J ?�B�RPDGF��xU�bQCjWObaWONy?�BV�u?�JON�RP=@WOC�R@Ia?�JONwIKNU�bQNP?�HAJG?�teJyU�NuRPDGF �¯ �cW S�±�V9¼@�ZWEº ° ¹��Eª��a�j¯X� ��i`NPFF,�xU�=PF�JO[X=@FL�R�� �$�%���#��Bf?�=xBfWG=PRPDOF=1[XFR@U�IKbQNnz J�\AIKFt ?�B>DGIKL�DOF=r?�=@[GF=1hG=@F�[GIKC�U�RPFkba?�L�IQC�iO?�JGF�C�U�J]WGJ`[XF=ENSREU�JO[}�e� U�NeR@DGF�NPdXNSR@FY ?�cXvR@U�IaJOF�[�cAd�NPYZU�NPDGIaJOLrR@DGFxNP?�=PR@N ������� U�JO[ ������IKJ5RP?�?�JGF�i�An��1F�JOCjF�i�DGIaL�DGF={?�=@[XF�=�hG=@F�[GIKC�U�RPFbK?�L�IQC,CU�Jyc�F�[X?�JGF�IaJ`N�IQ[XF,RPDOFV�xU�bQCjWGbKWONp?�B>�u?�JONSR@=PW`C�RPIK?�J`Nn ��F�[XF NPC=PIKc`F,R@DGF�YZU�hyBf=@?�Y°`< � ( �

�RP?w�e�«bQU�R@F=eIKJyRPDGIQNr¾AF C�RPIK?�JqIKJy[GFjR@U�Iab"n

��" "�& �ÒS@�ZW�zV � W�[ SS± & ¯X�ÒW � ¼@��W � ¼g[cVwW® [| N!DOU�NrU�bK=@F�U�[Gdwc�FF�J�Y*FJ5RPIK?�JGF [%i�U�J�IKY*h`?�=�REU�J5R!Y*?�R@Ia\�U�RPIK?�JqBf?�=!RPDOF�[XF^OJGIaRPIK?�J}?�B{RPDGFL�F�JGF=EU�b�Bf=@U�Y*Ftx?�=@Hr?�BO<TWG=@Fuoud5h�Fx¾XdAN�RPF�YZN�IQN.R@DGFuBmU�C�R4RPD`U�R;YZU�J5d,IKY*h`?�=�REU�J5R;hG=@?�h�F=PRPIKF�NCU�J�c`FMhG=P?�\�F�[�Bf?�=VU�bKbu<uo1¾XN�U�R�?�JOCF�n;�rF=@F�i;tuFsbKIQNSR�R@DGFMY*?5NSRkIKY*h`?�=�REU�J5RkhG=@?�h�F=PRPIKF�NU�J`[w[XIQN@CjWON@NpRPDOFY�cO=PIKF �Od�nG<>=@?A?�BmNpCU�Jwc�F,Bf?�WGJ`[wIKJ ��FWG\�F=ENpU�JO[q 1F [XF=@DG?�B�� �$��� � �.U�J`[�pU�=@FJO[G=PF�L�R � �$�%�����"n�z J�RPDGFVBf?�bKbK?�teIaJGL`i�WGJGbKF�N@N,FjlXhGbKIKCI_R@bad}N�R@U�RPF [}?�RPDGF�=PteIQN�F�i ��=@FjBfF�=@N!RP?[XF�=PIK\�U�cGIKbaIaRSd�IaJ�U�J�U�=@cGI_R@=@U�=Pd�<To1¾�n | N�IaJ~°����Gi�txFM[XF^OJGFMU}Cj?�J5R@FjlAR1(«R@?�c`F � Wj���_¹±�S���® WEº I_B3( � � �* Bf?�=1N�?�Y*F � U�JO[)*kn

optu?�cOU�N�IQCphG=@?�h�F=PRPIKF�N>U�=PF1opDOIaJGJOIaJGL`i�N@U#dAIaJGL�R@DOU�R>RSdAhGIKJGL SW`[XL�Y*FJ5REN>=@FYZU�IKJ*\#U�baIQ[*IKJU�JyFjlAR@FJO[XF [qCj?�J5R@FjlAR�iGU�JO[y¾XWGcON�RPIaRPWXR@Ia?�J.i`N@U#dAIaJGL�RPD`U�RpRSdAhGIaJOL�SW`[XL�Y*FJ5RENe=PF�YZU�IKJw\�U�bKIQ[IaB4txF�N�WGc`NSR@I_R@WXRPF�bKFL5U�b�RPF�=PYZN�n

����� ����� ��� ��� y������ � opDOIaJGJOIaJGLA��n � S�� ( ªM�cSUT�VXW��GV ��( � ª txFbKb_v"Bf?�=@Y*F�[ �cSUTZVwW��uVpªUT�º �ªUT�º *�� T � �>� ± (�� � ��* ª�T�º ( � ( � � V�·ZW�T ( � � � �#* "�� W�ÒW ��( � ( � ºuWYTIS�VXW�[ V�·OªUVª����{ºuWE��aª��Pª�V � S�T�[ Vf·Gª�V S �E�j¯X� � T ( � ª��l[YS S��E�¯X� � T ( � "

����� ����� ��� ��� y������ � ¾XWGcON�RPIaRPWXR@Ia?�J`��n � S�� ( � £ �;� �M£�( � ªV�cSUTZVwW��uV � ªUT�º � � ª�T�º *¦� T� �p� ± ( � £E��� �s£ ( � � � ��* ªUT�º ( � � � ��� Vf·�WYT ( � £ ( � � � � � � � � �T��*+� � � "� W�ÒW � � � � � ºGW�T§SUVwWz[�V�·ZW�[�¯ �z[zV � V9¯�V � SUT,SS± ±�S�� ��� T � ��� · � �E· � [5[zV"�Pª � '#·�V ±�S�� � ª��PºA��¼W��uVwWYT�ºuWEº VXSs�cS�TZVwW��GV\[ �¼A[�¯ �z[zV � V9¯�V � T#' � T�ª�����V9¼@�ZWz[ � T¨V�·ZW�ºGW@��aª��PªUV � SUTZ[ "

optu?�?�RPDGF�=�hO=P?�h`F�=�R@IaF N�txFstxU�J5R�RP?�YVF�J5RPIK?�J�DGF�=PFyU�=@FM¾5RP=@FJOL�RPDOFJGIKJGLOi{N@U#d5IKJGL]R@DOU�R\�U�=@IKU�cGbKF�N,R@DOU�R�[G?�JG?�RVU�hGh�F�U�=�IaJ�R@DGFsR@F=@YZNkCU�J�c`Fw?�Y*I_RPRPF [�Bf=P?�Y R@DGFMCj?�J5RPFjlAR i;U�J`[¾AWGc SF�C�R �1F�[XWOCjRPIK?�J.i`NPU#dAIKJGLkR@DOU�ReRSdAhGIKJGL*IQN1CjbK?�NPF�[wWGJO[XF�=e=PF [XWOCjRPIK?�J.n

������� ��� ��� ��� y������ � ¾ARP=@FJGL�RPDGF�JGIaJOL5��n � S�� ( � £E��� �s£ ( � ªM�cSUT�VXW��GV � ªUT�º � £ *½� T � �( � £ �;� �M£�( � � � �* � � ¥q� �*� ( � £�� £�*���� ( � £ ( � � � ��* .

Page 52: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{�����������opDGIQNxhG=P?�h`F�=�RSd�i5RPDG?�WGL�DwIaJ5RPWOI_R@Ia\�FbKdZ\�F=@d*hGbQU�WONPIacObaF�iXIKNp[XI sCjWGbaRpRP?VhG=P?�\�F!U�JO[s=@F�­5WGIK=PF NuU[XF�FhMU�JOU�bKdXN�IQNT?�B%RPDGF!RSdAhGIKJGL SWO[GL�Y*FJ5R��9N�F�F!\�U�JM�xFJ5RPDGF�Y ��WXRPRPIKJGL1�������� ���jn`�9 1?�R@FrR@DOU�R¾5R@=PF�JGL�R@DGFJGIKJGL�IQN>JG?�RuU�J*IKY*YVF [XIQU�RPF!Cj?�J`N�F ­�WOFJOCFx?�B�¾AWGcON�RPIaRPWXR@Ia?�J.i5c`F CU�W`N�FpRSdAh�F�N>YZU#dJG?�R1c`F�IKJGDOU�cGI_R@F�[%iOI9n F�nAR@DGF=@F�YZU#dsJG?�Rec�F�U�J� N�WOCEDwRPD`U�R ( � � � �Mn �

����� ����� ��� ��� y������ � ¾XWGc SF�CjR �eF�[GWOC�R@Ia?�J`��n � S�� ( ªy�cSUTZVwW��uVpªUT�º � £ ªUT�º *�� T � �� ± (�� � ��* ªUT�º � ¡ ¡��� � Vf·�WYT (�� ��* "

opDGF=@FTU�=@FTU�bKNP?eYZU�JAdV�mIaJ5R@F=@F�N�RPIKJGL5�.hG=P?�h`F�=�R@IaF N%R@DOU�R4DG?�bQ[�Bf?�=4N�h�F�CI_^`Cu<To1¾XN�?�=4N�h�F�CI_^`CCjbQU�N@NPF�N>?�B�<To1¾XN�n��F�YVF�J5RPIK?�JMNP?�Y*F1?�B%RPDGF N�F!hG=P?�h`F�=�R@IaF Ni�cGWXRx^O=ENSRxtuF!IaJ5RP=@?X[XWOCFrU�JGF�tJG?�RPIK?�J.n

����� ����� ���� y������ � | <To1¾y°�� r£ �s£��w�xIQN ±E¯�T��YV � S�T�ª�� iOU�bQN�?VCU�babKF�[ [ � T�'��_¼A[�S��zVXWEº iXI_B;RPDGF=@FbQU�RPIK?�J`N��©U�JO[ � U�=PF!BfWGJOCjRPIK?�JON�iGI"n F�nGI_B4RPDOF,Bf?�bKba?�teIKJGLVRStu?*hG=@?�h�F=PRPIKF�NxDG?�bK[

� � � £ � � £ � �� ¥ �� � � £ � � ��£ � � � £ � �� �j¥ � � � � § � �� £� � � £ � � £ � � £ ���� ¥ �� � � £ � � £ � � ��£�� � � £ � � £ ���� �j¥ � � � � § ���

| bKbGRPDOF!<To1¾GN{RPDOU�RTtxFeDOU#\�FeF�JOCj?�WGJ5RPF=@F�[*NP?,BmU�=TU�=PFpBfWOJOC�R@Ia?�JOU�b"n�z JZL�FJGF�=@U�bGI_RuIKNTDOU�=E[RP?�^OJO[yUM² JOU�RPWG=EU�b"´A<To1¾*R@DOU�ReIQNxJG?�RxBfWGJOCjRPIK?�JOU�b9nG�OWGJOC�R@Ia?�JOU�b%<uo1¾XNpN�DOU�=PFrRPDGF�Bf?�babK?�teIaJOLJGIQCjF�hG=@?�h�F=PRSd�n

��� � � ��� ��� ��� y������ � �rJGIQ­�WOFJGF NPNe?�B4oudAh`F N@�jn � · � [.���ÒS@�ZW�zV9¼e·�S��Kºg[�±�S�� BfWGJOCjRPIK?�JOU�b & � � [SUT`��¼ " � S�� ( ª��cSUT�VXW��GV � � ��* ªUT�º �¦� T � �`� ± (�� � �* ªUT�º (�� � �7� � Vf·�WYT * § �"� "

¶ JGF�C�U�JyN�?�YVFRPIKY*F�Nx=PF�bKU�RPF�=PF N�WOb_RENu?�B�RStx?�[XIaµ�F=@FJ5R1N�dXN�RPFYZNxcAds[XFj^`JGIaJOL*U�JMF�Ykc�F�[Av[XIKJGL*c`FRStuF�FJyRPDOFYqnOopDGF�=PF,IQNe?�JGF,\�F=@dsN�IKY*hGbaF�CbKU�NPNp?�B;F�Ykc�F�[G[XIKJGL5Nec`FRStuF�FJq<To1¾XN�n

��� � � ��� ���� y������ � �G?�= � § °�� r£ �s£��w��U�JO[ � � § °;�� � £ � � £�� � �]<To1¾GNirU & � � ¹® S��"�G· � [�®~±E�ÒS�® � VwS � � IKN;UeYZU�hGhOIaJGL���� ¬¡ � R@DOU�R4hG=PF N�F�=P\�F�N�R@DGFTU�lXIK?�YZN.U�JO[,=PWObaF NnopDOU�R!IQNi`Bf?�=,U�bKb � � £ � � ¥ ri�IaBr� � � £ � � �j¥ �¨RPDOFJ¬�"�{� � � �j£@�{� � � ���j¥ � � U�JO[�I_Br� � � £ � � £ � � �j¥ �

RPDOFJ��9�{� � � ��£E�{� � � �j£@�{� � � ���j¥ � � n

| <To1¾5v�Y*?�=@hGDGIQN�Y ��Bf=@?�Y °�� r£ �Z£ �w��R@?}°�� � £ � � £ � � ��FjlARPF�JO[GN�IKY*YVF [XIQU�RPF�bad�RP?�UYZU�hGhOIaJGL���?�J�hONPFWO[X?�RPF�=PYZNsU�JO[ Cj?�J5RPFjlARENn �?�=@F?�\�F�=�i{R@DGIQNsYZU�hGhOIaJGL~hG=PF N�F�=P\�F�NZ=@Fjv[XWOCjRPIK?�J�IaJ�U�BmU�I_R@DXBfWGb1tpU#d�� � ¡ � Iaµ �{� � �s¡ � �{� }��n ��FqDOU#\�FMRPDGFyBf?�babK?�teIaJOLhG=@?�h�F=PRSd�n

��� � ����� ��� ��� y������ � � S�� � ªUT�º � � & � � [�ª�T�º � ª & � � ¹ ®AS��"�G· � [E® ±E�ÒS�® � VwS � � �>� ±(�� � �#*¨� T � � Vf·�WYT �{� (;� �y�{� � �x���{� *!��� T � � "

 1?�R1U�bab.<uo1¾XNeU�=@F,¾ARP=@?�JGL�bads r?�=@Y*U�baIKgIKJGL`n#��F�DOU#\�FrR@DGF�Bf?�bKba?�teIKJGLVtuF�babav"HAJG?�teJMRPDGF�?�v=@FYqn

��� ������� �� ���� � � ·�WJR>ª��a�¯X��¯�[ SS± RoS�T�[zV"��¯O��V � SUTZ[ � R R �>� [ � V"�ÒS�T#'���¼�� S���®*ª�� ���� T#' "

Page 53: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� ��&

opDGF*hG=P?A?�BTIKN�=EU�R@DGF=�[XI sCjWGbaR�U�JO[�CU�J}c�F�Bf?�WGJO[�IaJ ��FWO\�F=EN,U�JO[� 1F [XF=@DG?�B������� � ��i�u?X­5WOU�JO[yU�J`[)�,U�babKIKF=!� �$���%&���i5�xF�=@U�=@[XI � �$�%��& �"n

| N*U}C?�JONPF�­5WGF�JOCjFstxFs^`JO[�R@DOU�R*YZU�JAd�?�RPDOF=*<To1¾XNVU�=@Fy¾5R@=P?�JGL�bKd� 1?�=@YZU�bKIag�IaJOL�U�NtxFbKb9n4opDGIKN�Cj?�YVhO=PIQN�F N�U�bKb>R@DGFMNPWGcXv N�dXN�RPF�Y*Nk?�B!�e�¦U�JO[�U�bKNP?�U�bKbTNPdXNSR@FYZN���Bf?�=�teDGIQCEDRPDOF=@FwIQN*U}<To1¾Av"Y*?�=@hGDGIQNPY Bf=@?�Y �¨R@?��e�!ne�9 1?�R@FMR@DOU�RsU�<To1¾5v�Y*?�=@hGDGIQN�Y hG=@F�NPF=@\�F NIKJX^OJGIaRPF�=@F�[XW`C�RPIK?�JqhOU�RPDON�n��

��� � �� � �� �� u���� � � ·ZW!±�S�����S ��� T�' & � � [Mª���Wwª���� � V"�ÒSUT�'��_¼ � S���®Zª�� ���j� T�' " � ���o[�¯ �z[�¼g[�¹VwWj® [�S�± R R�� °O< � (�� � °`< � ( �

� "| txFbKb_v�HAJG?�teJ�FjlGU�YVhObaFy?�BrU�<To1¾�R@DOU�R*IQN�JO?�R*¾ARP=@?�JGL�bad� 1?�=PYZU�baIKgIKJGL�IQNZ° �Xn{opDOIKN

L�F�JGF=EU�bKIKgF�NuR@DGF��xU�bQCjWGbKWONp?�B>�u?�JONSR@=PW`C�RPIK?�J`NxRP?VRPDGFkFjlARPF�J�ReteDGF�=PF ��U�JO[ � U�=@F!WGJOI_^OF [%i?�=ehOWXRr[XIaµ�F�=PF�J�R@bad�iXRPDOF�N�?�=�Rp?�B4RSdAh`F Ni �XiXIKNpIaR@NPFbaB�UVRSd5h�F�n

° � �

� �k� �� ���X£����

opDGIQNu<uo1¾*IQNuU�bKNP?�RPDOF1RPF�=PY*IKJOU�b�?�c SF�C�RxIaJsRPDGF,CU�RPFL�?�=@dk?�B�<To1¾XNuteI_R@DM<To1¾Av"Y*?�=@hGDGIQNPY*NU�NeU�=P=@?�t1N�n

| NkUqYZU�R�RPF�=k?�BxBmU�C�R i�txFZJG?�t¦D`U#\�F*RStx?qBf?�=@Y*U�baIKg�U�RPIK?�JON,?�BeDGIaL�DGF=k?�=E[XF=�hG=@F�[GIKC�U�RPFbK?�L�IQCkU�N!Uw<To1¾��%°� � �MU�JO[�°O< � (��

�n ��FVFY*hGbK?�dqRPDGFVJG?�RPIK?�J�?�Bu<To1¾5v�Y*?�=@hGDGIQN�Y RP?

NPFFeR@DOU�R>R@DGFdZU�=PFeF ­�WOIa\�U�bKFJ5R n��G=@?�Y¨°`< � ( ��

RP?V°�����Xi5Cj?�J`N�IQ[XF=>RPDGF�<To1¾5v�Y*?�=@hGDGIQN�Y�]L�Ia\�FJycAd

�{� � ���#� � § ������� £�{�0��� ��� § � , � ��£

�{� � , � � � § � , � ��£�{� � , � � � � § � , � � � .

¶ JGF,\�F�=PIa^OF NpIaY*Y*F�[XIQU�R@FbKdZRPD`U�R!�}hG=PF N�F�=P\�F�N��©U�JO[ ��iGDGF�JOCjF,txF,DOU#\�F(���� ������ �� � �* � �{� (4� ������ p�{� � �x�5�{� *!� .

opDGFeIKJA\�F=ENPFx?�B%�MCU�J*U�baY*?5NSR�c�Fr[XF�N@Cj=@IKc`F [�U�N>U,<To1¾5v�Y*?�=@hGDGIQN�Yqi�cGWXRuJG?�RT­5WGIaRPF�n�rF^OJGFRPDOF�<To1¾5v�Y*?�=@hGDGIQN�Y �sBf=@?�Y °O< � (��

�R@?M°�����*U�NxBf?�babK?�t1Nn

��� � ���#� � § �����#� £��� � , � �#� § �����j£�%� � , � � � � § � , � � �

�fz J�°�����R@DGF�N�?�=�R � , � � � CU�JwJO?�R1U�hGh�F�U�=pIaJqU*Cj?�J5R@FjlAReJG?�=pIKJyU�RPF�=PY�?�JwRPDGF,bKFjB�RrNPIK[XF?�B4RPDOF*²K�K´an�� ��F�FjlARPF�JO[ �ZRP?Z[XF=@IK\#U�cGbKF SW`[XL�Y*FJ5RENe?�B>°�����VIKJMR@DGF,Bf?�bKba?�teIKJGL*tpU#d�n

�%� (�� � �*!� § ��� (;� � �%� � �x� �%� *���£eIaB�* �§ � , � ��£

Page 54: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{�������������� (�� � � � , � � � § ��� (;� � �%� � �x�!��� �j£eI_B � � �����E¡ � £ � � U*\�U�=PIQU�cGbKF��j£��� (�� � � � , � � � § ��� (;� � �%� � �x� � , � ��£eIaB � � ������¡ ������� .

�xd�F�U�N�d}IaJO[GWOC�R@Ia?�J�?�JGF*hG=@?�\�F�N!R@DOU�R ��hG=@F�NPF=@\�F N,[XF=@Ia\�U�RPIK?�JON�n%�GWG=PRPDGF�=PY*?�=PF�i��{� �%� ( �� � *����,§ ( � � � *©U�JO[ �%�9�{� ( � � � *����,§ ( � � � *kn.�1F�JOCjF�i�°O< � (��

�U�J`[

°� � ��U�=@FsF�­5WGIK\�U�bKFJ5RVNPdXNSR@FYZNn4opDGIQNkF ­�WOIa\�U�bKFJ`CjFsIKY*hGbaIKF�NkRPD`U�RkR@DGFwNPdXNSR@FY °� � �]IKN¾5R@=P?�JGL�bKdM 1?�=PYZU�baIKgIKJGL*U�NptxFbKb9n

��"���" �GVXWYT�[ � SUTZ[ SS± & ¯X�ÒW � ¼@��W � ¼g[zVwWj® [

¾AF�\�F=EU�b�BfF U�RPWO=PF NxU�=PF�JG?�R1hG=PF N�F�J5RxIKJ]<To1¾XN�nX�G?�=eFlGU�Y*hGbKF�iXIaRpIQNph�?�N@N�IKcGbKF!R@?Z[XFj^OJOF,[OU�R@URSdAh`F Nq�fIKJ�U}h`?�badAY*?�=@hGDGIQCwNP?�=PR�i4F�n LOn ������� IaJ«°������?�= ��IKJ«�e�p��i�cOWXRV?�JGFq[X?AF�NVJG?�RL�FR�IaJO[GWOC�R@Ia?�J�?�\�F=�RPDOF�NPF*[OU�R@UwRSdAh�F�N,Bf?�=,Bf=PF�F�n>�fz�R�IQN,h�?�N@N�IKcGbKF�R@?�[XFj^`JGFVBfWGJOC�R@Ia?�JON�cAd=@F�CjWO=@NPIa?�J.i�cGWXRwIaJO[GWOC�R@Ia?�J�DOU�N*R@?�c`F�U�N@N�WGY*F [�U�NZU�J�U�lXIK?�Yqn��*opDGF=@FjBf?�=PF�ie² IKJO[XW`C�RPIK\�FRSdAh`F N´ODOU#\�F�c`F�FJ]U�[O[XF�[qU�NeU�JwFlARP=EUkBfF U�R@WG=PF�nGopDGF�tpU#dZtuF,hG=@F�NPFJ5RpRPDGF�Y�c�FbK?�t�iXRPDOFdtxF=@F>^O=ENSR{[XFj^`JGF�[kIaJV�u?X­5WOU�JO[�U�J`[k<�U�WObaIKJXv ]?�DG=@IKJGL!������%&���n��9¾XFFpU�bQN�? � <�U�WObaIKJXv ]?�DG=@IKJGL�$�%� ���"n��`z JO[XWOCjRPIK\�F�RSdAh�F�N.U�=PF�hG=@F�NPFJ5R%IKJ�U�bKb�teIK[GFbKd!WONPF�[!RSdAh�Fjv"RPDGF�?�=@FjRPIQC4RPDOF?�=@FY hG=@?�\�F=EN�ibKIaH�F���� ¶ � �����%�Gi � ( � ¶ �$�%��Oi | L�[GU � &%&�& �"n

| JG?�RPDGF�=;BfF U�R@WG=PFxR@DOU�R�txFuteIKbabG[GIKN@CjWON@N4IKN4R@DGFpJG?�R@Ia?�Jk?�B`hG=@?X[XWOC�R�U�J`[w�9NSR@=P?�JGL5��5Tv9RSdAh�F�n| 5Tv9RSdAh�F�IQN,U�²�[XFh�FJ`[XFJ5R�hG=@?A[GWOC�R�RSdAh`F�´�U�JO[]R@DGF=@FjBf?�=PFVUML�FJGF�=@U�baIQN@U�RPIK?�J]?�BThG=@?X[XWOC�RRSdAh`F}IaJ�R@DGF}N@U�Y*F]tpU#d�RPD`U�RwU%31v9RSdAh�F�IQNMU�L�FJGF�=@U�baIQNPU�RPIK?�J�?�B�U�=@=@?�t½RSdAh`F�� 56�;� * . �=@FhG=@F�NPFJ5R@N�RPDGFZRSdAh�FM?�Bph`U�IK=@Ns� ��£��j��teI_R@D �~� *�U�JO[%�y�,� � � � �"nx�fz�B!� ¥«� �Z� �V��i4tuFSWON�R�F�JO[�WGh�teIaRPD * +8�Mn �k�xF�NPIK[XF NkU]h`U�IK=PIKJGL}C?�JON�RP=@WOC�R@Ia?�J�RP?}C=PF U�R@FsFbKFY*FJ5RENk?�BeU5Tv"RSd5h�F�i%txFVDOU#\�F�hG=P?SF�CjRPIK?�JONrRP?yR@U�H�F*UMh`U�IK=,U�hOU�=PR���IaB " �456��� * . �si�R@DGFJ � � " � *©U�J`[� � " � � � � � " � �"n 5Tv"RSd5h�F�NpU�=PF!\�F=@dZJOU�RPWG=EU�b`Bf?�=e[X?�IaJGL*U�c`NSR@=@U�C�RPIK?�JM?�\�F=uRPDOF?�=@IKF�N�i5U�NutpU�N^O=ENSR1FlXhGbKU�IaJOF�[yIaJ ��WG? � �$��%����nX<>=@?A[GWOC�REN1CU�Jyc�Fk[XF^OJGF [wIKJONPIK[GF�RPDGF�NPdXNSR@FY I_B{?�JOF�DOU�Nh�?�bKd5Y*?�=PhGDOIKNPYqiXcGWXR 5Tv"RSd5h�F�NeC�U�JGJO?�R�n

��"��"�& �ÒS º�¯O�YV�[kªUT�º � ¯X® [

��FZDOU#\�F*U�bK=PF U�[Xd]NPFF�J�DG?�t³RP?][XF^OJGFZCj?�J SWGJOCjRPIK?�J�U�JO[�[XIQN SWGJ`C�RPIK?�J�IKJ�°�����Xn.opDGF N�FU�=@F,\�F�=PdMCba?5N�F�R@?VhO=P?X[XWOCjR�v"RSdAh`F N1U�JO[yNPWGYVv9RSdAh�F�N�nO�1F�=PF,IQNeteDOU�R1?�JGF,tu?�WGbQ[wtpU�J5RpBf?�=1UhG=@?X[XWOC�RPv9RSdAh�F�n

�fhG=@?X[XWOCjR@NE�(�� * � � � (�� * � � �

(���* � +)* � � �

�fhG=@? SF C�R@Ia?�J`�(�� ,y�#* � +)* �(�� ��� ,]�*��

�fhOU�Ia=@IKJGL5�(�� " � �* � (�� " � �* �(�� � " � £ " � �x��* � +)* �

Page 55: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � �

teIaRPDyRPDGF�C?�Y*hGWXREU�R@Ia?�Jw=@WGbKF� � � " � £ " � �>¡ " � .

z J]hG=PF N�F�JOCjF�?�B�h`?�badAY*?�=@hGDGIQN�YqiXR@DGF�NPFkC?�JON�RP=@WOC�R@Ia?�JONeU�=@F�U�bKb�[XF^OJOU�cGbaF�n`�O?�=1FlXU�Y*hGbaFIKJ]°����VtuF,DOU#\�F!hG=@?X[XWOCjR@NeIKJyRPDGF�NP?�=PR �����#� n �.FR * � £ * � � � ���#� U�JO[q[XFj^OJOF

* � +)* � ��§ 3 � � ������� .Q� * � ¡ * � ¡ � �P¡ � £� � ��§ °,��Q� * � +)* � � . , * � �9° ��� * � .�°# �� * � . ���j£� � ��§ °,��Q� * � +)* � � . , * � �9° ��� * � .�°# �� * � . G��£

����£���� ��§ ° ��� * � .�°# �� * � .�° � � ������� .�° ����� * � ¡ * � ¡ � � .�� �� �£�G?�=1NPWGYVv"RSd5h�F�Np?�JGF,tu?�WGbQ[wbKIKH�F�RP?*DOU#\�F!R@DGF,Bf?�bKbK?�teIaJGL`n

�mNPWGYZN@�(�� * � � � (�� * � � �

(�� * � * � � �

�fIKJ SF�CjRPIK?�J��(�� ,y�#* �

(�� * ) � ,]�* � * �

�mCU�N�F �(��y� � ��* � ¡�� (��y� � ��* � ¡ �(�� � �� ���"� � £E� � �x��� * � * � �P¡ �

teIaRPDyRPDGF�C?�Y*hGWXREU�R@Ia?�Jw=@WGbKF� �� �5�9� � £@� � ��3* ) ��,��u¡ � � ,�.

opDGIQNkC�U�J�U�bQNP?]c`FM[GFj^OJGF [�IKJ�Uqh`?�badAY*?�=@hGDGIQCsNP?�=PRM�fIKJON�hOIa=@F�[�cAd�RPDGF.�;v Cj?�JON�RP=@WOC�R@Ia?�J`��n�.FR1IaJ�°����Xi�* � £�* � U�JO[��³c`F�?�B�RSdAh`F �����#� i`� � ��* � ¡ �³U�JO[]� � ��* � ¡��Vn

* � * � ��§ 3 � � ������� .Q� * � ¡ � �@¡�� * � ¡ � �P¡ � £* ) � ��§ °,�� * � . ° � � �����#� .�°�� � �K� * � ¡ � � .�°�� � �K� * � ¡ � � .�� � ,;£* ) � ��§ °,�� * � . ° � � �����#� .�°�� � �K� * � ¡ � � .�°�� � �K� * � ¡ � � .�� � ,;£

� �� ���9� � £@� � � ��§ ° ����� * � * � � . ����� � � � .

��"�-" 5 ¹wV9¼@�ZWz[z J�Y*U�RPDGF�YZU�RPIQCNV?�JGFwtpU�J5REN�R@?�c�F]U�cGbKFwRP?�=PF U�NP?�J~U�c`?�WXR*U�cON�RP=EU�C�R*JG?�RPIK?�JON�i;bKIKH�FwRPDGFVf·�WcS���¼ SS± '��ÒS�¯ �I[ nXopDGF�=PFBf?�=@F�i�IaJZR@DGF!Bf?�=@Y*U�baIKg�U�RPIK?�JZ?�B.Y*U�RPDGF�YZU�RPIQCNuIKJsRSdAh`F!RPDOF?�=@d�i�tuFDOU#\�F!R@?sc�F�U�cGbKF�RP?*Bf?�=PY N�?�Y*FjRPDOIaJGLZbKIKH�F,RPDOFZ² RSdAh�F�?�B{L�=@?�WOhON´Kn | N!U�JqFjlGU�YVhObaF�iGbaFRrWONNPFFZteDOU�R�UqL�=@?�WGh�bK?A?�HXN,baIKH�FMIaJ~°����Xn ��IK\�F�J * � � , � ��i;U '��ÒS�¯ �3S�»UW� � IKN�UyRPWGhObaFCj?�JONPIKN�RPIKJGL*?�B;RPDGF,R@F=@Y*N

� � *�¡ *�¡ *� � *

* ) � � *�¡ *

Page 56: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{�������������R@DGF�L�=P?�WGhXv NSR@=PWOCjRPWG=@F ��NPWOCED�RPDOU�RsRPDGFqBf?�babK?�teIKJGL�RSdAh`F NsU�=@FqIaJGD`U�cGIaRPF [ �ftxF]WON�F]IKJX^GlAvJG?�R@U�R@Ia?�JMBf?�=e=PF U�[GU�cGIKbaIaRSdG��n

3���£� �£ �O� * .Q� ��� X� � � § ����5 � �A��£3���� * . ���6� § ��£

3!��� * .K� * ) � ��� �6� § �#.

�G?�=*RPDGF�RSd5h�F]?�B�RPDOF]L�=@?�WGhXv N�RP=@WOC�R@WG=PFytxFqC�U�J«WONPFqRPDGF]hO=P?X[XWOCjR���R@DGF V"¼@��W SS± '��ÒS�¯ ��¹[zV9��¯O�YV"¯X�ÒWz[5S�»gW� *ki�� ��� � � v �-� � � *!�ji�IQN!� *�¡ *�¡ *!��+q� *F+q� *,¡ *�����n5z�B " ��� ��� � � v �-� � � *���iRPDOFJ � � " ��*�¡ *�¡ *�i � � � � � " �e��*�i�FjRECjFRPF=EUGn`�1?�txF\�F�=�iAR@DGIQNr[X?AF�NrJG?�R!d�FjRrC�U�hXR@WG=@F,RPDGFU�lXIK?�YZNx?�B�L�=P?�WGhXv"RPDGF�?�=@d�nA�G?�=uR@DGIQNptuF�CU�JMWONPF�RPDGF>5Tv"RSdAh`F���R@DGF V9¼@�ZW SS± '���S�¯ ��[ S�»gW� *�i� ��� � � � *!��i`IKNe[GFj^OJGF [yc5d� ��� � � � *!�p��§*5 �!� *�¡ *�¡ * . 5 �5� * . 5 * ) �X� *,¡ * .�� 3���£/ �£ �O� * .Q� ��� X� � �k§�����5 � �A��� �

� 3���� * . � �6�w§������� 3���� * .Q�3* ) � ��� �#�y§ ����n

 1?�t�i�IaB " ��� ��� � � � *!�jiktxF�CU�J©Fl5R@=@U�C�R�RPDOF�FbKFY*FJ5R@N�?�BwR@DGF�L�=@?�WOh¦N�RP=@WOC�R@WG=PFcAd hG=P?SF�CjRPIK?�JON U�N�c�FjBf?�=PF�� � � " � *,¡ *,¡ *ki � � � � � " � � *kiwFR@CFjRPF�=@UOn ¶ JOF³CU�JU�bQNP?�FjlARP=EU�CjR}hG=@?5?�B�v9R@F=@YZN]Bf?�=}RPDGF¬L�=@?�WGhGv�U�lAIK?�YZNycAd hG=P?SF�CjRPIK?�J.� � � � � � � � � � � � " ����� �3!�;£/ �£ �`� * . � � " � � � " �� G� ��§ � � " �;� � � " ��5�ji4=@FhO=PF N�F�J�R@IaJOL�RPDOFqU�NPNP?XCjIQU�R@Ia\AIaRSd�?�BrRPDOFy?�h`F�=�vU�R@Ia?�J � � " n¾AIaY*IKbKU�=PbKd�iXIaBT����*�¡ *�¡ *�i �w�* U�JO[��q��*,¡ * teIaRPD , � £ , � £ , � U�J`[ ,���hG=P?A?�B�v9R@F=@Y*N?�B4RPDOF�U�N@N�?XCjIQU�R@F�[ML�=@?�WGhXv U�lXIK?�YZN�i�R@DGFJ

�9��£ � ��£ � �.£ � , � £ � , � £ � , � £ , � �E� � �E� �1��� ��� � � � *�� .

opDGF�hG=@F�CjIQNPF!=@WGbKF�Ne?�B�RPDOF 5Tv9RSdAh�F�NpIKJ]°����*U�=@F,U�NxBf?�bKba?�t1N�n

� 5p�(�� * � � , � � (T£ ��� * � ��� � ���#�

(�� 56��� * . �~� � , � �

�E� ��£����P�(���M��* (�� ,]����� � � � (�� 56��� * . �~� � , � �

(�� � ��£ ,��x�@56�;� * . �

� � � �(�� " �@56�;� * . �(�� � � " ��*

� � � �(�� " �@56�;� * . �

(�� � � " ����� � � " � �

opDGF1=@F�[XWOCjRPIK?�JZ=@WGbKF�N>U�NPNP?XCjIQU�RPF [�RP?,RPDOFrhOU�Ia=@IaJOL�U�JO[VhG=@? SF C�RPIK?�JZC?�JON�RP=@WOC�R@Ia?�JsU�=@FxRPDGFWONPWOU�b%?�JGF�N�� � � � ��£ ,��>¡ �wU�JO[ � � � ��£ ,2�>¡ ,�n

opDGF�NPFe=PWObaF N>U�bKba?�t¬RPDOFeBf?�=@YZU�RPIK?�JV?�B�R@DGF�²�[XFh�FJO[GFJ5R>RPWOhGbaF N´�tuFeJOFF�[VBf?�=�Bf?�=@YZU�bKIag�IaJOLJG?�RPIK?�JON!baIKH�F ��=@?�WGh}U�JO[ �1IaJGL`n | J}F�\�F�J}Y*?�=@FkL�FJGF�=@U�b;U�hOhG=P?5U�CEDqR@?�txU�=@[GN1RPDGFVR@DGF?�=Pd

Page 57: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � �

?�B{L�=@?�WOhONxtu?�WGbK[wc�F,RP?ZU�bQN�?ZU�cONSR@=@U�C�Rp?�\�F�=uR@DGF�CU�=P=@IKF=xRSdAh`F�iG?�cXREU�IKJGIKJGL

� ��� � � ��§ 5 *�� � , � �. 5 �!� *�¡ *�¡ * . 5 �5� * . 5 * ) �G� *�¡ * .��3!��£� �£ �`� * .K� �� G� � ��§F����5 � �A�������3!��� * . � �6�y§F��� ���3!��� * .K� * ) � ��� �6�w§ ��� .

opDGIQNrC�U�J]c�Fk[X?�JOF�cAdyU�J]F�U�NPdMFlARPFJ`N�IK?�J]?�B4R@DGFk=@WGbKF�N�iOU�bKbK?�teIaJGL*R@?ZBf?�=@Y 56��� * . ��U�bQNP?Bf?�= * � � , � � � �

� 5 � �(���* � � , � � � (>£E��� * �.�©� � , � �

(�� 56��� * . �©� � , � ��1?�txF\�F= i�I_B%txF1tpU�J5R�RPDGF!N�dXN�RPFY¦RP?�=@FYZU�IaJZCj?�JONPIKN�RPF�J�R i�txF1CU�JZJG?�RTU�babK?�t)56�;� � , � � . �¨�� , � ��n��rFJOCFetuFpYkW`NSR>hGWGR 56��� � , � ��. �©� � , � � � n�opDGIKN{IKY*hGbKIaF N{RPDOU�R � ��� � � � � , � � � i�teDGIQCEDYZU#dsJG?�Rpc�F�[XF N�IK=@U�cGbKF�n

��FeYZU#dk?�cONPF=@\�FuRPDOU�R>RPDGF5Tv"RSdAh`Fec�FD`U#\�F�N{\�F=@d�YkW`CEDVbKIKH�FeU�J W�� � [zVwW�T�V � ª�� � ¯OªUT�V � Wj� n| h`U�=PR�Bf=P?�Y R@DGFZBmU�CjR�RPD`U�R"56��� * . � IKNkJG?�RkU�hG=P?�h`?5N�IaRPIK?�J�i%cGWXRVUyRSdAh�F�i;tuFsNPFF*R@DOU�R�U�fhO=P?A?�BE��RPF�=PY³?�BORSdAh�F�56��� * . �]IQN�Cj?�J`NSR@=PWOCjRPF [�Bf=@?�Y³UrRPF�=PY ��?�BORSdAh�F *~Bf?�=�teDGIQCED ��� � � �DG?�bK[GN�n�opDOFT?�R@DGF=�txU#d�U�=@?�WGJO[.ijBf=@?�Y U��fhG=@?A?�B@� RPF�=PY " ?�BARSdAh`F 56��� * . �y?�JGFTC�U�J�C?�JON�RP=@WOC�RRPDOF ��� V{TIW�[c[ � � " U�JO[kRPDGFphG=@?A?�BGR@DOU�R{Bf?�=;R@DGIQN{teI_R@JGF�N@N �]DG?�bK[GN�n�opDGIQN{\�F=@d�CjbK?�NPFbKd,=PF �OF�CjR@NRPDOF,C?�JON�RP=@WOCjRPIK\�F�IaJ5RPF�=PhO=PFR@U�R@Ia?�Jw?�B�R@DGF,FjlXIKN�RPF�J5RPIQU�b.­5WOU�J5R@I_^OF�=�� ² I_B �0��� * . ��IQNe[XF�=PIK\�U�cGbKF�iRPDOFJ�RPDGF�=PF*FjlXIQNSREN,UMR@F=@Y �qBf?�=,teDGIQCED ��� � � �>IKN�[XF�=PIK\�U�cGbKF�´���n.opDOFVW`N�FV?�B!5Tv9RSdAh�F�N!Bf?�=RPDOFkFjlXIQNSR@FJ5RPIQU�b4­5WOU�J5RPIa^OF�=1=PF ­5WGIa=@F�NeRPDOU�R 56��� * . ��� ������� �fJO?�R!?�B{RSd5h�F � , � � �1IaJ}°����Gnz Jq?�=E[XF=xR@?*U�CEDGIKF\�F�R@DGIKN1tuF�Cj?�WGbQ[MY*?X[XIaBfdsRPDOF 5Tv"=@WGbKF,U�NxBf?�bKba?�t1N�n

� 5p�(���* � � , � � (T£ ��� * � ��� �����#�

(�� 56��� * . �¬� � ���#��1?�txF\�F= iXRPDOF�U�[O[XI_R@Ia?�J�?�B�R@DGIQNr=@WGbKF�RP?q°�����ZYZU�H�F�N1RPDGFVN�dXN�RPF�Y IKJOC?�JONPIKN�RPF�J5R�nOz J�RPDGFCU�N�Fx?�B.°`< � ( �

�i�IaR�IKN�h�?�N@NPIacGbKFuRP?�U�[O[�U�5Tv"RSd5h�FxRPDOU�R�=PF�hG=PF N�F�J5R@N;RPDGFeFlXIKN�RPF�J�R@IKU�bG­5WOU�JXv

RPIa^OF�=�i5teDGIKbaF!=PF�Y*U�IaJOIaJGL�Cj?�J`N�IQNSR@FJ5R�i�cGWXRx?�JGbKdVBf?�= * �-�����jn ¶ JZRPDOFr?�R@DGF=uDOU�J`[%i�?�JGFrYZU#dtx?�JO[XF�=�teDGFjR@DGF=xU>5Tv9RSdAh�FeIKN>RPDGF!Cj?�=@=@F�C�R{Bf?�=PYZU�bKIKg�U�R@Ia?�J�?�B�RPDGFrC?�JON�RP=@WOCjRPIK\�FpFjlXIQNSR@FJ5RPIQU�b­5WOU�J5R@I_^OF�=�i�c�F�C�U�WONPF�IaR�Cj=@F�U�RPF�N�NPFjR�v"RPF�=PYZN!RPD`U�R�[XFh�FJ`[}?�J}hG=@?A?�B�v"RPF=@YZNn��G?�=,FjlGU�Y*hGbKF�iIaB�tuF!hGWXR �*�056�;� * . ��IKJsR@DGF�C?�J5RPFlARuteDGF�=PF 56��� * . ��IKNpU�hO=P?�h`?5N�IaRPIK?�J�� 56��� * . �~� � ���#� ��iRPDOFJ � � �w�#* � * �#��� �P��n�¾A?stxF�DOU#\�F�U�J]FbKFY*FJ5R�v�FjlXhG=@F�N@NPIa?�J�� � � �5�xR@DOU�R�[XFh�FJO[ONr?�JqUhG=@?A?�B�� �A��i�U�BfF U�RPWO=PF1U�baIKFJVRP?�?�=@[GIaJOU�=PdkhG=PF [XIQCU�R@Fpba?�L�IQC�i�teDGF�=PFpR@DGFeFjlXhG=@F�N@NPIa?�JXv"bQU�JOL�WOU�L�FIQNpcGWGIKb_RrWOhyIKJO[XF�h`F�JO[XF�J�R@badw?�B4RPDGF�hO=P?A?�BmN�n

��"��#" 0 T�º�¯O��V � »UW � ¼@��W�[| cOU�NPIQCuJO?�RPIK?�J�IaJVbK?�L�IQCxU�JO[VN�FR{RPDGF�?�=@d�IKN{IKJO[XWOCjRPIK?�J.��teDOFJ*U�NPFjR�IQN{[XFj^OJOF�[VIaJ`[XWOC�R@Ia\�FbKd�itxFeWGJO[XF�=@N�R@U�JO[*I_RxU�N�c�FIKJGLZ² cGWGIKb_RxWGh*Bf=@?�Y R@DGFrc�?�RPRP?�Yy´�cAd�U�NPFjRT?�B�c`U�NPIKC1C?�JON�RP=@WOCjRP?�=EN�n(>bKFY*F�J�REN1?�BTN�WOCED�UwN�FR!CU�J�c�F�[XF Cj?�Y*h�?�NPF�[qIKJ�²�N�YZU�bKbKF=rF�baF�Y*FJ5R@N�´`IKJ}UZtxFbKbav9Bf?�WGJO[XF [YZU�JGJOF= n�opDGIQN>L�IK\�F N�WON>RPDGF1hO=PIKJOCjIKhGbKF�NT?�B{² hO=P?A?�B�cAd�IKJO[XW`C�RPIK?�J�´�U�J`[y² BfWGJ`C�RPIK?�Js[GFj^OJGIaRPIK?�JcAds=@F�CjWO=@NPIa?�J.´Kn

Page 58: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{�����������z�B.tuF!txU�J�RTRP?kU�[G[ZIKJO[XWOCjRPIK\�F1RSdAh�F�NTRP?�?�WG=TRSd5h�F1R@DGF?�=Pd�i�txF1DOU#\�FeRP?kU�[G[sU�[GFj^OJGIaRPIK?�J

Y*F�CEDOU�JGIQN�Y RPDOU�R4U�babK?�t1N%WON�RP?1IKJ5RP=@?X[XWOCjFuUeJGFt�IKJO[XW`C�RPIK\�FTRSdAh`F�i�cAd�L�IK\5IKJGLeR@DGFTJ`U�Y*FTU�J`[RPDOF*C?�JON�RP=@WOCjRP?�=EN�?�BuRPDGF*IKJO[XWOCjRPIK\�FVRSdAh`F�n.opDGFVRPDGF�?�=@d}N�DO?�WGbQ[}U�WXRP?�Y*U�RPIQCU�babKd]L�F�JGF=EU�R@FU*NPCEDOFY*F,Bf?�=ehG=@?A?�B�v�cAd�v�IKJO[XWOCjRPIK?�JqU�JO[qU*NPCEDOFY*F�Bf?�=1hG=@IKYVIaRPIK\�F,=@F�CWG=@NPIK?�J.nXz�ReR@WG=PJ`Ne?�WXRRPD`U�RpRPDGIQNeCU�Jwc�F�[X?�JOF�\�F=@d*L�FJOF=EU�bKbadZIKJMRSdAh�F�RPDGF�?�=@d�iAIaJ`CjbKWO[XIKJGL*\�F=@dZYZU�JAdZIKJONSREU�JOCF�N?�B{IKJO[XWOCjRPIK?�J.nO�rF=@F,tuF�NPDOU�bKb%WONPF�U*\#U�=PIQU�J5Rp?�B4RPDGF�IKJO[XW`C�RPIK\�F,RSdAh�F�NpR@DOU�RrU�=PF,hG=@F�NPFJ5ReIKJRPDOFMN�dXN�RPF�Y �u?X­�� ¶ � �������� �>U�JO[�RPD`U�RktxF=@FV^O=@N�Rk[XF^OJGF�[�IKJ~�u?X­�W`U�JO[�U�J`[�<�U�WGbKIaJXv ]?�DG=PIKJGL � �$���%&���n

��FwIabKbaW`NSR@=@U�RPFsR@DGFM=@WGbKF�N�Bf?�=VIaJO[GWOC�R@Ia\�FsRSdAh`F NkIKJ¬°����]cAd�^`=@N�R�RP=@F�U�RPIKJGL]R@DGF��m\�F�=PdcOU�N�IQC��xFlXU�Y*hGbaF,?�B4JOU�RPWG=EU�b�J5WOYkc�F=EN )�� �jn ��F�tx?�WGbQ[wbaIKH�F,R@DGF�WONPF=pR@?Zc`F�U�cGbaF,R@?Zte=PIaRPFNP?�Y*FjR@DGIaJOLVbKIKH�F

1 ) � � � �+* ��� ) � �x� � , � ����§&*� ) � �� � � ) � �@¡ )�� � .

RP?*?�cXR@U�IaJyRPDOF,Bf?�bKba?�teIKJGLV=PWGbKF�N�n

�fF�baIKY � �(�� * � � , � � (��M� � �* (��y� � � ) � �@¡ *,¡ *

(�� & � � � ��� � � � � � ) � ��¡ *

�fF�baIKY � �(��.9¦� )�� �@¡ ������� (��w� � � 9 & (��y� � �73!��� ) � � . 9 �%¡%9Z� � ���

(�� & � � � ��� � � � � � 3!�;� ) � � . 9 �opDGF�=@WGbKF*�mFbKIaY � �xU�bKba?�t1NxR@DGF�[XFj^`JGI_R@Ia?�Jq?�B�BfWOJOC�R@Ia?�JONecAdshG=@IaY*IaRPIK\�F,=@F�CjWO=@NPIa?�J.nGopDGF,=@WGbaF�fF�baIKY � �sU�bKba?�t1N*hG=@?A?�BmNZcAd¬IaJO[GWOC�R@Ia?�J.nxo;?�YZU�H�F�N�WG=@FqRPD`U�RsR@DGF]BfWGJOCjRPIK?�JONw[XFj^`JGF�[«cAd�fF�baIKY � �pC?�Y*hGWXR@F,IaJyRPDOF�Cj?�=@=@F�C�RptpU#d�i & � � � ��� D`U�NxRPDOF,Bf?�bKba?�teIKJGLV=PF [XWOC�R@Ia?�Jq=PWGbKF�n

& � � � ���"� � � � & ¡ � � �& � � � ��� � � � � � � " � ¡ � � � " � & � � � ��� � � � � " �

z�RpIKNxWGJ`[XF=ENSR@?A?A[sRPDOU�RuR@DGF�U�[G[GI_R@Ia?�JOU�b �fv"=@F�[XW`C�RPIK?�JwIKNpU�bKNP?kIKJOCjbKWO[XF [sIKJMR@DGF ��S�TO»UWj�c[ � S�T v=@WGbaF��mCj?�JA\X�ji;teDOF=@FstuFwJG?�t©DOU#\�Fq² * § � � �M´4U�NkU�NPIQ[XFjv Cj?�JO[XIaRPIK?�J.n4opDGFwNPWGcON@Cj=@IahGR�IKJ& � � � ���{teIKbKb.c`F�?�Y*I_RPRPF�[.iGteDGFJ]CbaF U�=xBf=P?�Y¨RPDOF�Cj?�J5R@FjlAR�n

| J�FjlGU�Y*hGbKFk?�B>RPDGF*WONPFV?�B!�mFbKIaY � �!IQN�IaJ}RPDGFZ[XF^OJGIaRPIK?�J}?�B>RPDOFw²�[X?�WGcGbKF�´�BfWGJOCjRPIK?�J � iteDGIQCEDqIKNe[XF^OJGF [wcAd

� ��§ & � � � ��� &O�9° ��� ) � � . °� �� ) � � . � � � �5 X�P��� . 1?�t�i � &Z¡ ¡ � � &MU�JO[ � � � ���e¡ ¡ � � � � � � � ���P��n%opDGF�hG=PF [XIQCU�R@F�?�Be² c`F�IaJOLMF\�FJ.´Ki�� ��� ) ���r��iCU�JyU�bKNP?*c`F�[GFj^OJGF [yc5dMWON�IKJGL]�fF�baIKY � �j�

� � � ) � �r�x��§ & � � � ��� �)%,�j�9° ��� ) � � . ° � � �����#� . & � � .��F�?�cXREU�IKJwIKJO[XF�F�[wRPDOU�R

� ��� ) � &�� ¡ ¡ � � %�£� ��� ) � � ��� ¡ ¡ � � &�� ��� ) � ���

Page 59: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � �

| J]FlXU�Y*hGbaF�?�B{RPDGF�W`N�F�?�Be�mFbKIaY � �pIQNpRPDGFkhG=P?A?�B4?�B�3���� ) � � . � � � ) � � ���jn�¾GU#dsRPD`U�R � � ���kIKNNP?�Y*FZCU�JO?�JGIQCU�b�IaJGD`U�cGIaR@U�J�R�?�BuRSdAh�F %�n �rNPIaJGL � ��� ) � � � � ���P��§ � � &�&�� � � ) � � ����tuFV^OJO[RPD`U�R!° ��� )�� � .�°��.� � � � ) � � ��� . ° �O� &�� ��� ) � � ��� . � �]IKNe?�B�RSdAh�F�3!��� ) � � . � ��� ) � � ���P¡ � � � ) � � � � �����jn¾A?*txF�Cj?�J`CjbKWO[XF�RPDOU�R

� & � � � ��� � � � ���"° �;� )�� � .�° ��� � � � ) � � ��� . ° �O� &�� ��� ) � � ��� . � ���p� 3���� )�� � . � � � ) � � ��� .| JG?�RPDGF�=�txFbKbav"HAJG?�teJ�FlGU�Y*hGbKFkIQNrR@DGFVRSdAh`FV?�BTbKIQNSREN!?�\�F=�Uw[X?�YZU�IKJ �]n�z�R�IKN,[XF^OJGF [

U�NxBf?�babK?�t1N�n12)�� � � �+* ��� �!* �p� � , � ����§

� *2'5� �!* ���� �#)� � �w¡ �!* �@¡ �!* �

teIaRPDyRPDGF,Bf?�babK?�teIKJGL*=PWGbKF�N�n

�mFbKIaY � �(�� * � � , � � (��y� � �* (��y� � � �y¡ �!* �@¡ *,¡ *

(�� & � � �� � � � � � � � �!* �@¡ *

�mFbKIaY � �(�� 9¦� �!* �@¡ ������� (��w� � � 9 � *2' (��w� � � 3 � � � . 3���� �!* � . 9 ��¡�9Z�'� �#)� � ���

(�� & � � �� � � � � � � � 3���� �!* � . 9 �opDGF�=PWObaFV�fFbKIKY � �uU�bKba?�t1N>RPDGF,[XFj^`JGI_R@Ia?�JM?�B.BfWGJOCjRPIK?�JONxcAd*hG=PIKY*I_R@Ia\�Fr=@F�CWG=@NPIK?�J.i5teDGIKbaFrRPDGF=@WGbaFy�fF�baIKY � �rU�bKba?�t1NrhG=P?A?�BmNrcAdyIaJO[GWOC�R@Ia?�J.n%o�?wY*U�H�FkNPWG=@F�R@DOU�R�RPDGFkBfWGJOCjRPIK?�JON,Cj?�Y*hGWXRPFIKJwR@DGF�Cj?�=P=@F�CjRxtpU#d�i & � � �� � � DOU�NxR@DGF,Bf?�bKbK?�teIaJGLV=@F�[XWOCjRPIK?�Jq=@WGbaF�n

& � � �� � � � � � � � *2' ¡ � � �& � � �� � ��� � � � �'� �#)� � " � ¡ � � � � " � & � � �� � � � � � � " �

| JZFlGU�Y*hGbKFe?�B�RPDGF1W`N�F1?�B & � � �� � �.IQN>IKJ�R@DGFr[XF^OJGIaRPIK?�JZ?�B�R@DGF�² YZU�h.´�BfWOJOC�R@Ia?�J*RPDOU�R>R@U�H�F�NUkBfWGJOC�R@Ia?�J��]� �w¡ � U�JO[w=PFRPWG=@JONuRPDOF!BfWOJOC�R@Ia?�J��m?�B�RSdAh�F �!* �@¡ �!* ���TRPDOU�ReU�hGhGbKIaF N1�yRP?U�bKb%FbKFY*F�J�RENe?�B;RPDGF�bKIQNSR n��rF^OJGF

. �-� ��§ °��4� �w¡ �2.�°���� �!* � . & � � �� � ��� *2'_�9° � � � . °���� �!* � .�° ��� �!* � . � �#)� �9� � � ���� � �y¡ �M�@¡ �!* �@¡ �!* � .

opDGF�J . �-� �{�'� �#)� � " �>§ � � � ��)� �"� � � . �-� � " .¶ BxCj?�WG=EN�F�iOR@DGF=@F*IKN,UwYV?�=PFVL�F�JGF=EU�b4hOU�R�RPF�=PJ�c�FDGIKJO[}RPDGF N�FVRStx?wFlXU�Y*hGbaF Nn%opDGFVFjlAv

RPF�JONPIa?�Jw?�B�°�����teIaRPDqIKJO[XWOCjRPIK\�F,RSdAh�F�NpIQN1[XFj^`JGF�[ycAdMU�[O[XIaJOL�R@DGF,Bf?�bKbK?�teIaJGLZN@CEDGFY*F�n

1 ) � � � �+* � ��� � , � ����§� �#)� � � � ������ ����@¡ ���������

�� ����@¡�

nnn� � ��)� � � �w��� �� ����P¡ ����� � �

�������@¡�

teDGF�=PF,R@DGF � �� ����1U�=PF�U�bKb�² RSdAh`FkN@CEDGF�YVF NeteIaRPD�UZN�RP=@IKCjRPbKdMh�?�NPI_R@Ia\�F�?AC�CjWG=@=@FJOCF�?�B��´ai`I9n F�nF�U�CED � �� ����!IQN,?�BTR@DGFVBf?�=@Y * � ¡ ������* � ¡ � teIaRPD�JG?q?AC�CjWG=@=@FJOCFk?�B�~IKJ�RPDGF *��wU�J`[

Page 60: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{�����������FIaRPDOF= � � �?�=��JG?�R�IaJ ��n`opDOIKN,[XF CjbQU�=EU�RPIK?�J]?�B �IaJ5R@=P?X[XWOCF�N��U�N�UM[XF^OJGF []RSdAh`FU�J`[,I_R4L�FJOF=EU�RPF N�RPDGFxCj?�JONSR@=PW`C�RP?�=@N � �#)� � � � £ . . .£ � �#)� � � � hGbKWON%R@DGFuU�NPNP?XCjIQU�RPF [�FbKIaY*IKJOU�R@Ia?�J=@WGbaF NrU�JO[yRPDGF�=PF [XWOCjRPIK?�J]=@WGbaF Nn��G?�=!UZL�FJGF�=@U�b.hGIQC�RPWO=PF�?�J]IaJ`[XWOC�R@Ia\�F�RSdAh�F�N1txF�=@FjBfF�=1RP?<�U�WObaIKJXv ]?�DG=@IKJGL � �$�%� � ��n

o�?,IKbabKWON�RP=EU�RPFxR@DGFeL�F�JGF=EU�bKI_RSd�?�B�IKJO[XW`C�RPIK\�FxRSdAh�F�N�i�tuFpL�Ia\�FpU�J�FlGU�Y*hGbKFx?�B�U�JVIKJO[XW`C�RPIK\�FRSdAh`FkRPDOU�RrIQNrY*?�=@F�Cj?�Y*hGbaIQCU�RPF [yRPDOU�J )�� �1U�JO[ �!* ��n ��F�txU�J5R1RP?M[GFj^OJGFkRPDGF�RSd5h�F ��� � �?�B4Cj?�WOJ�REU�cGbKd*cG=EU�JOCEDGIKJGLkRP=@FF�NxteIaRPDwbKU�c`F�bKNxIKJ �]n.�"¾A?VU�RPF�=PY¨?�B�RSdAh`F ��� � ��=PF�hG=PF N�F�J5R@NTURP=@FF�teDGF=@F�R@DGF*JG?X[XF�N�U�J`[]baF U#\�F N!U�=PF�bQU�c�FbKbKF�[�teIaRPD�UZR@F=@Y ?�B>RSdAh�F � U�JO[�teDOF=@F�U�RF\�F=@dkJG?X[XFrRPDGF�=PF�U�=@F1Cj?�WGJ5R@U�cObadVYZU�JAdZN�WGcGRP=@FF�N�n���opDGF![GFj^OJGIaRPIK?�JM?�B ��� � �1IQNuU�N�Bf?�babK?�t1Nn

1 ) � � � �+* � � ��� � ��� � , � ����§��� � � � �w¡ ��� � �� ��� * ) � �y¡ � )�� �@¡ ��� � � �@¡ ��� � �

�1F=@F�i ��� � � Cj=@F�U�R@F�N!U*RP=@FFVCj?�J`N�IQNSR@IaJOLs?�B�SWON�R�UZbaF U�BSi�bKU�c`F�babKF�[�c5d]UsRPF=@Y ?�B{RSdAh`F �]nopDGFsC?�JON�RP=@WOC�R@?�= ��� * ) REU�H�F�N�UqbQU�c�Fbr�m?�BxRSd5h�F �M�,U�JO[�U�J�IKJX^OJGIaRPF}�9Cj?�WGJ5R@U�cObaF#��baIQNSR�?�BRP=@FF NxRP?ZCj=@F�U�RPF�UVJGFt RP=@FF�nGopDGFs�fF�baIKY � �x=@WGbKF,IKNeU�NxBf?�bKba?�t1N�n

�mFbKIaY � �(�� * � � , � � (��y� � � �w¡ * (��M� � � �w¡�� ) � �@¡ ��� � � �P¡ � ) � �@¡ *��P¡ *

(�� & � ����� ��� � � � � � ��� � �#¡ *

& � � ��� ��� DOU�NxR@DGF,Bf?�bKbK?�teIaJGL*=@F�[XW`C�RPIK?�Jy=@WGbaF�n

& � ����� �� � � � � � ��� � � � � ¡ � � � �

& � ���� �� � � � � � ��� * ) � " � ¡ � � � � " �9° ��� ) � � . & � ����� �� � � � � � " �����

z�RpIQNpU�JwIaJ5RPF�=PF NSR@IaJOL�FlAF�=@CIKNPF1R@?V[GFj^OJGF�U�bab�HAIaJ`[GNx?�B4N�R@U�JO[GU�=@[*BfWOJOC�R@Ia?�JONp?�J ��� � ��iAbaIKH�FRPDOF*BfWGJOC�R@Ia?�J�RPDOU�R�R@U�H�F�N�R@DGFs¢�R@D�NPWGcXR@=PF�F��fIaBxIaRkFlAIQN�R@N�U�J`[}REU�H�F ��� � � ��?�RPDGF�=PteIQNPF ��?�=RPDOF,BfWGJOC�R@Ia?�JyRPDOU�Rr[XF�CIK[XF NpteDGFjR@DGF=!UkR@=PF�F,IKNeIKJX^OJOI_R@Fs�f?�=�SW`NSRrUZNPIaJOL�bKF�bKF�U�B@��n

�G?�= ��� � ��iXtuF�D`U#\�F!RPDGF,Bf?�babK?�teIaJOLq�mFbKIaY � �x=PWGbKF�n

�fF�baIKY � �(��.9 � ��� � �#¡ ������� (��y� � � 3 � � �2. 9Z� ��� � � � �(��y� � � 3 � � �2. 3 " � )�� �P¡ ��� � �.Q� 31¢�� ) � � . 9Z� " ¢����P¡-9Z� � � * ) � " �

(�� & � ����� �� � � � � � 3!�;� ��� � ��. 9 �| JG?�RPDGF�=sIaJ5R@F=@F�N�RPIKJGL�FjlGU�Y*hGbKF]?�B,IaJ`[XWOC�R@Ia\�F]RSdAh`F NsU�=@FqIaJ`[XWOC�R@Ia\�FbKd¬[XF^OJGF [ ���ÒSE��S�¹

[ � V � S�T�[ n | J�FlGU�Y*hGbKFMIQN�RPDOFyC?�J SWGJ`C�RPIK?�J�i;teDGIQCED�DOU�N�?�JGFwC?�JON�RP=@WOC�R@?�=M�fRPDGFyhOU�Ia=@IaJOL5��n��IK\�FJ �~U�JO[ ��?�B;RSd5h�F ������� iXIaRrCU�Jyc�F�[XF^OJGF�[qU�NxBf?�bKba?�t1N�n

12)�� � � �+* ��� � ����� � ���#� ��§� � * � ���>¡��e¡ � � � �p�

| N{txFx[X?�JG?�R4DOU#\�FTR@DGF,� ������� £ � , � � ��=@WGbKFuIKJZ°�����Xi�txFxC�U�J�?�JGbKd�Cj?�JON�IQ[XF�=;R@DGFpN�F Cj?�J`[FbKIKYVIKJOU�RPIK?�J]=@WGbaF�iOteDGIQCED�teIKbab;?�JGbKdqU�hGh�F�U�=1IaJ�RPDGFkC�U�NPF�teDGF�=PF>9�IQNrUsC?�JON�R@U�J5R1?�B�RSdAh`F

Page 61: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � �

������� n%�9¾X? 9¦� � ���#� IKJON�RPF�U�[s?�B�9³��� ���e¡ �����#� n �uopDGF�FbKIaY*IKJOU�R@Ia?�Js=PWObaF*�fF�baIKY � �u=PWObaF!IKNRPDOFJ]U�NxBf?�babK?�t1Nn

�fF�baIKY � �( �.9¦� � ���#� (��y� � ���>¡��p¡�9

(�� & � ��� � � �`� � ���p�P¡�9�udqREU�HAIKJGL � �m=PF N�h�F�CjRPIK\�F�bad �x�rBf?�= 9 U�JO[}° ��� � .�°# �� � . ���f=@F�NPh`F C�RPIK\�F�bad�° ��� � . °� �� � . X�

Bf?�=r� � iX?�JOF�F�U�NPIKbadZ=@F�C?�\�F=ENTRPDGF�txFbKb_v�HAJG?�teJMhO=P?SF�C�R@Ia?�JsBf=@?�Y � � ��RP?�� �m=PF N�h�F�CjRPIK\�FbKd�x�jn

� S��ÒW+';W�T§Wj�@ª�� � T�º�¯O�YV � »UW�ºGW T � V � SUTZ[| c�?�\�F�txF�D`U#\�Fr=@F�N�RP=@IQC�RPF [s?�WG=@NPFbK\�F N>R@?ZUVNPh�F�CjIa^`C,CjbQU�N@Nu?�B;IKJO[XW`C�RPIK\�F�RSdAh�F�N�nGopDGIKNeCbKU�NPNIQN�\�F�=Pd�L�FJGF�=@U�b9i.C?�\�F�=PIKJGLqU�bKb{RPDGFMNP?]CU�babKF�[¬²�U�bKL�FcO=@U�IKCkRSdAh`F N´Ki�cGWGR�I_R�N�RPIKbKbTCU�J�c�FZFjlAvRPF�JO[XF [%n�opDGF�=PFeU�=PFxRPDO=PF�FeY*U�IaJ*Fl5R@FJONPIK?�JON{R@DOU�R>txF1[XIQNPCWON@N{cG=PIKF �`dkcAd�NP?�Y*FpY*?�RPIK\�U�R@IaJGLFjlGU�YVhObaF NnGopDGF�dMU�=@F��n.<�U�=EU�Y*FjR@=PIQC!z JO[XWOCjRPIK\�F�oTdAh�F�N�Gn%z JO[XWOCjRPIK\�F�oudAh`F NpteI_R@D)�!Fh�FJ`[XFJ5R,�u?�JONSR@=PW`C�RP?�=@N�On%z JO[XWOCjRPIK\�F�<T=PF [XIKC�U�R@F�N

�U�J5dM?�B�R@DGF�NPF�FjlAR@FJONPIa?�JONp?XCCWG=pRP?�L�FjR@DGF=eIKJyYV?�=PF,IKJ5RPF=@F�N�RPIKJGL*FjlGU�YVhObaF Nn<>=@?�cOU�cGbad,R@DGFpY*?�N�R{txFbKbav"HAJG?�teJVN�IaRPWOU�RPIK?�JV?�B%U�² hOU�=@U�Y*FjRP=@IQC>RSdAh�F�´�IQN4RPDGFpRSdAh�Fe?�B�² bKIKN�R@N

?�\�F�=uU�RSd5h�F ��´anX�1F�=PFrRPDGF!RSdAh`F �½IQN SW`NSReU�hOU�=@U�Y*FjRPF�=���hG=@IaY*IaRPIK\�F�=PF CjWG=EN�IK\�Fe?�h`F�=@U�RPIK?�JON?�JwbaIQN�R@Ne[X?VJG?�Re[XF�h`F�JO[M?�JsR@DGF�N�h�F�CI_^`C,CEDG?�IKCF1Bf?�= ��n | h�?�N@NPIacGbKF�txU#dVBf?�=e[XF^OJGIKJGL�RPDGFRSdAh`F�?�B �Oª��Pª�®AWYV"� � �k� � [cV\[ tu?�WGbQ[Mc�F,RPDGF,Bf?�babK?�teIKJGLOn

1 )�� � � �+* � � �!* �p� � , � ��¡ � , � ����§� *2'A� 3 �]� � , � �.Q� �!* � �M�� � �#)� �73 �]� � , � ��. �y¡ � �!* � �M�@¡�� �!* � �M� .

��DGIQCEDqtu?�WGbK[wL�F�JGF=EU�R@FrR@DGF,Bf?�bKbK?�teIaJGL*F�baIKY*IaJOU�RPIK?�Jy=PWObaF NeU�JO[y=@F�[XWOCjRPIK?�Jy=PWObaF�n

�mFbKIaY � �(�� � � � , � � (�� * � � , � � (��y� � �* (��y� � � �w¡�� �!* � �M�P¡ *�¡ *

(�� & � � �� � ��� � � � �O� �!* � �M�@¡ *

�mFbKIaY � �(�� � � � , � �(��.9³�`� �!* � �w�P¡ � ���#�

(��w� � � 9Z� � *2' �M�(��w� � � 3 � � � . 3������ �!* � �M� . 9 ��¡-9Z�'� �#)� � � ���

(�� & � � �� � ��� � � � � 3������ �!* � �w� . 9 �

& � � �� � � � � � � � � *2' �M� ¡ � � �& � � �� � � � � � � �)� ��)� � � " � ¡ � � � � " � & � � �� � � � � � � " �

o�?Vc`F�U�cGbaF�R@?�te=@I_R@F�[G?�teJMR@DGF�RSd5h�F�?�B�R@DGF�Cj?�JONSR@=PW`C�RP?�=@N � *2'�U�J`[ � �#)� iXtxF!JGF�F�[sRPDGF=@WGbaF]� � , � � � £ � , � �#��IaJ�°����Xi.teDGIQCED�Y*U�H�F N�RPDGFsNPdXNSR@FY IKJOCj?�JONPIKN�RPF�J�R n�opDGF�=PFBf?�=@F�i�RPDOIKN

Page 62: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{�����������FjlAR@FJONPIa?�Jwtx?�=@HXNTY�WOCEDyc`FR�RPF�=eIaJqU*N�dXN�RPF�Y½baIKH�F�°`< � ( �

�iXteDGF�=PF�txF,C�U�JqCj?�JON�IQN�RPFJ5R@bad

U�bKbK?�t³­5WOU�J5RPIa^`C�U�RPIK?�J}?�\�F=��� �jn���F*teIKbab�JG?�R�c`FZCj?�JOCjF�=PJOF�[]teIaRPD�RPDOF�NPF�hG=@F�CIKNPF*[XFjREU�IKbKNDGF�=PF,DG?�txF\�F= n

z J}R@DGF�FlGU�Y*hGbKF�?�BThOU�=EU�Y*FRP=@IKCkbaIQNSREN,tuFVDOU#\�F�U�bK=@F�U�[GdqNPFF�J�C?�JON�RP=@WOC�R@?�=ENeR@DOU�R�DOU#\�FU*[XFh�FJ`[XFJ5ReRSdAh`F�nGz�RpRPWG=@JONp?�WXReRPDOU�RpRPDGIQN1NPI_R@WOU�R@Ia?�Jw?XCCWG=ENpYV?�=PF�?�B�[email protected]���I_R@Dy=@F�NPh�F�C�RRP?sRPDGF�L�FJOF=EU�b�N@CEDGFY*F�iGRPDOFkFjlAR@FJONPIa?�JqRP?sIKJOCbaWO[GF�[XF�h`F�JO[XFJ5R!RSd5h�F�[}Cj?�J`NSR@=PWOCjRP?�=@NeIQNrUN�RP=EU�IKL�D5R�Bf?�=PtpU�=E[�?�JGF��#U�babX[XF^OJGIaRPIK?�JON{C�U�=@=Pd!RPDG=@?�WOL�D�IKY*YVF [XIQU�RPF�bad�n ��FuRP=@F�U�R{U�JkIKJ5RPF=@F�N�R�vIKJGL�FjlGU�YVhObaF1?�B�U�JZIKJO[XWOCjRPIK\�FeRSdAh�F��fRPDGF 5Tv9RSdAh�F ��i5teDGIQCEDZIKNu[XFj^`JGF�[ZW`N�IKJGLkU�C?�JON�RP=@WOCjRP?�=RPD`U�R�DOU�N�U][XFh�FJ`[XFJ5R�RSdAh`F�n0��FjR>� � � , � �sU�JO[ : � *�¡ � ���#� U�JO[�NPWGhGh�?�NPFVtxFZDOU#\�FU�[O[XF�[MRPDGF�=@WGbKFs� 9 ��� ,�£ � , � �#�uRP?Z?�WG=1N�dXN�RPF�Yyn

1 ) � � � �+* ����� � , � ����§1 ) � 3��O� � .Q��: �5�@¡ .

�mFbKIaY � �(�� * � � , � � (��w� � � 3��O� � .Q��: �A�P¡ *

(�� & � ��� � � � ;¡ *

�mFbKIaY � �(��.9³� ;¡ ������� (��y� � �73��`� � . 3 �����: �5� . 9Z� 12) � G�

(�� & � � � � � � 3���� .Q� 9 ���opDGF �fv�=PF [XWOC�R@Ia?�Jw=@WGbKF,IKN

& � ��� � � � 12) � �� ¡ � � � �  1?�t�iAR@U�HAIaJGL*IKJ��fFbKIKY � � ��Bf?�= * U�JO[]° �`� ��. °� ��Q� : �A� . �kBf?�=r� � iOtuF�^OJO[wR@DOU�R

& � � �9° �`� ��. °� ��Q� : �A� . �5�� 1 ) � ��>¡ ¡;�-.�1F�JOCjF�iwtxF [XF^OJGF � � ��§ & � � �9° �`� ��. °� ��Q� : �A� . �5�jnM 1?�t�iMR@U�HAIKJGL ° ��� . :Z� � � ����Bf?�=9 IaJ �fF�baIKY � ��U�JO[©° �`� ��. °� �����: �A� . Bf?�=~� � i�txF�^OJO[�RPD`U�R & � � �"° �`� ��. °� ��K� : �A� . X�¦�3��`� . :Z� � � �5�jnk�GWG=PRPDOF=@YV?�=PF�i & � � �9° �`� ��. °� ��K� : �5� . G�� 1 ) � �� ¡ ¡ Ank�1F�JOCjF�i�tuF [GFj^OJGF� � ��§ & � � �9° �O� � .�°# �����: �5� . G�*U�J`[«tuF�=@FYZU�=PH~RPDOU�R RP?�L�FjR@DGF=MteI_R@D 12) �mU�NshOU�Ia=@IaJOLCj?�JON�RP=@WOC�R@?�=��TU�JO[ � � U�J`[ � � �mU�NphG=P?SF�CjRPIK?�JONE�u=PF�hG=PF N�F�J5R@NuRPDGF 5Tv"RSdAh`F�n

| J�FjlGU�YVhObaF]?�B,U�J�IKJO[XW`C�RPIK\�F�bad�[XFj^`JGF�[«hG=@F�[GIKC�U�RPF]IQN*R@DGF�F�­5WOU�baIaRSd�i�teDOIKCED C�U�J�c`F[XF^OJGF�[qU�NxBf?�bKba?�t1N�n

12)�� � � �+* � � � �*� �w¡ �w¡ � ���#� ��§& ��4y� 3!�;� � .K� � � � ��� .

��WONSR�baIKH�F�IaJ}RPDGF�FjlGU�Y*hGbKF�Bf?�=rR@DGF�C?�J SWOJOC�R@Ia?�J.i�tuF�?�JGbKdqDOU#\�F�R@DGF�NPF�C?�JO[�FbKIaY*IKJOU�R@Ia?�J=@WGbaF,Bf?�=eRPDOF�JG?�JGv�[XF�h`F�JO[XF�J�R�CU�NPFZ�fI"n F�n?9�?�JObady[XFh�FJO[ON1?�J �;£/ �� � cOWXRrJG?�R1?�J]U*hG=@?5?�B?�B � � �� G��n`¾A?*txF�DOU#\�F

�mFbKIaY � �(�� 9¦� �w¡ �w¡ � ���#� (��y� � � 3���� �2.Q� 9 � ���

(�� & � ����� � � �73!��£� �� � .K� � � �� X�@¡ ��9 �� G�opDGF �fv�=PF [XWOC�R@Ia?�Jw=@WGbKF,IKN

& � ���� � ��� � � & ��4 ��� ¡ � � � �

Page 63: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � &

�;(*),+�-.-�/ ���43��`3��m- � �~358 �V7m8 � ���T3 � � � � 3�� �

z J�RPDGIQNkNPF�CjRPIK?�J�txFVteIKbKbuNPDG?�t³DG?�t�U]Cj?�JOCj=@FjR@FVhO=P?A?�B�v U�N@NPIKN�R@U�J�R,tx?�=@HAN�n.�4Ia=EN�R�tuFsNPDG?�tIKJ teDOU�RytpU#d�RPDGF�DAWGYZU�J DOU�NMRP?�IKJ�R@F=EU�CjRyteIaRPD RPDGF�NPdAN�RPF�Yqn1opDGFJ U¬NPYZU�bKb�hO=P?A?�B�v[XF�\�FbK?�hOYVF�J5R;IQN;h`U�=PRPIQU�bKbad,N�DO?�teJM�fY*?�N�R{hG=P?A?�B�v"?�c SF�CjR@N�U�=PFu?�Y*IaR�RPF [O��n��4IKJOU�bKbad�IaR{IKN{NPDG?�teJDG?�t Cj?�Y*hGWGR@U�R@Ia?�JONeCU�Jwc�F�CU�hXRPWO=PF [MIKJyBf?�=@Y*U�baIKgF [sR@DGF?�=PIKF�N�n

"%$�" � ª���V � �z[z J�� �Xn �ZU�JO[���`n �wFjlGU�YVhObaF N,teIabKb�c`FZL�Ia\�FJ�?�BeU�J�F�U�NPd�i%U�JO[�UyY*?�=@F*IaJA\�?�bK\�F�[]RPDGF�?�=@FYteIaRPD�BfWObabehG=@?A?�BmN�n (T\�F�J�c`FBf?�=@FMR@DGF�NPFyFjlGU�Y*hGbKF�NVU�=@FML�Ia\�FJ.i;RPDGFy=@F�U�[GF=VteIabKbphG=P?�cOU�cObad=@F�U�bKIKgF1R@DOU�ReCj?�JON�RP=@WOC�R@IaJGL�BfWGbabKdZBf?�=PYZU�bKIKgF�[*hO=P?A?�BmN���R@DGF,hG=@?5?�B�v"?�c SF�CjR@NE�{IQNu=@FbQU�R@Ia\�FbKd�IKJXv\�?�ba\�F�[%n opDGF=@FjBf?�=PF>RP?A?�bQN�D`U#\�F>c�FF�J�[XF�\�FbK?�h�F�[A��NP?�v CU�babKF�[ ����SLS�±E¹�ªg[c[ � [cV ªUT�V�[ ��R@DOU�R�YZU�H�FRPDOIKNTR@U�N�HVY*?�=@F1F�U�N�d�n | hO=P?A?�B.U�NPNPIKN�R@U�J5RuCj?�JON�IQN�R@N>?�B�U�hG=@?A?�B.CEDGF�CEH�F=TU�JO[sU�JZIaJ5RPF�=@U�C�R@Ia\�FhG=@?A?�B�v [XF\�FbK?�hGY*FJ5ReN�dXN�RPF�Yyn

current contextcurrent goal

tactics

certifiedstatement

proof-object

proof-development system

proof-checker

proof-assistant

| hO=P?A?�B�v U�N@NPIKN�R@U�J�ReU�J`[MIaR@N1C?�Y*h�?�JGF�J�RENz J*RPDOF1hG=@?5?�B�v�[GF\�F�ba?�hGY*FJ5RTNPdAN�RPF�Y¦?�JGF1CEDG?A?�NPF�NTU�Cj?�J5R@FjlARuU�J`[kBf?�=PY�WGbQU�RPF N>U�N�R@U�RPFY*F�J�RRP?�c�F1hG=@?�\�F [�=@FbQU�R@Ia\�FuR@?,RPDOU�RTCj?�J�R@FjlAR�n�opDGIKNTNSREU�RPF�Y*FJ5R>IKNuCU�babKF�[kRPDGF 'GS ª�� n �1U�R@DGF=>RPDOU�JCj?�JON�RP=@WOC�R@IaJGLVR@DGF�=PF ­5WGIa=@F�[whG=@?A?�B�v�?�c SF C�Re[XIa=@F�CjRPbKd�iG?�JGF,WONPF�N1NP?�v CU�babKF�[ V�ª���V � �z[ R@DOU�R1L�Ia\�FUyDGIKJ�R,R@?wR@DGFZYZU�CEDGIKJGFZU�N!R@?yteD`U�R,RPDGFZhO=P?A?�B�v�?�c SF�C�R,bK?5?�HXN!bKIKH�F�n.�O?�=�FlXU�Y*hGbaF�i%I_Bx?�JGFtpU�J5R@NxR@?VhO=P?�\�F

�2��� * .K��9 � � : ���IKJ¬Cj?�J5RPFjlAR * � ��� �j£E9p£�: � *�¡ � ���#� i;RPDGF�J�RPDOF=@FwIQN�U�R@U�C�RPIQC}�S² z J5R@=P?5N´���R@DOU�R*CEDOU�JOL�F�NRPDOF�Cj?�J5R@FjlAR1cAdMhGIQCEHAIaJGLZUVBf=@F�NPD��S² U�=PcOI_R@=@U�=Pd�´��#�;� * U�JO[qU�N@NPWGY*F�N 9 ��iGRPDGF�L�?�U�b�JO?�t c�FjvCj?�Y*IaJGL : ��n{o;?}c�FwY*?�=@FMhO=PF CjIQN�F�i�txFML�IK\�FyN�?�Y*FMFjlAR@=@U�C�R@Nk?�B��u?X­�N�F NPNPIK?�JON�n;z J«�u?A­�iRPDOF 3ev U�cON�RP=EU�CjRPIK?�J�U�J`[}R@DGFy°Gv U�cON�RP=EU�CjRPIK?�J�U�=@FZ=PF�hG=PF N�F�J5RPF�[�cAd}cO=@U�CEH�FjREN�� ���������}[XFjvJG?�RPF�N 3���� * . �¦U�JO[�������������[XF�JG?�R@F�Ne° �;� * . ��nG�GWG=PRPDGF�=PY*?�=PF�i�����U�JO[wU�cON�RP=EU�CjRPIK?�JscOIaJO[

Page 64: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{�����������N�RP=@?�JGL�F=xRPDOU�JyU�hGhGbKIKC�U�R@Ia?�J.iGN�?*txF,DOU#\�F�RP?*hGWGR1cG=@U�CEH�FR@NpU�=@?�WGJ`[wU�hGhGbKIKC�U�RPIK?�J`NiAte=@I_R@IaJGL ��� ��� � ��� ��� � ����Bf?�=!3���� * . 9 ��¡(: ��nOz JwR@DGF,Bf?�bKbK?�teIaJGL`i��������� �� ��� ���*U�J`[����� �ZU�=PF!RPDGF��u?X­MhG=P?�Y*hXR@NeU�RpteDOIKCEDyRPDOF�WON�F�=eIKN1FjlXh`F C�R@F�[wRP?VRSdAh`F�NP?�Y*F�Cj?�Y*Y*U�JO[%�U�R ����� �OiORPDGFVN�dXN�RPFY IQN1IKJ�² [XF CjbQU�=EU�R@Ia?�JyY*?X[XF�´ai`teDGF=@F�RPDOF�WONPF=!C�U�J]Fl5R@FJO[yR@DGF�C?�JXvRPFlARTteI_R@DZJGFt«[XF CjbQU�=EU�RPIK?�J`N{?�=>[XF^OJGIaRPIK?�JON���U�R��������� �� ��� ���Oi�RPDGF!N�dXN�RPFY¦IKNTIaJy² hG=@?5?�BY*?X[XF�´KiGteDGF�=PF�RPDOF�WON�F�=1CU�JMRSdAh�F�IaJyR@U�C�R@IKC�NxRP?sNP?�bK\�F!RPDGF�L�?�U�b��mNE��n����� ��������������������� �� �"!����#���#�#$ � ��

����� ����������������� �&% � ��� ��� � � � �'!� ��#���#�#$ � ��� ��#���#�#$ � ��

����� � ( � ��� ������� � ��� ��� � ���)!* #$���+ � ���

,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�, ����� � � ��� ��� � ���

�������� ���- ��� �.�./0����� � #�!* #$���+ � ���

� � �1 � � ���,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�, � ���

opDGF 1 � � ���]YVF U�JON�R@DOU�RZtxFyU�NPNPWGY*FMR@DOU�R 1 IQN*U�hO=P?A?�B!?�B � �����mIaJ�?�=E[XF=�RP?Cj?�JON�RP=@WOC�R�U�hG=P?A?�B � ?�B � ���5i R@DGF=@FcAd�hG=@?�\AIK[GIaJGL�U�hG=P?A?�BO?�B � ��� ��� � ���Ai#JOU�Y*FbKd� 1 � � ��� � � iAU�JO[wDGFJOCF�?�B ������� � ��� ��� � ���5iXJ`U�Y*FbKd � ��� ����� 1 � � ��� � � n| JG?�RPDGF�=;REU�CjRPIQCTIQN>² | hOhGbad�´Kn�z�BGRPDOFxCWG=P=@FJ5R{Cj?�J5R@FjlAR{C?�J5R@U�IaJ`N2� ����U�JO[ � � ������� � ���

��� � ���ZU�J`[]RPDOF*CWG=@=PF�J�R,L�?5U�b4IKN � � �Ai`RPDGF�J}R@DGFZCj?�Y*YZU�J`[ �������� ��teIKbab>CED`U�JGL�FRPDOFpCWG=@=PF�J�R{L�?5U�b5IaJ5R@? � � �An�opDGIQN{IKN�[X?�JGFxc5d ®*ª�V��E· � T�' R@DGFxRSd5h�Fx?�B���teIaRPDVR@DGFeCjWG=@=PF�J5RL�?5U�b�teDGF=@F!RPDGF�WGJGIK\�F�=@N@U�b�\�U�=@IKU�cGbaF N!�mDGF=@F SWONSR �G�uU�=@F1RPDOF�?�JGF�NTRP?Vc�F�IKJON�R@U�J�R@IKU�RPF [%nG¾A?OiRPDOFyNPdXNSR@FY YZU�RECEDGF�N � ���]teI_R@D � � �Ai;^OJO[XIKJGL�RPDGFqIKJONSREU�J5RPIQU�R@Ia?�J�?�B3��Bf?�= ��n�opDGFhG=@?A?�B�v"RPF=@Y RPD`U�R,RPDGFZNPdXNSR@FY Cj?�JON�RP=@WOC�REN!IQN,IKJ}R@DGIKN�C�U�NPF �4�65Oi%teIaRPD75MRPDGF*d�FR,RP?yc`FCj?�JON�RP=@WOC�R@F�[whG=P?A?�B;?�B � � �An����� �����������������8� � �"!�4��#���#�#$ � ��

����� ����������������� � � ������� � ��� ��� � � �2!�9��#���#�#$ � ��

����� �:( � ��� � � �2!* #$���+ � ���

Page 65: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � �

,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�, � � �

�������� ���- ��� �.� �������� �'!* #$���+ � ���

,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�,�, � � �

| JG?�RPDGF�=xF NPNPFJ5R@IKU�bOREU�C�R@IKCrIKNpC?�JOCF=@JGF�[ZteIaRPDwIaJ`[XWOC�R@Ia\�FrRSdAh�F�N�nX�G?�=xFjlGU�YVhObaFrRPDGF�RSdAh`F?�B{JOU�RPWG=EU�b�JAWGYkc�F=ENpIQN1[XFj^`JGF�[ycAd

/ ���$ � � ����� ����� � , � � ��� ��� � � ��� � ��� ��� �"!

opDGIQNpRSdAh`F�C?�Y*F�NxR@?�L�FRPDGF�=eteI_R@D]U�JyIaJO[GWOC�R@Ia?�JyhO=PIKJOCjIKhGbKF��� ��-��0��

� � � ��� � ��� � � � ����� � � � ��� � � � ��� ��� � ��� ��� � � � ����� ��� � � ��� � � � � �opDGF�txU#d�R@DGIKN]C�U�J c`F�WONPF�[�IKNqU�NwBf?�babK?�t1Nnxz�BkR@DGF��mCWG=P=@FJ5R��sL�?�U�b�IQN � � ��IKJ C?�JXvRPFlAReC?�J5R@U�IaJOIaJGL � � ��� �OiARPDOFJyRPDGF�REU�C�R@IKC������ � �MteIKbab%hG=@?X[XWOCFrR@DGF�JGFt L�?5U�bQN � � �U�J`[ � � ��� � � � � � ��� � �� * ����n!z JO[XFF [%irIaB � IQN}U«hG=@?A?�BZ?�B � � �¬U�JO[ � ?�B � � ��� ��� � � � ��� � �� * ���#iXRPDOFJ ��� � �0�� � � � � ��teIKbab.c�F�UVhG=@?5?�B;?�B � � �5n| bQN�?VRPDOIKNpRSdAh�F3�����sC?�Y*F�NpteIaRPD]U*=@F�CWG=@NP?�= ��� � ��� � N@U�R@IKN�BfdAIaJGL

��� � ��� � �:� � � § �O� ��� � ��� � �8� ������� § �:� ��� � ��� � �8� � ���#.

z JO[XF�F�[%iXL�?�IKJGL�Bf=@?�Y¨bKFjB�RpR@?V=@IKL�D5R�i5RPDOF�NPF�U�=PF�fv"=@F�[XW`C�RPIK?�J`NTR@DOU�RxBmU�bKb%WGJO[GF=xRPDGF�<{?�IaJOC�U�=��FhG=@IaJ`CjIKhGbaF�n

| N�bK?�L�IKC�U�bX?�h�F=EU�R@?�=EN{U�=@Fp[GFj^OJGF [*IaJ`[XWOC�R@Ia\�FbKd�i�txFecOU�N�IQCU�babKd�DOU#\�FpU�babGRP?A?�bQN{RP?�[GF\�F�ba?�hYZU�R@DGFYZU�R@IKC�U�bxhG=@?5?�BmNn4opDGFMIKJ5RPF�=@U�C�RPIK\�FwN�F NPNPIa?�J�Cj?�J�R@IaJAWGF N�WGJ5R@IabeU�bKbTL�?�U�bKN�U�=@FMN�?�ba\�F�[%nopDGF�JZRPDGF!N�dXN�RPFY©IQNTN@U�R@IKN�^OF�[ZU�JO[VRPDOFrhG=@?�\�F [�=@F�NPWGbaRuCU�JZc`F�NSR@?�=@F�[VWGJO[GF=uU�JOU�Y*F1R@DOU�RIQNeCEDG?�NPFJycAdZRPDGF�W`N�F�=�n� $�������� ��� � ������

�������� ���- ��� �.�:��� ������# ��-����0�����&!����� � ��� � # �

��# ��-������� �6��# ���� �0����z JqRPDOF�hGbQU�CjFk?�B&� ��� � ��� � # �Oi5RPDGFkNPdXNSR@FY =PF�h`F U�R@NeRPDGFVN�F�=PIKF�Np?�B4REU�CjRPIQCNeR@DOU�R!txU�NpRSdAh`F [IKJ�cAdqRPDOF�WONPF=�R@?yNP?�bK\�FkRPDGF*L�?5U�b"n�opDOFVNPdXNSR@FY U�[O[GN,Uw[XF^OJGIaRPIK?�J���# � ������ � � , !�!�!RP?�RPDGF�Cj?�J5R@FjlAR�i5teDGF=@F !�!�!;IQN�R@DGFrhG=@?A?�B�RPF�=PY �9U,RSdAh`F [M°Xv"RPF�=PYs��RPDOU�RutpU�N�IKJ5RPF=EU�CjRPIK\�F�badCj?�JON�RP=@WOC�R@F�[%nGopDGF�JqbKU�RPF=pR@DGF�WONPF=1C�U�JyWON�F�R@DGF�baF�Y*Y*U*cAds=@FjBfF�=P=@IKJGLkR@?���# � ������ �`i�Bf?�=FjlGU�YVhObaF,IKJwR@DGF | hOhGbadMR@U�C�RPIQC�� � ���������# � ������ �`n

opDGFMNPFjRk?�BxREU�CjRPIQCN�U�JO[�I_REN�IKY*hGbaF�Y*FJ5R@U�RPIK?�J�RP?�L�FRPDGF�=�teI_R@D�RPDOFsWONPF=�IKJ5RPF=PBmU�CFsteIKbabdAIaF�bK[�UqbQU�=@L�F*hG=@?A?�B�v [XF\�FbK?�hGY*FJ5R�NPdAN�RPF�Yqn;�G?�=�FjlGU�Y*hGbKF�i;N�F�\�F=EU�b{R@F�CEDGJOIK­5WGF N�?�B1U�WGRP?�v

Page 66: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{�����������YZU�R@F�[�[XF�[XW`C�RPIK?�J�YZU#d]c`FZIKJOC?�=@h`?�=@U�RPF�[}U�N!R@U�C�RPIQCN�n.�xWXR�F\�FJ�I_BuRPDGF*=@F�NPWGb_R@IaJOLyhO=P?A?�B�v[XF�\�FbK?�hOYVF�J5RxNPdAN�RPF�Y½U�NxN�WOcGWGJGIaReIaJwL�FJOF=EU�b�teIabKb�c`F�bKU�=PL�F�i�RPDGF�=@FbKIKU�cGIabKIaRSdZ?�B%RPDOF�hO=P?A?�B�vU�N@NPIKN�R@U�J�ReU�NeNPWOCEDyIKNrNSR@IabKb%DGIKL�D.iGhO=P?�\AIQ[XF�[sRPDOU�ReRPDGF�hG=@?A?�B{CEDGF�CEH�F=xIKN1NPYZU�bKb9iXI"n F�nON@U�R@IKN�^OF�NRPDOF�[XF��x=PWGI SJqCj=@I_R@F=@Ia?�J.n

" !�" �Aª�®r����W�[ SS± & ��SLS�± � W»UWj��SE��® W�T�V��IK\�FJ U�YZU�R@DGFYZU�R@IKC�U�b�N�R@U�R@FY*FJ5RyteI_R@DGIaJ U~CF=PR@U�IKJ�C?�J5RPFl5R ixU ����SLS�±�ºuW»UWj��SE��® W�T�VCj?�JONPIKN�R@Nx?�B{U�Bf?�=@Y*U�baIKg�U�RPIK?�Js?�B�R@DGF�Cj?�J�R@FjlAR (�U�JO[yNSREU�RPF�Y*FJ5R * U�JO[yUVC?�JON�RP=@WOCjRPIK?�JM?�BUVhG=@?5?�B�v"?�c SF�CjRpBf?�=eIaR�iGI"n F�nGUVRPF�=PY ,�NPWOCEDwRPDOU�R

(�� ,q��* .

| NPWGcON�R@U�J�R@IKU�bOhOU�=�Ru?�B.U,hG=@?5?�B.[XF\�FbK?�hGY*FJ5RTC?�JONPIKN�R@NT?�B.U Vf·�WcS���¼ZºuW»gW��SE��® W�T�V iAU�JOU�YVFCj?�IaJOF�[qcAd]<{FjRPF�= | CgF�b9n�opDGIQNrCj?�JONPIKN�R@Nr?�BTUZbKIKN�R!?�B�hG=PIKY*I_R@Ia\�F�U�JO[][XFj^`JGF�[]JO?�RPIK?�J`NrU�J`[U�lXIK?�YZN.U�JO[�hG=P?�\�U�cGbaF{R@DGF?�=PF�YZN%CjWGbKY*IaJOU�RPIKJGL1IKJ,RPDGFTL�?�U�b*�R@?ec`F>hO=P?�\�F�[%n�z J,R@DGIKN;N�F C�R@Ia?�JtxFxteIKbKbXhG=PF N�F�J5R�NPWOCEDVUrR@DGF?�=Pd�[GF\�F�ba?�hGY*FJ5R�IaJ�RPDOF1N�dXN�RPFY©�u?A­�Bf?�={RPDGFeN�R@U�RPFY*F�J�R�R@DOU�RF\�F=@dZJOU�R@WG=EU�b%JAWGYkc�F=eL�=PF U�R@F=xRPDOU�Jq?�JGF,DOU�NeU�hO=PIKY*F�[XIa\AIQN�?�=�n �

optu?kU�N�h�F�CjR@NT?�B%RPDOF![XF�\�FbK?�hOYVF�J5RuU�=@Fe?�B.IKJ5RPF=@F�N�R�n���DGF=@F�U�N�R@DGFrbK?�L�IKC�U�bG?�h`F�=@U�RP?�=ENu¡U�J`[D��U�=@FkhG=@IKYVIaRPIK\�F*JG?�RPIK?�JON�?�BTRSdAh`FVR@DGF?�=Pd��mteDGFJ�RP=EU�JONPbQU�RPF [}U�N 3���i%R@DGF*?�h�F=EU�R@?�=ENCj?�J SWGJOCjRPIK?�J �xi5[XIKN SWGJOCjRPIK?�J �pi�BmU�bQN�F�����i�JGF�L�U�RPIK?�J��!U�JO[*FjlXIQNSR@FJOCF�VU�=@F1U�bQN�?�[XF^OJOU�cGbaFWONPIaJOLVIKJO[XW`C�RPIK\�F,RSdAh�F�N }U�=PRPIKJXv � "?�B � �$��� ���"nX�G?�=eFjlGU�Y*hGbKF/0�� $ � ������� � � � ��� � � � ��� � � � � � � � � � � � � � ,

� ��-��0����� � � � � ��� � � � � �� � ��-��0����� � � � � ��� � � � � �

�1F�=PF�iOR@DGF�U�cON�RP=EU�C�R@Ia?�J � � � � � � ��� � � � � � � �sN@U#dXNeRPD`U�R �]U�JO[ �]U�=@F�hOU�=EU�Y*FRPF=EN1?�B{RPDGF[XF^OJGIaRPIK?�J.n{¾A?�Y*FZhG=@FjRPRSd�hG=@IKJ�R@IaJOLOi�U]NPdAJ�REU�CjRPIQCZ[XFj^OJOI_R@Ia?�J�CU�J�c�FMU�[O[XF�[%i4U�bKba?�teIKJGLyRP?te=@I_R@F�� �sBf?�= � � � �%nyopDGF�IKJO[XW`C�RPIK\�F�[XF^OJGIaRPIK?�JqIKYVhObaIKF�NpR@DOU�R � �wCj?�YVF NxRP?�L�FjR@DGF=teIaRPDqYZU�hON� ��-��0����� � � � � % � � � � � � ��� ��� ��� �� ��-��0����� � � � � % � � � � � � � � ��� ��� ���F,U�bKNP?VJGFF [wUVYZU�hqCj?�=P=@F�NPh`?�JO[XIKJGL�R@?VRPDGF,FbKIKYVIKJOU�RPIK?�JyhG=PIKJOCIahGbKF�Bf?�=1[XIQN SWGJOC�R@Ia?�J��fBf?�=FjlGU�YVhObaF�RP?ZhO=P?�\�FrR@DOU�R ��� ��� ���G���� ��-��0�� � � % � % � � � � � � � � � � � � ��� � ��� � � ��� ��� � ��� �

z�R,IQN�U�bQNP?wh�?�N@N�IKcGbKFVRP?][XFj^`JGFVRPDGFZ?�h`F�=@U�RPIK?�JON �xi��xi�����i��MU�JO[ �}teI_R@DG?�WXR�IKJO[XW`C�RPIK\�FRSdAh`F NiOWON�IKJGLZDGIKL�DOF=e?�=E[XF�=1­�W`U�J5RPIa^`CU�RPIK?�J.iGU�NeIKJ1�1WONPNPFbKb � �$�%&�����nG�G?�=eFjlGU�Y*hGbKF�[XIQN SWOJOC�v

� �U`{az�½x{egjl}�}�xX��x\fh��f�k�xZ�I�gdh�ljl¤ � }�x\egfhaz`{fh�µx{eU��x�x\egfh`{f~�c`\f§jlk��Ukgj x\fh� s����ckYs�tC`{jl��fh}�jl}�kgacx�b«�c`�`{fh��aÒ��fh¤;�dhazkg}{jl¤Cf�`���tg`\jl��foby�cdwx\az`oacb������,]²�ckg¤ }{eCaÒ� x\eU��xoj x=jl}=kgfhdhf�}\}X�c`\jl� s�����nur~eY�g}=azkgf|az¡CxX�cjlkC}������ �!���" #%$'&)('*+��nU¹ }\�ljlmzeYx\� s5¤gj ,uf�`\fhkYx�b«az`\���c�ljl�Ò��x\jlazk�jl}�t�az}{}\jl¡g�lf�jlk�x�sCt�f�x{eCf�az`�s�ÔU��eCf�`\f|azkCf¯d��ck�tg`\aÒ��f�x{eCf}\x{��x\f���fhk�x����Z� � ¿ �-� ¿ . "/"0" . ��1 , #%$'&)('*2� ¿�3 "/"0" 3 #%$'&)('*2�41657�-8 , #%$'&)('*:9 3 8<;= � ¿>3 "0"0" 3 8<;= ��1�. .�n¿ acx\fEx\eU��x~j x�jl}§jl��t�az}\}{jl¡g�lf�x\a²fw��fhk�}�xX��x\fEx\egjl}~�c}~��x\egfhaz`{fh� jlk�^Zf��ckga|¹E`\j x{eg��fwx\jldzÔ�¡ufhd��c�g}\foacb�x{eCfE�g}\facb?� �c}~�¯tU�c`X�c��fwx\f�`�¤Cf�kCacx{jlkgm¯x{eCf=�lfhkgmcx{e�acb�x\egf=}{fh©Y�gfhkgdhf2@���ckg¤�x\egfokY�g�²¡�fh`§acb�¤gjl}�¢\�Ckgdwx{jlazkg}�8A;= ��BXn��k�x�sLt�f¯x\egfhaz`\s�j xEd��ck�¡�f�}\x{��x{fh¤ ¡�fhdÒ�c�C}{f¯acbZx\egf¯`{�g�lfh}~b«az`�jlkg¤g�Cdhx\j ��f�x�sCt�fh}Òn���k �c`\j x{eg��fwx\jldoazkgfo��az�g�l¤eU�h��f�x\a mza²x\a }\f�dhazkg¤�az`{¤gfh`�x{a�}�xX��x\f�Cy�ckC¤�tg`\aÒ��f/D�x\egjl}~x{eCf�az`\fh�

Page 67: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � �

RPIK?�Jqc�F�C?�Y*F�N

*�������3 �V� � � � � .Q� *,¡����@¡ � �V¡ ���P¡ *��.�V¡ � .

z JyRPDGIQNetpU#d*RPDGF�F�baIKY*IaJ`U�RPIK?�JqhG=@IKJOCjIKhGbKF�IQNpR@DGF,RPF�=PY

°��4�K� *�¡ ����° �������V¡ ����°��.�Q� *-�.�V� .�� ��� � .

opDGFVba?�L�IQCU�b4[XF^OJGIaRPIK?�JON,[XF^OJGF []RPDOIKN�tpU#dwR@WG=@J}?�WGRrRP?yc�F�F ­�WOIa\�U�bKFJ5R,teI_R@D}R@DGFVIaJO[GWOC�vRPIK\�F�badw[XFj^OJOF�[w?�JGF NnG�O?�bKba?�teIKJGL� �U�=PRPIKJXv � "?�B;tuF,WONPF�RPDGF�IKJO[XWOCjRPIK\�F�[XF^OJGIaRPIK?�JON�iXc`F CU�WON�FRPDOIKNetpU#dZ?�JOF,C�U�J]U#\�?�IK[MIaY*hG=@F�[GIKC�U�RPIK\�F,JG?�RPIK?�JONpbKIKH�F,DGIKL�DGF�=e?�=E[XF=e­5WOU�J5R@I_^`C�U�R@Ia?�J.n

| JG?�RPDGF�=Vh�?�IKJ5RV?�B1IaJ5R@F=@F�N�RVIQN�RPDOU�RVIKJO[XWOCjRPIK\�FwRSdAh`F N�U�=PFMBf=PF�FbKd�L�FJOF=EU�RPF [�cAd�RPDGF�Ia=Cj?�JON�RP=@WOC�R@?�=ENnTopDOIKNMDOU�N*Bf?�=MFlXU�Y*hGbaF�U�NsC?�JONPF�­5WGF�JOCjFqR@DOU�RwBf?�=sR@DGF]RSdAh�F}?�B�JOU�RPWG=EU�bJAWGYkc�F=ENp?�JOF,C�U�JqhG=@?�\�F � � ��� � � � � �8� � , � �

� % � � ��� � � ��� � , �7� � ���8� , �opD5W`N�txFMN�F�FZRPD`U�R�teIaRPDOIaJ�RSdAh�FZRPDOF?�=@d�teI_R@D�IaJ`[XWOC�R@Ia\�FZRSdAh`F Ni{�1F�d5RPIKJGL}U�=@IaRPDGY*FjR@IKC

CU�J}c�FVBf?�=@Y*U�baIKgF [%i�teI_R@DG?�WGR�U�NPNPWGY*IKJGLwU�[G[XIaRPIK?�JOU�b{U�lXIa?�Y*N!?�=,=@WGbKF�N�n�o;?q­�WO?�RPF��1U�JO[Xd<{?�bKbQU�CEH�� � oudAh`F>RPDGF�?�=@d!teIaRPD�IKJO[XW`C�RPIK\�FTRSdAh`F N�IQN.IKJ5RPWGIaRPIK?�JGIQN�RPIQC��#YZU�RPDOFYZU�R@IKC�U�b�hO=PIKJOCjIKhGbKF�NU�=@F,teIa=@F�[wIKJ.n �

 1?�t~txFpteIabKbGhG=@F�NPFJ5R>U!RPDGF�?�=@d�[XF\�FbK?�hGY*F�J�R�IKJM�u?A­M�f\�F�=@NPIK?�J1�On �5��i#Bf?�={RPDGF1N�R@U�RPFY*F�J�RRPD`U�R{F\�F�=Pd,JOU�RPWG=EU�bAJAWGY�c`F�=;DOU�N{UrhG=@IKYVFp[XIK\AIKNP?�= n opDOFuYZU�R@DGFYZU�RPIQCN4c`F�DGIKJO[�R@DGIQN;IQN4\�F�=PdFbKFY*F�J�REU�=@d�n �.?�L�IKCsIKNkIaJ5RP=@?X[XWOCF�[%n � | B�RPF=VR@DGFMIKJ5RP=@?A[GWOC�R@Ia?�J�?�BeRPDOFMJOU�RPWG=EU�buJ5WOYkc�F=ENihGbKWON1U�JO[wRPIKYVF NrU�=PF�[XF^OJGF�[y=@F�CWG=@NPIK\�FbKd�nGopDOFJ][XIK\5IQNPIa?�JqU�JO[yhG=@IaYZU�bKIaRSdMU�=@F�[XFj^OJOF�[%n`z J?�=E[XF�=�RP?�hG=P?�\�FZ?�WG=�=PF N�WOb_R�R@DGFMW`N�WOU�bu?�=@[GF=@IaJGL �©IQN�[GFj^OJGF [ ��^`=@N�R � ��U�JO[�Cj?�WG=EN�Fs?�B\�U�bKWGF�IaJO[GWOC�R@Ia?�J��rIQNxWONPF�[%nXo;FjlARute=@I_RPRPF�JMc�FjRStxFFJ �� !�!�!����,NPF=@\�F NTU�NxU�Cj?�YVY*F�J�R nAz JRPDOF,Bf?�bKba?�teIKJGLOiAR@DGF�hG=@?A?�BmNpU�=@F,?�Y*I_RPRPF [wcOWXReRPDGF�[GFj^OJGIaRPIK?�J`N1U�=@F!L�Ia\�FJyFjlXhGbKIKCI_R@bad�n

����������������� ���������������������������� ��������!��"�#$�����������������%

���&������������#�����"�'�)(���""���(�#��� ���� ������*"����)�*"���+�(�#��� ����,.-/��%

0 "���+!(�#��� ��'�"��213�543&������5687943&����*��:24;&������4=<�(��*"�>?4@���A�7��AB�C'�"�����7D%�-

0 "���+!(�#��� � EEF4;&�����4=<G#����� ���'��?4HEE.-

0 "���+!(�#��� � IIF4J&�����4=<5-

K �����*"!��#�����"�"���#L4J&���������A�&������4M<F13�.43&������:���A�II.-

N ��k b«�cdwx�d��Ð�c}\}{jld��c�Z�lazmzjld�nG¹Ek jlk�x{�gj x\jlazkgjl}�x{jld tC`{aYacb�jl}o�²�gd{e ¡�fwx�x{fh`ÒÔ��c}�j xotg`{a��Cjl¤Cf�}¯�ck �c�lmzaz`{j x\eg��x{a�Ukg¤5x{eCf¯tC`{jl��fE¤Cj �Cjl}\az`Òn ¾ �Cx~x{egjl}�`{fh©Y�gjl`{fh}~��az`{f���az`{i�nO �ybZb�az`�fw��fh`\s �BPG� ¿ azkgfoeU�c} C ��QSR6��" TUQ D3VWT ��ÔCx\egfhk ����PG� ¿ " T �Zn

Page 68: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{�����������

K �����*"!��#�����" ����L4M<F13� � 7.43&������:5�C'�"�� �=����A�7 % �M7��A��D%% -

�� I����G������##,G�����*"�#��*"�� ��,�"�#�'(�#��(G�������*"!��#�����"!� �M"���#)��������" %�'�����*"�#�������+!(�����#���'�#�'������ #�� +!���G#���G���������!�*"�� "���#�'�#�����"!�

� �����?�M"���# �!%���� *7 �����?�C'�"�� ��7 %�� ��*7 �����?�C��� �G7D%�����A�7 �����?����� ��7 %

��%

�� 0 "�#������+!(�#����*" '*"�� ����� � �*"�'�#�����"���+������ - ��%

� � ��� ' '�"������*"24G� ' ��� 43&����� %�'��A � �AB�C'�"�� ' � %�-� � ��� ' '�"���������L4G� ' ��� 43&����� % � '�"�� ' � %���A' -� � ��� ' '�"����������24G� ' ��� 43&����� % � '�"�� ' � %���A � -

� � ��� '���'����������L4��C' 43&������ %�II���A' -

� � ��� ' ������*"��L4�� ' ��� 43&����� %�'��A �C��� ' � % -� � ��� ' ������*"��24�� ' ��� 43&����� % � �A �C��� ' � % -� � ��� ' ���������?4�� ' ����� (B43&������D% �C'�A(�%��A � � �A�(�%*��A �C��� ' � %��A�(B-

�� � � �� '��G(�� � � � "!�*"�� (���"�"���(�#��* ���� -/��%

� � ��� ' "���"�����24�� ' ��� 43&����� % �C��� ' � %���A '��� � -������ ��������#���� ����������� � >���(*# ������"�����'�#���� � , #����#�'(�#��(��%�4"���"������<1=' ��� 43&����*�.6W�94��M"���#L�C����' � %% :�C'*"������*"2�3"���#�'�%S�M"���# � % 1��.4 '�:5�M�2�C�������*"�� ' � �D%%1��.4 � :5�3�2�C������� "���' � �D%%%4G�C' ��� 43&����*� % �M"���# � ����' � %%��A � '�"��2�M"���# '�%S�M"���# � %%��%

������ �D� ��� �� '��G��� ��##���� ��%

���&�������(�'�#��������( - ��%

0 "���+!(�#��� � ���213�F4�����#56@&24@����A�&������:24;&����*�4=<��������*"#���L4G���54M�D% �M&��!%��A � �� �G& %�-

�� ����,�"#�'�(�#���( ������*"!�*#�����"2�M"���#)�������" %G�� ���� ���" #��'�#�'������!� ��"��#�� �����#��G#����+!�*+�'�

��!�"��.4M�$#*�3&��D%% ����� ��� �L1��.4M��:5�M&��D%��%

����(*#�����" &�����.-

Page 69: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � �

� '�����' � �������F4 ����#56H&24J���A�&������.6��?4J���A�&������9-

� � ��� ' '��������L4����.4M�D% ���=,.4M�D% �M& ,!%%��A �3& �D%�-� � ��� ' ������*"24����.4M�D% �3&��D%��A ��!�" ,.4M�$# �M&�,D%%�-

� � ��� ' "���"������F4G� ��!�" �54M�$#*�M&��!%%%��AB���.4M�D% �M& �D%�-� � ��� ' '�����"���#24G�����.4M�D% �M&��D%%*�A ��!�" �.4M�$#*�3&��D%%�-� � ��� ' '����'�"��24G�����.4M�D% �M&��D%��� B��� �D%%*�A ����54M�D% �M& �D%�%��� ����.4M�D% �����D%�%�-� � ��� ' ��������F4G��!�" �.4M� #*�M& �D%� �� �����D%�%�A ��!�" �.4M� #*�M&��D%%� �� ��!�" �54M�$#*�����!%%�-

!"���&������.-

�����'�����(�'� �����( - ��%

������� � K�� 4��C' 43&������ % � � '�A'�%�-

� � ��� '���" �(?4��C' 4 &������ % � '����A' -

� � ��� ' ���!���(���+����� � ��������548#�����#��*+�� "��*" ��'�#�+�.- ��%#�"��L4G�C' 43&����� % � '� �� '�%�-

������ �D� ��� �� '��G��� ��##���� ��%

����(*#�����" &��������(���'�� -

� '�����' � ��� �54 ����#568&.4M���A�&�����9-

� � ��� ' "���"��'��L4G� ���.4M�!% �M&��D%%*�A ��!�" �54M�$# �3&��D%%�-� � ��� ' �����( 4G��!�" �.4M� #*�M& �D%�%���A ���.4M�D% �M& �D%�-

�� E�!��G��� �� ' ��'� #����G����������*"�� ������������ � >���(�#.-�����(�<�(��*"�> ��!�"��.4M� #��3& �D%%*�A ����.4M�D% �M& �!%%

����.4M�D% �M& �D%%��AB��!�" �.4M� # �M& �!%%194���!�" �54M� # �3& �D%% 6� �54�����.4M�D% �3& �!%��A�II!% :�=�������*"� �F1��.43�:5�M&��D% II21��54M�56��� 4��M& �D% : �� �������%� %194�� �����.4M�D% �M& �D%%% :� K�� ��!�"��.4M� # �M& �D%%1� �54����!�" �.43� #��M&��D%%��A�IID% :�� 1��.4M�56��� 4��M&��D% :5�� �?�=�������*"#��� �F1����54M�:5�3&����!% �����%%%%�%4G��!�"��.4M� # �M& �D%%���A �����.4M�D% �M& �D%%

��%

!"���&��������(��'�� -

�������������������������������������������������������������� ������#����!��#��( �

Page 70: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{�����������

������������������������������������������������������������%

0 "���+!(�#��� � ���213�.4�����#56��54M�: 4;���A�&����*�4=<�������������+�'�F4��=��� � � �D%�-

�� � ��,�"�#�'�(�#��(�������*"!�*#�����" �M"���#)��������" %G��G� "�#������+!(���� �*")�������� #�� +!���#���� ' ��� ���� ���'�#�����"� <�, ����� � ��� � � ,D%�-0 " #�!�� ��,�"�#�'�(�#��(�������� "!��#����*" � #����G#,����G��(�'�" � ��+�������'���'�"� ���������(�*#)'�����+��!��"�#���- 0 # �� ����(���"!��#���+!(�#���� � , #����G#�,�����(�����(��D�*"��'���������#��*� ���� � #���G#,���� ��� ���%

� � ��� ' ��, � �����F4��=�.4 ����#D% ��� � ,.4M�D% ��� < ,D%��A �M,�< �D%�-� � ��� ' ����� � 4��=�.4 ����#D% �M&943���A�&������ % ��� � ,.4M�D% ���S<G,D%*�A �M& �!%��A �M&�,!%�-� � ��� 'G������*"������24��=�.4 ����#56 �.4M�56@&94��=����A�&������D%% �M& �D%���A �=,.4M�!% �=,�<��!%��A �M& ,D%�-� � ��� ' �������+�'�?4��=� � 794�����#56W�.4��=���A�7D% 6 � � ,.43�D% ����<�,D%G�A ��=���D%*< �=�G,D%%�-

0 "���+!(�#��� �G"�'�#F4 ����#F4=<��?4J"�'�# # � 4 "�'�#���A�"�'�#.-

K �����*"!��#�����" ��"��?4J"�'�#L4=<?� ����%�-K �����*"!��#�����" #���� 4J"�'�#L4=<?� � �*"��!%�-

K �����*"!��#�����" 0 �����*+�( 4=<F1 ".43"�'�#:��'�������")���

� <�A�I�I#�� � � %�<�A�E�E

��"��.-

� � ��� ' "����(���"��24G�3"943"�'�#!% ����<L� � " %%�-

0 "���+!(�#��� ����������� 1 "943"�'�#�:F4;"�'�#��A�&������ 4=<�����������" 4��C��������G" " %

#;������������� +!(?4G� �U4 "�'�#D% � ��������� " ��%��A � ��������� "?� � ��%% -

K �����*"!��#�����" ��#���'�"F4=<F1 " � �U43"�'�#�:5�C���������2� � " %/� %�-

� � ��� ' ������������#��'�"!�L4G��� � , � 43"�'�#D% �C��������� �G,D%*�A �C����������, %*�A �C�����������

% -

� � ��� ' ��#���'�" ���������� 4G�M" � �U43"�'�#!% ��C��#��'�"�" ��%���A �C��������� " ��%% -� � ��� ' "���" ���#��F4G�M"94 "�'�#D% �C��#���'*")"���%�-� � ��� ' �*+�(�����������24G�M" � �U43"�'�#!% �C���������2� � " % � � ��%%���A �C��������� "���%�-� � ��� ' ��#�� �$4G���.4 "�'�#D% ����<��� �����<���"��� �� �C��#��'�" ��"����D%%�-� � ��� ' " ��"��*��#F4G�M"94 "�'�#D% � �M"�<���%��A �3"�<���"���%��A �C��#���'�" ��"���" %%�-

K �����*"!��#�����" � ��������F1 "943"�'�#568&943"�'�#��A�&������: 4=<?��� � 43"�'�#D% �C��#��'�"�� " %*�A �M&�� %�%�-

� � ��� ' ������+����������G �'�*+��)�*"���+�(�#�����" ��%(� ���*"��24��3&943"�'�#��A�&����*� % ��M".43"�'�#D% �� � ��������� "G&D% �A �M&�" %%���A?�M"943"�'�#D% �M& " %�%�-

Page 71: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � �

I����������*"�# ����+!�?1 ".43"�'�#:24 "�'�#���A�"�'�#L4=<F1 �U4 "�'�#:��'�������")���

� <�A �#�� � � %�<�A � � �M���*+!����� %%

��"��.-

� � ��� ' ����+����'��#��*+!(?4G�M" � �U43"�'�#D% �M���*+!��"F� � � %%*< � �B�M����+!��" � %%�-� � ��� ' ����+����'��#

�����F4G�M".43"�'�#D% �3����+!��"���%*<�".-

� � ��� ' ����+!����'���?4G�M" � � � � 4H"�'�#D% �M" � � � � 4H"�'�#D%�M����+!��"F�3����+!� ��� %%*< �M����+!���M����+!�G"�� % � %�-� � ��� ' ����+!���(�� � 4G�M" � �U43"�'�#D% �M���*+!��" ��%*< �3����+!� � " %�-

I����������*"�# #����D���?1 "943"�'�#�:24;"�'�# �A "�'�#?4=<F1 � 43"�'�#:��'�������")���

� <�A��

# � � � % <�A �M���*+!� �=#�� �D��� ��� %/��%��"��.-

� � ��� ' ����*#�F4G�M" � � � � 4H"�'�#D% �M" � � � � 4H"�'�#D%�=#����D��� �3����+!� " ��% � %*< �M����+!���=#����D���G" � % �=#�� �D��� ��� %%�-� � ��� '�#����!����'��#

�����F4G�M".43"�'�#D% �=#����D���G"���%*<�� -

� � ��� ' #����!����'��#��*+!(?4G�M" � �U43"�'�#D% �=#�� �D����"F� � � %%*< �M����+!�B�=#����D����" ��% " %�-� � ��� ' #����D������'���?4G�M" � � � � 4 "�'�#D% �M#����D���G".�=#����D��� ��� %%< �=#����D���B�M#����D����" � % � %�-

K �����*"!��#�����" ���� F4 �M"�'�#���A�"�'�#���A�&������D%4=<?13� � "94 "�'�#:5��!�"��.43"�'�# #*�=#����!����� �D%*<�"D%�-

K �����*"!��#�����" ����������� 24 �M"�'�#���A�"�'�#���A�&������D%4=<?13� � "94 "�'�#:5���C��#���'*"S��"��G�D%��� B�C��#���'*" � " %�� �M���� ��"D%%�-

K �����*"!��#�����" �������D�F4 "�'�#��A�&������4=<?1 "943"�'�#:5��C��#���'�" ��"���"D%

�� ��!�" �.43"�'�#$#*�M����������* )� " %%% -K �����*"!��#�����"��������D������ 24 "�'�#��A*"�'�#��A*&������

4=<?1 � � "94 "�'�#:5�3�������D� � %��� �=���� ��" %�-

������ �D� ��� �� '��G��� ��##���� ��%

�����'�������� �D�G���� ������� ��%K �����*"!��#�����" & K 4 "�'�#��A�&����*�

4=<?1 "943"�'�#:5��!�" �94 "�'�#$#*�3�������D������ � " %% -

E��������� � "+*� � �������#�������'� ����*�������D������ 4 �M"943"�'�#D% �C��#��'�" ��"���"D%��A ���& K " %�-

������������������������������������������������������������������������������������%

| NuNSREU�R@F�[Vc`FBf?�=@F�i�Bf=P?�Y³DGF�=PF1?�JGF1CU�J*hG=P?�\�F (>WOCbaIQ[%´ N�RPDOF?�=@FY³RPDOU�R>RPDOF=@FrU�=@FpIaJX^`JGI_R@FbKdYZU�JAd]hG=@IaY*F Nn�z J�?�=E[XF=!RP?][X?wRPDGIQN,?�JOF�JGF�F�[GN!R@?yHAJG?�t R@DOU�R�IaB � [XIK\AIK[GF�N,c�?�RPD �]U�J`[

Page 72: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{������������ B�#i�RPDGF�J�IaR{[GIa\AIQ[XF�N��e�mIaJ5RP=@?X[XWOCFxCWXR�v�?�µsNPWGcXRP=EU�CjRPIK?�J�Bf?�=4RPDGIQN{U�JO[khG=P?�\�FTNP?�Y*FTbKFY*YZU�NU�c�?�WGR1I_R���n

"��#" � ¯�V�ª��P¸ � �9R�S�®r��¯�V ªUV � SUT�[��F�DOU#\�F�NP?*BmU�=�[XF�N@Cj=@Iac�F�[yDG?�t RP?*Bf?�=PYZU�baIKgF�[XF^OJGIaRPIK?�JON�i`N�R@U�RPF�YVF�J5R@N1U�JO[qhG=@?5?�BmNn | JXv?�R@DGF=�IKYVh�?�=PR@U�J5R,U�N�h�F�CjR�?�BTYZU�RPDOFYZU�R@IKC�NrIQN ��S�®1��¯�V � T�' n��mz J�?�=@[XF�=1R@?y[XF CjIQ[XFVteDGFjR@DGF=N�R@U�R@FY*FJ5RENuU�=PFrRP=@WGF!?�=xNPIKYVhObad*c�F�CU�WONPF�UkJ5WOYVF�=PIQCU�b`\�U�baWGF!IKNx?�B�IaJ5R@F=@F�N�RE��nAopDGF!Bf?�bKba?�tpvIKJGLsFjlGU�YVhObaF N1U�=@F,R@U�H�FJyBf=@?�Y �xU�=PF�JO[X=@FL�R ������ �#�"nGopDOF�NPF�U�=@F�FjlGU�Y*hGbKF�Ne?�B>NSREU�RPF�Y*FJ5R@NBf?�=eteDOIKCED]Cj?�Y*hGWXR@U�RPIK?�JONeU�=PF�JGF�F�[XF [%n

� � � � � ��� § �O£ teDGF=@F � ����IQNpR@DGF�IaJ5R@FL�F�=phOU�=PRe?�B�U�=@F�U�b� ��� � ��� � �O� � � �� ��� � �� � �j� �� � � § � � � �� �

z JkhO=PIKJOCjIKhGbKFxC?�Y*hGWXREU�R@Ia?�JON;C�U�J�c�Fp[X?�JGFxteIaRPDGIKJ�U�J�U�lXIK?�YZU�R@IKC�Bf=@U�YVF�tu?�=PH�i�IaJ�hOU�=PRPIQCjWGbQU�=teIaRPDGIKJ�hG=PF [XIQCU�R@FZba?�L�IQCkteIaRPD�F ­5WOU�bKI_RSd�n.�xWXR�RPDGF�J�hG=P?A?�BmN,?�BxRPDGF N�FZN�R@U�R@FY*FJ5REN�c`F Cj?�YVF=EU�RPDOF=ebK?�JGL`n (rn L`n

� �� � � � § � �� �#� ��� �� �#�§ � �� �#� � ���� � �#� ���§ � � �� � � �������� � � �§ � � � �� �§ � � � � �� ��.

opDGIQNxIKNxJG?�RuF\�FJMRPDGF�teDG?�bKF,NSR@?�=@d�n (TU�CEDZW`N�F�?�B>²_§�´5DOU�NuRP?�c`F SWON�RPIa^OF [scAdsU�hGhObadAIKJGL�U�JU�lXIK?�YqiGNPWGcON�RPIaRPWXR@Ia?�JON1U�J`[sR@DGF,BmU�CjReRPDOU�R hG=@F�NPF=@\�F NuF ­5WOU�bKI_RSd���n

| txU#d�RP?]DOU�JO[XbKF�� � ��IKN,R@?]WONPF*RPDGFM<{?�IaJ`CU�= �F�hG=PIKJOCIahGbKFZFjlAR@FJO[XF [�teI_R@D�RPDGFM=PF [XWOC�vRPIK?�J�=@FbQU�R@Ia?�J�¡ ¡ � Bf?�=�hG=PIKY*I_R@Ia\�FZ=PF CjWG=ENPIa?�J�?�J�R@DGFsJOU�RPWG=EU�b�JAWGY�c`F�=@N�n ¶ h�F=EU�R@Ia?�JON,baIKH�F�{�f¢��q§ � � ¢ �,U�=@FqhG=PIKY*I_R@Ia\�F�=@F�CjWO=@NPIa\�FyU�JO[«DGF�JOCjF�U�=PF}°Gv�[GFj^OJOU�cGbKF~�fWONPIKJGL¬¡ ¡ � � �*cAd& � � � ���pIKJ5RP=@?X[XWOCjF [�IaJ � �On �On.opDGFJ�i.te=PIaRPIKJGL & § � £ � § � � £ . . .�i.I_R�Bf?�babK?�t1N�Bf=@?�YRPDOF�<{?�IKJOCU�=��FrhG=PIKJOCIahGbKF,RPD`U�ReRPDOF�NPU�YVF,IQNxRP=@WGF,Bf?�=

� �� § � £NPIaJOCF � § � IQNeBf?�=PYZU�bKbKdy[XF�=PIK\�U�cGbKF�U�JO[qtxFkDOU#\�F � �� ¡ ¡ � � � n �rNPWOU�bKbKd�i�UZhG=@?5?�B?�cObaIKL�U�RPIK?�JkU�=PIQN�F N.R@DOU�R���IQN{U�[XF ­5WOU�R@FbKd�Cj?�J`NSR@=PWOCjRPF [%n��G?�={FlXU�Y*hGbaF�i#IaJkRPDGIQN�CU�N�FuI_R>Cj?�WGbQ[c�F

��¢�����¢�� � � ¢ � ��� ��¢�� �#� � .¾AWOCED U�hG=@?5?�B�?�cGbKIaL5U�R@Ia?�J�JGFF [GNZR@?~c�F�Bf?�=@YZU�bKbad�hG=@?�\�F [%i>cGWXRq?�JObad�?�JOCF��xU�B�RPF�=MR@DOU�R=@F�[XWOCjRPIK?�JONpbKIKH�F

� ¢ ¡ ¡ � � �{�f¢��� r�eCjl}�jl}���eYs¯}{az��f�����x\egfh����x\jld�jÐ�ckC}����hs�¡uf�x\�g`{kCf�¤²a�,�¡�s|�lazmzjld�n ¾ �Cx�x\egfh}{f~}�x{fhtg}�eU����f�x\ao¡uf~¤gazkCf�n

� }\�U�c�l� s�x\egfws��c`\fo¤gazkgf=��j x{eCjlk��|b�`X�cdwx\jlazk�acb��²}\f�dhazkg¤��ckg¤��gkCd�azkC}{dhjlaz�g}{� s5¡�s��²����x{eCf�����x\jldhjÐ�ck;n

Page 73: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� ��&

CU�Jwc�F�WONPF�[wBf=@FFbKdsYZU�JAdZR@IaY*F Nnz J*U�NPIKYVIKbQU�=�tpU#d�i�U,N�R@U�R@FY*FJ5R>bKIaH�F�� ���{CU�J*c�FeBf?�=@YkWObKU�RPF�[VU�J`[�hO=P?�\�F�[�c5dVCj?�JONSR@=PW`C�R�v

IKJGL�U�°Gv�[GFj^OJGIKJGL!RPF�=PY�� � ��� � � Bf?�=;R@DGFeCEDOU�=EU�CjRPF�=PIQNSR@IKC>BfWGJOCjRPIK?�JV?�BOR@DGFphG=@F�[XIQCU�RPF � ��� � �XnopDGIQNpRPF�=PY N�DG?�WGbQ[wN@U�R@IKN�BfdsR@DGF,Bf?�bKba?�teIKJGL*NSREU�R@FY*FJ5R

��¢ �a� � ��� � �{¢�� � � ��� � � ¢]§ � ������ � ��� � � ¢�§ & ��� � ��� � � ¢]§ � � � .

teDGIQCEDqIKNxR@DGF�hG=@?5?�B;?�cGbaIKL�U�RPIK?�J.n¾5R@U�RPFY*F�J�Rs� ����Cj?�=P=@F�NPh`?�JO[GNrRP?qUwNPdAYkc�?�bKIKCVCj?�Y*hGWXR@U�RPIK?�J.n.opDOIKN,Cj?�Y*hGWXR@U�RPIK?�J�R@U�H�F�N

hGbQU�CFT?�J�RPDGFpN�dAJ5R@U�C�R@IKCTbaF�\�Fb5?�BXBf?�=PYZU�b�R@F=@Y*N�n#opDGF=@FTIQN;U1BfWGJOCjRPIK?�J ��U�CjRPIKJGLr?�JkNPd5J5REU�C�R@IKCFjlXhG=@F�N@NPIa?�JONpNPU�RPIQNSBfdAIKJGL

���P� �� � �� �� � �G�>§�� � � �� ��£

RPD`U�RMtxF�tpU�J5RZRP?¬°Gv [XFj^OJOF�n���DOIabKF � ��� � � �¬�fIKJ�C?�J5RPFl5R �;� � � � ��ix?�JOF]DOU�N�² � ��´r� ����� ��� � � ����nT�rF=@F �������.� � � �#��IQNZU�J�IaJ`[XWOC�R@Ia\�FbKd~[XF^OJGF�[~RSdAh`F]C?�JONPIKN�RPIKJGL�?�BrRPDGFRPF�=PYZN!?�\�F�=1RPDOF*N�RP=@WOCjRPWG=@F.� � � ��£ �£ +e£�&O£ � ��n �!N�IKJGLyUM=@F�[XW`C�RPIK?�J}=PF�bKU�RPIK?�J]Bf?�=!hG=@IKYVIaRPIK\�F=@F�CjWO=@NPIa?�JM?�\�F=xRPDGIQN1[GU�R@U�RSdAh`F�iG?�JOF,C�U�Jy=PF�hG=@F�NPFJ5R ��iGN@U#dZcAd �*iONP?VRPDOU�R

�¬²Q� �� � �j� �� � ��´5¡ ¡ � �4² � � � �� ��´ .

 1?�t�IaJq?�=E[XF�=TR@?�^`JGIKNPDwRPDGF�hG=@?A?�B�?�Bx� ����iX?�JGF,JGFF [GNxRP?*Cj?�JON�RP=@WOC�R1UVN�F�b_B�v�IaJ5R@F=@hG=PFRPF�=��>iNPWOCEDMR@DOU�ReBf?�=1U�bKb.FjlXhG=@F�N@NPIa?�JON/,]� � � ��?�JGF,DOU�N

�V² ,;´k¡ ¡ � �1,

U�J`[MhG=@?�\�F!RPDOF�hG=P?A?�B;?�cObaIKL�U�RPIK?�JwBf?�= �¦teDGIKCEDyIQN

� " � ��� ����� � � ��� �u��� " ��§ � " .

z�ReBf?�bKbK?�t1NxRPDOU�R�T� �~²�� � �#�j� � �#��´ ��§ �*²Q� �� � �j� �� � ��´ .

 1?�t�iGNPIKJOCjF

�>� �¬²Q� � � �j� �� � ��´�� ¡ ¡�� � �*² � � � � ��´¡ ¡ � � � � � �� �

�V²�� �� � �� �� � �%´ ¡ ¡ � � � � � �� �� � �j£

txF�D`U#\�F,cAdZRPDGF�<{?�IaJ`CU�= �F1hO=PIKJOCjIKhGbKF

� � �#�j� �� �#��§ � � � �� �.

�xWG=@F�U�W`Cj=EU�RPIQC�[XFjREU�IKbKNpDG?�t�RP?*R@=PF U�RpBf=PF�F,\#U�=PIQU�cObaF NuWOJO[XF= ��U�=@F,?�Y*I_RPRPF [%nopDGFMWONPFM?�B1IaJ`[XWOC�R@Ia\�FsRSdAh�F�N�baIKH�F � � �yU�JO[������ ��� � � ����U�JO[�RPDOFyC?�=@=PF N�h�?�JO[GIaJGL]=@Fjv

[XWOCjRPIK?�J«=@FbQU�RPIK?�J`NVBf?�=shG=@IKYVIaRPIK\�F]=@F�[GWOC�R@Ia?�J�tpU�NZNPWGL�L�F�N�RPF [�c5d�¾XCj?�R�R � �$� ��&��1U�JO[¬RPDGF

Page 74: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{�����������FjlAR@FJONPIa?�J ?�B�R@DGF�<{?�IaJ`CU�= �FqhG=@IaJ`CjIKhGbaF}Bf?�=wRPDGF�Cj?�=P=@F�NPh`?�JO[XIKJGL�=@F�[XWOCjRPIK?�J =@FbQU�R@Ia?�JONs?�BhG=@IaY*IaRPIK\�F!=PF CjWG=EN�IK?�J*cAd �U�=PRPIKJXv � "?�B � �$��� ���"n�¾XIaJOCF!NPWOCEDs=@F�[XW`C�RPIK?�J`NTU�=@F1JG?�RTR@?5?�DOU�=E[VRP?hG=@?�L�=@U�Yyi5R@DGF�=PF N�WOb_R@IaJGL*hG=@?A?�B{CEDGF�CEHAIKJGLVN�RPIKbKb�NPU�RPIQNS^`F�NxRPDOF�[XF��u=@WGI SJ]Cj=@I_R@F=@Ia?�J.n

opDGF�L�F�JGF=EU�b;U�hGhG=@?�U�CEDwIQNrU�NpBf?�bKbK?�t1NnGz J�Cj?�Y*hGWGRPF=!U�bKL�FcO=@UZNPdXNSR@FYZN1U�bKL�?�=PIaRPDOY*NrU�=@FIKYVhObaF�YVF�J5RPF�[¬cAd�N�h�F�CIKU�bxhOWG=Ph�?�NPFsR@F=@Y =PF�te=PIaRPIKJGL`n{�O?�=VFjlGU�Y*hGbKFwBf?�=Vh`?�badAJG?�YVIQU�bxFjlAvhG=@F�N@N�IK?�J`N�,]?�JGF,DOU�NxBf?�=���Bf?�=PYZU�b��x[XIaµ�F�=PF�J�R@IKU�RPIK?�J]U�J`[wNPIaY*hGbKIa^`CU�RPIK?�JwRPDGF,Bf?�babK?�teIaJOLOn

, ¡ � ��� . . . ¡ �� � � , � � ������ § , � �, ¡ #�� ����� . . . ¡ #�� ����� , #�� ���������� § , � .

z J*RPDOIKNTtxU#d�R@DGFeBfWGJ`C�RPIK?�J`Nu� � � � � ,��>§ , � U�JO[Z� #�� ����� � ,��>§ , � U�=@F1Cj?�Y*hGWGRPF�[.n�z J*RSdAh`FRPDOF?�=@d}teIaRPD�IKJO[XW`C�RPIK\�F*RSdAh�F�N�U�JO[ �fv"=@F�[GWOC�R@Ia?�J�R@DGF�NPFMC?�Y*hGWXREU�RPIK?�J`N�CU�J�c�FMCU�hXRPWO=PF [U�NxBf?�babK?�t1N�n

� �� � � , ¡ ¡ ��� � , � �� #�� ����� , ¡ ¡ ��� � , � .

opDOIKNxIQNubKIKH�F,=PF�hGbQU�CjIKJGLVN�h�F�CIKU�b�hOWG=Ph�?�NPF,Cj?�Y*hGWGRPF=ENxcAd*RPDGF,WGJGIK\�F�=@N@U�b�o;WG=PIKJGL�v"\�?�JM rFWXvYZU�JGJ]C?�Y*hGWXR@F=eteIaRPD]N�?�B�RStxU�=PF�n

z J ¶ ?�N�R@[XI SHwU�JO[2��FWG\�F=EN � ��&�& � ��U*hG=@?�L�=EU�Y¨IQN1hO=PF N�F�J�R@F�[MRPDOU�R�iOBf?�=1F�\�F=@dshG=@IKYVIaRPIK\�F=@F�CjWO=@NPIa\�F*hG=PF [XIQCU�R@F 9*i;C?�JON�RP=@WOCjR@N�R@DGFsbQU�Y�c�[GU]RPF=@Y � � [XFj^OJOIaJGL�I_RENkCEDOU�=@U�C�R@F=@IKN�RPIQCBfWGJOCjRPIK?�JyU�JO[sRPDGF�hG=@?5?�B.?�B.R@DGF,U�[XF ­�W`U�Cjd*?�B � �pnXopDOU�RpIKN�i5?�JGF�hG=@?�\�F�N���¢�� � � �. 9Z�f¢�� �� �e�m¢��>§ �*�fL�FJGF�=PIQCU�babKdVBf?�=eU�bKb�hG=PIKY*I_R@Ia\�F!=@F�CWG=EN�IK\�F!hG=PF [XIQCU�R@F�N 9���nXopDGF,hG=@?�\AIaJOL 9Z�f¢��CU�Jwc�F�=PRPFhObKU�CjF�[McAdMCj?�YVhOWXRPIKJGL � �e�f¢��jnOopDGF,=@F�NPWGb_R@IaJOL*C?�Y*hGWXREU�R@Ia?�JONxBf?�= 9 § � ��� � �U�=@FpJG?�R>F sCjIKFJ5R�i�c`F CU�W`N�F1U,N�RP=EU�IKL�D5R�Bf?�=PtpU�=E[M�mJG?�JXv�?�hGRPIKYVIKgF [O�;RP=EU�J`N�bQU�R@Ia?�J�?�B�hG=@IKYVIaRPIK\�F=@F�CjWO=@NPIa?�J¬IQNZL�Ia\�FJ�U�JO[¬R@DGF�JAWGY*F=EU�bQN]�f=@FhG=@F�NPFJ5R@F�[¬J5WOYkc�F=EN@�VWONPF�[�U�=PFqIKJ U�WGJOU�=Pd�f=EU�R@DGF=1RPDOU�Jy¢�v U�=@dG�u=PF�hG=PF N�F�J5R@U�R@Ia?�J.�XcGWXRrRPDGF�Y*FjR@DG?X[qIKN1hG=P?�Y*IKNPIaJOLOnGz J (>bKc�F=EN!�����������iUyY*?�=@F�F ZCIaF�J5R�U�[}DO?AC*[XF^OJGIaRPIK?�J�?�BuRPDGFZCEDOU�=@U�C�RPF�=PIQN�RPIQC�BfWGJOCjRPIK?�J�?�B � � � � �wIKN,L�Ia\�FJ.iWONPIaJOLy�OF=@Y*U�R�´ N�N�YZU�bab4RPDOF?�=@FY U�c`?�WXR�hG=@IaYZU�bKIaRSd�n | bQN�?yR@DGF*=PF ­�WOIa=@F�[}hG=P?A?�BT?�cGbKIKL�U�R@Ia?�JIQN1L�IK\�F�J.n`¾A?*R@DGFkN�R@U�RPFY*F�J�REN1IKJqRPDGFkc`F�L�IKJGJGIKJGLZ?�B{RPDOIKN!N�WGc`N�F C�RPIK?�J]C�U�J]c�F�?�cXREU�IKJGF�[ycAdCj?�Y*hGWXR@U�RPIK?�JON�n

| JG?�RPDGF�=eWON�F�?�B;=@F �OF C�R@Ia?�JwIQNpRP?ZNPDG?�t R@DOU�RrU�BfWGJ`C�RPIK?�JqbKIaH�F�{� ���>§ � �

� � �� � �#��0� � �� �����IQN�Cj?�J5RPIKJ5WO?�WON�n �1U�RPDGF�=%RPDOU�J�hG=@?�\AIaJGLxR@DGIKN�cAd!DOU�JO[,?�JOFTCU�J�IKJ5RP=@?X[XWOCjFuUxBf?�=@Y*U�b�bQU�JGL�WOU�L�F�1i�N�WOCED�RPD`U�RuU,[XF NPC=PIKhXRPIK?�J*?�B%�sIKN>U�Y*?�JGL�RPDOFYqi�U�JO[*N�DG?�t~RPDOU�R>F\�F=@d�FjlXhG=@F�N@N�IK?�J �����[XF�JG?�R@F�NeU*Cj?�J�R@IaJAWG?�WONxBfWGJOCjRPIK?�J.n

�.(*),+�-.-�/�� � � 7 � ���G8 � �<>=@?A?�B�U�N@NPIKN�R@U�J�RENMU�=PF�IKJ5RPF�=@U�C�RPIK\�F}hG=P?�L�=EU�YZNZ=@WGJGJGIKJGL�?�J�U~C?�Y*hGWXR@F=wRPDOU�RwDGF�bah RPDGFWONPF=wRP?�?�cXREU�IKJ�\�F=@I_^OF [ N�R@U�R@FY*FJ5REN��mteI_R@DGIKJ U~L�IK\�FJ�Y*U�RPDGF�YZU�RPIQCU�b�Cj?�J5R@FjlARE�jnpopDOIKN\�F�=PIa^`C�U�RPIK?�J�CU�J}c�FZL�FJOF=EU�RPF [�IKJ}RStx?ytxU#dXN���U�WXRP?�YZU�RPIQCU�babKd]cAd}UMRPDGF�?�=@FY hG=@?�\�F�=�i�?�=hG=@?�\AIK[XF [McAdZR@DGF�WONPF=eteIaRPD]UVhG=@?5?�B�R@DOU�R1IQNeCEDGF�CEH�F�[wcAdZRPDGF�YZU�CEDGIaJOF�n

Page 75: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � �

z�RTIKNTCjbKF�U�={R@DOU�RuhG=P?A?�B�CEDGF CEHAIaJGL,IQN�JG?�RuU�WXR@?�YZU�R@F�[*[XF [XWOC�R@Ia?�J.n�opDGFrhG=P?�cGbKFY³?�B�[GF�CjIQ[AvIKJGLZteDGFjR@DGF=�U*hGWXREU�RPIK\�FkhG=P?A?�B4IQN1IKJO[XF�F�[]U*hG=@?A?�B{IKN![XF�CIK[GU�cGbKF��G?�JqRPDGF�?�RPDGF�=1DOU�JO[wRPDGFhG=@?�cGbKFY teDGFjR@DGF=VU]hGWXREU�R@Ia\�FZRPDGF�?�=@FY IKNkIaJO[GFF�[�U]RPDGF�?�=@FY IQN�WOJO[XF�CIK[OU�cGbKF�n4�rU#\AIaJOLN@U�IQ[qRPDGIQN�i�IaR!IQN�JGF\�F=PRPDGF�baF NPNrL�?A?X[qRP?w=PF�YZU�=@HMR@DOU�R!RPDGF�=PFVIKN�UMNPh�F�C�R@=PWOY =EU�JOL�IKJGLZBf=@?�Y?�J*R@DGFr?�JGFeDOU�JO[ZhGWG=@F1hG=@?A?�B�v CEDGF�CEH�F=EN;RP?�?�J*RPDGF!?�RPDOF=>DOU�JO[ZhGWO=PFrU�WXRP?�YZU�RPF [�RPDGF�?�=@FYhG=@?�\�F�=@N�n | hGWG=@FphG=@?5?�B�v�CEDOF�CEH�F�=�iRP?�teDGIQCED�?�JGFuD`U�N;RP?,hG=@F�NPFJ5R�U�JkF�J5RPIK=PFuBfWGbKbadkBf?�=@Y*U�baIKgF [hG=@?A?�BSi�IKN�IKY*hG=@U�C�R@IKC�U�b"i`c�F�C�U�WONPF�IaR,IKN�[XI sCjWGbaR,RP?yhG=@?�\5IQ[XFkRPDGF N�FVhG=@?5?�B�v"?�c SF�CjR@N�n ¶ J�RPDGF?�R@DGF=*DOU�JO[~U}hGWG=@FyU�WXRP?�YZU�RPF [�R@DGF?�=PF�Y hO=P?�\�F=w�fRPDOU�R*^OJO[GN*U�hG=P?A?�BrI_B�U�N�R@U�RPFY*F�J�R* IQN1hG=@?�\�U�cGbKF�U�J`[yRPFbKbQN1WON1RPDOU�R1RPDGF�=PFkIKNrJG?�JGFk?�RPDOF=@teIKNPF �xIQN1IKY*h`?5NPNPIacObaF�Bf?�=1R@DGF?�=PF�Y*NIKJ�RPDOF?�=@IKF�N*U�NVN�IKY*hGbKFqU�NkhO=PF [XIKC�U�R@FwbK?�L�IKC�n | WXRP?�Y*U�RPF [¬[XF [XWOCjRPIK?�J~IQNVIaJ¬L�F�JGF=EU�bx?�JGbKdh�?�N@N�IKcGbKF*U�N�UyhOU�=PRPIQU�b>U�baL�?�=@I_R@DGY �mhG=P?�\AIQ[XIKJGLyUqhO=P?A?�BxI_BxRPDOF=@FZIKN�?�JGF�i%=@WGJGJOIaJGLqBf?�=PF�\�F�=?�R@DGF=@teIQN�F#��n

�G?�=eNP?�Y*F�N�h�F�CIKU�b�RPDGF�?�=@IaF NiAbKIaH�F!F�baF�Y*FJ5R@U�=PdZL�F?�Y*FRP=@d��fteDGIQCEDwIQNe[XF CjIQ[GU�cGbKF �jiOUkRP?�REU�bU�bKL�?�=PIaRPDOY�YZU#dwc�Fkh�?�N@NPIacGbKFM�mIaJ]R@DGF�C�U�NPF�?�B�L�F?�Y*FRP=@dMR@DGF=@F�IQNeRPDOFkFjlGCFbKbaF�J�RrRPDGF�?�=@FYhG=@?�\�F�=�?�B���W ������ �����jn�z JsY*?�N�RuC�U�NPF�N>U�JsU�WXR@?�YZU�R@F�[VRPDOF?�=@FY�hG=@?�\�F�=�=PF ­�WOIa=@F�N{R@DOU�RTRPDGFWONPF=�L�Ia\�F�N,DGIKJ5R@N�n | baRPDO?�WGL�D�RPDGIQN�CEDOU�hXRPF�=�IKN�JG?�RkU�c`?�WXR�U�WGRP?�YZU�RPF�[}RPDOF?�=@FY hG=@?�\�F=EN�itxFZtu?�WGbK[�bKIaH�F*RP?]Y*FJ5R@Ia?�J ¶ R�RPF�= � �$��������Bf?�=�CjbQU�N@N�IQCU�b�hG=PF [XIQCU�R@FZba?�L�IQC�i%R@DGFMNPdXNSR@FY ?�B�xIac�FbTBf?�=kCbKU�NPNPIQCU�b�hO=PF [XIKC�U�R@FVbK?�L�IKC*teIaRPD�F ­5WOU�bKI_RSd�i�NPFFs�xIac�FbuU�JO[�¾XCEDOYVIaR�R�������� �{RPDGF�x?�d�F�=�v ]?A?�=@F>R@DGF?�=PF�Y hG=@?�\�F=� !­�R@DGY�cOU�NPF�[�WGh�?�J*hG=@IaY*IaRPIK\�Fe=@F�CjWO=@NPIa\�FxU�=PIaRPDOYVFRPIQC�i�NPFF�x?�d�F�=TU�JO[ ]?A?�=@F � �$��� ����i�U�JO[*RPDOF!L�F?�Y*FRP=@dkR@DGF?�=PF�Y�hO=P?�\�F=>?�B ��WMRPDOU�RxtpU�NuU�bK=PF U�[XdY*FJ5RPIK?�JOF�[%iONPFF+��W������� ���"n

| ReRPDGF�?�RPDGF�=eFJO[w?�B4RPDGF�NPh�F�C�R@=PWOY�UVWON�F�=�v"Bf=@IaF�JO[XbKdshG=@?5?�B�v�CEDOF�CEH�F�=uW`N�WOU�babKdsDOU�NpN�?�YVFBf?�=@Y¨?�B4U�WXR@?�YZU�R@F�[M[GF�[XWOCjRPIK?�JwIaJy?�=E[XF=TRP?*YZU�H�FrIaRpY*?�=PF!F�U�NPdVBf?�=xRPDOF!WONPF=xR@?�hG=@?�\AIK[GFhG=@?A?�B�v�?�c SF C�R@N�n<T=P?A?�B�v U�N@NPIKN�R@U�J�REN�Cj?�J`N�IQNSREN%?�BGUphG=@?A?�B�v [XF\�FbK?�hGY*F�J�R�NPdXNSR@FY�RP?�L�FjR@DGF=.teIaRPDUVhG=@?5?�B�v�CEDOF�CEH�F�=�n

�"%$�" RoS�®1�Oª�� � T�'k���ÒSCSS±E¹�ªU[c[ � [zV ªUT�V�[��F�teIKbab{[XIQNPCWON@N!NPF\�F=EU�b.hG=@?A?�B�v U�N@N�IQN�R@U�J5RENn | bab�NPdXNSR@FYZNrFlGCjFhGR | L5[GUstx?�=@HyteI_R@D ����SLS�±[�j� � �§V�[ R@DOU�RVU�=@FsUqbaIQNSR�?�B V�ª���V � ��[ JGFF [XF�[�R@?]Y*U�H�F*R@DGFshG=@?A?�B�v U�N@N�IQNSREU�J5R,RP?�\�F=@I_Bfd�RPDGF\�U�bKIK[GI_RSdZ?�B.RPDGF,N�R@U�R@FY*FJ5R n5z J | L5[GUGi5RPDOF!WONPF=xF�[GI_RENTR@DGF�hG=P?A?�B�v9R@F=@Y�IaR@NPFbaB;cAdVBf?XCjWON@NPIaJGL?�JsU,DO?�bKF1U�JO[*FlAF CjWXR@IaJOL�?�JGFe?�B�RPDGF1?�h`F�=@U�RPIK?�JONr��R@U�C�R@IKC�N@�4R@DOU�RxU�hGhGbKd�R@?�RPD`U�RTDG?�baF�n�opDGFhG=@?A?�B�v U�N@N�IQNSREU�J5R@NkBmU�bKbeIKJ�R@?�RStu?�CjbQU�N@N�F N�4R@DG?�NPFqteI_R@D ���ÒSCSS±E¹�S�� � WE��V\[ U�J`[�R@DG?�NPFwteIaRPDO?�WXRhG=@?A?�B�v�?�c SF C�R@N�n

z J�RPDGFuCU�NPF>?�BXU1hG=P?A?�B�v�U�NPNPIKN�R@U�J5R�teIaRPDkhG=P?A?�B�v"?�c SF�CjR@N�R@DGFuN@Cj=@IahGR�L�F�JGF=EU�R@F�N.U�JO[�NSR@?�=@F�N.URPF�=PY�R@DOU�RxIKN��fIQN�?�Y*?�=@hGDGIQCxRP?5�TU�hG=@?A?�B�RPD`U�RxC�U�Jsc�F!CEDOF�CEH�F [Vc5dZU�NPIKYVhObaF!hG=P?A?�B�CEDGF�CEH�F= nopDGIQNVY*U�H�F NkR@DGF�NPFqN�dXN�RPFYZNVDGIKL�DGbKd�=@FbKIKU�cGbaF�n{z J¬hG=@IKJOCjIKhGbKFyNP?�Y*F?�JGF�i{teDG?�IQNV[G?�WGcXRPBfWGbteDGFRPDGF�=rUZCjF�=�REU�IKJyN�R@U�RPFY*F�J�R!IKNe\�U�baIQ[%iOC�U�J][X?�teJGbK?�U�[wU*hG=@?A?�B�v�?�c SF C�Re\AIKU�R@DGF�IKJ�R@F=@JGFjRU�J`[MbK?XCU�bKbKds\�F�=PIaBfdsIaR1WON�IKJGL*DGIQNe?�teJwRP=@WONSR@F�[yhG=@?A?�B4CEDOF�CEH�F�=u?�B4=@FbQU�R@Ia\�FbKdsN�YZU�bab�NPIKgF�n

<>=@?5?�B�v�U�NPNPIQNSREU�J5R@N,R@DOU�RZDOU#\�FMJG?�hG=@?A?�B�v�?�c SF C�REN�C?�Y*FwIKJ�RStx?�CjbQU�N@N�F Nn{opDGFy^O=ENSR*?�JGFCj?�JONPIKN�R@N*?�B�NPdAN�RPF�YZNVRPDOU�R*IKJ«hG=@IaJOCIahObaF]CU�J~R@=@U�JONPbKU�RPFyRPDGF]hO=P?A?�B�v N@Cj=@IahXR*IKJ�R@?�U�hO=P?A?�B�v?�c SF�C�ReR@DOU�R�CU�J]c�F�\�F=@I_^OF [McAdqUZN�YZU�bab�CEDOF�CEH�F�=�nXz JqR@DGIQNrCU�N�F,R@DGF�hG=@?A?�B�v NPC=PIKhXR1CU�Jqc`FCj?�JONPIK[XF�=PF [�U�N�U T§SUT`¹X[cV ªUT�º�ª��Pºk���ÒSCSS±E¹�S%� � WE�YV n�z J}?�=E[XF�=1RP?yYZU�H�F�RPDOIKN!RP=EU�J`N�bQU�R@Ia?�J]RPDGF N�FNPdAN�RPF�YZN SWON�R{JGFF [�N�?�Y*FuNPdAN�RPF�Y N�h�F�CI_^`CThG=@FhG=@?XCjF�N@NP?�=�U�B�RPF=4teDGIQCEDkUeR@=PW`NSRStx?�=PRPDAd,CEDGF�CEH

Page 76: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{�����������CU�J}c�F*h`F�=�Bf?�=PY*F�[.n�opDOF*NPF�C?�JO[�CjbQU�N@N!C?�JONPIQNSREN!?�BThG=@?A?�B�v U�N@N�IQNSREU�J5R@N1Bf?�=,teDGIQCED}R@DGF=@FVIKNJG?�Re�md�FRE�4UrtpU#d,RP?,hG=@?�\AIK[GFuU�hG=@?5?�B�v"?�c SF�CjR;teIaRPD*DGIKL�D�=PF�baIQU�cGIKbKI_RSd�n�¾A?rBf?�={RPDGFeC?�=@=PF C�RPJOF�N@N?�B%R@DGF?�=PF�YZNTU�C�CjF�hXRPF [ZcAdVU�NPNPIKN�R@U�J5R@N>IKJZR@DGIKNxCjbQU�N@N>?�JGFrD`U�N�R@?�R@=PWON�RTR@DGF�NPF!NPdXNSR@FYZN�n5opDGFU�[G\#U�J5R@U�L�F]?�B,RPDOF�NPF�HAIaJO[ ?�B�N�dXN�RPF�Y*NsWON�W`U�bKbad�IKNsRPDGF�Ia=ybQU�=@L�F=sU�WXRP?�YZU�RPF [�[XF�[GWOC�R@Ia?�JBmU�CIabKIaRPIKF�N1U�JO[��fRPDGF�=PFBf?�=@F �TRPDOFIK=1bKU�=PL�F=pWONPF=Pv9Bf=@IKFJO[XbKIKJGF�N@Nn��F�teIabKb�[XIQNPCWON@NxRPDGF,Bf?�babK?�teIaJOL�hG=@?A?�B�v U�N@N�IQN�R@U�J5RENn

N�dXN�RPFY hG=@?A?�B�v�?�c SF C�R@N�u?A­�i ��FL�?`i | L5[GU d�F N 1WGhG=@b"iO� ¶ �TiXzSNPU�c`F�babKF JG?�JXv�N�R@U�JO[GU�=@[ ]Iag U�= iG< �,¾�i | ����� JG?

R�S ��� ��W 'GSwªUT�º � '5º�ª¶ B�R@DGF�NPF!RPDG=@FF,N�dXN�RPF�Y*Nr�u?X­*IQNuRPDGF,Y*?�N�Rp[GF\�F�ba?�h`F [M?�JGF�nXopDGF,NPdAN�RPF�YZNe�u?X­sU�JO[ ��FL�?U�=@FTc`U�NPF�[�?�J�\�F�=@NPIa?�JON.?�BGRPDOFxC�U�bQCjWGbKWON;?�B`C?�JON�RP=@WOC�R@Ia?�JON;FjlARPF�JO[XF�[kteI_R@DkIKJO[XWOCjRPIK\�FuRSdAh`F Nn�G?�=*RPDGFqbK?�L�IKC�U�bph`?�txF=*?�BrRPDOIKN*Bf?�=PYZU�bpNPdXNSR@FYqi>NPFF�� | Cjg�Fb �$�%��� �pU�JO[�R@DGF]=@FjBfF=@FJ`CjF�NCj?�J5R@U�IKJGF [sR@[email protected] | J]IaY*h�?�=PR@U�J5R1[XIaµ�F�=PF�JOCjF�c�FjRStxFF�JyRPDGF�hG=@?A?�B�v U�N@N�IQN�R@U�J5RENuIQNeIKJyRPDGF�Ia=Cj?�Y*hGWXR@U�RPIK?�JOU�b�h�?�tuF�=�n�x?�RPD�N�dXN�RPF�Y*N�U�[XY*IaR.RPDGFu<{?�IKJOCU�=��F4hG=@IaJ`CjIKhGbaF>Bf?�= �/� �fv Cj?�J5\�F=EN�IK?�J�nopDGIKNpY*F U�JONxR@DOU�ReR@DGF=@F�U�=@F�[GF�[XWOCjRPIK?�J]N�RPFh`NebaIKH�F�R@DGF,Bf?�bKba?�teIKJGLV?�JGF Nn

�eF �OFjlXIK\�F��0�,��

����. � �?�*k� 1 ���

�/�*k� ���

U�JO[*k� ��� � � �5�P�

� �*k� ���5�

£

� �1F=@F1?�JGFrU�N@NPWGY*F�N{R@?�DOU#\�F1[GFj^OJGF [ �eF �OFjlXIK\�F��0��� �F����. � �?��i 1 � ° �/. �yU�JO[ ��� � U�N�RPDGFBfWGJOCjRPIK?�J�=PF�hG=PF N�F�J5RPIKJGLZRPDOFkBmU�C�RP?�=PIQU�b"n � ¶ JGF�?�B>R@DGF*[XI_µ�F=@FJ`CjF�N!c�FjRStxFFJ��u?X­yU�JO[ ��FL�?IQN>R@DOU�RxIaJ ��FL�?�?�JGF�CU�JZIaJ5RP=@?X[XWOCFr?�R@DGF=uJG?�R@Ia?�JONu?�B.=@F�[XWOCjRPIK?�J*Bf?�=uteDGIQCEDZR@DGF!<{?�IaJOC�U�=��FhG=@IaJ`CjIKhGbaF�IQNeU�N@NPWGY*F�[MRP?ZDG?�bK[��fIKJOCjbKWO[XIKJGLZJG?�JXv"RPF=@Y*IaJ`U�RPIKJGL*?�JOF�NE��n

�u?�RPD��u?X­yU�JO[ �.FL�?sCj=@F�U�RPF�hG=@?A?�B�v�?�c SF C�RENeBf=@?�Y RPDGF�hG=P?A?�B�v�N@Cj=@IahGR@NrU�JO[]N�RP?�=@F�R@DGFYqnopDGF N�FVhG=@?5?�B�v"?�c SF�CjR@N!U�=@FkIQN�?�YV?�=PhODGIKC�RP?yJOU�R@WG=@U�b4[GF�[XWOCjRPIK?�J�hG=P?A?�BmNn�opDGF�RStu?yN�dXN�RPFYZNU�bKbK?�t~IKYVhO=PF [XIKC�U�R@Ia\�FpU�=PL�WGY*FJ5R@N�U�N�WONPF�[VIKJ*U�C�R@WOU�bGYZU�RPDGF�Y*U�RPIQCN�i�cGWXRxU�=@L�WGF [�R@?�c`Feh�?�vRPF�J5RPIQU�bKbad�WGJG=@FbKIKU�cGbaFpcAdk<{?�IaJOC�U�=��FuU�JO[ �U�=PRPIKJXv � "?�BSn�opDOF1N�dXN�RPFY | L5[GU�IKN>NPIKYVIKbQU�={RP?k�u?X­U�J`[ �.FL�?Oi�FlXCFhXRTRPDOU�RTI_RxIKN>cOU�NPF�[*?�J� }U�=PRPIKJXv � "?�B�RSdAh`Fv9R@DGF?�=Pd�IaJZteDGIQCEDZIKYVhO=PF [XIKC�U�R@Ia\�F­5WOU�J5R@I_^`C�U�R@Ia?�JONTU�=PF1JO?�RxU�babK?�txF�[%n�opDOF�<{?�IaJOC�U�=��FxhG=PIKJOCIahGbKF!C�U�Jsc�F!U�NPNPWGY*F�[*cAdVRPDOF!WONPF=Bf?�=!U�JAdMJG?�RPIK?�J]?�B4=@F�[XW`C�RPIK?�JqR@DOU�R!IKNehO=P?�\�F�[MRP?sc�FkN�RP=@?�JGL�badwJG?�=@YZU�bKIag�IaJGL`n | L5[GU*IKNrJG?�RNP?kYkW`CED]² REU�CjRPIQCNucOU�NPF�[%´AU�Ne�u?X­*U�JO[ ��FL�?On�z J | L�[OU�?�JOFrF�[GI_RENxUkhG=@?5?�B�RPF=@Y¨cAdy² ^ObKbKIaJGLIKJ~R@DGF]DG?�bKF�N�´�IKJ�U�J¬?�h`F�J~R@F=@YynuopDGF]N�dXN�RPFY U�C�RENZU�N*U�NSR@=PW`C�RPWO=PFqF�[GI_R@?�= i4hO=P?�\AIQ[XIaJOLNPWGhGh�?�=PRxBf?�=pRPF�=PY Cj?�J`NSR@=PWOCjRPIK?�J.n

��¯ ����� � � � ��ª�T�º 0 [ª��cW����WopDGF�NPdXNSR@FY� rWGhG=@b4�u?�JON�R@U�cGbKF�FR1U�b"n ���������%[X?AF�NeDOU#\�F!hO=P?A?�B�v�?�c SF�C�RENiAcGWGRrU SW`[XL�Y*FJ5R

� ,]�*�£

Page 77: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � �

IKJO[XIQCU�R@IaJOLMR@DOU�R ,�IQN,UMhO=P?A?�B>?�B *�i%IQN�JG?�R�[XF CjIQ[GU�cGbKF�n%opDGFV=@F�U�NP?�JqBf?�=�RPDGIQN�IKN!RPD`U�R�RPDGF<{?�IKJOC�U�=��F{hG=PIKJOCIahGbKFTIQN4U�N@N�WGY*F [,JG?�R4?�JGbKd�Bf?�=/��� ��v Cj?�JA\�F=ENPIa?�J.ir��R@DGFxIaJ5RPF�JONPIa?�JOU�b�F�­5WOU�bKIaRSdX�cGWXRrU�bKNP?VBf?�= W��GVXWYT�[ � SUT�ª���W � ¯Oª�� � V"¼ n�¾AFFk¾XF�C�R@Ia?�J)�Gn �OnO¾A?VRPDGF�=PF�IQNeUV=PWObaF

,]�*k� " � ��O� " § � �,]�*�� �#�

¾A?`iO 1WGhO=Pb.IQNecOU�N�F [M?�J]U�JqFjlARPF�JONPIa?�JOU�b�RSdAh�F�N�dXN�RPFYqnOopDOIKNeIKY*hGbKIaF NeRPD`U�ReRSdAh`F�CEDOF�CEHAIaJOL,«� *��}�mor�x<1i;N�F�FZ¾XF�C�R@Ia?�J �Xn � ��IQN�JG?qba?�JGL�F�=�[XF�CIK[OU�cGbKFZU�JO[�RPDOF=@FjBf?�=@F*hG=@?5?�BmN�CU�JGJG?�Rc�F�CEDGF CEH�F�[.n`�1?�txF\�F= iXRPDOF=@FkU�=@FZ² FjlXhOU�J`[XF�[%´`hG=@?5?�B�v"?�c SF�CjR@N � R@DOU�R,CU�J]F NSREU�cGbKIQN�D]R@DOU�R,�� *�n�z J]BmU�CjR�i`RPDGF � REU�H�F N1IKJ5RP?MU�CCj?�WGJ5R1RPDOF�RPF�=PYZN VBf?�=!teDGIKCED Z� " § ��n�¾A?sR@DGF�NPF �

NPF=@\�F,U�NxRPDOF*² =@F�U�b9´XhG=@?A?�B�v�?�c SF C�RENnopDGFshG=@?A?�B�v U�N@N�IQNSREU�J5R�� ¶ � � ¶ � ����������>IQN�cOU�N�F [�?�J~�uDAWG=@CED�´ N�NPIKYVhObaFZRSdAh�FsR@DGF?�=Pd

�fc�FIKJGLqcOU�N�F [}?�J�CbKU�NPNPIKC�U�b{bK?�L�IQC��jn%opDGIKN,IQN�UqCjbQU�N@N�IQCU�b�N�dXN�RPFY ?�Bx�rIaL�DGF= ¶ =E[XF= ��?�L�IQC�nopDOU�R�� ¶ ��WON�F N�JG?�JXv N�R@U�J`[GU�=E[�hG=@?A?�B�v�?�c SF C�REN!D`U�N,Uq[XI_µ�F=@FJ5R�=@F�U�NP?�J�n�� ¶ ��[G?5F N,JG?�RN@U�RPIQN�BfdkR@DGFr<{?�IKJOC�U�=��FuhO=PIKJOCjIKhGbKFeBf?�=uU�JAdVC?�JA\�F�=@NPIK?�Jk=@FbQU�R@Ia?�J.n | NuU�C?�JONPF�­5WGF�JOCjF1C?�Y*hGWXvR@U�RPIK?�JONpIKJA\�?�ba\AIKJGLk=@F�CWG=@NPIK?�Jsc�F�C?�Y*F�­�WOI_R@F�baF�JGL�R@D5dZteDOFJqCj?�JA\�F=PRPF�[sRP?ZU�hG=P?A?�B�v"?�c SF�CjR��Bf?�=kFlXU�Y*hGbaFMF�N�R@U�cObaIQN�DOIaJGL]cAd�U]hG=@?A?�BxRPDOU�R � ��� � 0 ��§ 0 ���a��n{opDGF�=PFBf?�=@F*RPDGFM[GF�NPIaL�J[XF CjIQN�IK?�J�txU�N!YZU�[XFkR@DOU�R�hG=@?A?�B�v�?�c SF C�REN!U�=PF�JG?�R�N�RP?�=@F�[.i�?�JGbKdqRPDGF*hG=@?A?�B�v NPC=PIKhXR@N�n (>\�F�JIaBTUZhG=@?5?�B�?�B ��� � 0 � § 0 ��� YZU#dwc�FkbK?�JOLOiOIaRrIQNrh�?�N@NPIacGbKF�R@?sL�IK\�F�IaR�UsNPDG?�=�Rr[XF NPC=PIKhXR@Ia?�JIKJZRPDGF!hG=@?5?�B�v�N@Cj=@IKhXR�n�z JO[XWOCjRPIK?�JsIQNu[G?�JGF1cAdZ[XF^OJGIKJGLkU�JMIaJO[GWOC�R@Ia\�FrhG=@F�[XIQCU�RPF1IKJMUkDGIaL�DGF=?�=E[XF�=xtpU#dMU�NxRPDGF�NPYZU�bKbaF NSR1NPFjR1NPU�RPIQNSBfdAIKJGLZU*CjbK?�NPWG=PF,hG=@?�h�F=PRSd�n

| bQN�?!zSNPU�c`F�babKFTIQN4cOU�NPF�[�?�J�IKJ�R@WGIaRPIK?�JGIQNSR@IKCxNPIaY*hGbKFTRSdAh�F>R@DGF?�=Pd�n �xWXR4RPDGIQN4hG=@?5?�B�v�U�NPNPIQNSREU�J5RIQN�^OJGFv9R@WGJGF [�RP?�tpU�=E[GN,WONPIaJGL�RPDGIQN�bK?�L�IKCZU�N�UqY*FjR@U�v"bK?�L�IKC*IKJ�teDGIQCED�\�U�=@Ia?�WON,ba?�L�IQCNs�fBf?�=FjlGU�YVhObaFV^O=ENSRPv"?�=@[GF=,hG=@F�[XIQCU�RPF*ba?�L�IQC�i�R@DGFsN�dXN�RPF�Y*N,?�BuR@DGFZbQU�Ykc�[GUqCjWOc`FZ?�=�DGIaL�DGF=�?�=�v[XF�=�ba?�L�IQC��!U�=@FV[XF NPC=PIKc�F�[�IaJ5RPF�=PJ`U�bKbad�i%IaJ�RPDGF ��?�L�IKC�U�b{�G=EU�Y*Ftx?�=@H]NSRSdAbKF�n.opDGIQN,YZU�H�F N�I_RDOU#\AIKJGL�JG?�JXv�N�R@U�JO[GU�=@[*hG=@?A?�B�v�?�c SF C�RENn | L�U�IaJsRPDGF,N�dXN�RPF�Y½[X?AF�NuJG?�RpNPU�RPIQNSBfdVRPDOF�<{?�IaJOC�U�=��FhG=@IaJ`CjIKhGbaF�iAcGWXReU#\�?�IQ[GN>RPDGF�hG=@?�cGbKFY©cAdZJG?�RpCj?�JON�IQ[XF�=PIKJGLkhO=P?A?�B�v�?�c SF�C�RENn5�x?�RPDwU�N@N�IQNSREU�J5R@N� ¶ �yU�J`[kzSN@U�c�FbKbaFxDOU#\�FThG=@FjRPRSd�L�?A?X[�=@Fte=@I_R@FuF�JGL�IKJGF�N�i#JGFF [XF�[kRP?�=@WGJkR@DGFxJG?�JXv N�R@U�J`[GU�=E[hG=@?A?�B�v�?�c SF C�R@N�n

z�RZNPDG?�WGbK[~c`F]N�R@U�RPF�[�RPDOU�Rs� ¶ � U�JO[~zSNPU�c`F�babKFy[GIK[¬JG?�RVBmU�IKbpRP?�U�[GFhXRVRPDGF]<{?�IaJOC�U�=��FhG=@IaJ`CjIKhGbaFec�F�C�U�WONPFeIaR>txU�N{Bf?�=@L�?�R�RPF�J.i�cGWXRuc`F CU�W`N�FxRPDOF1hG=@?�cGbKFY¦?�B�F�­5WOU�R@Ia?�JOU�bX=@F�U�N�?�JGIKJGLtpU�NZNP?�bK\�F�[~IaJ�U�[XIaµ�F�=PF�J5RstxU#d�i�c5d�RPDGF]JG?�JXv NSREU�JO[GU�=@[~hG=@?5?�B�v"?�c SF�CjR@N*IKJ�RPDGFqBf?�=PY ?�BRPDOF*R@U�CjRPIQCN�n.z�R�YZU�H�F�N!Bf?�=@YZU�bKIag�IaJGLqY*?�=@F*F�U�N�d�i%cGWXR�?�JOF*C�U�JGJO?�R�WONPF*hG=P?A?�B�v"?�c SF�CjR@N!Bf?�=FjlGU�YVhObaFyRP?�NPFF][XFR@U�IKbQNZ?�B!RPDGF]hG=@?A?�B�?�=VBf?�=ZhG=@?�L�=@U�Y FjlARP=EU�CjRPIK?�J.n>�r?�tuF�\�F= i4I_RsIQNZIKJhG=@IaJ`CjIKhGbaFZJO?�Rk[XI sCjWGbaR�RP?]Y*?X[XIaBfd}F�I_R@DGF=k� ¶ �«?�=�zSN@U�c�FbKbaF*R@?]Cj=@F�U�R@FsU�JO[�N�RP?�=@F*hG=@?5?�B?�c SF�C�RENn

�]��� ª�� � � R � ! � &�� � ]IKg�U�= ]zP� | � ������� �KIQN�cOU�NPF�[�?�J�UyBf?�=@Y ?�BpNPFjR�R@DGF?�=Pd��mo4U�=EN�HAIav ��=@?�R@DGFJ`[XIaF CEHG�1R@DOU�RIQN����{��Fl5R@FJO[GF�[qteIaRPD�U�J]U�lAIK?�Y FjlXhG=@F�N@N�IKJGLVRPDOF�FjlXIQNSR@FJOCF�U�=@cGI_R@=@U�=PdMbKU�=PL�F,C�U�=E[XIKJOU�bQNnz�Rk[X?AF�N�JG?�R�tx?�=@H�teIaRPD�hG=@?5?�B�v"?�c SF�CjR@N,JG?�=�[X?AF�N,IaRkDOU#\�F�R@DGFs<{?�IKJOC�U�=��FkhG=@IKJOCjIKhGbKF�n�opDGFNPdAN�RPF�Y DOU�NVNP?�Y*FwU�WXRP?�Y*U�RPF [�[XF�[GWOC�R@Ia?�J¬U�J`[~U�W`N�F�=�v"Bf=PIKFJ`[Xbad�NPFjRV?�B1REU�C�R@IKC�Nn{z J~BmU�C�R

Page 78: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{�����������UyJGIQCjF*BfF�U�RPWG=@FZ?�BxRPDOFsN�dXN�RPFY IKN�R@DOU�R�R@DGFshG=@?A?�B�v NPC=PIKhXR,IKNkCjbK?�NPF�R@?�U�J�?�=E[XIKJOU�=@d]hG=@?5?�BIKJ�YZU�RPDOFYZU�R@IKC�N��mteDGIKCED�U�=@F�IaJ5R@F=@JOU�bKbady=@FhG=@F�NPFJ5RPF []U�NrhG=P?A?�BmNrIKJ}NPFjRrR@DGF?�=PdG�jn | J�IaYVvhG=@F�N@N�IK\�F�C?�bKbaF C�R@Ia?�Jy?�B�=PF N�WGbaR@N1IKNrIaJqR@DGF+ ]IKg�U�=1bKIacG=EU�=@d�nXz�R,N�F�FYZNpR@DOU�R�IaJ]hG=@IKJOCjIKhGbKF�I_R!IKNh�?�N@N�IKcGbKF!R@DOU�ReR@DGF! ]IKg�U�=1NPC=PIKhXR@NeU�=PF�R@=@U�JON�bQU�R@F�[MIaJ5RP?sUVhG=@?A?�B�v�?�c SF C�R n

| ����� | ��� � � � &%&�& �;IQN!U�J}FjlAR@FJONPIa?�J�?�BTRPDGF�RPDGF�?�=@FY hG=@?�\�F�=1?�Bx�u?�d�F=Pv �?5?�=PF�nGz�R,IKNcOU�N�F [Z?�JsCbKU�NPNPIKC�U�b`hG=PIKY*I_R@Ia\�Fr=@F�CWG=@NPIK\�F1U�=@IaRPDGY*FjR@IKC!U�JO[sI_RpIKNuWONPF�[ZIKJsIKJO[XWON�RP=@d�n5z�RpIKNuJG?�Rh�?�N@N�IKcGbKFMBf?�=kR@DGFwW`N�F�=�R@?�C?�JON�RP=@WOCjR�IKJO[XWOCjRPIK\�FwRSd5h�F�N�i{cGWXR*RPDOF=@FwIQN*U�h�?�tuF�=�BfWGbxcGWGIKbaR�vIKJ�IaJO[GWOC�R@Ia?�J.�;U]W`N�F�=kCU�J�[GFj^OJGFMDGIKNk?�teJ�tuF�babav9Bf?�WGJO[XF [�=PF CjWG=ENPIa\�F�BfWOJOC�R@Ia?�JONM�mWGhXRP?�� �=@F�CjWO=@NPIa?�J`��U�JO[ZbKFjRTR@DGF,N�dXN�RPFY¨C?�Y*hGWXR@FrteIaRPDsR@DGFYqn��mopDGF!BfWGJOCjRPIK?�JONxU�=@FrU�C�RPW`U�bKbad �.IQNPhBfWGJOCjRPIK?�JON�n��

< ��¾�< ��¾�� �$�%��� ��U�L5U�IKJ�IQN;cOU�NPF�[,?�J�CjbQU�N@N�IQCU�b�NPIaY*hGbKF�RSdAh`FTRPDGF�?�=@d�n�z�R;IQN�teIaRPDG?�WXR;hO=P?A?�B�v?�c SF�C�REN�U�JO[VFlAhOba?�I_REN4RPDGIQN�cAd�U�babK?�teIaJOL�U�babGHAIKJO[V?�B�=PF�te=PIaRPIKJGLOi#Bf?�=�JAWGY*F=@IKCeU�JO[�NPdAYkc�?�bKIKCF�­5WOU�baIaRPIKF�N�nAopDGF!NPdXNSR@FY�IKNu\�F�=PdVWONPF=Pv9Bf=@IaF�JO[XbKd�c�F�C�U�WONPF1?�B�U�WXR@?�YZU�R@F�[s[XF [XWOCjRPIK?�JZR@DOU�RxIKNcGWGIKbaR1IaJ.n`opDGF�N�dXN�RPF�Y�U�bKba?�t1NpNPWGcXRSdAh�F�Ne?�B;R@DGF,Bf?�=@Y

*�§ < �]� � � 9Z� ��� A�.

z�B>R@DGF�NPdXNSR@FY DOU�NrRP?yCEDGF�CEH���� *¦IaR�teIKbab4L�F�JGF=EU�R@FkUshO=P?A?�B�v�?�cObaIKL�U�RPIK?�JyBf?�=!RPDGF�=PF U�[XF�=��� hO=P?�\�F 9Z� �X� �Gn �1hqR@?s?�WG=!HAJG?�tebaF [XL�F,JG?MFjµ�?�=PRrDOU�N1c`F�FJ�YZU�[GF�RP?ZhG=@?�\AIK[GF�< ��¾yteIaRPDhG=@?A?�B�v�?�c SF C�R@N�n

R�S�®r�Gª�� � [YSUT

opDGF�hG=@?A?�B�v U�N@N�IQN�R@U�J5RENuC?�JONPIK[GF=@F�[ZBf?�babK?�t R@DGF,Bf?�bKbK?�teIaJGL*hOU�R�R@F=@J.�

| L�[GU�vS�u?X­�v �.FL�?�v  1WGhO=Pbav�� ¶ �%v�zSNPU�c`F�babKFjv ]IKg�U�=�v | ����� v < �,¾�n

| L5[GUGip�u?A­¬U�JO[ ��FL�?�U�=PFqR@?�RPDGF}baFB�R�ixIaJO[GIKC�U�RPIKJGL�=@FbKIKU�cGIKbaIaRSd � | L�[OU�L�IK\�FJ�R@DGF]^O=ENSRhGbQU�CF!c�F�C�U�WONPF!IaRpDOU�Nx?�JObadZhG=@F�[GIKC�U�RPIK\�F!ba?�L�IQC��G�u?X­ZCj?�Y*IKJGL*N�F Cj?�J`[%i5NPIKJOCjF�?�JGbKdsN�RP=@?�JGL�badJG?�=PYZU�bKIKgIKJGLe=PF�te=PIaRPFT=PWGbKF�N�YZU#drc�FuU�[O[XF�[O�jn | B�RPF�=�R@DOU�R.Bf?�babK?�t� 1WGhO=Pb"i � ¶ �sU�J`[,zSNPU�c`F�babKF�iteIaRPD]R@DGFIK=rJG?�JXv NSREU�JO[GU�=@[yhG=@?A?�B�v�?�c SF C�REN��m rWGhG=@b4C?�Y*IaJOLZ^O=ENSR1Bf?�=1R@DGF�N@U�Y*F�=@F�U�N�?�JON1U�N| L5[GUG��zSN@U�c�FbKbaFVCj?�Y*IKJGLMbQU�N�R�i�c�F�CU�WONPF�RPDOF�Fl5R@=@UsbKU#d�F=rYZU�H5IKJGLMRPDGIKJGL�N�UscOI_R,DOU�=E[XF�=1RP?YZU�JOU�L�F#��nT�4IKJOU�bKbad«Cj?�Y*F ]Iag U�= i | ������U�JO[�< �,¾�iTc�F�C�U�WONPFqRPDOFd«[X?�JG?�Rwtu?�=PH�teIaRPDhG=@?A?�B�v�?�c SF C�R@N�n ��F1hGWXRp< �,¾VbKU�NSR i�c`F CU�WON�FrF\�F�=Pd�JG?�t«U�JO[VR@DGFJZcGWOL�NTU�=PFpBf?�WGJO[*IKJZRPDOIKNNPdAN�RPF�Ys��n

¶ JsRPDOF�?�RPDGF�=pDOU�JO[.i�R@DGF,?�=E[XF=uBf?�=pIKJ5RPF=@JOU�b�U�WXRP?�YZU�RPIK?�JwIKNuR@DGF,?�hGh�?�NPI_R@F�� | ������U�J`[< �,¾�teIaJZU�J`[ | L�[GU�bK?�NPF�N�n ¶ B�C?�WG=ENPFxF�\�F�J�R@WOU�bKbKd�hG=@?5?�B�v�U�NPNPIQNSREU�J5R@N4N�DO?�WGbQ[Vc`F1[XF�\�F�ba?�h`F [RPD`U�RuU�=PFpc�?�RPDZ=@FbKIQU�cGbKFeU�JO[VWONPF=Pv9Bf=@IKFJO[XbKd�n�opDGF�SWO[XL�YVF�J5R@NTU�=PFpcOU�N�F [V?�JZN�?�Y*FxIKJ5RPWGIaRPIK?�J

Page 79: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � �

U�J`[wNPDG?�WObK[yJG?�Rpc�F,R@U�H�F�JMR@?5?sNPF=@IK?�WONPbad�n| NPN�n h.n ?On =@FbKIQU�c.n <u< ba?�L�IQC [XFh.n R�n IKJO[%n R U�WXRP?�Yyn �kWON�F�=@N| L5[GU d�F�N �/� �0� � IaJ5R nGhG=@F�[%n d�F�N d�F N JG?�JGF�� v�u?X­ d�F�N �/� �0� � IKJ�R n d�F�N d�F N �.F�L�? d�F�N �/� �0� � IKJ�R n d�F�N d�F N  rWGhG=@b J.n Nn �/� �0� � IKJ�R n d�F�N d�F N � ¶ � J.n Nn JG?�JGF Cjb"n JG? d�F N

zSN@U�c�FbKbaF J.n Nn JG?�JGF R n c.n N�n JG? JO? ]IKg�U�= JO?�JGF JG?�JGF Cjb"n d�F�N JO? | ����� JO?�JGF � � hG=EU JG? d�F�N�� < �,¾ JO?�JGF � JG?�JGF Cjb"n JG? JO?

�.F�L�F�JO[GU

| N@Nn J`U�Y*F�?�B;RPDGF�<T=P?A?�B | N@N�IQN�R@U�J5R �h.n ?On hO=P?A?�B�v�?�c SF�C�REN�J.n Nn JO?�JXv NSREU�JO[OU�=E[%�=PF�baIQU�c�n =@FbKIQU�cGIKbaIaRSd��<T< <{?�IaJ`CU�= �F!hG=PIKJOCIahGbKF��[XFh�n R n [GFh�FJO[XF�J5R1RSdAh`F N�IaJ`[%n R n IKJO[XW`C�RPIK\�F,RSdAh�F�N��U�WXR@?�Yqn [GFL�=@FF,?�B4U�WGRP?�YZU�RPIK?�J.�IaJ5R n IKJ5RPWGIaRPIK?�JOIKN�RPIQC,ba?�L�IQC�hG=PFBfF=@=PF [%�hG=@F�[%n ?�JGbKdshG=@F�[XIQCU�RPIK\�F�­5WOU�J5RPIa^`C�U�RPIK?�J��Cjb"n CbKU�NPNPIQCU�b�bK?�L�IKC��hG=EU hO=PIKY*I_R@Ia\�F�=PF CjWG=EN�IK\�F,U�=@IaRPDGY*FjR@IKC*�9N�?*JG?s­5WOU�J�R@I_^`F=EN@�j�R�n c.n Nn R@?Zc`F�NPh�F�CjIa^OF [wcAdZR@DGF�WONPF= �� � U�=PcOI_R@=@U�=PdZJG?�RPIK?�Jy?�B{=PF [XWOCjRPIK?�J.�� � N�RP=@WOCjRPWG=EU�bKbadMtuF�babav9Bf?�WGJO[XF [M=@F�CWG=EN�IK?�J.�� � U�=PcOI_R@=@U�=PdZhG=@?�\�U�cGbKF�F�­5WOU�bKIaRSd�nK�� � � �v"=@F�CWG=@NPIK?�J.n

opDGF=@FZU�=@F*NPF\�F=EU�b{?�R@DGF=�hO=P?A?�B�v U�N@NPIKN�R@U�J�RENn.¾AF�F � �!IaL�IaYZU�RPD � &%&�&��{Bf?�=kU�J�IaY*hG=@F�N@NPIa\�FbKIKN�R�n

�" !�" � ����� � �EªUV � SUTZ[ SS±u���ÒSLS�±E¹�ªg[c[ � [zV�ª�TZV\[| RrhG=@F�NPFJ5R1R@DGF=@FkU�=PF,RStx?sU�hGhO=P?5U�CEDGF NxRP?ZR@DGF�Y*F�CEDOU�JGIQCU�b;\�F�=PIa^`CU�RPIK?�Jy?�B>Cj?�Y*hGbaIQCU�RPF [N�R@U�R@FY*FJ5RENn�opDGFu^O=ENSR4?�JGF�i�R@DOU�R{txFuYZU#d�CU�bab5RPDOF ���Pª '�®*ª�V � ��ª@�����ÒS ª��E· i�WON�F N4hG=P?A?�BOU�N@N�IQNSv

Page 80: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{�����������R@U�J5R@NxteI_R@DwYZU�J5dsC?�Y*hGbKFjlZR@?5?�bKNuR@?�\�F=@I_Bfd*R@DGF�Cj?�=@=@F�C�R@JGF�N@Nu?�B;N�R@U�RPFY*F�J�RENnXopDGF N�F!RP?A?�bKNIKJOCjbKWO[XFZR@DGF?�=PF�Y hO=P?�\�F=EN�U�JO[�C?�Y*hGWXR@F=kU�baL�FcG=EU]N�dXN�RPF�Y*N�i%R@DGFwC?�=@=PF C�RPJOF�N@N,?�BeteDGIQCEDDOU�NeJG?�R1c�FF�J]\�F�=PIa^OF�[��9U�N1U*YZU�RPRPF�=r?�B4BmU�CjR�i�Cj?�Y*hGWGRPF=!U�bKL�FcO=@U*NPdAN�RPF�YZN1U�=@F,?�B�RPF�J]JG?�RBf?�=@YZU�bKbadwCj?�=@=@F�C�ReU�RrU�bab���n�(>\�F�JwIaB{RPDGF N�F�NPdXNSR@FYZNeYZU#dMCj?�J5R@U�IKJycGWGL�NeRPDGF�C?�=@=PF C�RPJOF�N@Nu?�BDOU�=@[XtpU�=@F�NPdXNSR@FYZN,U�JO[��f=@FbQU�R@Ia\�FbKd�N�YZU�bab�cGWGR�C=PIaRPIQCU�bQ��NP?�B�RStpU�=@F�NPdXNSR@FYZN*�fbKIaH�FVhO=P?�RP?�vCj?�bKNE�rIKN�[X=EU�YZU�RPIQCU�bKbKdyIKJOC=PF U�NPF�[%i%NPFF��eWONPD5cAd�U�JO[}�rFJGH�F1� �$�%��� �{U�JO[ �eWOF�N@Ni�¾AD`U�JGH�U�=U�J`[�¾A=PIK\�U�N!� �$�%�� �"nO<T=P?A?�B�v�U�NPNPIKN�R@U�J5R@NuRPDOU�R!U�=@F�WONPF�[qIKJOCjbKWO[XFV< �,¾�i` rWGhG=@b9i`zSNPU�c`F�babKFkU�J`[� ¶ �Tn

opDGF�?�R@DGF=rU�hGhG=@?�U�CED.i5RPDOU�R1tuF�YZU#dMC�U�bKb%RPDGF ±E¯�T�º�ª�®AWYTZV ª�� ?�JGF�iOU�IKYZN1U�ReR@DGF�DGIKL�DGF NSR[XF�L�=@FF*?�Be=@FbKIKU�cGbaIaRSd�n%z J�R@DGIQNkU�hOhG=P?5U�CED�?�JGFZ?�JGbad�WONPF�N�hG=@?A?�B�v U�N@N�IQN�R@U�J5REN!teIaRPD�UqhO=P?A?�B�vCEDGF CEH�F=xR@DOU�RrN@U�R@IKN�^OF�NuR@DGF�[XF��x=PWOI SJ]Cj=@IaRPF=@IK?�J.iAI"n F�nGDOU#\�F�U*NPY*U�bab%\�F=@I_BfdAIKJGL*hG=@?�L�=EU�Yqn

z JMR@DGIKNrCEDOU�hXR@F=ptxF�D`U#\�F!Bf?ACWONPF�[w?�WG=1U�R�RPF�J5RPIK?�Jy?�JwRPDGF�NPF�C?�JO[wU�hGhG=@?�U�CED.nAz�R1N�DG?�WGbQ[c�Fy=@FYZU�=PH�F�[�R@DOU�RZF\�FJ¬IaJ¬RPDGIQNZU�hOhG=P?5U�CED�R@DGF=@FqIKN*NP?�Y*F]N�h�F�CjRP=@WGY ?�Br=PF�baIQU�cOIabKI_RSd�n{z�BRPDOF�<{?�IaJOC�U�=��FphG=@IaJOCIahObaF�IKNpU�[X?�hXR@F�[*Bf?�= ��� ��v Cj?�JA\�F=ENPIa?�J.i�R@DGF!\�F=@I_BfdAIKJGLkhO=P?�L�=EU�Y³IQNxY*?�=@FCj?�Y*hGbaFl�RPDOU�J�R@DGFp?�JGFTBf?�= SWON�R���� v�C?�JA\�F�=@NPIa?�J.n�opDOIKN4IQN;J`U�RPWO=@U�bAU�JO[�BmU�Ia= i�N�IKJOCFxU�[X?�hXR@IaJOLRPDOF�<{?�IKJOCU�=��F!hG=@IaJOCIahObaF,Bf?�= ��v Cj?�JA\�F=ENPIa?�JMDOU�NeU�NeCj?�JONPF�­5WGFJ`CjF�RPDOU�R1hG=@IaY*IaRPIK\�F�=@F�CjWO=@NPIa\�FCj?�Y*hGWXR@U�RPIK?�JONTteI_R@DGIKJwU�hO=P?A?�B.C?�Y*F1teIaRPDG?�WXRxhO=P?A?�B%?�cGbaIKL�U�RPIK?�JON�n�z JsBmU�C�RuRPDGF!hG=EU�L�YZU�RPIQChG=@?A?�B�v U�N@N�IQNSREU�J5R@NpC�U�Jqc`F�\AIaF�tuF [yU�N1UZN�RP=@?�JGL*WONPF�?�B{R@DGFkCj?�Y*hGWXR@U�RPIK?�JOU�b.h�?�tuF�=1U�NehG=@?�v\AIK[GF�[ycAdMU�Bf?�=@Y½?�B4RPDGF�<{?�IaJ`CU�= �F1hO=PIKJOCjIKhGbKF�n

| JG?�RPDGF�=rhOU�=@U�YVFRPF�=1IaJ�UZBfWGJO[GU�YVF�J5R@U�b;hG=@?5?�B�v�U�NPNPIQNSREU�J5ReIKN1RPDGFVCEDG?�IQCjF�?�B�N�RP=@FJOL�RPD]?�BRPDOF!WGJ`[XF=@badAIKJGL�RSd5h�F,N�dXN�RPFY½U�JO[ZDGF�JOCjF!RPDOF�=@FbQU�R@F�[ZbK?�L�IKC�U�b�N�dXN�RPF�YynA�G?�=pFjlGU�Y*hGbKF�i5?�JGFYZU#dsWONPF�^O=@N�R�v�?�=E[XF�=�iXNPF�Cj?�JO[Av�?�=E[XF=x?�=eDOIaL�DGF=Pv"?�=@[GF=xba?�L�IQC�nXopDGIQNehOU�=EU�Y*FRPF=e[XFRPF�=PY*IKJGF�NRPDOF ��S�' � �Eª�� N�RP=@FJGL�RPDy?�B4RPDGF�hG=@?A?�B{N�dXN�RPFYqn

�1U�R@DGF=�R@DOU�JZYZU�H5IKJGL�U�CEDO?�IQCjFxBf?�=TRPDGFrC?�Y*hGWXREU�R@Ia?�JOU�bOU�JO[Vba?�L�IQCU�bONSR@=PF�JGL�R@D*?�JGF1YZU#dRPDOIaJGHy?�B>U*WGJOIa\�F=ENPU�b�� � N�dXN�RPF�Y�IKJ]teDGIKCEDqR@DGF�NPF�RStx?ZCU�J]c�FkNPFjR!U�CC?�=E[XIaJOLkR@?ZRPDGF�R@U�N�RPFU�J`[�U�hGhGbKIQCU�R@Ia?�J�U�=@F�U�?�B,RPDOF}WONPF= n>z�RMIQNsDG?�h`F [ �mU�JO[«FjlXh�F�C�R@F�[O�ZRPDOU�RMIaRMIKNMh`?5NPNPIKcGbaFRP?�Cj?�JONSR@=PW`C�R�U}WGJGIK\�F=EN@U�b>hG=@?A?�B�v U�N@N�IQN�R@U�J5R�R@DOU�RVIKNVN�W ZCIaF�J5RPbKd�F sCjIKFJ5R�n | bQN�?�RPDGF�=PFwIKNUMC?�JONPIQ[XF=EU�cGbKF�Bf?�WGJO[GU�RPIK?�JOU�b�IKJ�R@F=@F�N�R!IKJ�R@DGFkF�J�R@F=@hG=@IKNPF�?�BTC?�JON�RP=@WOCjRPIKJGLMWONPF=Pv"Bf=PIKFJO[GbadhG=@?A?�B�v U�N@N�IQNSREU�J5R@N�n ¶ JGF�DOU�N1RP?s=@F�U�baIKgF�teDOIKCED}N�RPF�hONrU�=PFk?�cA\AIa?�WONpRP?MRPDGF�YZU�RPDOFYZU�R@IKCIKU�JU�J`[MhG=@?�\AIK[GF,NPWGIaR@U�cGbaF�R@?5?�bKN�n

z�R>IKN�UV�fh�?�N@N�IKcGbKd�bK?�JGL�RPF�=PYs�;L�?5U�bA?�B`RPDGF1NPF�C?�JO[�U�hGhO=P?5U�CED�R@?�YZU�H�FxRPDGFxBf?�=PYZU�bKIKg�U�R@Ia?�J?�BOU�J�IKJXBf?�=@YZU�bKbad,HAJG?�teJ�YZU�R@DGFYZU�R@IKC�U�b5hG=@?5?�BOU�N;F�U�N�d,U�N;te=PIaRPIKJGL�UeYZU�RPDOFYZU�R@IKC�U�b5hOU�h�F=N@U#d�IaJ ��� o ( �kn | RVR@DGF�N@U�Y*FMR@IaY*FqR@DGF]F sCjIKFJ`Cjd~NPDG?�WObK[¬c`F]C?�Y*hOU�=EU�cObaFwRP?�F sCIaF�J�RNPdAN�RPF�YZNxBf?�=1Cj?�Y*hGWXRPF�=1U�bKL�F�cG=@UOn

¾AF\�F=EU�bxJG?�R@Ia?�JON*IaJ«CjbQU�N@NPIKC�U�bxY*U�RPDGF�YZU�RPIQCNZU�=PFwJG?�Rs[XIK=@F�C�R@bad¬U#\#U�IabQU�cObaFwIaJ¬RPDGF�C?�JXvN�RP=@WOC�R@Ia\�F�U�hGhG=@?�U�CEDM?�B�RSdAh�F�RPDGF�?�=@d�nX 1Fl5RpR@?kR@DGF,BmU�IKbaWO=PF�?�B;RPDGF,FjlGCbaWO[GF�[wYVIQ[G[XbKF�RPDGF N�FIKJOCjbKWO[XFk­5WG?�RPIKFJ5RrNPFjR@N�iONPWGcONPFjREN1[XFj^`JGF�[qcAdwU*hO=P?�h`F�=�RSdMU�JO[yhOU�=PRPIQU�b.BfWGJOC�R@Ia?�JON�nGz�RrIQNpBf?�=L�?A?X[�=PF U�NP?�JON�R@DOU�R�RPDGF N�FwCj?�J`NSR@=PWOCjRPIK?�JONkU�=@FZJG?�RkU#\�U�IKbQU�cGbKF�n.z J�R@DGFwC?�JON�RP=@WOCjRPIK\�F*RSdAh`FRPDOF?�=@FjR@IKC�U�hGhG=@?�U�CEDMR@DGF�JG?�RPIK?�J �w�#*¦N�DG?�WGbQ[wc�Fk[XF CjIQ[GU�cObaF�i`U*hG=@?�h�F=PRSdsR@DOU�RrIQNebK?�N�RrIKJRPDOF�hG=PF N�F�JOCjF,?�B�RSdAh`F Ne=@FhG=@F�NPFJ5RPIKJGLVWGJO[XF CjIQ[GU�cObaF�NPFjRENn

z J�?�=E[XF=�R@?�IKJOCj=@F�U�N�F*R@DGFMF U�NPFZ?�BpBf?�=@YZU�bKIag�IaJGL}hG=P?A?�BmN�N�F�\�F�=@U�b{RP?A?�bQNkU�=PFZc�FIKJGL�C?�JXv

¿��jÀ b�d�az�C`{}{f�x{egfh`\f d��ckgkCacx�¡�f�� �Ckgj ��fh`{}X�c��tg`{aYacb·v¼�c}{}\jl}\x{�ckYx�Ô§¤g�Cf�x{a����az¤Cf�� � }�x\egfhaz`{fh��n§r~egf��§az`{¤�gkgj ��fh`\}X�c��jl}§�g}\f�¤�jlk x\egfE}{�c��f�����s��c}����¦9jl}I}{fhfhk��c}§�¯�gkCj ��f�`\}X�c�Ub�az�gkg¤U��x\jlazk;�Lj x�d��ctCx{�C`{fh}��Ð�c`{mzf�tU�c`\x\}acb�����x\egfh����x{jldh}

Page 81: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � �

N�RP=@WOC�R@F�[�RPDOU�R�FJGD`U�JOCF�R@DGFZh�?�tuF�=�?�BuR@DGF*BfWGJO[OU�Y*FJ5R@U�bTU�hOhG=P?5U�CED.n�z J�RPDGIQN�tpU#d�F\�FJXvRPW`U�bKbadZR@DGF�h�?�tuF�=e?�B�R@DGF,BfWGJO[OU�Y*FJ5R@U�b�U�hOhG=P?5U�CEDsYZU#dsc�F�F�­5WOU�b�RP?VRPD`U�R1?�B4RPDOF�hG=PF N�F�J5R[GU#dshO=@U�L�YZU�R@IKC!?�JGF�n

��DGFJ*R@DGF1L�?5U�bG?�B�F U�NPd�Bf?�=PYZU�bKIKg�U�R@Ia?�J�D`U�N�c�FF�JZ=PF U�CEDGF [�JO?�RT?�JGbadVN�hOIaJXv�?�µwIaJsNPdXNSR@FY[XF N�IKL�J.i�cGWXR�U�bQNP?MIKJ]RPDGF*[XF�\�FbK?�hOYVF�J5R!?�BuY*U�RPDGF�YZU�RPIQCN!IQNrFlAh�F�CjRPF [%n%�;IK=ENSR�?�BuU�bab;RPDGF�=PFYZU#d�FY*F�=PL�F*Uq[XIaµ�F=@FJ5R�N�dXN�RPFY ?�Bx=PFBfF=@FFIKJGL`n.<{F?�hObaFVteIabKb>?�JGbad�N�WGcOYVIaRkhOU�h`F�=@N�R@DOU�RU�=@F!C?�=@=PF C�R n5opDGF�=@FjBfF=@FF�CU�JsBf?XCjWONx?�JZRPDGF SWO[GL�Y*FJ5RpteDGFjR@DGF=xRPDOF�h`U�h�F=xIKNx?�B;IaJ5RPF�=PF NSRU�J`[sh�?�IKJ�Re?�WXRe=PF�bKU�RPIK?�JONuteI_R@Dw?�RPDGF�=ptu?�=PH�nAopDGFJwRPDGF�=PF�teIKbab%c�F�U�JMIKY*hOU�CjRx?�JMR@F�U�CEDGIaJOLYZU�R@DGFYZU�R@IKC�NnGopDOF�JG?�R@Ia?�Jw?�B4hG=@?A?�B{CU�Jyc�F,R@U�WOL�D5Rec5dwhOU�R@IaF�J5ReC?�Y*hGWXR@F=ENn

z�RkIKN�U�bQN�?yR@?�c`FMFjlXh`F C�R@F�[�RPD`U�RkF�\�FJ5R@WOU�bKbad}hG=P?A?�B�v�U�NPNPIKN�R@U�J5R@N,teIKbabuDGFbKh�RPDGFMtu?�=PHAIKJGLYZU�R@DGFYZU�R@IKCIKU�J.n | =PcGIaRP=EU�=@d�YZU�R@DGFYZU�R@IKC�U�bXJG?�RPIK?�JON�C�U�J*c�Fe=PF�hG=PF N�F�J5RPF�[k?�JZU,Cj?�YVhOWXRPF�=��JG?�R1SWON�RqRPDGF�C?�Y*hGWXREU�cGbKF�?�JGF�N�ipU�NyIKNyhG=@F�NPFJ5R@bad«R@DGF�C�U�NPF�IKJ NPdXNSR@FYZNy?�B�C?�Y*hGWXR@F=U�bKL�F�cG=EUGnGopDGF�IKJ5RPF�=@U�C�RPIK?�Jqc�FjRStxFF�J]D5WOY*U�JON1U�JO[]Cj?�YVhOWXRPF�=@NeYZU#dybaF U�[wRP?sBf=PWGIaR�BfWOb;JGF�tYZU�R@DGFYZU�R@IKC�Ni�teDGF�=PF�D5WOY*U�JON1hO=P?�\AIQ[XF�RPDOF�IKJ5RPWGIaRPIK?�J}U�JO[]YZU�CEDOIaJGF N1REU�H�F�?�\�F�=1hOU�=PR!?�BRPDOF�Cj=EU�B�R@NPYZU�JONPDGIKh.n

 1FjlAR*RP?�RPDOF�NPFMR@DGF?�=PFRPIQCU�bpU�NPh�F�C�RENi4R@DGF=@FwIQN*U}h�?�R@FJ5RPIQU�bphG=EU�CjRPIQCU�bxNPhGIKJXv"?�µ�IaJ~RPDGFBf?�=@Y½?�B4hG=@?�L�=@U�Y©FjlARP=EU�CjRPIK?�J.nXz J]CU�N�F�U*N�R@U�R@FY*FJ5Re?�B4RPDOF,Bf?�=@Y

���2�� . *�� ��£� G�

DOU�N,c`F�FJ�hG=@?�\�F [}Cj?�JON�RP=@WOC�R@Ia\�FbKd�i.U�J�U�baL�?�=@I_R@DGY ^OJO[GIaJGLqR@DGF }IKJ�RPF�=PYZN�?�BTRPDOF ��CU�Jc�F�FjlARP=EU�CjRPF [yU�WXRP?�YZU�RPIQCU�babKd�n�¾AFF � ]?�DO=PIKJGL �$����OiG<�U�WGbKIaJGv ]?�DG=@IaJGL*U�J`[)��F�=PJGF�=!�$�%���Oi<�U�=@FJ5R��$�%� #��n

�G?�=!UZ[XIKN@CjW`NPNPIa?�Jw?�B4IQN@N�WGF Ne=@FbQU�RPF [wRP?���R@DGF�BfWXR@WG=@F�?�B@�phO=P?A?�B�v U�N@NPIKN�R@U�J�RENiXNPFF�U�bKNP?VRPDGF� (��rv�Y*U�JGIaBfF�N�RP?*IaJq�xWGJO[Xd �������� �>�fhGh�n � ����� � �#��n �U�JAd¬�m?�B�R@FJ~NPYZU�bKbaF�=E��hG=@?A?�B�v U�N@N�IQN�R@U�J5REN!txFsDOU#\�F*JG?�RkY*F�J�R@Ia?�JGF�[.n;�G?�=kU��mhG=P?�cOU�cObad

IKJOCj?�YVhObaFRPF �xcOWXR1FjlARPF�JO[XF [yNPWG=@\�F�dsN�F�F � �!IaL�IaYZU�RPD2� &�&%&��

� �@¸�TIS � �«W@º '�® WYTZV\[��F�R@DOU�JOH�U�bKb�h`F�?�hGbKF�Bf=P?�Y RPDOF (p� ��?�=@HAIaJGL ��=@?�WGh³² oudAh`F N´1U�JO[�IaR@NqhO=PF [XF�CF�N@N�?�=² �.?�L�IKC�U�b��G=EU�Y*F�tu?�=PHXN�´OBf?�=,RPDGFZhGbKF�U�NPU�J5R�C?A?�h�F=EU�RPIK?�J�U�JO[}RPDOFZbaIK\�F�bad}[GIKN@CjWON@NPIa?�JON,?�\�F�=RPDOF�d�F�U�=EN�nOz J�hOU�=�R@IKCWGbQU�=rtxFktpU�J5R!RP?wRPDOU�JGH | JOUw�u?�\�F�i�opDGIaF�=P=@d}�u?X­�W`U�JO[%i ��?�baBfL�U�JOL rU�=@U�NPCEDOFt1NPH5I"i �1U�JO[Xd�<{?�babQU�CEH�i ��U�JM¾AdAJGF�H�i5�G=@FF�H ��IKF�[XI SH�i��5U�JM��tpU�JGF�J5cOWG=PL�U�JO[�RPDGF=@F�U�[GF=ENTBf?�=pRPDGF�Ia=r\�F=@dZWONPFjBfWGb;N�WGL�L�F NSR@Ia?�JONpU�JO[yCj?�YVY*F�J�RENn

� 7�� �m7m-�:`+ � �42 �

Á��#���$%�������GÍ ��;Ï{���#���CÃ��;Ê������� Ê,����#���$ �gÉ �������� , ]��z�zq�.�Ô�����������������������! #"%$&"'�)(*��+-,.�/10�23 $4"504��$�07698��: .�+;0=<�>@?-�#$7�� �2A�#.����B>-(��#+-,�.�/1��/C"%�����#: 3 /C2D.�$�/C.�2A0�EXÔ À �Lb�az`{¤��Ldhjlfhkgdhf¯^��g¡g�ljld���x\jlazkg}Òn

Á�FHGJI , qzªzªzª�.�Ô � ¹�tgtg�ljld���x{j ��fo¦�az����azk���jl}\t �lnZ¹E`\dXegj x\f�dwx\}Ò� / n�Ko�c�Cb����ckgk��ckg¤ *gn��Yx\`{acx\egfh`0/�aLaz`\f�nLNMPO-Q@R /C/ ,S> T#T�U�U*UWV'$4E7V�.�/10�XB��E7V0���.�T�.�ED042DECT�+;�4��2�0AT��$4: <7T��#$4: <BY��#�4$ZV R /C+&:

Á\[^]P�B_>� � , ]��z�z��.�Ô À k|`\f��Ð��x\jlkgm�x�sCt�f§x\egfhaz`{jlfh}I�ckC¤|}\fhx�x\egfhaz`{jlfh}ÒÔ�"%�-`¨n ¿ nÒr~e;nc¹�� x{fhkgiYjl`{dXe|�ckg¤ ¾ nz£~fh�g}ÒÔfh¤g}�Ô � ^I`\aLdhfhfh¤gjlkgmz}�acb�rIsLtufh} � �z� �lÔgkY�g�²¡�fh`o]��z��¥�"%� � � ¿ ¦~� �lÔU�Ltg`\jlkgmzfh`\vyÑ�fh`{�Ð�cmgn

Page 82: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{�����������

Á����� , qzªzªzª�.�Ô � ��}�sC}�x{fh�3b«az`¯jlkgdh`{fh��fhkYx{�c�l� s ¤gfw��fh�laztgjlkgm�tg`\aLacb�}²�ckC¤Atg`{azmz`{�c��} �ln�¹�`{dXegj x\fhdwxÒ��¦EnZ¦§acv©Y�U�ckg¤GnLNMPO-Q@R /C/ ,S> T#T�U�U*UWV'$4E7V$ R ��: +;042DE7V�ED0�T $���/1��2D"'���DTS�� #�B�DT

Á.�����B�#����y�0� , ]��z�C] .�Ô�^Z�c`�x{jÐ�c�§az¡L¢\fhdwx\} jlk x\egf�¦��c�ldh�g�l�g}|acbE¦�azkC}\x\`{�gdwx\jlazkg}ÒÔH"'� � ^I`{aYdhfhf�¤Cjlkgmz}²acb�x{eCf��sC��t�az}{jl�C� azk���azmzjldojlk�¦§az��tg�Lx{jlkgm��Ldhjlf�kCd�f �lÔU�����I��ÔU¹E��}�x{fh`{¤g�c��Ô ¿ �IÔgtCt;nU�z� �L�z�Cn

Ä%������������ ����À�� , ]��z�zq�.�Ôc���c�²¡�¤U��dÒ�c�ldh�g�ljY��j x{e�x�sCt�fh}ÒÔ�"%� � ¹E¡g`{�c��}{i�sYÔ �=�c¡g¡g��s²�ckg¤�/��cjl¡U�c�C� , ]��z�zq�. �lÔÀ �Yb�az`{¤ � kgj ��fh`{}\j x�s5^I`{fh}\}ÒÔgtCt;n;]z]Ò¥ �Lpzªz�Cn

Ä%������������ ���"À�� , ]��z��¥�.�Ô � r~egfJjl��tU�cdwx acb�x\egf �Ð�c�|¡u¤g�½d��c�ldh�g�l�g} �lÔP?\.�:%: 0�/C"'� �!� 3 � +;�!��: "%$ ���! #"%$��C«q%DwÔ;]��C] �LqC]��Cn

Ä%������� Ï�� , ]��z�z��.�Ô;����tg�ljldhj x=dhaYf�`\dhjlazkg}�jlk x�sLt�f }\sL}\x\fh��}ÒÔ�"%���un ¾ fh`X�c`{¤CjI�ckg¤ / n�¦§aztgt�agÔ�fh¤g}ÒÔ � ^I`\acvdhfhfh¤gjlkgmz}�acb�r��E^I�§� � �z� �lÔCÑ�az�yn;]z]��z� acbW���;( 3 ÔU�Ltg`\jlkgmzfh`\vyÑ�fh`{�Ð�cmgÔgtCt;n;]�� �Lpz�Cn

Ä%������� Ï ���Ì%�����5Ê��`����JÄ.��������������� À � , ]��z�z��.�Ô�¹�x���acv��lfw��fh�~�ctgtg`\a��cdXeAx\aÒ�~�c`\¤g}²�lf��ckAtg`\aLacb·vd{egfhdXiLjlkCmgÔ "%� � ¾ fh`{�c`{¤gjC�ckg¤�¦§aztgt�a , ]��z�z��. �lÔckY�g�|¡ufh`�]z]��z�&"'� � ��fhdwx{�g`\f ¿ acx\fh}Ijlk�¦§az��tg�Lx{fh`��Ldhjlfhkgdhf�lÔ�Ytg`{jlkgmzfh`~ÑIfh`\�Ð�cmgÔ ¾ fh`{�ljlk;ÔLtgt;n;]�� �Lpz�Cn

Ä%������� Ï��X����JÍ���������� Ê�� , qzªzªzª�.�Ô � ¸Eaz���cjlkCvyb�`{fhf�tg�g`\f|x�sLt�f�}\sL}\x\f���} �lÔ�����.�2D����: ���� �.���$4/C"5������:� 2A�� �2���+=+&"'�� �����ÔC�g]Ò¥ �Y���zqCnZ^I`\fh�ljl��jlkU�c`\s¯��fh`{}{jlazk5jlk��unL¹E¤gjÐ�ck��ckg¤5¹|n ¿ fh`{aY¤gfzÔgfh¤gj x\az`{}�ÔC^�`{aYd�fhfh¤CvjlkCmz}�acb�����¦�� � ��¥LÔU� ¿ ¦~��]�qzpc�gÔUtgt���v¼qzªCn

Ä%����>������� ������ Ë�� [�����$������#����� , ]��z�z��.�ÔS� � ,�0�21,�2A�����XÔG¦��c�²¡g`\jl¤gmzf � kCj ��f�`\}{j x�s�^�`{fh}{}�nÄ%�����������Í � , ]��z�z��.�ÔCr�aÒ�~�c`\¤g}~�|����x\egfh����x{jld��c�G�ckU�c� sL}{jl}~acb�x\egf�¦§aL©Y�U�ckg¤Lv¼­��gfwx�d��c�ld��C�l�g}~acb�dhazkg}\x\`{�gdwvx\jlazkg}��ckg¤ox\egfIacx\egfh`�}\sL}\x\fh��}�jlk ¾ �c`{fhkg¤C`{fhmcx � };d��C¡ufzÔÒr�fhdXegkgjld��c�C`\fhtuaz`�xÒÔÒ¸EfhtCx�nÒacb�¦§az��tg�Cx\fh`��Ldhjlfhkgdhf�Ô¦��c`\kgfhmzjlfhv /�f��l�lazk � kCj ��f�`\}{j x�s��ckg¤�¸EjltU�c`\x\jl��fhkYx\a�/���x\fh����x{jld��CÔ � kgj ��fh`{}\j xX�¯¤gj�r�az`{jlkCagn

Ä%����������ZÍ � , ]��z�zª�.�ÔCrIsLt�f=¸Efht�fhkg¤gfhkgdhf��ckg¤�¦§azkg}\x\`{�Cdhx\j ��f /���x\egfh����x{jldh}ÒÔY^�eU¸ x{egfh}\jl}ÒÔL¸EjltU�c`�x{jl��fhk�x{a/���x\fh����x{jld��CÔ � kgj ��fh`{}\j x���¯¤gj�r�az`{jlkCagn

Ä%����������1��Í ������ F.�������J��Ê��������� , ]��z�z��.�Ô?\: �B�4: �zÔgÑ�az�yn;]z]��z�CÔG�Ytg`{jlkgmzfh`�vyÑIfh`\�Ð�cmgÔ ¾ fh`{�ljlkGnÄ%��]�� $ �§Ê�������½Ï{�������#���� �'�`����� , ]��z�zp�.�Ô�� � ,�0!� ����+ �!�#� (���: $�.�: "9������� ,#,: "5$!�#/5"5��� E�6����\(��! "$#zÔÑ�az�ynU�z�c��acbW��0�$4/C.�2A0%����/10�E "'�)(���+�,�.�/1042 3 $4"504��$�0ÒÔU�Ltg`\jlkgmzfh`ÒÔ ¾ fh`\�ljlk;n

Ä%���#�B_^�& ������AÍ^[���$����#����� ������� , ]��z�z��.�Ô� .�/1��+;��/10��(' 0���.�$�/C"%���*)+� ?-��E�"'E��D��2,�H,#,�: "%$���/C"5��� EXÔCÑIaz�yn�XÔ ���XÔ ���\�XÔK=�l����fh`ÒÔg¸Eaz`{¤g`\fhdXeYx�n

Ä.�#�����Ì �j�����Ê��������(� � , ]��z��¥�.�Ô$� (���+�,�.�/1��/C"5������:^���� �"5$\���������������zÔ�}\fhd�azkC¤ fh¤gk;Ôc¹�d��c¤gfh��jld�^I`{fh}\}ÒÔ�;azkg¤gazk;n

Ä%�����#����Á������ � , ]��z�c� .�Ô��.�/C�#+&��/10�� �#0���.�$�/C"%����6 (��-',.HY0/�<�>�/�<#/ R21 � /1042D���#/5"5������: (������7042�04��$�0&���3��.�Y/C�#+&��/10��4'90���.^$�/5"5����65�9����$ � 6� �2�����$�0D66�B.���0 <�7�89��.�: � /�6�/9"9";:�>*,�2A�4$�0�0���"'�� #EXÔ�Ñ�az�yn��C]h��acb ��0�$�/5.�2A0����/10�E "'����2D/C" <W$4"5��: 1 � /104:%: "� #0���$�0=����� ��0�$4/C.�2A0%���#/C0�E "'� (*��+-,.�/10�2 3 $4"504��$�0ÒÔg�Ltg`\jlkgmzfh`\vyÑ�fh`{�Ð�cm²��kCd�n

F=����� [���Á�� , ]��c��ª�.�Ô � ¹ b�az`{�|�g�Ð��x\jlazk�acb;x\egf=}{jl��tC�lf~x\egfhaz`\s�acbGx�sCt�fh} �lÔ>� R 0%����.�2D����: ��� 3 � + �!��: "%$9���! #"%$?;Ôg�z� �L�z�Cn

F%����������^_E�s��y�_#�~Ì � , ]��z�z��.�Ô 1 +�,�: 04+;0�� /5"%�� �@ ��/ R 0�+;��/C"%$�E�U*"'/ R / R 0!��.�,2D: � 2A�4�!��' 0;A�0�: �7,�+&0�� /3 � E!/10�+|Ôg^I`\fhkYx\jldhfhv�­E�c�l�yÔ ¿ fw� *zf�`\}{fws�n

F�Å%B , ]��z�z��.�Ô � r�eCf�¦§aL©�tg`\aLacbZ�c}\}{jl}\x{�ck�x���fh`{}\jlazk��Cn � �lnZ¹�`{dXegj x\fhdwx{}��u¦§eg`ÒnC^��c�C�ljlkCv /�azeg`\jlkgm²fwx��c�ynLNMPO-Q ,���.�"%:': �#$ZV�"'� 2D"5�BV �D21T$��DC�T��E�E�"'E�YA0��� BV R /C+=:

F%�FE������� É � , ]��z�z��.�Ô � kgf�x{eHGf�az`\jlf²¤gfh}=dhazkg}�x{`\�gdwx{jlazkC}ÒÔu^IeU¸ x\egfh}{jl}�Ô � kgj ��fh`{}\j x�Gf�^Z�c`{jl}�Ñ=���XÔur�eF�f�}\f|¤Cfx\`{azjl}\jI�fh��fEdwsCdh�lfzn

F%�FE��������É � , ]��z�z��.�Ôc¹Ek|�ckU�c� sC}\jl}�acb �Ejl`{�c`{¤ � }�tU�c`{�c¤gaÒ�uÔ "'� � ^I`\aLdhfhfh¤gjlkgmz}�acbUx{egf��YsL��t�az}{jl�g�µazk²�;azmzjldjlk�¦§az��tg�Cx\jlkgm��Ldhjlfhkgdhf �lÔU���I����Ôu¦��c�|¡g`{jl¤gmzfzÔ�/��c}{}{�cdXeL�C}{fwx\x\}Òn

F%�FE��������É �#���� Ï{_�_E�����!��� , ]��z�zª�.�ÔY¹ tg`{aYacb�acb;}\x\`{azkgm�kgaz`\���c�ljl����x{jlazk b�az`Ix\egf�x\egfhaz`\s�acb;dhazkg}\x\`{�gdwvx\jlazkg}��g}{jlkCm��²iY`{jltgizfwv��ljlizf=jlk�x\f�`\tg`{fwx{��x{jlazkGÔUr�fhdXegkgjld��c��`{fht�az`\x�Ôg� ¿ £���¹¯nLNMPO-Q �D/ ,�> T#T��D/ ,SV�"%� 2D"%�BV ��21T 1 �,J 1 �HT � 2��0K70�$�/5ECT$��;CAT�/ � ,�04ECT � 2A��$!0�0��#"%�� �ECTS�!�����9"�L#V'�MA�"

F%�FE�������5É ������À4����5Ï � , ]��z�z��.�Ô� r~egf§d��c�ldh�g�l�g}ZacbUdhazkg}�x{`\�gdwx{jlazkg} �lÔ 1 ���7��2D+;��/C"%��� �����P(��#+-,�.�/1��/C"%���NO ÔU�z� ��]�qzªCn�¹��c�cjl�Ð�c¡g�lf���x � £~�J�e�x�x{t;� PMP�tg�c�gjl�l�Ð�cdzn jlkg`{jÐ�Cn b�`QP�d�aY©�P�d�aY©�v�fhkgmgn eYx\���yn

F%�FE�������½É �.���������_@������Ê��R��������� F�� , ]��z�zª�.�Ô���kg¤g�gdwx\j ��fh� sJ¤Cf0�gkgfh¤Jx�sLtufh}�Ô "%� � /��c`\x\jlkCv�� �acbo�ckg¤/�jlk�x\} , ]��z�zª�. �lÔLÑIaz�ynC�g]Ò¥²acbW��0�$�/C.�2A0%�9��/104E "%� (���+�,�.�/C0�2 3 $�"%0���$�0�Ô��LtC`{jlkgmzfh`�ÑIfh`\�Ð�cmgÔ ¾ fh`{�ljlk;n

Page 83: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � &

Ã;��_E�� Ã������ , ]��z�zª�.�Ôgr~egfo���ckgmz�g�cmzf¯r~egfhaz`�s�acb�¹E�Cx\az����x{eGÔg^Ieg¸µx\egfh}{jl}ÒÔL�IjlkC¤gegaÒ��fhk � kgj ��fh`{}\j x�s�acbr�fhdXeCkgaz�lazmcs�n

����Ä%�#�����"� Â�� , ]��z�zª�.�Ô�¹ }{�C`\��fws�acbZx\egf|tC`{ac¢�fhdhx=�c�Cx\az����x{e;ÔJ"'� *gn�^Znu�Yf��l¤Cjlk �ckg¤ *gnu£�nu­�jlkg¤g�lfws�Ô�fh¤g}ÒÔ� r�a|­¯n ¾ nC¦§�g`{`�sG�L�I}\}X��sL}�azk�¦§az�²¡gjlkU��x\az`\s ��azmzjldzÔg���c�|¡u¤g�²¦��c�ldh�g�l�g}~�ckg¤5�Uaz`{���c�ljl}\� �lÔc¹�dÒ�c¤Cf���jld^�`{fh}{}�Ô ¿ fh� ��az`{i�ÔgtCt;nU��¥c� �L�zªz�CnI¹E�l}{a|jlk ¿ f�¤Cf�`\t�f�� x�fwx��c�yn , ]��z�c� .�ÔUtCt ]h�g] ��]��C]zn

����Ä%�#�����"��Â���Ï�� , ]���¥cª�.�ÔYr�eCf�����x\egfh����x\jldÒ�c�U�Ð�ckCmz�U�cmzfE¹ � r À /�¹Zr�­¯Ôcj x\}I�C}X�cmzf��ckg¤�}{az��f~acbGj x{}�fh�Yvx\fhkg}{jlazkC}ÒÔ"%� / n����c�g¤Cfhx�ÔU¸¯nL���cd�az�|¡�fE�ckg¤ / nC�LdXeY�gfwx\��fhkY¡�f�`\mzfh`ÒÔgfh¤g}�Ô � ��sC��t�az}{jl�C��azk�¹E�Cx\az����x\jld¸�f���azkC}\x\`X��x\jlazk �lÔu�Ltg`\jlkgmzfh`�Ñ�fh`{�Ð�cmgÔ ¾ fh`{�ljlk;ÔG]���¥cªCÔu�¼£���¹¯ÔUÑIfh`{}{�cjl�l�lfh}ÒÔUtgtGnuqz� �L�C]zn��;f�dwx\�g`{f ¿ acx\fh}=jlk/���x\egfh����x\jld�}����R?��C�c�l}{a²jlk ¿ f�¤Cf�`\t�f�� x�fwxE�c�yn , ]��z�c� .�n

Ã{������$�� � , qzªzªzª�.�Ô � �|�ljl}�x~acb�dhaz��tg�Lx{fh`~����x{e�}\sL}\x\fh��} �ln���n^`Jjlfh¤gj ¢\i�nLNMPO-Q@R /C/ ,S> T#T�U�U*UWV'$4E7V ��.��V�� : TP�D2A0�0D�DT��"� �"%+&�#/ R

Ã�� �>���½Ï � , ]��z�zp�.�Ô�r~egf5�gkg¤gfhdhjl¤U�c¡gjl�lj x�s acb~x�sCtU�c¡Cjl�lj x�sAjlk x\egf�°��uv�d��c�ldh�g�l�g}ÒÔW"%� � ¾ fh�hfh�%�ckg¤ �E`{aYacx\f, ]��z�zp�. �lÔCtgt;n�]�pz� ��]h���Cn

ËW_Z� ������À�� , ]��z�z��.�Ô � ^Zfh`\}{azkU�c�Gd�az���|�gkgjld���x\jlazk �lnÏ{�����������²À�� , ]��z�zq�.�Ô�r~egf�¦§eY�g`{d{eCv¼£~az}{}{fh`�tg`\aztufh`�x�s b�az` ��v�`{fh¤g�Cdhx\jlazk jlk x�sLtufh¤A�Ð�c�|¡�¤U�5d��c�ldh�g�ljyÔ*"%�� ^�`{aYdhf�fh¤gjlkCmz}²acb�x\egf�}{fw��fhkYx\e �ckgkY�U�c��}\sL��t�az}{jl�g�?azkA��azmzjld�jlkA¦§az��tg�Cx\f�`²�LdhjlfhkgdhfzÔ��C�ckYx{� ¦§`{�g�zÔ¦��c�yn �lÔL���I����ÔUtgtGng���zp �Y���zªCn

Ï{�����������oÀ � , ]��z�zp�.�Ôg��azmzjldh}��ckg¤�rIsLt�f¯�YsL}\x\f���}�Ôg^�eU¸µx\egfh}{jl}�Ô�¦���x{eCaz�ljld � kgj ��fh`{}\j x�s�acb ¿ j ¢\��fhmzfhk;nÏ{������������À��������Â4�����������¯Ê�� , ]��z�C] .�Ô� ¹ ��aY¤g�g�Ð�c`�tC`{aYacbgacbU}�x{`\azkgmEkgaz`\���c�ljl����x{jlazk=b�az`�x{eCf~¦��c�ld��C�l�g}acbI¦§azkg}�x{`\�gdwx{jlazkg} �lÔ�����.�2D����:��!�, �.���$�/5"5������: � 2A�! #2A��+&+="%�� 2�4C«q%DwÔ;]��z� ��]��z�Cn

Ï{�����������¯À���A���_Z_�Ë �A������%�������#����� � � , ]��z�z��.�Ô;�C��b�f¯tg`{aYacbId{egfhdXiLjlkCm�jlk�x�sLt�f|x\egfhaz`\s���j x\e��²Ô"'� ��nL���l�g�M�ckC¤ / nC£�aY¤g`\jlmz�gfh�hvy¹E`\x{�c�lf¼¢\agÔLfh¤g}ÒÔ � ¦§az��tg�Cx\f�`��Yd�jlfhkgdhfo��azmzjld Cy¦~�L� � �z�%D �lÔCÑ�az�ynG]��z�zp|acb���;( 3 Ô��LtgjlkCmzf�`�vyÑ�f�`\�Ð�cmgÔgtgtGnU��pz� �Y���zqCn

Ï{�������� � � � ��� , ]���¥cq�.�Ô � ��kYx\fh`{tg`\fwxX��x\jlazk b�azkgdwx{jlazkCf��l�lf²fhx=f��ljl��jlkg��x{jlazk�¤gfh}�dhaz�gtg�g`\fh}¯¤Cf � � �c`{j x\eg��fwx{jl©Y�gf¤ � az`{¤g`\f=}{�gt�fh`{jlfh�g` �lÔgr~egfh}{f�¸ � ��x{��xÒÔ � kgj ��fh`{}\j x{f=^Z�c`\jl}~ÑE�\�Xn

Ï{������������ � ���� GA��j���������#�����ÉX�_����!� � , ]��z�z��.�Ô � 2A�4���DE9������� � ,�04EXÔ�ÑIaz�ynC¥oacb�(���+ �72D"5�� B02� 2A�B$4/CE"'� � R 0!�#2A04/C"5$!�#: (���+�,�.�/10�2 3 $�"%0���$!0ÒÔ�¦��c�|¡g`{jl¤gmzf � kgj ��fh`{}\j x�s�^I`\f�}\}Òn

À4������� Ì ���À{��������_�_�Ç��A����*�W_E���^�����9Ï�� , ]��z�zp�.�Ô � ¹¨b�`X�c��fw��az`{i�b�az`E¤gf �UkCjlkgm��lazmzjldh} �lÔ ����.�2D���#:*���/ R 06�;( @��*�?C�]/DXÔ�]h��p ��]��c�gn

À{���$����� Ê�� , ]��z�c� .�ÔC���ljl��jlkU��x{jlazk�acb�fh�Yx\f�kC}{jlazkU�c�lj x�s��ckg¤5©L�Cacx{jlfhk�x�x�sLt�fh}�jlk����c`�x{jlkCvy� �acb;x�sLtuf�x{egfhaz`�sYÔ"'�5­¯n ¾ �c`{fhkg¤g`\f�mcx=�ckg¤�ron ¿ jltCizaÒ��Ô�fh¤g}ÒÔ � ^�`{aYdhf�fh¤gjlkCmz}=acb�x{egf¯��k�x{fh`{kg��x{jlazkU�c�J` az`{iY}{egazt�azk�rIsCt�fh}b�az`Z^I`{aYacb�}I�ckg¤²^I`{azmz`{�c��}ÒÔ ¿ j ¢���f�mzfhk;Ô�r~egf ¿ fwx{egfh`\�Ð�ckg¤g} �lÔ�ÑIaz�yn��zªz�oacb@��0�$�/5.�2A0,�9��/104E\"'� (*��+-,.�/10�23 $4"504��$�0ÒÔU�Ltg`\jlkgmzfh`ÒÔ ¾ fh`\�ljlk��ckg¤ ¿ fw� ��az`{i�Ôgtgt;nG]��z� ��]��zªCn

À�Å G , ]��z�z��.�Ô � ­�jlmzegfh`~az`{¤gfh`~�lazmzjld=x{eCf�az`\fh�Mtg`\aÒ��fh` �lnZ¹E`\dXegj x\fhdhx\}Ò� K²n��L�ljlkg¤5fwx=�c�ynLNMPO-Q@R /C/ ,S> T#T�U�U*UWV'$4:�V$���+ V�#$ZV�.B�DT J 0�ED0���2A$ R T^��8�� T^���W�T

À{� �%���� & � , ]��z�zª�.�Ô�r�eCf�b�az`{�²�C�Ð�c}\v¼�c}�vyx�sCt�fh}ukgacx{jlazk¯acbgdhazkg}�x{`\�gdwx{jlazkGÔ�"'� *gn��Lfh�l¤gjlk¯�ckg¤ *gnÒ­�jlkg¤g�lfws�Ô�fh¤g}ÒÔ� r�a ­¯n ¾ n�¦§�g`\`\su�U�I}\}X�hsC}�azk�¦§az�²¡CjlkU��x{az`�s5��azmzjldzÔ����c�²¡�¤U��¦��c�ldh�g�l�g}��ckg¤��Uaz`\���c�ljl}{� �lÔ�¹�dÒ�c¤Cf���jld^�`{fh}{}�Ô ¿ fh� ��az`{i�ÔgtCt;ng�Y¥c� �Y���zªCn

À{� �>�|Ã�� , ]��z�z��.�Ô�¦§az��tg�Cx{��x\jlazkU�c�C��fwx{��x{egfhaz`�s|jlk�kY�gtg`\�yÔ�"'�=��n����C}{i¯�ckg¤|£�n À ��fh`{¡�fhf�i�Ôzfh¤g}�Ô � ^I`\aLdhfhfh¤CvjlkCmz}�acb�x{eCf ¿ jlk�x{e���k�x{fh`{kg��x{jlazkU�c��¦�azkLb«fh`{fhkgdhfoacb�¹��Cx\az����x{fh¤�¸Efh¤g�gdwx{jlazk �lÔgkY�g�²¡�fh`~pC]�ªN"'� � � ¿ ¦~� �lÔ�Ytg`{jlkgmzfh`�Ô ¾ fh`{�ljlk;ÔCtgt;ngqzpz� �Lqz��¥Ln

�LÁ4�§Ë , ]��z��¥�.�Ô � ¹ b�`X�c��fw��az`{i b�az`²¡g�gjl�l¤Cjlkgm jlkYx\fh`X�cdwx{j ��f�tg`{aYacb=fh¤gj x\az`{} �ln ¹�`{dXeCj x{fhdwx{}�� ¾ n��Y�Cb«`\jlk �ckg¤£on ¾ az`\kU��x�nLNMPO-Q .�ED042DE7V$���+&: �B��V'��X�V�#$ZV�.B��T���0�2D����2A��V�E�.D�D2D"'��T;K4�D,�0ZV R /5+&:

G�Ë~ϯŠ, ]��z�z��.�Ô � r~egfo�lfhmza tg`\aLacbZ�c}\}{jl}�xX�ck�x �ln�¹E`\dXegj x\fhdhx���£ong^�az�l�Ð�cdXi�nLNMPO-Q@R /C/ ,S> T#T�U�U*UWV'�#$4E7V'0!��V�#$ZV�.B��T R ��+;0AT�: 0� #�7T

GA���� � , ]��z�z��.�ÔG��¦~¦EÔ�x{egf|���Yx{fhkg¤Cf�¤A¦��c�ld��C�l�g}oacb~¦§azkg}�x{`\�gdwx{jlazkg}�ÔW"'� � ��azmzjld²jlk ¦§az��tg�Cx\fh`��Ldhjlfhkgdhf�lÔ�����I� ¦§az��tg�Cx\f�`��LaYdhjlfwx�s�^�`{fh}{}�n

GA���� � , ]��z�c� .�Ô\(*��+-,.�/1��/C"%�#� ������JH0!�#E��#� "'�� �> � � � ,�0 � R 0!�#2 � �7��2 (���+�,�.�/C0�2 3 $�"%0���$!0ÒÔ�ÑIaz�yn�]z]²acb1 � /C: V 3 0�2D"%0�E �!� @ ������ �2A�7, R E "%� (���+�,�.�/1042 3 $�"%0���$�0�Ô�¦§�Ð�c`{fhkg¤gazk�^I`\f�}\}Òn

GA���� � , ]��z�z��.�Ô � ¦§aLfh`{dhj ��fo}\�g¡Cx�sLtgjlkgm �lÔ ����.�2D����:J��� ���� �"5$&�#��� (���+�,�.�/1��/C"%�����?C�]/DXn

Page 84: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{�����������

Ê,�������� � ��� G � , ]��z�c� .�Ô|r~egf9jl��tg�lfh��fhkYx{��x\jlazk acb�¹������¯�µtg`\aLacb·v�fh¤gj x\az` ¡U�c}\fh¤ azk /��c`�x{jlkLv�� �acb � }��azkCaz��az`{tgegjld�x�sLtuf�x{egfhaz`�s ��j x\e fw�Ctg�ljldhj x�}\�g¡g}\x\j x\�Cx{jlazkGÔ§^Ieg¸�x\egfh}{jl}�Ô§¸�f�tLxÒn�acb¯¦§az��t;nI�Ldhjlfhkgdhf�Ô¦§eU�c�l��fh`\} � kgj ��fh`{}\j x�s�Ô��Y��fh¤gfhk;n

Ê,��� ������G�����e� � , ]��z�c� .�Ô 1 � /C.�"%/C"%��� "%E!/C"5$�� � ,�03� R 0���2 � ÔU��x{�g¤Cjlf�}�jlk�^�`{aYacb�r~egfhaz`\s�Ô ¾ jl¡g�ljlazt�az�ljl}ÒÔ ¿ �ct�az�ljynÊ,��� ������G�������#� � ���� Ê,�������Z�uÏ��� ���� , ]��z�zª�.�ÔJ( �W� � � Y����B> 1 � /10�2D����/C"%������:�$������D0�2A0���$!0=��� $���+-,.�/10�2

: �� �"5$�ÔgÑ�az�yng�g]Ò¥|acbW��0�$4/C.�2A0%���#/C0�E�"'�)(*��+-,.�/10�2 3 $�"%0���$!0ÒÔg�Ltg`{jlkCmzf�`~Ñ�f�`\�Ð�cmgÔ ¾ fh`{�ljlkGnÊ,��������� , ]��z��¥�.�Ô � /���x\egt�fh`\x �lnZ¹E`{d{egj x{fhdwx�� / n ¾ fhfh}{azk;n

LNMPO-Q@R /C/ ,S> T#T�U�U*UWV+&��/ R ,�042D/�V'$!�#+Ê [�F���j� ��� � � , ]��z�zq�.�Ô�¦§az��tg�Cx\fh`�tC`{azmz`X�c��}�b�az`�dXegfhdXiYjlkgm�����x{eCf�����x\jld��c�;tg`\aLacb�}ÒÔ"'��� ^I`\aLdhfhfh¤gjlkgmz}�acbx\egf|�YsL��t�az}{jl�g��jlk�^��g`{f�/���x{egfh����x\jldh}E� �lÔC¹E��fh`{jld��ck /���x{egfh����x\jld��c���LaYdhjlfhx�s�n

Ê�Î uÁ=Ì , ]��z�z��.�nZ¹�`{dXegj x\fhdwx{}��U¹Ekg¤C`{�hf¼¢�r�`�sC¡C�g�lfhd�Ô�¦��hfh}{�Ð�h� ¾ sC�ljlkC}{iYjynLNMPO-Q@R /C/ ,S> T#T�U�U*UWV+="��4�#24V��25

Ê��*���������)F�� , ]��z�z��.�ÔU¹��lmzaz`{j x\eg�M¤gfw��fh�laztg��fhk�xEjlk5x{egf�d��c�ldh�g�l�g}�acbZd�azkC}\x\`{�gdwx\jlazkg}ÒÔ "'��� ^I`\aLdhfhfh¤gjlkgmz}�acbx\egf|�Zjl`\}\xo�YsC��t�az}\jl�g�"azk ��azmzjld¯jlk ¦�az��tC�Cx{fh`��Yd�jlfhkgdhfzÔ�¦~�c�|¡g`{jl¤Cmzf�Ô�/��c}\}Òn �lÔ������I��Ô�` �c}{eCjlkgmcx{azk¸=¦=ÔCtgt;n��c� �L�C]zn

Â4����������_ ��Ì � , ]���¥cp�.�Ôg�Yx\`{azkgm|kgaz`{���c�ljl}{��x{jlazk�jlk5�¯�Ð�c�²¡�¤U�od��c�ld��C�l�g}���j x\e��Ð�c�²¡�¤U��}\x\`{�gdwx\�g`{fh¤�x�sCt�fh}ÒÔ^�eU¸µx\egfh}{jl}�Ôg��jlkg¤gega���f�k � kgj ��fh`{}\j x�s�Ô ¾ aÒ�5�g]Ò¥LÔU��jlkg¤gega���fhk;Ô�r~egf ¿ fwx\egfh`{�Ð�ckg¤g}�n

Â4����������_ ���§Ì ���Ï����������Z��À��`����M�����{�����"�� �IÌ ������� , ]��z�c� .�Ô 3 04: 0�$4/10�� � �D,�0�2DE��#�+��.�/1��+&�#/ R Ô��x{�g¤Cjlf�}�jlk��;azmzjld��ckg¤�x\egf��Uaz�gkg¤U��x\jlazkg}�acb /���x{egfh����x\jldh}%���R��Ô ¿ az`\x\eCv¼­�az�l�Ð�ckC¤;Ôg¹���}\x\f�`\¤U�c��n

Â{���������#����$ Ä �������#���� � ���5Æ �E����5Í#$���� ��� � , ]��z�zª�.�Ô � 2A�! #2A��+&+&"'�� "'� @ ��2D/C"'� YC���!� E � � ,�0�� R 0!�#2 � ÔÀ �Yb�az`{¤ � kgj ��fh`{}\j x�s5^I`{fh}\}ÒnÅ{����� ������� Ê��X����9Ï{�����������|À�� , qzªzªC] .�Ô � ^I`\aLacbI¡Ys dhaz��tg�LxX��x\jlazk jlk�x\egf�¦§aY©�}\sL}\x\fh� �lÔ�� R 0���2A0�/5"5$���:

(���+�,�.�/10�2 3 $�"5V ���������������LnÅ4����GÊ,�� � , ]��z�z��.�n

LNMPO-Q@R /C/ ,S> T#T�U�U*UWV���� BV'$��BV�.B��TB,�2A�0K40!$�/CECT�D,�0�� +;��/ R T��+;ED��$Å4�#�#�� , ]��z�z��.�n�¹E`{d{egj x{fhdwx��^` jl�l�ljÐ�c� /�dÒ¦§�gkgfzn

LNMPO-Q@R /C/ ,S> T#T�U�U*UWV+&$�E7V��� :�V B�MA!T�� J T��/C/1042��������� F�� , ]��z�z��.�Ôg�YsCk�x\egfh}{jl�hjlkgm²tC`{aYacb«}§b�`{az� tg`\azmz`X�c��}�jlk�x\egf=d��c�ldh�g�l�g}�acb�jlkg¤g�gdwx\j ��f=dhazkg}\x\`{�gdwx\jlazkg}ÒÔ

"'� ¾ n / �az�l�lf�`�ÔIfh¤;nlÔ � ^I`{aYdhfhf�¤Cjlkgmz}�pc`\¤ ��k�x{�yn~¦�azkLb\nIazk1/���x\egfh����x{jldh}5acb|^�`{azmz`{�c� ¦§azkg}�x{`\�gdwx{jlazk;Ô/�^§¦ � �z�CÔ@K=�laz}�x{fh`���`{}\f�fzÔ �Ef�`\���ckYs�Ô�]Ò¥ �LqC] *z�g� s ]��z�z� �lÔ;Ñ�az�yn��c�Y¥�acb��@0!$�/C.�2�0 �9��/104E&"'� (*��+-,.�/10�23 $4"504��$�0ÒÔU�Ltg`\jlkgmzfh`\vyÑ�fh`{�Ð�cmgÔ ¾ f�`\�ljlk;ÔgtCt;nUpz�C] �Lp�¥c�Cn

�����_E������Ê��R��������� F�� , ]��z�c� .�Ô���kC¤g�gdwx{j ��f�¤gf �Ukgj x\jlazkg}�jlkAx{eCf�}\sL}\x\fh�¶¦§aL©��Z`{�g�lfh} �ckC¤9tC`{azt�fh`\x\jlf�}�ÔH"%�� ¾ fh�hfh�¶�ckg¤ �E`{aYacx{f�, ]��z�zp�. �lÔZkY�g�²¡�fh`��z�c� "%� � ��fhdwx{�C`{f ¿ acx{fh}�jlk9¦§az��tg�Cx\fh`5�Ldhjlfhkgdhf�lÔ§�Ltg`\jlkgmzfh`Ñ�fh`{�Ð�cmgÔ ¾ f�`\�ljlk;ÔgtCt;nUpzqz� �Lpc���Cn

�����_E������Ê��R��������� F �O���� &w��������JÄ � , ]��z�zp�.�Ô � �YsLk�x{egfh}\jl}|acb0/�� tC`{azmz`X�c��}�jlk x{egf�}�sC}�x{fh� ¦§aY© �lÔ����.�2D����:���� 3 � +;�!��: "%$ (��#+-,�.�/1��/C"%����� ?;Ôg�zª�¥ �L�c��ªCn

����_Z_E�[���Ì � , ]��z�z��.�Ô�¹ ��fh`\j �Ufh¤�x�sLt�fIdXeCf�d{izf�`�Ô�"'�0/ nÒ¸Efh�Ò�ckCj v�¦§jÐ�ckgd��cmz�ljlkgjY�ckg¤��|nÒ^��lacx{iYjlk;Ô�fh¤g}ÒÔ � �Lfhdhazkg¤��k�x\f�`\kU��x\jlazkU�c��¦§azkCb�fh`{fhkgdhf�azk�rIsCt�fh¤ ���c�|¡�¤U��¦��c�ld��C�lj��ckg¤ ¹EtCtg�ljld���x{jlazkg}�Ô�r~��¦§¹ � �z� �lÔ�kY�g�²¡�fh`I�zªzq"'��� ��fhdwx\�g`{f ¿ acx{fh}�jlk�¦§az��tg�Cx\fh`E�Yd�jlfhkgdhf �lÔu�LtC`{jlkgmzfh`ÒÔ ¾ fh`{�ljlk;ÔCtgt;nUpz�z� �5pz�zªCn

���¯Í , ]��z�z��.�Ô � �Lt�fhd�j �gdÒ��x\jlazk��ckg¤5��fh`{j �Ud���x\jlazk�}\sL}\x\fh� �ln�¹E`{d{egj x{fhdwx\}Ò� *gn�£~�g}{eY¡�s�fwx��c�ynLNMPO-Q@R /C/ ,S> T#T#,RA�E7V$�E!:�V�E�2D"CV$���+�T

Ì;�$%���j�AÇ�� , ]��zqz��.�Ô � r�eCf�b�az�gkg¤g��x{jlazkg}oacb�����x\egfh����x{jldh} �lÔ � 2A�4$�0�0���"'�� #E ��� / R 0=�������#�#� @ ��/ R 0�+;��/C"%$���:3 �4$�"%0�/ � tgt;nUpzpz� �Lpz�c�gn

Ì%��� � �§À �'��Í ���������¯Â��E����5Í ��� �j��IÊ�� , ]��z�z��.�Ô�/�aL¤g�C�Ð�c`;��fh`{j �Ud���x\jlazk¯acbC}{`�x�¤gj �Ljl}{jlazk;Ô�"'� � ^I`\aLdhfhfh¤gjlkgmz}acb�x{eCf���x{e ��k�x{fh`\kU��x{jlazkg�c��¦§azkCb«fh`\f�kCd�f�azkJ¦�az��tC�Cx{fh`�¹�jl¤gfh¤AÑIfh`{j �gdÒ��x\jlazk;Ô ¿ fw� ¾ `\�gkg}���jld{iuÔ ¿ *gÔ� �L¹|Ô�fh¤g}�n�£�n�¹��l�g`²�ckC¤ r�n ¹¯nZ­�fhkg�hjlkgmzfh` �lÔ�Ñ�az�yn�]z]�ªzq acb9��0�$4/C.�2A03�9��/104EP"%� (��#+-,�.�/1042 3 $�"%0���$!0ÒÔ�Ytg`{jlkgmzfh`�Ôgtgt;n;]�qzp ��]�pc�gn

Ì%��� ����!� �������À4������� Ç�� � � , ]��z�zp�.�Ô � �Uaz`\���c�L��fh`{j �gdÒ��x\jlazk acbG�c�lmzaz`{j x\eg��}�b�az`�dh`{j x\jld��c�g}\sL}\x\fh��} �lÔ 1 .>.H.� 2A��� ED�#$�/C"%��� E �#� 3 ����/CUW��2A0�. �� #"'��0�0�2D"'�� � ��C�]/DwÔG]�p �LqzpCn

Ì%��� ����_Z_�Ä � , ]��zªzp�.�Ô�� R 0 � 2D"%��$4" ,�: 0�E9���-@ ��/ R 04+;��/C"%$�EXÔU¹��l�lfhk�� � k���jlkGÔg��azkg¤Cazk;n

Page 85: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � �

Í^[#���#��Ã�� , ]���¥cª�.�Ô�¦§azkg}�x{`\�gdwx{j ��f=�c�c�ljl¤gj x�s�Ô�"'��¸|nC�In�/ nL���c�g¤CfhxE�ckg¤ / n��Ld{eL�gfwx\�hf�kY¡�fh`{mzfh`ÒÔ�fh¤g}�Ô � �YsL� vt�az}\jl�g��azk�¹E�Cx\az����x\f�¤ ¸�f���azkC}\x\`X��x\jlazk �lÔUÑIaz�yn�]�qz��acbH�@0!$�/C.�2�0 ����/10�E9"'� @ ��/ R 0�+&��/C"5$4EXÔG�Ltg`\jlkgmzfh`ÒÔ¾ fh`\�ljlk;ÔgtgtGnUqzp�¥ �Lq�¥c�Cn

Í � ������G� � , ]��z�z��.�Ô � rIsLt�fojlkCb«fh`\f�kCd�fob�az`~^I�g`\for~sLt�f|�YsC}�x{fh��} �lÔ 1 ���7��2D+;��/C"%��� ����� (���+�,�.�/1��/C"5���4� �*�����ÔG] �LqzpCn

Í � �������� �����1���_Z_�Ë0� , ]��z�c� .�Ôc^I�C`{f§r�sLtuf���sC}�x{fh��}���j x{e¯¤gf �Ukgj x\jlazkg}ÒÔ�"%�E¹|n ¿ fh`{aY¤gf��ckg¤%�²n /���x\j sY��v}\fw�CjldXeGÔ�f�¤C}ÒÔ � ^I`\aLdhfhfh¤gjlkgmz}§acbG����¦~� � �c��C�� ¿ ¦~��� ����D �lÔc����¦~� � �c�gÔL�Yx�n�^�fhx\fh`{}\¡g�g`{mgÔL£~�g}{}\jÐ�CÔY�Ltg`\jlkgmzfh`Ñ�fh`{�Ð�cmgÔ ¿ fw� �Iaz`\iuÔCtgt;n�pC]�� �Lpzqz�Cn

Í��%���� Ê�� , ]��z�z��.�Ô@` f��ci �ckg¤ }\x\`{azkgm�}\�g� v�fh�ljl��jlkU��x\jlazk jlk jlkYx\�gj x\jlazkgjl}\x\jld x�sLtuf�x\egfhaz`\s�Ô�^IeU¸�x{eCf�}\jl}ÒÔ� kgj ��fh`{}\j x�s�acb�¹���}\x\fh`{¤U�c��n

É.��� _����� ��� , ]��z�z��.�Ô;��f�k kU�c¤Cf�`\f ¡�fw��j ¢�}\x\egfhaz`{fwx\jl}{dXeCf��ckU�c� sC}\f²�z�ck �o�Lr~r � }ÒÔGr�fhdXegkgjld��c�I`\fhtuaz`�xÒÔ;¸Efwvtg�c`\x\��f�k�x�acb�¦§az��tg�Cx\f�`E�LdhjlfhkgdhfzÔ � kgj ��fh`\}{j x�s5acb ¿ j ¢���fhmzf�kGn

�j���Ä%����� ����$ ����#�#�����NG � , ]��z�zp�.�Ô � rIsLtgjlkgm�jlk|^��g`{f§r�sLt�f��YsC}�x{fh��} �lÔ 1 ���7��2D+&�#/5"5��� �����P(��#+-,�.�/1��/C"%������*? C\]/DXÔUpzª �Y�g]zn

�j�� Ä%����� ����$ ����#�#����� G ��;Ê [gÆ������� ��������k���_�_E�[�� Ì � , ]��z�zp�.�ÔU¦�eCf�d{iLjlkgm �c�lmzaz`{j x\eg��}Ib�az`�^��g`{fr�sLt�fo�YsL}\x\fh��}ÒÔ "'�²­�n ¾ �c`{fhkg¤g`\fhmcx~�ckg¤�ron ¿ jltgiza��¯ÔYfh¤g}�Ô � ^�`{aYdhf�fh¤gjlkCmz}§acb;x\egfE��k�x\f�`\kU��x\jlazkU�c�S` az`{i�v}\egazt²azk|rIsLtufh}Zb«az`�^I`\aLacb�}Z�ckg¤²^�`{azmz`{�c��}ÒÔ ¿ j ¢���f�mzfhk;ÔÒr~egf ¿ fwx\egfh`{�Ð�ckg¤C} �lÔcÑ�az�ynz�z�Eacb@��0�$4/C.�2A05���#/C0�E"'� (��#+-,�.�/1042 3 $4"504��$�0ÒÔU�Ltg`\jlkgmzfh`ÒÔ ¾ fh`\�ljlk��ckg¤ ¿ fw� ��az`{i�ÔUtgt;nG]�� �L�C]zn

& �����#�$�������Á������5Ì%��� ����_Z_�Ä � , ]��C]�ªCÔg]��zq�¥�.�Ô � 2D"'��$�" ,"%��@ �#/ R 04+;��/C"%$�� 8���:/��0/9"9/$L��&�����=<��0/9"�<���Ô¦��c�|¡g`{jl¤gmzf � kgj ��fh`{}\j x�s�^I`\f�}\}Òn

&y�3& � , ]��z�c� .�Ô @ 0�$ R ��� "%$���:H� R 0���2A0�+ � 2A�MA�"'�� ;"'� �H0���+;0�/52D"504EXÔYr�fh�Yx\}��ckg¤ /�azkgazmz`{�ctgeg}§jlk���sC�|¡uaz�ljld¦§az��tg�LxX��x\jlazk;Ôu�LtC`{jlkgmzfh`Òn

Page 86: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{��������������������

� � �T- � ��nhn\�CÔ�]�ªCÔG]z]zÔ�]��CÔ�]�� �LqzqCÔ�pzqCÔ�pzpCÔUpz�CÔUp�¥LÔU��ªCÔ

��pCÔU���CÔg�Y¥LÔ��zqCÔU�z�CÔu¥c�CÔ�¥z¥LÔu¥c� nhnhnhnhn�nhnhn{�CÔU� ��]z]zÔ�]�� �LqC]zÔupzqCÔU¥��gÔu¥c�CÔu¥z¥LÔu¥c���nhnhnhnhn�nhnhnhnhn�n�nhnhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnhn�n�nhnhn�n�qzªCÔ�pzq� ]�� ��]��CÔgqzqCÔLpzqCÔL�z� �L�zqCÔU¥cqCÔC¥��gÔC¥c�CÔC¥z¥LÔC¥c�CÔg�zª

��c�lmzaz`{j x\eg� n�nhnhnhnhn�nhnhnhn��gÔ�¥LÔ�]��CÔG]Ò¥LÔ�qC]zÔ�qzpCÔ��C]

�¡�aLazi�fh©Y�U�c�lj x�s�nhnhn�nhnhnhnhn�nhnhnhnhnÒnhnhnhn�nhnhnhnhn�nhnhnhn�qzq

¦��c�ldh�g�l�g}�acb�¦�azkC}\x\`{�gdwx\jlazkg}¬nhnhnhn�n�nhnhn�nhn\�C]zÔ��zqdhaLfh`\d�jlazk�nhnhnhnhn�nhnhnhnhn�nhnhnhnhn�nhnhn�n�nhnhnhnhn�nhnhnhnyqz� �Lq�¥dhaz��tg�Cx{��x{jlazk n�n·pCÔ;]��CÔ;]��CÔ�]��CÔU��qCÔg�z�gÔU�z�CÔ��z�CÔ

�z�CÔ��zpCÔ�¥cqCÔu¥��gÔ�¥c�dhazk��U�gfhkgdhf-nhnhnhnhn�nhnhnhnhn�n�]z]zÔ�]��CÔgqzªCÔU��pCÔU���CÔU�Y¥dhazkg}\x\`{�Cdhx\j ��f��lazmzjld �CÔ;]��CÔ�]Ò¥LÔ�qz�CÔUpzªCÔUpzpCÔ�pz�CÔ

��¥LÔ��zªCÔU�C]dhazkY��fh`\}{jlazk�nÒ�CÔU�CÔ;]��CÔUqzªCÔ�qC]zÔ�pzqCÔUpzpCÔUp�¥LÔ��z�CÔ

¥c�CÔu¥z¥LÔU�zªdh�g`{`�sCjlkCm�nhn�nhnhnhnhn�nhnhnhnÒnhnhnhnhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnhnXpzp

�¤gf ¾ `\�gj ¢\k5dh`{j x\fh`{jlazk_n�nhnhnhnhn�nhnhnhnhnX¥LÔg�z�CÔu¥��gÔ��zª¤gf �Ukgj x\jlazkU�c��fh©Y�U�c�lj x�s�nhnhn�n�nhnhn�nhnhnhnhn�nhnhnhn¼qzqCÔ�qzp¤gfht�fhkg¤gfhkYx�b«�Ckgdwx{jlazk5x�sCt�f n�nhnhnhnÒnhnhn¼]�ªCÔ�qc�gÔ�pz�¤gfht�fhkg¤gfhkYx�x�sCt�f¶n�nhnhnhnhn�n«�CÔ�]�ªCÔG]�qCÔ�qzªCÔ��zqCÔu¥c�¤gf ¾ `\�gj ¢\k5dh`{j x\fh`{jlazk_n�nhnhnhnhn�nhnhnhnhn�nhnhnhnhn�nhn�nhn�nhn\¥¤gjl`\f�dwx�fhkgdhaL¤Cjlkgmºn�n�nhnhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnhn�nhn�nhnÒ]�q¤gjl}�¢\�gkCdhx\jlazk�tC`{azt�fh`\x�s nhnhnhnhn�nhnhnhnhn�nhnhnhnhn�n�nhnhnXpz�

�fh©L�g�c�lj x�s"�CÔG]�ªCÔG]�� �Lqc�gÔgpzªCÔgpC]zÔgpz�CÔgp�¥LÔC��pCÔC�Y¥LÔ

�zqCÔu¥c�fw�Cjl}�x{fhkgdhf�tg`\aztufh`�x�s nhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnhnC]Ò¥LÔ�pz�fw�Lx\fhkg}{jlazkg�c��f�©Y�U�c�lj x�s_nhnhn�nhnhnhnhn�nhnhnhnhn�nhnhn�qzpCÔu¥z¥fw�Lx\fhkg}{jlazkg�c�lj x�s nhnhnhn�nhnhnhnhn�nhnhnhnhnYqC]zÔ�qzpCÔ�qc�gÔu¥z¥

�b��gkgdwx{jlazk»nhpCÔU�gÔg�CÔ�]�ªCÔ;]��CÔ;]Ò¥LÔ�qzªCÔUqzp �Lqz�CÔupzªCÔ

pC]zÔ�pzpCÔUpz��

egjlmzegfh`�az`{¤gfh`~�lazmzjld nhnhnhnÒnhnhnc]��CÔgqzqCÔ�pzpCÔ�p�¥LÔU��ª�

jl��tg`\f�¤CjldÒ��x\j �Lj x�s nhn�nhnhnhnhn�nhnYqzpCÔgqz�CÔ�pz�CÔ���¥LÔu¥c�

jlkg¤g�Cdhx\j ��fofh©L�g�c�lj x�s nhnhnhnhn�nhnhnhnhn�nhnhn�n�nhnhnhnhn�nhn�qzqjlkg¤g�Cdhx\j ��f=x�sLtuf��CÔ;]��CÔ�qzpCÔU�c�gÔU��¥LÔ��C]zÔ��z� �L��¥LÔ

¥cpCÔ�¥c�jlk�x{fhkg}\jlazkU�c��fh©L�g�c�lj x�s nhnhnhnÒnhnhnhnhn�nhnhnhnhn�nhnÒqzpCÔ�¥z¥

���fhjl¡gkgjl�ofh©Y�U�c�lj x�s�nhnhnhnhn�nhnhnhnyqzqCÔUqzpCÔ�pz�CÔ�pz�CÔUpz��lazmzjld��c�Gb�`X�c��fw��az`\i n�nhnhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnhn�nhn�n\]�q

�kgaz`\���c�ljl�Ò��x\jlazk nhnhnhn�nhnhn�n�nhnhnhnw�CÔgqzªCÔ�pzqCÔU��pCÔg�Y¥

)^�azjlkgd��c`�Gfotg`\jlkgdhjltg�lfºnhnC]��CÔ�pz�CÔ��z�CÔU¥cqCÔu¥c�CÔu¥z¥LÔ

¥c�CÔU�zªt�az� sC��az`\tgegjl}\�0nhnhn�nhnhnhnhnÒnhnhnhn�nhnhnhnhn�ny�zªCÔ��c�gÔU�z�tg`\f�¤CjldÒ��x\j ��f n�nhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnhn�nhn�nhn�nhnhnhnhn�nhnY�tg`\f�¤CjldÒ��x\j �Lj x�s nhnhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnhnÒnhnhnhn�nX¥c�CÔ�¥c�tg`\aLacbZ�c}\}{jl}\x{�ck�x-nhnhn�nhnXpCÔg�gÔU�zpCÔU�z�CÔu¥c�CÔu¥c�CÔ�¥c�tg`\aLacb�d{egfhdXiLjlkCmMpCÔC� �L�CÔUpzqCÔgpzpCÔU�zpCÔU�z�CÔg¥��gÔ�¥c�tg`\aLacb�¤gfw��fh�laztg��fhk�xE}�sC}�x{fh� nhn�nhnhnhnhn�nhnhn�n�nhnhn�ptg`\aLacb�jl`\`{fh�lfw�z�ckgdhf n�nhnhnhnÒnhnhnhnhn�nhnhnhnhn�nhnhnhnhn�nhnhn�pC]tg`\aLacb·v�az¡C¢�fhdwx�nhn�nhnhnhnhn�nhnhn�n�nhnhnhnhn�nhnY¥LÔg�CÔu¥c�CÔ�¥c�tg`\aztuaz}\j x{jlazkC}��c}~x�sLtufh}¶nÒnhnhnhn�n\�CÔg�CÔ�]�pCÔ�qz�CÔg�g]^I�C`{f=rIsLt�f|�YsC}�x{fh��}�nhnhnhn�n�nhnhn�nhnhnhn����CÔ��C]zÔU�c�

�`{fh¤g�Cdhx\jlazk¶�CÔ��CÔU�CÔG]z]zÔ�]��CÔ�]��CÔ�qzªCÔgpzqCÔ�pzpCÔU��ªCÔ

��pCÔg���CÔ��z�CÔ��z� �L�zqCÔU�z�CÔu¥cpCÔu¥c�`{f��Ufhdwx\jlazk nhnhnhn�nhnhnhnÒnhnhnhnhn�nhnhnhnhn�nhnhnhnhn�nhnhnYqzªCÔ�¥��

}{fwx\azjl¤2nÒnhnhnhnhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnÒnhnhnhnhn�nXqc�gÔ�qz�CÔUpzª}{eg�c�l�laÒ�,fhkgdhaY¤gjlkgm�nhnhnhnhn�nhnhnhnhn�nhnhnhnÒnhnhnhnhn�nhnhnC]�q}{jlmzkg��x{�g`\f¶nhnhnhnhn�nhnhnhnhn�nhnhnhnhn�n�nhnhn�nhnhnhnhn�nhnhn�]�q ��]��}\x\`{fhkgmcx\egfhkgjlkgm nhnhn�nhnhnhnhn�nhnhnhnhn�n�nhnhn�nhnhnhnhn�nhnhnhny�C]}{�C¡C¢�f�dwx�`{fh¤g�Cdhx\jlazk2nhnhn�nhnhnhnhn�nhnhn�]��CÔU��pCÔU���CÔU�C]}{�C¡Cx�sCt�f�nhnhnhnhn�nhnhnhnhn�nhn�nhn�nhnhnhnhn�nhnhnhnhnhqz�CÔ�qz�CÔ�¥c�}\sL}\x\fh�M� nhnhnhnhn�nhnhnhnhn�nhnhnhnhnÒnhnhnhn�nhnhnhnhn�nhnhnhnhn�n��zª}\sL}\x\fh�M���»nhnÒnhnhnhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnhn�n�nhnhn�nhnhnhny�C]

�r�¦§^*nhnhnhnhn�nhnhnhnhn�nhn�nhn�nhnhnhnhn�nhnhnhnhnL¥LÔ�]�ªCÔU��pCÔ�¥z¥r~��^�nhnhnhn�nhnhnhnÒnhnhnhnhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnhnÒnhnhnhn�ny¥LÔUqzpr��L^®nhn�nhnhn�n�nhnhnhnhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnÒnhnhnhn�¥LÔ�]�ªCÔg��qx�sLtufod{egfhdXizfh` nhnhnhnhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnÒnhny¥LÔ�qzªCÔUq�¥x�sLtufod{egfhdXiLjlkCm nhn�¥LÔU�CÔ;]�qCÔ�]��CÔ�qzªCÔgqc�gÔ�qz�CÔU��qCÔ

��pCÔ�¥z¥x�sLtufojlkLb«fh`{fhkgdhf_nhn�nhnhnhnhn�nhnhn�n�nhnhnhnhn�nhnhnhnhn�nhnhnhn���qx�sLtufojlkCeU�c¡gj x{��x{jlazk n�nhnhnhnhn�nhnhnhnhn�nhnhnhnhn�nhn�nhn�nhnhn�¥

Page 87: Proof-Assistants Using Dependent Type Systems

������������� ����������������������������������������� �����!�"�����#� $%� � �

x�sLtuf�}�sCk�x{eCf�}\jl}¬nhnhnhn�nhnhnhnhn�nhnhnX¥LÔ;]z]zÔ�qz�CÔU��q �Y�z��

�gkgjl©Y�gfhkgfh}{}�acb�x�sCt�fh} nhnhnhnhn�nhnhnhnhn�nhnhn¼]�ªCÔU���CÔ��zq

Page 88: Proof-Assistants Using Dependent Type Systems

� � À��GÄ.�������������������� À��;Ï{���������������� ��� �������

�¹Edh�hfh� n�nhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnhn�nhnhn�n�nhnhnhnhn�nhnhn�qz�CÔ��z�

�¾ aÒ��f nhn�nhnhnhnhn�nhnhnhnhnÒnhnhnhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnhn�n�nhnz�C]¾ `{az����fh`-nhnhnhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnhnÒnhnhnhn�nhnhnhnhn�nhnhnhnw�

¦§eL�C`{dXe nhn�n�nhnhn�nhnhnhnhn�nhnhnhnhn�nhnY�CÔG]��CÔ�]Ò¥LÔ�pzpCÔu¥z¥¦§aL©Y�U�ckg¤ºnhnhnhn�nhnhnhnhnÒnhnhnhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnhn��CÔ��C]¦§�g`{`�s2nhnhn�nhnhnhnhn�nhnhnhnhn�nhn�nhn�nhnhnhnhn�nhnhnhnhnh�CÔ�qz�CÔ�p�¥

�¤gf ¾ `\�gj ¢\k2nhnhnhnÒnhnhnhnhn�nw�CÔ�¥LÔ�qz�CÔgp�¥LÔ��z�CÔu¥��gÔ��zª

��EfhkYx\�hfhk�nhn�nhnhn�n�nhnhnhnhn�nhnhnhnhn�nhnhnhnhn�nhnhn�n�nhnhnhnhn�nhn���Ejl`X�c`\¤�nhn�nhnhnhnhn�nhnhnhnhn�nhn�nhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnhn�nhnhn¼�

�­�fwsYx{jlkCm�nhn�nhnhnhnhn�nhnhnhnhn�n�nhnhn�nhnhnhnhn�nhnhnhnhn�nhnhn��CÔ���¥­�a��~�c`{¤ nhnhnhnhn�nhn�nhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnhn�nc�CÔ�qz�CÔ�p�¥­��Cfhxºn�nhnhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnhn�nhn�nhn�nhnhnhnhn�nhnhnhnhn�nhnY�

�/��c`\x\jlkCv�� �acbMnhnÒnhn¼�CÔG]Ò¥LÔ�qzpCÔ�qc�gÔgqz�CÔ�qz�CÔ���¥LÔu¥c�

�¿ �c`{�c}{dXeCfh��}\iLj n�nhnhn�n�nhnhnhnhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnÒnhn��C]

)^�az�l�Ð�cdXi�n�nhnhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnhn�nhn�nhn�nhnhnhnhnz��¥LÔ��C]^I`{����j x\� nhnhnhnhn�nhn�nhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnhn�nhn�nhn�nhnhnhnhny�

�§¸ nhn�nhnhnhnhnÒnhnhnhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnhn�n�nhnhn�nhn��CÔ��C]

�£~�g}{}\f��l��nhnhnhnhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnhnÒnhnhnhn�nhnhnhnhn�n«�CÔ�pz�

�Ldhacx�x±nhn�nhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnhn�nhnhn�n�nhnhnhnhn�nhnhnhnhn�nhn���YsLkgfhi�nhnhnhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnÒnhnhnhnhn�nhnhnhnhn�nhnhnhnhnc�C]

�`Jjlf�¤Cj ¢\i�nhnhnhnhn�nhnhnhnhnÒnhnhnhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnhnÒnhn��C]

������ckgfhkL¡g�C`{m nhnhnhnhn�nhnhnhnhn�nhnhnhnÒnhnhnhnhn�nhnhnhnhn�nhnhnh�C]

Page 89: Proof-Assistants Using Dependent Type Systems

É;����[,��������� � �

����� ����� �������

�egjlmzegfh`�az`{¤gfh`~�lazmzjld¬nhnhnhnhn�nhnhnhnhn�nhnhnhnÒnhnhnhnhn�nhnhn¼pzp

)tg`\aztuaz}\j x{jlazkC}E�c}�x�sLtufh}_nhn�nhnhnhnhn�nhnhnhnhn�nhnhnhnÒnhnhn��