fact: Fixpoint fitqzp (zp : zpart) (q : question) {struct q} : bool := match q with | Qask0 => true | Qask1 qa => fitqa (zrange zp) qa | QaskL qa ql => if fitqa (zrange zp) qa then fitqzp (zstepLt zp) ql else false | QaskR qa qr => if fitqa (zrange zp) qa then fitqzp (zstepRt zp) qr else false | QaskLR qa ql qr => if fitqa (zrange zp) qa then if fitqzp (zstepL zp) ql then fitqzp (zstepR zp) qr else false else false | QaskLL qa ql => let zpl := zstepL zp in if fitqa (zrange zpl) qa then fitqzp (zstepL zpl) ql else false | QaskRR qa qr => let zpr := zstepR zp in if fitqa (zrange zpr) qa then fitqzp (zstepR zpr) qr else false end.
imports: mathcomp(ssreflect ssrfun ssrbool eqtype ssrnat seq choice) mathcomp(fintype path fingraph) fourcolor(hypermap geometry part quiz quiztree)