diff -r 454ced557605 -r 692911c0b981 thys3/src/Lexer.thy --- a/thys3/src/Lexer.thy Thu Jul 21 20:21:52 2022 +0100 +++ b/thys3/src/Lexer.thy Thu Jul 21 20:22:35 2022 +0100 @@ -258,7 +258,6 @@ "v = Seq v1 (Stars vs)" "s = s1 @ s2" "s1 \ der c r \ v1" "s2 \ (NTIMES r (n - 1)) \ (Stars vs)" "0 < n" "\ (\s\<^sub>3 s\<^sub>4. s\<^sub>3 \ [] \ s\<^sub>3 @ s\<^sub>4 = s2 \ s1 @ s\<^sub>3 \ L (der c r) \ s\<^sub>4 \ L (NTIMES r (n - 1)))" - apply(auto elim: Posix_elims simp add: der_correctness Der_def intro: Posix.intros split: if_splits) apply(erule Posix_elims) apply(simp) @@ -287,14 +286,8 @@ then have "\ (\s\<^sub>3 s\<^sub>4. s\<^sub>3 \ [] \ s\<^sub>3 @ s\<^sub>4 = s2 \ (c # s1) @ s\<^sub>3 \ L r \ s\<^sub>4 \ L (NTIMES r (n - 1)))" by (simp add: der_correctness Der_def) ultimately - have "((c # s1) @ s2) \ NTIMES r n \ Stars (injval r c v1 # vs)" - apply (rule_tac Posix.intros) - apply(simp_all) - apply(case_tac n) - apply(simp) - using Posix_elims(1) NTIMES.prems apply auto[1] - apply(simp) - done + have "((c # s1) @ s2) \ NTIMES r n \ Stars (injval r c v1 # vs)" + by (metis One_nat_def Posix_NTIMES1 Suc_eq_plus1 Suc_pred cons(5)) then show "(c # s) \ NTIMES r n \ injval (NTIMES r n) c v" using cons by(simp) qed