src/HOL/UNITY/UNITY_tactics.ML
author chaieb
Wed, 19 May 2004 11:23:59 +0200
changeset 14758 af3b71a46a1c
parent 13812 91713a1915ee
child 21669 c68717c16013
permissions -rw-r--r--
A new implementation for presburger arithmetic following the one suggested in technical report Chaieb Amine and Tobias Nipkow. It is generic an smaller. the tactic has also changed and allows the abstaction over fuction occurences whose type is nat or int.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13786
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
     1
(*  Title:      HOL/UNITY/UNITY_tactics.ML
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
     2
    ID:         $Id$
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
     3
    Author:     Lawrence C Paulson, Cambridge University Computer Laboratory
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
     4
    Copyright   2003  University of Cambridge
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
     5
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
     6
Specialized UNITY tactics, and ML bindings of theorems
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
     7
*)
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
     8
13798
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
     9
(*ListOrder*)
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    10
val Le_def = thm "Le_def";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    11
val Ge_def = thm "Ge_def";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    12
val prefix_def = thm "prefix_def";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    13
val Nil_genPrefix = thm "Nil_genPrefix";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    14
val genPrefix_length_le = thm "genPrefix_length_le";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    15
val cons_genPrefixE = thm "cons_genPrefixE";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    16
val Cons_genPrefix_Cons = thm "Cons_genPrefix_Cons";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    17
val refl_genPrefix = thm "refl_genPrefix";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    18
val genPrefix_refl = thm "genPrefix_refl";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    19
val genPrefix_mono = thm "genPrefix_mono";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    20
val append_genPrefix = thm "append_genPrefix";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    21
val genPrefix_trans_O = thm "genPrefix_trans_O";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    22
val genPrefix_trans = thm "genPrefix_trans";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    23
val prefix_genPrefix_trans = thm "prefix_genPrefix_trans";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    24
val genPrefix_prefix_trans = thm "genPrefix_prefix_trans";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    25
val trans_genPrefix = thm "trans_genPrefix";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    26
val genPrefix_antisym = thm "genPrefix_antisym";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    27
val antisym_genPrefix = thm "antisym_genPrefix";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    28
val genPrefix_Nil = thm "genPrefix_Nil";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    29
val same_genPrefix_genPrefix = thm "same_genPrefix_genPrefix";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    30
val genPrefix_Cons = thm "genPrefix_Cons";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    31
val genPrefix_take_append = thm "genPrefix_take_append";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    32
val genPrefix_append_both = thm "genPrefix_append_both";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    33
val append_cons_eq = thm "append_cons_eq";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    34
val append_one_genPrefix = thm "append_one_genPrefix";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    35
val genPrefix_imp_nth = thm "genPrefix_imp_nth";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    36
val nth_imp_genPrefix = thm "nth_imp_genPrefix";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    37
val genPrefix_iff_nth = thm "genPrefix_iff_nth";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    38
val prefix_refl = thm "prefix_refl";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    39
val prefix_trans = thm "prefix_trans";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    40
val prefix_antisym = thm "prefix_antisym";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    41
val prefix_less_le = thm "prefix_less_le";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    42
val set_mono = thm "set_mono";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    43
val Nil_prefix = thm "Nil_prefix";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    44
val prefix_Nil = thm "prefix_Nil";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    45
val Cons_prefix_Cons = thm "Cons_prefix_Cons";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    46
val same_prefix_prefix = thm "same_prefix_prefix";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    47
val append_prefix = thm "append_prefix";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    48
val prefix_appendI = thm "prefix_appendI";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    49
val prefix_Cons = thm "prefix_Cons";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    50
val append_one_prefix = thm "append_one_prefix";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    51
val prefix_length_le = thm "prefix_length_le";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    52
val strict_prefix_length_less = thm "strict_prefix_length_less";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    53
val mono_length = thm "mono_length";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    54
val prefix_iff = thm "prefix_iff";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    55
val prefix_snoc = thm "prefix_snoc";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    56
val prefix_append_iff = thm "prefix_append_iff";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    57
val common_prefix_linear = thm "common_prefix_linear";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    58
val reflexive_Le = thm "reflexive_Le";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    59
val antisym_Le = thm "antisym_Le";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    60
val trans_Le = thm "trans_Le";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    61
val pfixLe_refl = thm "pfixLe_refl";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    62
val pfixLe_trans = thm "pfixLe_trans";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    63
val pfixLe_antisym = thm "pfixLe_antisym";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    64
val prefix_imp_pfixLe = thm "prefix_imp_pfixLe";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    65
val reflexive_Ge = thm "reflexive_Ge";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    66
val antisym_Ge = thm "antisym_Ge";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    67
val trans_Ge = thm "trans_Ge";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    68
val pfixGe_refl = thm "pfixGe_refl";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    69
val pfixGe_trans = thm "pfixGe_trans";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    70
val pfixGe_antisym = thm "pfixGe_antisym";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    71
val prefix_imp_pfixGe = thm "prefix_imp_pfixGe";
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    72
4c1a53627500 conversion to new-style theories and tidying
paulson
parents: 13797
diff changeset
    73
13797
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
    74
(*UNITY*)
13812
91713a1915ee converting HOL/UNITY to use unconditional fairness
paulson
parents: 13798
diff changeset
    75
val mk_total_program_def = thm "mk_total_program_def";
91713a1915ee converting HOL/UNITY to use unconditional fairness
paulson
parents: 13798
diff changeset
    76
val totalize_act_def = thm "totalize_act_def";
13797
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
    77
val constrains_def = thm "constrains_def";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
    78
val stable_def = thm "stable_def";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
    79
val invariant_def = thm "invariant_def";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
    80
val increasing_def = thm "increasing_def";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
    81
val Allowed_def = thm "Allowed_def";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
    82
val Id_in_Acts = thm "Id_in_Acts";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
    83
val insert_Id_Acts = thm "insert_Id_Acts";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
    84
val Id_in_AllowedActs = thm "Id_in_AllowedActs";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
    85
val insert_Id_AllowedActs = thm "insert_Id_AllowedActs";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
    86
val Init_eq = thm "Init_eq";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
    87
val Acts_eq = thm "Acts_eq";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
    88
val AllowedActs_eq = thm "AllowedActs_eq";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
    89
val surjective_mk_program = thm "surjective_mk_program";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
    90
val program_equalityI = thm "program_equalityI";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
    91
val program_equalityE = thm "program_equalityE";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
    92
val program_equality_iff = thm "program_equality_iff";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
    93
val def_prg_Init = thm "def_prg_Init";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
    94
val def_prg_Acts = thm "def_prg_Acts";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
    95
val def_prg_AllowedActs = thm "def_prg_AllowedActs";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
    96
