Theorem: CategoryTheory.Functor.OfSequence.map_comp
File: Mathlib/CategoryTheory/Functor/OfSequence.lean

tactic: revert X f j k
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
i j k : ℕ
hij : i ≤ j
hjk : j ≤ k
⊢ map f i k ⋯ = map f i j hij ≫ map f j k hjk
state_after: C : Type u_1
inst✝ : Category.{u_2, u_1} C
i : ℕ
⊢ ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (j k : ℕ) (hij : i ≤ j) (hjk : j ≤ k),
    map f i k ⋯ = map f i j hij ≫ map f j k hjk

tactic: intros X f j
state_before: case zero
C : Type u_1
inst✝ : Category.{u_2, u_1} C
⊢ ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (j k : ℕ) (hij : 0 ≤ j) (hjk : j ≤ k),
    map f 0 k ⋯ = map f 0 j hij ≫ map f j k hjk
state_after: case zero
C : Type u_1
inst✝ : Category.{u_2, u_1} C
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
j : ℕ
⊢ ∀ (k : ℕ) (hij : 0 ≤ j) (hjk : j ≤ k), map f 0 k ⋯ = map f 0 j hij ≫ map f j k hjk

tactic: revert X f
state_before: case zero
C : Type u_1
inst✝ : Category.{u_2, u_1} C
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
j : ℕ
⊢ ∀ (k : ℕ) (hij : 0 ≤ j) (hjk : j ≤ k), map f 0 k ⋯ = map f 0 j hij ≫ map f j k hjk
state_after: case zero
C : Type u_1
inst✝ : Category.{u_2, u_1} C
j : ℕ
⊢ ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (k : ℕ) (hij : 0 ≤ j) (hjk : j ≤ k),
    map f 0 k ⋯ = map f 0 j hij ≫ map f j k hjk

tactic: intros X f k hij hjk
state_before: case zero.zero
C : Type u_1
inst✝ : Category.{u_2, u_1} C
⊢ ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (k : ℕ) (hij : 0 ≤ 0) (hjk : 0 ≤ k),
    map f 0 k ⋯ = map f 0 0 hij ≫ map f 0 k hjk
state_after: case zero.zero
C : Type u_1
inst✝ : Category.{u_2, u_1} C
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
k : ℕ
hij : 0 ≤ 0
hjk : 0 ≤ k
⊢ map f 0 k ⋯ = map f 0 0 hij ≫ map f 0 k hjk

tactic: rw [map_id, id_comp]
state_before: case zero.zero
C : Type u_1
inst✝ : Category.{u_2, u_1} C
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
k : ℕ
hij : 0 ≤ 0
hjk : 0 ≤ k
⊢ map f 0 k ⋯ = map f 0 0 hij ≫ map f 0 k hjk
state_after: no goals

tactic: rintro X f (_|_|k) hij hjk
state_before: case zero.succ
C : Type u_1
inst✝ : Category.{u_2, u_1} C
j : ℕ
hj :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (k : ℕ) (hij : 0 ≤ j) (hjk : j ≤ k),
    map f 0 k ⋯ = map f 0 j hij ≫ map f j k hjk
⊢ ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (k : ℕ) (hij : 0 ≤ j + 1) (hjk : j + 1 ≤ k),
    map f 0 k ⋯ = map f 0 (j + 1) hij ≫ map f (j + 1) k hjk
state_after: case zero.succ.zero
C : Type u_1
inst✝ : Category.{u_2, u_1} C
j : ℕ
hj :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (k : ℕ) (hij : 0 ≤ j) (hjk : j ≤ k),
    map f 0 k ⋯ = map f 0 j hij ≫ map f j k hjk
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
hij : 0 ≤ j + 1
hjk : j + 1 ≤ 0
⊢ map f 0 0 ⋯ = map f 0 (j + 1) hij ≫ map f (j + 1) 0 hjk

case zero.succ.succ.zero
C : Type u_1
inst✝ : Category.{u_2, u_1} C
j : ℕ
hj :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (k : ℕ) (hij : 0 ≤ j) (hjk : j ≤ k),
    map f 0 k ⋯ = map f 0 j hij ≫ map f j k hjk
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
hij : 0 ≤ j + 1
hjk : j + 1 ≤ 0 + 1
⊢ map f 0 (0 + 1) ⋯ = map f 0 (j + 1) hij ≫ map f (j + 1) (0 + 1) hjk

