fact: Fixpoint is_cnf (s: form) : bool := match s with | fF => true | fV x => true | fImp s t => is_cnf s && is_cnf t | fAX p s => is_cnp p && is_cnf s end with is_cnp (p: prog) : bool := match p with | pV a => true | pSeq p0 p1 => is_cnp p0 && is_cnp p1 | pCh p0 p1 => is_cnp p0 && is_cnp p1 | pStar p => is_cnp p | pTest s => is_cnf s | pConv (pV _) => true | pConv _ => false end.
imports: Relations Lia Setoid Morphisms mathcomp(all_ssreflect) CompDecModal.libs(edone bcase fset base modular_hilbert sltype rewrite_inequality fset_tac)