diff -r 95a239a5e055 -r 68245155eb58 src/HOL/Nominal/Examples/CK_Machine.thy --- a/src/HOL/Nominal/Examples/CK_Machine.thy Fri Dec 12 12:14:02 2008 +0100 +++ b/src/HOL/Nominal/Examples/CK_Machine.thy Sat Dec 13 13:24:45 2008 +0100 @@ -1,5 +1,3 @@ -(* $Id$ *) - theory CK_Machine imports "../Nominal" begin @@ -41,21 +39,21 @@ section {* Capture-Avoiding Substitution *} -consts subst :: "lam \ name \ lam \ lam" ("_[_::=_]" [100,100,100] 100) - nominal_primrec + subst :: "lam \ name \ lam \ lam" ("_[_::=_]" [100,100,100] 100) +where "(VAR x)[y::=s] = (if x=y then s else (VAR x))" - "(APP t\<^isub>1 t\<^isub>2)[y::=s] = APP (t\<^isub>1[y::=s]) (t\<^isub>2[y::=s])" - "x\(y,s) \ (LAM [x].t)[y::=s] = LAM [x].(t[y::=s])" - "(NUM n)[y::=s] = NUM n" - "(t\<^isub>1 -- t\<^isub>2)[y::=s] = (t\<^isub>1[y::=s]) -- (t\<^isub>2[y::=s])" - "(t\<^isub>1 ++ t\<^isub>2)[y::=s] = (t\<^isub>1[y::=s]) ++ (t\<^isub>2[y::=s])" - "x\(y,s) \ (FIX [x].t)[y::=s] = FIX [x].(t[y::=s])" - "TRUE[y::=s] = TRUE" - "FALSE[y::=s] = FALSE" - "(IF t1 t2 t3)[y::=s] = IF (t1[y::=s]) (t2[y::=s]) (t3[y::=s])" - "(ZET t)[y::=s] = ZET (t[y::=s])" - "(EQI t1 t2)[y::=s] = EQI (t1[y::=s]) (t2[y::=s])" +| "(APP t\<^isub>1 t\<^isub>2)[y::=s] = APP (t\<^isub>1[y::=s]) (t\<^isub>2[y::=s])" +| "x\(y,s) \ (LAM [x].t)[y::=s] = LAM [x].(t[y::=s])" +| "(NUM n)[y::=s] = NUM n" +| "(t\<^isub>1 -- t\<^isub>2)[y::=s] = (t\<^isub>1[y::=s]) -- (t\<^isub>2[y::=s])" +| "(t\<^isub>1 ++ t\<^isub>2)[y::=s] = (t\<^isub>1[y::=s]) ++ (t\<^isub>2[y::=s])" +| "x\(y,s) \ (FIX [x].t)[y::=s] = FIX [x].(t[y::=s])" +| "TRUE[y::=s] = TRUE" +| "FALSE[y::=s] = FALSE" +| "(IF t1 t2 t3)[y::=s] = IF (t1[y::=s]) (t2[y::=s]) (t3[y::=s])" +| "(ZET t)[y::=s] = ZET (t[y::=s])" +| "(EQI t1 t2)[y::=s] = EQI (t1[y::=s]) (t2[y::=s])" apply(finite_guess)+ apply(rule TrueI)+ apply(simp add: abs_fresh)+