context: It is probable that John went to the office. It is probably the case that Greg is white. We believe that Bernhard is yellow. There is almost no chance that if 'Greg is white and John went to the office' then Jeff left the apple. Chances are slight that if either 'Greg is white' or 'John went to the office' but not both then Brian is a swan. It is likely that if 'Bernhard is yellow and Greg is white' then Julius is gray.
hypothesis: We believe that 'Bernhard is yellow' or 'Julius is gray' or both.
valid_hypothesis: We believe that 'Bernhard is yellow' or 'Julius is gray' or both.
invalid_hypothesis: It is impossible that 'Bernhard is yellow' or 'Julius is gray' 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.7::factB.
    0.75::factC.
    %hop1
    0.02::factX:-and(factB,factA).
    0.1::factY:-xor(factB,factA).
    0.7::factZ:-and(factC,factB).
  
    %hop2
    conclusion:-or(factC,factZ).
  
    query(conclusion).
    
hypothesis_assertion: 'Bernhard is yellow' or 'Julius is gray' or both.