Commit 34545e5
committed
Fix bug in SMT translation (abstraction of non-translatable constructions)
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
```1 parent 508436e commit 34545e5
1 file changed
+11
-3
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
913 | 913 | | |
914 | 914 | | |
915 | 915 | | |
916 | | - | |
| 916 | + | |
917 | 917 | | |
918 | 918 | | |
919 | 919 | | |
| 920 | + | |
| 921 | + | |
| 922 | + | |
| 923 | + | |
| 924 | + | |
| 925 | + | |
| 926 | + | |
| 927 | + | |
920 | 928 | | |
921 | 929 | | |
922 | 930 | | |
923 | 931 | | |
924 | 932 | | |
925 | | - | |
926 | | - | |
| 933 | + | |
| 934 | + | |
927 | 935 | | |
928 | 936 | | |
929 | 937 | | |
| |||
0 commit comments