Попытка использовать Dafny в качестве CAS для проверки правильности некоторых алгебраических вычислений.Дафни делает хорошую работу, за исключением того, что он становится нестабильным для более длинных, не в состоянии проверить некоторые очень легкие шаги, даже когда кормят ложкой.
calc == {
// a dozen lines...
k * (a + b) * (a + b);
k * (a * a + b * b + 2 * a * b); // fails
}
Когда Дафни терпит неудачу там, я пытаюсь помочь ему, напрасно.
calc == {
// a dozen lines...
k * (a + b) * (a + b);
calc == {
(a + b) * (a + b);
a * a + b * b + 2 * a * b;
}
k * (a * a + b * b + 2 * a * b); // still fails
}
Я также пытался поместить замещенное выражение в переменную или даже в лемму, с тем же результатом.
Есть ли какой-нибудь способ сказать Дафни, какая частьВыражение, которое мы хотим заменить?