case zero.succ.succ.succ
C : Type u_1
inst✝ : Category.{u_2, u_1} C
j : ℕ
hj :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (k : ℕ) (hij : 0 ≤ j) (hjk : j ≤ k),
    map f 0 k ⋯ = map f 0 j hij ≫ map f j k hjk
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
k : ℕ
hij : 0 ≤ j + 1
hjk : j + 1 ≤ k + 1 + 1
⊢ map f 0 (k + 1 + 1) ⋯ = map f 0 (j + 1) hij ≫ map f (j + 1) (k + 1 + 1) hjk

tactic: omega
state_before: case zero.succ.zero
C : Type u_1
inst✝ : Category.{u_2, u_1} C
j : ℕ
hj :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (k : ℕ) (hij : 0 ≤ j) (hjk : j ≤ k),
    map f 0 k ⋯ = map f 0 j hij ≫ map f j k hjk
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
hij : 0 ≤ j + 1
hjk : j + 1 ≤ 0
⊢ map f 0 0 ⋯ = map f 0 (j + 1) hij ≫ map f (j + 1) 0 hjk
state_after: no goals

tactic: obtain rfl : j = 0 := by omega
state_before: case zero.succ.succ.zero
C : Type u_1
inst✝ : Category.{u_2, u_1} C
j : ℕ
hj :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (k : ℕ) (hij : 0 ≤ j) (hjk : j ≤ k),
    map f 0 k ⋯ = map f 0 j hij ≫ map f j k hjk
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
hij : 0 ≤ j + 1
hjk : j + 1 ≤ 0 + 1
⊢ map f 0 (0 + 1) ⋯ = map f 0 (j + 1) hij ≫ map f (j + 1) (0 + 1) hjk
state_after: case zero.succ.succ.zero
C : Type u_1
inst✝ : Category.{u_2, u_1} C
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
hj :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (k : ℕ) (hij : 0 ≤ 0) (hjk : 0 ≤ k),
    map f 0 k ⋯ = map f 0 0 hij ≫ map f 0 k hjk
hij : 0 ≤ 0 + 1
hjk : 0 + 1 ≤ 0 + 1
⊢ map f 0 (0 + 1) ⋯ = map f 0 (0 + 1) hij ≫ map f (0 + 1) (0 + 1) hjk

tactic: rw [map_id, comp_id]
state_before: case zero.succ.succ.zero
C : Type u_1
inst✝ : Category.{u_2, u_1} C
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
hj :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (k : ℕ) (hij : 0 ≤ 0) (hjk : 0 ≤ k),
    map f 0 k ⋯ = map f 0 0 hij ≫ map f 0 k hjk
hij : 0 ≤ 0 + 1
hjk : 0 + 1 ≤ 0 + 1
⊢ map f 0 (0 + 1) ⋯ = map f 0 (0 + 1) hij ≫ map f (0 + 1) (0 + 1) hjk
state_after: no goals

tactic: omega
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
j : ℕ
hj :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (k : ℕ) (hij : 0 ≤ j) (hjk : j ≤ k),
    map f 0 k ⋯ = map f 0 j hij ≫ map f j k hjk
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
hij : 0 ≤ j + 1
hjk : j + 1 ≤ 0 + 1
⊢ j = 0
state_after: no goals

tactic: dsimp [map]
state_before: case zero.succ.succ.succ
C : Type u_1
inst✝ : Category.{u_2, u_1} C
j : ℕ
hj :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (k : ℕ) (hij : 0 ≤ j) (hjk : j ≤ k),
    map f 0 k ⋯ = map f 0 j hij ≫ map f j k hjk
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
k : ℕ
hij : 0 ≤ j + 1
hjk : j + 1 ≤ k + 1 + 1
⊢ map f 0 (k + 1 + 1) ⋯ = map f 0 (j + 1) hij ≫ map f (j + 1) (k + 1 + 1) hjk
state_after: case zero.succ.succ.succ
C : Type u_1
inst✝ : Category.{u_2, u_1} C
j : ℕ
hj :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (k : ℕ) (hij : 0 ≤ j) (hjk : j ≤ k),
    map f 0 k ⋯ = map f 0 j hij ≫ map f j k hjk
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
k : ℕ
hij : 0 ≤ j + 1
hjk : j + 1 ≤ k + 1 + 1
⊢ f 0 ≫ map (fun n => f (n + 1)) 0 (k + 1) ⋯ = map f 0 (j + 1) hij ≫ map (fun n => f (n + 1)) j (k + 1) ⋯

