context: There is little chance that Bernhard is a rhino. It is certain that Sandra got the milk. We doubt that Mary discarded the milk. It is highly likely that if either 'Bernhard is a rhino' or 'Mary discarded the milk' but not both then John picked up the apple. Chances are about even that if 'Mary discarded the milk and Sandra got the milk' then Brian is white. We doubt that if 'Bernhard is a rhino and Sandra got the milk' then Jeff left the football.
hypothesis: There is little chance that 'Bernhard is a rhino' or 'Jeff left the football' or both.
valid_hypothesis: There is little chance that 'Bernhard is a rhino' or 'Jeff left the football' or both.
invalid_hypothesis: It is certain that 'Bernhard is a rhino' or 'Jeff left the football' 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.1::factA.
    1.0::factB.
    0.2::factC.
    %hop1
    0.9::factX:-xor(factA,factC).
    0.5::factY:-and(factC,factB).
    0.2::factZ:-and(factA,factB).
  
    %hop2
    conclusion:-or(factA,factZ).
  
    query(conclusion).
    
hypothesis_assertion: 'Bernhard is a rhino' or 'Jeff left the football' or both.