나는 linordered_field_class.frac_le
규칙을 Isar 증명으로 사용하려고합니다. 다음은 코드 조각입니다 (이전의 증명 부분에 따라 다를 수 있지만 이는 거의 없습니다). n
은 nat 유형입니다.'linordered_field_class.frac_le'규칙이 작동하지 않는 이유는 무엇입니까? (Isabelle)
...
then have 4:"2 ≤ (2^(n+1)::real)" by simp
have 1:"(0::real)≤(1::real)" by simp
have 2: "1≤(1::real)" by simp
have 3:"(0::real)≤(2::real)" by simp
from 1 2 3 4 have "1/(2^(n+1))≤1/(2::real)" by (rule linordered_field_class.frac_le)
나는 규칙을 올바르게 적용했다고 생각하지만 '증명을 완료하지 못했습니다.'라는 불만을 토로합니다. 나는 그것이 유형 오류일지도 모른다고 생각했기 때문에 :: real
의 과도 함을 고칠 수 있었지만 해결할 수 없었습니다. 누구든지 문제가 무엇인지, 문제를 해결하는 방법을 알고 있습니까? 또는 그런 종류의 성명을 증명할 수있는 또 다른 방법입니다.