Skip to content

Commit

Permalink
definitional equalityの訳修正 (#14)
Browse files Browse the repository at this point in the history
  • Loading branch information
s-taiga authored Nov 4, 2024
1 parent c0a76d5 commit 1d3ae6f
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions lean/main/04_metam.lean
Original file line number Diff line number Diff line change
Expand Up @@ -290,7 +290,7 @@ Its arguments are:
--#--
- `type?`:新しいメタ変数のターゲットの型。`none` の場合、ターゲットの型は `Sort ?u` となります。ここで `?u` は宇宙レベルのメタ変数です。(これは宇宙レベルのメタ変数の特別なクラスであり、これまで単に「メタ変数」と呼んできた式についてのメタ変数とは区別されます。)
- `kind`:メタ変数の種(kind)。詳しくは [メタ変数の種](#定義上の同値) [^fn1] を参照してください(通常はデフォルト値が正しいです)。[^fn1]
- `kind`:メタ変数の種(kind)。詳しくは [メタ変数の種](#定義上の等しさ) [^fn1] を参照してください(通常はデフォルト値が正しいです)。[^fn1]
- `userName`:新しいメタ変数のユーザが目にする名前。これはメタ変数がゴールに現れる際に表示されるものになります。`MVarId` と異なり、この名前は一意である必要はありません。
--#--
Expand Down Expand Up @@ -680,7 +680,7 @@ The `myAssumption` tactic contains three functions we have not seen before:
--#--
- `Lean.MVarId.checkNotAssigned` はメタ変数がすでに割当済みかどうかチェックします。上記で渡している「myAssumption」引数は現在のタクティクの名前です。これはより良いエラーメッセージを生成するために使用されます。
- `Lean.Meta.isDefEq` は2つの定義が定義上等しいかどうかをチェックします。詳細は [定義上の同値の節](#定義上の同値) を参照してください。
- `Lean.Meta.isDefEq` は2つの定義が定義上等しいかどうかをチェックします。詳細は [定義上の等しさの節](#定義上の等しさ) を参照してください。
- `Lean.LocalDecl.toExpr` はローカルの仮定に対応する `fvar` 式を構築する補助関数です。
--#--
Expand Down Expand Up @@ -1249,15 +1249,15 @@ ourselves.
### Definitional Equality
--#--
### 定義上の同値
### 定義上の等しさ
--#--
As mentioned, definitional equality is equality up to computation. Two
expressions `t` and `s` are definitionally equal or *defeq* (at the current
transparency) if their normal forms (at the current transparency) are equal.
--#--
前述したように、定義上の同値は計算においての同値です。2つの式 `t` と `s` は(現在の透過度において)正規形が等しい場合、定義上等しい、もしくは **defeq** となります。
前述したように、定義上の等しさは計算においての同値です。2つの式 `t` と `s` は(現在の透過度において)正規形が等しい場合、定義上等しい、もしくは **defeq** となります。
--#--
To check whether two expressions are defeq, use `Lean.Meta.isDefEq` with type
Expand All @@ -1280,7 +1280,7 @@ reduce `s` and `t` so often that they end up in normal form anyway. But usually
the heuristics are good and `isDefEq` is reasonably fast.
--#--
定義上の同値は正規形で定義されていますが、実際には `isDefEq` は非常に高価になりうる引数の正規形の計算をすることはありません。その代わりに、`t` と `s` をできるだけ少ない簡約で「一致」させようとします。これは必然的に発見的な試みであり、この発見的な試みが失敗すると `isDefEq` は非常に高価になる可能性があります。最悪の場合、`s` と `t` を頻繁に簡約しなければならず、結局正規形になってしまうこともあります。しかし、通常はこの発見的な手法はうまく働き、`isDefEq` はそれなりに高速です。
定義上の等しさは正規形で定義されていますが、実際には `isDefEq` は非常に高価になりうる引数の正規形の計算をすることはありません。その代わりに、`t` と `s` をできるだけ少ない簡約で「一致」させようとします。これは必然的に発見的な試みであり、この発見的な試みが失敗すると `isDefEq` は非常に高価になる可能性があります。最悪の場合、`s` と `t` を頻繁に簡約しなければならず、結局正規形になってしまうこともあります。しかし、通常はこの発見的な手法はうまく働き、`isDefEq` はそれなりに高速です。
--#--
If expressions `t` and `u` contain assignable metavariables, `isDefEq` may
Expand Down

0 comments on commit 1d3ae6f

Please sign in to comment.