「型別理論與形式證明筆記」修訂間的差異
跳至導覽
跳至搜尋
Tankianting(討論 | 貢獻) |
Tankianting(討論 | 貢獻) |
||
行 37: | 行 37: | ||
# abstration(抽象):若 <math display="inline">x:\sigma</math> 且 <math display="inline">M:\tau</math>,則 <math display="inline">\lambda x.M:\sigma \rightarrow \tau</math> | # abstration(抽象):若 <math display="inline">x:\sigma</math> 且 <math display="inline">M:\tau</math>,則 <math display="inline">\lambda x.M:\sigma \rightarrow \tau</math> | ||
<math display="inline">( | <math display="inline">(x\ x)</math>在這種情況下,因為不可能既是<math display="inline">x:\alpha \rightarrow \beta</math>且<math display="inline">x:\alpha</math>這種型別存在,所以這種式子不會被構造到。 | ||
若<math display="inline">\exists\sigma\text{ such that }M:\sigma</math>,則<math display="inline">M</math>是可賦予型別的(typable)。 | 若<math display="inline">\exists\sigma\text{ such that }M:\sigma</math>,則<math display="inline">M</math>是可賦予型別的(typable)。 | ||
[[category:資訊]] | [[category:資訊]] |
於 2024年7月8日 (一) 22:11 的修訂
ISBN 9781107036505
原標題:Type Theory and Formal Proof: An Introduction
作者:Rob Nederpelt, Herman Geuvers
編輯格式注意
- 章節內文太多的時候,拆成新頁面。
- typst 撰寫 + pandoc 產生貼上於個人維基的內容。
第1章:無型別lambda運算(untyped lambda calculus)
第2章:簡單型別lambda運算(simple typed lambda calculus)
2.2 simple type 簡單型別
型別變數 type variable:用希臘字母表示。
:所有簡單型別,定義如下:
- 型別變數:,表達基本型別,比如list, nat等
- 箭頭型別:
箭頭是右結合的,和函數的apply代入不同。比較和。
註:在本書中, 和 指數學世界的自然數和列表,而nat和list指電腦程式世界的同樣的型別。
「term 有類型(type、型別)」寫成
type有唯一性。比如:若且,則
簡單型別lambda演算的出現的推演規則:
- application(代入):若 且 ,則
- abstration(抽象):若 且 ,則
在這種情況下,因為不可能既是且這種型別存在,所以這種式子不會被構造到。
若,則是可賦予型別的(typable)。