context: It is unlikely that Bernhard is gray. It is almost certain that Fred dropped the milk. We believe that Mary took the football. We doubt that if either 'Mary took the football' or 'Bernhard is gray' but not both then Jessica is a mouse. There is a better than even chance that if 'Fred dropped the milk' or 'Bernhard is gray' or both then Greg is yellow. There is a better than even chance that if either 'Bernhard is gray' or 'Mary took the football' but not both then Julius is green.
hypothesis: It is likely that either 'Bernhard is gray' or 'Mary took the football' but not both.
valid_hypothesis: It is likely that either 'Bernhard is gray' or 'Mary took the football' but not both.
invalid_hypothesis: There is little chance that either 'Bernhard is gray' or 'Mary took the football' 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.95::factB.
    0.75::factC.
    %hop1
    0.2::factX:-xor(factC,factA).
    0.6::factY:-or(factB,factA).
    0.6::factZ:-xor(factA,factC).
  
    %hop2
    conclusion:-xor(factA,factC).
  
    query(conclusion).
    
hypothesis_assertion: Either 'Bernhard is gray' or 'Mary took the football' but not both.