(* compare the results for testing match with Mathematica*) SetAttributes[g,Orderless] SetAttributes[h,Flat] SetAttributes[gh,{Flat,Orderless}] m= Function[{pat,expr},MatchQ[expr,pat]] m[f[a | b, b], f[a, b]] m[f[a | b, b], f[b, b]] m[f[a_, b_, a_ | b_], f[x, y, y]] m[f[a_, b_, a_ | b_], f[x, y, x]] m[f[a_ | b_, a_, b_], f[x, x, y]] m[f[_, _], f[1, 2]] m[f[ww_, y], f[x, y]] m[f[_Integer, _], f[1, 2]] m[f[_Symbol, _], f[x, 2]] m[f[x__], f[a, b, c]] m[f[x___Symbol], f[x, y]] m[a:b_, xxx] m[f[x___Symbol], f[x, 2]]==False m[f[x___Integer, 2], f[1, 2]] m[f[x___], f[1, y]] m[f[a__], f[1, 2]] m[f[a__, b__], f[1, 2]] m[f[a___, b__], f[1, 2]] m[P[a_, b_Sin], P[x, Sin[y]]] m[a:f[ b_], f[c]] m[w[a_, b_Sin], w[x, Sin[y]]] m[f[x_], f[a, b, c]] m[f[x__], f[a, b, c]] m[f[x___], f[a, b, c]] m[gh[a_, b_Sin], gh[Sin[y], x]] m[gh[a___, b_Sin], gh[Sin[y]]] m[f[a_ | b_, a_, b_], f[y, x, y]] m[f[a_ | b_, a_, b_], f[x, x, y]] m[q[a_, b_], q[1, 2]] m[q[a_, a_], q[1, 2]] m[x:f[z_], f[z[3]]] m[f[a, x_:0], f[a]] m[f[x_:0, a], f[a]] m[f[x_:0, a], f[xx, a]] m[w[a__], w[x, Sin[y]]] m[P[a__], P[x, Sin[y]]] m[P[a___], P[x, y, z]] m[f[a__, b__], f[1, 2, 3, 4]] m[f[a__, b__], f[1, 2]] m[q[a__, a__], q[1, 2]] m[g[a, b], g[a, b]] m[w[x_, a], w[b, a]] m[g[a, b, x_], g[a, c, b]] m[gh[a, b, x_], gh[a, c, b, d]] m[f[a, x_, b], f[a, c, b]] m[ff[x__, b], ff[b, a]] m[ff[x__, b], ff[a, b]] m[ff[x__, b], ff[a, c, b]] m[ff[a, x__, b], ff[a, c, b]] m[ff[a, x__, x__, b], ff[a, c, d, c, d, b]] m[f[a___, b__], f[1, 2, 3, 4]] m[r[x_, s[x_]], r[a, s[a]]] m[r[x__, s[x__]], r[a, b, s[a, b]]] m[r[x___, s[x___]], r[s[] ] ] m[f[x_:0, a], f[a]] m[w[x_, f[x_]], w[a, f[a]]] m[w[a, b], w[b, a]] m[w[Except[b]], w[a]] m[w[Except[b]], w[b]] == False m[a b, b a] m[g[a, b, x_], g[a, c, b]] m[a b c x_, a c b] m[a + b + c + x_, a + c + b] m[a + b + c + x_, a + c + b + 3 z] m[a + b + c + d e x_, a + c + b + d e] m[a + b + c + d e x_, a + c + b + d e f g] m[(d + YY) (e + ZZ), (d + YY) (e + ZZ)] m[(d + y_) (e + z_), (d + YY) (e + ZZ)] m[(d + YY) (e + ZZ), (YY + d) (e + ZZ)] m[a + Sin[a], Sin[a] + a] m[x_ + Sin[a], Sin[a]] m[g[a, b], g[b, a]] m[x1__, e + f] m[a + x_, a + b] m[a + x_, a + b + c] m[b + x_, a + b + c] m[a + b + z_, a + b] (*False for WRI, we like z=0 *) m[a + b + z___, a + b] m[a + b + z__, a + b] m[a + x_., a] m[a + b + z___, a + b] m[a + b + z_, a + b] m[ff[x__, y__, x__], ff[a, b, a]] m[ff[x__, y___, x__], ff[a, a]] m[ww[a c, b y_], ww[a c, b d]] m[ww[a x_, b y_], ww[a c, b d]] m[ww[a x_, b y_], ww[a r s, b t u]] m[ww[a x_, b y_, z___], ww[a r s, b t u, 34, 35]] m[b y_ + a, a + b d] m[b y_ + x_, a + b d] m[b y_ + x_, a c + b d] m[b y_ + a x_, a c + b d] m[b x_ + a x_, a c + b d] m[x1___ + d + e, a + b + c + d + e] m[a + x1___ + c, a + b + c] m[x1__ + c + d + x2___, a + b + c + d + e] m[x1___ + c + d + x2___, a + b + c + d + e] m[g[a, b, x__], g[a, c, b]] m[x1___ + b + d, a + b + c + d + e] m[x_ + y_ + x_, a + b + a] m[x_ + y__ + x_, a + b + b + b + a] m[x_ + y__ + x_, a + b + b + b + a + c] m[gh[x_], gh[a, b, c]] m[gh[x_, b], gh[b, a]] m[x + PatternTest[y_, OddQ], x + 3] m[x + PatternTest[y_, OddQ], x + 4] m[PatternTest[y_, OddQ] + PatternTest[z_, Even], 3 + 4] m[y_Integer + z_, 3 + x + y] m[x_ + Sin[x_], Sin[a] + a] m[x__ + y__ + x__, a + b + c + a + b] m[f[a, b, x^n_. , c], f[a, b, x, c]] m[f[a, b, x^n_. , c], f[a, b, x, c]] m[f[a, b, x^n_. , c], f[a, b, x^4 , c]] m[n_. q, q] m[n_. q r, q r] m[n_. q r, q r] m[n_. + r, r] m[f[a, b, x^n_. , c], f[a, b, x, c]] m[a + b + x^n_. + c, a + x + c + b] m[a + b + x^n_. + c, a + b + x^5 + c] m[b y_ z_ + a x_, a c + b d gg] m[x__ + y__ + x__, a + b + a] m[x_ + y__, a + b + a] m[x_ + y_ + x_, a + b + a] m[w[Cos[x_], Sin[x_]], w[Cos[a], Sin[a]]] m[Cos[x_] + Sin[x_], Cos[a] + Sin[a]] m[w[x__, x__], w[1, 2, 3, 1, 2, 3]] m[gh[x__, x__], gh[1, 2, 3, 1, 2, 3]] m[gh[x__, x__], gh[1, 1, 2, 2, 3, 3]] m[{Cos[c_.+d_.x_]^m_.,x_},{Cos[2+3*x],x} Do[print[i];If[i>4,Return[toobig]], {i,1,10}] q6= (#+6)& q6[5] Module[{x=3,y}, x+y] If[5>4,t,f]==t Every[a>0,{a,{3,4}}] Every[a>0,{a,{3,4,-1}}] FF [a_Sin | a_Cos]:= foo[a]; {foo[Cos[z]], foo[Sin[z]], FF[Tan[z]]}=={foo[Cos[z]], foo[Sin[z]], FF[Tan[z]]} GG[u_[a_]]:=trig[u,a]/; MemberQ[{Sin,Cos,Tan,Sec,Cosec},u] GG[Sec[y]]==trig[Sec, y] w7[a_. x_^n_,x_] := a*x^(n+1)/(n+1) w7[10*z^2,z]==10/3*z^3 w8[a_. x_^n_,x_] := a*x^(n+1)/(n+1) /; FreeQ[{a,n},x]&&n =!= -1 Simp[D[w8[3/x^5,x]-3/x^5]]==0 fact[x_]:=x*fact[x-1] fact[0]=1; fact[4]==24 bfact[0]:=1 bfact[x_]:=x*bfact[x-1] (* bfact[24] is an error for us, not mma. also nScot an error if bfact[0]=1 , not := *) (3+2 I /. 2->4) == 3+4 I (3+2 I /. I->-I) == 3-2 I (3+2 I /. I->J) == 3+2 J Simp[ (g[2]+g[1/2]+g[x^2]+g[x^(-2)]+g[-2] /. 2->4)- (g[4]+g[1/4] +g[x^4]+g[x^(-4)]+g[-4])]==0 ValueofU[]:=u mm[u_]:=mm2[u,ValueofU[] ] mm[3]==mm2[3,u] Abs[Sin[4] +0.7568025]< 0.00001 Abs[N[E+Pi]-5.859874482048838] < 0.0000001 Table[i*j,{i,1,4},{j,{a,b,c}}]== {{a,b,c},{2a,2b,2c},{3a,3b,3c},{4a,4b,4c}} Re[3+4I]==3 Map[Sin[#]+Cos[#]&,{a,b}] == {Sin[a]+Cos[a], Sin[b]+Cos[b]} {SetAttributes[zz,Listable], zz[{a,b}]}== {{Listable}, {zz[a], zz[b]}} Sequence[1,1]//Equal Sequence[1,2]//Less Sequence[a,a,b]//SameQ == False 1<2&&3>2 2>1 || 1<2 {i=3,i+=5} =={3,8} {i=3,i++,i,++i} =={3, 4, 4, 4} Table[D[f[z],z],{f,{Sin,Cos,Tan,Sec,Abs,Sinh,ArcCos,ArcTan,Exp,ExpIntegralEi}}]== {Cos[z],-Sin[z],(Sec[z])^2, Tan[z]* Sec[z], Abs[z]/z,Cosh[z], -(1-z^2)^(-1/2),1/(1+z^2), Exp[z],Exp[z]/z} Table[Int[f[z],z],{f,{Sin,Cos,Tan,Sec,Abs,ArcCos,ArcTan,Exp,ExpIntegralEi}}]== {-Cos[z], Sin[z], -Log[Cos[z]], 2 ArcTanh[Tan[1/2 z]], 1/2 z Abs[z], z ArcCos[z] - (1-z^2)^(1/2) , 1/2 (2 z ArcTan[z] - Log[1 + z^2]), Exp[z], -Exp[z] + z ExpIntegralEi[z]} {x=3,Module[{x=4},x],x,Clear[x]} =={3,4,3,Null} Module[{x},x] =!= x {Clear[k],k[a]:=aa,k[b]:=bb,k[a]+k[b],Clear[k],k[a]}=={Null,Null, Null, aa + bb, Null, k[a]} (*because of total default rule ordering, result differs from mma *) {Clear[k],k[a]:=aa,k[x_]:=default[x],k[a]+k[b],Clear[k],k[a]}== {Null, Null, Null, default[a]+default[b], Null, k[a]} {k[x_]:=default[x],k[a]=aa,k[a]+k[b],Clear[k],k[a]}=={Null, aa, aa + default[b], Null, k[a]} (* because we optionally do NOT evaluate until no change, we get this:*) {Clear[x1,x2,x3], x2,x3,x3-x2}=={Null, x1=x2, x2=x3, x3 - x1} {Clear[x1,x2], x1=5,Module[{x2=6},x1=10;x2=7;x2], x1,x2} =={Null, 5, 7, 10, x2} Simp[D[EllipticE[x^2,m],x]- 2*x*Sqrt[1-m*Sin[x^2]^2]]==0 (* define new derivatives, this of a secret function of 2 variables, shh, it's WW[x_,n_]:= Sin[x]/x^n .. *) Gradef[WW, { (1/#1^(#2+1)*(#1*Cos[#1]-#2*Sin[#1]))& , (-1/#1^n * Log[#1]*Sin[#1])&} ] (* This way is easier to read .. *) {h1[x_,n_]:= 1/x^(n+1)*(x Cos[x]-n Sin[x]), h2[x_,n_]:=-x^(-n)*Log[x]*Sin[x], Gradef[WW,{h1,h2}]} =={Null, Null, WW} D[WW[x^2,Sin[x]],x] {v[Cos_]:=Cos+Cos[Cos], v[1]}=={Null, 1 + 1[1]}