context: It is impossible that Sandra put down the milk. There is almost no chance that Jeff went to the bedroom. It is highly unlikely that Lily is a swan. There is little chance that if 'Jeff went to the bedroom and Lily is a swan' then Brian is a frog. Chances are slight that if either 'Sandra put down the milk' or 'Jeff went to the bedroom' but not both then Mary got the apple. There is little chance that if either 'Jeff went to the bedroom' or 'Lily is a swan' but not both then Greg is white.
hypothesis: It is impossible that either 'Brian is a frog' or 'Greg is white' but not both.
valid_hypothesis: It is impossible that either 'Brian is a frog' or 'Greg is white' but not both.
invalid_hypothesis: There is a better than even chance that either 'Brian is a frog' or 'Greg is white' 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.0::factA.
    0.02::factB.
    0.05::factC.
    %hop1
    0.1::factX:-and(factB,factC).
    0.1::factY:-xor(factA,factB).
    0.1::factZ:-xor(factB,factC).
  
    %hop2
    conclusion:-xor(factX,factZ).
  
    query(conclusion).
    
hypothesis_assertion: Either 'Brian is a frog' or 'Greg is white' but not both.