It is likely that Greg is a lion. It is likely that Sandra left the apple. It is impossible that Mary picked up the milk. It is highly likely that if either 'Mary picked up the milk' or 'Greg is a lion' but not both then Jessica is a cat. It is improbable that if 'Sandra left the apple and Mary picked up the milk' then Bernhard is a rhino. It is impossible that if either 'Greg is a lion' or 'Mary picked up the milk' but not both then Bill went to the garden.
We believe that 'Bill went to the garden and Sandra left the apple'.
It is impossible that 'Bill went to the garden and Sandra left the apple'.
We believe that 'Bill went to the garden and Sandra left the apple'.

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

  %hop2
  conclusion:-and(factZ,factB).

  query(conclusion).
  
'Bill went to the garden and Sandra left the apple'.