It is impossible that Mary discarded the milk. It is unlikely that Julius is a lion. It is highly likely that Greg is white. It is improbable that if 'Julius is a lion' or 'Mary discarded the milk' or both then Lily is green. There is a better than even chance that if either 'Mary discarded the milk' or 'Greg is white' but not both then John went to the kitchen. It is impossible that if 'Julius is a lion and Mary discarded the milk' then Bernhard is a swan.
It is impossible that 'Greg is white and Mary discarded the milk'.
It is impossible that 'Greg is white and Mary discarded the milk'.
It is probable that 'Greg is white and Mary discarded the milk'.

  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.0::factA.
  0.2::factB.
  0.9::factC.
  %hop1
  0.1::factX:-or(factB,factA).
  0.6::factY:-xor(factA,factC).
  0.0::factZ:-and(factB,factA).

  %hop2
  conclusion:-and(factC,factA).

  query(conclusion).
  
'Greg is white and Mary discarded the milk'.