context: It is impossible that Julius is yellow. It is probable that Jeff went to the garden. Chances are about even that Greg is white. There is a very good chance that if either 'Greg is white' or 'Jeff went to the garden' but not both then Brian is a frog. It is almost certain that if 'Julius is yellow and Jeff went to the garden' then Lily is green. It is probably not the case that if 'Jeff went to the garden' or 'Greg is white' or both then John discarded the apple.
hypothesis: It is impossible that 'Brian is a frog' or 'John discarded the apple' or both.
valid_hypothesis: Chances are about even that 'Brian is a frog' or 'John discarded the apple' or both.
invalid_hypothesis: It is impossible that 'Brian is a frog' or 'John discarded the apple' 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.0::factA.
    0.7::factB.
    0.5::factC.
    %hop1
    0.8::factX:-xor(factC,factB).
    0.95::factY:-and(factA,factB).
    0.25::factZ:-or(factB,factC).
  
    %hop2
    conclusion:-or(factX,factZ).
  
    query(conclusion).
    
hypothesis_assertion: 'Brian is a frog' or 'John discarded the apple' or both.