context: It is highly unlikely that Mary grabbed the milk. It is certain that Brian is a lion. There is a better than even chance that John moved to the garden. It is probably not the case that if either 'Mary grabbed the milk' or 'John moved to the garden' but not both then Bernhard is a frog. It is unlikely that if 'John moved to the garden and Mary grabbed the milk' then Greg is yellow. There is a better than even chance that if 'John moved to the garden' or 'Brian is a lion' or both then Daniel dropped the apple.
hypothesis: It is almost certain that 'John moved to the garden and Greg is yellow'.
valid_hypothesis: It is impossible that 'John moved to the garden and Greg is yellow'.
invalid_hypothesis: It is almost certain that 'John moved to the garden and Greg is yellow'.
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.05::factA.
    1.0::factB.
    0.6::factC.
    %hop1
    0.25::factX:-xor(factA,factC).
    0.2::factY:-and(factC,factA).
    0.6::factZ:-or(factC,factB).
  
    %hop2
    conclusion:-and(factC,factY).
  
    query(conclusion).
    
hypothesis_assertion: 'John moved to the garden and Greg is yellow'.