fact: Fixpoint doTripletsN (L : list rZ) (n : nat) {struct n} : rArray vM -> mbDT := fun Ar => match doTripletsR L Ar with | quatuor Ar' true L' T' => quatuor _ _ _ _ Ar' true L' T' | quatuor Ar' false nil T => quatuor _ _ _ _ Ar' false nil T | quatuor Ar' b' L' T' => match n with | O => quatuor _ _ _ _ Ar' b' L' T' | S n => match doTripletsN L' n Ar' with | quatuor Ar'' b'' L'' T'' => quatuor _ _ _ _ Ar'' b'' (appendRz L' L'') (appTrace T' T'') end end end.