context: We doubt that Greg is white. It is certain that Mary dropped the apple. It is certain that Brian is yellow. It is almost certain that if either 'Mary dropped the apple' or 'Greg is white' but not both then Antoine is hungry. It is likely that if 'Mary dropped the apple and Brian is yellow' then Julius is green. It is highly likely that if either 'Mary dropped the apple' or 'Greg is white' but not both then Bernhard is a swan.
hypothesis: It is almost certain that 'Bernhard is a swan and Greg is white'.
valid_hypothesis: It is impossible that 'Bernhard is a swan and Greg is white'.
invalid_hypothesis: It is almost certain that 'Bernhard is a swan and Greg is white'.
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.
    1.0::factB.
    1.0::factC.
    %hop1
    0.95::factX:-xor(factB,factA).
    0.7::factY:-and(factB,factC).
    0.9::factZ:-xor(factB,factA).
  
    %hop2
    conclusion:-and(factZ,factA).
  
    query(conclusion).
    
hypothesis_assertion: 'Bernhard is a swan and Greg is white'.