Coq standard library의 목록 제거 기능을 사용하려고하지만 기괴한 입력을 요구하며 해결 방법을 모르겠습니다.목록 제거 기능 사용
는내가 구현하고있어 기능은 다음과 같이 람다 관점에서 자유 변수의 목록을 만드는 것입니다 :
Fixpoint fv (t : trm) : vars :=
match t with
| Var v => [v]
| App t1 t2 => (fv t1) ++ (fv t2)
| Abs x t' => remove x (fv t')
end.
을 그리고 그것은 나에게 다음과 같은 오류 제공 : 난
Error: In environment
fv : trm -> vars
t : trm
x : nat
t' : trm
The term "x" has type "nat" while it is expected to have type
"forall x0 y : ?171, {x0 = y} + {x0 <> y}".
을 remove 함수의 정의에서 그 위선 사물과 관련이 있는지 확실히 알 수 있습니다. 그래도 어떻게 대처해야할지 모르겠다. 함수는 제거
Hypothesis eq_dec : forall x y : A, {x = y}+{x <> y}.
은 (Print remove.
을 수행하여 볼 수있는) 제 인수로이 소요
이 가설의 요소 어떤지를 결정하는 함수는 :
아, 내가 가지고는 클래스 EqDec의 인스턴스와 함께 문제를 해결했다. 고마워. – pedroabreu