PortingToCoqV8.7
root edited this page Oct 11, 2017
·
3 revisions
Coq 8.7 has a few incompatibilities with 8.6. We list the main sources of changes
- Change in the representation of constants in library Reals
- Typical consequences:
4
is not any more2*2
,3
is not any more2+1
,-1
is now different from-(1)
- expressions of the form
(-x)%R
hide a non-simplifiable coercionIZR
; they do not simplify anymore; insteadunfold IZR; rewrite <- INR_IPR
-
auto with real
now solve all inequations between constants (e.g.5<=7
)
- Typical consequences:
- Fix of
rewrite ... in *
There are may changes documented in dev/doc/changes.txt
. The one empirically requiring the most updating are the following:
- New level of abstraction
EConstr
, documented indev/doc/econstr.md
. Typical changes to do in plugins:- replacing
open Term
withopen EConstr
- add a
sigma
to various functions now expecting it, e.gdependent
(for old-style goals, get asigma
withTacmach.project
) - replacing
kind_of_term
withkind sigma
- replacing
Constr.equal
withEConstr.eq_constr sigma
- change
pr_lconstr
intopr_leconstr
- change
fold_constr
withfor_constr sigma
- replacing
- Few changes in the representation of
constr_expr
and related-
CLetIn
has now an explicit argument for the optional type -
LocalRawAssum
andLocalRawDef
are nowCLocalAssum
andCLocalDef
-
To the extent possible under law, the contributors of “Cocorico!, the Coq wiki” have waived all copyright and related or neighboring rights to their contributions.
By contributing to Cocorico!, the Coq wiki, you agree that you hold the copyright and you agree to license your contribution under the CC0 license or you agree that you have permission to distribute your contribution under the CC0 license.