context: It is probably not the case that Julius is a frog. Chances are about even that John picked up the milk. We believe that Jeff went to the garden. Chances are slight that if 'Julius is a frog' or 'John picked up the milk' or both then Fred is in the cinema. Chances are slight that if either 'Julius is a frog' or 'John picked up the milk' but not both then Mary got the football. It is probably the case that if either 'John picked up the milk' or 'Jeff went to the garden' but not both then Lily is a rhino.
hypothesis: We believe that either 'Mary got the football' or 'Jeff went to the garden' but not both.
valid_hypothesis: We believe that either 'Mary got the football' or 'Jeff went to the garden' but not both.
invalid_hypothesis: It is unlikely that either 'Mary got the football' or 'Jeff went to the garden' 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.25::factA.
    0.5::factB.
    0.75::factC.
    %hop1
    0.1::factX:-or(factA,factB).
    0.1::factY:-xor(factA,factB).
    0.7::factZ:-xor(factB,factC).
  
    %hop2
    conclusion:-xor(factY,factC).
  
    query(conclusion).
    
hypothesis_assertion: Either 'Mary got the football' or 'Jeff went to the garden' but not both.