context: We doubt that Lily is white. It is probably the case that Jeff moved to the garden. There is little chance that Mary went to the kitchen. It is probably not the case that if 'Jeff moved to the garden' or 'Lily is white' or both then John discarded the apple. It is probably not the case that if 'Lily is white and Jeff moved to the garden' then Bernhard is green. It is highly likely that if 'Mary went to the kitchen and Jeff moved to the garden' then Greg is a frog.
hypothesis: It is certain that either 'Lily is white' or 'Mary went to the kitchen' but not both.
valid_hypothesis: It is probably not the case that either 'Lily is white' or 'Mary went to the kitchen' but not both.
invalid_hypothesis: It is certain that either 'Lily is white' or 'Mary went to the kitchen' 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.2::factA.
    0.7::factB.
    0.1::factC.
    %hop1
    0.25::factX:-or(factB,factA).
    0.25::factY:-and(factA,factB).
    0.9::factZ:-and(factC,factB).
  
    %hop2
    conclusion:-xor(factA,factC).
  
    query(conclusion).
    
hypothesis_assertion: Either 'Lily is white' or 'Mary went to the kitchen' but not both.