Question: Suppose we have a function $f: A\to B$. Then we know, without specifying what $f$ is, that $f$ may or may not map to every element $b\in B$. If $f$ does map to every element $b\in B$ then it's surjective. 

However, does the notation $f:A\to B$ imply that every element $a\in A$ is mapped to some unique $b\in B$? 

Furthermore, is there a difference between domain and natural domain? If there is, how can we tell whether $A$ is a/the natural domain from the notation $f: A\to B$?

Suppose we consider the function defined this way: $f: \mathbb{R}\to \mathbb{R}, f=\frac{1}{x}$ Clearly, $f$ is not defined at $x=0$. Would it therefore be incorrect to write $f: \mathbb{R}\to \mathbb{R}, f=\frac{1}{x}$ instead of $f: \mathbb{R}\backslash \{0\}\to \mathbb{R}, f=\frac{1}{x}$?

*The question is a bit clumsy. You are welcome to ask for clarification if this isn't clear enough.*

Answer: 
Suppose we're given a function $f: A\to B$. This means that every $a\in A$ maps to a unique element $b\in B$. This means there's only one $b\in B$ it maps to. We still allow that multiple elements of $A$ map to the same element of $B$. We call $A$ the domain of $f$, because all possible $x$ for which $f(x)$ is defined (i.e. has meaning within our *context*) lie in $A$. 

Now the word *context* is very important when you want to say what the natural domain is, because the term natural domain is very loosely defined. It is the set of values that you would normally consider *the largest possible domain*. This is where context comes in, because you can imagine that *"largest"* isn't really saying anything. I'll give an example to demonstrate.

> 
> Suppose we have $f=\frac1x$. Then most of the time you would say that the largest possible domain we can have for $f$ is $\mathbb R\backslash\{0\}$. But I'm shure that you agree with me that $\mathbb C\backslash\{0\}$ is larger. 
> 
> 
> 

So which one would you consider the **natural domain**. The answer is bassically in the words. You must decide which one is (more) **natural**. And that in turn depends on the context you're in. 

Note that we can't say anyting about the natural domain without actually knowing what $f$ is. If we only have $f: A\to B$, then the term *natural domain* is quite meaningless.

As you might have noticed, there's no avoiding a little hand-waving. The best thing I think you can do is to try asking yourself this: 

> 
> "If I do not specify any domain for my function, what would people assume the implied domain is." 
> 
> 
> 

I would say that gives you your natural domain. 

N.B. Overall I would just avoid the term natural domain and just clearly specify a certain domain.
In general, the notation $f:A \to B$ implies that every element $a \in A$ is mapped to **some** element $b∈B$, which is not necessarily unique. 

However, the definition of a function means that this element *is* unique *in terms of a*, ie. for any $a\in A$ there exists only **one** $b \in B$ such that $f(a)=b$. If you are requiring uniqueness *in terms of b* as well, ie. for any $b \in B$ there can exist only **one** $a \in A$ such that $f(a)=b$, then the mapping is said to be injective. To write this formally, you could state:

\begin{align}
f(x)=f(x') \Rightarrow x = x'
\end{align}

This does not necessarily mean that every element of $B$ **does** have a corresponing element from $A$; It is very easily to see that the domain {1,2} can map injectively to {1,2,3} with each number in $A$ mapping to itself in $B$. This would meet the criteria for being an injective function, but would not be surjective.

Regarding domain vs. natural domain, I believe that the *natural* *domain* is the largest domain for which the mapping is defined. Every other domain must necessarily be a subset of the *natural domain*. 

In your example, $A$ would be the *natural domain* as $f$ maps every single element in $A$ to a corresponding element in $B$, and any other domain will undoubtedly be a subset of it - the function is not specified to map elements outside of $A$ because we don't know what $A$ actually is. 

As a counter-example, if we knew that $f: \mathbb R \to \mathbb R$, and were *then* given $f: A\to B$ with $A \subset \mathbb R$, then A would **not** be the *natural domain* any longer, as we would be aware that there exists a larger domain for which the function operates, ie. $\mathbb R$.