context: It is certain that Mary got the football. There is a very good chance that Greg is green. It is likely that John moved to the garden. It is probably not the case that if either 'Mary got the football' or 'Greg is green' but not both then Jessica is a cat. There is almost no chance that if 'Greg is green' or 'Mary got the football' or both then Bernhard is gray. There is a very good chance that if 'John moved to the garden and Mary got the football' then Jeff went to the hallway.
hypothesis: It is probably not the case that either 'John moved to the garden' or 'Mary got the football' but not both.
valid_hypothesis: It is probably not the case that either 'John moved to the garden' or 'Mary got the football' but not both.
invalid_hypothesis: It is probably the case that either 'John moved to the garden' or 'Mary got the football' 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
    1.0::factA.
    0.8::factB.
    0.7::factC.
    %hop1
    0.25::factX:-xor(factA,factB).
    0.02::factY:-or(factB,factA).
    0.8::factZ:-and(factC,factA).
  
    %hop2
    conclusion:-xor(factC,factA).
  
    query(conclusion).
    
hypothesis_assertion: Either 'John moved to the garden' or 'Mary got the football' but not both.