aboutsummaryrefslogtreecommitdiffhomepage
path: root/COMPATIBILITY
blob: b5d94d584b38e4613d21e584e310fa6b4f7b4b51 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Potential sources of incompatibilities between Coq V8.0 and V8.1
----------------------------------------------------------------

(see also file CHANGES)

Language

- Inductive types in Type are now polymorphic over their parameters in
  Type. This may affect the naming of introduction hypotheses if such
  an inductive type in Type is used on small types such as Prop or
  Set: the hypothesis names suffix will default to H instead of X.  As
  a matter of fact, it is recommended to systematically name the
  hypotheses that are later refered to in the proof script.

Tactics

- Some bug fixes may lead to incompatibilities. This is e.g. the case
  of inversion on Type which failed to rewrite some hypotheses as it
  did on Prop/Set.

- Add Morphism for the Prop/iff setoid now requires a proof of
  biimplication instead of a proof of implication.

- The order of arguments in compatibility morphisms changed: the
  premises and the parameters are now interleaved while the whole
  bunch of parameters used to come first.

- The previous implementation of the ring and field tactics are
  maintained but their name changed : require modules "LegacyRing" or
  "LegacyField" and globally replace calls to "ring" and "field" by
  calls to "legacy ring" and "legacy field".

- Users ready to benefit of the power of the new implemetations have
  to know that

  - most of the time, ring solves goals similarly and often faster;
  - if not, it may be because the old ring did some automatic unfold;
    they now have to be done separately (by hand or using ltac);
  - most of the time, field solvesp goals similarly but much faster but
    there are usually less side conditions to prove;
  - to simplify expressions, use now ring_simplify and field_simplify;
  - simplifications are most of the time different: the new results are
    more natural but they may require some adaptation of proof scripts;
  - the Ring library no longer imports the Bool library (you may have
    to explicitly request a "Require Import Bool");
  - to declare new rings and fields, see the documentation.

Libraries

- A few changes in the library (as mentioned in the CHANGES file) may
  imply the need for local adaptations.

- Occurrence numbering order for unfold, pattern, etc changed for the
  match construction: occurrences in the return clause now come after
  the occurrences in the term matched; this was the opposite before.

For changes in the ML interfaces, see file dev/doc/changes.txt in the
main archive.