next up previous contents
Next: Induction Principles Up: The Natural Numbers Previous: Natural Numbers: Basic Definitions

Iteration Principles

 ** Module lib_nat_iter Imports lib_nat lib_bool_funs
  nat_iter_suc = ... :
    {t|Type}{z:t}{s:t->t}{n:nat}
    Eq (nat_iter z s (suc n)) (nat_iter (s z) s n)
  while_cond1 = ... :
    {f:nat->bool}[lll=nat_iter zero ([a:nat]if (f (suc a)) (suc a) a)]
    (is_true (f zero))->{n:nat}is_true (f (lll n))
  while_cond2 = ... :
    {f:nat->bool}[lll=nat_iter zero ([a:nat]if (f (suc a)) (suc a) a)]
    {n:nat}(Eq (lll n) n \/ is_false (f (suc (lll n))))



Conor McBride
11/13/1998