Nominal/Ex/Ex1rec.thy
author Christian Urban <urbanc@in.tum.de>
Wed, 28 Apr 2010 08:22:20 +0200
changeset 1971 8daf6ff5e11a
parent 1946 3395e87d94b8
child 2056 a58c73e39479
permissions -rw-r--r--
simpliied and moved the remaining lemmas about the atom-function to Nominal2_Base

theory Ex1rec
imports "../Parser" 
begin

atom_decl name

ML {* val _ = recursive := true *}
ML {* val _ = alpha_type := AlphaGen *}
nominal_datatype lam =
  VAR "name"
| APP "lam" "lam"
| LAM x::"name" t::"lam"  bind x in t
| LET bp::"bp" t::"lam"   bind "bi bp" in t
and bp =
  BP "name" "lam"
binder
  bi::"bp \<Rightarrow> atom set"
where
  "bi (BP x t) = {atom x}"

thm lam_bp.fv
thm lam_bp.eq_iff[no_vars]
thm lam_bp.bn
thm lam_bp.perm
thm lam_bp.induct
thm lam_bp.inducts
thm lam_bp.distinct
ML {* Sign.of_sort @{theory} (@{typ lam}, @{sort fs}) *}
thm lam_bp.fv[simplified lam_bp.supp]

end