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)
}
}