2015-01-23 2 views
0

에서 일반적인 정의 작업과 나는 보조 정리가 해결내가 제한하고 있어요 이자벨

definition func :: "real ⇒ real" 
where "func x = x" 

에 FUNC의 정의를 교체하면 나는 그러나 다음

definition func :: "real ⇒ real" 
where "func = real" 

lemma "(λh. (func (x+h))) -- 0 --> (func (x))" 
unfolding func_def 
apply (auto intro!: tendsto_eq_intros) 

을 증명 드릴 수 없습니다.

일반 정의로 작업 할 때 어떻게이 보조 정리를 해결할 수 있습니까?

답변

1

여기에 문제는 real 함수가 일반적인 (오버로드 된) 구문 즉 real :: 'a => real을 갖고 있지만 가능한 모든 유형 'a에 대해 정의 된 것은 아니라고 생각합니다. 이것은 find_theorems을 사용할 때 쉽게 볼 수 있습니다. real :: nat => real에서 보조 정리를 검색 할 때 real :: real => real을 검색하면 많은 결과를 얻지 만 단일 결과는 얻지 못합니다. 이 real :: real => real 정말 신원 기능이라고 지정되지 않기 때문에

find_theorems "real :: real => real" 
find_theorems "real :: nat => real" 

따라서, 당신도, func x = x 같은 간단한 보조 정리를 증명할 수 없습니다.

+0

함수의 정의를 펼치지 않고 보조 정리를 풀 수는 없습니까? – creator22