context: Chances are about even that Sumit is thirsty. It is probably not the case that Mary picked up the apple. It is unlikely that John moved to the office. We doubt that if either 'Sumit is thirsty' or 'John moved to the office' but not both then Emily is a mouse. It is certain that if 'John moved to the office and Mary picked up the apple' then Bernhard is a rhino. It is almost certain that if 'John moved to the office' or 'Sumit is thirsty' or both then Greg is yellow.
hypothesis: It is highly unlikely that 'John moved to the office' or 'Sumit is thirsty' or both.
valid_hypothesis: There is a better than even chance that 'John moved to the office' or 'Sumit is thirsty' or both.
invalid_hypothesis: It is highly unlikely that 'John moved to the office' or 'Sumit 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.5::factA.
    0.25::factB.
    0.2::factC.
    %hop1
    0.2::factX:-xor(factA,factC).
    1.0::factY:-and(factC,factB).
    0.95::factZ:-or(factC,factA).
  
    %hop2
    conclusion:-or(factC,factA).
  
    query(conclusion).
    
hypothesis_assertion: 'John moved to the office' or 'Sumit is thirsty' or both.