src/HOL/Relation_Power.thy
author nipkow
Fri, 18 May 2001 07:56:19 +0200
changeset 11305 2ce86fccc95b
parent 10213 01c2744a3786
child 11306 6f4ed75b2dca
permissions -rw-r--r--
added ^ on functions.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10213
01c2744a3786 *** empty log message ***
nipkow
parents:
diff changeset
     1
(*  Title:      HOL/Relation_Power.thy
01c2744a3786 *** empty log message ***
nipkow
parents:
diff changeset
     2
    ID:         $Id$
01c2744a3786 *** empty log message ***
nipkow
parents:
diff changeset
     3
    Author:     Tobias Nipkow
01c2744a3786 *** empty log message ***
nipkow
parents:
diff changeset
     4
    Copyright   1996  TU Muenchen
01c2744a3786 *** empty log message ***
nipkow
parents:
diff changeset
     5
01c2744a3786 *** empty log message ***
nipkow
parents:
diff changeset
     6
R^n = R O ... O R, the n-fold composition of R
11305
2ce86fccc95b added ^ on functions.
nipkow
parents: 10213
diff changeset
     7
Both for functions and relations.
10213
01c2744a3786 *** empty log message ***
nipkow
parents:
diff changeset
     8
*)
01c2744a3786 *** empty log message ***
nipkow
parents:
diff changeset
     9
01c2744a3786 *** empty log message ***
nipkow
parents:
diff changeset
    10
Relation_Power = Nat +
01c2744a3786 *** empty log message ***
nipkow
parents:
diff changeset
    11
01c2744a3786 *** empty log message ***
nipkow
parents:
diff changeset
    12
instance
01c2744a3786 *** empty log message ***
nipkow
parents:
diff changeset
    13
  set :: (term) {power}   (* only ('a * 'a) set should be in power! *)
01c2744a3786 *** empty log message ***
nipkow
parents:
diff changeset
    14
01c2744a3786 *** empty log message ***
nipkow
parents:
diff changeset
    15
primrec (relpow)
01c2744a3786 *** empty log message ***
nipkow
parents:
diff changeset
    16
  "R^0 = Id"
01c2744a3786 *** empty log message ***
nipkow
parents:
diff changeset
    17
  "R^(Suc n) = R O (R^n)"
01c2744a3786 *** empty log message ***
nipkow
parents:
diff changeset
    18
11305
2ce86fccc95b added ^ on functions.
nipkow
parents: 10213
diff changeset
    19
2ce86fccc95b added ^ on functions.
nipkow
parents: 10213
diff changeset
    20
instance fun :: (term,term)power   (* only 'a \<Rightarrow> 'a should be in power! *)
2ce86fccc95b added ^ on functions.
nipkow
parents: 10213
diff changeset
    21
2ce86fccc95b added ^ on functions.
nipkow
parents: 10213
diff changeset
    22
primrec (funpow)
2ce86fccc95b added ^ on functions.
nipkow
parents: 10213
diff changeset
    23
  "f^0 = id"
2ce86fccc95b added ^ on functions.
nipkow
parents: 10213
diff changeset
    24
  "f^(Suc n) = f o (f^n)"
2ce86fccc95b added ^ on functions.
nipkow
parents: 10213
diff changeset
    25
10213
01c2744a3786 *** empty log message ***
nipkow
parents:
diff changeset
    26
end