Functional programming 以下代码如何执行所需功能? 引理奇数| pred2n:forall n:nat,偶数.odd n->{p:nat | n=pred Div2.double p}。 引理偶数n:forall n,偶数n->{p:nat | n=double p}。 引理偶数奇数存在{p:nat | n=Div2.double p}+{p:nat | n=pred Div2.double p}。 证据 简介。 将偶数、偶数、奇数分解为[H_奇偶校验| H_奇偶校验]; [左;应用Div2.偶数\u 2n\u奇偶校验 |右;应用奇数pred2n H_奇偶校验]。 定义 定义nat_to_Z_i n:nat:= 匹配偶数\u奇数\u存在\u dec n |inl s=>设k,u:=s在k的Z_中 |inr s=>设k,:s在k的Zopp Z_中 终止
这个定义如何定义从nat到Z的注入?那么,什么是inl,inr,让我们在这里做什么?奇数pred2n接受一个自然数并证明它是奇数,然后返回该奇数自然数下半舍入的后继数,同时还证明double的前导数是原始奇数自然数 偶数2n取一个自然数并证明它是偶数,返回偶数自然数的一半,还证明double是原始偶数自然数 偶数-奇数-存在-决定一个自然数是偶数还是奇数,返回一半或一半的后继者,并证明double或double的前身是原始的 nat_to_Z_i执行以下映射Functional programming 以下代码如何执行所需功能? 引理奇数| pred2n:forall n:nat,偶数.odd n->{p:nat | n=pred Div2.double p}。 引理偶数n:forall n,偶数n->{p:nat | n=double p}。 引理偶数奇数存在{p:nat | n=Div2.double p}+{p:nat | n=pred Div2.double p}。 证据 简介。 将偶数、偶数、奇数分解为[H_奇偶校验| H_奇偶校验]; [左;应用Div2.偶数\u 2n\u奇偶校验 |右;应用奇数pred2n H_奇偶校验]。 定义 定义nat_to_Z_i n:nat:= 匹配偶数\u奇数\u存在\u dec n |inl s=>设k,u:=s在k的Z_中 |inr s=>设k,:s在k的Zopp Z_中 终止,functional-programming,coq,theorem-proving,Functional Programming,Coq,Theorem Proving,这个定义如何定义从nat到Z的注入?那么,什么是inl,inr,让我们在这里做什么?奇数pred2n接受一个自然数并证明它是奇数,然后返回该奇数自然数下半舍入的后继数,同时还证明double的前导数是原始奇数自然数 偶数2n取一个自然数并证明它是偶数,返回偶数自然数的一半,还证明double是原始偶数自然数 偶数-奇数-存在-决定一个自然数是偶数还是奇数,返回一半或一半的后继者,并证明double或double的前身是原始的 nat_to_Z_i执行以下映射 0 -> 0 1 ->
0 -> 0
1 -> - 1
2 -> 1
3 -> - 2
4 -> 2
5 -> - 3
6 -> 3
...
inl和inr是要求和的构造函数
如果s:{x:T | px},则s=x,H与x:T和H:px。设x,y:=z在f x y中等于:
匹配z
|x,y=>fxy
终止
以及:
匹配偶数\u奇数\u存在\u dec n
|inl s=>设k,u:=s在k的Z_中
|inr s=>设k,:s在k的Zopp Z_中
终止
相当于:
匹配偶数\u奇数\u存在\u dec n
|inl k,u=>Z_of_nat k
|inr k,=>Zopp Z_of_nat k
终止
Print sum.