Negotiation is an interaction that happens in multi-agent systems when agents have conflicting objectives and must look for an acceptable agreement. A typical negotiating situation involves two agents that cannot reach their goals by themselves because they do not have some resources they need or they do not know how to use them to reach their goals. Therefore, they must start a negotiation dialogue, taking also into account that they might have incomplete or wrong beliefs about the other agent's goals and resources. This article presents a negotiating agent model based on argumentation, which is used by the agents to reason on how to exchange resources and knowledge in order to achieve their goals. Agents that negotiate have incomplete beliefs about the others, so that the exchange of arguments gives them information that makes it possible to update their beliefs. In order to formalize their proposals in a negotiation setting, the agents must be able to generate, select and evaluate arguments associated with such offers, updating their mental state accordingly. In our approach, we will focus on an argumentation-based negotiation model between two cooperative agents. The arguments generation and interpretation process is based on belief change operations (expansions, contractions and revisions), and the selection process is a based on a strategy. This approach is presented through a high-level algorithm implemented in logic programming. We show various theoretical properties associated with this approach, which have been formalized and proved using Coq, a formal proof management system. We also illustrate, through a case study, the applicability of our approach in order to solve a slightly modified version of the well-known home improvement agents problem. Moreover, we present various simulations that allow assessing the impact of belief revision on the negotiation process.