Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit ea050b4

Browse files
committed
feat(set_theory/cardinal/basic): clean up instances (#18714)
We add a missing `linear_ordered_comm_monoid_with_zero` instance and reorder others.
1 parent 6b60020 commit ea050b4

1 file changed

Lines changed: 19 additions & 14 deletions

File tree

src/set_theory/cardinal/basic.lean

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -190,11 +190,13 @@ instance : has_le cardinal.{u} :=
190190
⟨λ q₁ q₂, quotient.lift_on₂ q₁ q₂ (λ α β, nonempty $ α ↪ β) $
191191
λ α β γ δ ⟨e₁⟩ ⟨e₂⟩, propext ⟨λ ⟨e⟩, ⟨e.congr e₁ e₂⟩, λ ⟨e⟩, ⟨e.congr e₁.symm e₂.symm⟩⟩⟩
192192

193-
instance : partial_order cardinal.{u} :=
194-
{ le := (≤),
195-
le_refl := by rintros ⟨α⟩; exact ⟨embedding.refl _⟩,
196-
le_trans := by rintros ⟨α⟩ ⟨β⟩ ⟨γ⟩ ⟨e₁⟩ ⟨e₂⟩; exact ⟨e₁.trans e₂⟩,
197-
le_antisymm := by { rintros ⟨α⟩ ⟨β⟩ ⟨e₁⟩ ⟨e₂⟩, exact quotient.sound (e₁.antisymm e₂) } }
193+
instance : linear_order cardinal.{u} :=
194+
{ le := (≤),
195+
le_refl := by rintros ⟨α⟩; exact ⟨embedding.refl _⟩,
196+
le_trans := by rintros ⟨α⟩ ⟨β⟩ ⟨γ⟩ ⟨e₁⟩ ⟨e₂⟩; exact ⟨e₁.trans e₂⟩,
197+
le_antisymm := by { rintros ⟨α⟩ ⟨β⟩ ⟨e₁⟩ ⟨e₂⟩, exact quotient.sound (e₁.antisymm e₂) },
198+
le_total := by { rintros ⟨α⟩ ⟨β⟩, apply embedding.total },
199+
decidable_le := classical.dec_rel _ }
198200

199201
theorem le_def (α β : Type u) : #α ≤ #β ↔ nonempty (α ↪ β) :=
200202
iff.rfl
@@ -472,7 +474,17 @@ instance : canonically_ordered_comm_semiring cardinal.{u} :=
472474
le_self_add := λ a b, (add_zero a).ge.trans $ add_le_add_left (cardinal.zero_le _) _,
473475
eq_zero_or_eq_zero_of_mul_eq_zero := λ a b, induction_on₂ a b $ λ α β,
474476
by simpa only [mul_def, mk_eq_zero_iff, is_empty_prod] using id,
475-
..cardinal.comm_semiring, ..cardinal.partial_order }
477+
..cardinal.comm_semiring, ..cardinal.linear_order }
478+
479+
instance : canonically_linear_ordered_add_monoid cardinal.{u} :=
480+
{ ..cardinal.canonically_ordered_comm_semiring,
481+
..cardinal.linear_order }
482+
483+
instance : linear_ordered_comm_monoid_with_zero cardinal.{u} :=
484+
{ mul_le_mul_left := @mul_le_mul_left' _ _ _ _,
485+
zero_le_one := zero_le _,
486+
..cardinal.comm_semiring,
487+
..cardinal.linear_order }
476488

477489
lemma zero_power_le (c : cardinal.{u}) : (0 : cardinal.{u}) ^ c ≤ 1 :=
478490
by { by_cases h : c = 0, rw [h, power_zero], rw [zero_power h], apply zero_le }
@@ -500,13 +512,7 @@ begin
500512
end
501513

502514
instance : no_max_order cardinal.{u} :=
503-
{ exists_gt := λ a, ⟨_, cantor a⟩, ..cardinal.partial_order }
504-
505-
instance : canonically_linear_ordered_add_monoid cardinal.{u} :=
506-
{ le_total := by { rintros ⟨α⟩ ⟨β⟩, apply embedding.total },
507-
decidable_le := classical.dec_rel _,
508-
..(infer_instance : canonically_ordered_add_monoid cardinal),
509-
..cardinal.partial_order }
515+
{ exists_gt := λ a, ⟨_, cantor a⟩ }
510516

511517
-- short-circuit type class inference
512518
instance : distrib_lattice cardinal.{u} := by apply_instance
@@ -541,7 +547,6 @@ protected theorem lt_wf : @well_founded cardinal.{u} (<) :=
541547
end
542548

543549
instance : has_well_founded cardinal.{u} := ⟨(<), cardinal.lt_wf⟩
544-
instance : well_founded_lt cardinal.{u} := ⟨cardinal.lt_wf⟩
545550
instance wo : @is_well_order cardinal.{u} (<) := { }
546551

547552
instance : conditionally_complete_linear_order_bot cardinal :=

0 commit comments

Comments
 (0)