给定以下公理:
A>=0
forall n :: n>=0 && n<N1 ==> n < A
N1 >= A
N1==A
我们想用 Dafny来证明这一点。
我尝试过遵循 Dafny 程序:
function N1(n: int,A: int):bool
requires A>=0 && n>=0
{
if n==0 && A<=n
then true else
if n>0
&& A<=n
&& forall k::
(if 0<=k && k<n
then A>k else true)
then true
else false
}
lemma Theorem(n: int,A: int)
requires A>=0 && n>=0 && N1(n,A)
ensures n==A;
{ }
但达夫尼未能证明这一点。有没有办法N1==A
从给定的公理?