Skip to content

Commit a5b6b3b

Browse files
committed
Add case expression syntax
1 parent 41fba58 commit a5b6b3b

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

Syntax.thy

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,13 @@ nominal_datatype "term" =
4141
| Lam x::"var" "\<tau>" e::"term" binds x in e ("\<lambda> _ : _ . _" 50)
4242
| TyLam a::"tyvar" "\<kappa>" e::"term" binds a in e ("\<Lambda> _ : _ . _" 50)
4343
| Let x::"var" "\<tau>" "term" e2::"term" binds x in e2
44+
| Case "term" "alt_list"
45+
and "alt_list" =
46+
ANil
47+
| ACons "alt" "alt_list"
48+
and "alt" =
49+
MatchCtor "ctor_name" tys::"tyvar list" vals::"var list" e::"term" binds tys vals in e
50+
| MatchVar x::"var" e::"term" binds x in e
4451

4552
nominal_datatype "binder" =
4653
BVar "var" "\<tau>"

0 commit comments

Comments
 (0)