context: We believe that Bernhard is gray. It is impossible that Daniel grabbed the milk. It is probably not the case that Mary got the football. Chances are slight that if 'Mary got the football and Bernhard is gray' then Gertrude is a cat. We believe that if 'Daniel grabbed the milk' or 'Mary got the football' or both then John picked up the apple. There is almost no chance that if either 'Bernhard is gray' or 'Daniel grabbed the milk' but not both then Sandra dropped the milk.
hypothesis: There is almost no chance that either 'Bernhard is gray' or 'John picked up the apple' but not both.
valid_hypothesis: It is likely that either 'Bernhard is gray' or 'John picked up the apple' but not both.
invalid_hypothesis: There is almost no chance that either 'Bernhard is gray' or 'John picked up the apple' 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.75::factA.
    0.0::factB.
    0.25::factC.
    %hop1
    0.1::factX:-and(factC,factA).
    0.75::factY:-or(factB,factC).
    0.02::factZ:-xor(factA,factB).
  
    %hop2
    conclusion:-xor(factA,factY).
  
    query(conclusion).
    
hypothesis_assertion: Either 'Bernhard is gray' or 'John picked up the apple' but not both.