# mathlib3documentation

algebra.order.lattice_group

# Lattice ordered groups #

THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.

Lattice ordered groups were introduced by Birkhoff. They form the algebraic underpinnings of vector lattices, Banach lattices, AL-space, AM-space etc.

This file develops the basic theory, concentrating on the commutative case.

## Main statements #

• pos_div_neg: Every element a of a lattice ordered commutative group has a decomposition a⁺-a⁻ into the difference of the positive and negative component.
• pos_inf_neg_eq_one: The positive and negative components are coprime.
• abs_triangle: The absolute value operation satisfies the triangle inequality.

It is shown that the inf and sup operations are related to the absolute value operation by a number of equations and inequalities.

## Notations #

• a⁺ = a ⊔ 0: The positive component of an element a of a lattice ordered commutative group
• a⁻ = (-a) ⊔ 0: The negative component of an element a of a lattice ordered commutative group
• |a| = a⊔(-a): The absolute value of an element a of a lattice ordered commutative group

## Implementation notes #

A lattice ordered commutative group is a type α satisfying:

• [lattice α]
• [comm_group α]
• [covariant_class α α (*) (≤)]

The remainder of the file establishes basic properties of lattice ordered commutative groups. A number of these results also hold in the non-commutative case (Birkhoff, Fuchs) but we have not developed that here, since we are primarily interested in vector lattices.

## Tags #

lattice, ordered, group

theorem add_sup {α : Type u} [lattice α] (a b c : α) :
c + a b = (c + a) (c + b)
theorem mul_sup {α : Type u} [lattice α] [comm_group α] (a b c : α) :
c * (a b) = c * a c * b
theorem sup_add {α : Type u} [lattice α] (a b c : α) :
a b + c = (a + c) (b + c)
theorem sup_mul {α : Type u} [lattice α] [comm_group α] (a b c : α) :
(a b) * c = a * c b * c
theorem add_inf {α : Type u} [lattice α] (a b c : α) :
c + a b = (c + a) (c + b)
theorem mul_inf {α : Type u} [lattice α] [comm_group α] (a b c : α) :
c * (a b) = c * a c * b
theorem inf_mul {α : Type u} [lattice α] [comm_group α] (a b c : α) :
(a b) * c = a * c b * c
theorem inf_add {α : Type u} [lattice α] (a b c : α) :
a b + c = (a + c) (b + c)
theorem neg_sup_eq_neg_inf_neg {α : Type u} [lattice α] (a b : α) :
-(a b) = -a -b
theorem inv_sup_eq_inv_inf_inv {α : Type u} [lattice α] [comm_group α] (a b : α) :
theorem inv_inf_eq_sup_inv {α : Type u} [lattice α] [comm_group α] (a b : α) :
theorem neg_inf_eq_sup_neg {α : Type u} [lattice α] (a b : α) :
-(a b) = -a -b
theorem inf_add_sup {α : Type u} [lattice α] (a b : α) :
a b + a b = a + b
theorem inf_mul_sup {α : Type u} [lattice α] [comm_group α] (a b : α) :
(a b) * (a b) = a * b
@[protected, instance]

Let α be a lattice ordered commutative group with identity 1. For an element a of type α, the element a ⊔ 1 is said to be the positive component of a, denoted a⁺.

Equations
@[protected, instance]

Let α be a lattice ordered commutative group with identity 0. For an element a of type α, the element a ⊔ 0 is said to be the positive component of a, denoted a⁺.

Equations
theorem lattice_ordered_comm_group.pos_part_def {α : Type u} [lattice α] (a : α) :
a = a 0
theorem lattice_ordered_comm_group.m_pos_part_def {α : Type u} [lattice α] [comm_group α] (a : α) :
a = a 1
@[protected, instance]

Let α be a lattice ordered commutative group with identity 0. For an element a of type α, the element (-a) ⊔ 0 is said to be the negative component of a, denoted a⁻.

Equations
@[protected, instance]

Let α be a lattice ordered commutative group with identity 1. For an element a of type α, the element (-a) ⊔ 1 is said to be the negative component of a, denoted a⁻.

