|
| 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