WindowsのAgda 2.5.1.1では、以下のコードをロードした後(チュートリアルhttps://github.com/k0001/tut-agda/blob/master/SetsParametric.agdaに対応)、Cc Cdの型チェックで[]
の型がList₁ _A_2 _B_3
になります式はtrue ∷ []
のような構造化された式には合理的な型はなく、アンダースコアと数字だけが返されます(_5
など)。どのような理由があるのでしょうか?agda - 相互式の式の型が見つかりません
以前のチュートリアルの演習はうまくいきました。
module Sets.Parametric where
open import Sets.Enumerated using (Bool; true; false; ⊤; tt)
data List₁ (A B : Set) : Set
data List₂ (A B : Set) : Set
data List₁ (A B : Set) where
[] : List₁ A B
_∷_ : A → List₂ A B → List₁ A B
data List₂ (A B : Set) where
_∷_ : B → List₁ A B → List₂ A B
ありがとうございます。もう1つのこと - 特定のタイプに対する式のチェックがどのように実行されるかはわかりません。 _C-c C-d_はここでは使用できません。 – veeco
@veeco、最良の選択肢は、私が思うに、 'test:A; test = x'をコード内のバッファに挿入します。 (関数)モジュールからの定義(または、関数モジュールからのインポート)のような他のオプションがあります:∀{α} - >(A:Setα) - > A - > A; A∈x = x'を評価してから 'C-c C -n A∈x'を評価するが、この方法では、値が実際にタイプに対して首尾良くタイプチェックを行うことは必ずしも明らかではない。 Agdaの最近のバージョンでは、 '_:A;チェックを実行したいだけで、名前をバインドしない場合は、「_ = x」と入力します。 – user3237465
ありがとう、私はあなたの助言から最も簡単な変形を使用しました: 'test:List1 Bool⊤; test = true∷(tt∷[]) 'を実行し、コマンド_C-c C-d test_が期待した答えを返しました。 – veeco