src/HOL/Lex/RegExp2NA.ML
changeset 8423 3c19160b6432
parent 7958 f531589c9fc1
child 8442 96023903c2df
equal deleted inserted replaced
8422:6c6a5410a9bd 8423:3c19160b6432
   110 Goal
   110 Goal
   111  "(start(union L R), q) : steps (union L R) w = \
   111  "(start(union L R), q) : steps (union L R) w = \
   112 \ ( (w = [] & q = start(union L R)) | \
   112 \ ( (w = [] & q = start(union L R)) | \
   113 \   (w ~= [] & (? p.  q = True  # p & (start L,p) : steps L w | \
   113 \   (w ~= [] & (? p.  q = True  # p & (start L,p) : steps L w | \
   114 \                     q = False # p & (start R,p) : steps R w)))";
   114 \                     q = False # p & (start R,p) : steps R w)))";
   115 by (exhaust_tac "w" 1);
   115 by (cases_tac "w" 1);
   116  by (Asm_simp_tac 1);
   116  by (Asm_simp_tac 1);
   117  by (Blast_tac 1);
   117  by (Blast_tac 1);
   118 by (Asm_simp_tac 1);
   118 by (Asm_simp_tac 1);
   119 by (Blast_tac 1);
   119 by (Blast_tac 1);
   120 qed "steps_union";
   120 qed "steps_union";
   271  by (Clarify_tac 1);
   271  by (Clarify_tac 1);
   272  by (res_inst_tac [("x","u")] exI 1);
   272  by (res_inst_tac [("x","u")] exI 1);
   273  by (Simp_tac 1);
   273  by (Simp_tac 1);
   274  by (Blast_tac 1);
   274  by (Blast_tac 1);
   275 by (Clarify_tac 1);
   275 by (Clarify_tac 1);
   276 by (exhaust_tac "v" 1);
   276 by (cases_tac "v" 1);
   277  by (Asm_full_simp_tac 1);
   277  by (Asm_full_simp_tac 1);
   278  by (Blast_tac 1);
   278  by (Blast_tac 1);
   279 by (Asm_full_simp_tac 1);
   279 by (Asm_full_simp_tac 1);
   280 by (Blast_tac 1);
   280 by (Blast_tac 1);
   281 qed "accepts_conc";
   281 qed "accepts_conc";
   334 AddIffs [step_plus_conv];
   334 AddIffs [step_plus_conv];
   335 
   335 
   336 Goal
   336 Goal
   337  "[| (start A,q) : steps A u; u ~= []; fin A p |] \
   337  "[| (start A,q) : steps A u; u ~= []; fin A p |] \
   338 \ ==> (p,q) : steps (plus A) u";
   338 \ ==> (p,q) : steps (plus A) u";
   339 by (exhaust_tac "u" 1);
   339 by (cases_tac "u" 1);
   340  by (Blast_tac 1);
   340  by (Blast_tac 1);
   341 by (Asm_full_simp_tac 1);
   341 by (Asm_full_simp_tac 1);
   342 by (blast_tac (claset() addIs [steps_plusI]) 1);
   342 by (blast_tac (claset() addIs [steps_plusI]) 1);
   343 qed "fin_steps_plusI";
   343 qed "fin_steps_plusI";
   344 
   344 
   358 by (Clarify_tac 1);
   358 by (Clarify_tac 1);
   359 by (etac disjE 1);
   359 by (etac disjE 1);
   360  by (res_inst_tac [("x","us")] exI 1);
   360  by (res_inst_tac [("x","us")] exI 1);
   361  by (Asm_simp_tac 1);
   361  by (Asm_simp_tac 1);
   362  by (Blast_tac 1);
   362  by (Blast_tac 1);
   363 by (exhaust_tac "v" 1);
   363 by (cases_tac "v" 1);
   364  by (res_inst_tac [("x","us")] exI 1);
   364  by (res_inst_tac [("x","us")] exI 1);
   365  by (Asm_full_simp_tac 1);
   365  by (Asm_full_simp_tac 1);
   366 by (res_inst_tac [("x","us@[v]")] exI 1);
   366 by (res_inst_tac [("x","us@[v]")] exI 1);
   367 by (asm_full_simp_tac (simpset() addsimps [accepts_conv_steps]) 1);
   367 by (asm_full_simp_tac (simpset() addsimps [accepts_conv_steps]) 1);
   368 by (Blast_tac 1);
   368 by (Blast_tac 1);