context: There is almost no chance that Greg is a swan. There is almost no chance that Julius is gray. It is likely that Brian is white. There is little chance that if either 'Julius is gray' or 'Brian is white' but not both then John took the apple. It is almost certain that if 'Brian is white' or 'Julius is gray' or both then Lily is green. It is almost certain that if 'Brian is white' or 'Julius is gray' or both then Winona is a wolf.
hypothesis: It is likely that 'Lily is green' or 'John took the apple' or both.
valid_hypothesis: It is likely that 'Lily is green' or 'John took the apple' or both.
invalid_hypothesis: Chances are slight that 'Lily is green' or 'John took 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.02::factA.
    0.02::factB.
    0.7::factC.
    %hop1
    0.1::factX:-xor(factB,factC).
    0.95::factY:-or(factC,factB).
    0.95::factZ:-or(factC,factB).
  
    %hop2
    conclusion:-or(factY,factX).
  
    query(conclusion).
    
hypothesis_assertion: 'Lily is green' or 'John took the apple' or both.