Nominal/Ex1rec.thy
author Cezary Kaliszyk <kaliszyk@in.tum.de>
Fri, 26 Mar 2010 16:20:39 +0100
changeset 1656 c9d3dda79fe3
parent 1596 c69d9fb16785
child 1706 e92dd76dfb03
permissions -rw-r--r--
Removed remaining cheats + some cleaning.

theory Ex1rec
imports "Parser" "../Attic/Prove"
begin

atom_decl name

ML {* val _ = recursive := true *}
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