text:
[STATEMENT]
lemma concat_replicate_trivial[simp]:
  "concat (replicate i []) = []"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. concat (replicate i []) = []
[PROOF STEP]
by (induct i) (auto simp add: map_replicate_const)

lm_label:
1. NO
2. NO


text:
[STATEMENT]
lemma map_types_id[simp]: "map_types id t = t"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. map_types id t = t
[PROOF STEP]
by (induction t) simp_all


text:
[STATEMENT]
lemma shift_0 [simp]: "shift 0 xt = xt"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. shift 0 xt = xt
[PROOF STEP]
by(induct xt)(auto simp:shift_def)


text:
[STATEMENT]
lemma swap_different_sorts [simp]:
  "sort_of a \<noteq> sort_of b \<Longrightarrow> (a \<rightleftharpoons> b) = 0"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. sort_of a \<noteq> sort_of b \<Longrightarrow> (a \<rightleftharpoons> b) = 0
[PROOF STEP]
by (rule Rep_perm_ext) (simp add: Rep_perm_simps)


text:
[STATEMENT]
lemma None_add2 [simp]:
  "None ++ x = None"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. None ++ x = None
[PROOF STEP]
by (simp add: lift2_def split: option.splits)


text:
[STATEMENT]
lemma padd_Nil2[simp]: "p +++ [] = p"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. p +++ [] = p
[PROOF STEP]
by (induct p) auto


text:
[STATEMENT]
lemma append_Nil2 [simp]:
  "xs ++ [] = xs"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. xs ++ [] = xs
[PROOF STEP]
by (induct xs) simp_all


text:
[STATEMENT]
lemma swap_same_id[simp]: "swap n n t = t"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. swap n n t = t
[PROOF STEP]
by (induct t) simp_all


text:
[STATEMENT]
lemma less_eq_bot_Bot [simp]: "Bot \<le> x"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Bot \<le> x
[PROOF STEP]
by (simp add: less_eq_bot_def)


text:
[STATEMENT]
lemma ASIF_None[simp]: "ASIF ifopt \<epsilon> \<longleftrightarrow> ifopt = None"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. ASIF ifopt \<epsilon> = (ifopt = None)
[PROOF STEP]
by(cases ifopt, auto)


text:
[STATEMENT]
lemma shows_prec_arctic_delta_append [show_law_simps]:
  "shows_prec d (a :: 'a arctic_delta) (r @ s) = shows_prec d a r @ s"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. shows_prec d a (r @ s) = shows_prec d a r @ s
[PROOF STEP]
by (cases a) (auto simp: shows_prec_arctic_delta_def show_law_simps)