context: There is a better than even chance that Jeff moved to the office. There is a very good chance that Mary went to the hallway. It is highly likely that Julius is a swan. Chances are slight that if 'Julius is a swan' or 'Jeff moved to the office' or both then John got the milk. It is almost certain that if 'Jeff moved to the office and Mary went to the hallway' then Greg is gray. It is improbable that if 'Julius is a swan and Mary went to the hallway' then Bernhard is yellow.
hypothesis: We doubt that either 'Julius is a swan' or 'Bernhard is yellow' but not both.
valid_hypothesis: There is a very good chance that either 'Julius is a swan' or 'Bernhard is yellow' but not both.
invalid_hypothesis: We doubt that either 'Julius is a swan' or 'Bernhard is yellow' 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.6::factA.
    0.8::factB.
    0.9::factC.
    %hop1
    0.1::factX:-or(factC,factA).
    0.95::factY:-and(factA,factB).
    0.1::factZ:-and(factC,factB).
  
    %hop2
    conclusion:-xor(factC,factZ).
  
    query(conclusion).
    
hypothesis_assertion: Either 'Julius is a swan' or 'Bernhard is yellow' but not both.