val def_act_simp = thm "def_act_simp";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
    97
val def_set_simp = thm "def_set_simp";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
    98
val constrainsI = thm "constrainsI";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
    99
val constrainsD = thm "constrainsD";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   100
val constrains_empty = thm "constrains_empty";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   101
val constrains_empty2 = thm "constrains_empty2";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   102
val constrains_UNIV = thm "constrains_UNIV";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   103
val constrains_UNIV2 = thm "constrains_UNIV2";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   104
val constrains_weaken_R = thm "constrains_weaken_R";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   105
val constrains_weaken_L = thm "constrains_weaken_L";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   106
val constrains_weaken = thm "constrains_weaken";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   107
val constrains_Un = thm "constrains_Un";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   108
val constrains_UN = thm "constrains_UN";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   109
val constrains_Un_distrib = thm "constrains_Un_distrib";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   110
val constrains_UN_distrib = thm "constrains_UN_distrib";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   111
val constrains_Int_distrib = thm "constrains_Int_distrib";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   112
val constrains_INT_distrib = thm "constrains_INT_distrib";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   113
val constrains_Int = thm "constrains_Int";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   114
val constrains_INT = thm "constrains_INT";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   115
val constrains_imp_subset = thm "constrains_imp_subset";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   116
val constrains_trans = thm "constrains_trans";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   117
val constrains_cancel = thm "constrains_cancel";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   118
val unlessI = thm "unlessI";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   119
val unlessD = thm "unlessD";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   120
val stableI = thm "stableI";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   121
val stableD = thm "stableD";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   122
val stable_UNIV = thm "stable_UNIV";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   123
val stable_Un = thm "stable_Un";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   124
val stable_UN = thm "stable_UN";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   125
val stable_Int = thm "stable_Int";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   126
val stable_INT = thm "stable_INT";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   127
val stable_constrains_Un = thm "stable_constrains_Un";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   128
val stable_constrains_Int = thm "stable_constrains_Int";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   129
val stable_constrains_stable = thm "stable_constrains_stable";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   130
val invariantI = thm "invariantI";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   131
val invariant_Int = thm "invariant_Int";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   132
val increasingD = thm "increasingD";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   133
val increasing_constant = thm "increasing_constant";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   134
val mono_increasing_o = thm "mono_increasing_o";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   135
val strict_increasingD = thm "strict_increasingD";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   136
val elimination = thm "elimination";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   137
val elimination_sing = thm "elimination_sing";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   138
val constrains_strongest_rhs = thm "constrains_strongest_rhs";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   139
val strongest_rhs_is_strongest = thm "strongest_rhs_is_strongest";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   140
val Un_Diff_Diff = thm "Un_Diff_Diff";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   141
val Int_Union_Union = thm "Int_Union_Union";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   142
val Image_less_than = thm "Image_less_than";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   143
val Image_inverse_less_than = thm "Image_inverse_less_than";
13812
91713a1915ee converting HOL/UNITY to use unconditional fairness
paulson
parents: 13798
diff changeset
   144
val totalize_constrains_iff = thm "totalize_constrains_iff";
13797
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   145
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   146
(*WFair*)
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   147
val stable_transient_empty = thm "stable_transient_empty";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   148
val transient_strengthen = thm "transient_strengthen";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   149
val transientI = thm "transientI";
13812
91713a1915ee converting HOL/UNITY to use unconditional fairness
paulson
parents: 13798
diff changeset
   150
