context: It is unlikely that Greg is green. It is probably not the case that Julius is white. Chances are slight that Brian is gray. It is impossible that if either 'Greg is green' or 'Julius is white' but not both then Bernhard is white. It is almost certain that if 'Brian is gray' or 'Julius is white' or both then John went to the hallway. There is almost no chance that if 'Greg is green' or 'Julius is white' or both then Daniel got the milk.
hypothesis: There is a very good chance that either 'Brian is gray' or 'Bernhard is white' but not both.
valid_hypothesis: There is little chance that either 'Brian is gray' or 'Bernhard is white' but not both.
invalid_hypothesis: There is a very good chance that either 'Brian is gray' or 'Bernhard is white' 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.2::factA.
    0.25::factB.
    0.1::factC.
    %hop1
    0.0::factX:-xor(factA,factB).
    0.95::factY:-or(factC,factB).
    0.02::factZ:-or(factA,factB).
  
    %hop2
    conclusion:-xor(factC,factX).
  
    query(conclusion).
    
hypothesis_assertion: Either 'Brian is gray' or 'Bernhard is white' but not both.