Skip to Content.
Sympa Menu

coq-club - Re: Filtrage d'un type d�pendant dans une tactique

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: Filtrage d'un type d�pendant dans une tactique


chronological Thread 
  • From: delahaye AT jurancon.inria.fr (David Delahaye)
  • To: David.Nowak AT comlab.ox.ac.uk
  • Cc: coq-club AT pauillac.inria.fr
  • Subject: Re: Filtrage d'un type dépendant dans une tactique
  • Date: Tue, 3 Jul 2001 16:41:04 +0200 (CEST)

    Bonjour David,

> Comment puis-je filtrer un type dépendant dans une tactique (avec Coq
> 7.0 d'Avril 2001) ?  La définition
> 
>   Tactic Definition MyTactic t :=
>     Match t With
>       [(x:?1)?2] -> ...

    Il faut utiliser une application spécifique qui permet de faire de
l'unification d'ordre 2. La syntaxe est: (?n)@[args], où ?n est une
métavariable et args les arguments de l'application. Ici, on aurait donc:

Welcome to Coq 7.0 (April 2001)

Coq < Tactic Definition MyTactic t :=
Coq <   Match t With
Coq <   | [(x:?)(?1)@[x]] -> Cut ?1==?1. (* pour voir si cela marche *)
MyTactic is defined

Coq < Goal (x:nat)x=x.
1 subgoal
  
  ============================
   (x:nat)x=x

Unnamed_thm < Match Context With
Unnamed_thm < | [|- ?1] -> MyTactic ?1.
2 subgoals
  
  ============================
   ([x:nat]x=x)==([x:nat]x=x)->(x:nat)x=x

subgoal 2 is:
 ([x:nat]x=x)==([x:nat]x=x)

    Pour les contextes, c'est pareil.

> Tactic Definition PatternDep () :=
>   Match Context With
> [...]

    Une petite remarque en passant, les Match Context's ont une arité 
implicite
(ils attendent un but en argument), ce n'est donc pas utile de les enfermer
dans une nouvelle fermeture avec (). Cela permet d'alléger les scripts.

    David.

===============================================================================
David Delahaye                                 <Email>: 
David.Delahaye AT inria.fr
<Laboratory>: The Coq Project                                  <Domain>: 
Proofs
<Adress>: INRIA-Rocquencourt Domaine de Voluceau BP105 78153 Le Chesnay Cedex
          FRANCE
<Tel>: (33)-(0)1 39 63 57 53
<Fax>: (33)-(0)1 39 63 56 84
<Url>: http://pauillac.inria.fr/~delahaye
===============================================================================

[Computers are like air conditioners - they stop working properly when you 
open
 Windows.]





Archive powered by MhonArc 2.6.16.

Top of Page