Open atomb opened 9 years ago
This should be a saw-core
ticket. Closing and re-opening there.
This was originally re-opened as GaloisInc/saw-core#18, which was accidentally closed when the saw-core-coq
repo was merged into saw-core
(by a commit that had closed saw-core-coq
issue 18).
Anyway, this issue has never been addressed, and we need this feature as much as ever. Building ill-typed saw-core terms is still very much a problem, and having a certified term type would help us avoid such situations, or at least to detect them much earlier.
See the comments on GaloisInc/saw-core#18 for some ideas about how such a feature could be implemented.
Currently, it's possible to construct
SharedTerm
objects in SAWScript that are not well-typed. They can be checked after the fact, but this can be expensive for large terms. Better would be to have an abstract type for terms that are guaranteed to be well-typed, along with functions to combine them with the minimum additional checking to ensure that the result is well-typed.