> You don't care at that point, but you don't destroy the information either. You know that (R, +) forms a group and you might use that group structure to, say, efficiently sum a list of reals - but you know that the answer is a real and not just a "group element", and you would go back to doing real-specific operations on your total. So it's more about parameterisation than about outright hiding information.
When you reason about something as a group, that reasoning operates with the details hidden. When you apply that abstract reasoning to a concrete problem, of course that information is still there. Abstraction is a boundary that looks different on either side. In a similar vein of your example, the compiler knows all the information you're hiding through your program abstractions, but from the point of view of pieces of your code, that abstraction has hidden something.
> What's the difference? If you don't mean the normal kind of abstraction then what's the definition of the thing that you're talking about?
The word abstraction is so... abstract that it isn't actually a uniform concept applied in different areas but instead many similar concepts that look the same if you squint.
The concept I'm talking about is abstraction in the context of program structure. This is more related to mathematical abstraction than a mere metaphor but it's not exactly the same thing as the abstraction in a definition like groups, nor is it the same abstract as in abstract art.