context: Chances are about even that Sandra left the milk. There is little chance that Fred is in the cinema. It is probably the case that John moved to the office. It is likely that if 'Sandra left the milk and Fred is in the cinema' then Emily is a mouse. It is probably not the case that if either 'Sandra left the milk' or 'Fred is in the cinema' but not both then Lily is yellow. It is probably the case that if either 'John moved to the office' or 'Sandra left the milk' but not both then Mary grabbed the apple.
hypothesis: It is highly unlikely that either 'John moved to the office' or 'Sandra left the milk' but not both.
valid_hypothesis: Chances are about even that either 'John moved to the office' or 'Sandra left the milk' but not both.
invalid_hypothesis: It is highly unlikely that either 'John moved to the office' or 'Sandra left 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.5::factA.
    0.1::factB.
    0.7::factC.
    %hop1
    0.7::factX:-and(factA,factB).
    0.25::factY:-xor(factA,factB).
    0.7::factZ:-xor(factC,factA).
  
    %hop2
    conclusion:-xor(factC,factA).
  
    query(conclusion).
    
hypothesis_assertion: Either 'John moved to the office' or 'Sandra left the milk' but not both.