context: It is improbable that Greg is a rhino. It is highly likely that Bernhard is green. There is little chance that Mary went to the kitchen. There is almost no chance that if either 'Mary went to the kitchen' or 'Bernhard is green' but not both then Lily is a swan. Chances are slight that if 'Mary went to the kitchen' or 'Bernhard is green' or both then Jeff dropped the apple. There is a better than even chance that if 'Mary went to the kitchen and Greg is a rhino' then Brian is yellow.
hypothesis: We doubt that 'Greg is a rhino' or 'Mary went to the kitchen' or both.
valid_hypothesis: We doubt that 'Greg is a rhino' or 'Mary went to the kitchen' or both.
invalid_hypothesis: It is certain that 'Greg is a rhino' or 'Mary went to the kitchen' 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.
    0.9::factB.
    0.1::factC.
    %hop1
    0.02::factX:-xor(factC,factB).
    0.1::factY:-or(factC,factB).
    0.6::factZ:-and(factC,factA).
  
    %hop2
    conclusion:-or(factA,factC).
  
    query(conclusion).
    
hypothesis_assertion: 'Greg is a rhino' or 'Mary went to the kitchen' or both.