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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
Métathéorie
- Ajout de définitions locales (Let-In)
Parsing
- Le Lexeur considère maintenant comme token toute suite de symboles.
- "command" in grammars and quotations is now "constr" as in
pretty-printing rules
Syntaxe des constructions
- Consecutive as in patterns are forbidden
- Names generated in Cases are different (source d'incompatibilité)
Consecutive 'as' in patterns are forbidden
- Davantage d'inférence automatique de "?".
- Davantage d'arguments implicites engendrés par le discharge.
- Les cas des Cases ne se lisent plus de manière séquentielle, sauf en
cas de clauses par défaut redondantes auquel cas la première est prise
avec un avertissement.
Vernac
- Ajout de la syntaxe "[" phrase_1 ... phrase_n"]." pour grouper des
phrases (utile pour Time et pour des grammaires abrégeant plusieurs
commandes)
- Le parseur par défaut des actions des règles de grammaires et des
motifs des règles d'affichage est maintenant celui associé au nom de
la grammaire (vernac, tactic ou constr). Donc plus de piquants
<:vernac:<...>> etc. Pour retourner de l'ast, il faut typer
explicitement la grammaire avec "ast" ou "List" (renommé d'ailleurs
"ast list"), ou, si c'est dans une règle Syntax, utiliser la quotation
<< ... >> qui replace dans ast. Pour les nouvelles grammaires (autre
que les 3 primitives), on peut typer avec "constr", "tactic", ou
"vernac" pour utiliser le parseur correspondant.
- AddPath -> Add Path;
Print LoadPath -> Print Path;
DelPath -> Remove Path;
Print Path -> Print Coercion Paths.
- Bug affichage Infix corrigé
- Légère restriction de la syntaxe de Cbv Delta
- L'option [-myconst] de Cbv doit immédiatement suivre Delta
- End Silent etait interprete comme une fin de section
Begin Silent -> Set Silent
End Silent -> Unset Silent.
- Déclaration manuelle des implicites avec
Implicits ident.
Implicits ident [ num num ... num ].
Petit changement de sémantique : lors de la fermeture d'une section,
les implicites sont calculés selon la valeur *courante* de "Implicit
Arguments" et non plus selon la valeur qu'elle avait au moment de la
définition dans la section.
Tactiques
- Langage de tactique
- Ajout (officiel) d'une tactique LetTac et d'un Induction "convivial"
- Decompose :
- Numérotation dans l'ordre des hypothèses créées
- Correction de bugs (quand le type ne commence pas par un inductif)
et refus d'agir sous les ->.
- Simpl ne déplie plus les appels récursifs d'un Fix mutuel réduit. En
revanche, si une constante n'est qu'indirectement un Fix, on ne garde
en général plus son nom (sauf dans les cas "simples"). Rem : c'est une
source d'incompatibilité.
- EAuto réussit parfois plus (source d'incompatibilité).
- Intro échoue si le nom d'hypothèse existe au lieu de mettre un avertissement
- Plus de "Require Prolog" (intégré par défaut)
Outils
- deux binaires maximum : coqtop.byte et coqtop.opt si plateforme native;
coqtop est un lien vers le plus efficace possible (coqtop.opt s'il existe,
coqtop.byte sinon); -full maintenant obsolete
- do_Makefile s'appelle maintenant coq_makefile
Utilisation générale
- La plupart des erreurs de typage sont maintenant localisée dans le
source (à l'exception des erreurs d'univers et de garde).
- Rapidité accrue
Développeurs
- Beaucoup de modification dans le sens de la simplification et de la
documentation (mais cela reste une version de transition)
|