-
Notifications
You must be signed in to change notification settings - Fork 656
CRADT20090630
Voir aussi la page ADT.
Nombre de participants: environ 15
Workshop Coq: 6 articles acceptés, il reste quelques possibilités pour financer une mission à Munich.
(cf exposé)
Yves souligne l'aspect méthodologique de la démarche de Georges (utilisation de noms pertinents plutôt que H1, H2, ...; indentation des scripts; ...) qui va au delà de la structure propre de Ssreflect.
Nommage obligatoire des hypothèses dans Ssreflect : pourquoi l'imposer systématiquement et pas seulement dans la phase de stabilisation du code ?
Introduction automatique des paramètres dans une configuration Theorem thm x y : T
. Arnaud dit que Matthieu l'a implanté mais est revenu en arrière pour raisons de compatibilité.
Beaucoup de suggestions/demandes (cf exposé 1 et exposé 2).
Commentaires pêle-mêle:
Utiliser les notations Coq pour les termes au niveau ML nécessiterait de pouvoir compiler des fichiers .ml après avoir chargé des fichiers .v (ce que le chargement dynamique de code natif de OCaml 3.11 permet).
Exemple d'implémentation possible d'une macro camlp4 permettant de parser de la syntaxe Coq au niveau ML:
<<
match t with
| u1 -> body1
| u2 -> ...
>>
s'expanserait en
try
let l =
Matching.matches t
(snd (Constrintern.intern_constr_pattern Evd.empty (Global.env()) u1)) in
(* on suppose que u fait référence à trois variables ?x, ?y et ?z *)
let x = List.assoc (id_of_string "x") l in
let y = List.assoc (id_of_string "y") l in
let z = List.assoc (id_of_string "z") l in
body
with
PatternMatchingFailure ->
let l =
Matching.matches t
(snd (Constrintern.intern_constr_pattern Evd.empty (Global.env()) u2)) in
...
Benjamin rappelle le difficile positionnement de Ltac qui fut bridé (typage, types de données, ...) pour éviter d'être considéré comme une copie de ML au niveau Coq.
Plusieurs remarques et propositions intéressantes, cf transparents.
- généralisation de
fail
et||
au niveau constr de Ltac. - pouvoir contrôler le moment où le but est appliqué
- avoir des tactiques qui modifient le but par effet de bord et renvoie en même temps des données (e.g.
intro
pourrait retourner le nom créé)
...
Guillaume: transformer le wrapper gappa de dp en plugin.
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.