proposition: Theorem CombLinear_comp : forall (Q : list (poly A0 eqA ltM)) (p : list (Term A n)), CombLinear Q p -> forall q : list (Term A n), canonical A0 eqA ltM q -> eqP A eqA n p q -> CombLinear Q q.
proof: Proof. Proof using minusA invA divA cs A1. intros Q p H'; elim H'; auto. intros q H'0 H'1; inversion H'1; auto. intros a p0 q s H'0 H'1 H'2 H'3 H'4 q0 H'5 H'6. cut (canonical A0 eqA ltM q); [ intros C0 | idtac ]. cut (canonical A0 eqA ltM s); [ intros C1 | idtac ]. apply CombLinear_1 with (a := a) (p := p0) (q := q); auto. apply (eqp_trans _ _ _ _ _ _ _ _ _ cs n) with (y := s); auto; apply (eqp_sym _ _ _ _ _ _ _ _ _ cs n); auto. apply eqp_imp_canonical with (p := q0) (1 := cs); auto. apply (eqp_sym _ _ _ _ _ _ _ _ _ cs n); auto. apply inPolySet_imp_canonical with (L := Q); auto. Qed.