CakeML / CakeML/cakeml

The translator accepts constants with preconditions

Open
#705 0 comments 0 reactions 0 assignees View on GitHub
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.