fact: Fixpoint has_eps_can r := let fix hec_forall l : bool := match l with | [::] => true | hd :: tl => (has_eps_can hd) && (hec_forall tl) end in let fix hec_exists l : bool := match l with | [::] => false | hd :: tl => (has_eps_can hd) || (hec_exists tl) end in match r with | CVoid => false | CEps => true | CDot => false | CAtom _ => false | CStar _ => true | CPlus l => hec_exists l | CAnd l => hec_forall l | CConc l => hec_forall l | CNot r1 => ~~ (has_eps_can r1) 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)