Helper theorems to assert constraints
theorem
Lean.Grind.Order.le_of_eq_1_k
{α : Type u_1}
[LE α]
[LT α]
[Std.LawfulOrderLT α]
[Std.IsPreorder α]
[Ring α]
[OrderedRing α]
{a b : α}
:
theorem
Lean.Grind.Order.le_of_eq_2_k
{α : Type u_1}
[LE α]
[LT α]
[Std.LawfulOrderLT α]
[Std.IsPreorder α]
[Ring α]
[OrderedRing α]
{a b : α}
:
theorem
Lean.Grind.Order.lt_of_not_le
{α : Type u_1}
[LE α]
[LT α]
[Std.LawfulOrderLT α]
[Std.IsLinearPreorder α]
{a b : α}
:
theorem
Lean.Grind.Order.le_of_not_lt
{α : Type u_1}
[LE α]
[LT α]
[Std.LawfulOrderLT α]
[Std.IsLinearPreorder α]
{a b : α}
:
theorem
Lean.Grind.Order.le_of_not_lt_k
{α : Type u_1}
[LE α]
[LT α]
[Std.LawfulOrderLT α]
[Std.IsLinearPreorder α]
[Ring α]
[OrderedRing α]
{a b : α}
{k k' : Int}
:
theorem
Lean.Grind.Order.lt_of_not_le_k
{α : Type u_1}
[LE α]
[LT α]
[Std.LawfulOrderLT α]
[Std.IsLinearPreorder α]
[Ring α]
[OrderedRing α]
{a b : α}
{k k' : Int}
:
Helper theorem for equality propagation
Transitivity
theorem
Lean.Grind.Order.le_trans
{α : Type u_1}
[LE α]
[Std.IsPreorder α]
{a b c : α}
(h₁ : a ≤ b)
(h₂ : b ≤ c)
:
theorem
Lean.Grind.Order.lt_trans
{α : Type u_1}
[LE α]
[LT α]
[Std.LawfulOrderLT α]
[Std.IsPreorder α]
{a b c : α}
(h₁ : a < b)
(h₂ : b < c)
:
theorem
Lean.Grind.Order.le_lt_trans
{α : Type u_1}
[LE α]
[LT α]
[Std.LawfulOrderLT α]
[Std.IsPreorder α]
{a b c : α}
(h₁ : a ≤ b)
(h₂ : b < c)
:
theorem
Lean.Grind.Order.lt_le_trans
{α : Type u_1}
[LE α]
[LT α]
[Std.LawfulOrderLT α]
[Std.IsPreorder α]
{a b c : α}
(h₁ : a < b)
(h₂ : b ≤ c)
:
theorem
Lean.Grind.Order.lt_unsat
{α : Type u_1}
[LE α]
[LT α]
[Std.LawfulOrderLT α]
[Std.IsPreorder α]
(a : α)
:
Transitivity with offsets
Unsat detection
theorem
Lean.Grind.Order.le_unsat_k
{α : Type u_1}
[LE α]
[LT α]
[Std.LawfulOrderLT α]
[Std.IsPreorder α]
[Ring α]
[OrderedRing α]
{a : α}
{k : Int}
:
theorem
Lean.Grind.Order.lt_unsat_k
{α : Type u_1}
[LE α]
[LT α]
[Std.LawfulOrderLT α]
[Std.IsPreorder α]
[Ring α]
[OrderedRing α]
{a : α}
{k : Int}
:
Helper theorems
Theorems for propagating constraints to True
theorem
Lean.Grind.Order.le_eq_true_of_lt
{α : Type u_1}
[LE α]
[LT α]
[Std.LawfulOrderLT α]
{a b : α}
:
theorem
Lean.Grind.Order.le_eq_true_of_le_k
{α : Type u_1}
[LE α]
[LT α]
[Std.LawfulOrderLT α]
[Std.IsPreorder α]
[Ring α]
[OrderedRing α]
{a b : α}
{k₁ k₂ : Int}
:
theorem
Lean.Grind.Order.le_eq_true_of_lt_k
{α : Type u_1}
[LE α]
[LT α]
[Std.LawfulOrderLT α]
[Std.IsPreorder α]
[Ring α]
[OrderedRing α]
{a b : α}
{k₁ k₂ : Int}
:
theorem
Lean.Grind.Order.lt_eq_true_of_lt_k
{α : Type u_1}
[LE α]
[LT α]
[Std.LawfulOrderLT α]
[Std.IsPreorder α]
[Ring α]
[OrderedRing α]
{a b : α}
{k₁ k₂ : Int}
:
theorem
Lean.Grind.Order.lt_eq_true_of_le_k
{α : Type u_1}
[LE α]
[LT α]
[Std.LawfulOrderLT α]
[Std.IsPreorder α]
[Ring α]
[OrderedRing α]
{a b : α}
{k₁ k₂ : Int}
:
Theorems for propagating constraints to False
theorem
Lean.Grind.Order.le_eq_false_of_lt
{α : Type u_1}
[LE α]
[LT α]
[Std.LawfulOrderLT α]
[Std.IsPreorder α]
{a b : α}
:
theorem
Lean.Grind.Order.lt_eq_false_of_lt
{α : Type u_1}
[LE α]
[LT α]
[Std.LawfulOrderLT α]
[Std.IsPreorder α]
{a b : α}
:
theorem
Lean.Grind.Order.lt_eq_false_of_le
{α : Type u_1}
[LE α]
[LT α]
[Std.LawfulOrderLT α]
[Std.IsPreorder α]
{a b : α}
:
theorem
Lean.Grind.Order.le_eq_false_of_le_k
{α : Type u_1}
[LE α]
[LT α]
[Std.LawfulOrderLT α]
[Std.IsPreorder α]
[Ring α]
[OrderedRing α]
{a b : α}
{k₁ k₂ : Int}
:
theorem
Lean.Grind.Order.lt_eq_false_of_le_k
{α : Type u_1}
[LE α]
[LT α]
[Std.LawfulOrderLT α]
[Std.IsPreorder α]
[Ring α]
[OrderedRing α]
(a b : α)
(k₁ k₂ : Int)
:
theorem
Lean.Grind.Order.lt_eq_false_of_lt_k
{α : Type u_1}
[LE α]
[LT α]
[Std.LawfulOrderLT α]
[Std.IsPreorder α]
[Ring α]
[OrderedRing α]
(a b : α)
(k₁ k₂ : Int)
:
theorem
Lean.Grind.Order.le_eq_false_of_lt_k
{α : Type u_1}
[LE α]
[LT α]
[Std.LawfulOrderLT α]
[Std.IsPreorder α]
[Ring α]
[OrderedRing α]
(a b : α)
(k₁ k₂ : Int)
: