コッポ・デザーニ型割り当てシステムコッポ・デザーニ型分類システム ( ⊢ CD ) {\displaystyle (\vdash _{\text{CD}})} 項変数に複数の型を仮定できるようにすることで、単純型付けλ 計算を 拡張する。 [ 2 ]
用語言語 言語という用語( ⊢ CD ) {\displaystyle (\vdash _{\text{CD}})} λ 項 (またはラムダ式 )によって与えられる。
M 、 N ::= x ∣ ( λ x 。 M ) ∣ ( M N ) どこ x 期間変数の範囲 {\displaystyle {\begin{aligned}M,N&::=x\mid (\lambda x.\!M)\mid (M\;N)&&{\text{ ただし }}x{\text{ は項変数の範囲をとる }}\\\end{aligned}}}
型言語 型言語( ⊢ CD ) {\displaystyle (\vdash _{\text{CD}})} は、以下の文法によって帰納的に定義される。
φ ::= α ∣ σ → φ どこ α 型変数の範囲 σ ::= φ 1 ∩ ⋯ ∩ φ n どこ n ≥ 1 {\displaystyle {\begin{aligned}\varphi &::=\alpha \mid \sigma \to \varphi &&{\text{ ただし }}\alpha {\text{ は型変数の範囲}}\\\sigma &::=\varphi _{1}\cap \cdots \cap \varphi _{n}&&{\text{ ただし }}n\geq 1\end{aligned}}} 交差型コンストラクタ(∩ {\displaystyle \cap } ) は結合法則、交換法則、冪等法則 を法として取られます。
Barendregt-Coppo-Dezani 型割り当てシステムBarendregt -Coppo-Dezani 型割り当てシステム ( ⊢ BCD ) {\displaystyle (\vdash _{\text{BCD}})} Coppo–Dezani型割り当てシステムを次の3つの側面で拡張します。[ 3 ]
( ⊢ BCD ) {\displaystyle (\vdash _{\text{BCD}})} ユニバーサル型定数 を導入するω {\displaystyle \omega } (空の交差に類似)任意のλ 項に割り当てることができる。( ⊢ BCD ) {\displaystyle (\vdash _{\text{BCD}})} 交差型コンストラクタを許可する( ∩ ) {\displaystyle (\cap )} 矢印型コンストラクタの右側に表示される( → ) {\displaystyle (\to )} 。( ⊢ BCD ) {\displaystyle (\vdash _{\text{BCD}})} 交差型サブタイピング を導入する( ≤ ) {\displaystyle (\leq )} 型に関する部分順序と、それに対応する型付け規則。
用語言語 言語という用語( ⊢ BCD ) {\displaystyle (\vdash _{\text{BCD}})} λ 項 (またはラムダ式 )によって与えられる。
M 、 N ::= x ∣ ( λ x 。 M ) ∣ ( M N ) どこ x 期間変数の範囲 {\displaystyle {\begin{aligned}M,N&::=x\mid (\lambda x.\!M)\mid (M\;N)&&{\text{ ただし }}x{\text{ は項変数の範囲をとる }}\\\end{aligned}}}
型言語 型言語( ⊢ BCD ) {\displaystyle (\vdash _{\text{BCD}})} は、以下の文法によって帰納的に定義される。
σ 、 τ ::= α ∣ ω ∣ σ → τ ∣ σ ∩ τ どこ α 型変数の範囲 {\displaystyle {\begin{aligned}\sigma ,\tau &::=\alpha \mid \omega \mid \sigma \to \tau \mid \sigma \cap \tau &&{\text{ ただし }}\alpha {\text{ は型変数の範囲をとる }}\end{aligned}}}
交差型サブタイピング 交差型サブタイピング ( ≤ ) {\displaystyle (\leq )} は、以下の性質を満たす交差型上の最小の前順序関係 (反射的 かつ推移的な関係)として定義されます。
σ ≤ ω 、 ω ≤ ω → ω 、 σ ∩ τ ≤ σ 、 σ ∩ τ ≤ τ 、 ( σ → τ 1 ) ∩ ( σ → τ 2 ) ≤ σ → τ 1 ∩ τ 2 、 もし σ ≤ τ 1 そして σ ≤ τ 2 、 それから σ ≤ τ 1 ∩ τ 2 、 もし σ 2 ≤ σ 1 そして τ 1 ≤ τ 2 、 それから σ 1 → τ 1 ≤ σ 2 → τ 2 {\displaystyle {\begin{aligned}&\sigma \leq \omega ,\quad \omega \leq \omega \to \omega ,\quad \sigma \cap \tau \leq \sigma ,\quad \sigma \cap \tau \leq \tau ,\\&(\sigma \to \tau _{1})\cap (\sigma \to \tau _{2})\leq \sigma \to \tau _{1}\cap \tau _{2},\\&{\text{if }}\sigma \leq \tau _{1}{\text{ and }}\sigma \leq \tau _{2}{\text{, then }}\sigma \leq \tau _{1}\cap \tau _{2},\\&{\text{if }}\sigma _{2}\leq \sigma _{1}{\text{ and }}\tau _{1}\leq \tau _{2}{\text{, then }}\sigma _{1}\to \tau _{1}\leq \sigma _{2}\to \tau _{2}\end{aligned}}} 交差型サブタイピングは二次時間で決定可能である。[ 18 ]
参考文献 ↑ ヘンク・バレンドレット;ウィル・デッカース。リチャード・スタットマン(2013年6月20日)。型を使用したラムダ計算 。ケンブリッジ大学出版局。ページ 1–。ISBN 978-0-521-76614-2 。 1 2 3 4 5 Coppo, Mario; Dezani-Ciancaglini, Mariangiola (1980). " λ 計算の基本機能理論の拡張 " . Notre Dame Journal of Formal Logic . 21 (4): 685–693 . doi : 10.1305/ndjfl/1093883253 . S2CID 29748788 . 1 2 3 4 5 Barendregt, Henk; Coppo, Mario; Dezani-Ciancaglini, Mariangiola (1983). "フィルタラムダモデルと型割り当ての完全性". Journal of Symbolic Logic . 48 (4): 931– 940. doi : 10.2307/2273659 . JSTOR 2273659 . S2CID 45660117 . ↑ van Bakel, Steffen (2011). "ラムダ計算のための厳密な交差型". ACM Computing Surveys . 43 (3): 20:1–20:49. CiteSeerX 10.1.1.310.2166 . doi : 10.1145/1922649.1922657 . S2CID 5537689 . ↑ 「TypeScript の交差型」 。 2019年8月1日 取得 。 ↑ 「Scalaにおける複合型」 。 2019年8月1日 取得 。 1 2 Pottinger, G. (1980). 強正規化可能なλ 項の型割り当て。HB Curryへ:組み合わせ論理、ラムダ計算、形式主義に関するエッセイ、561-577。 1 2 Coppo, Mario; Dezani-Ciancaglini, Mariangiola; Sallé, Patrick (1979). "ラムダ計算におけるいくつかの意味的等式の関数的特徴付け". Hermann A. Maurer (編). Automata, Languages and Programming, 6th Colloquium, Graz, Austria, July 16-20, 1979, Proceedings . Vol. 71. Springer. pp. 133– 146. doi : 10.1007/3-540-09510-1_11 . ISBN 3-540-09510-1 。↑ コッポ、マリオ。デザーニ=シアンカリニ、マリアジョーラ(1978年)。 「 λ 項の新しい型代入 」。 数学ロジックとグルンドラーゲンフォルシュングのアーカイブ 。 19 (1): 139–156 。 土井 : 10.1007/BF02011875 。 S2CID 206809924 。 ↑ Coppo, Mario; Dezani-Ciancaglini, Mariangiola; Venneri, Betti (1981). "可解項の関数特性". Mathematical Logic Quarterly . 27 ( 2–6 ): 45–58 . doi : 10.1002/malq.19810270205 . ↑ Kfoury, AJ; Wells, JB (2004 年 1 月). 「拡張変数を使用した交差型の主権と型推論」. Theoretical Computer Science : 1–70 . ↑ 寺内 隆、アイケン 明:多相再帰を伴うランク2交差型の型可能性について。LICS、IEEE Computer Society (2006) pp. 111–122 ↑ Urzyczyn, Paweł (1999). "交差型における空性問題". Journal of Symbolic Logic . 64 (3): 1195–1215 . doi : 10.2307/2586625 . JSTOR 2586625. S2CID 36979036 . ↑ Urzyczyn, Paweł (2009). "低ランク交差型の居住性". 国際型付きラムダ計算と応用に関する会議 . TLCA 2009. Vol. 5608. Springer. pp. 356–370 . doi : 10.1007/978-3-642-02273-9_26 . ISBN 978-3-642-02272-2 。↑ Dudenhefner, Andrej; Rehof, Jakob (2019). "次元制限下での主権と近似". Proceedings of the ACM on Programming Languages . POPL 2019. Vol. 3. ACM. pp. 8:1–8:29. doi : 10.1145/3290321 . ISSN 2475-1421 . ↑ Fairouz Dib Kamareddine、Joe Wells「有限集合宣言による交差型」 https://arxiv.org/pdf/2405.00440 WoLLIC 2024 ↑ Van Bakel, Steffen (1992). "Complete restrictions of the intersection type discipline". Theoretical Computer Science . 102 (1): 135– 163. CiteSeerX 10.1.1.310.903 . doi : 10.1016/0304-3975(92)90297-S . ↑ Dudenhefner, Andrej; Martens, Moritz; Rehof, Jakob (2017). "代数的交差型統合問題". Logical Methods in Computer Science . 13 (3). arXiv : 1611.05672 . doi : 10.23638/LMCS-13(3:9)2017 . S2CID 31640337 . ↑ Ghilezan, Silvia (1996). "交差型による強い正規化と型付け可能性" . Notre Dame Journal of Formal Logic . 37 (1): 44– 52. doi : 10.1305/ndjfl/1040067315 . ↑ Wells, JB (2003). "The Essence of Principal Typings". ICALP '02: Proceedings of the 29th International Colloquium on Automata, Languages and Programming . pp. 913–925 . ↑ ロンキ・デッラ・ロッカ、シモーナ;ヴェネリ、ベッティ (1983)。 「拡張型理論の主要な型スキーム」 。 理論的なコンピューターサイエンス 。 28 ((1-2)): 151–169 . 土井 : 10.1016/0304-3975(83)90069-5 。