context: It is impossible that Bill moved to the office. We believe that Antoine is thirsty. It is probably the case that Sandra left the apple. It is certain that if 'Antoine is thirsty' or 'Sandra left the apple' or both then John put down the apple. It is probable that if either 'Antoine is thirsty' or 'Sandra left the apple' but not both then Lily is a rhino. It is highly unlikely that if either 'Sandra left the apple' or 'Antoine is thirsty' but not both then Bernhard is green.
hypothesis: It is highly likely that either 'John put down the apple' or 'Bernhard is green' but not both.
valid_hypothesis: It is highly likely that either 'John put down the apple' or 'Bernhard is green' but not both.
invalid_hypothesis: We doubt that either 'John put down the apple' or 'Bernhard is green' 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.0::factA.
    0.75::factB.
    0.7::factC.
    %hop1
    1.0::factX:-or(factB,factC).
    0.7::factY:-xor(factB,factC).
    0.05::factZ:-xor(factC,factB).
  
    %hop2
    conclusion:-xor(factX,factZ).
  
    query(conclusion).
    
hypothesis_assertion: Either 'John put down the apple' or 'Bernhard is green' but not both.