context: We doubt that Lily is green. It is impossible that John picked up the apple. It is impossible that Mary left the milk. It is improbable that if 'Mary left the milk' or 'Lily is green' or both then Greg is a swan. There is little chance that if 'Mary left the milk and John picked up the apple' then Gertrude is a sheep. It is highly unlikely that if either 'Lily is green' or 'John picked up the apple' but not both then Brian is green.
hypothesis: There is a very good chance that either 'Brian is green' or 'Greg is a swan' but not both.
valid_hypothesis: There is almost no chance that either 'Brian is green' or 'Greg is a swan' but not both.
invalid_hypothesis: There is a very good chance that either 'Brian is green' or 'Greg is a swan' 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.
    0.0::factB.
    0.0::factC.
    %hop1
    0.1::factX:-or(factC,factA).
    0.1::factY:-and(factC,factB).
    0.05::factZ:-xor(factA,factB).
  
    %hop2
    conclusion:-xor(factZ,factX).
  
    query(conclusion).
    
hypothesis_assertion: Either 'Brian is green' or 'Greg is a swan' but not both.