The translator accepts constants with preconditions
Open
translator
- Dominant language
- Standard ML
- Stars
- 1.2k
- Forks
- 104
- Avg merge
- 2d 21h
- Merged PRs (30d)
- 16
Description
The translator accepts constants with preconditions, and duplicates preconditions:
```sml
> val foo_def = Define` foo = 5 DIV 0`;
Definition has been stored under "foo_def"
val foo_def = [] ⊢ foo = 5 DIV 0: thm
```
```sml
> val th = translate foo_def;
Translating foo
WARNING: foo has a precondition.
val th = [foo_side, PRECONDITION foo_side] ⊢ NUM foo foo_v: thm
```
What's worse, the precondition also leaks into the theorem produced by `ml_progLib`:
```sml
> get_ml_prog_state() |> ml_progLib.get_thm;
val it = [foo_side] ⊢ ... ... [... ] (scratch_st ffi): thm
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.