Definition forces_gamma (gamma : flist) (work : nf_list) 
  (k : kripke_tree) := forall a : form, in_gamma gamma work a -> forces_t k a.

(* Specifications: *)
Lemma forces_gamma_cons_gamma : forall (gamma : flist) (work : nf_list) (k : kripke_tree) (a : form), forces_t k a -> forces_gamma gamma work k -> forces_gamma (a :: gamma) work k.
Lemma forces_gamma_cons_gamma_tail : forall (gamma : flist) (work : nf_list) (k : kripke_tree) (a : form), forces_gamma (a :: gamma) work k -> forces_gamma gamma work k.
Lemma forces_gamma_cons_gamma_head : forall (gamma : flist) (work : nf_list) (k : kripke_tree) (a : form), forces_gamma (a :: gamma) work k -> forces_t k a.
Lemma forces_gamma_shift_gamma_work : forall (a : normal_form) (gamma : flist) (work : nf_list) (k : kripke_tree), forces_gamma (nf2form a :: gamma) work k -> forces_gamma gamma (a :: work) k.
Lemma forces_gamma_shift_work_gamma : forall (a : normal_form) (gamma : flist) (work : nf_list) (k : kripke_tree), forces_gamma gamma (a :: work) k -> forces_gamma (nf2form a :: gamma) work k.
Lemma forces_gamma_cons_gamma_weak : forall (gamma : flist) (work : nf_list) (k : kripke_tree) (a b : form), (forces_t k a -> forces_t k b) -> forces_gamma (a :: gamma) work k -> forces_gamma (b :: gamma) work k.
Lemma forces_gamma_cons_gamma_weak2 : forall (gamma : flist) (work : nf_list) (k : kripke_tree) (a b c : form), (forces_t k a -> forces_t k b -> forces_t k c) -> forces_gamma (a :: b :: gamma) work k -> forces_gamma (c :: gamma) work k.