context: It is probably the case that Brian is a frog. There is almost no chance that John went to the kitchen. It is likely that Mary picked up the milk. There is little chance that if either 'Brian is a frog' or 'John went to the kitchen' but not both then Sandra left the apple. It is probable that if 'Mary picked up the milk' or 'John went to the kitchen' or both then Greg is a rhino. It is highly unlikely that if 'Mary picked up the milk' or 'Brian is a frog' or both then Julius is a swan.
hypothesis: There is little chance that either 'Sandra left the apple' or 'Julius is a swan' but not both.
valid_hypothesis: There is little chance that either 'Sandra left the apple' or 'Julius is a swan' but not both.
invalid_hypothesis: It is highly likely that either 'Sandra left the apple' or 'Julius is a swan' 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.02::factB.
    0.7::factC.
    %hop1
    0.1::factX:-xor(factA,factB).
    0.7::factY:-or(factC,factB).
    0.05::factZ:-or(factC,factA).
  
    %hop2
    conclusion:-xor(factX,factZ).
  
    query(conclusion).
    
hypothesis_assertion: Either 'Sandra left the apple' or 'Julius is a swan' but not both.