val totalize_transientI = thm "totalize_transientI";
13797
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   151
val transientE = thm "transientE";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   152
val transient_empty = thm "transient_empty";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   153
val ensuresI = thm "ensuresI";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   154
val ensuresD = thm "ensuresD";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   155
val ensures_weaken_R = thm "ensures_weaken_R";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   156
val stable_ensures_Int = thm "stable_ensures_Int";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   157
val stable_transient_ensures = thm "stable_transient_ensures";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   158
val ensures_eq = thm "ensures_eq";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   159
val leadsTo_Basis = thm "leadsTo_Basis";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   160
val leadsTo_Trans = thm "leadsTo_Trans";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   161
val transient_imp_leadsTo = thm "transient_imp_leadsTo";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   162
val leadsTo_Un_duplicate = thm "leadsTo_Un_duplicate";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   163
val leadsTo_Un_duplicate2 = thm "leadsTo_Un_duplicate2";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   164
val leadsTo_Union = thm "leadsTo_Union";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   165
val leadsTo_Union_Int = thm "leadsTo_Union_Int";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   166
val leadsTo_UN = thm "leadsTo_UN";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   167
val leadsTo_Un = thm "leadsTo_Un";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   168
val single_leadsTo_I = thm "single_leadsTo_I";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   169
val leadsTo_induct = thm "leadsTo_induct";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   170
val subset_imp_ensures = thm "subset_imp_ensures";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   171
val subset_imp_leadsTo = thm "subset_imp_leadsTo";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   172
val leadsTo_refl = thm "leadsTo_refl";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   173
val empty_leadsTo = thm "empty_leadsTo";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   174
val leadsTo_UNIV = thm "leadsTo_UNIV";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   175
val leadsTo_induct_pre = thm "leadsTo_induct_pre";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   176
val leadsTo_weaken_R = thm "leadsTo_weaken_R";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   177
val leadsTo_weaken_L = thm "leadsTo_weaken_L";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   178
val leadsTo_Un_distrib = thm "leadsTo_Un_distrib";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   179
val leadsTo_UN_distrib = thm "leadsTo_UN_distrib";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   180
val leadsTo_Union_distrib = thm "leadsTo_Union_distrib";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   181
val leadsTo_weaken = thm "leadsTo_weaken";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   182
val leadsTo_Diff = thm "leadsTo_Diff";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   183
val leadsTo_UN_UN = thm "leadsTo_UN_UN";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   184
val leadsTo_Un_Un = thm "leadsTo_Un_Un";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   185
val leadsTo_cancel2 = thm "leadsTo_cancel2";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   186
val leadsTo_cancel_Diff2 = thm "leadsTo_cancel_Diff2";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   187
val leadsTo_cancel1 = thm "leadsTo_cancel1";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   188
val leadsTo_cancel_Diff1 = thm "leadsTo_cancel_Diff1";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   189
val leadsTo_empty = thm "leadsTo_empty";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   190
val psp_stable = thm "psp_stable";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   191
val psp_stable2 = thm "psp_stable2";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   192
val psp_ensures = thm "psp_ensures";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   193
val psp = thm "psp";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   194
val psp2 = thm "psp2";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   195
val psp_unless = thm "psp_unless";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   196
val leadsTo_wf_induct = thm "leadsTo_wf_induct";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   197
val bounded_induct = thm "bounded_induct";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   198
val lessThan_induct = thm "lessThan_induct";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   199
val lessThan_bounded_induct = thm "lessThan_bounded_induct";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   200
val greaterThan_bounded_induct = thm "greaterThan_bounded_induct";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   201
val wlt_leadsTo = thm "wlt_leadsTo";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   202
val leadsTo_subset = thm "leadsTo_subset";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   203
val leadsTo_eq_subset_wlt = thm "leadsTo_eq_subset_wlt";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   204
val wlt_increasing = thm "wlt_increasing";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   205
val leadsTo_123 = thm "leadsTo_123";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   206
val wlt_constrains_wlt = thm "wlt_constrains_wlt";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   207
val completion = thm "completion";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   208
val finite_completion = thm "finite_completion";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   209
val stable_completion = thm "stable_completion";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   210
val finite_stable_completion = thm "finite_stable_completion";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   211
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   212
(*Constrains*)
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   213
val Increasing_def = thm "Increasing_def";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   214
val reachable_Init = thm "reachable.Init";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   215
val reachable_Acts = thm "reachable.Acts";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   216
val reachable_equiv_traces = thm "reachable_equiv_traces";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   217
val Init_subset_reachable = thm "Init_subset_reachable";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   218
val stable_reachable = thm "stable_reachable";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   219
val invariant_reachable = thm "invariant_reachable";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   220
val invariant_includes_reachable = thm "invariant_includes_reachable";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   221
val constrains_reachable_Int = thm "constrains_reachable_Int";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   222
val Constrains_eq_constrains = thm "Constrains_eq_constrains";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   223
val constrains_imp_Constrains = thm "constrains_imp_Constrains";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   224
val stable_imp_Stable = thm "stable_imp_Stable";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   225
val ConstrainsI = thm "ConstrainsI";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   226
val Constrains_empty = thm "Constrains_empty";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   227
val Constrains_UNIV = thm "Constrains_UNIV";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   228
val Constrains_weaken_R = thm "Constrains_weaken_R";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   229
val Constrains_weaken_L = thm "Constrains_weaken_L";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   230
val Constrains_weaken = thm "Constrains_weaken";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   231
val Constrains_Un = thm "Constrains_Un";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   232
val Constrains_UN = thm "Constrains_UN";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   233
val Constrains_Int = thm "Constrains_Int";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   234
val Constrains_INT = thm "Constrains_INT";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   235
val Constrains_imp_subset = thm "Constrains_imp_subset";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   236
val Constrains_trans = thm "Constrains_trans";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   237
val Constrains_cancel = thm "Constrains_cancel";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   238
val Stable_eq = thm "Stable_eq";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   239
val Stable_eq_stable = thm "Stable_eq_stable";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   240
val StableI = thm "StableI";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   241
val StableD = thm "StableD";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   242
val Stable_Un = thm "Stable_Un";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   243
val Stable_Int = thm "Stable_Int";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   244
val Stable_Constrains_Un = thm "Stable_Constrains_Un";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   245
val Stable_Constrains_Int = thm "Stable_Constrains_Int";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   246
val Stable_UN = thm "Stable_UN";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   247
val Stable_INT = thm "Stable_INT";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   248
val Stable_reachable = thm "Stable_reachable";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   249
val IncreasingD = thm "IncreasingD";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   250
val mono_Increasing_o = thm "mono_Increasing_o";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   251
val strict_IncreasingD = thm "strict_IncreasingD";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   252
val increasing_imp_Increasing = thm "increasing_imp_Increasing";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   253
val Increasing_constant = thm "Increasing_constant";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   254
val Elimination = thm "Elimination";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   255
val Elimination_sing = thm "Elimination_sing";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   256
val AlwaysI = thm "AlwaysI";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   257
val AlwaysD = thm "AlwaysD";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   258
val AlwaysE = thm "AlwaysE";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   259
val Always_imp_Stable = thm "Always_imp_Stable";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   260
val Always_includes_reachable = thm "Always_includes_reachable";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   261
val invariant_imp_Always = thm "invariant_imp_Always";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   262
val Always_reachable = thm "Always_reachable";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   263
val Always_eq_invariant_reachable = thm "Always_eq_invariant_reachable";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   264
val Always_eq_includes_reachable = thm "Always_eq_includes_reachable";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   265
val Always_UNIV_eq = thm "Always_UNIV_eq";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   266
val UNIV_AlwaysI = thm "UNIV_AlwaysI";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   267
val Always_eq_UN_invariant = thm "Always_eq_UN_invariant";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   268
val Always_weaken = thm "Always_weaken";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   269
val Always_Constrains_pre = thm "Always_Constrains_pre";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   270
val Always_Constrains_post = thm "Always_Constrains_post";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   271
val Always_ConstrainsI = thm "Always_ConstrainsI";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   272
val Always_ConstrainsD = thm "Always_ConstrainsD";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   273
val Always_Constrains_weaken = thm "Always_Constrains_weaken";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   274
val Always_Int_distrib = thm "Always_Int_distrib";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   275
val Always_INT_distrib = thm "Always_INT_distrib";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   276
val Always_Int_I = thm "Always_Int_I";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   277
val Always_Compl_Un_eq = thm "Always_Compl_Un_eq";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   278
val Always_thin = thm "Always_thin";
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   279
13796
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   280
(*FP*)
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   281
val stable_FP_Orig_Int = thm "stable_FP_Orig_Int";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   282
val FP_Orig_weakest = thm "FP_Orig_weakest";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   283
val stable_FP_Int = thm "stable_FP_Int";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   284
val FP_equivalence = thm "FP_equivalence";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   285
val FP_weakest = thm "FP_weakest";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   286
val Compl_FP = thm "Compl_FP";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   287
val Diff_FP = thm "Diff_FP";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   288
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   289
(*SubstAx*)
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   290
val LeadsTo_eq_leadsTo = thm "LeadsTo_eq_leadsTo";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   291
val Always_LeadsTo_pre = thm "Always_LeadsTo_pre";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   292
val Always_LeadsTo_post = thm "Always_LeadsTo_post";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   293
val Always_LeadsToI = thm "Always_LeadsToI";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   294
val Always_LeadsToD = thm "Always_LeadsToD";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   295
val leadsTo_imp_LeadsTo = thm "leadsTo_imp_LeadsTo";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   296
val LeadsTo_Trans = thm "LeadsTo_Trans";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   297
val LeadsTo_Union = thm "LeadsTo_Union";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   298
val LeadsTo_UNIV = thm "LeadsTo_UNIV";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   299
val LeadsTo_Un_duplicate = thm "LeadsTo_Un_duplicate";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   300
val LeadsTo_Un_duplicate2 = thm "LeadsTo_Un_duplicate2";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   301
val LeadsTo_UN = thm "LeadsTo_UN";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   302
val LeadsTo_Un = thm "LeadsTo_Un";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   303
val single_LeadsTo_I = thm "single_LeadsTo_I";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   304
val subset_imp_LeadsTo = thm "subset_imp_LeadsTo";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   305
val empty_LeadsTo = thm "empty_LeadsTo";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   306
val LeadsTo_weaken_R = thm "LeadsTo_weaken_R";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   307
val LeadsTo_weaken_L = thm "LeadsTo_weaken_L";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   308
val LeadsTo_weaken = thm "LeadsTo_weaken";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   309
val Always_LeadsTo_weaken = thm "Always_LeadsTo_weaken";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   310
val LeadsTo_Un_post = thm "LeadsTo_Un_post";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   311
val LeadsTo_Trans_Un = thm "LeadsTo_Trans_Un";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   312
val LeadsTo_Un_distrib = thm "LeadsTo_Un_distrib";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   313
val LeadsTo_UN_distrib = thm "LeadsTo_UN_distrib";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   314
val LeadsTo_Union_distrib = thm "LeadsTo_Union_distrib";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   315
val LeadsTo_Basis = thm "LeadsTo_Basis";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   316
val EnsuresI = thm "EnsuresI";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   317
val Always_LeadsTo_Basis = thm "Always_LeadsTo_Basis";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   318
val LeadsTo_Diff = thm "LeadsTo_Diff";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   319
val LeadsTo_UN_UN = thm "LeadsTo_UN_UN";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   320
val LeadsTo_UN_UN_noindex = thm "LeadsTo_UN_UN_noindex";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   321
val all_LeadsTo_UN_UN = thm "all_LeadsTo_UN_UN";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   322
val LeadsTo_Un_Un = thm "LeadsTo_Un_Un";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   323
val LeadsTo_cancel2 = thm "LeadsTo_cancel2";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   324
val LeadsTo_cancel_Diff2 = thm "LeadsTo_cancel_Diff2";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   325
val LeadsTo_cancel1 = thm "LeadsTo_cancel1";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   326
val LeadsTo_cancel_Diff1 = thm "LeadsTo_cancel_Diff1";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   327
val LeadsTo_empty = thm "LeadsTo_empty";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   328
val PSP_Stable = thm "PSP_Stable";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   329
val PSP_Stable2 = thm "PSP_Stable2";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   330
val PSP = thm "PSP";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   331
val PSP2 = thm "PSP2";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   332
val PSP_Unless = thm "PSP_Unless";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   333
val Stable_transient_Always_LeadsTo = thm "Stable_transient_Always_LeadsTo";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   334
val LeadsTo_wf_induct = thm "LeadsTo_wf_induct";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   335
val Bounded_induct = thm "Bounded_induct";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   336
val LessThan_induct = thm "LessThan_induct";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   337
val integ_0_le_induct = thm "integ_0_le_induct";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   338
val LessThan_bounded_induct = thm "LessThan_bounded_induct";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   339
val GreaterThan_bounded_induct = thm "GreaterThan_bounded_induct";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   340
val Completion = thm "Completion";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   341
val Finite_completion = thm "Finite_completion";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   342
val Stable_completion = thm "Stable_completion";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   343
val Finite_stable_completion = thm "Finite_stable_completion";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   344
13792
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   345
(*Union*)
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   346
val Init_SKIP = thm "Init_SKIP";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   347
val Acts_SKIP = thm "Acts_SKIP";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   348
val AllowedActs_SKIP = thm "AllowedActs_SKIP";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   349
val reachable_SKIP = thm "reachable_SKIP";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   350
val SKIP_in_constrains_iff = thm "SKIP_in_constrains_iff";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   351
val SKIP_in_Constrains_iff = thm "SKIP_in_Constrains_iff";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   352
val SKIP_in_stable = thm "SKIP_in_stable";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   353
val Init_Join = thm "Init_Join";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   354
val Acts_Join = thm "Acts_Join";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   355
val AllowedActs_Join = thm "AllowedActs_Join";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   356
val JN_empty = thm "JN_empty";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   357
val JN_insert = thm "JN_insert";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   358
val Init_JN = thm "Init_JN";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   359
val Acts_JN = thm "Acts_JN";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   360
val AllowedActs_JN = thm "AllowedActs_JN";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   361
val JN_cong = thm "JN_cong";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   362
val Join_commute = thm "Join_commute";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   363
val Join_assoc = thm "Join_assoc";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   364
val Join_left_commute = thm "Join_left_commute";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   365
val Join_SKIP_left = thm "Join_SKIP_left";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   366
val Join_SKIP_right = thm "Join_SKIP_right";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   367
val Join_absorb = thm "Join_absorb";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   368
val Join_left_absorb = thm "Join_left_absorb";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   369
val Join_ac = thms "Join_ac";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   370
val JN_absorb = thm "JN_absorb";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   371
val JN_Un = thm "JN_Un";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   372
val JN_constant = thm "JN_constant";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   373
val JN_Join_distrib = thm "JN_Join_distrib";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   374
val JN_Join_miniscope = thm "JN_Join_miniscope";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   375
val JN_Join_diff = thm "JN_Join_diff";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   376
val JN_constrains = thm "JN_constrains";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   377
val Join_constrains = thm "Join_constrains";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   378
val Join_unless = thm "Join_unless";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   379
val Join_constrains_weaken = thm "Join_constrains_weaken";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   380
val JN_constrains_weaken = thm "JN_constrains_weaken";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   381
val JN_stable = thm "JN_stable";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   382
val invariant_JN_I = thm "invariant_JN_I";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   383
val Join_stable = thm "Join_stable";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   384
val Join_increasing = thm "Join_increasing";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   385
val invariant_JoinI = thm "invariant_JoinI";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   386
val FP_JN = thm "FP_JN";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   387
val JN_transient = thm "JN_transient";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   388
val Join_transient = thm "Join_transient";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   389
val Join_transient_I1 = thm "Join_transient_I1";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   390
val Join_transient_I2 = thm "Join_transient_I2";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   391
val JN_ensures = thm "JN_ensures";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   392
val Join_ensures = thm "Join_ensures";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   393
val stable_Join_constrains = thm "stable_Join_constrains";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   394
val stable_Join_Always1 = thm "stable_Join_Always1";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   395
val stable_Join_Always2 = thm "stable_Join_Always2";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   396
val stable_Join_ensures1 = thm "stable_Join_ensures1";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   397
val stable_Join_ensures2 = thm "stable_Join_ensures2";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   398
val ok_SKIP1 = thm "ok_SKIP1";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   399
val ok_SKIP2 = thm "ok_SKIP2";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   400
val ok_Join_commute = thm "ok_Join_commute";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   401
val ok_commute = thm "ok_commute";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   402
val ok_sym = thm "ok_sym";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   403
val ok_iff_OK = thm "ok_iff_OK";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   404
val ok_Join_iff1 = thm "ok_Join_iff1";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   405
val ok_Join_iff2 = thm "ok_Join_iff2";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   406
val ok_Join_commute_I = thm "ok_Join_commute_I";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   407
val ok_JN_iff1 = thm "ok_JN_iff1";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   408
val ok_JN_iff2 = thm "ok_JN_iff2";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   409
val OK_iff_ok = thm "OK_iff_ok";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   410
val OK_imp_ok = thm "OK_imp_ok";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   411
val Allowed_SKIP = thm "Allowed_SKIP";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   412
val Allowed_Join = thm "Allowed_Join";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   413
val Allowed_JN = thm "Allowed_JN";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   414
val ok_iff_Allowed = thm "ok_iff_Allowed";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   415
val OK_iff_Allowed = thm "OK_iff_Allowed";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   416
val safety_prop_Acts_iff = thm "safety_prop_Acts_iff";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   417
val safety_prop_AllowedActs_iff_Allowed = thm "safety_prop_AllowedActs_iff_Allowed";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   418
val Allowed_eq = thm "Allowed_eq";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   419
val def_prg_Allowed = thm "def_prg_Allowed";
13812
91713a1915ee converting HOL/UNITY to use unconditional fairness
paulson
parents: 13798
diff changeset
   420
