Fixpoint df_weight_1 f :=
    match f with
      | df_atm a b  => 4 + de_size a + de_size b
      | df_conj f g => 1 + df_weight_1 f + df_weight_1 g  
      | df_disj f g => 1 + df_weight_1 f + df_weight_1 g  
      | df_exst f   => 1 + df_weight_1 f
    end.Fact df_weigth_1_size f : df_weight_1 f <= 4*df_size f.Fixpoint df_weight_2 f :=
    match f with
      | df_atm a b  => 3 + de_size a + de_size b
      | df_conj f g => 1 + df_weight_2 f + df_weight_2 g  
      | df_disj f g => 1 + df_weight_2 f + df_weight_2 g  
      | df_exst f   => df_weight_2 f
    end.Fact df_weigth_2_size f : df_weight_2 f <= 3*df_size f.

(* Specifications: *)
Lemma dio_repr_at_form n f : dio_repr_at (df_pred f) n (df_weight_1 f) (df_weight_2 f).
Theorem dio_formula_elem f : { l | length l <= 1+3*df_size f /\ (forall c x, In c l -> dc_vars c x -> x < 4*df_size f) /\ forall ν, df_pred f ν <-> exists φ, Forall (dc_eval φ ν) l }.