src/HOL/Nat.thy
author paulson
Thu, 10 Jun 1999 10:39:38 +0200
changeset 6811 4700ca722bbd
parent 5714 b4f2e281a907
child 7702 35c7e0df749f
permissions -rw-r--r--
Always_LeadsTo_pre. Always_LeadsTo_post: new equivalences suggested by Misra

(*  Title:      HOL/Nat.thy
    ID:         $Id$
    Author:     Tobias Nipkow
    Copyright   1997 TU Muenchen

Type "nat" is a linear order, and a datatype
*)

Nat = NatDef + Inductive +

setup
  DatatypePackage.setup

rep_datatype nat
  distinct Suc_not_Zero, Zero_not_Suc
  inject   Suc_Suc_eq
  induct   nat_induct

instance nat :: order (le_refl,le_trans,le_anti_sym,nat_less_le)
instance nat :: linorder (nat_le_linear)

consts
  "^"           :: ['a::power,nat] => 'a            (infixr 80)

end