val def_total_prg_Allowed = thm "def_total_prg_Allowed";
13792
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   421
val safety_prop_constrains = thm "safety_prop_constrains";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   422
val safety_prop_stable = thm "safety_prop_stable";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   423
val safety_prop_Int = thm "safety_prop_Int";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   424
val safety_prop_INTER1 = thm "safety_prop_INTER1";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   425
val safety_prop_INTER = thm "safety_prop_INTER";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   426
val def_UNION_ok_iff = thm "def_UNION_ok_iff";
13812
91713a1915ee converting HOL/UNITY to use unconditional fairness
paulson
parents: 13798
diff changeset
   427
val totalize_JN = thm "totalize_JN";
13792
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   428
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   429
(*Comp*)
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   430
val preserves_def = thm "preserves_def";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   431
val funPair_def = thm "funPair_def";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   432
val componentI = thm "componentI";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   433
val component_eq_subset = thm "component_eq_subset";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   434
val component_SKIP = thm "component_SKIP";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   435
val component_refl = thm "component_refl";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   436
val SKIP_minimal = thm "SKIP_minimal";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   437
val component_Join1 = thm "component_Join1";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   438
val component_Join2 = thm "component_Join2";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   439
val Join_absorb1 = thm "Join_absorb1";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   440
val Join_absorb2 = thm "Join_absorb2";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   441
val JN_component_iff = thm "JN_component_iff";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   442
val component_JN = thm "component_JN";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   443
val component_trans = thm "component_trans";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   444
val component_antisym = thm "component_antisym";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   445
val Join_component_iff = thm "Join_component_iff";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   446
val component_constrains = thm "component_constrains";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   447
val program_less_le = thm "program_less_le";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   448
val preservesI = thm "preservesI";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   449
val preserves_imp_eq = thm "preserves_imp_eq";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   450
val Join_preserves = thm "Join_preserves";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   451
val JN_preserves = thm "JN_preserves";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   452
val SKIP_preserves = thm "SKIP_preserves";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   453
val funPair_apply = thm "funPair_apply";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   454
val preserves_funPair = thm "preserves_funPair";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   455
val funPair_o_distrib = thm "funPair_o_distrib";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   456
val fst_o_funPair = thm "fst_o_funPair";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   457
val snd_o_funPair = thm "snd_o_funPair";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   458
val subset_preserves_o = thm "subset_preserves_o";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   459
val preserves_subset_stable = thm "preserves_subset_stable";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   460
val preserves_subset_increasing = thm "preserves_subset_increasing";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   461
val preserves_id_subset_stable = thm "preserves_id_subset_stable";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   462
val safety_prop_preserves = thm "safety_prop_preserves";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   463
val stable_localTo_stable2 = thm "stable_localTo_stable2";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   464
val Increasing_preserves_Stable = thm "Increasing_preserves_Stable";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   465
val component_of_imp_component = thm "component_of_imp_component";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   466
val component_of_refl = thm "component_of_refl";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   467
val component_of_SKIP = thm "component_of_SKIP";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   468
val component_of_trans = thm "component_of_trans";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   469
val strict_component_of_eq = thm "strict_component_of_eq";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   470
val localize_Init_eq = thm "localize_Init_eq";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   471
val localize_Acts_eq = thm "localize_Acts_eq";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   472
val localize_AllowedActs_eq = thm "localize_AllowedActs_eq";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   473
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   474
(*Guar*)
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   475
val guar_def = thm "guar_def";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   476
val OK_insert_iff = thm "OK_insert_iff";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   477
val ex1 = thm "ex1";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   478
val ex2 = thm "ex2";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   479
val ex_prop_finite = thm "ex_prop_finite";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   480
val ex_prop_equiv = thm "ex_prop_equiv";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   481
val uv1 = thm "uv1";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   482
val uv2 = thm "uv2";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   483
val uv_prop_finite = thm "uv_prop_finite";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   484
val guaranteesI = thm "guaranteesI";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   485
val guaranteesD = thm "guaranteesD";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   486
val component_guaranteesD = thm "component_guaranteesD";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   487
val guarantees_weaken = thm "guarantees_weaken";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   488
val subset_imp_guarantees_UNIV = thm "subset_imp_guarantees_UNIV";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   489
val subset_imp_guarantees = thm "subset_imp_guarantees";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   490
val ex_prop_imp = thm "ex_prop_imp";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   491
val guarantees_imp = thm "guarantees_imp";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   492
val ex_prop_equiv2 = thm "ex_prop_equiv2";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   493
val guarantees_UN_left = thm "guarantees_UN_left";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   494
val guarantees_Un_left = thm "guarantees_Un_left";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   495
val guarantees_INT_right = thm "guarantees_INT_right";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   496
val guarantees_Int_right = thm "guarantees_Int_right";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   497
val guarantees_Int_right_I = thm "guarantees_Int_right_I";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   498
val guarantees_INT_right_iff = thm "guarantees_INT_right_iff";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   499
val shunting = thm "shunting";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   500
val contrapositive = thm "contrapositive";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   501
val combining1 = thm "combining1";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   502
val combining2 = thm "combining2";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   503
val all_guarantees = thm "all_guarantees";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   504
val ex_guarantees = thm "ex_guarantees";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   505
val guarantees_Join_Int = thm "guarantees_Join_Int";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   506
val guarantees_Join_Un = thm "guarantees_Join_Un";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   507
val guarantees_JN_INT = thm "guarantees_JN_INT";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   508
val guarantees_JN_UN = thm "guarantees_JN_UN";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   509
val guarantees_Join_I1 = thm "guarantees_Join_I1";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   510
val guarantees_Join_I2 = thm "guarantees_Join_I2";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   511
val guarantees_JN_I = thm "guarantees_JN_I";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   512
val Join_welldef_D1 = thm "Join_welldef_D1";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   513
val Join_welldef_D2 = thm "Join_welldef_D2";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   514
val refines_refl = thm "refines_refl";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   515
val ex_refinement_thm = thm "ex_refinement_thm";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   516
val uv_refinement_thm = thm "uv_refinement_thm";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   517
val guarantees_equiv = thm "guarantees_equiv";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   518
val wg_weakest = thm "wg_weakest";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   519
val wg_guarantees = thm "wg_guarantees";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   520
val wg_equiv = thm "wg_equiv";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   521
val component_of_wg = thm "component_of_wg";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   522
val wg_finite = thm "wg_finite";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   523
val wg_ex_prop = thm "wg_ex_prop";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   524
val wx_subset = thm "wx_subset";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   525
val wx_ex_prop = thm "wx_ex_prop";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   526
val wx_weakest = thm "wx_weakest";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   527
val wx'_ex_prop = thm "wx'_ex_prop";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   528
val wx_equiv = thm "wx_equiv";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   529
val guarantees_wx_eq = thm "guarantees_wx_eq";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   530
val stable_guarantees_Always = thm "stable_guarantees_Always";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   531
val leadsTo_Basis = thm "leadsTo_Basis";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   532
val constrains_guarantees_leadsTo = thm "constrains_guarantees_leadsTo";
d1811693899c converted more UNITY theories to new-style
paulson
parents: 13790
diff changeset
   533
