context: It is unlikely that Jeff moved to the garden. It is highly likely that Greg is yellow. It is highly likely that Julius is white. There is almost no chance that if 'Julius is white' or 'Greg is yellow' or both then Jessica is a cat. There is little chance that if either 'Jeff moved to the garden' or 'Julius is white' but not both then Bernhard is a swan. Chances are slight that if either 'Jeff moved to the garden' or 'Julius is white' but not both then Lily is green.
hypothesis: It is improbable that 'Bernhard is a swan' or 'Jessica is a cat' or both.
valid_hypothesis: It is improbable that 'Bernhard is a swan' or 'Jessica is a cat' or both.
invalid_hypothesis: It is highly likely that 'Bernhard is a swan' or 'Jessica is a cat' or 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.2::factA.
    0.9::factB.
    0.9::factC.
    %hop1
    0.02::factX:-or(factC,factB).
    0.1::factY:-xor(factA,factC).
    0.1::factZ:-xor(factA,factC).
  
    %hop2
    conclusion:-or(factY,factX).
  
    query(conclusion).
    
hypothesis_assertion: 'Bernhard is a swan' or 'Jessica is a cat' or both.