# Seeing definitions of built-in functions [duplicate]

Possibly a very amateur question, so I'll apologise in advance. I'm reasonably new.

I'm trying to write a Dot equivalent of ExpandDenominator, i.e something that will have the capacity to write something like:

DotExpDen[1/(a+b)^2] = a.a + 2a.b + b.b


When using ExpandDenominator/.Times->Dot, it will correct the second cross-term but retain a2 and b2.

I'm hoping to look at the internal workings of ExpandDenominator, and I'm sure this might be useful in the future for a variety of problems I'd encounter.

Is there a method to look at how Mathematica has implemented this in the back-end(?), like looking at a publicly available package? I could probably do it in a Module of some kind, but I'm just looking for a general technique and perhaps look at their method and definitions.

• ExpandDenominator is a kernel function that does not have a definition in the same sense as a function you write yourself. It is likely not implemented in the Wolfram Language internally. – Szabolcs Nov 29 '18 at 15:32
• Not for this function; for others: use the techniques in the duplicate. The source files for certain functions of specific areas can be found in various placed in the \$InstallationDirectory, e.g. most of the parallel tools sources are readable. – Szabolcs Nov 29 '18 at 15:42