It is probable that Mary moved to the garden. It is impossible that Jeff put down the milk. It is impossible that Bernhard is gray. It is certain that if either 'Mary moved to the garden' or 'Jeff put down the milk' but not both then Lily is a frog. We believe that if 'Jeff put down the milk and Bernhard is gray' then Sandra took the football. It is highly unlikely that if either 'Bernhard is gray' or 'Jeff put down the milk' but not both then Brian is yellow.
It is certain that 'Lily is a frog and Brian is yellow'.
It is impossible that 'Lily is a frog and Brian is yellow'.
It is certain that 'Lily is a frog and Brian is yellow'.

  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.0::factB.
  0.0::factC.
  %hop1
  1.0::factX:-xor(factA,factB).
  0.75::factY:-and(factB,factC).
  0.05::factZ:-xor(factC,factB).

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

  query(conclusion).
  
'Lily is a frog and Brian is yellow'.