(*^ ::[ Information = "This is a Mathematica Notebook file. It contains ASCII text, and can be transferred by email, ftp, or other text-file transfer utility. It should be read or edited using a copy of Mathematica or MathReader. If you received this as email, use your mail application or copy/paste to save everything from the line containing (*^ down to the line containing ^*) into a plain text file. On some systems you may have to give the file a name ending with ".ma" to allow Mathematica to recognize it as a Notebook. The line below identifies what version of Mathematica created this file, but it can be opened using any other version as well."; FrontEndVersion = "Macintosh Mathematica Notebook Front End Version 2.2"; MacintoshStandardFontEncoding; fontset = title, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeTitle, center, M7, bold, e8, 24, "Times"; fontset = subtitle, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeTitle, center, M7, bold, e6, 18, "Times"; fontset = subsubtitle, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeTitle, center, M7, italic, e6, 14, "Times"; fontset = section, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, grayBox, M22, bold, a20, 18, "Times"; fontset = subsection, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, blackBox, M19, bold, a15, 14, "Times"; fontset = subsubsection, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, whiteBox, M18, bold, a12, 12, "Times"; fontset = text, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; fontset = smalltext, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 10, "Times"; fontset = input, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeInput, M42, N23, bold, L-5, 12, "Courier"; fontset = output, output, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L-5, 12, "Courier"; fontset = message, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, R65535, L-5, 12, "Courier"; fontset = print, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L-5, 12, "Courier"; fontset = info, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, B65535, L-5, 12, "Courier"; fontset = postscript, PostScript, formatAsPostScript, output, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeGraphics, M7, l34, w282, h287, 12, "Courier"; fontset = name, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, italic, 10, "Geneva"; fontset = header, inactive, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; fontset = leftheader, inactive, L2, 12, "Times"; fontset = footer, inactive, noKeepOnOnePage, preserveAspect, center, M7, 12, "Times"; fontset = leftfooter, inactive, L2, 12, "Times"; fontset = help, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 10, "Times"; fontset = clipboard, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; fontset = completions, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; fontset = special1, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; fontset = special2, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; fontset = special3, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; fontset = special4, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; fontset = special5, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12, "Times"; paletteColors = 128; automaticGrouping; currentKernel; ] :[font = subtitle; inactive; preserveAspect; startGroup] Transformation Rules and Definitions :[font = text; inactive; preserveAspect] Define transformation rules: Replace x by 1+a: :[font = input; preserveAspect] 1+x^2 + 3 x^3 /. x -> 1 + a :[font = text; inactive; preserveAspect] Replace f[2] by b: :[font = input; preserveAspect] {f[1],f[2],f[3]} /. f[2] -> b :[font = text; inactive; preserveAspect] Replace f[n] by n2: ;[s] 3:0,0;17,1;18,0;20,-1; 2:2,13,9,Times,0,12,0,0,0;1,21,13,Times,32,12,0,0,0; :[font = input; preserveAspect] {f[1],f[2],f[3]} /. f[n_] -> n^2 :[font = text; inactive; preserveAspect] Define function f[n]=n2 and apply to arithmetic and algebraic: ;[s] 3:0,0;22,1;23,0;63,-1; 2:2,13,9,Times,0,12,0,0,0;1,21,13,Times,32,12,0,0,0; :[font = input; preserveAspect] f[n_] := n^2 :[font = input; preserveAspect] f[3] + f[a+b] :[font = text; inactive; preserveAspect] Define recursive user-supplied integer factorial function; :[font = input; preserveAspect] fac[n_] := n fac[n-1] :[font = input; preserveAspect] fac[1] := 1 :[font = input; preserveAspect] ?fac :[font = input; preserveAspect] fac[20] :[font = text; inactive; preserveAspect] Define rules for user-supplied log: :[font = input; preserveAspect] log[x_ y_] := log[x] + log[y] :[font = input; preserveAspect] log[a b c d] :[font = text; inactive; preserveAspect] Define rules for replacements of one form by another form; :[font = input; preserveAspect] g/: g[i_] + g[j_] := g[i+j] :[font = input; preserveAspect; endGroup] g[x] + g[y] + g[z] ^*)