context: There is little chance that John dropped the milk. There is almost no chance that Julius is a swan. It is unlikely that Bill went to the office. It is impossible that if either 'Bill went to the office' or 'Julius is a swan' but not both then Bernhard is white. There is a better than even chance that if 'John dropped the milk and Bill went to the office' then Brian is white. It is highly likely that if either 'Bill went to the office' or 'Julius is a swan' but not both then Greg is a rhino.
hypothesis: It is almost certain that 'Brian is white' or 'John dropped the milk' or both.
valid_hypothesis: There is little chance that 'Brian is white' or 'John dropped the milk' or both.
invalid_hypothesis: It is almost certain that 'Brian is white' or 'John dropped the milk' or 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.02::factB.
    0.2::factC.
    %hop1
    0.0::factX:-xor(factC,factB).
    0.6::factY:-and(factA,factC).
    0.9::factZ:-xor(factC,factB).
  
    %hop2
    conclusion:-or(factY,factA).
  
    query(conclusion).
    
hypothesis_assertion: 'Brian is white' or 'John dropped the milk' or both.