context: There is little chance that John went to the kitchen. It is highly likely that Lily is a lion. It is probable that Greg is gray. It is likely that if 'John went to the kitchen and Greg is gray' then Fred left the football. Chances are slight that if 'Greg is gray and John went to the kitchen' then Bernhard is yellow. There is a better than even chance that if 'Greg is gray and Lily is a lion' then Yann is bored.
hypothesis: It is unlikely that either 'Lily is a lion' or 'Bernhard is yellow' but not both.
valid_hypothesis: It is highly likely that either 'Lily is a lion' or 'Bernhard is yellow' but not both.
invalid_hypothesis: It is unlikely that either 'Lily is a lion' or 'Bernhard is yellow' 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.7::factX:-and(factA,factC).
    0.1::factY:-and(factC,factA).
    0.6::factZ:-and(factC,factB).
  
    %hop2
    conclusion:-xor(factB,factY).
  
    query(conclusion).
    
hypothesis_assertion: Either 'Lily is a lion' or 'Bernhard is yellow' but not both.