awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
j : Fin 4
h : (fun (i : Fin 4) ↦ i) ⟨0, ⋯⟩ ≠ j
0 :
  ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨0, ⋯⟩) ((fun (i : Fin 4) ↦ i) ⟨0, ⋯⟩)),
    F₄ ((fun (i : Fin 4) ↦ i) (⟨0, ⋯⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨0, ⋯⟩ : Fin 4)) ≤ 0
h_1 :
  ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨0, ⋯⟩) ((fun (i : Fin 4) ↦ i) ⟨1, ⋯⟩)),
    F₄ ((fun (i : Fin 4) ↦ i) (⟨0, ⋯⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨1, ⋯⟩ : Fin 4)) ≤ 0
h_2 :
  ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨0, ⋯⟩) ((fun (i : Fin 4) ↦ i) ⟨2, ⋯⟩)),
    F₄ ((fun (i : Fin 4) ↦ i) (⟨0, ⋯⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨2, ⋯⟩ : Fin 4)) ≤ 0
⊢ F₄ ((fun (i : Fin 4) ↦ i) (⟨0, ⋯⟩ : Fin 4)) j ≤ 0
have 0₁ : ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨0, sorry⟩) ((fun (i : Fin 4) ↦ i) ⟨3, sorry⟩)),
  F₄ ((fun (i : Fin 4) ↦ i) (⟨0, sorry⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨3, sorry⟩ : Fin 4)) ≤ 0
Tactic: fin_cases j
Cleared hypotheses: j, h
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
j : Fin 4
h : (fun (i : Fin 4) ↦ i) ⟨1, ⋯⟩ ≠ j
⊢ F₄ ((fun (i : Fin 4) ↦ i) (⟨1, ⋯⟩ : Fin 4)) j ≤ 0
have 1 : ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨1, sorry⟩) ((fun (i : Fin 4) ↦ i) ⟨0, sorry⟩)),
  F₄ ((fun (i : Fin 4) ↦ i) (⟨1, sorry⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨0, sorry⟩ : Fin 4)) ≤ 0
Tactic: fin_cases j
Cleared hypotheses: j, h
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
j : Fin 4
h : (fun (i : Fin 4) ↦ i) ⟨1, ⋯⟩ ≠ j
1 :
  ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨1, ⋯⟩) ((fun (i : Fin 4) ↦ i) ⟨0, ⋯⟩)),
    F₄ ((fun (i : Fin 4) ↦ i) (⟨1, ⋯⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨0, ⋯⟩ : Fin 4)) ≤ 0
⊢ F₄ ((fun (i : Fin 4) ↦ i) (⟨1, ⋯⟩ : Fin 4)) j ≤ 0
have 1₁ : ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨1, sorry⟩) ((fun (i : Fin 4) ↦ i) ⟨1, sorry⟩)),
  F₄ ((fun (i : Fin 4) ↦ i) (⟨1, sorry⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨1, sorry⟩ : Fin 4)) ≤ 0
Tactic: fin_cases j
Cleared hypotheses: j, h
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
j : Fin 4
h : (fun (i : Fin 4) ↦ i) ⟨1, ⋯⟩ ≠ j
1 :
  ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨1, ⋯⟩) ((fun (i : Fin 4) ↦ i) ⟨0, ⋯⟩)),
    F₄ ((fun (i : Fin 4) ↦ i) (⟨1, ⋯⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨0, ⋯⟩ : Fin 4)) ≤ 0
h_1 :
  ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨1, ⋯⟩) ((fun (i : Fin 4) ↦ i) ⟨1, ⋯⟩)),
    F₄ ((fun (i : Fin 4) ↦ i) (⟨1, ⋯⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨1, ⋯⟩ : Fin 4)) ≤ 0
⊢ F₄ ((fun (i : Fin 4) ↦ i) (⟨1, ⋯⟩ : Fin 4)) j ≤ 0
have 1₁ : ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨1, sorry⟩) ((fun (i : Fin 4) ↦ i) ⟨2, sorry⟩)),
  F₄ ((fun (i : Fin 4) ↦ i) (⟨1, sorry⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨2, sorry⟩ : Fin 4)) ≤ 0
Tactic: fin_cases j
Cleared hypotheses: j, h
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
j : Fin 4
h : (fun (i : Fin 4) ↦ i) ⟨1, ⋯⟩ ≠ j
1 :
  ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨1, ⋯⟩) ((fun (i : Fin 4) ↦ i) ⟨0, ⋯⟩)),
    F₄ ((fun (i : Fin 4) ↦ i) (⟨1, ⋯⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨0, ⋯⟩ : Fin 4)) ≤ 0
h_1 :
  ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨1, ⋯⟩) ((fun (i : Fin 4) ↦ i) ⟨1, ⋯⟩)),
    F₄ ((fun (i : Fin 4) ↦ i) (⟨1, ⋯⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨1, ⋯⟩ : Fin 4)) ≤ 0
h_2 :
  ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨1, ⋯⟩) ((fun (i : Fin 4) ↦ i) ⟨2, ⋯⟩)),
    F₄ ((fun (i : Fin 4) ↦ i) (⟨1, ⋯⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨2, ⋯⟩ : Fin 4)) ≤ 0
