There is almost no chance that Mary got the football. It is probably the case that Bernhard is green. Chances are about even that Brian is gray. There is almost no chance that if either 'Mary got the football' or 'Bernhard is green' but not both then Gertrude is a wolf. It is probably the case that if 'Brian is gray' or 'Mary got the football' or both then John dropped the apple. Chances are slight that if 'Mary got the football' or 'Brian is gray' or both then Lily is a rhino.
It is certain that 'Mary got the football and Lily is a rhino'.
It is impossible that 'Mary got the football and Lily is a rhino'.
It is certain that 'Mary got the football and Lily 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.02::factA.
  0.7::factB.
  0.5::factC.
  %hop1
  0.02::factX:-xor(factA,factB).
  0.7::factY:-or(factC,factA).
  0.1::factZ:-or(factA,factC).

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

  query(conclusion).
  
'Mary got the football and Lily is a rhino'.