- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
7章多態
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 7.5 类型表达式的分类 ??? ?, ?演算有项、类型和种类三种语法范畴 语法范畴 项目 具体形式 种类 ? ::= Type | ? ?? | ? ?? 类型 ? ::= b | t | ? ?? | ? ?? | fst(?) | snd(?) | ?t:?.? | ?? 项 M ::= c | x | ?x:?.M | MM | ?M, N? | Proj1M | Proj2M | ?t:?.M | M? 任意两个类型,它们的积属于某个积种类?1??2 由?t:?.?表示的类型上的函数属于某个函数种类???? 7.5 类型表达式的分类 7.5.2 类型表达式的定类与相等 类型表达式的定类(kinding)断言 断言的形式为? ? ? : ?,其中定类上下文? 是形式为 ? = {t1 : ?1, …, tn : ?n} 其中dom(?) = {t1, …, tn} 类似于项的定型断言? ? M : ? 7.5 类型表达式的分类 7.5.2 类型表达式的定类与相等 类型表达式的定类(kinding)断言 断言的形式为? ? ? : ?,其中定类上下文? 是形式为 ? = {t1 : ?1, …, tn : ?n} 其中dom(?) = {t1, …, tn} 它给类型变量进行种类指派,类似于项的定型断言? ? M : ? 7.5 类型表达式的分类 定类规则 ? ? b : Type (每个类型常量b : Type) (cstt) t : ? ? t : ? (vark) (add vark) (WF-Type) (?k Intro) ? ? ? :? ?, t : ?? ? ? :? ? ? ?1 :Type ? ? ?2 :Type ? ? ?1? ?2 :Type ? ? ?1 :?1 ? ? ?2 :?2 ? ? ?1??2 : ?1??2 7.5 类型表达式的分类 定类规则 (?k Elim)1 (?k Elim)2 (?k Intro) (?k Elim) ? ? ? :?1??2 ? ? fst(?) :?1 ?, t :?1 ? ?2 :?2 ? ? (?t :?1. ?): ?1? ?2 ? ? ?1 :???? ? ? ?2 :?? ? ? ?1?2 : ? ? ? ? :?1??2 ? ? snd(?) :?2 7.5 类型表达式的分类 类型表达式的相等规则 (Projt)1 (Projt)2 (spt) ? ? (?t:?.?) = (?t?:?.[t?/t]?) : ? ? ?? 其中t??FV(?) (?t) ? ? ?1??2 :?1??2 ? ? fst(?1??2) = ?1:?1 ? ? ?1??2 :?1??2 ? ? snd(?1??2) = ?2:?2 ? ? ? :?1??2 ? ? fst(?)?snd(?) = ?:?1??2 7.5 类型表达式的分类 类型表达式的相等规则 (?t) (?t) 上述类型表达式的定类规则和相等规则给出了类型表达式上一个简单的演算系统 类型表达式被称为语言的静态数据,而项被称为语言的动态数据 ?, t:? ? ?1:?? ? ? ?2:? ? ? (?t:? .?1)?2 = [?2/t]?1:?? ? ? ? :?1 ??2 t?dom(?) ? ? (?t:?1.? t) = ? :?1 ??2 7.5 类型表达式的分类 7.5.3 项的定型
文档评论(0)