Sorry for the code presentation, too.
Perhaps it's better to attach a small piece of code :



The last clause was rejected, (I presume) because of the non-unification of
(suc n) with (plus n (suc zero)). Is that right ?
Is there a way to use some commutatitivy of plus (like using JMeq in Coq) ? Or any other way to define vrev ?

Cheers,
Pierre




     (     xs : Vec n X     !                         
let  !----------------------!                         
     ! vrev _n xs : Vec n X )                         
                                                      
     vrev _ n xs <= rec xs                            
     { vrev _ n xs <= case xs                         
       { vrev _ zero vnil => vnil                     
         vrev _ (suc n) (vcons x xs)                  
           => vappend _ n (vrev _ n xs) (vcons x vnil)
       }                                              
     }                                 

Reply via email to