context: It is highly likely that John got the apple. It is likely that Jessica is a mouse. It is likely that Brian is white. It is highly likely that if 'John got the apple' or 'Brian is white' or both then Mary went to the kitchen. We believe that if 'Jessica is a mouse' or 'John got the apple' or both then Bernhard is a swan. It is certain that if 'Brian is white' or 'Jessica is a mouse' or both then Greg is a frog.
hypothesis: It is impossible that 'John got the apple' or 'Greg is a frog' or both.
valid_hypothesis: It is certain that 'John got the apple' or 'Greg is a frog' or both.
invalid_hypothesis: It is impossible that 'John got the apple' or 'Greg is a frog' or 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.9::factA.
    0.7::factB.
    0.7::factC.
    %hop1
    0.9::factX:-or(factA,factC).
    0.75::factY:-or(factB,factA).
    1.0::factZ:-or(factC,factB).
  
    %hop2
    conclusion:-or(factA,factZ).
  
    query(conclusion).
    
hypothesis_assertion: 'John got the apple' or 'Greg is a frog' or both.