1
이진 자연수 (비트 목록)에 대한 선행 함수를 정의하려고합니다. 나는 내 함수의 입력을 자르거나 (0을 갖지 않고) 양수인 숫자로 제한하고자한다. 그래서 이전의 0을 걱정할 필요가 없다. 나는 그것을 해결하는 방법을 모른다,의존 함수 재 작성
nat1: Nat
H1: is_trim nat1 = True
H2: is_pos nat1 H1 = True
H3: Empt = nat1
______________________________________(1/1)
Nat
그러나 :
Program Fixpoint pred (nat1: Nat) (H1: is_trim nat1 = True) (H2: is_pos nat1 H1 = True): Nat :=
match nat1 with
| Empt => _
| Fill Zer nat2 => Fill One (pred nat2 H1 H2)
| Fill One nat2 => Fill Zer nat2
end.
나의 첫번째 의무는 다음과 같다 : 여기
운영자pred
의 정의입니다.
모순은 분명히 H2
에 있습니다. 하지만, H1
에 따라 다르므로 을 Empt
으로 설정 한 다음 (is_pos Empt H1)
을 False
으로 설정할 수 없습니다.
어떻게 증명해야합니까?
또한 'dependent-types'는 태그 여야합니다. – user1494846
'dependent-type' (단수)은 태그입니다. – sepp2k
방금이 목표가 '사소한'것으로 나타났습니다. (-_- ') 그래도 나는 비슷하지만 좀 더 복잡한 것으로 비틀 거린 경우를 대비해서 손으로 해결하는 법을 알고 싶다. – user1494846