A. Provider is used by AngularJS internally to create services, factory etc.
B. Provider is used during config phase.
C. Provider is a special factory method.
D. All of the above.
Provider is used by AngularJS internally to create services, factory etc. during config phase(phase during which AngularJS bootstraps itself). Below mention script can be used to create MathService that we've created earlier. Provider is a special factory method with a method get() which is used to return the value/service/factory.