@@ -902,30 +902,31 @@ let ⟨r, _, e⟩ := ord_eq α in begin
902
902
exact le_trans (ord_le_type _) (type_le'.2 ⟨g⟩) }
903
903
end
904
904
905
- theorem lt_ord {c o} : o < ord c ↔ o.card < c :=
906
- by rw [← not_le, ← not_le, ord_le]
905
+ theorem gc_ord_card : galois_connection ord card := λ _ _, ord_le
906
+
907
+ theorem lt_ord {c o} : o < ord c ↔ o.card < c := gc_ord_card.lt_iff_lt
907
908
908
909
@[simp] theorem card_ord (c) : (ord c).card = c :=
909
910
quotient.induction_on c $ λ α,
910
911
let ⟨r, _, e⟩ := ord_eq α in by simp only [mk_def, e, card_type]
911
912
912
- theorem ord_card_le (o : ordinal) : o.card.ord ≤ o :=
913
- ord_le.2 le_rfl
913
+ /-- Galois coinsertion between `cardinal.ord` and `ordinal.card`. -/
914
+ def gci_ord_card : galois_coinsertion ord card :=
915
+ gc_ord_card.to_galois_coinsertion $ λ c, c.card_ord.le
914
916
915
- lemma lt_ord_succ_card (o : ordinal) : o < (succ o.card).ord :=
916
- by { rw lt_ord, apply lt_succ }
917
+ theorem ord_card_le (o : ordinal) : o.card.ord ≤ o := gc_ord_card.l_u_le _
917
918
918
- @[simp] theorem ord_le_ord {c₁ c₂} : ord c₁ ≤ ord c₂ ↔ c₁ ≤ c₂ :=
919
- by simp only [ord_le, card_ord]
919
+ lemma lt_ord_succ_card (o : ordinal) : o < (succ o.card).ord := lt_ord.2 $ lt_succ _
920
920
921
- @[simp ] theorem ord_lt_ord {c₁ c₂} : ord c₁ < ord c₂ ↔ c₁ < c₂ :=
922
- by simp only [lt_ord, card_ord]
921
+ @[mono ] theorem ord_strict_mono : strict_mono ord := gci_ord_card.strict_mono_l
922
+ @[mono] theorem ord_mono : monotone ord := gc_ord_card.monotone_l
923
923
924
- @[simp] theorem ord_zero : ord 0 = 0 :=
925
- le_antisymm (ord_le.2 $ zero_le _) (ordinal.zero_le _)
924
+ @[simp] theorem ord_le_ord {c₁ c₂} : ord c₁ ≤ ord c₂ ↔ c₁ ≤ c₂ := gci_ord_card.l_le_l_iff
925
+ @[simp] theorem ord_lt_ord {c₁ c₂} : ord c₁ < ord c₂ ↔ c₁ < c₂ := ord_strict_mono.lt_iff_lt
926
+ @[simp] theorem ord_zero : ord 0 = 0 := gc_ord_card.l_bot
926
927
927
928
@[simp] theorem ord_nat (n : ℕ) : ord n = n :=
928
- le_antisymm (ord_le.2 $ by simp only [ card_nat]) $ begin
929
+ (ord_le.2 ( card_nat n).ge).antisymm begin
929
930
induction n with n IH,
930
931
{ apply ordinal.zero_le },
931
932
{ exact succ_le_of_lt (IH.trans_lt $ ord_lt_ord.2 $ nat_cast_lt.2 (nat.lt_succ_self n)) }
@@ -935,14 +936,11 @@ end
935
936
by simpa using ord_nat 1
936
937
937
938
@[simp] theorem lift_ord (c) : (ord c).lift = ord (lift c) :=
938
- eq_of_forall_ge_iff $ λ o, le_iff_le_iff_lt_iff_lt.2 $ begin
939
- split; intro h,
940
- { rcases ordinal.lt_lift_iff.1 h with ⟨a, e, h⟩,
941
- rwa [← e, lt_ord, ← lift_card, lift_lt, ← lt_ord] },
942
- { rw lt_ord at h,
943
- rcases lift_down' (le_of_lt h) with ⟨o, rfl⟩,
944
- rw [← lift_card, lift_lt] at h,
945
- rwa [ordinal.lift_lt, lt_ord] }
939
+ begin
940
+ refine le_antisymm (le_of_forall_lt (λ a ha, _)) _,
941
+ { rcases ordinal.lt_lift_iff.1 ha with ⟨a, rfl, h⟩,
942
+ rwa [lt_ord, ← lift_card, lift_lt, ← lt_ord, ← ordinal.lift_lt] },
943
+ { rw [ord_le, ← lift_card, card_ord] }
946
944
end
947
945
948
946
lemma mk_ord_out (c : cardinal) : #c.ord.out.α = c := by simp
0 commit comments