context: It is probable that Greg is green. There is almost no chance that Brian is a rhino. It is almost certain that Mary moved to the garden. It is impossible that if 'Greg is green' or 'Mary moved to the garden' or both then Bill got the milk there. It is almost certain that if 'Mary moved to the garden' or 'Greg is green' or both then Winona is a wolf. It is almost certain that if 'Brian is a rhino and Mary moved to the garden' then Julius is a frog.
hypothesis: It is probably not the case that either 'Greg is green' or 'Mary moved to the garden' but not both.
valid_hypothesis: It is probably not the case that either 'Greg is green' or 'Mary moved to the garden' but not both.
invalid_hypothesis: It is probably the case that either 'Greg is green' or 'Mary moved to the garden' 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.7::factA.
    0.02::factB.
    0.95::factC.
    %hop1
    0.0::factX:-or(factA,factC).
    0.95::factY:-or(factC,factA).
    0.95::factZ:-and(factB,factC).
  
    %hop2
    conclusion:-xor(factA,factC).
  
    query(conclusion).
    
hypothesis_assertion: Either 'Greg is green' or 'Mary moved to the garden' but not both.