Skip to content

Commit cc790db

Browse files
committed
Adding a changelog.
1 parent cce548b commit cc790db

1 file changed

Lines changed: 25 additions & 0 deletions

File tree

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
- **Changed:**
2+
:cmd:`Hint Unfold` in discriminated databases now respects its
3+
specification, namely that a constant may be unfolded only when
4+
it is the head of the goal. The previous behavior was to perform
5+
unfolding on any goal, without any limitation.
6+
7+
An unexpected side-effect of this was that a database that
8+
contained ``Unfold`` hints would sometimes trigger silent
9+
strong βι-normalization of the goal. Indeed, :tacn:`unfold`
10+
performs such a normalization regardless of the presence of its
11+
argument in the goal. This does introduce a bit of backwards
12+
incompatibility, but it occurs in very specific situations
13+
and is easily circumvented. Since by default hint bases
14+
are not discriminated, it means that incompatibilities are
15+
typically observed when adding unfold hints to the typeclass
16+
database.
17+
18+
In order to recover the previous behavior, it is enough
19+
to replace instances of ``Hint Unfold foo.``
20+
with ``Hint Extern 4 => progress (unfold foo).``. A less compatible but
21+
finer-grained change can be achieved by only adding the missing normalization
22+
phase with ``Hint Extern 4 => progress (lazy beta iota).``.
23+
(`#14679 <https://github.com/coq/coq/pull/14679>`_,
24+
fixes `#14874 <https://github.com/coq/coq/issues/14874>`_,
25+
by Pierre-Marie Pédrot).

0 commit comments

Comments
 (0)