lib/scripts/convert.pl
changeset 11131 5dc3b5abdbca
parent 11114 a0c3f2082c88
child 11198 26a3e549ce8e
equal deleted inserted replaced
11130:d14fd58615b9 11131:5dc3b5abdbca
    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;