Skip to content

Commit 1a79483

Browse files
committed
feat(Algebra/Order/Floor/Defs): add instances on FloorSemiring and FloorRing (#36828)
These instances are `NeZero` and `Nontrivial` instances, made so that we can weaken the `IsStrictOrderedRing` instances on several theorems about floor rings into `IsOrderedRing`.
1 parent a216f7c commit 1a79483

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

Mathlib/Algebra/Order/Floor/Defs.lean

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,12 @@ theorem gc_ceil_coe : GaloisConnection (ceil : α → ℕ) (↑) :=
123123
theorem ceil_le : ⌈a⌉₊ ≤ n ↔ a ≤ n :=
124124
gc_ceil_coe _ _
125125

126+
instance : NeZero (1 : α) :=
127+
fun h ↦ not_succ_le_self ⌊(0 : α)⌋₊ <|
128+
(le_floor_iff (le_refl 0)).mpr (eq_zero_of_zero_eq_one h.symm _).le⟩
129+
130+
instance : Nontrivial α := NeZero.nontrivial 1
131+
126132
end OrderedSemiring
127133

128134
section LinearOrderedSemiring
@@ -256,6 +262,12 @@ theorem floorRing_floor_eq : @FloorRing.floor = @Int.floor :=
256262
theorem floorRing_ceil_eq : @FloorRing.ceil = @Int.ceil :=
257263
rfl
258264

265+
instance : NeZero (1 : α) :=
266+
fun h ↦ (Int.lt_succ ⌊(0 : α)⌋).not_ge <|
267+
(FloorRing.gc_coe_floor _ _).mp (eq_zero_of_zero_eq_one h.symm _).le⟩
268+
269+
instance : Nontrivial α := NeZero.nontrivial 1
270+
259271
/-! #### Floor -/
260272

261273
theorem gc_coe_floor : GaloisConnection ((↑) : ℤ → α) floor :=

Mathlib/Logic/Nontrivial/Defs.lean

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,3 +131,6 @@ instance : Nontrivial Bool :=
131131
⟨⟨true, false, nofun⟩⟩
132132

133133
end Bool
134+
135+
theorem NeZero.nontrivial {α : Type*} [Zero α] (a : α) [NeZero a] : Nontrivial α :=
136+
⟨⟨a, 0, NeZero.ne a⟩⟩

0 commit comments

Comments
 (0)