proposition: Theorem divP_comp : forall a b c d : Term A n, divP a c -> eqTerm (A:=A) eqA (n:=n) a b -> eqTerm (A:=A) eqA (n:=n) c d -> divP b d.
proof: Proof. Proof using plusA minusA invA cs A1. intros a b c d H'; generalize b d; elim H'. intros a0 b0 nZa0 nZb0 H'2 b1 d0 H'3 H'4; auto. cut (~ zeroP (A:=A) A0 eqA (n:=n) d0); [ intros nZd0 | auto ]. apply divTerm_def with (nZb := nZd0); auto. red in |- *; intros nz1; absurd (zeroP (A:=A) A0 eqA (n:=n) a0); auto. apply zeroP_comp_eqTerm with (1 := cs) (a := b1); auto. apply (eqTerm_sym _ _ _ _ _ _ _ _ _ cs n); auto. apply (eqTerm_trans _ _ _ _ _ _ _ _ _ cs n) with (y := a0); auto. apply (eqTerm_sym _ _ _ _ _ _ _ _ _ cs n); auto. apply (eqTerm_trans _ _ _ _ _ _ _ _ _ cs n) with (y := multTerm (A:=A) multA (n:=n) (divTerm a0 nZb0) b0); auto. red in |- *; intros nz1; absurd (zeroP (A:=A) A0 eqA (n:=n) b0); auto. apply zeroP_comp_eqTerm with (1 := cs) (a := d0); auto. apply (eqTerm_sym _ _ _ _ _ _ _ _ _ cs n); auto. Qed.
imports: Coq(Relation_Definitions List) Buchberger(CoefStructure moreCoefStructure OrderStructure) Buchberger(Monomials Term)