(* Now we are ready!! We start with the definition of genCpC *)
 
Inductive cpRes : Set :=
  | Keep : forall P : list (poly A0 eqA ltM), cpRes
  | DontKeep : forall P : list (poly A0 eqA ltM), cpRes.(* Now we are ready!! We start with the definition of genCpC *)
 
Inductive cpRes : Set :=
  | Keep : forall P : list (poly A0 eqA ltM), cpRes
  | DontKeep : forall P : list (poly A0 eqA ltM), cpRes.(* Now we are ready!! We start with the definition of genCpC *)
 
Inductive cpRes : Set :=
  | Keep : forall P : list (poly A0 eqA ltM), cpRes
  | DontKeep : forall P : list (poly A0 eqA ltM), cpRes.Definition getRes : cpRes -> list (poly A0 eqA ltM).Definition addRes : poly A0 eqA ltM -> cpRes -> cpRes.Definition slice :
  poly A0 eqA ltM -> poly A0 eqA ltM -> list (poly A0 eqA ltM) -> cpRes.Definition slicef :
  poly A0 eqA ltM ->
  poly A0 eqA ltM -> list (poly A0 eqA ltM) -> list (poly A0 eqA ltM).

Theorem slicef_incl : forall (a b : poly A0 eqA ltM) (P : list (poly A0 eqA ltM)), incl (slicef a b P) P.