Я написал свою собственную тривиальную небольшую функцию (php для удобства) и надеялся, что кто-то может помочь структурировать доказательство по индукции для нее, так что я могу получить очень простой вид этого.доказательство правильности с помощью петлевого инварианта (индукция)
function add_numbers($max) {
//assume max >= 2
$index=1;
$array=array(0);
while ($index != $max) {
//invariant: ∀ k:1 .. index-1, array[k]=array[k-1]+1
$array[$index] = $array[$index-1]+1;
$index += 1;
}
}
В результате того, что значение в каждом индексе такой же, как и сам индекс, но только потому, что [0] был инициализирован в 0.
Я считаю, что цель (или должна быть) чтобы доказать, что инвариант (который сам по себе может быть подозрительным, но, надеюсь, получает точку), выполняется для k + 1.
Благодарности
редактировать: примеры: http://homepages.ius.edu/rwisman/C455/html/notes/Chapter2/LoopInvariantProof.htm
Я не знаю, что означает «доказательство по индукции». Если вы можете объяснить, может быть, я могу помочь ... –
@ J.Bruni, см. [На этой странице Википедии] (http://en.wikipedia.org/wiki/Mathematics_induction) о доказательстве по индукции. – Arjan