Nominal/Ex/SystemFOmega.thy
author Christian Urban <urbanc@in.tum.de>
Wed, 24 Nov 2010 02:36:21 +0000
changeset 2581 3696659358c8
child 2617 e44551d067e6
permissions -rw-r--r--
added example from the F-ing paper by Rossberg, Russo and Dreyer
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2581
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     1
theory SystemFOmega
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     2
imports "../Nominal2"
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     3
begin
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     4
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     5
text {*
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     6
  System from the F-ing paper by Rossberg, Russo and 
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     7
  Dreyer, TLDI'10
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     8
*}
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     9
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    10
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    11
atom_decl var
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    12
atom_decl tvar
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    13
atom_decl label
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    14
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    15
nominal_datatype kind =
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    16
  \<Omega> | KFun kind kind
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    17
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    18
nominal_datatype ty =
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    19
  TVar tvar
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    20
| TFun ty ty
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    21
| TAll a::tvar kind t::ty bind a in t
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    22
| TEx  a::tvar kind t::ty bind a in t
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    23
| TLam a::tvar kind t::ty bind a in t
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    24
| TApp ty ty
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    25
| TRec trec
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    26
and trec =
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    27
  TRNil
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    28
| TRCons label ty trec 
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    29
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    30
nominal_datatype trm =
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    31
  Var var
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    32
| Lam x::var ty t::trm bind x in t
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    33
| App trm trm
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    34
| Dot trm label
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    35
| LAM a::tvar kind t::trm bind a in t
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    36
| APP trm ty
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    37
| Pack ty trm
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    38
| Unpack a::tvar x::var trm t::trm bind a x in t
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    39
| Rec rec 
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    40
and rec =
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    41
  RNil
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    42
| RCons label trm rec
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    43
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    44
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    45
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    46
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    47
end
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    48
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    49
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    50
3696659358c8 added example from the F-ing paper by Rossberg, Russo and Dreyer
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    51