context: It is unlikely that Emily is a wolf. It is probably the case that Yann is hungry. It is impossible that Greg is yellow. It is certain that if 'Yann is hungry' or 'Greg is yellow' or both then Jessica is a cat. It is almost certain that if 'Emily is a wolf' or 'Yann is hungry' or both then Mary went to the kitchen. There is a better than even chance that if either 'Yann is hungry' or 'Emily is a wolf' but not both then Bernhard is a swan.
hypothesis: It is unlikely that 'Greg is yellow' or 'Emily is a wolf' or both.
valid_hypothesis: It is unlikely that 'Greg is yellow' or 'Emily is a wolf' or both.
invalid_hypothesis: It is likely that 'Greg is yellow' or 'Emily is a wolf' 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.2::factA.
    0.7::factB.
    0.0::factC.
    %hop1
    1.0::factX:-or(factB,factC).
    0.95::factY:-or(factA,factB).
    0.6::factZ:-xor(factB,factA).
  
    %hop2
    conclusion:-or(factC,factA).
  
    query(conclusion).
    
hypothesis_assertion: 'Greg is yellow' or 'Emily is a wolf' or both.