FStarLang / FStarLang/pulse

Imprecise logical context in the match branch (cannot prove that the scrutinee is not a data constructor that is matched before this branch)

Open
#265 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
36
Forks
11
PR merge metrics
No merged PRs in 30d

Description

```
noeq
type t =
| A : t
| B : t

fn test (x:t)
requires emp
ensures emp
{
match x {
A -> {
()
}
_ -> {
assert (pure (~ (A? x)))
}
}
}
```

Contributor guide

No contributing guide indexed for this repository

Research direction

The issue provides no file or test path; start by reproducing the supplied Pulse match example and inspect the handling of logical context in the match branch. Done means the assertion that x is not A is provable in the wildcard branch, with a regression test for this example.

Written by the indexing model from the issue text.

Assessment

Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.