Equations
theorem lattice_ordered_comm_group.neg_part_def {α : Type u} [lattice α] (a : α) :
a = -a 0
@[simp]
theorem lattice_ordered_comm_group.pos_one {α : Type u} [lattice α] [comm_group α] :
1 = 1
@[simp]
theorem lattice_ordered_comm_group.pos_zero {α : Type u} [lattice α]  :
0 = 0
@[simp]
theorem lattice_ordered_comm_group.neg_zero {α : Type u} [lattice α]  :
0 = 0
@[simp]
theorem lattice_ordered_comm_group.neg_one {α : Type u} [lattice α] [comm_group α] :
1 = 1
theorem lattice_ordered_comm_group.neg_eq_neg_inf_zero {α : Type u} [lattice α] (a : α) :
a = -(a 0)
theorem lattice_ordered_comm_group.le_mabs {α : Type u} [lattice α] [comm_group α] (a : α) :
a |a|
theorem lattice_ordered_comm_group.le_abs {α : Type u} [lattice α] (a : α) :
a |a|
theorem lattice_ordered_comm_group.neg_le_abs {α : Type u} [lattice α] (a : α) :
-a |a|
theorem lattice_ordered_comm_group.inv_le_abs {α : Type u} [lattice α] [comm_group α] (a : α) :
theorem lattice_ordered_comm_group.one_le_pos {α : Type u} [lattice α] [comm_group α] (a : α) :
1 a
theorem lattice_ordered_comm_group.pos_nonneg {α : Type u} [lattice α] (a : α) :
0 a
theorem lattice_ordered_comm_group.neg_nonneg {α : Type u} [lattice α] (a : α) :
0 a
theorem lattice_ordered_comm_group.one_le_neg {α : Type u} [lattice α] [comm_group α] (a : α) :
1 a
theorem lattice_ordered_comm_group.pos_le_one_iff {α : Type u} [lattice α] [comm_group α] {a : α} :
a 1 a 1
theorem lattice_ordered_comm_group.pos_nonpos_iff {α : Type u} [lattice α] {a : α} :
a 0 a 0
theorem lattice_ordered_comm_group.neg_nonpos_iff {α : Type u} [lattice α] {a : α} :
a 0 -a 0
theorem lattice_ordered_comm_group.pos_eq_zero_iff {α : Type u} [lattice α] {a : α} :
a = 0 a 0
theorem lattice_ordered_comm_group.pos_eq_one_iff {α : Type u} [lattice α] [comm_group α] {a : α} :
a = 1 a 1
theorem lattice_ordered_comm_group.neg_eq_one_iff' {α : Type u} [lattice α] [comm_group α] {a : α} :
a = 1 a⁻¹ 1
theorem lattice_ordered_comm_group.neg_eq_zero_iff' {α : Type u} [lattice α] {a : α} :
a = 0 -a 0
theorem lattice_ordered_comm_group.neg_eq_one_iff {α : Type u} [lattice α] [comm_group α] {a : α} :
a = 1 1 a
theorem lattice_ordered_comm_group.neg_eq_zero_iff {α : Type u} [lattice α] {a : α} :
a = 0 0 a
theorem lattice_ordered_comm_group.le_pos {α : Type u} [lattice α] (a : α) :
a a
theorem lattice_ordered_comm_group.m_le_pos {α : Type u} [lattice α] [comm_group α] (a : α) :
a a
theorem lattice_ordered_comm_group.neg_le_neg {α : Type u} [lattice α] (a : α) :
theorem lattice_ordered_comm_group.inv_le_neg {α : Type u} [lattice α] [comm_group α] (a : α) :
theorem lattice_ordered_comm_group.neg_eq_pos_neg {α : Type u} [lattice α] (a : α) :
a = (-a)
theorem lattice_ordered_comm_group.pos_eq_neg_neg {α : Type u} [lattice α] (a : α) :
a = (-a)
@[simp]
theorem lattice_ordered_comm_group.pos_div_neg {α : Type u} [lattice α] [comm_group α] (a : α) :
a / a = a
@[simp]
theorem lattice_ordered_comm_group.pos_sub_neg {α : Type u} [lattice α] (a : α) :
a - a = a
theorem lattice_ordered_comm_group.sup_eq_add_pos_sub {α : Type u} [lattice α] (a b : α) :
a b = b + (a - b)
theorem lattice_ordered_comm_group.sup_eq_mul_pos_div {α : Type u} [lattice α] [comm_group α] (a b : α) :
a b = b * (a / b)
theorem lattice_ordered_comm_group.inf_eq_sub_pos_sub {α : Type u} [lattice α] (a b : α) :
a b = a - (a - b)
theorem lattice_ordered_comm_group.inf_eq_div_pos_div {α : Type u} [lattice α] [comm_group α] (a b : α) :
a b = a / (a / b)
theorem lattice_ordered_comm_group.neg_abs {α : Type u} [lattice α] (a : α) :
|a| = 0
theorem lattice_ordered_comm_group.m_neg_abs {α : Type u} [lattice α] [comm_group α] (a : α) :
|a| = 1
theorem lattice_ordered_comm_group.pos_abs {α : Type u} [lattice α] (a : α) :
theorem lattice_ordered_comm_group.m_pos_abs {α : Type u} [lattice α] [comm_group α] (a : α) :
theorem lattice_ordered_comm_group.abs_nonneg {α : Type u} [lattice α] (a : α) :
0 |a|
theorem lattice_ordered_comm_group.one_le_abs {α : Type u} [lattice α] [comm_group α] (a : α) :
1 |a|
theorem lattice_ordered_comm_group.pos_mul_neg {α : Type u} [lattice α] [comm_group α] (a : α) :
|a| = a * a
theorem lattice_ordered_comm_group.pos_add_neg {α : Type u} [lattice α] (a : α) :
|a| = a + a
theorem lattice_ordered_comm_group.sup_div_inf_eq_abs_div {α : Type u} [lattice α] [comm_group α] (a b : α) :
(a b) / (a b) = |b / a|
theorem lattice_ordered_comm_group.sup_sub_inf_eq_abs_sub {α : Type u} [lattice α] (a b : α) :
a b - a b = |b - a|
theorem lattice_ordered_comm_group.two_sup_eq_add_add_abs_sub {α : Type u} [lattice α] (a b : α) :
2 (a b) = a + b + |b - a|
theorem lattice_ordered_comm_group.sup_sq_eq_mul_mul_abs_div {α : Type u} [lattice α] [comm_group α] (a b : α) :
(a b) ^ 2 = a * b * |b / a|
theorem lattice_ordered_comm_group.inf_sq_eq_mul_div_abs_div {α : Type u} [lattice α] [comm_group α] (a b : α) :
(a b) ^ 2 = a * b / |b / a|
theorem lattice_ordered_comm_group.two_inf_eq_add_sub_abs_sub {α : Type u} [lattice α] (a b : α) :
2 (a b) = a + b - |b - a|

