Учитывая следующие аксиомы:Учитывая несколько аксиом и свойство, как я могу структурировать доказательство свойства?
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