context: We believe that John went to the office. It is probable that Lily is a swan. It is probably the case that Sandra got the football. It is probably the case that if 'John went to the office and Sandra got the football' then Greg is white. There is little chance that if 'Lily is a swan and Sandra got the football' then Brian is green. It is improbable that if 'John went to the office' or 'Sandra got the football' or both then Winona is a cat.
hypothesis: We believe that 'Lily is a swan' or 'Winona is a cat' or both.
valid_hypothesis: We believe that 'Lily is a swan' or 'Winona is a cat' or both.
invalid_hypothesis: It is improbable that 'Lily is a swan' or 'Winona is a cat' 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.75::factA.
    0.7::factB.
    0.7::factC.
    %hop1
    0.7::factX:-and(factA,factC).
    0.1::factY:-and(factB,factC).
    0.1::factZ:-or(factA,factC).
  
    %hop2
    conclusion:-or(factB,factZ).
  
    query(conclusion).
    
hypothesis_assertion: 'Lily is a swan' or 'Winona is a cat' or both.