anchor.diff:          with
           | Failure _ -> failwith "EXISTS"
   
  +/// Introduces an existential quantifier over a variable in a theorem.
   let SIMPLE_EXISTS v th = EXISTS (mk_exists(v, concl th), v) th
   
  +/// Eliminates existential quantification using deduction from a particular witness.
   let CHOOSE = 
       let P = parse_term @"P:A->bool"
       let Q = parse_term @"Q:bool"
  
positive.code:         with
          | Failure _ -> failwith "NOT_INTRO"
  
  let EQF_INTRO = 
      let P = parse_term @"P:bool"
      let pth() = 
  
negative.code:         with
          | Failure _ -> failwith "DISJ_CASES"
  
  /// Disjoins hypotheses of two theorems with same conclusion.
  let SIMPLE_DISJ_CASES th1 th2 = DISJ_CASES (ASSUME(mk_disj(hd(hyp th1), hd(hyp th2)))) th1 th2
  
  (* ------------------------------------------------------------------------- *)
  