Нестабильные длинные расчеты - PullRequest
0 голосов
/ 24 июня 2018

Попытка использовать 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
}

Я также пытался поместить замещенное выражение в переменную или даже в лемму, с тем же результатом.

Есть ли какой-нибудь способ сказать Дафни, какая частьВыражение, которое мы хотим заменить?

...