It is almost certain that Mary moved to the garden. It is certain that Greg is gray. It is unlikely that Brian is white. Chances are about even that if either 'Brian is white' or 'Greg is gray' but not both then Bernhard is a frog. It is highly unlikely that if 'Mary moved to the garden and Brian is white' then John put down the milk. It is impossible that if either 'Mary moved to the garden' or 'Brian is white' but not both then Lily is a lion.
It is impossible that 'Brian is white and John put down the milk'.
It is impossible that 'Brian is white and John put down the milk'.
There is a very good chance that 'Brian is white and John put down 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.95::factA.
  1.0::factB.
  0.2::factC.
  %hop1
  0.5::factX:-xor(factC,factB).
  0.05::factY:-and(factA,factC).
  0.0::factZ:-xor(factA,factC).

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

  query(conclusion).
  
'Brian is white and John put down the milk'.