fact: Definition mkConc r1 r2 : canonical_regexp := nosimpl match r1,r2 with | CEps, _ => r2 | _ , CEps => r1 | CVoid, _ => CVoid | _, CVoid => CVoid | CConc l1, CConc l2 => CConc (cat l1 l2) | _, CConc l2 => CConc (r1 :: l2) | CConc l1, _ => CConc (cat l1 ([:: r2])) | _,_ => CConc [:: r1; r2] 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)