Surjectivity of a map between a module and its double dual Let $\mathbb{Z} = R$ be our base ring.  I am trying to show for a countable direct product of $\mathbb{Z}$ modules there is an isomorphism between it and its dual. I am stuck on the part about surjectivity and I am a little confused because according to Dummite and Foote you can only get surjectivity of the map if the modules are projective and finitely generated. Let me explain the problem in detail:

Let $P = \oplus_{i \in \mathbb{N}} A_i$ where each $A_i = \mathbb{Z}$.  How do we  to show the map $c_P : P \rightarrow P^{**}$ given by $x \mapsto (y^{*} \mapsto \left< x, y^{*} \right>$ is surjective?

I know how to compute the dual of $\mathbb{Z}^{*} = Hom_{\mathbb{Z}}(\mathbb{Z},\mathbb{Z})$ by showing the mapping of each $y* \in \mathbb{Z}^{*}$ given by $y^{*} \mapsto y^{*}(1)$ is an isomorphism so $\mathbb{Z}^{*} \cong \mathbb{Z}$.  Now since the dual of a direct sum is the direct product of corresponding duals we have $P^{*} \cong \prod_{i \in \mathbb{N}} \mathbb{Z} \cong \mathbb{Z} \times \mathbb{Z} \times \ldots $
Form here I don't know what to do to prove the map $c_p$ is surjective.  I am confused about the statements I have read saying we need the module to be projective and finitely generated.  Is it just the fact that the dual of a direct product should be the direct sum of the duals?
 A: As stated by Matt E in the comments, the question has been asked (and answered) on MathOverflow: Is it true that, as Z-modules, the polynomial ring and the power series ring over integers are dual to each other?. Hailong Dao's answer links to a text by Grzegorz Bobinski, based on a talk by Lutz Hille, proving the result for any non-local principal ideal domain. Here is the pdf file, and here is an html page it can be accessed from.
Here is a mild simplification of the proof.
Let $A$ be a principal ideal domain, let $(p)$ and $(q)$ be two distinct maximal ideals, let $$A^{\mathbb N}$$ be the $A$-module formed by all the sequences in $A$, and let $$A^{(\mathbb N)}$$ be the submodule consisting of the finitely supported elements of $A^{\mathbb N}$. We claim:

The canonical map from $A^{(\mathbb N)}$ into its double dual is an isomorphism.

Let $f:A^{\mathbb N}\to A$ be a nonzero $A$-linear map. Define $a\in A^{\mathbb N}$ by the condition
$$
f(x)=\sum_i\ a_i\,x_i\quad\forall\ x\in A^{(\mathbb N)}. 
$$
It suffices to show:

(1) $a\not=0$,
(2) $a\in A^{\mathbb N}$.

Proof of (1). Let $x$ be an element of $A^{\mathbb N}$ satisfying $f(x)\neq0$. For each $i$ in $\mathbb N$ there are $a_i,b_i$ in $A$ such that $$p^i\,a_i+q^i\,b_i=x_i.$$ Then $a=0$ would imply
$$
f((p^i)_{i\in\mathbb N})=0=f((q^i)_{i\in\mathbb N}), 
$$
and thus $f(x)=0$.
Proof of (2). Suppose by contradiction that $a$ is not in $A^{(\mathbb N)}$. We can assume $a_i\neq0$ for all $i$. Write
$$a_i=p^{r(i)}b_i$$
with $b_i$ prime to $p$. We can also assume $r(i)\le r(i+1)$ for all $i$, and $r(0)=0$. Put
$$x_0:=p^{1+r(1)}.$$
Let $y$ be in $A^{\mathbb N}$, and set
$$x_i:=p^i\,q\,y_i\quad\forall\ i > 0.$$
It is easy to see that $y$ can be chosen so that
$$
p^{n+r(n)}\ |\ a_0\,x_0+\cdots+a_{n-1}\,x_{n-1}\quad\forall\ n > 0. 
$$
Then $q$ doesn't divide $f(x)$, but $p ^n$ does for all $n$, contradiction.
A: I'm almost sure what you are trying to prove is false. It is false if you replace $\mathbb{Z}$ by $\mathbb{Q}$. To see this, one would want to to define a functional $F:P^* \mapsto \mathbb{Q}$ which does not come from $P$. Obvious thing to try is to take one that is $0$ on all finite sequences and $1$ on the sequence $x=(1,1,1,....)$ (note that this is consistent, as $x$ is linearly independent of all finite sequences). Then one would want to extend it to an actual map $F$. For vector spaces this is Hahn-Banach theorem (in that context the definition of a functional requires continuity, which we can forget for our purposes). Unfortunately the proof does not carry over to $\mathbb{Z}$ in an obvious way (things are a bit tricky; for example one needs to be careful with the fact that $P^*$ is not free). Maybe some other axiom of choice/Zorn lemma/ultrafilter trick will work...
