A formal model for user-adapted interface design