tactic: rw [hj (fun n ↦ f (n + 1)) (k + 1) (by omega) (by omega)]
state_before: case zero.succ.succ.succ
C : Type u_1
inst✝ : Category.{u_2, u_1} C
j : ℕ
hj :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (k : ℕ) (hij : 0 ≤ j) (hjk : j ≤ k),
    map f 0 k ⋯ = map f 0 j hij ≫ map f j k hjk
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
k : ℕ
hij : 0 ≤ j + 1
hjk : j + 1 ≤ k + 1 + 1
⊢ f 0 ≫ map (fun n => f (n + 1)) 0 (k + 1) ⋯ = map f 0 (j + 1) hij ≫ map (fun n => f (n + 1)) j (k + 1) ⋯
state_after: case zero.succ.succ.succ
C : Type u_1
inst✝ : Category.{u_2, u_1} C
j : ℕ
hj :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (k : ℕ) (hij : 0 ≤ j) (hjk : j ≤ k),
    map f 0 k ⋯ = map f 0 j hij ≫ map f j k hjk
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
k : ℕ
hij : 0 ≤ j + 1
hjk : j + 1 ≤ k + 1 + 1
⊢ f 0 ≫ map (fun n => f (n + 1)) 0 j ⋯ ≫ map (fun n => f (n + 1)) j (k + 1) ⋯ =
    map f 0 (j + 1) hij ≫ map (fun n => f (n + 1)) j (k + 1) ⋯

tactic: obtain _|j := j
state_before: case zero.succ.succ.succ
C : Type u_1
inst✝ : Category.{u_2, u_1} C
j : ℕ
hj :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (k : ℕ) (hij : 0 ≤ j) (hjk : j ≤ k),
    map f 0 k ⋯ = map f 0 j hij ≫ map f j k hjk
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
k : ℕ
hij : 0 ≤ j + 1
hjk : j + 1 ≤ k + 1 + 1
⊢ f 0 ≫ map (fun n => f (n + 1)) 0 j ⋯ ≫ map (fun n => f (n + 1)) j (k + 1) ⋯ =
    map f 0 (j + 1) hij ≫ map (fun n => f (n + 1)) j (k + 1) ⋯
state_after: case zero.succ.succ.succ.zero
C : Type u_1
inst✝ : Category.{u_2, u_1} C
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
k : ℕ
hj :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (k : ℕ) (hij : 0 ≤ 0) (hjk : 0 ≤ k),
    map f 0 k ⋯ = map f 0 0 hij ≫ map f 0 k hjk
hij : 0 ≤ 0 + 1
hjk : 0 + 1 ≤ k + 1 + 1
⊢ f 0 ≫ map (fun n => f (n + 1)) 0 0 ⋯ ≫ map (fun n => f (n + 1)) 0 (k + 1) ⋯ =
    map f 0 (0 + 1) hij ≫ map (fun n => f (n + 1)) 0 (k + 1) ⋯

case zero.succ.succ.succ.succ
C : Type u_1
inst✝ : Category.{u_2, u_1} C
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
k j : ℕ
hj :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (k : ℕ) (hij : 0 ≤ j + 1) (hjk : j + 1 ≤ k),
    map f 0 k ⋯ = map f 0 (j + 1) hij ≫ map f (j + 1) k hjk
hij : 0 ≤ j + 1 + 1
hjk : j + 1 + 1 ≤ k + 1 + 1
⊢ f 0 ≫ map (fun n => f (n + 1)) 0 (j + 1) ⋯ ≫ map (fun n => f (n + 1)) (j + 1) (k + 1) ⋯ =
    map f 0 (j + 1 + 1) hij ≫ map (fun n => f (n + 1)) (j + 1) (k + 1) ⋯

tactic: all_goals simp [map]
state_before: case zero.succ.succ.succ.zero
C : Type u_1
inst✝ : Category.{u_2, u_1} C
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
k : ℕ
hj :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (k : ℕ) (hij : 0 ≤ 0) (hjk : 0 ≤ k),
    map f 0 k ⋯ = map f 0 0 hij ≫ map f 0 k hjk
hij : 0 ≤ 0 + 1
hjk : 0 + 1 ≤ k + 1 + 1
⊢ f 0 ≫ map (fun n => f (n + 1)) 0 0 ⋯ ≫ map (fun n => f (n + 1)) 0 (k + 1) ⋯ =
    map f 0 (0 + 1) hij ≫ map (fun n => f (n + 1)) 0 (k + 1) ⋯

case zero.succ.succ.succ.succ
C : Type u_1
inst✝ : Category.{u_2, u_1} C
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
k j : ℕ
hj :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (k : ℕ) (hij : 0 ≤ j + 1) (hjk : j + 1 ≤ k),
    map f 0 k ⋯ = map f 0 (j + 1) hij ≫ map f (j + 1) k hjk
