diff -r 95a239a5e055 -r 68245155eb58 src/HOL/Nominal/Examples/SOS.thy --- a/src/HOL/Nominal/Examples/SOS.thy Fri Dec 12 12:14:02 2008 +0100 +++ b/src/HOL/Nominal/Examples/SOS.thy Sat Dec 13 13:24:45 2008 +0100 @@ -1,4 +1,3 @@ -(* "$Id$" *) (* *) (* Formalisation of some typical SOS-proofs. *) (* *) @@ -62,13 +61,12 @@ (* parallel substitution *) -consts +nominal_primrec psubst :: "(name\trm) list \ trm \ trm" ("_<_>" [95,95] 105) - -nominal_primrec +where "\<(Var x)> = (lookup \ x)" - "\<(App e\<^isub>1 e\<^isub>2)> = App (\1>) (\2>)" - "x\\ \ \<(Lam [x].e)> = Lam [x].(\)" +| "\<(App e\<^isub>1 e\<^isub>2)> = App (\1>) (\2>)" +| "x\\ \ \<(Lam [x].e)> = Lam [x].(\)" apply(finite_guess)+ apply(rule TrueI)+ apply(simp add: abs_fresh)+ @@ -349,12 +347,12 @@ using h by (induct) (auto) (* Valuation *) -consts - V :: "ty \ trm set" nominal_primrec + V :: "ty \ trm set" +where "V (TVar x) = {e. val e}" - "V (T\<^isub>1 \ T\<^isub>2) = {Lam [x].e | x e. \ v \ (V T\<^isub>1). \ v'. e[x::=v] \ v' \ v' \ V T\<^isub>2}" +| "V (T\<^isub>1 \ T\<^isub>2) = {Lam [x].e | x e. \ v \ (V T\<^isub>1). \ v'. e[x::=v] \ v' \ v' \ V T\<^isub>2}" by (rule TrueI)+ lemma V_eqvt: