context: It is unlikely that John went to the garden. There is little chance that Sandra got the milk. It is unlikely that Julius is a swan. There is a very good chance that if 'John went to the garden' or 'Julius is a swan' or both then Lily is a lion. It is highly likely that if 'Julius is a swan' or 'Sandra got the milk' or both then Mary dropped the apple. It is improbable that if 'John went to the garden' or 'Sandra got the milk' or both then Greg is a rhino.
hypothesis: It is probable that either 'Mary dropped the apple' or 'Greg is a rhino' but not both.
valid_hypothesis: It is probably not the case that either 'Mary dropped the apple' or 'Greg is a rhino' but not both.
invalid_hypothesis: It is probable that either 'Mary dropped the apple' 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.1::factB.
    0.2::factC.
    %hop1
    0.8::factX:-or(factA,factC).
    0.9::factY:-or(factC,factB).
    0.1::factZ:-or(factA,factB).
  
    %hop2
    conclusion:-xor(factY,factZ).
  
    query(conclusion).
    
hypothesis_assertion: Either 'Mary dropped the apple' or 'Greg is a rhino' but not both.