context: It is likely that Brian is a rhino. There is a very good chance that Mary went to the hallway. It is probably not the case that Jeff moved to the garden. It is improbable that if 'Jeff moved to the garden and Mary went to the hallway' then Lily is white. It is improbable that if 'Mary went to the hallway' or 'Jeff moved to the garden' or both then Daniel got the apple. It is likely that if 'Brian is a rhino and Jeff moved to the garden' then Bernhard is a lion.
hypothesis: It is certain that either 'Bernhard is a lion' or 'Jeff moved to the garden' but not both.
valid_hypothesis: It is improbable that either 'Bernhard is a lion' or 'Jeff moved to the garden' but not both.
invalid_hypothesis: It is certain that either 'Bernhard is a lion' or 'Jeff moved to the garden' 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.8::factB.
    0.25::factC.
    %hop1
    0.1::factX:-and(factC,factB).
    0.1::factY:-or(factB,factC).
    0.7::factZ:-and(factA,factC).
  
    %hop2
    conclusion:-xor(factZ,factC).
  
    query(conclusion).
    
hypothesis_assertion: Either 'Bernhard is a lion' or 'Jeff moved to the garden' but not both.