# [Maxima] finding subterms in a bigger term

andre maute andre.maute at gmx.de
Tue Sep 18 11:39:34 CDT 2007

```On Tuesday 18 September 2007, andre maute wrote:
> On Tuesday 18 September 2007, you wrote:
> > > On Monday 17 September 2007, Stavros Macrakis wrote:
> > > How did you determine the 5 in the for loop, can't this be done
> > > automatically?
> > >
> > > > You can write a loop do this systematically, e.g.
> > > >
> > > >         substabn(ex):=
> > > >           block([newex],
> > > >             for i: 1 thru 5 do
> > > >              while denom(newex: ex*(a+b+i)!/((a+b+i)*(a+b+i-1)!))=1
> > > >                    do ex:newex,
> > > >             ex)
> >
> > Everything can be generalized arbitrarily and done automatically. How
> > much do you want to generalize?  Do you want to convert (XX+1)*XX! =>
> > (XX+1)! for all XX, or only for XX of the form a+b+<integer>?  I was just
> > giving the sketch of a solution.
>
> For beginners first:
>
> (a+b+<integer>+1)*(a+b+<integer>) => (a+b+<integer>)!

TYPO!

(a+b+<integer>+1)*(a+b+<integer>) => (a+b+<integer>+1)!

>
> > You might think that this sort of thing could be done using the pattern
> > matcher, but I don't think it can -- at least not straightforwardly.  RJF
> > may have some thoughts on this.
> >
> >            -s
>
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima

```