added example about datatypes
authorChristian Urban <urbanc@in.tum.de>
Sat, 25 Sep 2010 02:53:39 +0200
changeset 2485 6bab47906dbe
parent 2484 594f3401605f
child 2486 b4ea19604b0b
added example about datatypes
Nominal/Ex/Datatypes.thy
Slides/ROOT1.ML
Slides/ROOT2.ML
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Nominal/Ex/Datatypes.thy	Sat Sep 25 02:53:39 2010 +0200
@@ -0,0 +1,68 @@
+theory Datatypes
+imports "../Nominal2" 
+begin
+
+(* 
+  plain nominal_datatype definition without an 
+  atom_decl - example by John Matthews
+*)
+
+nominal_datatype 'a Maybe = 
+  Nothing 
+| Just 'a
+
+
+thm Maybe.distinct
+thm Maybe.induct
+thm Maybe.exhaust
+thm Maybe.fv_defs
+thm Maybe.bn_defs
+thm Maybe.perm_simps
+thm Maybe.eq_iff
+thm Maybe.fv_bn_eqvt
+thm Maybe.size_eqvt
+thm Maybe.supp
+
+(*
+  using a datatype inside a nominal_datatype
+*)
+
+atom_decl name
+
+datatype foo = Foo | Bar
+
+
+instantiation foo :: pure
+begin
+
+definition
+  "p \<bullet> (f::foo) = f"
+
+instance
+apply(default)
+apply(simp_all add:  permute_foo_def)
+done
+
+end
+
+
+nominal_datatype baz =
+  Baz x::name t::foo bind x in t
+
+
+thm baz.distinct
+thm baz.induct
+thm baz.exhaust
+thm baz.fv_defs
+thm baz.bn_defs
+thm baz.perm_simps
+thm baz.eq_iff
+thm baz.fv_bn_eqvt
+thm baz.size_eqvt
+thm baz.supp
+  
+
+end
+
+
+
--- a/Slides/ROOT1.ML	Thu Sep 23 05:28:40 2010 +0200
+++ b/Slides/ROOT1.ML	Sat Sep 25 02:53:39 2010 +0200
@@ -1,4 +1,4 @@
-show_question_marks := false;
+(* show_question_marks := false; *)
 quick_and_dirty := true;
 
 no_document use_thy "LaTeXsugar";
--- a/Slides/ROOT2.ML	Thu Sep 23 05:28:40 2010 +0200
+++ b/Slides/ROOT2.ML	Sat Sep 25 02:53:39 2010 +0200
@@ -1,6 +1,8 @@
-show_question_marks := false;
+(* show_question_marks := false; *)
+
 quick_and_dirty := true;
 
+
 no_document use_thy "LaTeXsugar";
 
 use_thy "Slides2"
\ No newline at end of file