Every lattice ordered commutative additive group is a distributive lattice

Equations

Every lattice ordered commutative group is a distributive lattice

Equations
theorem lattice_ordered_comm_group.abs_div_sup_mul_abs_div_inf {α : Type u} [lattice α] [comm_group α] (a b c : α) :
|(a c) / (b c)| * |(a c) / (b c)| = |a / b|
theorem lattice_ordered_comm_group.abs_sub_sup_add_abs_sub_inf {α : Type u} [lattice α] (a b c : α) :
|a c - b c| + |a c - b c| = |a - b|
theorem lattice_ordered_comm_group.pos_of_nonneg {α : Type u} [lattice α] (a : α) (h : 0 a) :
a = a

If a is positive, then it is equal to its positive component a⁺.

theorem lattice_ordered_comm_group.pos_of_one_le {α : Type u} [lattice α] [comm_group α] (a : α) (h : 1 a) :
a = a

If a is positive, then it is equal to its positive component a⁺.

theorem lattice_ordered_comm_group.pos_eq_self_of_one_lt_pos {α : Type u_1} [linear_order α] [comm_group α] {x : α} (hx : 1 < x) :
x = x
theorem lattice_ordered_comm_group.pos_eq_self_of_pos_pos {α : Type u_1} [linear_order α] {x : α} (hx : 0 < x) :
x = x
theorem lattice_ordered_comm_group.pos_of_nonpos {α : Type u} [lattice α] (a : α) (h : a 0) :
a = 0
theorem lattice_ordered_comm_group.pos_of_le_one {α : Type u} [lattice α] [comm_group α] (a : α) (h : a 1) :
a = 1
theorem lattice_ordered_comm_group.neg_of_one_le_inv {α : Type u} [lattice α] [comm_group α] (a : α) (h : 1 a⁻¹) :
theorem lattice_ordered_comm_group.neg_of_inv_nonneg {α : Type u} [lattice α] (a : α) (h : 0 -a) :
a = -a
theorem lattice_ordered_comm_group.neg_of_inv_le_one {α : Type u} [lattice α] [comm_group α] (a : α) (h : a⁻¹ 1) :
a = 1
theorem lattice_ordered_comm_group.neg_of_neg_nonpos {α : Type u} [lattice α] (a : α) (h : -a 0) :
a = 0
theorem lattice_ordered_comm_group.neg_of_nonpos {α : Type u} [lattice α] (a : α) (h : a 0) :
a = -a
theorem lattice_ordered_comm_group.neg_of_le_one {α : Type u} [lattice α] [comm_group α] (a : α) (h : a 1) :
theorem lattice_ordered_comm_group.neg_of_one_le {α : Type u} [lattice α] [comm_group α] (a : α) (h : 1 a) :
a = 1
theorem lattice_ordered_comm_group.neg_of_nonneg {α : Type u} [lattice α] (a : α) (h : 0 a) :
a = 0
theorem lattice_ordered_comm_group.mabs_of_one_le {α : Type u} [lattice α] [comm_group α] (a : α) (h : 1 a) :
|a| = a
theorem lattice_ordered_comm_group.abs_of_nonneg {α : Type u} [lattice α] (a : α) (h : 0 a) :
|a| = a
@[simp]
theorem lattice_ordered_comm_group.mabs_mabs {α : Type u} [lattice α] [comm_group α] (a : α) :

