title: Prolog: Recursive Multiplication of 2 Numbers
body: <p>I don't understand why this recursive definition of a multiplication is working.<br>
  I get the add part, but how is the value of "A" in this context.
  The code is the following:</p>
  
  <pre><code>add(0,X,X).
  add(s(X),Y,Z):-add(X,s(Y),Z).
  
  mult(0,X,0).
  mult(s(X),Y,Z):-mult(X,Y,A), add(Y,A,Z).
  </code></pre>