16 $s =~ s/,/ /g; |
16 $s =~ s/,/ /g; |
17 $s; |
17 $s; |
18 } |
18 } |
19 |
19 |
20 sub subst_RS { |
20 sub subst_RS { |
21 s/\(([\w\'\.]+) RS ([\w\'\.]+) RS ([\w\'\.]+) RS ([\w\'\.]+) RS ([\w\'\.]+)\)/$1 \[THEN $2, THEN $3, THEN $4, THEN $5\]/g; |
21 s/ RS ([\w\'\.]+)/ [THEN $1]/g; |
22 s/([\w\'\.]+) RS ([\w\'\.]+) RS ([\w\'\.]+) RS ([\w\'\.]+) RS ([\w\'\.]+)/$1 \[THEN $2, THEN $3, THEN $4, THEN $5\]/g; |
22 s/ RS \((.+?)\)/ [THEN $1]/g; |
23 s/\(([\w\'\.]+) RS ([\w\'\.]+) RS ([\w\'\.]+) RS ([\w\'\.]+)\)/$1 \[THEN $2, THEN $3, THEN $4\]/g; |
23 s/\] \[THEN /, /g; |
24 s/([\w\'\.]+) RS ([\w\'\.]+) RS ([\w\'\.]+) RS ([\w\'\.]+)/$1 \[THEN $2, THEN $3, THEN $4\]/g; |
24 s/THEN sym\b/symmetric/g; |
25 s/\(([\w\'\.]+) RS ([\w\'\.]+) RS ([\w\'\.]+)\)/$1 \[THEN $2, THEN $3\]/g; |
25 } |
26 s/([\w\'\.]+) RS ([\w\'\.]+) RS ([\w\'\.]+)/$1 \[THEN $2, THEN $3\]/g; |
26 |
27 s/\(([\w\'\.]+) RS ([\w\'\.]+)\)/$1 \[THEN $2\]/g; |
27 sub subst_RS_standard { |
28 s/([\w\'\.]+) RS ([\w\'\.]+)/$1 \[THEN $2\]/g; |
|
29 s/THEN sym\b/symmetric$1/g; |
|
30 } |
|
31 |
|
32 sub subst_RS_fun { |
|
33 my $s = shift; |
28 my $s = shift; |
34 $_ = $s; |
29 $_ = $s; |
|
30 s/\s+/ /sg; # remove multiple whitespace |
|
31 s/\s/ /sg; # substitute all remaining tabs and newlines by space |
35 subst_RS(); |
32 subst_RS(); |
|
33 s/\]\s*$/, standard]/g; |
36 $_; |
34 $_; |
37 } |
35 } |
38 |
36 |
39 sub decl { |
37 sub decl { |
40 my $s = shift; |
38 my $s = shift; |
255 s/^qed_spec_mp *\"(.*?)\"/done($1," [rule_format (no_asm)]")/se; |
253 s/^qed_spec_mp *\"(.*?)\"/done($1," [rule_format (no_asm)]")/se; |
256 s/^qed *\"(.*?)\"/done($1,"")/se; |
254 s/^qed *\"(.*?)\"/done($1,"")/se; |
257 s/^val *(\w+) *= *result *\( *\) *$/done($1,"")/se; |
255 s/^val *(\w+) *= *result *\( *\) *$/done($1,"")/se; |
258 s/^bind_thm *\( *\"(.*?)\" *, *(result *\( *\) *?) *\) *$/done($1,"")/se; |
256 s/^bind_thm *\( *\"(.*?)\" *, *(result *\( *\) *?) *\) *$/done($1,"")/se; |
259 s/^bind_thm *\( *\"(.*?)\" *, *(.*?result *\( *\).*?) *\) *$/done($1,"[?? $2 ??] ")/se; |
257 s/^bind_thm *\( *\"(.*?)\" *, *(.*?result *\( *\).*?) *\) *$/done($1,"[?? $2 ??] ")/se; |
260 s/^bind_thm *\( *\"(.*?)\" *, *(.*?) *\) *$/"lemmas $1 = ".subst_RS_fun($2)/se; |
258 s/^bind_thm *\( *\"(.*?)\" *, *(.*?) *\) *$/"lemmas $1 = ".subst_RS_standard($2)/se; |
261 s/^by(\s*\(?\s*)(.*?)\s*(\)?)\s*$/process_tac($1,$2).$3/se; |
259 s/^by(\s*\(?\s*)(.*?)\s*(\)?)\s*$/process_tac($1,$2).$3/se; |
262 s/^(apply +)\( *([\w\'\.]+)\s*\)\s*$/$1$2/; |
260 s/^(apply +)\( *([\w\'\.]+)\s*\)\s*$/$1$2/; |
263 # remove outermost parentheses if around atoms |
261 # remove outermost parentheses if around atoms |
264 s/^Addsimps\s*\[?\s*([\w\'\. ,]*)\s*\]?/decl($1,"simp")/seg; |
262 s/^Addsimps\s*\[?\s*([\w\'\. ,]*)\s*\]?/decl($1,"simp")/seg; |
265 s/^Delsimps\s*\[?\s*([\w\'\. ,]*)\s*\]?/decl($1,"simp del")/seg; |
263 s/^Delsimps\s*\[?\s*([\w\'\. ,]*)\s*\]?/decl($1,"simp del")/seg; |