hij : 0 ≤ j + 1 + 1
hjk : j + 1 + 1 ≤ k + 1 + 1
⊢ f 0 ≫ map (fun n => f (n + 1)) 0 (j + 1) ⋯ ≫ map (fun n => f (n + 1)) (j + 1) (k + 1) ⋯ =
    map f 0 (j + 1 + 1) hij ≫ map (fun n => f (n + 1)) (j + 1) (k + 1) ⋯
state_after: no goals

tactic: omega
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
j : ℕ
hj :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (k : ℕ) (hij : 0 ≤ j) (hjk : j ≤ k),
    map f 0 k ⋯ = map f 0 j hij ≫ map f j k hjk
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
k : ℕ
hij : 0 ≤ j + 1
hjk : j + 1 ≤ k + 1 + 1
⊢ 0 ≤ j
state_after: no goals

tactic: omega
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
j : ℕ
hj :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (k : ℕ) (hij : 0 ≤ j) (hjk : j ≤ k),
    map f 0 k ⋯ = map f 0 j hij ≫ map f j k hjk
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
k : ℕ
hij : 0 ≤ j + 1
hjk : j + 1 ≤ k + 1 + 1
⊢ j ≤ k + 1
state_after: no goals

tactic: simp [map]
state_before: case zero.succ.succ.succ.succ
C : Type u_1
inst✝ : Category.{u_2, u_1} C
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
k j : ℕ
hj :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (k : ℕ) (hij : 0 ≤ j + 1) (hjk : j + 1 ≤ k),
    map f 0 k ⋯ = map f 0 (j + 1) hij ≫ map f (j + 1) k hjk
hij : 0 ≤ j + 1 + 1
hjk : j + 1 + 1 ≤ k + 1 + 1
⊢ f 0 ≫ map (fun n => f (n + 1)) 0 (j + 1) ⋯ ≫ map (fun n => f (n + 1)) (j + 1) (k + 1) ⋯ =
    map f 0 (j + 1 + 1) hij ≫ map (fun n => f (n + 1)) (j + 1) (k + 1) ⋯
state_after: no goals

tactic: rintro X f (_|j) (_|k)
state_before: case succ
C : Type u_1
inst✝ : Category.{u_2, u_1} C
i : ℕ
hi :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (j k : ℕ) (hij : i ≤ j) (hjk : j ≤ k),
    map f i k ⋯ = map f i j hij ≫ map f j k hjk
⊢ ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (j k : ℕ) (hij : i + 1 ≤ j) (hjk : j ≤ k),
    map f (i + 1) k ⋯ = map f (i + 1) j hij ≫ map f j k hjk
state_after: case succ.zero.zero
C : Type u_1
inst✝ : Category.{u_2, u_1} C
i : ℕ
hi :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (j k : ℕ) (hij : i ≤ j) (hjk : j ≤ k),
    map f i k ⋯ = map f i j hij ≫ map f j k hjk
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
⊢ ∀ (hij : i + 1 ≤ 0) (hjk : 0 ≤ 0), map f (i + 1) 0 ⋯ = map f (i + 1) 0 hij ≫ map f 0 0 hjk

case succ.zero.succ
C : Type u_1
inst✝ : Category.{u_2, u_1} C
i : ℕ
hi :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (j k : ℕ) (hij : i ≤ j) (hjk : j ≤ k),
    map f i k ⋯ = map f i j hij ≫ map f j k hjk
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
k : ℕ
⊢ ∀ (hij : i + 1 ≤ 0) (hjk : 0 ≤ k + 1), map f (i + 1) (k + 1) ⋯ = map f (i + 1) 0 hij ≫ map f 0 (k + 1) hjk

case succ.succ.zero
C : Type u_1
inst✝ : Category.{u_2, u_1} C
i : ℕ
hi :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (j k : ℕ) (hij : i ≤ j) (hjk : j ≤ k),
    map f i k ⋯ = map f i j hij ≫ map f j k hjk
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
j : ℕ
⊢ ∀ (hij : i + 1 ≤ j + 1) (hjk : j + 1 ≤ 0), map f (i + 1) 0 ⋯ = map f (i + 1) (j + 1) hij ≫ map f (j + 1) 0 hjk

case succ.succ.succ
C : Type u_1
inst✝ : Category.{u_2, u_1} C
i : ℕ
hi :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (j k : ℕ) (hij : i ≤ j) (hjk : j ≤ k),
    map f i k ⋯ = map f i j hij ≫ map f j k hjk
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
j k : ℕ
⊢ ∀ (hij : i + 1 ≤ j + 1) (hjk : j + 1 ≤ k + 1),
    map f (i + 1) (k + 1) ⋯ = map f (i + 1) (j + 1) hij ≫ map f (j + 1) (k + 1) hjk

