title: Modeling sympoms and diseases
body: <p>The professor asked us to build a Prolog program that will diagnose a disease based on symptoms input by the user. My database of symptoms and diseases is like this :</p>
  
  <pre><code>causes_of(symptom1, Disease) :-
      Disease = disease1;
      Disease = disease2.
  causes_of(symptom2, Disease) :-
      Disease = disease3;
      Disease = disease4.
  causes_of(symptom3, Disease) :-
      Disease = disease4.
  </code></pre>
  
  <p>What I need is to interactively ask the user for symptoms and at the same time filter possible diseases, until I have no more symptoms to verify. Then I will present the user with a list of possible diseases.</p>
  
  <p>Notice that I also need to filter out conflicting symptoms. To illustrate this, take the relations defined above and consider at a certain point the user has symptom2.  If this happens, I should no longer ask if the user has symptom1, because there are no diseases that cause symptom1 and symptom2 at the same time.</p>
  
  <p>I don't know if I modeled the rules correctly for this, if not please point me in the right direction.</p>