fact: Fixpoint creg_ind (c:canonical_regexp) : P c := match c as xx return P xx with | CVoid => HVoid | CEps => HEps | CDot => HDot | CAtom s => HAtom s | CStar c1 => HStar (creg_ind c1) | CPlus l => HPlus ((fix aux (l': seq canonical_regexp) : Q l' := match l' as yy return Q yy with | [::] => H0 | hd :: tl => H1 (creg_ind hd) (aux tl) end) l) | CAnd l => HAnd ((fix aux (l': seq canonical_regexp) : Q l' := match l' as yy return Q yy with | [::] => H0 | hd :: tl => H1 (creg_ind hd) (aux tl) end) l) | CConc l => HConc ((fix aux (l': seq canonical_regexp) : Q l' := match l' as yy return Q yy with | [::] => H0 | hd :: tl => H1 (creg_ind hd) (aux tl) end) l) | CNot c1 => HNot (creg_ind c1) end.
imports: Coq(RelationClasses Setoid Morphisms) HB(structures) mathcomp(ssreflect ssrfun ssrbool eqtype ssrnat seq fintype) mathcomp(bigop path) RegLang(languages) RegexpBrzozowski(glue regexp finite_der equiv)