context: We believe that Lily is white. It is almost certain that Bernhard is gray. There is a very good chance that John picked up the apple. Chances are about even that if 'Lily is white and Bernhard is gray' then Fred went to the garden. It is highly unlikely that if 'John picked up the apple and Lily is white' then Winona is a wolf. It is impossible that if 'John picked up the apple and Bernhard is gray' then Daniel got the milk.
hypothesis: We believe that either 'Fred went to the garden' or 'Daniel got the milk' but not both.
valid_hypothesis: It is probably not the case that either 'Fred went to the garden' or 'Daniel got the milk' but not both.
invalid_hypothesis: We believe that either 'Fred went to the garden' or 'Daniel got the milk' 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.75::factA.
    0.95::factB.
    0.8::factC.
    %hop1
    0.5::factX:-and(factA,factB).
    0.05::factY:-and(factC,factA).
    0.0::factZ:-and(factC,factB).
  
    %hop2
    conclusion:-xor(factX,factZ).
  
    query(conclusion).
    
hypothesis_assertion: Either 'Fred went to the garden' or 'Daniel got the milk' but not both.