⊢ F₄ ((fun (i : Fin 4) ↦ i) (⟨1, ⋯⟩ : Fin 4)) j ≤ 0
have 1₁ : ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨1, sorry⟩) ((fun (i : Fin 4) ↦ i) ⟨3, sorry⟩)),
  F₄ ((fun (i : Fin 4) ↦ i) (⟨1, sorry⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨3, sorry⟩ : Fin 4)) ≤ 0
Tactic: fin_cases j
Cleared hypotheses: j, h
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
j : Fin 4
h : (fun (i : Fin 4) ↦ i) ⟨2, ⋯⟩ ≠ j
⊢ F₄ ((fun (i : Fin 4) ↦ i) (⟨2, ⋯⟩ : Fin 4)) j ≤ 0
have 2 : ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨2, sorry⟩) ((fun (i : Fin 4) ↦ i) ⟨0, sorry⟩)),
  F₄ ((fun (i : Fin 4) ↦ i) (⟨2, sorry⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨0, sorry⟩ : Fin 4)) ≤ 0
Tactic: fin_cases j
Cleared hypotheses: j, h
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
j : Fin 4
h : (fun (i : Fin 4) ↦ i) ⟨2, ⋯⟩ ≠ j
2 :
  ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨2, ⋯⟩) ((fun (i : Fin 4) ↦ i) ⟨0, ⋯⟩)),
    F₄ ((fun (i : Fin 4) ↦ i) (⟨2, ⋯⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨0, ⋯⟩ : Fin 4)) ≤ 0
⊢ F₄ ((fun (i : Fin 4) ↦ i) (⟨2, ⋯⟩ : Fin 4)) j ≤ 0
have 2₁ : ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨2, sorry⟩) ((fun (i : Fin 4) ↦ i) ⟨1, sorry⟩)),
  F₄ ((fun (i : Fin 4) ↦ i) (⟨2, sorry⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨1, sorry⟩ : Fin 4)) ≤ 0
Tactic: fin_cases j
Cleared hypotheses: j, h
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
j : Fin 4
h : (fun (i : Fin 4) ↦ i) ⟨2, ⋯⟩ ≠ j
2 :
  ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨2, ⋯⟩) ((fun (i : Fin 4) ↦ i) ⟨0, ⋯⟩)),
    F₄ ((fun (i : Fin 4) ↦ i) (⟨2, ⋯⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨0, ⋯⟩ : Fin 4)) ≤ 0
h_1 :
  ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨2, ⋯⟩) ((fun (i : Fin 4) ↦ i) ⟨1, ⋯⟩)),
    F₄ ((fun (i : Fin 4) ↦ i) (⟨2, ⋯⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨1, ⋯⟩ : Fin 4)) ≤ 0
⊢ F₄ ((fun (i : Fin 4) ↦ i) (⟨2, ⋯⟩ : Fin 4)) j ≤ 0
have 2₁ : ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨2, sorry⟩) ((fun (i : Fin 4) ↦ i) ⟨2, sorry⟩)),
  F₄ ((fun (i : Fin 4) ↦ i) (⟨2, sorry⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨2, sorry⟩ : Fin 4)) ≤ 0
Tactic: fin_cases j
Cleared hypotheses: j, h
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
j : Fin 4
h : (fun (i : Fin 4) ↦ i) ⟨2, ⋯⟩ ≠ j
2 :
  ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨2, ⋯⟩) ((fun (i : Fin 4) ↦ i) ⟨0, ⋯⟩)),
    F₄ ((fun (i : Fin 4) ↦ i) (⟨2, ⋯⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨0, ⋯⟩ : Fin 4)) ≤ 0
h_1 :
  ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨2, ⋯⟩) ((fun (i : Fin 4) ↦ i) ⟨1, ⋯⟩)),
    F₄ ((fun (i : Fin 4) ↦ i) (⟨2, ⋯⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨1, ⋯⟩ : Fin 4)) ≤ 0
h_2 :
  ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨2, ⋯⟩) ((fun (i : Fin 4) ↦ i) ⟨2, ⋯⟩)),
    F₄ ((fun (i : Fin 4) ↦ i) (⟨2, ⋯⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨2, ⋯⟩ : Fin 4)) ≤ 0
⊢ F₄ ((fun (i : Fin 4) ↦ i) (⟨2, ⋯⟩ : Fin 4)) j ≤ 0
have 2₁ : ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨2, sorry⟩) ((fun (i : Fin 4) ↦ i) ⟨3, sorry⟩)),
  F₄ ((fun (i : Fin 4) ↦ i) (⟨2, sorry⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨3, sorry⟩ : Fin 4)) ≤ 0
Tactic: fin_cases j
Cleared hypotheses: j, h
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
j : Fin 4
h : (fun (i : Fin 4) ↦ i) ⟨3, ⋯⟩ ≠ j
⊢ F₄ ((fun (i : Fin 4) ↦ i) (⟨3, ⋯⟩ : Fin 4)) j ≤ 0
have 3 : ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨3, sorry⟩) ((fun (i : Fin 4) ↦ i) ⟨0, sorry⟩)),
  F₄ ((fun (i : Fin 4) ↦ i) (⟨3, sorry⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨0, sorry⟩ : Fin 4)) ≤ 0
