context: It is almost certain that Daniel got the football. It is almost certain that Greg is yellow. Chances are about even that Brian is a frog. Chances are about even that if 'Daniel got the football and Greg is yellow' then Bernhard is yellow. It is probably the case that if 'Greg is yellow and Brian is a frog' then Mary picked up the apple. It is impossible that if 'Daniel got the football and Greg is yellow' then John moved to the garden.
hypothesis: There is almost no chance that either 'Mary picked up the apple' or 'Bernhard is yellow' but not both.
valid_hypothesis: Chances are about even that either 'Mary picked up the apple' or 'Bernhard is yellow' but not both.
invalid_hypothesis: There is almost no chance that either 'Mary picked up the apple' or 'Bernhard 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.95::factA.
    0.95::factB.
    0.5::factC.
    %hop1
    0.5::factX:-and(factA,factB).
    0.7::factY:-and(factB,factC).
    0.0::factZ:-and(factA,factB).
  
    %hop2
    conclusion:-xor(factY,factX).
  
    query(conclusion).
    
hypothesis_assertion: Either 'Mary picked up the apple' or 'Bernhard is yellow' but not both.