The problem is that what you see is not what you think it is. When you call for instance
Inactivate[Integrate[1/(1 + x), x]]
then every operation (every function-call f[x,y,z]
in the FullForm
) is converted to Inactive[f][x,y,z]
without evaluating anything. What makes Inactivate
neat is that for many expression Inactive[func][args]
has certain FormatValues
attached which make it look like you had the original expression. Therefore, if you evaluate the above line, you will see the following on screen
but in fact, this is only the representation in your standard output form. When you explicitly ask for the InputForm
you see what it really is
Inactivate[Integrate[Sin[x],x]]//InputForm
(* Inactive[Integrate][Inactive[Sin][x], x] *)
If you look at FormatValues[Inactive]
you see some of the rules that are used to build the box-representation you see on screen. If you want you can do
Unprotect[Inactive];
ClearAll[Inactive];
SetAttributes[Inactive, HoldFirst];
and then call the first line again and you see that all the fancy representation is gone. Unfortunately, this does not work for the most basic operations like Times
, Plus
etc. Their formatting rules seem to be built-in and so they still have the box-form with the *
you don't like
ToBoxes[Inactivate[x y]]
(* RowBox[{x,TagBox[*,InactiveToken,BaseStyle->Inactive,SyntaxForm->*,Editable->False,Selectable->False],y}] *)
Therefore, the short answer to your question is: the slightly highlighted *
sign in an inactivated x y
is show to indicate that the operator is not active.