context: There is a very good chance that John went to the hallway. There is a very good chance that Bernhard is a swan. It is certain that Sandra left the football. It is highly likely that if 'Bernhard is a swan and John went to the hallway' then Julius is a rhino. There is a better than even chance that if 'Sandra left the football and John went to the hallway' then Mary got the apple. It is unlikely that if 'John went to the hallway' or 'Sandra left the football' or both then Lily is a lion.
hypothesis: It is unlikely that either 'Julius is a rhino' or 'John went to the hallway' but not both.
valid_hypothesis: It is unlikely that either 'Julius is a rhino' or 'John went to the hallway' but not both.
invalid_hypothesis: It is certain that either 'Julius is a rhino' or 'John went to the hallway' 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.8::factA.
    0.8::factB.
    1.0::factC.
    %hop1
    0.9::factX:-and(factB,factA).
    0.6::factY:-and(factC,factA).
    0.2::factZ:-or(factA,factC).
  
    %hop2
    conclusion:-xor(factX,factA).
  
    query(conclusion).
    
hypothesis_assertion: Either 'Julius is a rhino' or 'John went to the hallway' but not both.