[Termtools] problem with Coccinelle's RPO?

Frederic Blanqui frederic.blanqui at inria.fr
Mon Jun 28 07:44:27 CEST 2010


Hello!

By looking at some CPF file of last year competition, I discovered that 
there is perhaps some problem with Coccinelle's formalization of RPO. I 
did no statistics to see how many CPF files would have been accepted by 
CiME3 or Rainbow (which uses Coccinelle's formalization of RPO) if there 
was not this problem.

It seems that Coccinelle's RPO equivalence is not strong enough to 
handle some example, especially after arguments filtering. Indeed, 
Coccinelle's equivalence is as follows:

     Inductive equiv : term -> term -> Prop :=
     | Eq : forall t, equiv t t
     | Eq_lex :
       forall f l1 l2, status P f = Lex -> equiv_list_lex l1 l2 ->
         equiv (Term f  l1) (Term f l2)
     | Eq_mul :
       forall f l1 l2,  status P f = Mul -> permut0 equiv l1 l2 ->
         equiv (Term f l1) (Term f l2)

You can see that this is the same symbol f that is used in the cases 
Eq_lex and Eq_mul. This means that two constants a and b with the same 
precedence are not considered as equal. But this possibility is used in 
some CPF files.

It means that, unless Coccinelle's formalization of RPO is fixed, 
provers should avoid this kind of proof if they want them to be checked 
by CiME3 or Rainbow.

Is this problem already fixed or is there any plan to fix it before next 
competition?

Frederic.


More information about the Termtools mailing list