1
を考えると、次の公理は:いくつかの公理とプロパティが与えられている場合、プロパティの証明をどのように構造化するのですか?
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;
{ }
しかしDafnyはそれを証明するために失敗しました。与えられた公理からN1==A
への道はありますか?
おかげであなたの答えのために多くのことを。私はアサーションA Tom
これは矛盾による証明です。私はif文を使って仮定を行い、次にfalseに相当するもの、この場合A lexicalscope
https://en.m.wikipedia.org/wiki/Reductio_ad_absurdum – lexicalscope