A resposta para "Você pode definir o que uma abstração de programação é mais ou menos matematicamente?" é não." Abstração não é um conceito matemático. Seria como pedir a alguém para explicar matematicamente a cor de um limão.
Se você quiser uma boa definição: a abstração é o processo de passar de uma ideia específica para uma mais geral. Por exemplo, dê uma olhada no seu mouse. É sem fio? Que tipo de sensor tem? Quantos botões? É ergonômico? Quão grande é isso? As respostas para todas essas perguntas podem descrever precisamente o mouse, mas, independentemente de quais sejam as respostas, ainda é um mouse, porque é um dispositivo apontador com botões. É tudo o que é preciso para ser um rato. "Silver Logitech MX518" é um item concreto e específico, e "mouse" é uma abstração disso. Uma coisa importante a se pensar é que não existe um objeto concreto como um "mouse", é apenas uma idéia. O mouse na sua mesa é sempre algo mais específico - é um Apple Magic Mouse ou um Mouse Óptico da Dell ou um Microsoft IntelliMouse - "mouse" é apenas um conceito abstrato.
A abstração pode ser em camadas e tão fina ou grossa quanto desejar (um MX518 é um mouse, que é um objeto apontador, que é um periférico de computador, que é um objeto alimentado por eletricidade), pode ir tão longe como você quer, e em praticamente qualquer direção que você quiser (meu mouse tem um fio, o que significa que eu poderia categorizá-lo como um objeto com um fio. Ele também é plano na parte inferior, então eu poderia categorizá-lo como um tipo de objeto que ganhou) t rolar quando colocado na vertical em um plano inclinado).
A programação orientada a objetos é construída sobre o conceito de abstrações e famílias ou grupos deles. Boa OOP significa escolher boas abstrações no nível apropriado de detalhe que faça sentido no domínio do seu programa e não "vaze". O primeiro significa que classificar um mouse como um objeto que não rola em um plano inclinado não faz sentido para um aplicativo que faz inventários de equipamentos de informática, mas pode fazer sentido para um simulador de física. O último significa que você deve tentar evitar "encaixar-se" em uma hierarquia que não faz sentido para algum tipo de objeto. Por exemplo, na minha hierarquia acima, temos certeza de que todos os periféricos são alimentados por eletricidade? Que tal uma caneta? Se quisermos agrupar uma caneta na categoria "periférica", teremos um problema, porque ela não usa eletricidade e definimos periféricos de computador como objetos que usam eletricidade. O problema de círculo-elipse é o exemplo mais conhecido desse enigma.