It is improbable that Lily is green. It is impossible that John went to the hallway. There is a better than even chance that Julius is gray. There is a very good chance that if 'Lily is green and Julius is gray' then Bill left the milk. It is certain that if 'Julius is gray and John went to the hallway' then Sandra got the football. It is probably not the case that if 'John went to the hallway and Lily is green' then Greg is a rhino.
It is almost certain that 'Sandra got the football and Greg is a rhino'.
It is impossible that 'Sandra got the football and Greg is a rhino'.
It is almost certain that 'Sandra got the football and Greg is a rhino'.

  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.1::factA.
  0.0::factB.
  0.6::factC.
  %hop1
  0.8::factX:-and(factA,factC).
  1.0::factY:-and(factC,factB).
  0.25::factZ:-and(factB,factA).

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

  query(conclusion).
  
'Sandra got the football and Greg is a rhino'.