Tactic: fin_cases j
Cleared hypotheses: j, h
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
j : Fin 4
h : (fun (i : Fin 4) ↦ i) ⟨3, ⋯⟩ ≠ j
3 :
  ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨3, ⋯⟩) ((fun (i : Fin 4) ↦ i) ⟨0, ⋯⟩)),
    F₄ ((fun (i : Fin 4) ↦ i) (⟨3, ⋯⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨0, ⋯⟩ : Fin 4)) ≤ 0
⊢ F₄ ((fun (i : Fin 4) ↦ i) (⟨3, ⋯⟩ : Fin 4)) j ≤ 0
have 3₁ : ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨3, sorry⟩) ((fun (i : Fin 4) ↦ i) ⟨1, sorry⟩)),
  F₄ ((fun (i : Fin 4) ↦ i) (⟨3, sorry⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨1, sorry⟩ : Fin 4)) ≤ 0
Tactic: fin_cases j
Cleared hypotheses: j, h
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
j : Fin 4
h : (fun (i : Fin 4) ↦ i) ⟨3, ⋯⟩ ≠ j
3 :
  ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨3, ⋯⟩) ((fun (i : Fin 4) ↦ i) ⟨0, ⋯⟩)),
    F₄ ((fun (i : Fin 4) ↦ i) (⟨3, ⋯⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨0, ⋯⟩ : Fin 4)) ≤ 0
h_1 :
  ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨3, ⋯⟩) ((fun (i : Fin 4) ↦ i) ⟨1, ⋯⟩)),
    F₄ ((fun (i : Fin 4) ↦ i) (⟨3, ⋯⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨1, ⋯⟩ : Fin 4)) ≤ 0
⊢ F₄ ((fun (i : Fin 4) ↦ i) (⟨3, ⋯⟩ : Fin 4)) j ≤ 0
have 3₁ : ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨3, sorry⟩) ((fun (i : Fin 4) ↦ i) ⟨2, sorry⟩)),
  F₄ ((fun (i : Fin 4) ↦ i) (⟨3, sorry⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨2, sorry⟩ : Fin 4)) ≤ 0
Tactic: fin_cases j
Cleared hypotheses: j, h
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
j : Fin 4
h : (fun (i : Fin 4) ↦ i) ⟨3, ⋯⟩ ≠ j
3 :
  ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨3, ⋯⟩) ((fun (i : Fin 4) ↦ i) ⟨0, ⋯⟩)),
    F₄ ((fun (i : Fin 4) ↦ i) (⟨3, ⋯⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨0, ⋯⟩ : Fin 4)) ≤ 0
h_1 :
  ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨3, ⋯⟩) ((fun (i : Fin 4) ↦ i) ⟨1, ⋯⟩)),
    F₄ ((fun (i : Fin 4) ↦ i) (⟨3, ⋯⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨1, ⋯⟩ : Fin 4)) ≤ 0
h_2 :
  ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨3, ⋯⟩) ((fun (i : Fin 4) ↦ i) ⟨2, ⋯⟩)),
    F₄ ((fun (i : Fin 4) ↦ i) (⟨3, ⋯⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨2, ⋯⟩ : Fin 4)) ≤ 0
⊢ F₄ ((fun (i : Fin 4) ↦ i) (⟨3, ⋯⟩ : Fin 4)) j ≤ 0
have 3₁ : ∀ (h : Ne (α := Fin 4) ((fun (i : Fin 4) ↦ i) ⟨3, sorry⟩) ((fun (i : Fin 4) ↦ i) ⟨3, sorry⟩)),
  F₄ ((fun (i : Fin 4) ↦ i) (⟨3, sorry⟩ : Fin 4)) ((fun (i : Fin 4) ↦ i) (⟨3, sorry⟩ : Fin 4)) ≤ 0
Tactic: fin_cases j
Cleared hypotheses: j, h
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
i j : Fin 2
h : i ≠ j
⊢ G₂ i j ≤ 0
have 0 : ∀ (h : (fun (i : Fin 2) ↦ i) ⟨0, sorry⟩ ≠ j), G₂ ((fun (i : Fin 2) ↦ i) (⟨0, sorry⟩ : Fin 2)) j ≤ 0
Tactic: fin_cases i
Cleared hypotheses: i, h
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
i j : Fin 2
h : i ≠ j
0 : ∀ (h : (fun (i : Fin 2) ↦ i) ⟨0, ⋯⟩ ≠ j), G₂ ((fun (i : Fin 2) ↦ i) (⟨0, ⋯⟩ : Fin 2)) j ≤ 0
⊢ G₂ i j ≤ 0
have 1 : ∀ (h : (fun (i : Fin 2) ↦ i) ⟨1, sorry⟩ ≠ j), G₂ ((fun (i : Fin 2) ↦ i) (⟨1, sorry⟩ : Fin 2)) j ≤ 0
Tactic: fin_cases i
Cleared hypotheses: i, h
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
j : Fin 2
h : (fun (i : Fin 2) ↦ i) ⟨0, ⋯⟩ ≠ j
⊢ G₂ ((fun (i : Fin 2) ↦ i) (⟨0, ⋯⟩ : Fin 2)) j ≤ 0
have 0 : ∀ (h : Ne (α := Fin 2) ((fun (i : Fin 2) ↦ i) ⟨0, sorry⟩) ((fun (i : Fin 2) ↦ i) ⟨0, sorry⟩)),
  G₂ ((fun (i : Fin 2) ↦ i) (⟨0, sorry⟩ : Fin 2)) ((fun (i : Fin 2) ↦ i) (⟨0, sorry⟩ : Fin 2)) ≤ 0
