Dafny - 在 if 语句中调用方法?

Dafny - Call methods inside if statements?

正如标题所说,我想调用一个方法来修改另一个方法的 if 语句中的一些变量,例如:

method A
...
{
    ... // Modifies some variables
}

method B
...
{
    ...
    if(statement){
        A();
    }
    ...
}

这不起作用,因为 Dafny 不允许以这种方式调用非 ghost 方法。此问题的解决方法是什么?

想通了,可以将其转换为临时 bool 变量,然后在表达式中使用 bool 变量:

    ...
var boolean:bool;
boolean := expression();
is(boolean){
    ...
}
    ...