Null program and a few new results
authorpaulson
Wed, 05 Aug 1998 18:21:37 +0200
changeset 5259 86d80749453f
parent 5258 d1c0504d6c42
child 5260 1835a591d3a7
Null program and a few new results
src/HOL/UNITY/Union.ML
src/HOL/UNITY/Union.thy
--- a/src/HOL/UNITY/Union.ML	Wed Aug 05 18:21:09 1998 +0200
+++ b/src/HOL/UNITY/Union.ML	Wed Aug 05 18:21:37 1998 +0200
@@ -115,3 +115,37 @@
 by (asm_simp_tac (simpset() addsimps [Join_def, ensures_stable_Un2]) 1);
 qed "ensures_stable_Join2";
 
+
+(** Theoretical issues **)
+
+Goalw [Join_def] "Join prgF prgG = Join prgG prgF";
+by (simp_tac (simpset() addsimps [Un_commute, Int_commute]) 1);
+qed "Join_commute";
+
+Goalw [Join_def] "Join (Join prgF prgG) prgH = Join prgF (Join prgG prgH)";
+by (simp_tac (simpset() addsimps [Un_assoc, Int_assoc]) 1);
+qed "Join_assoc";
+
+(**NOT PROVABLE because no "surjective pairing" for records
+Goalw [Join_def, Null_def] "id: Acts prgF ==> Join prgF Null = prgF";
+by (asm_simp_tac (simpset() addsimps [insert_absorb]) 1);
+qed "Join_Null";
+*)
+
+(**NOT PROVABLE because no "surjective pairing" for records
+Goalw [Join_def] "Join prgF prgF = prgF";
+auto();
+qed "Join_absorb";
+*)
+
+
+(*
+val field_defs = thms"program.field_defs";
+val dest_defs = thms"program.dest_defs";
+val dest_convs = thms"program.dest_convs";
+
+val update_defs = thms"program.update_defs";
+val make_defs = thms"program.make_defs";
+val update_convs = thms"program.update_convs";
+val simps = thms"program.simps";
+*)
--- a/src/HOL/UNITY/Union.thy	Wed Aug 05 18:21:09 1998 +0200
+++ b/src/HOL/UNITY/Union.thy	Wed Aug 05 18:21:37 1998 +0200
@@ -12,8 +12,11 @@
 
 constdefs
 
-   Join :: "['a program, 'a program] => 'a program"
+   Join :: ['a program, 'a program] => 'a program
     "Join prgF prgG == (|Init = Init prgF Int Init prgG,
 			 Acts = Acts prgF Un Acts prgG|)"
 
+   Null :: 'a program
+    "Null == (|Init = UNIV, Acts = {id}|)"
+
 end