Nominal/Ex/SystemFOmega.thy
changeset 2581 3696659358c8
child 2617 e44551d067e6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Nominal/Ex/SystemFOmega.thy	Wed Nov 24 02:36:21 2010 +0000
@@ -0,0 +1,51 @@
+theory SystemFOmega
+imports "../Nominal2"
+begin
+
+text {*
+  System from the F-ing paper by Rossberg, Russo and 
+  Dreyer, TLDI'10
+*}
+
+
+atom_decl var
+atom_decl tvar
+atom_decl label
+
+nominal_datatype kind =
+  \<Omega> | KFun kind kind
+
+nominal_datatype ty =
+  TVar tvar
+| TFun ty ty
+| TAll a::tvar kind t::ty bind a in t
+| TEx  a::tvar kind t::ty bind a in t
+| TLam a::tvar kind t::ty bind a in t
+| TApp ty ty
+| TRec trec
+and trec =
+  TRNil
+| TRCons label ty trec 
+
+nominal_datatype trm =
+  Var var
+| Lam x::var ty t::trm bind x in t
+| App trm trm
+| Dot trm label
+| LAM a::tvar kind t::trm bind a in t
+| APP trm ty
+| Pack ty trm
+| Unpack a::tvar x::var trm t::trm bind a x in t
+| Rec rec 
+and rec =
+  RNil
+| RCons label trm rec
+
+
+
+
+end
+
+
+
+