context: We doubt that Bernhard is yellow. Chances are slight that Yann is thirsty. It is impossible that John went to the office. It is probably the case that if 'John went to the office' or 'Yann is thirsty' or both then Brian is a frog. It is probable that if 'Bernhard is yellow' or 'Yann is thirsty' or both then Mary left the milk. There is little chance that if either 'Yann is thirsty' or 'Bernhard is yellow' but not both then Greg is a swan.
hypothesis: There is a very good chance that 'Mary left the milk' or 'Yann is thirsty' or both.
valid_hypothesis: It is probably not the case that 'Mary left the milk' or 'Yann is thirsty' or both.
invalid_hypothesis: There is a very good chance that 'Mary left the milk' or 'Yann is thirsty' 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.2::factA.
    0.1::factB.
    0.0::factC.
    %hop1
    0.7::factX:-or(factC,factB).
    0.7::factY:-or(factA,factB).
    0.1::factZ:-xor(factB,factA).
  
    %hop2
    conclusion:-or(factY,factB).
  
    query(conclusion).
    
hypothesis_assertion: 'Mary left the milk' or 'Yann is thirsty' or both.