Tactic: fin_cases j
Cleared hypotheses: j, h
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
j : Fin 2
h : (fun (i : Fin 2) ↦ i) ⟨0, ⋯⟩ ≠ j
0 :
  ∀ (h : Ne (α := Fin 2) ((fun (i : Fin 2) ↦ i) ⟨0, ⋯⟩) ((fun (i : Fin 2) ↦ i) ⟨0, ⋯⟩)),
    G₂ ((fun (i : Fin 2) ↦ i) (⟨0, ⋯⟩ : Fin 2)) ((fun (i : Fin 2) ↦ i) (⟨0, ⋯⟩ : Fin 2)) ≤ 0
⊢ G₂ ((fun (i : Fin 2) ↦ i) (⟨0, ⋯⟩ : Fin 2)) j ≤ 0
have 0₁ : ∀ (h : Ne (α := Fin 2) ((fun (i : Fin 2) ↦ i) ⟨0, sorry⟩) ((fun (i : Fin 2) ↦ i) ⟨1, sorry⟩)),
  G₂ ((fun (i : Fin 2) ↦ i) (⟨0, sorry⟩ : Fin 2)) ((fun (i : Fin 2) ↦ i) (⟨1, sorry⟩ : Fin 2)) ≤ 0
Tactic: fin_cases j
Cleared hypotheses: j, h
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
j : Fin 2
h : (fun (i : Fin 2) ↦ i) ⟨1, ⋯⟩ ≠ j
⊢ G₂ ((fun (i : Fin 2) ↦ i) (⟨1, ⋯⟩ : Fin 2)) j ≤ 0
have 1 : ∀ (h : Ne (α := Fin 2) ((fun (i : Fin 2) ↦ i) ⟨1, sorry⟩) ((fun (i : Fin 2) ↦ i) ⟨0, sorry⟩)),
  G₂ ((fun (i : Fin 2) ↦ i) (⟨1, sorry⟩ : Fin 2)) ((fun (i : Fin 2) ↦ i) (⟨0, sorry⟩ : Fin 2)) ≤ 0
Tactic: fin_cases j
Cleared hypotheses: j, h
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
j : Fin 2
h : (fun (i : Fin 2) ↦ i) ⟨1, ⋯⟩ ≠ j
1 :
  ∀ (h : Ne (α := Fin 2) ((fun (i : Fin 2) ↦ i) ⟨1, ⋯⟩) ((fun (i : Fin 2) ↦ i) ⟨0, ⋯⟩)),
    G₂ ((fun (i : Fin 2) ↦ i) (⟨1, ⋯⟩ : Fin 2)) ((fun (i : Fin 2) ↦ i) (⟨0, ⋯⟩ : Fin 2)) ≤ 0
⊢ G₂ ((fun (i : Fin 2) ↦ i) (⟨1, ⋯⟩ : Fin 2)) j ≤ 0
have 1₁ : ∀ (h : Ne (α := Fin 2) ((fun (i : Fin 2) ↦ i) ⟨1, sorry⟩) ((fun (i : Fin 2) ↦ i) ⟨1, sorry⟩)),
  G₂ ((fun (i : Fin 2) ↦ i) (⟨1, sorry⟩ : Fin 2)) ((fun (i : Fin 2) ↦ i) (⟨1, sorry⟩ : Fin 2)) ≤ 0
