Tutorial/Minimal.thy
author Cezary Kaliszyk <kaliszyk@in.tum.de>
Thu, 16 Jun 2011 20:56:30 +0900
changeset 2861 5635a968fd3f
parent 2686 52e1e98edb34
child 3132 87eca760dcba
permissions -rw-r--r--
Added the CPS translation experiments. CPS1 comes with all the proofs, CPS2,3 just have the function and need eqvt_rhs to finish the obligations.

theory Minimal
imports "Nominal2"
begin

atom_decl name

nominal_datatype lam =
  Var "name"
| App "lam" "lam"
| Lam x::"name" l::"lam"  bind x in l ("Lam [_]. _" [100, 100] 100)



lemma alpha_test:
  shows "Lam [x]. (Var x) = Lam [y]. (Var y)"
  by (simp add: lam.eq_iff Abs1_eq_iff lam.fresh fresh_at_base)

end