Definition cnf_normalise {T: Type} (t: Formula C) (tg: T) : cnf NFormula T :=
let f := normalise t in
if check_inconsistent f then cnf_ff _ _
else cnf_of_list (xnormalise f) tg.
Definition cnf_negate {T: Type} (t: Formula C) (tg: T) : cnf NFormula T :=
let f := normalise t in
if check_inconsistent f then cnf_tt _ _
else cnf_of_list (xnegate f) tg.

Lemma eval_nformula_dec : forall env d, (eval_nformula env d) \/ ~ (eval_nformula env d).
Fixpoint xdenorm (jmp : positive) (p: Pol C) : PExpr C :=
match p with
| Pc c => PEc c
| Pinj j p => xdenorm  (Pos.add j jmp ) p
| PX p j q   => PEadd
(PEmul (xdenorm jmp p) (PEpow (PEX jmp) (Npos j)))
(xdenorm (Pos.succ jmp) q)
end.