Tactic: fin_cases j
Cleared hypotheses: j, h
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
ι : Type u_1
inst : LinearOrder ι
A : Matrix ι ι ℤ
hA : A.IsSymm
⊢ A.IsSimplyLaced ↔ ∀ ⦃i j : ι⦄, j < i → A i j = 0 ∨ A i j = -1
have mp : A.IsSimplyLaced → ∀ ⦃i j : ι⦄, j < i → A i j = 0 ∨ A i j = -1
Tactic: constructor
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
ι : Type u_1
inst : LinearOrder ι
A : Matrix ι ι ℤ
hA : A.IsSymm
mp : A.IsSimplyLaced → ∀ ⦃i j : ι⦄, j < i → A i j = 0 ∨ A i j = -1
⊢ A.IsSimplyLaced ↔ ∀ ⦃i j : ι⦄, j < i → A i j = 0 ∨ A i j = -1
have mpr : (∀ ⦃i j : ι⦄, j < i → A i j = 0 ∨ A i j = -1) → A.IsSimplyLaced
Tactic: constructor
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
ι : Type u_1
inst : LinearOrder ι
A : Matrix ι ι ℤ
hA : A.IsSymm
h : ∀ ⦃i j : ι⦄, j < i → A i j = 0 ∨ A i j = -1
i j : ι
hij : i ≠ j
⊢ A i j = 0 ∨ A i j = -1
have mpr : ∀ (hij : i < j), A i j = 0 ∨ A i j = -1
Tactic: obtain hij | hij := hij.lt_or_gt
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
ι : Type u_1
inst : LinearOrder ι
A : Matrix ι ι ℤ
hA : A.IsSymm
h : ∀ ⦃i j : ι⦄, j < i → A i j = 0 ∨ A i j = -1
i j : ι
hij : i ≠ j
mpr : ∀ (hij : i < j), A i j = 0 ∨ A i j = -1
⊢ A i j = 0 ∨ A i j = -1
have mpr₁ : ∀ (hij : j < i), A i j = 0 ∨ A i j = -1
Tactic: obtain hij | hij := hij.lt_or_gt
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
ι : Type u_1
A : Matrix ι ι ℤ
⊢ Aᵀ.IsSimplyLaced ↔ A.IsSimplyLaced
have rw : (∀ (b a : ι), a ≠ b → Aᵀ a b = 0 ∨ Aᵀ a b = -1) ↔ ∀ ⦃i j : ι⦄, i ≠ j → A i j = 0 ∨ A i j = -1
Tactic: rw [IsSimplyLaced, IsSimplyLaced, Pairwise, Pairwise, forall_comm]
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
n : ℕ
i j : Fin n
h : i ≠ j
⊢ A n i j = 0 ∨ A n i j = -1
have simp : Eq (α := ℤ) (if i = j then 2 else if (↑i : ℕ) + 1 = (↑j : ℕ) ∨ (↑j : ℕ) + 1 = (↑i : ℕ) then -1 else 0) 0 ∨
  Eq (α := ℤ) (if i = j then 2 else if (↑i : ℕ) + 1 = (↑j : ℕ) ∨ (↑j : ℕ) + 1 = (↑i : ℕ) then -1 else 0) (-1)
Tactic: simp only [A, of_apply]
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
n : ℕ
i j : Fin n
h : i ≠ j
⊢ D n i j = 0 ∨ D n i j = -1
have simp : Eq (α := ℤ)
    (if i = j then 2
    else
      if n ≤ 2 then 0
      else
        if (↑i : ℕ) + 1 = (↑j : ℕ) ∧ (↑j : ℕ) + 2 < n then -1
        else
          if (↑j : ℕ) + 1 = (↑i : ℕ) ∧ (↑i : ℕ) + 2 < n then -1
          else
            if (↑i : ℕ) + 3 = n ∧ ((↑j : ℕ) + 2 = n ∨ (↑j : ℕ) + 1 = n) then -1
            else if (↑j : ℕ) + 3 = n ∧ ((↑i : ℕ) + 2 = n ∨ (↑i : ℕ) + 1 = n) then -1 else 0)
    0 ∨
  Eq (α := ℤ)
    (if i = j then 2
    else
      if n ≤ 2 then 0
      else
        if (↑i : ℕ) + 1 = (↑j : ℕ) ∧ (↑j : ℕ) + 2 < n then -1
        else
          if (↑j : ℕ) + 1 = (↑i : ℕ) ∧ (↑i : ℕ) + 2 < n then -1
          else
            if (↑i : ℕ) + 3 = n ∧ ((↑j : ℕ) + 2 = n ∨ (↑j : ℕ) + 1 = n) then -1
            else if (↑j : ℕ) + 3 = n ∧ ((↑i : ℕ) + 2 = n ∨ (↑i : ℕ) + 1 = n) then -1 else 0)
    (-1)
