gobra icon indicating copy to clipboard operation
gobra copied to clipboard

Disallows impure non-ghost calls in ghost code

Open ArquintL opened this issue 1 year ago • 0 comments

This PR depends on PR #747 and should thus only be reviewed & merged afterwards.

This PR checks that ghost code does not contain calls to non-ghost impure functions. Note that calling non-ghost pure functions is fine due to the absence of side effects. To support implementation proofs, this PR makes interface & closure implementation proofs non-ghost. Technically, we would need to distinguish between implementation proofs for a ghost or non-ghost member but due to the syntax restrictions for implementation proofs, we do not have to make this distinction (e.g., assignments are disallowed).

Fixes #420

ArquintL avatar Mar 28 '24 14:03 ArquintL