功能递归地查找并从具有整数元素 Min(A, b, e)
if (b=e)
return A[b]
m = (b+e)/2 // floor is taken
x = Min(A, b, m)
y = Min(A, m +1, e)
If(x < y)
return x
else
return y
我的前提是一个阵列返回的最小元素:b和e为大于零的整数
我想在Coq中定义一个名为interval的函数,给定两个自然数计算这两个之间的所有自然数的列表。但是我的定义不是原始递归的。这里是我的代码: 正如你所看到的,我正在使用有根据的递归关于间隔的长度。我将这个度量定义为这个值,即S n - m。 我希望被要求证明forall m, n, true = m <= n -> S n - S m < S n - m 但是,我得到的证明义务并不像这一点,是相
我想证明nat的高斯定理。 在普通(非精确)语言,它说:如果a划分b*c和无的a的因素是在b那么它们必须全部在c。 Require Import NPeano.
Theorem Gauss_nat: forall (a b c:nat), gcd a b = 1 -> (a | (b*c)) -> (a | c).
定理已经为整数Z定义,见here in the Coq manual。但我需
我想写一个函数来计算Coq中的自然分割,并且由于它不是结构递归,所以我在定义它时遇到了一些麻烦。 我的代码是: Inductive N : Set :=
| O : N
| S : N -> N.
Inductive Bool : Set :=
| True : Bool
| False : Bool.
Fixpoint sum (m :N) (n
我刚开始玩idris和定理证明一般。我可以在互联网上查看大部分基本事实证明的例子,所以我想尝试我自己的任意东西。所以,我想要写一个证明长期在地图的以下基本属性: map : (a -> b) -> List a -> List b
prf : map id = id
直觉,我能想象的证明应如何工作:取一个任意列表L和分析地图ID L中的可能性。当l空着时,很明显;当 l非空时,它基于函数应用