context: It is probably the case that Winona is a sheep. It is unlikely that Greg is gray. There is almost no chance that John dropped the milk. There is little chance that if 'Greg is gray and Winona is a sheep' then Lily is yellow. There is little chance that if 'Greg is gray and John dropped the milk' then Mary went to the garden. It is probable that if 'Winona is a sheep and Greg is gray' then Yann is hungry.
hypothesis: It is probable that either 'John dropped the milk' or 'Lily is yellow' but not both.
valid_hypothesis: There is almost no chance that either 'John dropped the milk' or 'Lily is yellow' but not both.
invalid_hypothesis: It is probable that either 'John dropped the milk' or 'Lily is yellow' 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.7::factA.
    0.2::factB.
    0.02::factC.
    %hop1
    0.1::factX:-and(factB,factA).
    0.1::factY:-and(factB,factC).
    0.7::factZ:-and(factA,factB).
  
    %hop2
    conclusion:-xor(factC,factX).
  
    query(conclusion).
    
hypothesis_assertion: Either 'John dropped the milk' or 'Lily is yellow' but not both.