1
我想爲二進制自然數(位列表)定義前驅函數。我想限制我的函數輸入到被修剪的數字(沒有前導零)並且是正數(所以,我不必擔心零的前任)。重寫相關函數
這是運營商pred
的定義:
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.
我的首要義務是如下:
nat1: Nat
H1: is_trim nat1 = True
H2: is_pos nat1 H1 = True
H3: Empt = nat1
______________________________________(1/1)
Nat
但是,我不知道如何解決它。
矛盾很明顯在H2
。但是,因爲它取決於H1
,所以我不能只用rewrite nat1
用Empt
,然後用(is_pos Empt H1)
用False
。
我該如何證明這一點?
另外,'dependent-types'應該是一個標籤。 – user1494846
'dependent-type'(單數)是一個標籤。 – sepp2k
我剛剛注意到這個目標是「微不足道的」。 (-_-')不過,我想知道如何通過手工解決它,以防我陷入類似但更復雜的情況。 – user1494846