context: It is improbable that Sumit is thirsty. It is almost certain that Greg is white. It is highly unlikely that Brian is yellow. It is probably not the case that if 'Brian is yellow' or 'Sumit is thirsty' or both then Julius is a swan. It is probably the case that if 'Brian is yellow and Greg is white' then Yann is hungry. It is likely that if 'Greg is white' or 'Sumit is thirsty' or both then Mary put down the apple.
hypothesis: It is likely that either 'Julius is a swan' or 'Mary put down the apple' but not both.
valid_hypothesis: It is likely that either 'Julius is a swan' or 'Mary put down the apple' but not both.
invalid_hypothesis: It is highly unlikely that either 'Julius is a swan' or 'Mary put down the apple' 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.1::factA.
    0.95::factB.
    0.05::factC.
    %hop1
    0.25::factX:-or(factC,factA).
    0.7::factY:-and(factC,factB).
    0.7::factZ:-or(factB,factA).
  
    %hop2
    conclusion:-xor(factX,factZ).
  
    query(conclusion).
    
hypothesis_assertion: Either 'Julius is a swan' or 'Mary put down the apple' but not both.