fact: Fixpoint cpcolor0 (cp : cprog) : ctree := let cpcol := foldr cpcolor1 cpbranch in match cp with | CpR _ :: cp' => cpcolor0 cp' | CpY :: cp' => cpcol cp' [:: Color1; Color2; Color3] | CpU :: cp' => ctree_union (cpcol cp' [:: Color1; Color1; Color2; Color2]) (cpcol cp' [:: Color1; Color1; Color1; Color1]) | _ => cpcol cp [:: Color1; Color1] end.
imports: mathcomp(ssreflect ssrfun ssrbool eqtype ssrnat seq choice) mathcomp(fintype path fingraph) fourcolor(hypermap geometry color coloring cfmap ctree)