equal
deleted
inserted
replaced
1442 apply(induct r rule: bsimp.induct) |
1442 apply(induct r rule: bsimp.induct) |
1443 apply(auto) |
1443 apply(auto) |
1444 using bsimp_ASEQ_idem apply presburger |
1444 using bsimp_ASEQ_idem apply presburger |
1445 oops |
1445 oops |
1446 |
1446 |
|
1447 lemma neg: |
|
1448 shows " \<not>(\<exists>r2. r1 \<leadsto> r2 \<and> (r2 \<leadsto>* bsimp r1) )" |
|
1449 apply(rule notI) |
|
1450 apply(erule exE) |
|
1451 apply(erule conjE) |
|
1452 oops |
|
1453 |
|
1454 |
|
1455 |
|
1456 |
|
1457 lemma reduction_always_in_bsimp: |
|
1458 shows " \<lbrakk> r1 \<leadsto> r2 ; \<not>(r2 \<leadsto>* bsimp r1)\<rbrakk> \<Longrightarrow> False" |
|
1459 apply(erule rrewrite.cases) |
|
1460 apply simp |
|
1461 apply auto |
|
1462 |
|
1463 oops |
|
1464 |
|
1465 (* |
|
1466 AALTs [] [AZERO, AALTs(bs1, [a, b]) ] |
|
1467 rewrite seq 1: \<leadsto> AALTs [] [ AALTs(bs1, [a, b]) ] \<leadsto> |
|
1468 fuse [] (AALTs bs1, [a, b]) |
|
1469 rewrite seq 2: \<leadsto> AALTs [] [AZERO, (fuse bs1 a), (fuse bs1 b)]) ] |
|
1470 |
|
1471 *) |
|
1472 |
|
1473 lemma normal_bsimp: |
|
1474 shows "\<nexists>r'. bsimp r \<leadsto> r'" |
|
1475 oops |
|
1476 |
|
1477 (*r' size bsimp r > size r' |
|
1478 r' \<leadsto>* bsimp bsimp r |
|
1479 size bsimp r > size r' \<ge> size bsimp bsimp r*) |
|
1480 |
1447 export_code blexer_simp blexer lexer bders bders_simp in Scala module_name VerifiedLexers |
1481 export_code blexer_simp blexer lexer bders bders_simp in Scala module_name VerifiedLexers |
1448 |
1482 |
1449 |
1483 |
1450 unused_thms |
1484 unused_thms |
1451 |
1485 |