context: It is highly likely that Brian is a swan. There is little chance that Bernhard is gray. It is likely that Mary is in the bathroom. We believe that if 'Mary is in the bathroom and Bernhard is gray' then John moved to the office. It is unlikely that if either 'Mary is in the bathroom' or 'Brian is a swan' but not both then Greg is a lion. It is almost certain that if either 'Brian is a swan' or 'Bernhard is gray' but not both then Lily is a rhino.
hypothesis: It is certain that 'Brian is a swan and John moved to the office'.
valid_hypothesis: It is highly unlikely that 'Brian is a swan and John moved to the office'.
invalid_hypothesis: It is certain that 'Brian is a swan and John moved to the office'.
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.9::factA.
    0.1::factB.
    0.7::factC.
    %hop1
    0.75::factX:-and(factC,factB).
    0.2::factY:-xor(factC,factA).
    0.95::factZ:-xor(factA,factB).
  
    %hop2
    conclusion:-and(factA,factX).
  
    query(conclusion).
    
hypothesis_assertion: 'Brian is a swan and John moved to the office'.