proposition: Lemma poly_ind2 : forall P : {poly R} -> {poly R} -> Type, (forall p, P p 0) -> (forall q, P 0 q) -> (forall c p d q, P p (q * 'X + d%:P) -> P (p * 'X + c%:P) q -> P (p * 'X + c%:P) (q * 'X + d%:P)) -> forall p q, P p q.
proof: Proof. move=> P H01 H02 H. apply: (@poly_ind _)=> // p c IH1. apply: (@poly_ind _)=> // q d IH2. apply: (@H c p d q)=> //. Qed.
imports: HB(structures) mathcomp(ssreflect ssrfun ssrbool eqtype ssrnat div seq) mathcomp(path choice fintype tuple finset ssralg) mathcomp(matrix poly) mathcomp(bigop polydiv) CoqEAL(stronglydiscrete dvdring)