tactic: omega
state_before: case succ.zero.zero
C : Type u_1
inst✝ : Category.{u_2, u_1} C
i : ℕ
hi :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (j k : ℕ) (hij : i ≤ j) (hjk : j ≤ k),
    map f i k ⋯ = map f i j hij ≫ map f j k hjk
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
⊢ ∀ (hij : i + 1 ≤ 0) (hjk : 0 ≤ 0), map f (i + 1) 0 ⋯ = map f (i + 1) 0 hij ≫ map f 0 0 hjk
state_after: no goals

tactic: omega
state_before: case succ.zero.succ
C : Type u_1
inst✝ : Category.{u_2, u_1} C
i : ℕ
hi :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (j k : ℕ) (hij : i ≤ j) (hjk : j ≤ k),
    map f i k ⋯ = map f i j hij ≫ map f j k hjk
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
k : ℕ
⊢ ∀ (hij : i + 1 ≤ 0) (hjk : 0 ≤ k + 1), map f (i + 1) (k + 1) ⋯ = map f (i + 1) 0 hij ≫ map f 0 (k + 1) hjk
state_after: no goals

tactic: omega
state_before: case succ.succ.zero
C : Type u_1
inst✝ : Category.{u_2, u_1} C
i : ℕ
hi :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (j k : ℕ) (hij : i ≤ j) (hjk : j ≤ k),
    map f i k ⋯ = map f i j hij ≫ map f j k hjk
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
j : ℕ
⊢ ∀ (hij : i + 1 ≤ j + 1) (hjk : j + 1 ≤ 0), map f (i + 1) 0 ⋯ = map f (i + 1) (j + 1) hij ≫ map f (j + 1) 0 hjk
state_after: no goals

tactic: intros
state_before: case succ.succ.succ
C : Type u_1
inst✝ : Category.{u_2, u_1} C
i : ℕ
hi :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (j k : ℕ) (hij : i ≤ j) (hjk : j ≤ k),
    map f i k ⋯ = map f i j hij ≫ map f j k hjk
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
j k : ℕ
⊢ ∀ (hij : i + 1 ≤ j + 1) (hjk : j + 1 ≤ k + 1),
    map f (i + 1) (k + 1) ⋯ = map f (i + 1) (j + 1) hij ≫ map f (j + 1) (k + 1) hjk
state_after: case succ.succ.succ
C : Type u_1
inst✝ : Category.{u_2, u_1} C
i : ℕ
hi :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (j k : ℕ) (hij : i ≤ j) (hjk : j ≤ k),
    map f i k ⋯ = map f i j hij ≫ map f j k hjk
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
j k : ℕ
hij✝ : i + 1 ≤ j + 1
hjk✝ : j + 1 ≤ k + 1
⊢ map f (i + 1) (k + 1) ⋯ = map f (i + 1) (j + 1) hij✝ ≫ map f (j + 1) (k + 1) hjk✝

tactic: exact hi _ j k (by omega) (by omega)
state_before: case succ.succ.succ
C : Type u_1
inst✝ : Category.{u_2, u_1} C
i : ℕ
hi :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (j k : ℕ) (hij : i ≤ j) (hjk : j ≤ k),
    map f i k ⋯ = map f i j hij ≫ map f j k hjk
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
j k : ℕ
hij✝ : i + 1 ≤ j + 1
hjk✝ : j + 1 ≤ k + 1
⊢ map f (i + 1) (k + 1) ⋯ = map f (i + 1) (j + 1) hij✝ ≫ map f (j + 1) (k + 1) hjk✝
state_after: no goals

tactic: omega
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
i : ℕ
hi :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (j k : ℕ) (hij : i ≤ j) (hjk : j ≤ k),
    map f i k ⋯ = map f i j hij ≫ map f j k hjk
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
j k : ℕ
hij✝ : i + 1 ≤ j + 1
hjk✝ : j + 1 ≤ k + 1
⊢ i ≤ j
state_after: no goals

tactic: omega
state_before: C : Type u_1
inst✝ : Category.{u_2, u_1} C
i : ℕ
hi :
  ∀ {X : ℕ → C} (f : (n : ℕ) → X n ⟶ X (n + 1)) (j k : ℕ) (hij : i ≤ j) (hjk : j ≤ k),
    map f i k ⋯ = map f i j hij ≫ map f j k hjk
X : ℕ → C
f : (n : ℕ) → X n ⟶ X (n + 1)
j k : ℕ
hij✝ : i + 1 ≤ j + 1
hjk✝ : j + 1 ≤ k + 1
⊢ j ≤ k
state_after: no goals