ex/Acc.thy
author lcp
Thu, 25 Aug 1994 10:47:33 +0200
changeset 127 d9527f97246e
permissions -rw-r--r--
INSTALLATION OF INDUCTIVE DEFINITIONS HOL/ex/MT.thy: now mentions dependence upon Sum.thy HOL/ex/Acc: new example, borrowed & adapted from ZF HOL/ex/Simult, ex/Term: updated refs to Sexp intr rules HOL/Sexp,List,LList,ex/Term: converted as follows node *set -> item Sexp -> sexp LList_corec -> <self> LList_ -> llist_ LList\> -> llist List_case -> <self> List_rec -> <self> List_ -> list_ List\> -> list Term_rec -> <self> Term_ -> term_ Term\> -> term
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
127
d9527f97246e INSTALLATION OF INDUCTIVE DEFINITIONS
lcp
parents:
diff changeset
     1
(*  Title: 	HOL/ex/Acc.thy
d9527f97246e INSTALLATION OF INDUCTIVE DEFINITIONS
lcp
parents:
diff changeset
     2
    ID:         $Id$
d9527f97246e INSTALLATION OF INDUCTIVE DEFINITIONS
lcp
parents:
diff changeset
     3
    Author: 	Lawrence C Paulson, Cambridge University Computer Laboratory
d9527f97246e INSTALLATION OF INDUCTIVE DEFINITIONS
lcp
parents:
diff changeset
     4
    Copyright   1994  University of Cambridge
d9527f97246e INSTALLATION OF INDUCTIVE DEFINITIONS
lcp
parents:
diff changeset
     5
d9527f97246e INSTALLATION OF INDUCTIVE DEFINITIONS
lcp
parents:
diff changeset
     6
Inductive definition of acc(r)
d9527f97246e INSTALLATION OF INDUCTIVE DEFINITIONS
lcp
parents:
diff changeset
     7
d9527f97246e INSTALLATION OF INDUCTIVE DEFINITIONS
lcp
parents:
diff changeset
     8
See Ch. Paulin-Mohring, Inductive Definitions in the System Coq.
d9527f97246e INSTALLATION OF INDUCTIVE DEFINITIONS
lcp
parents:
diff changeset
     9
Research Report 92-49, LIP, ENS Lyon.  Dec 1992.
d9527f97246e INSTALLATION OF INDUCTIVE DEFINITIONS
lcp
parents:
diff changeset
    10
*)
d9527f97246e INSTALLATION OF INDUCTIVE DEFINITIONS
lcp
parents:
diff changeset
    11
d9527f97246e INSTALLATION OF INDUCTIVE DEFINITIONS
lcp
parents:
diff changeset
    12
Acc = WF + 
d9527f97246e INSTALLATION OF INDUCTIVE DEFINITIONS
lcp
parents:
diff changeset
    13
d9527f97246e INSTALLATION OF INDUCTIVE DEFINITIONS
lcp
parents:
diff changeset
    14
consts
d9527f97246e INSTALLATION OF INDUCTIVE DEFINITIONS
lcp
parents:
diff changeset
    15
  pred :: "['b, ('a * 'b)set] => 'a set"	(*Set of predecessors*)
d9527f97246e INSTALLATION OF INDUCTIVE DEFINITIONS
lcp
parents:
diff changeset
    16
  acc  :: "('a * 'a)set => 'a set"		(*Accessible part*)
d9527f97246e INSTALLATION OF INDUCTIVE DEFINITIONS
lcp
parents:
diff changeset
    17
d9527f97246e INSTALLATION OF INDUCTIVE DEFINITIONS
lcp
parents:
diff changeset
    18
defs
d9527f97246e INSTALLATION OF INDUCTIVE DEFINITIONS
lcp
parents:
diff changeset
    19
  pred_def     "pred(x,r) == {y. <y,x>:r}"
d9527f97246e INSTALLATION OF INDUCTIVE DEFINITIONS
lcp
parents:
diff changeset
    20
d9527f97246e INSTALLATION OF INDUCTIVE DEFINITIONS
lcp
parents:
diff changeset
    21
inductive "acc(r)"
d9527f97246e INSTALLATION OF INDUCTIVE DEFINITIONS
lcp
parents:
diff changeset
    22
  intrs
d9527f97246e INSTALLATION OF INDUCTIVE DEFINITIONS
lcp
parents:
diff changeset
    23
    pred    "pred(a,r): Pow(acc(r)) ==> a: acc(r)"
d9527f97246e INSTALLATION OF INDUCTIVE DEFINITIONS
lcp
parents:
diff changeset
    24
  monos     "[Pow_mono]"
d9527f97246e INSTALLATION OF INDUCTIVE DEFINITIONS
lcp
parents:
diff changeset
    25
d9527f97246e INSTALLATION OF INDUCTIVE DEFINITIONS
lcp
parents:
diff changeset
    26
end