The unary operation of taking the absolute value is idempotent.

@[simp]
theorem lattice_ordered_comm_group.abs_abs {α : Type u} [lattice α] (a : α) :

The unary operation of taking the absolute value is idempotent.

theorem lattice_ordered_comm_group.mabs_sup_div_sup_le_mabs {α : Type u} [lattice α] [comm_group α] (a b c : α) :
|(a c) / (b c)| |a / b|
theorem lattice_ordered_comm_group.abs_sup_sub_sup_le_abs {α : Type u} [lattice α] (a b c : α) :
|a c - b c| |a - b|
theorem lattice_ordered_comm_group.abs_inf_sub_inf_le_abs {α : Type u} [lattice α] (a b c : α) :
|a c - b c| |a - b|
theorem lattice_ordered_comm_group.mabs_inf_div_inf_le_mabs {α : Type u} [lattice α] [comm_group α] (a b c : α) :
|(a c) / (b c)| |a / b|
theorem lattice_ordered_comm_group.m_Birkhoff_inequalities {α : Type u} [lattice α] [comm_group α] (a b c : α) :
|(a c) / (b c)| |(a c) / (b c)| |a / b|
theorem lattice_ordered_comm_group.Birkhoff_inequalities {α : Type u} [lattice α] (a b c : α) :
|a c - b c| |a c - b c| |a - b|
theorem lattice_ordered_comm_group.mabs_mul_le {α : Type u} [lattice α] [comm_group α] (a b : α) :
|a * b| |a| * |b|

The absolute value satisfies the triangle inequality.

theorem lattice_ordered_comm_group.abs_add_le {α : Type u} [lattice α] (a b : α) :
|a + b| |a| + |b|

The absolute value satisfies the triangle inequality.

theorem lattice_ordered_comm_group.abs_neg_comm {α : Type u} [lattice α] (a b : α) :
|a - b| = |b - a|
theorem lattice_ordered_comm_group.abs_inv_comm {α : Type u} [lattice α] [comm_group α] (a b : α) :
|a / b| = |b / a|
theorem lattice_ordered_comm_group.abs_abs_div_abs_le {α : Type u} [lattice α] [comm_group α] (a b : α) :
||a| / |b|| |a / b|
theorem lattice_ordered_comm_group.abs_abs_sub_abs_le {α : Type u} [lattice α] (a b : α) :
||a| - |b|| |a - b|
def lattice_ordered_add_comm_group.is_solid {β : Type u} [lattice β] (s : set β) :
Prop

A subset s ⊆ β, with β an add_comm_group with a lattice structure, is solid if for all x ∈ s and all y ∈ β such that |y| ≤ |x|, then y ∈ s.

Equations

The solid closure of a subset s is the smallest superset of s that is solid.

Equations
theorem lattice_ordered_add_comm_group.solid_closure_min {β : Type u} [lattice β] (s t : set β) (h1 : s t)  :