Tactic: simp only [D, of_apply]
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
⊢ E₆.IsSimplyLaced
have rw : ∀ ⦃i j : Fin 6⦄, j < i → E₆ i j = 0 ∨ E₆ i j = -1
Tactic: rw [Matrix.isSimplyLaced_iff_of_linearOrder E₆ E₆_isSymm]
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
⊢ E₇.IsSimplyLaced
have rw : ∀ ⦃i j : Fin 7⦄, j < i → E₇ i j = 0 ∨ E₇ i j = -1
Tactic: rw [Matrix.isSimplyLaced_iff_of_linearOrder E₇ E₇_isSymm]
-- Lean 4 proof step from Mathlib.Data.Matrix.Cartan (goal)
Goal:
⊢ E₈.IsSimplyLaced
have rw : ∀ ⦃i j : Fin 8⦄, j < i → E₈ i j = 0 ∨ E₈ i j = -1
Tactic: rw [Matrix.isSimplyLaced_iff_of_linearOrder E₈ E₈_isSymm]
-- Lean 4 proof step from Mathlib.Data.Matrix.ColumnRowPartitioned (goal)
Goal:
R : Type u_1
m : Type u_2
n₁ : Type u_6
n₂ : Type u_7
A : Matrix m (n₁ ⊕ n₂) R
⊢ A.toCols₁.fromCols A.toCols₂ = A
have a : ∀ (i : m) (j : n₁), A.toCols₁.fromCols A.toCols₂ i (Sum.inl j) = A i (Sum.inl j)
Tactic: ext i (j | j)
-- Lean 4 proof step from Mathlib.Data.Matrix.ColumnRowPartitioned (goal)
Goal:
R : Type u_1
m : Type u_2
n₁ : Type u_6
n₂ : Type u_7
A : Matrix m (n₁ ⊕ n₂) R
a : ∀ (i : m) (j : n₁), A.toCols₁.fromCols A.toCols₂ i (Sum.inl j) = A i (Sum.inl j)
⊢ A.toCols₁.fromCols A.toCols₂ = A
have a₁ : ∀ (i : m) (j : n₂), A.toCols₁.fromCols A.toCols₂ i (Sum.inr j) = A i (Sum.inr j)
Tactic: ext i (j | j)
-- Lean 4 proof step from Mathlib.Data.Matrix.ColumnRowPartitioned (goal)
Goal:
R : Type u_1
m₁ : Type u_3
m₂ : Type u_4
n : Type u_5
A : Matrix (m₁ ⊕ m₂) n R
⊢ A.toRows₁.fromRows A.toRows₂ = A
have a : ∀ (i : m₁) (j : n), A.toRows₁.fromRows A.toRows₂ (Sum.inl i) j = A (Sum.inl i) j
Tactic: ext (i | i) j
-- Lean 4 proof step from Mathlib.Data.Matrix.ColumnRowPartitioned (goal)
Goal:
R : Type u_1
m₁ : Type u_3
m₂ : Type u_4
n : Type u_5
A : Matrix (m₁ ⊕ m₂) n R
a : ∀ (i : m₁) (j : n), A.toRows₁.fromRows A.toRows₂ (Sum.inl i) j = A (Sum.inl i) j
⊢ A.toRows₁.fromRows A.toRows₂ = A
have a₁ : ∀ (i : m₂) (j : n), A.toRows₁.fromRows A.toRows₂ (Sum.inr i) j = A (Sum.inr i) j
Tactic: ext (i | i) j
-- Lean 4 proof step from Mathlib.Data.Matrix.ColumnRowPartitioned (goal)
Goal:
R : Type u_1
m : Type u_2
n₁ : Type u_6
n₂ : Type u_7
x1 x2 : Matrix m n₁ R
y1 y2 : Matrix m n₂ R
⊢ x1.fromCols y1 = x2.fromCols y2 → x1 = x2 ∧ y1 = y2
have simp : (∀ (i : m) (j : n₁ ⊕ n₂), x1.fromCols y1 i j = x2.fromCols y2 i j) →
  (∀ (i : m) (j : n₁), x1 i j = x2 i j) ∧ ∀ (i : m) (j : n₂), y1 i j = y2 i j
