context: It is certain that Mary took the football. It is certain that Greg is green. There is a better than even chance that John dropped the apple. Chances are about even that if either 'John dropped the apple' or 'Greg is green' but not both then Fred moved to the office. There is little chance that if either 'Mary took the football' or 'Greg is green' but not both then Bernhard is gray. It is improbable that if 'John dropped the apple' or 'Mary took the football' or both then Lily is green.
hypothesis: There is little chance that either 'Mary took the football' or 'Fred moved to the office' but not both.
valid_hypothesis: There is a very good chance that either 'Mary took the football' or 'Fred moved to the office' but not both.
invalid_hypothesis: There is little chance that either 'Mary took the football' or 'Fred moved to the office' 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
    1.0::factA.
    1.0::factB.
    0.6::factC.
    %hop1
    0.5::factX:-xor(factC,factB).
    0.1::factY:-xor(factA,factB).
    0.1::factZ:-or(factC,factA).
  
    %hop2
    conclusion:-xor(factA,factX).
  
    query(conclusion).
    
hypothesis_assertion: Either 'Mary took the football' or 'Fred moved to the office' but not both.