Describir: Fundamental approach to discrete mathematics