aboutsummaryrefslogtreecommitdiff
path: root/doc/changelog/01-kernel/09918-unsound-template-polymorphism.rst
diff options
context:
space:
mode:
Diffstat (limited to 'doc/changelog/01-kernel/09918-unsound-template-polymorphism.rst')
-rw-r--r--doc/changelog/01-kernel/09918-unsound-template-polymorphism.rst30
1 files changed, 0 insertions, 30 deletions
diff --git a/doc/changelog/01-kernel/09918-unsound-template-polymorphism.rst b/doc/changelog/01-kernel/09918-unsound-template-polymorphism.rst
deleted file mode 100644
index 87e89a70f1..0000000000
--- a/doc/changelog/01-kernel/09918-unsound-template-polymorphism.rst
+++ /dev/null
@@ -1,30 +0,0 @@
-- Fix soundness issue with template polymorphism (`#9294
- <https://github.com/coq/coq/issues/9294>`_)
-
- Declarations of template-polymorphic inductive types ignored the
- provenance of the universes they were abstracting on and did not
- detect if they should be greater or equal to :math:`\Set` in
- general. Previous universes and universes introduced by the inductive
- definition could have constraints that prevented their instantiation
- with e.g. :math:`\Prop`, resulting in unsound instantiations later. The
- implemented fix only allows abstraction over universes introduced by
- the inductive declaration, and properly records all their constraints
- by making them by default only :math:`>= \Prop`. It is also checked
- that a template polymorphic inductive actually is polymorphic on at
- least one universe.
-
- This prevents inductive declarations in sections to be universe
- polymorphic over section parameters. For a backward compatible fix,
- simply hoist the inductive definition out of the section.
- An alternative is to declare the inductive as universe-polymorphic and
- cumulative in a universe-polymorphic section: all universes and
- constraints will be properly gathered in this case.
- See :ref:`Template-polymorphism` for a detailed exposition of the
- rules governing template-polymorphic types.
-
- To help users incrementally fix this issue, a command line option
- `-no-template-check` and a global flag :flag:`Template Check` are
- available to selectively disable the new check. Use at your own risk.
-
- (`#9918 <https://github.com/coq/coq/pull/9918>`_, by Matthieu Sozeau
- and Maxime Dénès).