context: It is highly likely that Julius is white. We believe that Lily is a swan. Chances are slight that Sumit is tired. It is probably not the case that if 'Sumit is tired and Julius is white' then Jeff discarded the milk. Chances are slight that if 'Sumit is tired and Julius is white' then Greg is gray. It is probably the case that if 'Sumit is tired' or 'Julius is white' or both then Bernhard is a frog.
hypothesis: Chances are slight that either 'Bernhard is a frog' or 'Greg is gray' but not both.
valid_hypothesis: There is a better than even chance that either 'Bernhard is a frog' or 'Greg is gray' but not both.
invalid_hypothesis: Chances are slight that either 'Bernhard is a frog' or 'Greg is gray' 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.9::factA.
    0.75::factB.
    0.1::factC.
    %hop1
    0.25::factX:-and(factC,factA).
    0.1::factY:-and(factC,factA).
    0.7::factZ:-or(factC,factA).
  
    %hop2
    conclusion:-xor(factZ,factY).
  
    query(conclusion).
    
hypothesis_assertion: Either 'Bernhard is a frog' or 'Greg is gray' but not both.