src/ZF/Resid/Reduction.thy
author paulson
Fri, 17 Jul 1998 11:13:43 +0200
changeset 5156 f23494fa8dc1
parent 1478 2b8c2a7547ab
child 11319 8b84ee2cc79c
permissions -rw-r--r--
A stronger apply_0, and new thm domain_lam
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1478
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
     1
(*  Title:      Reduction.thy
1048
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
     2
    ID:         $Id$
1478
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
     3
    Author:     Ole Rasmussen
1048
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
     4
    Copyright   1995  University of Cambridge
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
     5
    Logic Image: ZF
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
     6
*)
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
     7
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
     8
Reduction = Terms+
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
     9
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    10
consts
1401
0c439768f45c removed quotes from consts and syntax sections
clasohm
parents: 1155
diff changeset
    11
  Sred1, Sred,  Spar_red1,Spar_red    :: i
0c439768f45c removed quotes from consts and syntax sections
clasohm
parents: 1155
diff changeset
    12
  "-1->","--->","=1=>",   "===>"      :: [i,i]=>o (infixl 50)
1048
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    13
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    14
translations
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    15
  "a -1-> b" == "<a,b>:Sred1"
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    16
  "a ---> b" == "<a,b>:Sred"
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    17
  "a =1=> b" == "<a,b>:Spar_red1"
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    18
  "a ===> b" == "<a,b>:Spar_red"
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    19
  
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    20
  
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    21
inductive
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    22
  domains       "Sred1" <= "lambda*lambda"
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    23
  intrs
1478
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    24
    beta        "[|m:lambda; n:lambda|] ==> Apl(Fun(m),n) -1-> n/m"
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    25
    rfun        "[|m -1-> n|] ==> Fun(m) -1-> Fun(n)"
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    26
    apl_l       "[|m2:lambda; m1 -1-> n1|] ==>   
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    27
                                  Apl(m1,m2) -1-> Apl(n1,m2)"
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    28
    apl_r       "[|m1:lambda; m2 -1-> n2|] ==>   
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    29
                                  Apl(m1,m2) -1-> Apl(m1,n2)"
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    30
  type_intrs    "red_typechecks"
1048
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    31
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    32
inductive
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    33
  domains       "Sred" <= "lambda*lambda"
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    34
  intrs
1478
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    35
    one_step    "[|m-1->n|] ==> m--->n"
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    36
    refl        "m:lambda==>m --->m"
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    37
    trans       "[|m--->n; n--->p|]==>m--->p"
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    38
  type_intrs    "[Sred1.dom_subset RS subsetD]@red_typechecks"
1048
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    39
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    40
inductive
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    41
  domains       "Spar_red1" <= "lambda*lambda"
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    42
  intrs
1478
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    43
    beta        "[|m =1=> m';   
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    44
                 n =1=> n'|] ==> Apl(Fun(m),n) =1=> n'/m'"
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    45
    rvar        "n:nat==> Var(n) =1=> Var(n)"
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    46
    rfun        "[|m =1=> m'|]==> Fun(m) =1=> Fun(m')"
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    47
    rapl        "[|m =1=> m';   
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    48
                 n =1=> n'|] ==> Apl(m,n) =1=> Apl(m',n')"
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    49
  type_intrs    "red_typechecks"
1048
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    50
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    51
  inductive
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    52
  domains       "Spar_red" <= "lambda*lambda"
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    53
  intrs
1478
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    54
    one_step    "[|m =1=> n|] ==> m ===> n"
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    55
    trans       "[|m===>n; n===>p|]==>m===>p"
2b8c2a7547ab expanded tabs
clasohm
parents: 1401
diff changeset
    56
  type_intrs    "[Spar_red1.dom_subset RS subsetD]@red_typechecks"
1048
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    57
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    58
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    59
end
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    60