context: There is little chance that Jeff put down the milk. There is a better than even chance that Greg is yellow. It is improbable that John moved to the garden. Chances are about even that if 'Jeff put down the milk' or 'John moved to the garden' or both then Julius is a swan. It is certain that if 'Greg is yellow' or 'John moved to the garden' or both then Sandra left the milk. It is impossible that if 'Jeff put down the milk and John moved to the garden' then Brian is white.
hypothesis: Chances are slight that either 'Brian is white' or 'Julius is a swan' but not both.
valid_hypothesis: Chances are slight that either 'Brian is white' or 'Julius is a swan' but not both.
invalid_hypothesis: It is likely that either 'Brian is white' or 'Julius is a swan' 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.6::factB.
    0.1::factC.
    %hop1
    0.5::factX:-or(factA,factC).
    1.0::factY:-or(factB,factC).
    0.0::factZ:-and(factA,factC).
  
    %hop2
    conclusion:-xor(factZ,factX).
  
    query(conclusion).
    
hypothesis_assertion: Either 'Brian is white' or 'Julius is a swan' but not both.