context: It is probable that Bernhard is gray. It is improbable that Brian is yellow. There is little chance that Julius is gray. It is likely that if either 'Brian is yellow' or 'Julius is gray' but not both then Jessica is a sheep. There is a better than even chance that if either 'Brian is yellow' or 'Julius is gray' but not both then Sumit is tired. It is probably the case that if 'Brian is yellow' or 'Julius is gray' or both then Lily is a frog.
hypothesis: We believe that 'Brian is yellow' or 'Bernhard is gray' or both.
valid_hypothesis: We believe that 'Brian is yellow' or 'Bernhard is gray' or both.
invalid_hypothesis: It is impossible that 'Brian is yellow' or 'Bernhard 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.1::factB.
    0.1::factC.
    %hop1
    0.7::factX:-xor(factB,factC).
    0.6::factY:-xor(factB,factC).
    0.7::factZ:-or(factB,factC).
  
    %hop2
    conclusion:-or(factB,factA).
  
    query(conclusion).
    
hypothesis_assertion: 'Brian is yellow' or 'Bernhard is gray' or both.