context: It is likely that Greg is white. There is almost no chance that Antoine is thirsty. We believe that Sandra left the milk. There is little chance that if 'Antoine is thirsty and Sandra left the milk' then John went to the kitchen. There is a very good chance that if 'Greg is white' or 'Antoine is thirsty' or both then Bernhard is gray. There is a better than even chance that if 'Antoine is thirsty and Greg is white' then Gertrude is a mouse.
hypothesis: There is a better than even chance that either 'John went to the kitchen' or 'Bernhard is gray' but not both.
valid_hypothesis: There is a better than even chance that either 'John went to the kitchen' or 'Bernhard is gray' but not both.
invalid_hypothesis: It is improbable that either 'John went to the kitchen' or 'Bernhard is gray' but not both.
problog: 
    and(A,B) :- A,B.
    or(A,B) :- A;B.
    nand(A,B) :- not(and(A,B)).
    nor(A,B) :- not(or(A,B)).
    xor(A,B) :- or(A,B), nand(A,B).
  
    %hop0
    0.7::factA.
    0.02::factB.
    0.75::factC.
    %hop1
    0.1::factX:-and(factB,factC).
    0.8::factY:-or(factA,factB).
    0.6::factZ:-and(factB,factA).
  
    %hop2
    conclusion:-xor(factX,factY).
  
    query(conclusion).
    
hypothesis_assertion: Either 'John went to the kitchen' or 'Bernhard is gray' but not both.