context: There is a better than even chance that Greg is a swan. There is a very good chance that Sandra got the milk. It is highly likely that Mary dropped the milk. There is a very good chance that if 'Sandra got the milk' or 'Mary dropped the milk' or both then John took the apple. It is probable that if either 'Greg is a swan' or 'Mary dropped the milk' but not both then Bernhard is gray. Chances are about even that if 'Mary dropped the milk and Sandra got the milk' then Lily is yellow.
hypothesis: There is little chance that 'Lily is yellow' or 'John took the apple' or both.
valid_hypothesis: It is highly likely that 'Lily is yellow' or 'John took the apple' or both.
invalid_hypothesis: There is little chance that 'Lily is yellow' or 'John took the apple' 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.6::factA.
    0.8::factB.
    0.9::factC.
    %hop1
    0.8::factX:-or(factB,factC).
    0.7::factY:-xor(factA,factC).
    0.5::factZ:-and(factC,factB).
  
    %hop2
    conclusion:-or(factZ,factX).
  
    query(conclusion).
    
hypothesis_assertion: 'Lily is yellow' or 'John took the apple' or both.