(**************************************************************************)

(* Specifications: *)
Theorem all_binds_dec_exists : forall A xs (F : gen_env A),
List.NoDup xs ->
{ vs : list A | length xs = length vs ∧ (xs ∷ vs) ⊏ F }
+ { forall vs : list A, length xs = length vs -> ¬ (xs ∷ vs) ⊏ F }.
Theorem all_binds_dec : forall A (E F : gen_env A),
ok E ->
(forall w w' : A, { w = w' } + { ¬ w = w' }) ->
{E ⊏ F} + {¬ E ⊏ F}.