13790
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   534
(*Extend*)
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   535
val Restrict_iff = thm "Restrict_iff";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   536
val Restrict_UNIV = thm "Restrict_UNIV";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   537
val Restrict_empty = thm "Restrict_empty";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   538
val Restrict_Int = thm "Restrict_Int";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   539
val Restrict_triv = thm "Restrict_triv";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   540
val Restrict_subset = thm "Restrict_subset";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   541
val Restrict_eq_mono = thm "Restrict_eq_mono";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   542
val Restrict_imageI = thm "Restrict_imageI";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   543
val Domain_Restrict = thm "Domain_Restrict";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   544
val Image_Restrict = thm "Image_Restrict";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   545
val insert_Id_image_Acts = thm "insert_Id_image_Acts";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   546
val good_mapI = thm "good_mapI";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   547
val good_map_is_surj = thm "good_map_is_surj";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   548
val fst_inv_equalityI = thm "fst_inv_equalityI";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   549
val project_set_iff = thm "project_set_iff";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   550
val extend_set_mono = thm "extend_set_mono";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   551
val extend_set_empty = thm "extend_set_empty";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   552
val project_set_Int_subset = thm "project_set_Int_subset";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   553
val Init_extend = thm "Init_extend";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   554
val Init_project = thm "Init_project";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   555
val Acts_project = thm "Acts_project";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   556
val project_set_UNIV = thm "project_set_UNIV";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   557
val project_set_Union = thm "project_set_Union";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   558
val project_act_mono = thm "project_act_mono";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   559
val project_constrains_project_set = thm "project_constrains_project_set";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   560
val project_stable_project_set = thm "project_stable_project_set";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   561
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   562
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   563
(*Rename*)
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   564
val good_map_bij = thm "good_map_bij";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   565
val fst_o_inv_eq_inv = thm "fst_o_inv_eq_inv";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   566
val mem_rename_set_iff = thm "mem_rename_set_iff";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   567
val extend_set_eq_image = thm "extend_set_eq_image";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   568
val Init_rename = thm "Init_rename";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   569
val extend_set_inv = thm "extend_set_inv";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   570
val bij_extend_act_eq_project_act = thm "bij_extend_act_eq_project_act";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   571
val bij_extend_act = thm "bij_extend_act";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   572
val bij_project_act = thm "bij_project_act";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   573
val bij_inv_project_act_eq = thm "bij_inv_project_act_eq";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   574
val Acts_project = thm "Acts_project";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   575
val extend_inv = thm "extend_inv";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   576
val rename_inv_rename = thm "rename_inv_rename";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   577
val rename_rename_inv = thm "rename_rename_inv";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   578
val rename_inv_eq = thm "rename_inv_eq";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   579
val bij_extend = thm "bij_extend";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   580
val bij_project = thm "bij_project";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   581
val inv_project_eq = thm "inv_project_eq";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   582
val Allowed_rename = thm "Allowed_rename";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   583
val bij_rename = thm "bij_rename";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   584
val surj_rename = thm "surj_rename";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   585
val inj_rename_imp_inj = thm "inj_rename_imp_inj";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   586
val surj_rename_imp_surj = thm "surj_rename_imp_surj";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   587
val bij_rename_imp_bij = thm "bij_rename_imp_bij";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   588
val bij_rename_iff = thm "bij_rename_iff";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   589
val rename_SKIP = thm "rename_SKIP";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   590
val rename_Join = thm "rename_Join";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   591
val rename_JN = thm "rename_JN";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   592
val rename_constrains = thm "rename_constrains";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   593
val rename_stable = thm "rename_stable";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   594
val rename_invariant = thm "rename_invariant";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   595
val rename_increasing = thm "rename_increasing";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   596
val reachable_rename_eq = thm "reachable_rename_eq";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   597
val rename_Constrains = thm "rename_Constrains";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   598
val rename_Stable = thm "rename_Stable";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   599
val rename_Always = thm "rename_Always";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   600
val rename_Increasing = thm "rename_Increasing";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   601
val rename_transient = thm "rename_transient";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   602
val rename_ensures = thm "rename_ensures";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   603
val rename_leadsTo = thm "rename_leadsTo";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   604
val rename_LeadsTo = thm "rename_LeadsTo";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   605
val rename_rename_guarantees_eq = thm "rename_rename_guarantees_eq";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   606
val rename_guarantees_eq_rename_inv = thm "rename_guarantees_eq_rename_inv";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   607
val rename_preserves = thm "rename_preserves";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   608
val ok_rename_iff = thm "ok_rename_iff";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   609
val OK_rename_iff = thm "OK_rename_iff";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   610
val bij_eq_rename = thm "bij_eq_rename";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   611
val rename_image_constrains = thm "rename_image_constrains";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   612
val rename_image_stable = thm "rename_image_stable";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   613
val rename_image_increasing = thm "rename_image_increasing";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   614
val rename_image_invariant = thm "rename_image_invariant";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   615
val rename_image_Constrains = thm "rename_image_Constrains";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   616
val rename_image_preserves = thm "rename_image_preserves";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   617
val rename_image_Stable = thm "rename_image_Stable";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   618
val rename_image_Increasing = thm "rename_image_Increasing";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   619
val rename_image_Always = thm "rename_image_Always";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   620
val rename_image_leadsTo = thm "rename_image_leadsTo";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   621
val rename_image_LeadsTo = thm "rename_image_LeadsTo";
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   622
8d7e9fce8c50 converting UNITY to new-style theories
paulson
parents: 13786
diff changeset
   623