Tactic: simp only [← Matrix.ext_iff]
-- Lean 4 proof step from Mathlib.Data.Matrix.ColumnRowPartitioned (goal)
Goal:
R : Type u_1
m : Type u_2
n₁ : Type u_6
n₂ : Type u_7
A₁ : Matrix m n₁ R
A₂ : Matrix m n₂ R
⊢ (A₁.fromCols A₂)ᵀ = A₁ᵀ.fromRows A₂ᵀ
have a : ∀ (i : n₁) (j : m), (A₁.fromCols A₂)ᵀ (Sum.inl i) j = A₁ᵀ.fromRows A₂ᵀ (Sum.inl i) j
Tactic: ext (i | i) j
-- Lean 4 proof step from Mathlib.Data.Matrix.ColumnRowPartitioned (goal)
Goal:
R : Type u_1
m : Type u_2
n₁ : Type u_6
n₂ : Type u_7
A₁ : Matrix m n₁ R
A₂ : Matrix m n₂ R
a : ∀ (i : n₁) (j : m), (A₁.fromCols A₂)ᵀ (Sum.inl i) j = A₁ᵀ.fromRows A₂ᵀ (Sum.inl i) j
⊢ (A₁.fromCols A₂)ᵀ = A₁ᵀ.fromRows A₂ᵀ
have a₁ : ∀ (i : n₂) (j : m), (A₁.fromCols A₂)ᵀ (Sum.inr i) j = A₁ᵀ.fromRows A₂ᵀ (Sum.inr i) j
Tactic: ext (i | i) j
-- Lean 4 proof step from Mathlib.Data.Matrix.ColumnRowPartitioned (goal)
Goal:
R : Type u_1
m₁ : Type u_3
m₂ : Type u_4
n : Type u_5
A₁ : Matrix m₁ n R
A₂ : Matrix m₂ n R
⊢ (A₁.fromRows A₂)ᵀ = A₁ᵀ.fromCols A₂ᵀ
have a : ∀ (i : n) (j : m₁), (A₁.fromRows A₂)ᵀ i (Sum.inl j) = A₁ᵀ.fromCols A₂ᵀ i (Sum.inl j)
Tactic: ext i (j | j)
-- Lean 4 proof step from Mathlib.Data.Matrix.ColumnRowPartitioned (goal)
Goal:
R : Type u_1
m₁ : Type u_3
m₂ : Type u_4
n : Type u_5
A₁ : Matrix m₁ n R
A₂ : Matrix m₂ n R
a : ∀ (i : n) (j : m₁), (A₁.fromRows A₂)ᵀ i (Sum.inl j) = A₁ᵀ.fromCols A₂ᵀ i (Sum.inl j)
⊢ (A₁.fromRows A₂)ᵀ = A₁ᵀ.fromCols A₂ᵀ
have a₁ : ∀ (i : n) (j : m₂), (A₁.fromRows A₂)ᵀ i (Sum.inr j) = A₁ᵀ.fromCols A₂ᵀ i (Sum.inr j)
Tactic: ext i (j | j)
-- Lean 4 proof step from Mathlib.Data.Matrix.ColumnRowPartitioned (goal)
Goal:
R : Type u_1
m₁ : Type u_3
m₂ : Type u_4
n : Type u_5
A₁ : Matrix m₁ n R
A₂ : Matrix m₂ n R
R' : Type u_8
f : R → R'
⊢ (A₁.fromRows A₂).map f = (A₁.map f).fromRows (A₂.map f)
have a : ∀ (val : m₁) (j : n), (A₁.fromRows A₂).map f (Sum.inl val) j = (A₁.map f).fromRows (A₂.map f) (Sum.inl val) j
Tactic: ext (_ | _)
-- Lean 4 proof step from Mathlib.Data.Matrix.ColumnRowPartitioned (goal)
Goal:
R : Type u_1
m₁ : Type u_3
m₂ : Type u_4
n : Type u_5
A₁ : Matrix m₁ n R
A₂ : Matrix m₂ n R
R' : Type u_8
f : R → R'
a : ∀ (val : m₁) (j : n), (A₁.fromRows A₂).map f (Sum.inl val) j = (A₁.map f).fromRows (A₂.map f) (Sum.inl val) j
⊢ (A₁.fromRows A₂).map f = (A₁.map f).fromRows (A₂.map f)
have a₁ : ∀ (val : m₂) (j : n), (A₁.fromRows A₂).map f (Sum.inr val) j = (A₁.map f).fromRows (A₂.map f) (Sum.inr val) j
Tactic: ext (_ | _)
-- Lean 4 proof step from Mathlib.Data.Matrix.ColumnRowPartitioned (goal)
Goal:
R : Type u_1
m : Type u_2
n₁ : Type u_6
n₂ : Type u_7
A₁ : Matrix m n₁ R
A₂ : Matrix m n₂ R
R' : Type u_8
f : R → R'
⊢ (A₁.fromCols A₂).map f = (A₁.map f).fromCols (A₂.map f)
have a : ∀ (i : m) (val : n₁), (A₁.fromCols A₂).map f i (Sum.inl val) = (A₁.map f).fromCols (A₂.map f) i (Sum.inl val)
Tactic: ext _ (_ | _)
-- Lean 4 proof step from Mathlib.Data.Matrix.ColumnRowPartitioned (goal)
Goal:
R : Type u_1
m : Type u_2
n₁ : Type u_6
n₂ : Type u_7
A₁ : Matrix m n₁ R
A₂ : Matrix m n₂ R
R' : Type u_8
f : R → R'
a : ∀ (i : m) (val : n₁), (A₁.fromCols A₂).map f i (Sum.inl val) = (A₁.map f).fromCols (A₂.map f) i (Sum.inl val)
⊢ (A₁.fromCols A₂).map f = (A₁.map f).fromCols (A₂.map f)
have a₁ : ∀ (i : m) (val : n₂), (A₁.fromCols A₂).map f i (Sum.inr val) = (A₁.map f).fromCols (A₂.map f) i (Sum.inr val)
Tactic: ext _ (_ | _)
-- Lean 4 proof step from Mathlib.Data.Matrix.ColumnRowPartitioned (goal)
Goal:
R : Type u_1
m₁ : Type u_3
m₂ : Type u_4
n : Type u_5
inst : Neg R
A₁ : Matrix m₁ n R
A₂ : Matrix m₂ n R
⊢ -A₁.fromRows A₂ = (-A₁).fromRows (-A₂)
have a : ∀ (i : m₁) (j : n), (-A₁.fromRows A₂) (Sum.inl i) j = (-A₁).fromRows (-A₂) (Sum.inl i) j
Tactic: ext (i | i) j
-- Lean 4 proof step from Mathlib.Data.Matrix.ColumnRowPartitioned (goal)
Goal:
R : Type u_1
m₁ : Type u_3
m₂ : Type u_4
n : Type u_5
inst : Neg R
A₁ : Matrix m₁ n R
A₂ : Matrix m₂ n R
a : ∀ (i : m₁) (j : n), (-A₁.fromRows A₂) (Sum.inl i) j = (-A₁).fromRows (-A₂) (Sum.inl i) j
⊢ -A₁.fromRows A₂ = (-A₁).fromRows (-A₂)
have a₁ : ∀ (i : m₂) (j : n), (-A₁.fromRows A₂) (Sum.inr i) j = (-A₁).fromRows (-A₂) (Sum.inr i) j
Tactic: ext (i | i) j
-- Lean 4 proof step from Mathlib.Data.Matrix.ColumnRowPartitioned (goal)
Goal:
R : Type u_1
m₁ : Type u_3
m₂ : Type u_4
n : Type u_5
inst : Neg R
A₁ : Matrix n m₁ R
A₂ : Matrix n m₂ R
⊢ -A₁.fromCols A₂ = (-A₁).fromCols (-A₂)
have a : ∀ (i : n) (j : m₁), (-A₁.fromCols A₂) i (Sum.inl j) = (-A₁).fromCols (-A₂) i (Sum.inl j)
Tactic: ext i (j | j)
-- Lean 4 proof step from Mathlib.Data.Matrix.ColumnRowPartitioned (goal)
Goal:
R : Type u_1
m₁ : Type u_3
m₂ : Type u_4
n : Type u_5
inst : Neg R
A₁ : Matrix n m₁ R
A₂ : Matrix n m₂ R
a : ∀ (i : n) (j : m₁), (-A₁.fromCols A₂) i (Sum.inl j) = (-A₁).fromCols (-A₂) i (Sum.inl j)
⊢ -A₁.fromCols A₂ = (-A₁).fromCols (-A₂)
have a₁ : ∀ (i : n) (j : m₂), (-A₁.fromCols A₂) i (Sum.inr j) = (-A₁).fromCols (-A₂) i (Sum.inr j)
Tactic: ext i (j | j)
-- Lean 4 proof step from Mathlib.Data.Matrix.ColumnRowPartitioned (goal)
Goal:
R : Type u_1
m₁ : Type u_3
m₂ : Type u_4
n₁ : Type u_6
n₂ : Type u_7
B₁₁ : Matrix m₁ n₁ R
B₁₂ : Matrix m₁ n₂ R
B₂₁ : Matrix m₂ n₁ R
B₂₂ : Matrix m₂ n₂ R
⊢ (B₁₁.fromRows B₂₁).fromCols (B₁₂.fromRows B₂₂) = fromBlocks B₁₁ B₁₂ B₂₁ B₂₂
have a : ∀ (val : m₁) (val_1 : n₁),
  (B₁₁.fromRows B₂₁).fromCols (B₁₂.fromRows B₂₂) (Sum.inl val) (Sum.inl val_1) =
    fromBlocks B₁₁ B₁₂ B₂₁ B₂₂ (Sum.inl val) (Sum.inl val_1)
