context: It is unlikely that Mary put down the apple. Chances are about even that Sandra left the milk. We doubt that Lily is white. It is impossible that if 'Sandra left the milk and Mary put down the apple' then Julius is a lion. It is highly unlikely that if either 'Mary put down the apple' or 'Sandra left the milk' but not both then John got the apple. Chances are slight that if 'Sandra left the milk' or 'Lily is white' or both then Greg is a rhino.
hypothesis: Chances are about even that either 'Sandra left the milk' or 'Greg is a rhino' but not both.
valid_hypothesis: Chances are about even that either 'Sandra left the milk' or 'Greg is a rhino' but not both.
invalid_hypothesis: It is highly unlikely that either 'Sandra left the milk' or 'Greg is a rhino' 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.2::factA.
    0.5::factB.
    0.2::factC.
    %hop1
    0.0::factX:-and(factB,factA).
    0.05::factY:-xor(factA,factB).
    0.1::factZ:-or(factB,factC).
  
    %hop2
    conclusion:-xor(factB,factZ).
  
    query(conclusion).
    
hypothesis_assertion: Either 'Sandra left the milk' or 'Greg is a rhino' but not both.