diff -r e6248d2c20c2 -r 2e7c7111c0be thys2/BasicIdentities.thy --- a/thys2/BasicIdentities.thy Wed Mar 23 10:09:32 2022 +0000 +++ b/thys2/BasicIdentities.thy Thu Mar 24 20:52:34 2022 +0000 @@ -71,6 +71,20 @@ | "rsimp_ALTs [r] = r" | "rsimp_ALTs rs = RALTS rs" +lemma rsimpalts_gte2elems: + shows "size rlist \ 2 \ rsimp_ALTs rlist = RALTS rlist" + apply(induct rlist) + apply simp + apply(induct rlist) + apply simp + apply (metis Suc_le_length_iff rsimp_ALTs.simps(3)) + by blast + +lemma rsimpalts_conscons: + shows "rsimp_ALTs (r1 # rsa @ r2 # rsb) = RALTS (r1 # rsa @ r2 # rsb)" + by (metis Nil_is_append_conv list.exhaust rsimp_ALTs.simps(3)) + + fun rsimp_SEQ :: " rrexp \ rrexp \ rrexp" where "rsimp_SEQ RZERO _ = RZERO" @@ -264,7 +278,7 @@ lemma rders_simp_append: "rders_simp c (s1 @ s2) = rders_simp (rders_simp c s1) s2" apply(induct s1 arbitrary: c s2) - apply(simp_all) + apply(simp_all) done lemma inside_simp_removal: @@ -332,7 +346,7 @@ by (meson map_idI rsimp_inner_idem2) corollary rsimp_inner_idem4: - shows "rsimp r = RALTS rs \ flts rs = rs" + shows "rsimp r = RALTS rs \ rflts rs = rs" sorry