이것은 약간 이론적 인 질문입니다. 하나는 f
및 f
가있다 (또는 예정) 것을 x
에서 증명할 수 등의 방법으로Coq : 응용 프로그램 증명
Function fx {A} (x:A) (f:A->Type) (g:Type->f x): f x := g (f x).
Definition fx' {A} (x:A) (f:A->Type): f x.
, 이것은 의미가 x
에 적용 : 우리는 겉으로하지 fx'
fx
하지만를 정의 할 수 있습니다.
assert (h := f x).
이 수수께끼 같다 : 그러나 우리는 유형 Type
의 무언가를 얻을 수 x
에 f
을 적용 할 수 있습니다 하나는 그가 그렇게 한 증인 y: f x
를 얻을 수 없습니다 f
x
에 여전히 을 적용 할 수 있습니다.
내가 생각할 수있는 유일한 설명은 다음과 같습니다. 유형으로 f x
은 용어로, 단지 유형입니다. 우리는 한 유형에서 과거의 응용 프로그램을 추론 할 수 없습니다. 유사하게, 우리는 함수와 그 잠재적 인 논증으로부터 미래의 응용을 추론 할 수 없다. 스스로 적용하는 (예를 들면) 증거의 단계가 아니기 때문에 증거를 얻을 수 없습니다. 그러나 나는 단지 짐작하고있다. 질문 :
fx'
을 정의 할 수 있습니까? 그렇다면 어떻게? 아니, 왜
여기서'Function fx'는 실제로 필요하지 않습니다.'Definition fx' 역시 작동 할 것입니다. –
예 (둘 다 사용했음을 보여주기 위해 둘 다 사용했습니다) – jaam