context: Chances are slight that John moved to the office. It is highly likely that Mary went to the kitchen. It is probable that Bernhard is green. We doubt that if 'Bernhard is green' or 'Mary went to the kitchen' or both then Fred is in the school. It is improbable that if 'Bernhard is green' or 'John moved to the office' or both then Emily is a sheep. Chances are about even that if 'Bernhard is green and Mary went to the kitchen' then Lily is a frog.
hypothesis: It is impossible that either 'John moved to the office' or 'Mary went to the kitchen' but not both.
valid_hypothesis: There is a very good chance that either 'John moved to the office' or 'Mary went to the kitchen' but not both.
invalid_hypothesis: It is impossible that either 'John moved to the office' 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.1::factA.
    0.9::factB.
    0.7::factC.
    %hop1
    0.2::factX:-or(factC,factB).
    0.1::factY:-or(factC,factA).
    0.5::factZ:-and(factC,factB).
  
    %hop2
    conclusion:-xor(factA,factB).
  
    query(conclusion).
    
hypothesis_assertion: Either 'John moved to the office' or 'Mary went to the kitchen' but not both.