context: There is a very good chance that John went to the kitchen. We doubt that Sandra left the milk. We doubt that Lily is gray. There is almost no chance that if either 'John went to the kitchen' or 'Lily is gray' but not both then Yann is hungry. There is a better than even chance that if 'Sandra left the milk' or 'John went to the kitchen' or both then Brian is yellow. There is a very good chance that if 'Sandra left the milk and Lily is gray' then Bernhard is a swan.
hypothesis: There is almost no chance that 'Brian is yellow' or 'Bernhard is a swan' or both.
valid_hypothesis: Chances are about even that 'Brian is yellow' or 'Bernhard is a swan' or both.
invalid_hypothesis: There is almost no chance that 'Brian is yellow' or 'Bernhard is a swan' 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.8::factA.
    0.2::factB.
    0.2::factC.
    %hop1
    0.02::factX:-xor(factA,factC).
    0.6::factY:-or(factB,factA).
    0.8::factZ:-and(factB,factC).
  
    %hop2
    conclusion:-or(factY,factZ).
  
    query(conclusion).
    
hypothesis_assertion: 'Brian is yellow' or 'Bernhard is a swan' or both.