97 s/ALLGOALS \(asm_full_simp_tac \(simpset\(\) (.*?)\)\)/simp_all $1/g; |
98 s/ALLGOALS \(asm_full_simp_tac \(simpset\(\) (.*?)\)\)/simp_all $1/g; |
98 s/ALLGOALS \(full_simp_tac \(simpset\(\) (.*?)\)\)/simp_all (no_asm_use) $1/g; |
99 s/ALLGOALS \(full_simp_tac \(simpset\(\) (.*?)\)\)/simp_all (no_asm_use) $1/g; |
99 s/ALLGOALS \(asm_simp_tac \(simpset\(\) (.*?)\)\)/simp_all (no_asm_simp) $1/g; |
100 s/ALLGOALS \(asm_simp_tac \(simpset\(\) (.*?)\)\)/simp_all (no_asm_simp) $1/g; |
100 s/ALLGOALS \(simp_tac \(simpset\(\) (.*?)\)\)/simp_all (no_asm) $1/g; |
101 s/ALLGOALS \(simp_tac \(simpset\(\) (.*?)\)\)/simp_all (no_asm) $1/g; |
101 |
102 |
102 s/atac 1/assumption/g; |
103 s/a((ssume_)?)tac 1/assumption/g; |
103 s/atac (\d+)/tactic \"assume_tac $1\"/g; |
104 s/a((ssume_)?)tac (\d+)/tactic \"assume_tac $1\"/g; |
104 s/^mp_tac 1/erule (1) notE impE/g; |
105 s/\bmp_tac 1/erule (1) notE impE/g; |
105 s/^mp_tac (\d+)/erule_tac [$1] notE impE, tactic \"assume_tac $1\"/g; |
106 s/\bmp_tac (\d+)/erule_tac [$1] notE impE, tactic \"assume_tac $1\"/g; |
106 |
107 |
107 s/hypsubst_tac 1/hypsubst/g; |
108 s/hypsubst_tac 1/hypsubst/g; |
108 s/arith_tac 1/arith/g; |
109 s/arith_tac 1/arith/g; |
109 s/strip_tac 1/intro strip/g; |
110 s/strip_tac 1/intro strip/g; |
110 s/split_all_tac 1/simp (no_asm_simp) only: split_tupled_all/g; |
111 s/split_all_tac 1/simp (no_asm_simp) only: split_tupled_all/g; |
111 |
112 |
112 s/rotate_tac (\d+) 1/rotate_tac $1/g; |
|
113 s/rotate_tac (\d+) (\d+)/rotate_tac [$2] $1/g; |
113 s/rotate_tac (\d+) (\d+)/rotate_tac [$2] $1/g; |
114 s/rotate_tac (~\d+) 1/rotate_tac -$1/g; |
114 s/rotate_tac ~ *(\d+) (\d+)/rotate_tac [$2] -$1/g; |
115 s/rotate_tac (~\d+) (\d+)/rotate_tac [$2] -$1/g; |
|
116 s/rename_tac (\".*?\") 1/rename_tac $1/g; |
|
117 s/rename_tac (\".*?\") (\d+)/rename_tac [$2] $1/g; |
115 s/rename_tac (\".*?\") (\d+)/rename_tac [$2] $1/g; |
118 s/case_tac (\".*?\") 1/case_tac $1/g; |
|
119 s/case_tac (\".*?\") (\d+)/case_tac [$2] $1/g; |
116 s/case_tac (\".*?\") (\d+)/case_tac [$2] $1/g; |
120 s/induct_tac (\".*?\") 1/induct_tac $1/g; |
|
121 s/induct_tac (\".*?\") (\d+)/induct_tac [$2] $1/g; |
117 s/induct_tac (\".*?\") (\d+)/induct_tac [$2] $1/g; |
122 s/induct_thm_tac ([\w\'\. \[,\]]+?) (\".*?\") 1/induct_tac $2 rule: $1/g; |
|
123 s/induct_thm_tac ([\w\'\. \[,\]]+?) (\".*?\") (\d+)/induct_tac [$3] $2 rule: $1/g; |
118 s/induct_thm_tac ([\w\'\. \[,\]]+?) (\".*?\") (\d+)/induct_tac [$3] $2 rule: $1/g; |
124 s/subgoal_tac (\".*?\") 1/subgoal_tac $1/g; |
|
125 s/subgoal_tac (\".*?\") (\d+)/subgoal_tac [$2] $1/g; |
119 s/subgoal_tac (\".*?\") (\d+)/subgoal_tac [$2] $1/g; |
126 s/thin_tac (\".*?\") *1/erule_tac V = $1 in thin_rl/g; |
|
127 s/thin_tac (\".*?\") *(\d+)/erule_tac [$2] V = $1 in thin_rl/g; |
120 s/thin_tac (\".*?\") *(\d+)/erule_tac [$2] V = $1 in thin_rl/g; |
128 |
121 |
129 s/THEN /, /g; |
122 s/THEN /, /g; |
130 s/ORELSE/|/g; |
123 s/ORELSE/|/g; |
131 subst_RS(); |
124 subst_RS(); |
|
125 |
|
126 s/\(\"(.*?)\" *, *(\".*?\")\) *, */$1 = $2 and /g; # instantiations |
|
127 s/\(\"(.*?)\" *, *(\".*?\")\)/$1 = $2/g; # last instantiation |
132 |
128 |
133 s/rewtac ([\w\'\. \[,\]]+)/unfold $1/g; |
129 s/rewtac ([\w\'\. \[,\]]+)/unfold $1/g; |
134 s/stac ([\w\'\. \[,\]]+?) 1/subst $1/g; |
130 s/stac ([\w\'\. \[,\]]+?) 1/subst $1/g; |
135 s/rtac ([\w\'\. \[,\]]+?) 1/rule $1/g; |
131 s/rtac ([\w\'\. \[,\]]+?) 1/rule $1/g; |
136 s/rtac ([\w\'\. \[,\]]+?) (\d+)/rule_tac [$2] $1/g; |
132 s/rtac ([\w\'\. \[,\]]+?) (\d+)/rule_tac [$2] $1/g; |
137 s/res_inst_tac \[\((\".*?\"),(\".*?\")\)\] ([\w\'\. \[,\]]+?) 1/rule_tac $1 = $2 in $3/g; |
133 s/res_inst_tac \[(.*?)\] ([\w\'\. \[,\]]+?) (\d+)/rule_tac [$3] $1 in $2/g; |
138 s/dtac ([\w\'\. \[,\]]+?) 1/drule $1/g; |
134 s/dtac ([\w\'\. \[,\]]+?) 1/drule $1/g; |
139 s/dtac ([\w\'\. \[,\]]+?) (\d+)/drule_tac [$2] $1/g; |
135 s/dtac ([\w\'\. \[,\]]+?) (\d+)/drule_tac [$2] $1/g; |
140 s/dres_inst_tac \[\((\".*?\"),(\".*?\")\)\] ([\w\'\. \[,\]]+?) 1/drule_tac $1 = $2 in $3/g; |
136 s/dres_inst_tac \[(.*?)\] ([\w\'\. \[,\]]+?) (\d+)/drule_tac [$3] $1 in $2/g; |
141 s/datac ([\w\'\. \[,\]]+?) (\d+) 1/drule ($2) $1/g; |
137 s/datac ([\w\'\. \[,\]]+?) (\d+) 1/drule ($2) $1/g; |
142 s/etac ([\w\'\. \[,\]]+?) 1/erule $1/g; |
138 s/etac ([\w\'\. \[,\]]+?) 1/erule $1/g; |
143 s/etac ([\w\'\. \[,\]]+?) (\d+)/erule_tac [$2] $1/g; |
139 s/etac ([\w\'\. \[,\]]+?) (\d+)/erule_tac [$2] $1/g; |
144 s/eres_inst_tac \[\((\".*?\"),(\".*?\")\)\] ([\w\'\. \[,\]]+?) 1/erule_tac $1 = $2 in $3/g; |
140 s/eres_inst_tac \[(.*?)\] ([\w\'\. \[,\]]+?) (\d+)/erule_tac [$3] $1 in $2/g; |
145 s/eatac ([\w\'\. \[,\]]+?) (\d+) 1/erule ($2) $1/g; |
141 s/eatac ([\w\'\. \[,\]]+?) (\d+) 1/erule ($2) $1/g; |
146 s/forward_tac \[([\w\'\. \[,\]]+)\] 1/frule $1/g; |
142 s/forward_tac \[([\w\'\. \[,\]]+)\] 1/frule $1/g; |
147 s/forward_tac \[([\w\'\. \[,\]]+)\] (\d+)/frule_tac [$2] $1/g; |
143 s/forward_tac \[([\w\'\. \[,\]]+)\] (\d+)/frule_tac [$2] $1/g; |
148 s/ftac ([\w\'\. \[,\]]+?) 1/frule $1/g; |
144 s/ftac ([\w\'\. \[,\]]+?) 1/frule $1/g; |
149 s/ftac ([\w\'\. \[,\]]+?) (\d+)/frule_tac [$2] $1/g; |
145 s/ftac ([\w\'\. \[,\]]+?) (\d+)/frule_tac [$2] $1/g; |
150 s/forw_inst_tac \[\((\".*?\"),(\".*?\")\)\] ([\w\'\. \[,\]]+?) 1/frule_tac $1 = $2 in $3/g; |
146 s/forw_inst_tac \[(.*?)\] ([\w\'\. \[,\]]+?) (\d+)/frule_tac [$3] $1 in $2/g; |
151 s/fatac ([\w\'\. \[,\]]+?) (\d+) 1/frule ($2) $1/g; |
147 s/fatac ([\w\'\. \[,\]]+?) (\d+) 1/frule ($2) $1/g; |
152 |
148 |
153 |
149 |
154 s/fold_goals_tac *(\[[\w\'\. ,]*\]|[\w\'\. \[,\]]+)/"fold ".thmlist($1)/eg; |
150 s/fold_goals_tac *(\[[\w\'\. ,]*\]|[\w\'\. \[,\]]+)/"fold ".thmlist($1)/eg; |
155 s/rewrite_goals_tac *(\[[\w\'\. ,]*\]|[\w\'\. \[,\]]+)/"unfold ".thmlist($1)/eg; |
151 s/rewrite_goals_tac *(\[[\w\'\. ,]*\]|[\w\'\. \[,\]]+)/"unfold ".thmlist($1)/eg; |
156 s/cut_facts_tac *(\[[\w\'\. ,]*\]|[\w\'\. \[,\]]+) 1/"cut_tac ".thmlist($1)/eg; |
152 s/cut_inst_tac \[(.*?)\] ([\w\'\. \[,\]]+?) (\d+)/cut_tac [$3] $1 in $2/g; |
|
153 s/cut_facts_tac *(\[[\w\'\. ,]*\]|[\w\'\. \[,\]]+) (\d+)/"cut_tac [$2] ".thmlist($1)/eg; |
157 s/resolve_tac *(\[[\w\'\. ,]*\]|[\w\'\. \[,\]]+) 1/"rule ".thmlist($1)/eg; |
154 s/resolve_tac *(\[[\w\'\. ,]*\]|[\w\'\. \[,\]]+) 1/"rule ".thmlist($1)/eg; |
158 |
155 |
159 s/addIs *(\[[\w\'\. ,]*\]|[\w\'\. \[,\]]+)/"intro: ".thmlist($1)/eg; |
156 s/addIs *(\[[\w\'\. ,]*\]|[\w\'\. \[,\]]+)/"intro: ".thmlist($1)/eg; |
160 s/addSIs *(\[[\w\'\. ,]*\]|[\w\'\. \[,\]]+)/"intro!: ".thmlist($1)/eg; |
157 s/addSIs *(\[[\w\'\. ,]*\]|[\w\'\. \[,\]]+)/"intro!: ".thmlist($1)/eg; |
161 s/addEs *(\[[\w\'\. ,]*\]|[\w\'\. \[,\]]+)/"elim: ".thmlist($1)/eg; |
158 s/addEs *(\[[\w\'\. ,]*\]|[\w\'\. \[,\]]+)/"elim: ".thmlist($1)/eg; |
236 } |
235 } |
237 $_=$line; |
236 $_=$line; |
238 s/^Goalw *(\[[\w\'\.\s,]*\]|[\w\'\. \[,\]]+) *(.+)/ |
237 s/^Goalw *(\[[\w\'\.\s,]*\]|[\w\'\. \[,\]]+) *(.+)/ |
239 "lemma ".thmname().": $2$head"."apply (unfold ".thmlist($1).")"/se; |
238 "lemma ".thmname().": $2$head"."apply (unfold ".thmlist($1).")"/se; |
240 s/^Goal *(.+)/"lemma ".thmname().": $1"/se; |
239 s/^Goal *(.+)/"lemma ".thmname().": $1"/se; |
241 s/( |^)goal/"(*".thmname()."*)$1goal"/se; # ugly old-style goals |
240 s/\bgoal/"(*".thmname()."*)goal"/se; # ugly old-style goals |
242 s/^qed_spec_mp *\"(.*?)\"/done($1," [rule_format (no_asm)]")/se; |
241 s/^qed_spec_mp *\"(.*?)\"/done($1," [rule_format (no_asm)]")/se; |
243 s/^qed *\"(.*?)\"/done($1,"")/se; |
242 s/^qed *\"(.*?)\"/done($1,"")/se; |
|
243 s/^val *(\w+) *= *result *\( *\) *$/done($1,"")/se; |
|
244 s/^bind_thm *\( *\"(.*?)\" *, *(result *\( *\) *?) *\) *$/done($1,"")/se; |
244 s/^bind_thm *\( *\"(.*?)\" *, *(.*?result *\( *\).*?) *\) *$/done($1,"[?? $2 ??] ")/se; |
245 s/^bind_thm *\( *\"(.*?)\" *, *(.*?result *\( *\).*?) *\) *$/done($1,"[?? $2 ??] ")/se; |
245 s/^bind_thm *\( *\"(.*?)\" *, *(.*?) *\) *$/"lemmas $1 = ".subst_RS_fun($2)/se; |
246 s/^bind_thm *\( *\"(.*?)\" *, *(.*?) *\) *$/"lemmas $1 = ".subst_RS_fun($2)/se; |
246 s/^by(\s*\(?\s*)(.*?)\s*(\)?)\s*$/"apply".$1.process_tac($1,$2).$3/se; |
247 s/^by(\s*\(?\s*)(.*?)\s*(\)?)\s*$/"apply".$1.process_tac($1,$2).$3/se; |
247 s/^(apply +)\( *([\w\'\.]+)\s*\)\s*$/$1$2/; |
248 s/^(apply +)\( *([\w\'\.]+)\s*\)\s*$/$1$2/; |
248 # remove outermost parentheses if around atoms |
249 # remove outermost parentheses if around atoms |