src/ZF/Resid/Reduction.thy
author clasohm
Thu, 19 Oct 1995 13:25:03 +0100
changeset 1287 84f44b84d584
parent 1155 928a16e02f9f
child 1401 0c439768f45c
permissions -rw-r--r--
corrected spelling of title (to test new CVS loginfo)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1048
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
     1
(*  Title: 	Reduction.thy
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
     2
    ID:         $Id$
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
     3
    Author: 	Ole Rasmussen
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
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    11
  Sred1, Sred,  Spar_red1,Spar_red    :: "i"
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    12
  "-1->","--->","=1=>",   "===>"      :: "[i,i]=>o" (infixl 50)
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
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    24
    beta	"[|m:lambda; n:lambda|] ==> Apl(Fun(m),n) -1-> n/m"
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    25
    rfun  	"[|m -1-> n|] ==> Fun(m) -1-> Fun(n)"
1155
928a16e02f9f removed \...\ inside strings
clasohm
parents: 1048
diff changeset
    26
    apl_l	"[|m2:lambda; m1 -1-> n1|] ==>   
928a16e02f9f removed \...\ inside strings
clasohm
parents: 1048
diff changeset
    27
		 	          Apl(m1,m2) -1-> Apl(n1,m2)"
928a16e02f9f removed \...\ inside strings
clasohm
parents: 1048
diff changeset
    28
    apl_r	"[|m1:lambda; m2 -1-> n2|] ==>   
928a16e02f9f removed \...\ inside strings
clasohm
parents: 1048
diff changeset
    29
		 	          Apl(m1,m2) -1-> Apl(m1,n2)"
1048
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    30
  type_intrs	"red_typechecks"
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
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    35
    one_step	"[|m-1->n|] ==> m--->n"
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    36
    refl  	"m:lambda==>m --->m"
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    37
    trans	"[|m--->n; n--->p|]==>m--->p"
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    38
  type_intrs	"[Sred1.dom_subset RS subsetD]@red_typechecks"
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
1155
928a16e02f9f removed \...\ inside strings
clasohm
parents: 1048
diff changeset
    43
    beta	"[|m =1=> m';   
928a16e02f9f removed \...\ inside strings
clasohm
parents: 1048
diff changeset
    44
		 n =1=> n'|] ==> Apl(Fun(m),n) =1=> n'/m'"
1048
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    45
    rvar	"n:nat==> Var(n) =1=> Var(n)"
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    46
    rfun	"[|m =1=> m'|]==> Fun(m) =1=> Fun(m')"
1155
928a16e02f9f removed \...\ inside strings
clasohm
parents: 1048
diff changeset
    47
    rapl	"[|m =1=> m';   
928a16e02f9f removed \...\ inside strings
clasohm
parents: 1048
diff changeset
    48
		 n =1=> n'|] ==> Apl(m,n) =1=> Apl(m',n')"
1048
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    49
  type_intrs	"red_typechecks"
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
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    54
    one_step	"[|m =1=> n|] ==> m ===> n"
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    55
    trans	"[|m===>n; n===>p|]==>m===>p"
5ba0314f8214 New example by Ole Rasmussen
lcp
parents:
diff changeset
    56
  type_intrs	"[Spar_red1.dom_subset RS subsetD]@red_typechecks"
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