title: Is Prolog suitable for this kind of project?
body: <p>I am working on a project where I have to build an engine that is able to generate a bunch of premises and, given a true fact, tell what else can be deduced. Example given:</p>
  
  <pre><code>If John plays football then Mary makes cookies.
  If Eric listens to rock then john doesn't play Football.
  If Eric doesn't listen to rock then john plays Football.
  Either Eric listens to rock or Luiza listens to rock.
  </code></pre>
  
  <p>When the given true fact is "Luiza listens to rock", then the solution should be:</p>
  
  <pre><code>Eric listens to rock = false
  John plays football = true
  Mary makes cookies = true
  </code></pre>
  
  <p>When the true fact is "Eric listens to rock", then the solution should be:</p>
  
  <pre><code>Luiza listens to rock = false
  Jonh plays football = false
  Mary makes cookies = (can't solve)
  </code></pre>
  
  <p>When the true fact is "John plays football", then the solution should be:    </p>
  
  <pre><code>Mary makes cookies = true
  Luiza listens to rock = (can't solve)
  Jonh plays football = (can't solve)
  </code></pre>
  
  <p><strong>Question</strong>: is Prolog the correct tool for solving this kind of problem? Code examples are appreciated.</p>