How can I make FullSimplify work for user-defined functions?
- To: mathgroup at smc.vnet.net
- Subject: [mg52569] How can I make FullSimplify work for user-defined functions?
- From: gilmar.rodriguez at nwfwmd.state.fl.us (Gilmar Rodr?guez Pierluissi)
- Date: Thu, 2 Dec 2004 02:21:28 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
(First; a necessary short introduction, and then two questions. Please, bear with me...) Let N be an even integer greater or equal to 4. Assume that there exist points (Pi, Qi) on the line Y = -X + N such that: (1.) both Pi, and Qi are primes, (2.) the points (Pi,0) are on the subinterval [2,N/2] of the X-Axis, (3.) the points (0,Qi) are on the subinterval [N/2,N-2] of the Y-Axis. A Minimal Goldbach Prime Partition Point corresponding to N,(abbreviated: "MGPPP[N]")is a point (P,Q) among the points (Pi,Qi) such that: the distance between the point (P,Q) and the point (N/2,N/2) = smallest distance among all distances between the points (Pi, Qi) and the point (N/2, N/2). If N is of the form N = 2P then MGPPP[N] = (N/2,N/2). If N is of the form N = P + Q, with P not equal to Q, then MGPPP[N] = (P,Q). For geometrical pictures please visit: http://gilmarlily.netfirms.com/goldbach/goldbach.htm Please download the following Mathematica notebook (version 5.0)by double-cliking this link: http://gilmarlily.netfirms.com/download/FullSimplify.nb You can use this notebook to duplicate the evaluations appearing in the discussion below: Having said the above; the following program calculates the MGPPP[N]: MGPPP[n_] := Module[{p, q}, {m = n/2; If[Element[m, Primes], {p = m, q = m}, {k =PrimePi[m]; Do[If[Element[n - Prime[i], Primes], hit = i; Break[]], {i, k, 1, -1}],p = Prime[hit], q = n - p}]}; {p, q}] Examples: MGPPP[4]={2,2} MGPPP[100]={47,53}. The above program can be easily changed as follows to give only the "p-value" (instead of the point {p,q}): pvalue[n_] := Module[{p}, {m = n/2; If[Element[m, Primes], {p = m}, {k =PrimePi[m]; Do[If[Element[n - Prime[i], Primes], hit = i; Break[]],{i, k, 1, -1}], p = Prime[hit]}]}; p] A plot to depict the p-values is given by: plt1=ListPlot[Table[pvalue[n],{n,4,100,2}],PlotJoined®True, PlotStyle®Hue[0.1]] It has been conjectured that the Minimal Goldbach Prime Partition p-values have a lower bound given by: Prime[PrimePi[Sqrt[N]]. To visualize this do: (** oldlb= abbreviation for old lower bound. **) oldlb[n_]:=Prime[PrimePi[Sqrt[n]]]; plt2=ListPlot[Table[oldlb[n],{n,4,100,2}], PlotJoined®True,PlotStyle®Hue[0.2]] Show[plt1,plt2] Try also: TableForm[Table[{n,oldlb[n],pvalue[n]},{n,4,100,2}], TableHeadings->{None,{"n","oldlb[n]","p"}}, TableAlignments->Center] However; that lower bound can be improved by the following new lower bound: Prime[PrimePi[(N+2*Sqrt[N])/4]. The following program makes use of this latest interval: pval[n_] := Module[{p}, {m = n/2; If[Element[m, Primes], {p = m}, {k =PrimePi[m]; l=PrimePi[(n+2*Sqrt[n])/4]; Do[If[Element[n - Prime[i], Primes], hit = i; Break[]], {i, k, l, -1}], p = Prime[hit]}]}; p] To compare the p-values with the old and new lower bounds do: plt3=ListPlot[Table[pval[n],{n,4,100,2}],PlotJoined®True, PlotStyle®Hue[0.1]] newlb[n_]:=Prime[PrimePi[(n+2*Sqrt[n])/4]] plt4=ListPlot[Table[newlb[n],{n,4,100,2}], PlotJoined®True,PlotStyle®Hue[0.6]] Show[plt3,plt4] Show[plt2,plt3,plt4] Try also: TableForm[Table[{n,newlb[n],pval[n]},{n,4,100,2}], TableHeadings->{None,{"n","newlb[n]","p"}}, TableAlignments->Center] Finally; I try the FullSimplify command, to test the validity of the new bound,via: FullSimplify[newlb[n]<= pval[n],Element[n,EvenQ]&&n³4] hoping that this evaluation gives me "True" as a result. I get instead a cryptic: "Prime[PrimePi[1/4(2Sqrt[n]+n)]]<= p$214" as answer. Then I realize: one would really need to prove Goldbach's Conjecture first, so that the "True" after the above FullSimplify evaluation is truly valid. So I try instead: FullSimplify[newlb[n]<=pval[n],Element[n,EvenQ]&&n³4&&n<10^6] and this time I get: "Prime[PrimePi[1/4(2Sqrt[n]+n)]]<= p$358". My questions are: (1.) How can I make FullSimplify work for user-defined functions? (2.) How can I make FullSimplify[newlb[n]<=pval[n],Element[n,EvenQ]&&n³4&&n<10^6] "True"? Thank you for your attention, and your help!
- Follow-Ups:
- Re: How can I make FullSimplify work for user-defined functions?
- From: DrBob <drbob@bigfoot.com>
- Re: How can I make FullSimplify work for user-defined functions?
- From: Andrzej Kozlowski <akoz@mimuw.edu.pl>
- Re: How can I make FullSimplify work for user-defined functions?