context: There is almost no chance that John went to the office. We doubt that Lily is yellow. It is probable that Sandra dropped the apple. It is probable that if either 'Sandra dropped the apple' or 'John went to the office' but not both then Brian is green. There is a better than even chance that if 'John went to the office' or 'Lily is yellow' or both then Bernhard is a rhino. It is probable that if 'Lily is yellow and John went to the office' then Mary moved to the garden.
hypothesis: There is a very good chance that 'Bernhard is a rhino' or 'Lily is yellow' or both.
valid_hypothesis: We doubt that 'Bernhard is a rhino' or 'Lily is yellow' or both.
invalid_hypothesis: There is a very good chance that 'Bernhard is a rhino' or 'Lily is yellow' 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.02::factA.
    0.2::factB.
    0.7::factC.
    %hop1
    0.7::factX:-xor(factC,factA).
    0.6::factY:-or(factA,factB).
    0.7::factZ:-and(factB,factA).
  
    %hop2
    conclusion:-or(factY,factB).
  
    query(conclusion).
    
hypothesis_assertion: 'Bernhard is a rhino' or 'Lily is yellow' or both.