Thinking about a recent answer made me wonder exactly which functions in Mathematica use Assumptions. You can find the list of System` functions that use that Option by running
Reap[Do[Quiet[If[Options[Symbol[i], Assumptions]=!={}, Sow[i], Options::optnf]],
{i, DeleteCases[Names["System`*"], _?(StringMatchQ[#, "$"~~__] &)]}]][[2, 1]]
which (can be more elegantly written using list comprehension and) returns
(in version 8)
{"ContinuedFractionK", "Convolve", "DifferenceDelta", "DifferenceRootReduce", "DifferentialRootReduce", "DirichletTransform", "DiscreteConvolve", "DiscreteRatio", "DiscreteShift", "Expectation", "ExpectedValue", "ExponentialGeneratingFunction", "FinancialBond", "FourierCoefficient", "FourierCosCoefficient", "FourierCosSeries", "FourierCosTransform", "FourierSequenceTransform", "FourierSeries", "FourierSinCoefficient", "FourierSinSeries", "FourierSinTransform", "FourierTransform", "FourierTrigSeries", "FullSimplify", "FunctionExpand", "GeneratingFunction", "Integrate", "InverseFourierCosTransform", "InverseFourierSequenceTransform", "InverseFourierSinTransform", "InverseFourierTransform", "InverseZTransform", "LaplaceTransform", "Limit", "PiecewiseExpand", "PossibleZeroQ", "PowerExpand", "Probability", "ProbabilityDistribution", "Product", "Refine", "Residue", "Series", "SeriesCoefficient", "Simplify", "Sum", "SumConvergence", "TimeValue", "ToRadicals", "TransformedDistribution", "ZTransform"}
You can similarly look for functions that take assumptions that are not in the System` context and the main ones you find are in Names["Developer`*Simplify*"] which are (adding "Developer`" to the context path)
{"BesselSimplify", "FibonacciSimplify", "GammaSimplify",
"HolonomicSimplify", "PolyGammaSimplify", "PolyLogSimplify",
"PseudoFunctionsSimplify", "ZetaSimplify"}
These are all specialized simplification routines that are not called by Simplify but are called by FullSimplify. However, sometimes FullSimplify can take too long on large expressions and I can imagine calling these specialized routines would be useful. Here's a simple usage example
In[49]:= FunctionsWolfram["10.08.17.0012.01"] /. Equal -> Subtract // Simplify
% // Developer`PolyLogSimplify
Out[49]= -Pi^2/6 + Log[1 - z] Log[z] + PolyLog[2, 1 - z] + PolyLog[2, z]
Out[50]= 0
(The FunctionsWolfram code is described here)
Another interesting assumption related context I noticed was Assumptions`.
Once again, appending "Assumptions`" to the $ContextPath,
Names["Assumptions`*"] returns the functions
{"AAlgebraicQ", "AAssumedIneqQ", "AAssumedQ", "ABooleanQ",
"AComplexQ", "AEvaluate", "AEvenQ", "AImpossibleIneqQ", "AInfSup",
"AIntegerQ", "AllAssumptions", "AMathIneqs", "AMod", "ANegative",
"ANonNegative", "ANonPositive", "AOddQ", "APositive", "APrimeQ",
"ARationalQ", "ARealIfDefinedQ", "ARealQ", "ASign", "AssumedFalse",
"AUnequalQ", "AWeakSign", "ImpliesQ"}
These contain assumption aware versions of some standard system functions, e.g.
In[22]:= Assuming[Element[x, Integers], {IntegerQ[x], AIntegerQ[x]}]
Assuming[x > 0, {Positive[x], APositive[x]}]
Out[22]= {False, True}
Out[23]= {Positive[x], True}
Internal`InheritedBlockandInternal`Bag? – Simon Dec 11 '11 at 4:32RuleCondition. – Simon Dec 11 '11 at 21:36