anchor.diff:          | _ -> failwith "MP_TAC.fun1: Unhandled case."
       fun thm (asl, w) -> null_meta, [asl, mk_imp(concl thm, w)], fun i thl -> MP (fun1 thl) (INSTANTIATE_ALL i thm)
   
  +/// Reduces goal of equality of boolean terms to forward and backward implication.
   let (EQ_TAC : tactic) = 
       fun (asl, w) -> 
           try 
  
positive.code: (* Convert a tactic into a refinement on head subgoal in current state.      *)
  (* ------------------------------------------------------------------------- *)
  
  let (by : tactic -> refinement) = 
      fun tac ((mvs, inst), gls, just) -> 
          if gls = [] then failwith "No goal set"
  
negative.code: (* Metavariable tactics.                                                     *)
  (* ------------------------------------------------------------------------- *)
  
  /// Replaces existentially quantified variable with given metavariables.
  let (X_META_EXISTS_TAC : term -> tactic) = 
      fun t (asl, w) -> 
          try 
  