Skip to content

Commit cedc99c

Browse files
committed
feat(Order/SuccPred/TypeTags): SuccOrder (Multiplicative X) and friends (#15940)
Co-authored-by: Yakov Pechersky <ffxen158@gmail.com>
1 parent 1410abf commit cedc99c

File tree

2 files changed

+51
-0
lines changed

2 files changed

+51
-0
lines changed

Mathlib.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -674,6 +674,7 @@ import Mathlib.Algebra.Order.Sub.Unbundled.Basic
674674
import Mathlib.Algebra.Order.Sub.Unbundled.Hom
675675
import Mathlib.Algebra.Order.Sub.WithTop
676676
import Mathlib.Algebra.Order.SuccPred
677+
import Mathlib.Algebra.Order.SuccPred.TypeTags
677678
import Mathlib.Algebra.Order.Sum
678679
import Mathlib.Algebra.Order.ToIntervalMod
679680
import Mathlib.Algebra.Order.UpperLower
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
/-
2+
Copyright (c) 2024 Yakov Pechersky. All rights reserved.
3+
Released under Apache 2.0 license as described in the file LICENSE.
4+
Authors: Yakov Pechersky
5+
-/
6+
import Mathlib.Algebra.Order.Monoid.TypeTags
7+
import Mathlib.Order.SuccPred.Archimedean
8+
9+
/-!
10+
# Successor and predecessor on type tags
11+
12+
This file declates successor and predecessor orders on type tags.
13+
14+
-/
15+
16+
variable {X : Type*}
17+
18+
instance [Preorder X] [h : SuccOrder X] : SuccOrder (Multiplicative X) := h
19+
instance [Preorder X] [h : SuccOrder X] : SuccOrder (Additive X) := h
20+
21+
instance [Preorder X] [h : PredOrder X] : PredOrder (Multiplicative X) := h
22+
instance [Preorder X] [h : PredOrder X] : PredOrder (Additive X) := h
23+
24+
instance [Preorder X] [SuccOrder X] [h : IsSuccArchimedean X] :
25+
IsSuccArchimedean (Multiplicative X) := h
26+
instance [Preorder X] [SuccOrder X] [h : IsSuccArchimedean X] :
27+
IsSuccArchimedean (Additive X) := h
28+
29+
instance [Preorder X] [PredOrder X] [h : IsPredArchimedean X] :
30+
IsPredArchimedean (Multiplicative X) := h
31+
instance [Preorder X] [PredOrder X] [h : IsPredArchimedean X] :
32+
IsPredArchimedean (Additive X) := h
33+
34+
namespace Order
35+
36+
open Additive Multiplicative
37+
38+
@[simp] lemma succ_ofMul [Preorder X] [SuccOrder X] (x : X) : succ (ofMul x) = ofMul (succ x) := rfl
39+
@[simp] lemma succ_toMul [Preorder X] [SuccOrder X] (x : X) : succ (toMul x) = toMul (succ x) := rfl
40+
41+
@[simp] lemma succ_ofAdd [Preorder X] [SuccOrder X] (x : X) : succ (ofAdd x) = ofAdd (succ x) := rfl
42+
@[simp] lemma succ_toAdd [Preorder X] [SuccOrder X] (x : X) : succ (toAdd x) = toAdd (succ x) := rfl
43+
44+
@[simp] lemma pred_ofMul [Preorder X] [PredOrder X] (x : X) : pred (ofMul x) = ofMul (pred x) := rfl
45+
@[simp] lemma pred_toMul [Preorder X] [PredOrder X] (x : X) : pred (toMul x) = toMul (pred x) := rfl
46+
47+
@[simp] lemma pred_ofAdd [Preorder X] [PredOrder X] (x : X) : pred (ofAdd x) = ofAdd (pred x) := rfl
48+
@[simp] lemma pred_toAdd [Preorder X] [PredOrder X] (x : X) : pred (toAdd x) = toAdd (pred x) := rfl
49+
50+
end Order

0 commit comments

Comments
 (0)