13786
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   624
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   625
(*Lift_prog*)
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   626
val sub_def = thm "sub_def";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   627
val lift_map_def = thm "lift_map_def";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   628
val drop_map_def = thm "drop_map_def";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   629
val insert_map_inverse = thm "insert_map_inverse";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   630
val insert_map_delete_map_eq = thm "insert_map_delete_map_eq";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   631
val insert_map_inject1 = thm "insert_map_inject1";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   632
val insert_map_inject2 = thm "insert_map_inject2";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   633
val insert_map_inject = thm "insert_map_inject";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   634
val insert_map_inject = thm "insert_map_inject";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   635
val lift_map_eq_iff = thm "lift_map_eq_iff";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   636
val drop_map_lift_map_eq = thm "drop_map_lift_map_eq";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   637
val inj_lift_map = thm "inj_lift_map";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   638
val lift_map_drop_map_eq = thm "lift_map_drop_map_eq";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   639
val drop_map_inject = thm "drop_map_inject";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   640
val surj_lift_map = thm "surj_lift_map";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   641
val bij_lift_map = thm "bij_lift_map";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   642
val inv_lift_map_eq = thm "inv_lift_map_eq";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   643
val inv_drop_map_eq = thm "inv_drop_map_eq";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   644
val bij_drop_map = thm "bij_drop_map";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   645
val sub_apply = thm "sub_apply";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   646
val lift_set_empty = thm "lift_set_empty";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   647
val lift_set_iff = thm "lift_set_iff";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   648
val lift_set_iff2 = thm "lift_set_iff2";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   649
val lift_set_mono = thm "lift_set_mono";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   650
val lift_set_Un_distrib = thm "lift_set_Un_distrib";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   651
val lift_set_Diff_distrib = thm "lift_set_Diff_distrib";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   652
val bij_lift = thm "bij_lift";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   653
val lift_SKIP = thm "lift_SKIP";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   654
val lift_Join = thm "lift_Join";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   655
val lift_JN = thm "lift_JN";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   656
val lift_constrains = thm "lift_constrains";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   657
val lift_stable = thm "lift_stable";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   658
val lift_invariant = thm "lift_invariant";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   659
val lift_Constrains = thm "lift_Constrains";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   660
val lift_Stable = thm "lift_Stable";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   661
val lift_Always = thm "lift_Always";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   662
val lift_transient = thm "lift_transient";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   663
val lift_ensures = thm "lift_ensures";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   664
val lift_leadsTo = thm "lift_leadsTo";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   665
val lift_LeadsTo = thm "lift_LeadsTo";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   666
val lift_lift_guarantees_eq = thm "lift_lift_guarantees_eq";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   667
val lift_guarantees_eq_lift_inv = thm "lift_guarantees_eq_lift_inv";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   668
val lift_preserves_snd_I = thm "lift_preserves_snd_I";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   669
val delete_map_eqE = thm "delete_map_eqE";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   670
val delete_map_eqE = thm "delete_map_eqE";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   671
val delete_map_neq_apply = thm "delete_map_neq_apply";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   672
val vimage_o_fst_eq = thm "vimage_o_fst_eq";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   673
val vimage_sub_eq_lift_set = thm "vimage_sub_eq_lift_set";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   674
val mem_lift_act_iff = thm "mem_lift_act_iff";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   675
val preserves_snd_lift_stable = thm "preserves_snd_lift_stable";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   676
val constrains_imp_lift_constrains = thm "constrains_imp_lift_constrains";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   677
val lift_map_image_Times = thm "lift_map_image_Times";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   678
val lift_preserves_eq = thm "lift_preserves_eq";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   679
val lift_preserves_sub = thm "lift_preserves_sub";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   680
val o_equiv_assoc = thm "o_equiv_assoc";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   681
val o_equiv_apply = thm "o_equiv_apply";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   682
val fst_o_lift_map = thm "fst_o_lift_map";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   683
val snd_o_lift_map = thm "snd_o_lift_map";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   684
val extend_act_extend_act = thm "extend_act_extend_act";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   685
val project_act_project_act = thm "project_act_project_act";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   686
val project_act_extend_act = thm "project_act_extend_act";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   687
val act_in_UNION_preserves_fst = thm "act_in_UNION_preserves_fst";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   688
val UNION_OK_lift_I = thm "UNION_OK_lift_I";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   689
val OK_lift_I = thm "OK_lift_I";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   690
val Allowed_lift = thm "Allowed_lift";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   691
val lift_image_preserves = thm "lift_image_preserves";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   692
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   693
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   694
(*PPROD*)
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   695
val Init_PLam = thm "Init_PLam";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   696
val PLam_empty = thm "PLam_empty";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   697
val PLam_SKIP = thm "PLam_SKIP";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   698
val PLam_insert = thm "PLam_insert";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   699
val PLam_component_iff = thm "PLam_component_iff";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   700
val component_PLam = thm "component_PLam";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   701
val PLam_constrains = thm "PLam_constrains";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   702
val PLam_stable = thm "PLam_stable";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   703
val PLam_transient = thm "PLam_transient";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   704
val PLam_ensures = thm "PLam_ensures";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   705
val PLam_leadsTo_Basis = thm "PLam_leadsTo_Basis";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   706
val invariant_imp_PLam_invariant = thm "invariant_imp_PLam_invariant";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   707
val PLam_preserves_fst = thm "PLam_preserves_fst";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   708
val PLam_preserves_snd = thm "PLam_preserves_snd";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   709
val guarantees_PLam_I = thm "guarantees_PLam_I";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   710
val Allowed_PLam = thm "Allowed_PLam";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   711
val PLam_preserves = thm "PLam_preserves";
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   712
13796
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   713
(*Follows*)
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   714
val mono_Always_o = thm "mono_Always_o";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   715
val mono_LeadsTo_o = thm "mono_LeadsTo_o";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   716
val Follows_constant = thm "Follows_constant";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   717
val mono_Follows_o = thm "mono_Follows_o";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   718
val mono_Follows_apply = thm "mono_Follows_apply";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   719
val Follows_trans = thm "Follows_trans";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   720
val Follows_Increasing1 = thm "Follows_Increasing1";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   721
val Follows_Increasing2 = thm "Follows_Increasing2";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   722
val Follows_Bounded = thm "Follows_Bounded";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   723
val Follows_LeadsTo = thm "Follows_LeadsTo";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   724
val Follows_LeadsTo_pfixLe = thm "Follows_LeadsTo_pfixLe";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   725
val Follows_LeadsTo_pfixGe = thm "Follows_LeadsTo_pfixGe";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   726
val Always_Follows1 = thm "Always_Follows1";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   727
val Always_Follows2 = thm "Always_Follows2";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   728
val increasing_Un = thm "increasing_Un";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   729
val Increasing_Un = thm "Increasing_Un";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   730
val Always_Un = thm "Always_Un";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   731
val Follows_Un = thm "Follows_Un";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   732
val increasing_union = thm "increasing_union";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   733
val Increasing_union = thm "Increasing_union";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   734
val Always_union = thm "Always_union";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   735
val Follows_union = thm "Follows_union";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   736
val Follows_setsum = thm "Follows_setsum";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   737
val Increasing_imp_Stable_pfixGe = thm "Increasing_imp_Stable_pfixGe";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   738
val LeadsTo_le_imp_pfixGe = thm "LeadsTo_le_imp_pfixGe";
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   739
13786
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   740
13797
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   741
(*Lazy unfolding of actions or of sets*)
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   742
fun simp_of_act def = def RS def_act_simp;
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   743
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   744
fun simp_of_set def = def RS def_set_simp;
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   745
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   746
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   747
(*Combines two invariance ASSUMPTIONS into one.  USEFUL??*)
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   748
val Always_Int_tac = dtac Always_Int_I THEN' assume_tac THEN' etac Always_thin
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   749
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   750
(*Combines a list of invariance THEOREMS into one.*)
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   751
val Always_Int_rule = foldr1 (fn (th1,th2) => [th1,th2] MRS Always_Int_I)
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   752
13812
91713a1915ee converting HOL/UNITY to use unconditional fairness
paulson
parents: 13798
diff changeset
   753
