# HG changeset patch # User Christian Urban # Date 1290566181 0 # Node ID 3696659358c884e87cc69cec2bb6844514b343fe # Parent 6b3e8602edcf41726fba55bd5811a4a309d5dda3 added example from the F-ing paper by Rossberg, Russo and Dreyer diff -r 6b3e8602edcf -r 3696659358c8 Nominal/Ex/SystemFOmega.thy --- /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 = + \ | 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 + + + + diff -r 6b3e8602edcf -r 3696659358c8 Nominal/ROOT.ML --- a/Nominal/ROOT.ML Wed Nov 24 01:08:48 2010 +0000 +++ b/Nominal/ROOT.ML Wed Nov 24 02:36:21 2010 +0000 @@ -19,6 +19,7 @@ "Ex/Modules", "Ex/SingleLet", "Ex/Shallow", + "Ex/SystemFOmega", "Ex/TypeSchemes", "Ex/TypeVarsTest", "Ex/Foo1",