Theorem: List.Sublist.sym
File: Mathlib/Data/List/Sym.lean

tactic: simp [List.sym]
state_before: α : Type u_1
xs✝¹ ys✝¹ : List α
n✝ n : ℕ
xs✝ ys✝ : List α
h : xs✝ <+ ys✝
ys xs : List α
x✝ : xs <+ ys
⊢ List.sym 0 xs <+ List.sym 0 ys
state_after: no goals

tactic: simp only [refl]
state_before: α : Type u_1
xs✝ ys✝ : List α
n✝¹ n✝ : ℕ
xs ys : List α
h : xs <+ ys
n : ℕ
⊢ List.sym (n + 1) [] <+ List.sym (n + 1) []
state_after: no goals

tactic: rw [List.sym, ← nil_append (List.sym (n + 1) xs)]
state_before: α : Type u_1
xs✝¹ ys✝ : List α
n✝¹ n✝ : ℕ
xs✝ ys : List α
h✝ : xs✝ <+ ys
xs : List α
n : ℕ
l₂✝ : List α
a : α
h : xs <+ l₂✝
⊢ List.sym (n + 1) xs <+ List.sym (n + 1) (a :: l₂✝)
state_after: α : Type u_1
xs✝¹ ys✝ : List α
n✝¹ n✝ : ℕ
xs✝ ys : List α
h✝ : xs✝ <+ ys
xs : List α
n : ℕ
l₂✝ : List α
a : α
h : xs <+ l₂✝
⊢ [] ++ List.sym (n + 1) xs <+ List.map (fun p => a ::ₛ p) (List.sym n (a :: l₂✝)) ++ List.sym (n + 1) l₂✝

tactic: apply Sublist.append (nil_sublist _)
state_before: α : Type u_1
xs✝¹ ys✝ : List α
n✝¹ n✝ : ℕ
xs✝ ys : List α
h✝ : xs✝ <+ ys
xs : List α
n : ℕ
l₂✝ : List α
a : α
h : xs <+ l₂✝
⊢ [] ++ List.sym (n + 1) xs <+ List.map (fun p => a ::ₛ p) (List.sym n (a :: l₂✝)) ++ List.sym (n + 1) l₂✝
state_after: α : Type u_1
xs✝¹ ys✝ : List α
n✝¹ n✝ : ℕ
xs✝ ys : List α
h✝ : xs✝ <+ ys
xs : List α
n : ℕ
l₂✝ : List α
a : α
h : xs <+ l₂✝
⊢ List.sym (n + 1) xs <+ List.sym (n + 1) l₂✝

tactic: exact h.sym (n + 1)
state_before: α : Type u_1
xs✝¹ ys✝ : List α
n✝¹ n✝ : ℕ
xs✝ ys : List α
h✝ : xs✝ <+ ys
xs : List α
n : ℕ
l₂✝ : List α
a : α
h : xs <+ l₂✝
⊢ List.sym (n + 1) xs <+ List.sym (n + 1) l₂✝
state_after: no goals

tactic: rw [List.sym, List.sym]
state_before: α : Type u_1
xs✝ ys✝ : List α
n✝¹ n✝ : ℕ
xs ys : List α
h✝ : xs <+ ys
n : ℕ
l₁✝ l₂✝ : List α
a : α
h : l₁✝ <+ l₂✝
⊢ List.sym (n + 1) (a :: l₁✝) <+ List.sym (n + 1) (a :: l₂✝)
state_after: α : Type u_1
xs✝ ys✝ : List α
n✝¹ n✝ : ℕ
xs ys : List α
h✝ : xs <+ ys
n : ℕ
l₁✝ l₂✝ : List α
a : α
h : l₁✝ <+ l₂✝
⊢ List.map (fun p => a ::ₛ p) (List.sym n (a :: l₁✝)) ++ List.sym (n + 1) l₁✝ <+
    List.map (fun p => a ::ₛ p) (List.sym n (a :: l₂✝)) ++ List.sym (n + 1) l₂✝

tactic: apply Sublist.append
state_before: α : Type u_1
xs✝ ys✝ : List α
n✝¹ n✝ : ℕ
xs ys : List α
h✝ : xs <+ ys
n : ℕ
l₁✝ l₂✝ : List α
a : α
h : l₁✝ <+ l₂✝
⊢ List.map (fun p => a ::ₛ p) (List.sym n (a :: l₁✝)) ++ List.sym (n + 1) l₁✝ <+
    List.map (fun p => a ::ₛ p) (List.sym n (a :: l₂✝)) ++ List.sym (n + 1) l₂✝
state_after: case hl
α : Type u_1
xs✝ ys✝ : List α
n✝¹ n✝ : ℕ
xs ys : List α
h✝ : xs <+ ys
n : ℕ
l₁✝ l₂✝ : List α
a : α
h : l₁✝ <+ l₂✝
⊢ List.map (fun p => a ::ₛ p) (List.sym n (a :: l₁✝)) <+ List.map (fun p => a ::ₛ p) (List.sym n (a :: l₂✝))

case hr
α : Type u_1
xs✝ ys✝ : List α
n✝¹ n✝ : ℕ
xs ys : List α
h✝ : xs <+ ys
n : ℕ
l₁✝ l₂✝ : List α
a : α
h : l₁✝ <+ l₂✝
⊢ List.sym (n + 1) l₁✝ <+ List.sym (n + 1) l₂✝

tactic: exact ((cons₂ a h).sym n).map _
state_before: case hl
α : Type u_1
xs✝ ys✝ : List α
n✝¹ n✝ : ℕ
xs ys : List α
h✝ : xs <+ ys
n : ℕ
l₁✝ l₂✝ : List α
a : α
h : l₁✝ <+ l₂✝
⊢ List.map (fun p => a ::ₛ p) (List.sym n (a :: l₁✝)) <+ List.map (fun p => a ::ₛ p) (List.sym n (a :: l₂✝))
state_after: no goals

tactic: exact h.sym (n + 1)
state_before: case hr
α : Type u_1
xs✝ ys✝ : List α
n✝¹ n✝ : ℕ
xs ys : List α
h✝ : xs <+ ys
n : ℕ
l₁✝ l₂✝ : List α
a : α
h : l₁✝ <+ l₂✝
⊢ List.sym (n + 1) l₁✝ <+ List.sym (n + 1) l₂✝
state_after: no goals