Мне интересно, существует ли какое-либо правило/схема работы с проверкой правильности алгоритма? Например, мы имеем функцию $F $, определенную на натуральных числах и определяемую ниже:
function F(n,k)
begin
if k=0 then return 1
else if (n mod 2 = 0) and (k mod 2 = 1) then return 0
else return F(n div 2, k div 2);
end;
где $n\\ text {div}\2 =\left\lfloor\frac {n} {2}\right\rfloor $
задача состоит в том, чтобы доказать, что $F (n, k) =\begin {cases} 1\Leftrightarrow {n\select k}\\ text {mod}\2 = 1\0\text {other}\end {cases} $
Это не выглядит очень сложным (я не прав?), но я не знаю, как это должно быть структурировано. Я был бы очень благодарен за помощь.