context: It is almost certain that Lily is yellow. There is almost no chance that Sandra dropped the milk. It is certain that Mary went to the office. Chances are slight that if either 'Lily is yellow' or 'Sandra dropped the milk' but not both then Winona is a sheep. We believe that if either 'Sandra dropped the milk' or 'Mary went to the office' but not both then John discarded the apple. It is improbable that if 'Sandra dropped the milk and Lily is yellow' then Greg is a swan.
hypothesis: There is almost no chance that either 'Greg is a swan' or 'Sandra dropped the milk' but not both.
valid_hypothesis: There is almost no chance that either 'Greg is a swan' or 'Sandra dropped the milk' but not both.
invalid_hypothesis: There is a very good chance that either 'Greg is a swan' or 'Sandra dropped the milk' 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.95::factA.
    0.02::factB.
    1.0::factC.
    %hop1
    0.1::factX:-xor(factA,factB).
    0.75::factY:-xor(factB,factC).
    0.1::factZ:-and(factB,factA).
  
    %hop2
    conclusion:-xor(factZ,factB).
  
    query(conclusion).
    
hypothesis_assertion: Either 'Greg is a swan' or 'Sandra dropped the milk' but not both.