Nominal/Ex/Ex1rec.thy
author Christian Urban <urbanc@in.tum.de>
Wed, 14 Apr 2010 10:29:34 +0200
changeset 1828 f374ffd50c7c
parent 1773 c0eac04ae3b4
child 1946 3395e87d94b8
permissions -rw-r--r--
preliminary tests

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