Tactic: ext (_ | _) (_ | _)
-- Lean 4 proof step from Mathlib.Data.Matrix.ColumnRowPartitioned (goal)
Goal:
R : Type u_1
m₁ : Type u_3
m₂ : Type u_4
n₁ : Type u_6
n₂ : Type u_7
B₁₁ : Matrix m₁ n₁ R
B₁₂ : Matrix m₁ n₂ R
B₂₁ : Matrix m₂ n₁ R
B₂₂ : Matrix m₂ n₂ R
a :
  ∀ (val : m₁) (val_1 : n₁),
    (B₁₁.fromRows B₂₁).fromCols (B₁₂.fromRows B₂₂) (Sum.inl val) (Sum.inl val_1) =
      fromBlocks B₁₁ B₁₂ B₂₁ B₂₂ (Sum.inl val) (Sum.inl val_1)
⊢ (B₁₁.fromRows B₂₁).fromCols (B₁₂.fromRows B₂₂) = fromBlocks B₁₁ B₁₂ B₂₁ B₂₂
have a₁ : ∀ (val : m₁) (val_1 : n₂),
  (B₁₁.fromRows B₂₁).fromCols (B₁₂.fromRows B₂₂) (Sum.inl val) (Sum.inr val_1) =
    fromBlocks B₁₁ B₁₂ B₂₁ B₂₂ (Sum.inl val) (Sum.inr val_1)
Tactic: ext (_ | _) (_ | _)
-- Lean 4 proof step from Mathlib.Data.Matrix.ColumnRowPartitioned (goal)
Goal:
R : Type u_1
m₁ : Type u_3
m₂ : Type u_4
n₁ : Type u_6
n₂ : Type u_7
B₁₁ : Matrix m₁ n₁ R
B₁₂ : Matrix m₁ n₂ R
B₂₁ : Matrix m₂ n₁ R
B₂₂ : Matrix m₂ n₂ R
a :
  ∀ (val : m₁) (val_1 : n₁),
    (B₁₁.fromRows B₂₁).fromCols (B₁₂.fromRows B₂₂) (Sum.inl val) (Sum.inl val_1) =
      fromBlocks B₁₁ B₁₂ B₂₁ B₂₂ (Sum.inl val) (Sum.inl val_1)
a₁ :
  ∀ (val : m₁) (val_1 : n₂),
    (B₁₁.fromRows B₂₁).fromCols (B₁₂.fromRows B₂₂) (Sum.inl val) (Sum.inr val_1) =
      fromBlocks B₁₁ B₁₂ B₂₁ B₂₂ (Sum.inl val) (Sum.inr val_1)
⊢ (B₁₁.fromRows B₂₁).fromCols (B₁₂.fromRows B₂₂) = fromBlocks B₁₁ B₁₂ B₂₁ B₂₂
have a₂ : ∀ (val : m₂) (val_1 : n₁),
  (B₁₁.fromRows B₂₁).fromCols (B₁₂.fromRows B₂₂) (Sum.inr val) (Sum.inl val_1) =
    fromBlocks B₁₁ B₁₂ B₂₁ B₂₂ (Sum.inr val) (Sum.inl val_1)
Tactic: ext (_ | _) (_ | _)