Theorem: algebra.grlex_le_antisymm
Proof state before:
case inr.inl.inr.inl.a
n : ℕ
a b : Variables n order.GrLex
h✝³ : ¬Order.grlex.elem_sum a < Order.grlex.elem_sum b
h✝² : Order.grlex.elem_sum a = Order.grlex.elem_sum b
ab : if Order.lex a b then True else False
h✝¹ : ¬Order.grlex.elem_sum b < Order.grlex.elem_sum a
h✝ : Order.grlex.elem_sum b = Order.grlex.elem_sum a
ba : if Order.lex b a then True else False
⊢ Order.lex a b

case inr.inl.inr.inl.a
n : ℕ
a b : Variables n order.GrLex
h✝³ : ¬Order.grlex.elem_sum a < Order.grlex.elem_sum b
h✝² : Order.grlex.elem_sum a = Order.grlex.elem_sum b
ab : if Order.lex a b then True else False
h✝¹ : ¬Order.grlex.elem_sum b < Order.grlex.elem_sum a
h✝ : Order.grlex.elem_sum b = Order.grlex.elem_sum a
ba : if Order.lex b a then True else False
⊢ Order.lex b a

case inr.inl.inr.inr
n : ℕ
a b : Variables n order.GrLex
h✝³ : ¬Order.grlex.elem_sum a < Order.grlex.elem_sum b
h✝² : Order.grlex.elem_sum a = Order.grlex.elem_sum b
ab : if Order.lex a b then True else False
h✝¹ : ¬Order.grlex.elem_sum b < Order.grlex.elem_sum a
h✝ : ¬Order.grlex.elem_sum b = Order.grlex.elem_sum a
ba : False
⊢ a = b

case inr.inr
n : ℕ
a b : Variables n order.GrLex
ba :
  if Order.grlex.elem_sum b < Order.grlex.elem_sum a then True
  else if Order.grlex.elem_sum b = Order.grlex.elem_sum a then if Order.lex b a then True else False else False
h✝¹ : ¬Order.grlex.elem_sum a < Order.grlex.elem_sum b
h✝ : ¬Order.grlex.elem_sum a = Order.grlex.elem_sum b
ab : False
⊢ a = b
Tactic:
split at ab
Proof state after:
case inr.inl.inr.inl.a.inl
n : ℕ
a b : Variables n order.GrLex
h✝⁴ : ¬Order.grlex.elem_sum a < Order.grlex.elem_sum b
h✝³ : Order.grlex.elem_sum a = Order.grlex.elem_sum b
h✝² : ¬Order.grlex.elem_sum b < Order.grlex.elem_sum a
h✝¹ : Order.grlex.elem_sum b = Order.grlex.elem_sum a
ba : if Order.lex b a then True else False
h✝ : Order.lex a b
ab : True
⊢ Order.lex a b

case inr.inl.inr.inl.a.inr
n : ℕ
a b : Variables n order.GrLex
h✝⁴ : ¬Order.grlex.elem_sum a < Order.grlex.elem_sum b
h✝³ : Order.grlex.elem_sum a = Order.grlex.elem_sum b
h✝² : ¬Order.grlex.elem_sum b < Order.grlex.elem_sum a
h✝¹ : Order.grlex.elem_sum b = Order.grlex.elem_sum a
ba : if Order.lex b a then True else False
h✝ : ¬Order.lex a b
ab : False
⊢ Order.lex a b

case inr.inl.inr.inl.a
n : ℕ
a b : Variables n order.GrLex
h✝³ : ¬Order.grlex.elem_sum a < Order.grlex.elem_sum b
h✝² : Order.grlex.elem_sum a = Order.grlex.elem_sum b
ab : if Order.lex a b then True else False
h✝¹ : ¬Order.grlex.elem_sum b < Order.grlex.elem_sum a
h✝ : Order.grlex.elem_sum b = Order.grlex.elem_sum a
ba : if Order.lex b a then True else False
⊢ Order.lex b a

case inr.inl.inr.inr
n : ℕ
a b : Variables n order.GrLex
h✝³ : ¬Order.grlex.elem_sum a < Order.grlex.elem_sum b
h✝² : Order.grlex.elem_sum a = Order.grlex.elem_sum b
ab : if Order.lex a b then True else False
h✝¹ : ¬Order.grlex.elem_sum b < Order.grlex.elem_sum a
h✝ : ¬Order.grlex.elem_sum b = Order.grlex.elem_sum a
ba : False
⊢ a = b

case inr.inr
n : ℕ
a b : Variables n order.GrLex
ba :
  if Order.grlex.elem_sum b < Order.grlex.elem_sum a then True
  else if Order.grlex.elem_sum b = Order.grlex.elem_sum a then if Order.lex b a then True else False else False
h✝¹ : ¬Order.grlex.elem_sum a < Order.grlex.elem_sum b
h✝ : ¬Order.grlex.elem_sum a = Order.grlex.elem_sum b
ab : False
⊢ a = b