Skip to content
This repository was archived by the owner on Jan 5, 2025. It is now read-only.

Commit 8c1861f

Browse files
committed
InstanceSynth翻訳 (#20)
* 翻訳開始 * 翻訳完了
1 parent b4439b4 commit 8c1861f

File tree

4 files changed

+311
-32
lines changed

4 files changed

+311
-32
lines changed

GLOSSARY.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
| core type theory | コア型理論 | |
5353
| curly brace | 波括弧 | |
5454
| currying | カリー化 | |
55+
| cycle | 巡回 | |
5556
| datatype | データ型 | |
5657
| debugging trace | デバッグトレース | |
5758
| declaration | 宣言 | |
@@ -65,6 +66,7 @@
6566
| derivation | 導出 | |
6667
| deriving | 導出 | |
6768
| desugar | 脱糖 | |
69+
| diamond | ダイアモンド | 菱形継承問題関連の単語。菱形だとわかりづらいためカタカナにした |
6870
| disjointness | 不連結性 | |
6971
| disjunction | 選言 | |
7072
| domain | 定義域 | |
@@ -81,7 +83,7 @@
8183
| environment extensions | 環境拡張 | |
8284
| equational lemma | 等式の補題 | |
8385
| equivalence | 同値性 | |
84-
| equivalent | 同値 | |
86+
| equivalent | 同値、同等 | |
8587
| evaluate | 評価 | |
8688
| evidence | 根拠 | |
8789
| exception | 例外 | |
@@ -130,7 +132,7 @@
130132
| inheritance | 継承 | |
131133
| initialization | 初期化 | |
132134
| injectivity | 単射性 | |
133-
| instance implicit parameter | 暗黙のインスタンスのパラメータ | |
135+
| instance implicit parameter | インスタンス暗黙のパラメータ | |
134136
| instances synthesize | インスタンス統合 | composite instanceという類似表現もあるが、関数合成の意味での合成と使い分けるために統合を採用 |
135137
| instantiate, instantiation | インスタンス化 | |
136138
| intensional | 内包的 | |
@@ -165,6 +167,7 @@
165167
| monad | モナド | |
166168
| monomorphism | モノ射 | |
167169
| motive | 動機 | |
170+
| multiset | 多集合 | |
168171
| multi-threading | マルチスレッド | |
169172
| mutually inductive | 相互帰納 | |
170173
| namespace | 名前空間 | |
@@ -206,6 +209,7 @@
206209
| reasoning | 推論 | |
207210
| recovery | 回復 | |
208211
| recursive-descent parser | 再帰下降パーサ | |
212+
| reducibility | 簡約性 | |
209213
| reduction | 簡約 | |
210214
| reference count | 参照カウント |
211215
| rename | リネーム | |

Manual/Classes.lean

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ Thus, type class instance synthesis is also a means of constructing programs in
125125

126126
:::
127127

128-
通常の多相定義は単に任意のパラメータでインスタンス化されることを想定していますが、型クラスでオーバーロードされる演算子は特定のパラメータセットに対してオーバーロードされる演算を定義する {deftech}_インスタンス_ (instance)としてインスタンス化されます。これらの {deftech}[暗黙のインスタンス] (instance-implicit)パラメータは角括弧で示されます。呼び出しの際において、Lean は利用可能な候補から適切なインスタンスを {deftech key:="synthesis"}_統合_ {index}[instance synthesis] {index subterm:="of type class instances"}[synthesis] (synthesize)するかエラーを通知します。インスタンスはそれ自身がインスタンスパラメータを持つことがあるため、この検索プロセスは再帰的であり、様々なインスタンスからのコードを組み合わせた最終的な合成インスタンス値になる可能性があります。このように型クラスのインスタンス統合は型指向の流儀によるプログラムを構築する手段でもあります。
128+
通常の多相定義は単に任意のパラメータでインスタンス化されることを想定していますが、型クラスでオーバーロードされる演算子は特定のパラメータセットに対してオーバーロードされる演算を定義する {deftech}_インスタンス_ (instance)としてインスタンス化されます。これらの {deftech}[インスタンス暗黙] (instance-implicit)パラメータは角括弧で示されます。呼び出しの際において、Lean は利用可能な候補から適切なインスタンスを {deftech key:="synthesis"}_統合_ {index}[instance synthesis] {index subterm:="of type class instances"}[synthesis] (synthesize)するかエラーを通知します。インスタンスはそれ自身がインスタンスパラメータを持つことがあるため、この検索プロセスは再帰的であり、様々なインスタンスからのコードを組み合わせた最終的な合成インスタンス値になる可能性があります。このように型クラスのインスタンス統合は型指向の流儀によるプログラムを構築する手段でもあります。
129129

130130
:::comment
131131
Here are some typical use cases for type classes:
@@ -210,7 +210,7 @@ The differences between structure and class declarations are:
210210

211211
: フィールドの代わりにメソッド
212212

213-
構造体型の値を明示的なパラメータとして受け取るフィールドの射影を作成する代わりに {tech}[メソッド] が作成されます。各メソッドは対応するインスタンスを暗黙のインスタンスのパラメータとして取ります
213+
構造体型の値を明示的なパラメータとして受け取るフィールドの射影を作成する代わりに {tech}[メソッド] が作成されます。各メソッドは対応するインスタンスをインスタンス暗黙のパラメータとして取ります
214214

215215
:::comment
216216
: Instance-implicit parent classes
@@ -221,9 +221,9 @@ The differences between structure and class declarations are:
221221

222222
:::
223223

224-
: 暗黙のインスタンスとしての親クラス
224+
: インスタンス暗黙としての親クラス
225225

226-
他のクラスを継承するクラスのコンストラクタは、明示的なパラメータではなくそのクラスの親のインスタンスを暗黙のインスタンスのパラメータとして受け取ります。このクラスのインスタンスが定義されると、継承されたフィールドの値を見つけるためにインスタンス統合が使用されます。クラスでない親は依然として基礎となるコンストラクタの明示的なパラメータになります。
226+
他のクラスを継承するクラスのコンストラクタは、明示的なパラメータではなくそのクラスの親のインスタンスをインスタンス暗黙のパラメータとして受け取ります。このクラスのインスタンスが定義されると、継承されたフィールドの値を見つけるためにインスタンス統合が使用されます。クラスでない親は依然として基礎となるコンストラクタの明示的なパラメータになります。
227227

228228
:::comment
229229
: Parent projections via instance synthesis
@@ -246,7 +246,7 @@ The differences between structure and class declarations are:
246246

247247
: クラスとして登録される
248248

249-
宣言の結果出来る帰納型は型クラスとして登録され、インスタンスの定義および暗黙のインスタンスの引数の型のために使用されます
249+
宣言の結果出来る帰納型は型クラスとして登録され、インスタンスの定義およびインスタンス暗黙の引数の型のために使用されます
250250

251251
:::comment
252252
: Out and semi-out parameters are considered
@@ -275,7 +275,7 @@ While {keywordOf Lean.Parser.Command.declaration}`deriving` clauses are allowed
275275
Lean rejects instance-implicit parameters of types that are not classes:
276276
:::
277277

278-
Lean はクラスでない型の暗黙のインスタンスのパラメータを拒否します
278+
Lean はクラスでない型のインスタンス暗黙のパラメータを拒否します
279279

280280
```lean (error := true) (name := notClass)
281281
def f [n : Nat] : n = n := rfl
@@ -375,7 +375,7 @@ C2.Magma.mk.{u} {α : Type u} (op : α → α → α) : C2.Magma α
375375
{name}`S.Semigroup.mk`, however, takes its parent as an ordinary parameter, while {name}`C2.Semigroup.mk` takes its parent as an instance implicit parameter:
376376
:::
377377

378-
しかし、 {name}`S.Semigroup.mk` はその親を通常のパラメータとして受け取る一方で、 {name}`C2.Semigroup.mk` は親を暗黙のインスタンスのパラメータとして受け取ります
378+
しかし、 {name}`S.Semigroup.mk` はその親を通常のパラメータとして受け取る一方で、 {name}`C2.Semigroup.mk` は親をインスタンス暗黙のパラメータとして受け取ります
379379

380380
```signature
381381
S.Semigroup.mk.{u} {α : Type u}
@@ -396,7 +396,7 @@ Finally, {name}`C2.Monoid.mk` takes its semigroup parent as an instance implicit
396396
The references to `op` become references to the method {name}`C2.Magma.op`, relying on instance synthesis to recover the implementation from the {name}`C2.Semigroup` instance-implicit parameter via its parent projection:
397397
:::
398398

399-
最後に、 {name}`C2.Monoid.mk` は暗黙のインスタンスのパラメータとして半群の親を取ります`op` への参照はメソッド {name}`C2.Magma.op` への参照になります。これは {name}`C2.Semigroup` の暗黙のインスタンスのパラメータから親の射影を経由して実装を復元するインスタンス統合に依存しています
399+
最後に、 {name}`C2.Monoid.mk` はインスタンス暗黙のパラメータとして半群の親を取ります`op` への参照はメソッド {name}`C2.Magma.op` への参照になります。これは {name}`C2.Semigroup` のインスタンス暗黙のパラメータから親の射影を経由して実装を復元するインスタンス統合に依存しています
400400

401401
```signature
402402
C2.Monoid.mk.{u} {α : Type u}

0 commit comments

Comments
 (0)