Section dc_h10c_equiv.
Variable (φ Ψ : nat -> nat)
(Hpsy_0 : Ψ 0 = 1)
(Hpsy_odd : forall n, Ψ (odd n) = φ n).
Local Lemma dc_h10c_equiv c :
(forall n, In n (0::dee_const (snd c)) -> Ψ (even n) = n)
-> dc_eval φ ν c <-> h10c_sem (dc_h10c c) Ψ.
End dc_h10c_equiv.
Let Fixpoint dc_max (l : list dio_constraint) :=
match l with
| nil => 0
| (_,dee_nat n)::l => max n (dc_max l)
| (_,dee_par p)::l => max (ν p) (dc_max l)
| _::l             => dc_max l
end.
Let dc_list_const l := list_an 0 (1+dc_max l).
Let dc_list_const_prop c l : In c l -> incl (0::dee_const (snd c)) (dc_list_const l).
Definition dc_list_h10c l := h10c_one 0 :: map h10c_nat (dc_list_const l)
++ map dc_h10c l.

Theorem dc_list_h10c_spec l : (exists φ, Forall (dc_eval φ ν) l)
<-> (exists Ψ, Forall (fun c => h10c_sem c Ψ) (dc_list_h10c l)).