General theory for difference equations Difference equations mathematics