context: We doubt that Sandra got the milk. It is probably the case that John discarded the apple. It is highly unlikely that Bernhard is a rhino. It is certain that if either 'John discarded the apple' or 'Bernhard is a rhino' but not both then Lily is a lion. It is probably not the case that if 'Bernhard is a rhino and Sandra got the milk' then Brian is yellow. It is probable that if either 'Sandra got the milk' or 'John discarded the apple' but not both then Bill went to the office.
hypothesis: There is almost no chance that 'Sandra got the milk' or 'Lily is a lion' or both.
valid_hypothesis: We believe that 'Sandra got the milk' or 'Lily is a lion' or both.
invalid_hypothesis: There is almost no chance that 'Sandra got the milk' or 'Lily is a lion' 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.7::factB.
    0.05::factC.
    %hop1
    1.0::factX:-xor(factB,factC).
    0.25::factY:-and(factC,factA).
    0.7::factZ:-xor(factA,factB).
  
    %hop2
    conclusion:-or(factA,factX).
  
    query(conclusion).
    
hypothesis_assertion: 'Sandra got the milk' or 'Lily is a lion' or both.