context: We doubt that Greg is yellow. It is certain that John put down the milk. We doubt that Mary went to the bedroom. It is likely that if 'Mary went to the bedroom' or 'John put down the milk' or both then Lily is a lion. We doubt that if 'Mary went to the bedroom and John put down the milk' then Bernhard is a frog. There is little chance that if either 'Mary went to the bedroom' or 'John put down the milk' but not both then Julius is a rhino.
hypothesis: Chances are slight that either 'Lily is a lion' or 'Greg is yellow' but not both.
valid_hypothesis: There is a better than even chance that either 'Lily is a lion' or 'Greg is yellow' but not both.
invalid_hypothesis: Chances are slight that either 'Lily is a lion' or 'Greg 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.2::factA.
    1.0::factB.
    0.2::factC.
    %hop1
    0.7::factX:-or(factC,factB).
    0.2::factY:-and(factC,factB).
    0.1::factZ:-xor(factC,factB).
  
    %hop2
    conclusion:-xor(factX,factA).
  
    query(conclusion).
    
hypothesis_assertion: Either 'Lily is a lion' or 'Greg is yellow' but not both.