proposition: Lemma WF_decomp_co_scc : forall (hypD : rules_preserve_vars D) (cs : decomp) (hyp4 : incl D (flat cs)) (hyp1 : incl (flat cs) D) (hyp2 : valid_decomp cs = true) (hyp3 : lforall (fun ci => co_scc ci = true \/ WF (hd_red_Mod S ci)) cs), WF (hd_red_Mod S D).
proof: Proof. intros. apply WF_decomp with cs; try hyp. clear hyp4 hyp2. rewrite lforall_eq. intros. rewrite lforall_eq in hyp3. ded (hyp3 _ H). destruct H0. apply WF_co_scc; try hyp. trans (flat cs). apply In_incl_flat. hyp. hyp. hyp. Qed.
imports: CoLoR(AGraph Union ATrs RelUtil ListUtil LogicUtil SN BoolUtil VecUtil)