context: It is probably the case that John went to the kitchen. We doubt that Bill moved to the office. It is probably not the case that Greg is yellow. It is likely that if 'Bill moved to the office and Greg is yellow' then Jeff left the apple. It is impossible that if either 'John went to the kitchen' or 'Bill moved to the office' but not both then Julius is gray. There is almost no chance that if 'Greg is yellow' or 'John went to the kitchen' or both then Mary dropped the milk.
hypothesis: It is impossible that 'John went to the kitchen' or 'Mary dropped the milk' or both.
valid_hypothesis: It is probably the case that 'John went to the kitchen' or 'Mary dropped the milk' or both.
invalid_hypothesis: It is impossible that 'John went to the kitchen' or 'Mary 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.7::factA.
    0.2::factB.
    0.25::factC.
    %hop1
    0.7::factX:-and(factB,factC).
    0.0::factY:-xor(factA,factB).
    0.02::factZ:-or(factC,factA).
  
    %hop2
    conclusion:-or(factA,factZ).
  
    query(conclusion).
    
hypothesis_assertion: 'John went to the kitchen' or 'Mary dropped the milk' or both.