anchor.diff:  let PRE_ELIM_THM = 
       prove
           ((parse_term 
  -              "P(PRE n) <=> !m. n = SUC m \/ m = 0 /\ n = 0 ==> P m(parse_term @"), 
  +              @"P(PRE n) <=> !m. n = SUC m \/ m = 0 /\ n = 0 ==> P m"), 
            SPEC_TAC((parse_term @"n:num"), (parse_term @"n:num"))
            |> THEN <| INDUCT_TAC
            |> THEN <| REWRITE_TAC [NOT_SUC; SUC_INJ; PRE]
  
positive.code: 
  Copyright 1998 University of Cambridge
  Copyright 1998-2007 John Harrison
  Copyright 2013 Jack Pappas, Eric Taucher
  
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  
negative.code: 
  let DIVMOD_EXIST_0 = 
      prove
          ((parse_term @"!m n. ?q r. if n = 0 then q = 0 /\ r = m
                  else m = q * n + r /\ r < n"),
           REPEAT GEN_TAC
           |> THEN <| ASM_CASES_TAC(parse_term @"n = 0")
  