context: It is highly likely that Mary went to the office. It is impossible that Fred dropped the milk. It is highly unlikely that Bernhard is gray. It is unlikely that if 'Fred dropped the milk' or 'Bernhard is gray' or both then Brian is a lion. It is likely that if 'Bernhard is gray and Mary went to the office' then Greg is a frog. There is almost no chance that if 'Bernhard is gray and Fred dropped the milk' then John took the apple.
hypothesis: There is almost no chance that 'Fred dropped the milk' or 'Greg is a frog' or both.
valid_hypothesis: There is almost no chance that 'Fred dropped the milk' or 'Greg is a frog' or both.
invalid_hypothesis: It is probable that 'Fred dropped the milk' or 'Greg 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.9::factA.
    0.0::factB.
    0.05::factC.
    %hop1
    0.2::factX:-or(factB,factC).
    0.7::factY:-and(factC,factA).
    0.02::factZ:-and(factC,factB).
  
    %hop2
    conclusion:-or(factB,factY).
  
    query(conclusion).
    
hypothesis_assertion: 'Fred dropped the milk' or 'Greg is a frog' or both.