(*  ω         | (φ _)    ~  π    |  ν i < k     | i        |  i    | i = k     | <0,..,l> |  ?    | i = k+1   |          |  q    | i = k+2   |          |  l    |  0 i > k+2   |          |       |  i-(k+2)  *)
Let dc_Code_spec c φ π ν ω : (forall i, i < k -> is_cipher_of (ν 0) (π iq) (φ i) (π i))
-> (is_cipher_of (ν 0) (π iq) (fun n => n) (π k))
-> (forall x, dc_vars c x -> x < k)
-> (forall i, i < il -> ω i = π i)
-> (forall i, il <= i -> ω i = ν (i-il))
-> dc_Code c ω <-> forall j, j < ν 0 -> dc_eval (fun i => φ i j) (dv_lift ν j) c.
Let dc_list_Code ll ν := fold_right (fun c P => dc_Code c ν /\ P) True ll.
Let dio_rel_dc_list_Code ll : dio_rel (dc_list_Code ll).
Let ciphers ν := CodeNat (ν il) (ν iq) (ν k) /\ forall i, i < k -> Code (ν il) (ν iq) (ν i).
Let dio_rel_ciphers : dio_rel ciphers.
Variables (ll : list dio_constraint)
(Hll : forall c x, In c ll -> dc_vars c x -> x < k).
Let Hll' : forall c, In c ll -> forall x, dc_vars c x -> x < k.
Let dc_list_bfall_spec ν : (forall i, i < ν 0 -> exists φ, Forall (dc_eval φ (dv_lift ν i)) ll) <-> dc_list_bfall ν .

(* Specifications: *)
Theorem dio_rel_dc_list_bfall : dio_rel (fun ν => forall i, i < ν 0 -> exists φ, Forall (dc_eval φ (dv_lift ν i)) ll).
Definition dfbfall := proj1_sig dfbfall_full.