context: It is probably not the case that Brian is a frog. It is impossible that Mary went to the hallway. We doubt that John is in the garden. Chances are slight that if 'Brian is a frog and John is in the garden' then Gertrude is a cat. It is probably the case that if 'John is in the garden' or 'Mary went to the hallway' or both then Julius is white. It is highly unlikely that if 'John is in the garden and Brian is a frog' then Greg is a lion.
hypothesis: It is impossible that 'John is in the garden and Greg is a lion'.
valid_hypothesis: It is impossible that 'John is in the garden and Greg is a lion'.
invalid_hypothesis: It is certain that 'John is in the garden and Greg is a lion'.
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.25::factA.
    0.0::factB.
    0.2::factC.
    %hop1
    0.1::factX:-and(factA,factC).
    0.7::factY:-or(factC,factB).
    0.05::factZ:-and(factC,factA).
  
    %hop2
    conclusion:-and(factC,factZ).
  
    query(conclusion).
    
hypothesis_assertion: 'John is in the garden and Greg is a lion'.