context: It is probably the case that Mary dropped the milk. It is highly likely that Lily is a lion. There is a better than even chance that John moved to the office. There is a very good chance that if 'Mary dropped the milk' or 'John moved to the office' or both then Julius is yellow. There is little chance that if either 'John moved to the office' or 'Lily is a lion' but not both then Bernhard is a frog. Chances are about even that if 'Mary dropped the milk' or 'John moved to the office' or both then Winona is a cat.
hypothesis: It is likely that 'Julius is yellow' or 'Bernhard is a frog' or both.
valid_hypothesis: It is likely that 'Julius is yellow' or 'Bernhard is a frog' or both.
invalid_hypothesis: There is almost no chance that 'Julius is yellow' or 'Bernhard is a frog' 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.9::factB.
    0.6::factC.
    %hop1
    0.8::factX:-or(factA,factC).
    0.1::factY:-xor(factC,factB).
    0.5::factZ:-or(factA,factC).
  
    %hop2
    conclusion:-or(factX,factY).
  
    query(conclusion).
    
hypothesis_assertion: 'Julius is yellow' or 'Bernhard is a frog' or both.