code: def elimination_ask(X, e, bn):
      
      assert X not in e, "Query variable must be distinct from evidence"
      factors = []
      for var in reversed(bn.vars):
          factors.append(make_factor(var, e, bn))
          if is_hidden(var, X, e):
              factors = sum_out(var, factors, bn)
      return pointwise_product(factors, bn).normalize()
docs: Compute bn's P(X|e) by variable elimination. [Fig. 14.11]
      >>> elimination_ask('Burglary', dict(JohnCalls=T, MaryCalls=T), burglary
      ...  ).show_approx()
      'False: 0.716, True: 0.284