context: It is certain that John discarded the apple. It is almost certain that Bernhard is a swan. It is almost certain that Mary moved to the garden. It is certain that if either 'John discarded the apple' or 'Bernhard is a swan' but not both then Greg is a rhino. It is unlikely that if either 'John discarded the apple' or 'Mary moved to the garden' but not both then Brian is yellow. Chances are about even that if 'John discarded the apple' or 'Mary moved to the garden' or both then Julius is gray.
hypothesis: It is highly likely that 'Mary moved to the garden and Bernhard is a swan'.
valid_hypothesis: It is highly likely that 'Mary moved to the garden and Bernhard is a swan'.
invalid_hypothesis: We doubt that 'Mary moved to the garden and Bernhard is a swan'.
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
    1.0::factA.
    0.95::factB.
    0.95::factC.
    %hop1
    1.0::factX:-xor(factA,factB).
    0.2::factY:-xor(factA,factC).
    0.5::factZ:-or(factA,factC).
  
    %hop2
    conclusion:-and(factC,factB).
  
    query(conclusion).
    
hypothesis_assertion: 'Mary moved to the garden and Bernhard is a swan'.