context: There is little chance that Sumit is thirsty. We doubt that Bernhard is a swan. It is impossible that Sandra got the football. Chances are about even that if either 'Sandra got the football' or 'Sumit is thirsty' but not both then Jessica is a cat. It is probably not the case that if 'Sandra got the football' or 'Sumit is thirsty' or both then Greg is yellow. It is probably not the case that if 'Sumit is thirsty' or 'Sandra got the football' or both then John dropped the apple.
hypothesis: It is likely that 'Bernhard is a swan and Greg is yellow'.
valid_hypothesis: It is impossible that 'Bernhard is a swan and Greg is yellow'.
invalid_hypothesis: It is likely that 'Bernhard is a swan and Greg is yellow'.
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.2::factB.
    0.0::factC.
    %hop1
    0.5::factX:-xor(factC,factA).
    0.25::factY:-or(factC,factA).
    0.25::factZ:-or(factA,factC).
  
    %hop2
    conclusion:-and(factB,factY).
  
    query(conclusion).
    
hypothesis_assertion: 'Bernhard is a swan and Greg is yellow'.