@[class]
- symm_op : ∀ (a b : α), op a b = op b a
@[class]
- comm : ∀ (a b : α), op a b = op b a
@[instance]
def
is_symm_op_of_is_commutative
(α : Type u)
(op : α → α → α)
[is_commutative α op] :
is_symm_op α α op
@[class]
- assoc : ∀ (a b c : α), op (op a b) c = op a (op b c)
@[class]
- left_id : ∀ (a : α), op o a = a
@[class]
- right_id : ∀ (a : α), op a o = a
@[class]
- left_null : ∀ (a : α), op o a = o
@[class]
- right_null : ∀ (a : α), op a o = o
@[class]
@[class]
@[class]
- idempotent : ∀ (a : α), op a a = a
@[class]
- left_distrib : ∀ (a b c : α), op₁ a (op₂ b c) = op₂ (op₁ a b) (op₁ a c)
@[class]
- right_distrib : ∀ (a b c : α), op₁ (op₂ a b) c = op₂ (op₁ a c) (op₁ b c)
@[class]
structure
is_left_inv
(α : Type u)
(op : α → α → α)
(inv : out_param (α → α))
(o : out_param α) :
Prop
- left_inv : ∀ (a : α), op (inv a) a = o
@[class]
structure
is_right_inv
(α : Type u)
(op : α → α → α)
(inv : out_param (α → α))
(o : out_param α) :
Prop
- right_inv : ∀ (a : α), op a (inv a) = o
@[class]
- symm : ∀ (a b : α), r a b → r b a
is_symm X r
means the binary relation r
on X
is symmetric.
Instances
@[instance]
The opposite of a symmetric relation is symmetric.
@[class]
- antisymm : ∀ (a b : α), r a b → r b a → a = b
is_antisymm X r
means the binary relation r
on X
is antisymmetric.
@[class]
- trans : ∀ (a b c : α), r a b → r b c → r a c
is_trans X r
means the binary relation r
on X
is transitive.
@[class]
is_preorder X r
means that the binary relation r
on X
is a pre-order, that is, reflexive
and transitive.
@[class]
is_total_preorder X r
means that the binary relation r
on X
is total and a preorder.
@[instance]
def
is_total_preorder_is_preorder
(α : Type u)
(r : α → α → Prop)
[s : is_total_preorder α r] :
is_preorder α r
Every total pre-order is a pre-order.
@[class]
- to_is_preorder : is_preorder α r
- to_is_antisymm : is_antisymm α r
@[class]
@[class]
@[class]
- to_is_strict_order : is_strict_order α lt
- to_is_incomp_trans : is_incomp_trans α lt
@[class]
@[class]
- to_is_trichotomous : is_trichotomous α lt
- to_is_strict_weak_order : is_strict_weak_order α lt
theorem
antisymm
{α : Type u}
{r : α → α → Prop}
[is_antisymm α r]
{a b : α}
(a_1 : r a b)
(a_2 : r b a) :
a = b
@[instance]
def
is_asymm_of_is_trans_of_is_irrefl
{α : Type u}
{r : α → α → Prop}
[is_trans α r]
[is_irrefl α r] :
is_asymm α r
Equations
- strict_weak_order.equiv a b = (¬r a b ∧ ¬r b a)
theorem
strict_weak_order.erefl
{α : Type u}
{r : α → α → Prop}
[is_strict_weak_order α r]
(a : α) :
theorem
strict_weak_order.esymm
{α : Type u}
{r : α → α → Prop}
[is_strict_weak_order α r]
{a b : α}
(a_1 : strict_weak_order.equiv a b) :
theorem
strict_weak_order.etrans
{α : Type u}
{r : α → α → Prop}
[is_strict_weak_order α r]
{a b c : α}
(a_1 : strict_weak_order.equiv a b)
(a_2 : strict_weak_order.equiv b c) :
theorem
strict_weak_order.not_lt_of_equiv
{α : Type u}
{r : α → α → Prop}
[is_strict_weak_order α r]
{a b : α}
(a_1 : strict_weak_order.equiv a b) :
¬r a b
theorem
strict_weak_order.not_lt_of_equiv'
{α : Type u}
{r : α → α → Prop}
[is_strict_weak_order α r]
{a b : α}
(a_1 : strict_weak_order.equiv a b) :
¬r b a
@[instance]
theorem
is_strict_weak_order_of_is_total_preorder
{α : Type u}
{le lt : α → α → Prop}
[decidable_rel le]
[s : is_total_preorder α le]
(h : ∀ (a b : α), lt a b ↔ ¬le b a) :
is_strict_weak_order α lt
theorem
lt_of_lt_of_incomp
{α : Type u}
{lt : α → α → Prop}
[is_strict_weak_order α lt]
[decidable_rel lt]
{a b c : α}
(a_1 : lt a b)
(a_2 : ¬lt b c ∧ ¬lt c b) :
lt a c
theorem
lt_of_incomp_of_lt
{α : Type u}
{lt : α → α → Prop}
[is_strict_weak_order α lt]
[decidable_rel lt]
{a b c : α}
(a_1 : ¬lt a b ∧ ¬lt b a)
(a_2 : lt b c) :
lt a c
theorem
eq_of_incomp
{α : Type u}
{lt : α → α → Prop}
[is_trichotomous α lt]
{a b : α}
(a_1 : ¬lt a b ∧ ¬lt b a) :
a = b
theorem
eq_of_eqv_lt
{α : Type u}
{lt : α → α → Prop}
[is_trichotomous α lt]
{a b : α}
(a_1 : strict_weak_order.equiv a b) :
a = b
theorem
incomp_iff_eq
{α : Type u}
{lt : α → α → Prop}
[is_trichotomous α lt]
[is_irrefl α lt]
(a b : α) :
theorem
eqv_lt_iff_eq
{α : Type u}
{lt : α → α → Prop}
[is_trichotomous α lt]
[is_irrefl α lt]
(a b : α) :
strict_weak_order.equiv a b ↔ a = b
theorem
not_lt_of_lt
{α : Type u}
{lt : α → α → Prop}
[is_strict_order α lt]
{a b : α}
(a_1 : lt a b) :
¬lt b a