diff -r 5ecb857e9de7 -r 3b9ef98a03d2 Nominal/Ex/Lambda.thy --- a/Nominal/Ex/Lambda.thy Wed Jun 01 16:13:42 2011 +0900 +++ b/Nominal/Ex/Lambda.thy Wed Jun 01 21:03:30 2011 +0100 @@ -10,6 +10,15 @@ | App "lam" "lam" | Lam x::"name" l::"lam" bind x in l ("Lam [_]. _" [100, 100] 100) +nominal_primrec + Z :: "lam \ (lam \ lam) \ lam" +where + "Z (App M N) k = Z M (%m. (Z N (%n.(App m n))))" +unfolding eqvt_def Z_graph_def +apply (rule, perm_simp, rule) +oops + + inductive triv :: "lam \ nat \ bool" where @@ -451,10 +460,12 @@ apply auto done +(* lemma db_trans_test: assumes a: "y \ x" shows "trans (Lam [x]. Lam [y]. App (Var x) (Var y)) [] 0 = Some (DBLam (DBLam (DBApp (DBVar 1) (DBVar 0))))" using a by simp +*) abbreviation mbind :: "'a option => ('a => 'b option) => 'b option" ("_ \= _" [65,65] 65) @@ -566,6 +577,7 @@ text {* "HO" functions *} + nominal_primrec trans2 :: "lam \ atom list \ db option" where