src/HOL/Finite.thy
author wenzelm
Tue, 27 May 1997 15:45:07 +0200
changeset 3362 0b268cff9344
parent 1556 2fd82cec17d4
child 3367 832c245d967c
permissions -rw-r--r--
NJ 1.09.2x as factory default!

(*  Title:      HOL/Finite.thy
    ID:         $Id$
    Author:     Lawrence C Paulson & Tobias Nipkow
    Copyright   1995  University of Cambridge & TU Muenchen

Finite sets and their cardinality
*)

Finite = Arith +

consts Fin :: 'a set => 'a set set

inductive "Fin(A)"
  intrs
    emptyI  "{} : Fin(A)"
    insertI "[| a: A;  b: Fin(A) |] ==> insert a b : Fin(A)"

constdefs

  finite :: 'a set => bool
  "finite A == A : Fin(UNIV)"

  card :: 'a set => nat
  "card A == LEAST n. ? f. A = {f i |i. i<n}"

end