rw [Order.lex_impl] at ab ba
n : ℕ
v₁ v₂ : Variables n order.Lex
h₁ : Order.lex v₁ v₂
h₂ : Order.lex v₂ v₁
m : ℕ
a b : Vector ℕ m
x : ℕ
xs : List ℕ
p : List.length (x :: xs) = m
y : ℕ
ys : List ℕ
q : List.length (y :: ys) = m
ab : Order.lex_impl { val := x :: xs, property := p } { val := y :: ys, property := q }
ba : Order.lex_impl { val := y :: ys, property := q } { val := x :: xs, property := p }
⊢ { val := x :: xs, property := p } = { val := y :: ys, property := q }
n : ℕ
v₁ v₂ : Variables n order.Lex
h₁ : Order.lex v₁ v₂
h₂ : Order.lex v₂ v₁
m : ℕ
a b : Vector ℕ m
x : ℕ
xs : List ℕ
p : List.length (x :: xs) = m
y : ℕ
ys : List ℕ
q : List.length (y :: ys) = m
ab :
  match { val := x :: xs, property := p }, { val := y :: ys, property := q } with
  | { val := [], property := property }, { val := [], property := property_1 } => True
  | { val := x_1 :: tail, property := property }, { val := y_1 :: tail_1, property := property_1 } =>
    if x_1 = y_1 then
      Order.lex_impl (Vector.tail { val := x :: xs, property := p }) (Vector.tail { val := y :: ys, property := q })
    else x_1 ≤ y_1
ba :
  match { val := y :: ys, property := q }, { val := x :: xs, property := p } with
  | { val := [], property := property }, { val := [], property := property_1 } => True
  | { val := x_1 :: tail, property := property }, { val := y_1 :: tail_1, property := property_1 } =>
    if x_1 = y_1 then
      Order.lex_impl (Vector.tail { val := y :: ys, property := q }) (Vector.tail { val := x :: xs, property := p })
    else x_1 ≤ y_1
⊢ { val := x :: xs, property := p } = { val := y :: ys, property := q }