context: Chances are about even that Emily is a mouse. It is probable that Sandra left the apple. We believe that Bill moved to the office. It is unlikely that if 'Emily is a mouse' or 'Bill moved to the office' or both then Julius is a lion. It is probably not the case that if either 'Bill moved to the office' or 'Sandra left the apple' but not both then Greg is yellow. It is unlikely that if either 'Emily is a mouse' or 'Bill moved to the office' but not both then Bernhard is gray.
hypothesis: It is impossible that either 'Bernhard is gray' or 'Emily is a mouse' but not both.
valid_hypothesis: There is a better than even chance that either 'Bernhard is gray' or 'Emily is a mouse' but not both.
invalid_hypothesis: It is impossible that either 'Bernhard is gray' or 'Emily is a mouse' but not 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.5::factA.
    0.7::factB.
    0.75::factC.
    %hop1
    0.2::factX:-or(factA,factC).
    0.25::factY:-xor(factC,factB).
    0.2::factZ:-xor(factA,factC).
  
    %hop2
    conclusion:-xor(factZ,factA).
  
    query(conclusion).
    
hypothesis_assertion: Either 'Bernhard is gray' or 'Emily is a mouse' but not both.