Skip to content

Conversation

@strub
Copy link
Member

@strub strub commented May 25, 2025

When abstracting out a construction that is not translatable into SMT, make the abstraction symbol depends on the local variables.

If not, the translation is unsound by making the translated constructions a constant. For example, the following (where G will be abtracted):

fun x => G[x]

is translated into

fun x => fresh-constant

…ions)

When abstracting out a construction that is not translatable into SMT,
make the abstraction symbol depends on the local variables.

If not, the translation is unsound by making the translated constructions
a constant. For example, the following (where G will be abtracted):

```
fun x => G x
```

is translated into

```
fun x => fresh-constant
```
@strub strub requested review from bgregoir and oskgo May 25, 2025 07:20
@strub strub self-assigned this May 25, 2025
@strub strub added the bug label May 25, 2025
@strub strub linked an issue May 25, 2025 that may be closed by this pull request
@strub
Copy link
Member Author

strub commented May 25, 2025

There is still an issue here: translations are cached globally and we insert terms that depend on the local context. This might lead to issues.

@strub strub changed the title Fix bug in SMT translation (abstraction of non-translatable construct… Fix bug in SMT translation (abstraction of non-translatable constructions May 25, 2025
@strub strub changed the title Fix bug in SMT translation (abstraction of non-translatable constructions Fix bug in SMT translation (abstraction of non-translatable constructions) May 25, 2025
Copy link
Contributor

@oskgo oskgo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My larger example now fails as it should. 👍

@strub strub merged commit 34545e5 into main May 26, 2025
15 checks passed
@strub strub deleted the fix-779 branch May 26, 2025 15:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

unsound interaction between smt and globals

4 participants