author | Cezary Kaliszyk <kaliszyk@in.tum.de> |
Tue, 18 May 2010 17:56:41 +0200 | |
changeset 2160 | 8c24ee88b8e8 |
parent 2120 | 2786ff1df475 |
child 2177 | 9b566c5dc1f5 |
child 2300 | 9fb315392493 |
permissions | -rw-r--r-- |
theory Ex2 imports "../NewParser" begin text {* example 2 *} atom_decl name nominal_datatype trm = Var "name" | App "trm" "trm" | Lam x::"name" t::"trm" bind_set x in t | Let p::"pat" "trm" t::"trm" bind_set "f p" in t and pat = PN | PS "name" | PD "name" "name" binder f::"pat \<Rightarrow> atom set" where "f PN = {}" | "f (PD x y) = {atom x, atom y}" | "f (PS x) = {atom x}" thm trm_pat.bn thm trm_pat.perm thm trm_pat.induct thm trm_pat.distinct thm trm_pat.fv[simplified trm_pat.supp(1-2)] end