(*Proves "co" properties when the program is specified.  Any use of invariants
91713a1915ee converting HOL/UNITY to use unconditional fairness
paulson
parents: 13798
diff changeset
   754
  (from weak constrains) must have been done already.*)
13786
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   755
fun gen_constrains_tac(cs,ss) i = 
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   756
   SELECT_GOAL
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   757
      (EVERY [REPEAT (Always_Int_tac 1),
13812
91713a1915ee converting HOL/UNITY to use unconditional fairness
paulson
parents: 13798
diff changeset
   758
              (*reduce the fancy safety properties to "constrains"*)
13786
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   759
	      REPEAT (etac Always_ConstrainsI 1
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   760
		      ORELSE
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   761
		      resolve_tac [StableI, stableI,
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   762
				   constrains_imp_Constrains] 1),
13812
91713a1915ee converting HOL/UNITY to use unconditional fairness
paulson
parents: 13798
diff changeset
   763
              (*for safety, the totalize operator can be ignored*)
91713a1915ee converting HOL/UNITY to use unconditional fairness
paulson
parents: 13798
diff changeset
   764
	      simp_tac (HOL_ss addsimps
91713a1915ee converting HOL/UNITY to use unconditional fairness
paulson
parents: 13798
diff changeset
   765
                         [mk_total_program_def, totalize_constrains_iff]) 1,
13786
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   766
	      rtac constrainsI 1,
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   767
	      full_simp_tac ss 1,
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   768
	      REPEAT (FIRSTGOAL (etac disjE)),
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   769
	      ALLGOALS (clarify_tac cs),
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   770
	      ALLGOALS (asm_lr_simp_tac ss)]) i;
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   771
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   772
(*proves "ensures/leadsTo" properties when the program is specified*)
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   773
fun gen_ensures_tac(cs,ss) sact = 
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   774
    SELECT_GOAL
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   775
      (EVERY [REPEAT (Always_Int_tac 1),
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   776
	      etac Always_LeadsTo_Basis 1 
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   777
	          ORELSE   (*subgoal may involve LeadsTo, leadsTo or ensures*)
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   778
		  REPEAT (ares_tac [LeadsTo_Basis, leadsTo_Basis,
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   779
				    EnsuresI, ensuresI] 1),
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   780
	      (*now there are two subgoals: co & transient*)
13812
91713a1915ee converting HOL/UNITY to use unconditional fairness
paulson
parents: 13798
diff changeset
   781
	      simp_tac (ss addsimps [mk_total_program_def]) 2,
91713a1915ee converting HOL/UNITY to use unconditional fairness
paulson
parents: 13798
diff changeset
   782
	      res_inst_tac [("act", sact)] totalize_transientI 2 
91713a1915ee converting HOL/UNITY to use unconditional fairness
paulson
parents: 13798
diff changeset
   783
 	      ORELSE res_inst_tac [("act", sact)] transientI 2,
13786
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   784
                 (*simplify the command's domain*)
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   785
	      simp_tac (ss addsimps [Domain_def]) 3,
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   786
	      gen_constrains_tac (cs,ss) 1,
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   787
	      ALLGOALS (clarify_tac cs),
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   788
	      ALLGOALS (asm_lr_simp_tac ss)]);
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   789
13797
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   790
fun constrains_tac st = gen_constrains_tac (claset(), simpset()) st;
baefae13ad37 conversion of UNITY theories to new-style
paulson
parents: 13796
diff changeset
   791
13796
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   792
fun ensures_tac sact = gen_ensures_tac (claset(), simpset()) sact;
19f50fa807ae converting more UNITY theories to new-style
paulson
parents: 13792
diff changeset
   793
13786
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   794
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   795
(*Composition equivalences, from Lift_prog*)
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   796
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   797
fun make_o_equivs th =
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   798
    [th,
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   799
     th RS o_equiv_assoc |> simplify (HOL_ss addsimps [o_assoc]),
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   800
     th RS o_equiv_apply |> simplify (HOL_ss addsimps [o_def, sub_def])];
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   801
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   802
Addsimps (make_o_equivs fst_o_funPair @ make_o_equivs snd_o_funPair);
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   803
ab8f39f48a6f More conversion of UNITY to Isar new-style theories
paulson
parents:
diff changeset
   804
Addsimps (make_o_equivs fst_o_lift_map @ make_o_equivs snd_o_lift_map);