context: There is a very good chance that Mary went to the office. It is probably the case that Bernhard is a swan. There is a very good chance that Julius is green. Chances are slight that if either 'Mary went to the office' or 'Bernhard is a swan' but not both then Greg is white. It is highly unlikely that if 'Julius is green' or 'Mary went to the office' or both then Sumit is thirsty. There is little chance that if either 'Bernhard is a swan' or 'Julius is green' but not both then Sandra dropped the apple.
hypothesis: It is unlikely that 'Bernhard is a swan' or 'Greg is white' or both.
valid_hypothesis: It is probable that 'Bernhard is a swan' or 'Greg is white' or both.
invalid_hypothesis: It is unlikely that 'Bernhard is a swan' or 'Greg is white' 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.8::factA.
    0.7::factB.
    0.8::factC.
    %hop1
    0.1::factX:-xor(factA,factB).
    0.05::factY:-or(factC,factA).
    0.1::factZ:-xor(factB,factC).
  
    %hop2
    conclusion:-or(factB,factX).
  
    query(conclusion).
    
hypothesis_assertion: 'Bernhard is a swan' or 'Greg is white' or both.