summaryrefslogtreecommitdiff
path: root/COMPATIBILITY
diff options
context:
space:
mode:
Diffstat (limited to 'COMPATIBILITY')
-rw-r--r--COMPATIBILITY114
1 files changed, 48 insertions, 66 deletions
diff --git a/COMPATIBILITY b/COMPATIBILITY
index 30f5daf8..09b72e92 100644
--- a/COMPATIBILITY
+++ b/COMPATIBILITY
@@ -1,72 +1,54 @@
-Potential sources of incompatibilities between Coq V8.1 and V8.2
+Potential sources of incompatibilities between Coq V8.2 and V8.3
----------------------------------------------------------------
(see also file CHANGES)
+The main incompatibilities between 8.2 and 8.3 are the following
+
+- When defining objects using tactics as in "Definition f binders :
+ type.", the binders are automatically introduced in the context. The
+ former behavior can be restored by using "Unset Automatic
+ Introduction" (for local modification) or "Global Unset Automatic
+ Introduction" (for inheritance through Require).
+
+- For setoid rewriting, Morphism has been renamed into Proper.
+
+In general, most sources of incompatibilities can be avoided by
+calling coqtop or coqc with option "-compat 8.2". The sources of
+incompatibilities listed below must however be treated manually.
+
+Syntax
+
+- The word "by" is now a keyword and can no longer be used as an identifier.
+ [Semantics, IEEE754]
+
+Type inference
+
+- Many changes in using classes. [ATBR]
+
+Library
+
+- New identifiers of the library can hide identifiers. This can be
+ solved by changing the order of Require or by qualifying the
+ identifier with the name of its module. [Stalmarck]
+
+- Reorganisation of library (esp. FSets, Sorting, Numbers) may have
+ moved or removed names around. [FundamentalArithmetics, CoLoR,
+ Icharate, AMM11262, FSets, FingerTree]
+
+- Infix notation "++" has now to be set at level 60. [LinAlg]
+
+- When using Program (refl_equal and Vnil have maximal implicit
+ arguments, lemmas about measure have a different form, ...).
+
Tactics
-- The apply tactic now unfolds the constants if needed to succeed. As
- a consequence, use of "try apply" or "repeat apply" or "apply" in
- other Ltac potentially backtracking code may behave differently. Use
- "simple apply" instead.
-
-- Add Relation and Add Morphism on polymorphic relations should now be
- declared with Add Parametric Relation and Add Parametric Morphism.
-
-- The constant [flip] is automatically unfolded in the goals generated by
- Add Morphism (incompatibility with 8.2 beta versions).
-
-- The default relation chosen by setoid_replace may differ. The
- workaround is to enforce the choice of the setoid relation with the
- "using relation ..." option.
-
-- The ordering of subgoals generated by setoid_rewrite and
- setoid_replace tactics has been changed. Some reordering in the
- proof script may be necessary. You may also use the 'by ...' option
- of setoid_replace and setoid_rewrite.
-
-- The definition of Setoid_Theory has changed. When using the
- constructors of the structure, you need to unfold the definitions
- Reflexive, Symmetric, and Transitive.
-
-- The names of bound variables of theorems generated by Add Morphism
- differs, which may cause some problems with scripts that do not name
- variable when perform introductions. Changing intros to the
- appropriate intro x x0 ... xn should fix the problem.
-
-- Tactic firstorder "with" and "using" options have their meaning
- swapped for consistency with auto/eauto. The solution is to swap
- the use of these options in call to firstorder.
-
-- Introduction patterns are more strict. In "intros [ ... | ... | ... ] H",
- the names in the brackets are synchronized so that H denotes the same
- hypothesis in every subgoal.
-
-- Application patterns with a meta variable in function position (?X ?Y) now
- match arbitrary applications as expected. Use a nested
- [match X with (_ _) => fail 1 | _ => ..] to recover the old semantics.
-
-- Some bug fixes may lead to incompatibilities (see CHANGES for a detailed
- account).
-
-Language
-
-- Type Class syntax has completely since the 8.2beta versions. See the
- documentation for the updated syntax.
-
-- Constants hidding polymorphic inductive types are now polymorphic
- themselves. This may exceptionally 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.
-
-Libraries
-
-- Some changes in the library (as mentioned in the CHANGES file) may
- imply the need for local adaptations. This may particularly be the
- case with the move from Set to Type in libraries FSets, SetoidList,
- ListSet, Sorting and Zmisc. In case of trouble it may help to simply
- declare Set as an alias for Type (see file SetIsType).
-
-For the main changes in the ML interfaces, see file
-dev/doc/changes.txt in the main archive.
+- The synchronization of introduction names and quantified hypotheses
+ names may exceptionally lead to different names in "induction"
+ (usually a name with lower index is required). [Automata]
+
+- More checks in some commands (e.g. in Hint) may lead to forbid some
+ meaningless part of them. [CoLoR]
+
+- When rewriting using setoid equality, the default equality found
+ might be different. [CoRN]