context: Chances are slight that Lily is white. It is certain that Daniel got the football. It is probably the case that John went to the office. It is highly likely that if 'Daniel got the football and John went to the office' then Jessica is a cat. It is certain that if 'Lily is white' or 'John went to the office' or both then Greg is yellow. There is almost no chance that if 'Lily is white and Daniel got the football' then Gertrude is a sheep.
hypothesis: There is a better than even chance that 'Jessica is a cat' or 'Gertrude is a sheep' or both.
valid_hypothesis: There is a better than even chance that 'Jessica is a cat' or 'Gertrude is a sheep' or both.
invalid_hypothesis: It is improbable that 'Jessica is a cat' or 'Gertrude is a sheep' 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.1::factA.
    1.0::factB.
    0.7::factC.
    %hop1
    0.9::factX:-and(factB,factC).
    1.0::factY:-or(factA,factC).
    0.02::factZ:-and(factA,factB).
  
    %hop2
    conclusion:-or(factX,factZ).
  
    query(conclusion).
    
hypothesis_assertion: 'Jessica is a cat' or 'Gertrude is a sheep' or both.