context: We believe that Julius is a swan. There is almost no chance that Brian is gray. There is a better than even chance that Bernhard is green. There is little chance that if 'Brian is gray' or 'Bernhard is green' or both then Bill went to the kitchen. There is almost no chance that if 'Brian is gray and Julius is a swan' then John left the milk. It is highly likely that if either 'Brian is gray' or 'Julius is a swan' but not both then Lily is a rhino.
hypothesis: It is unlikely that 'Lily is a rhino' or 'Julius is a swan' or both.
valid_hypothesis: We believe that 'Lily is a rhino' or 'Julius is a swan' or both.
invalid_hypothesis: It is unlikely that 'Lily is a rhino' or 'Julius is a swan' 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.02::factB.
    0.6::factC.
    %hop1
    0.1::factX:-or(factB,factC).
    0.02::factY:-and(factB,factA).
    0.9::factZ:-xor(factB,factA).
  
    %hop2
    conclusion:-or(factZ,factA).
  
    query(conclusion).
    
hypothesis_assertion: 'Lily is a rhino' or 'Julius is a swan' or both.