Built with doc-gen4, running Lean4. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑Ctrl+↓to navigate, Ctrl+🖱️to focus. On Mac, use Cmdinstead of Ctrl.
/-
Copyright (c) 2016 Jeremy Avigad. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Jeremy Avigad, Leonardo de Moura, Mario Carneiro, Johannes Hölzl
Ported by: Jon Eugster

! This file was ported from Lean 3 source module algebra.order.monoid.with_top
! leanprover-community/mathlib commit 0111834459f5d7400215223ea95ae38a1265a907
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
import Mathlib.Algebra.Hom.Group
import Mathlib.Algebra.Order.Monoid.OrderDual
import Mathlib.Algebra.Order.Monoid.WithZero.Basic
import Mathlib.Data.Nat.Cast.Defs
import Mathlib.Algebra.Order.ZeroLEOne

/-! # Adjoining top/bottom elements to ordered monoids.
-/

universe u v

variable {
α: Type u
α
:
Type u: Type (u+1)
Type u
} {
β: Type v
β
:
Type v: Type (v+1)
Type v
} open Function namespace WithTop section One variable [
One: Type ?u.1214 → Type ?u.1214
One
α: Type u
α
] @[
to_additive: {α : Type u} → [inst : Zero α] → Zero (WithTop α)
to_additive
] instance
one: One (WithTop α)
one
:
One: Type ?u.20 → Type ?u.20
One
(
WithTop: Type ?u.21 → Type ?u.21
WithTop
α: Type u
α
) := ⟨(
1: ?m.30
1
:
α: Type u
α
)⟩ #align with_top.has_one
WithTop.one: {α : Type u} → [inst : One α] → One (WithTop α)
WithTop.one
#align with_top.has_zero
WithTop.zero: {α : Type u} → [inst : Zero α] → Zero (WithTop α)
WithTop.zero
@[
to_additive: ∀ {α : Type u} [inst : Zero α], 0 = 0
to_additive
(attr := simp, norm_cast)] theorem
coe_one: ∀ {α : Type u} [inst : One α], 1 = 1
coe_one
: ((
1: ?m.227
1
:
α: Type u
α
) :
WithTop: Type ?u.224 → Type ?u.224
WithTop
α: Type u
α
) =
1: ?m.328
1
:=
rfl: ∀ {α : Sort ?u.375} {a : α}, a = a
rfl
#align with_top.coe_one
WithTop.coe_one: ∀ {α : Type u} [inst : One α], 1 = 1
WithTop.coe_one
#align with_top.coe_zero
WithTop.coe_zero: ∀ {α : Type u} [inst : Zero α], 0 = 0
WithTop.coe_zero
@[
to_additive: ∀ {α : Type u} [inst : Zero α] {a : α}, a = 0 a = 0
to_additive
(attr := simp, norm_cast)] theorem
coe_eq_one: ∀ {α : Type u} [inst : One α] {a : α}, a = 1 a = 1
coe_eq_one
{
a: α
a
:
α: Type u
α
} : (
a: α
a
:
WithTop: Type ?u.497 → Type ?u.497
WithTop
α: Type u
α
) =
1: ?m.574
1
a: α
a
=
1: ?m.629
1
:=
coe_eq_coe: ∀ {α : Type ?u.663} {a b : α}, a = b a = b
coe_eq_coe
#align with_top.coe_eq_one
WithTop.coe_eq_one: ∀ {α : Type u} [inst : One α] {a : α}, a = 1 a = 1
WithTop.coe_eq_one
#align with_top.coe_eq_zero
WithTop.coe_eq_zero: ∀ {α : Type u} [inst : Zero α] {a : α}, a = 0 a = 0
WithTop.coe_eq_zero
@[
to_additive: ∀ {α : Type u} [inst : Zero α], untop 0 (_ : 0 ) = 0
to_additive
(attr := simp)] theorem
untop_one: ∀ {α : Type u} [inst : One α], untop 1 (_ : 1 ) = 1
untop_one
: (
1: ?m.915
1
:
WithTop: Type ?u.913 → Type ?u.913
WithTop
α: Type u
α
).
untop: {α : Type ?u.956} → (x : WithTop α) → x α
untop
coe_ne_top: ∀ {α : Type ?u.961} {a : α}, a
coe_ne_top
=
1: ?m.971
1
:=
rfl: ∀ {α : Sort ?u.1004} {a : α}, a = a
rfl
#align with_top.untop_one
WithTop.untop_one: ∀ {α : Type u} [inst : One α], untop 1 (_ : 1 ) = 1
WithTop.untop_one
#align with_top.untop_zero
WithTop.untop_zero: ∀ {α : Type u} [inst : Zero α], untop 0 (_ : 0 ) = 0
WithTop.untop_zero
@[
to_additive: ∀ {α : Type u} [inst : Zero α] (d : α), untop' d 0 = 0
to_additive
(attr := simp)] theorem
untop_one': ∀ (d : α), untop' d 1 = 1
untop_one'
(
d: α
d
:
α: Type u
α
) : (
1: ?m.1068
1
:
WithTop: Type ?u.1066 → Type ?u.1066
WithTop
α: Type u
α
).
untop': {α : Type ?u.1109} → αWithTop αα
untop'
d: α
d
=
1: ?m.1115
1
:=
rfl: ∀ {α : Sort ?u.1149} {a : α}, a = a
rfl
#align with_top.untop_one'
WithTop.untop_one': ∀ {α : Type u} [inst : One α] (d : α), untop' d 1 = 1
WithTop.untop_one'
#align with_top.untop_zero'
WithTop.untop_zero': ∀ {α : Type u} [inst : Zero α] (d : α), untop' d 0 = 0
WithTop.untop_zero'
@[to_additive (attr := simp, norm_cast)
coe_nonneg: ∀ {α : Type u} [inst : Zero α] [inst_1 : LE α] {a : α}, 0 a 0 a
coe_nonneg
] theorem
one_le_coe: ∀ [inst : LE α] {a : α}, 1 a 1 a
one_le_coe
[
LE: Type ?u.1217 → Type ?u.1217
LE
α: Type u
α
] {
a: α
a
:
α: Type u
α
} :
1: ?m.1224
1
≤ (
a: α
a
:
WithTop: Type ?u.1240 → Type ?u.1240
WithTop
α: Type u
α
) ↔
1: ?m.1622
1
a: α
a
:=
coe_le_coe: ∀ {α : Type ?u.1665} {a b : α} [inst : LE α], a b a b
coe_le_coe
#align with_top.one_le_coe
WithTop.one_le_coe: ∀ {α : Type u} [inst : One α] [inst_1 : LE α] {a : α}, 1 a 1 a
WithTop.one_le_coe
#align with_top.coe_nonneg
WithTop.coe_nonneg: ∀ {α : Type u} [inst : Zero α] [inst_1 : LE α] {a : α}, 0 a 0 a
WithTop.coe_nonneg
@[to_additive (attr := simp, norm_cast)
coe_le_zero: ∀ {α : Type u} [inst : Zero α] [inst_1 : LE α] {a : α}, a 0 a 0
coe_le_zero
] theorem
coe_le_one: ∀ {α : Type u} [inst : One α] [inst_1 : LE α] {a : α}, a 1 a 1
coe_le_one
[
LE: Type ?u.1976 → Type ?u.1976
LE
α: Type u
α
] {
a: α
a
:
α: Type u
α
} : (
a: α
a
:
WithTop: Type ?u.1983 → Type ?u.1983
WithTop
α: Type u
α
) ≤
1: ?m.2060
1
a: α
a
1: ?m.2376
1
:=
coe_le_coe: ∀ {α : Type ?u.2414} {a b : α} [inst : LE α], a b a b
coe_le_coe
#align with_top.coe_le_one
WithTop.coe_le_one: ∀ {α : Type u} [inst : One α] [inst_1 : LE α] {a : α}, a 1 a 1
WithTop.coe_le_one
#align with_top.coe_le_zero
WithTop.coe_le_zero: ∀ {α : Type u} [inst : Zero α] [inst_1 : LE α] {a : α}, a 0 a 0
WithTop.coe_le_zero
@[to_additive (attr := simp, norm_cast)
coe_pos: ∀ {α : Type u} [inst : Zero α] [inst_1 : LT α] {a : α}, 0 < a 0 < a
coe_pos
] theorem
one_lt_coe: ∀ {α : Type u} [inst : One α] [inst_1 : LT α] {a : α}, 1 < a 1 < a
one_lt_coe
[
LT: Type ?u.2719 → Type ?u.2719
LT
α: Type u
α
] {
a: α
a
:
α: Type u
α
} :
1: ?m.2726
1
< (
a: α
a
:
WithTop: Type ?u.2742 → Type ?u.2742
WithTop
α: Type u
α
) ↔
1: ?m.3124
1
<
a: α
a
:=
coe_lt_coe: ∀ {α : Type ?u.3167} [inst : LT α] {a b : α}, a < b a < b
coe_lt_coe
#align with_top.one_lt_coe
WithTop.one_lt_coe: ∀ {α : Type u} [inst : One α] [inst_1 : LT α] {a : α}, 1 < a 1 < a
WithTop.one_lt_coe
#align with_top.coe_pos
WithTop.coe_pos: ∀ {α : Type u} [inst : Zero α] [inst_1 : LT α] {a : α}, 0 < a 0 < a
WithTop.coe_pos
@[to_additive (attr := simp, norm_cast)
coe_lt_zero: ∀ {α : Type u} [inst : Zero α] [inst_1 : LT α] {a : α}, a < 0 a < 0
coe_lt_zero
] theorem
coe_lt_one: ∀ {α : Type u} [inst : One α] [inst_1 : LT α] {a : α}, a < 1 a < 1
coe_lt_one
[
LT: Type ?u.3472 → Type ?u.3472
LT
α: Type u
α
] {
a: α
a
:
α: Type u
α
} : (
a: α
a
:
WithTop: Type ?u.3479 → Type ?u.3479
WithTop
α: Type u
α
) <
1: ?m.3556
1
a: α
a
<
1: ?m.3872
1
:=
coe_lt_coe: ∀ {α : Type ?u.3910} [inst : LT α] {a b : α}, a < b a < b
coe_lt_coe
#align with_top.coe_lt_one
WithTop.coe_lt_one: ∀ {α : Type u} [inst : One α] [inst_1 : LT α] {a : α}, a < 1 a < 1
WithTop.coe_lt_one
#align with_top.coe_lt_zero
WithTop.coe_lt_zero: ∀ {α : Type u} [inst : Zero α] [inst_1 : LT α] {a : α}, a < 0 a < 0
WithTop.coe_lt_zero
@[
to_additive: ∀ {α : Type u} [inst : Zero α] {β : Type u_1} (f : αβ), map f 0 = ↑(f 0)
to_additive
(attr := simp)] protected theorem
map_one: ∀ {β : Type u_1} (f : αβ), map f 1 = ↑(f 1)
map_one
{
β: ?m.4217
β
} (
f: αβ
f
:
α: Type u
α
β: ?m.4217
β
) : (
1: ?m.4228
1
:
WithTop: Type ?u.4226 → Type ?u.4226
WithTop
α: Type u
α
).
map: {α : Type ?u.4270} → {β : Type ?u.4269} → (αβ) → WithTop αWithTop β
map
f: αβ
f
= (
f: αβ
f
1: ?m.4283
1
:
WithTop: Type ?u.4281 → Type ?u.4281
WithTop
β: ?m.4217
β
) :=
rfl: ∀ {α : Sort ?u.4380} {a : α}, a = a
rfl
#align with_top.map_one
WithTop.map_one: ∀ {α : Type u} [inst : One α] {β : Type u_1} (f : αβ), map f 1 = ↑(f 1)
WithTop.map_one
#align with_top.map_zero
WithTop.map_zero: ∀ {α : Type u} [inst : Zero α] {β : Type u_1} (f : αβ), map f 0 = ↑(f 0)
WithTop.map_zero
@[
to_additive: ∀ {α : Type u} [inst : Zero α] {a : α}, 0 = a a = 0
to_additive
(attr := simp, norm_cast)] theorem
one_eq_coe: ∀ {α : Type u} [inst : One α] {a : α}, 1 = a a = 1
one_eq_coe
{
a: α
a
:
α: Type u
α
} :
1: ?m.4465
1
= (
a: α
a
:
WithTop: Type ?u.4481 → Type ?u.4481
WithTop
α: Type u
α
) ↔
a: α
a
=
1: ?m.4602
1
:=
Trans.trans: ∀ {α : Sort ?u.4638} {β : Sort ?u.4637} {γ : Sort ?u.4636} {r : αβSort ?u.4641} {s : βγSort ?u.4640} {t : outParam (αγSort ?u.4639)} [self : Trans r s t] {a : α} {b : β} {c : γ}, r a bs b ct a c
Trans.trans
eq_comm: ∀ {α : Sort ?u.4692} {a b : α}, a = b b = a
eq_comm
coe_eq_one: ∀ {α : Type ?u.4703} [inst : One α] {a : α}, a = 1 a = 1
coe_eq_one
#align with_top.one_eq_coe
WithTop.one_eq_coe: ∀ {α : Type u} [inst : One α] {a : α}, 1 = a a = 1
WithTop.one_eq_coe
#align with_top.zero_eq_coe
WithTop.zero_eq_coe: ∀ {α : Type u} [inst : Zero α] {a : α}, 0 = a a = 0
WithTop.zero_eq_coe
@[
to_additive: ∀ {α : Type u} [inst : Zero α], 0
to_additive
(attr := simp)] theorem
top_ne_one: 1
top_ne_one
:
: ?m.5021
≠ (
1: ?m.5047
1
:
WithTop: Type ?u.5045 → Type ?u.5045
WithTop
α: Type u
α
) :=
fun.: = 1False
fun
fun.: = 1False
.
#align with_top.top_ne_one
WithTop.top_ne_one: ∀ {α : Type u} [inst : One α], 1
WithTop.top_ne_one
#align with_top.top_ne_zero
WithTop.top_ne_zero: ∀ {α : Type u} [inst : Zero α], 0
WithTop.top_ne_zero
@[
to_additive: ∀ {α : Type u} [inst : Zero α], 0
to_additive
(attr := simp)] theorem
one_ne_top: 1
one_ne_top
: (
1: ?m.5271
1
:
WithTop: Type ?u.5269 → Type ?u.5269
WithTop
α: Type u
α
) ≠
: ?m.5313
:=
fun.: 1 = False
fun
fun.: 1 = False
.
#align with_top.one_ne_top
WithTop.one_ne_top: ∀ {α : Type u} [inst : One α], 1
WithTop.one_ne_top
#align with_top.zero_ne_top
WithTop.zero_ne_top: ∀ {α : Type u} [inst : Zero α], 0
WithTop.zero_ne_top
instance
zeroLEOneClass: {α : Type u} → [inst : One α] → [inst_1 : Zero α] → [inst_2 : LE α] → [inst_3 : ZeroLEOneClass α] → ZeroLEOneClass (WithTop α)
zeroLEOneClass
[
Zero: Type ?u.5504 → Type ?u.5504
Zero
α: Type u
α
] [
LE: Type ?u.5507 → Type ?u.5507
LE
α: Type u
α
] [
ZeroLEOneClass: (α : Type ?u.5510) → [inst : Zero α] → [inst : One α] → [inst : LE α] → Type
ZeroLEOneClass
α: Type u
α
] :
ZeroLEOneClass: (α : Type ?u.5549) → [inst : Zero α] → [inst : One α] → [inst : LE α] → Type
ZeroLEOneClass
(
WithTop: Type ?u.5550 → Type ?u.5550
WithTop
α: Type u
α
) := ⟨
some_le_some: ∀ {α : Type ?u.5948} {a b : α} [inst : LE α], Option.some a Option.some b a b
some_le_some
.
2: ∀ {a b : Prop}, (a b) → ba
2
zero_le_one: ∀ {α : Type ?u.5981} [inst : Zero α] [inst_1 : One α] [inst_2 : LE α] [inst_3 : ZeroLEOneClass α], 0 1
zero_le_one
end One section Add variable [
Add: Type ?u.14116 → Type ?u.14116
Add
α: Type u
α
] {
a: WithTop α
a
b: WithTop α
b
c: WithTop α
c
d: WithTop α
d
:
WithTop: Type ?u.13130 → Type ?u.13130
WithTop
α: Type u
α
} {
x: α
x
y: α
y
:
α: Type u
α
} instance
add: Add (WithTop α)
add
:
Add: Type ?u.6522 → Type ?u.6522
Add
(
WithTop: Type ?u.6523 → Type ?u.6523
WithTop
α: Type u
α
) := ⟨
Option.map₂: {α : Type ?u.6532} → {β : Type ?u.6531} → {γ : Type ?u.6530} → (αβγ) → Option αOption βOption γ
Option.map₂
(· + ·): ααα
(· + ·)
#align with_top.has_add
WithTop.add: {α : Type u} → [inst : Add α] → Add (WithTop α)
WithTop.add
@[norm_cast] theorem
coe_add: ∀ {α : Type u} [inst : Add α] {x y : α}, ↑(x + y) = x + y
coe_add
: ((
x: α
x
+
y: α
y
:
α: Type u
α
) :
WithTop: Type ?u.6690 → Type ?u.6690
WithTop
α: Type u
α
) =
x: α
x
+
y: α
y
:=
rfl: ∀ {α : Sort ?u.7072} {a : α}, a = a
rfl
#align with_top.coe_add
WithTop.coe_add: ∀ {α : Type u} [inst : Add α] {x y : α}, ↑(x + y) = x + y
WithTop.coe_add
section deprecated set_option linter.deprecated false @[norm_cast, deprecated] theorem
coe_bit0: ↑(bit0 x) = bit0 x
coe_bit0
: ((
bit0: {α : Type ?u.7224} → [inst : Add α] → αα
bit0
x: α
x
:
α: Type u
α
) :
WithTop: Type ?u.7222 → Type ?u.7222
WithTop
α: Type u
α
) = (
bit0: {α : Type ?u.7324} → [inst : Add α] → αα
bit0
x: α
x
:
WithTop: Type ?u.7323 → Type ?u.7323
WithTop
α: Type u
α
) :=
rfl: ∀ {α : Sort ?u.7406} {a : α}, a = a
rfl
#align with_top.coe_bit0
WithTop.coe_bit0: ∀ {α : Type u} [inst : Add α] {x : α}, ↑(bit0 x) = bit0 x
WithTop.coe_bit0
@[norm_cast, deprecated] theorem
coe_bit1: ∀ [inst : One α] {a : α}, ↑(bit1 a) = bit1 a
coe_bit1
[
One: Type ?u.7518 → Type ?u.7518
One
α: Type u
α
] {
a: α
a
:
α: Type u
α
} : ((
bit1: {α : Type ?u.7527} → [inst : One α] → [inst : Add α] → αα
bit1
a: α
a
:
α: Type u
α
) :
WithTop: Type ?u.7525 → Type ?u.7525
WithTop
α: Type u
α
) = (
bit1: {α : Type ?u.7667} → [inst : One α] → [inst : Add α] → αα
bit1
a: α
a
:
WithTop: Type ?u.7666 → Type ?u.7666
WithTop
α: Type u
α
) :=
rfl: ∀ {α : Sort ?u.7802} {a : α}, a = a
rfl
#align with_top.coe_bit1
WithTop.coe_bit1: ∀ {α : Type u} [inst : Add α] [inst_1 : One α] {a : α}, ↑(bit1 a) = bit1 a
WithTop.coe_bit1
end deprecated @[simp] theorem
top_add: ∀ {α : Type u} [inst : Add α] (a : WithTop α), + a =
top_add
(
a: WithTop α
a
:
WithTop: Type ?u.7939 → Type ?u.7939
WithTop
α: Type u
α
) :
: ?m.7947
+
a: WithTop α
a
=
: ?m.7971
:=
rfl: ∀ {α : Sort ?u.8065} {a : α}, a = a
rfl
#align with_top.top_add
WithTop.top_add: ∀ {α : Type u} [inst : Add α] (a : WithTop α), + a =
WithTop.top_add
@[simp] theorem
add_top: ∀ {α : Type u} [inst : Add α] (a : WithTop α), a + =
add_top
(
a: WithTop α
a
:
WithTop: Type ?u.8124 → Type ?u.8124
WithTop
α: Type u
α
) :
a: WithTop α
a
+
: ?m.8132
=
: ?m.8156
:=

Goals accomplished! 🐙
α: Type u

β: Type v

inst✝: Add α

a✝, b, c, d: WithTop α

x, y: α

a: WithTop α


α: Type u

β: Type v

inst✝: Add α

a, b, c, d: WithTop α

x, y: α


none
none + =
α: Type u

β: Type v

inst✝: Add α

a, b, c, d: WithTop α

x, y, val✝: α


some
α: Type u

β: Type v

inst✝: Add α

a✝, b, c, d: WithTop α

x, y: α

a: WithTop α


α: Type u

β: Type v

inst✝: Add α

a, b, c, d: WithTop α

x, y: α


none
none + =
α: Type u

β: Type v

inst✝: Add α

a, b, c, d: WithTop α

x, y, val✝: α


some
α: Type u

β: Type v

inst✝: Add α

a✝, b, c, d: WithTop α

x, y: α

a: WithTop α



Goals accomplished! 🐙
#align with_top.add_top
WithTop.add_top: ∀ {α : Type u} [inst : Add α] (a : WithTop α), a + =
WithTop.add_top
@[simp] theorem
add_eq_top: ∀ {α : Type u} [inst : Add α] {a b : WithTop α}, a + b = a = b =
add_eq_top
:
a: WithTop α
a
+
b: WithTop α
b
=
: ?m.8387
a: WithTop α
a
=
: ?m.8471
b: WithTop α
b
=
: ?m.8497
:=

Goals accomplished! 🐙
α: Type u

β: Type v

inst✝: Add α

a, b, c, d: WithTop α

x, y: α


a + b = a = b =
α: Type u

β: Type v

inst✝: Add α

b, c, d: WithTop α

x, y: α


none
none + b = none = b =
α: Type u

β: Type v

inst✝: Add α

b, c, d: WithTop α

x, y, val✝: α


some
Option.some val✝ + b = Option.some val✝ = b =
α: Type u

β: Type v

inst✝: Add α

a, b, c, d: WithTop α

x, y: α


a + b = a = b =
α: Type u

β: Type v

inst✝: Add α

b, c, d: WithTop α

x, y: α


none
none + b = none = b =
α: Type u

β: Type v

inst✝: Add α

b, c, d: WithTop α

x, y, val✝: α


some
Option.some val✝ + b = Option.some val✝ = b =
α: Type u

β: Type v

inst✝: Add α

a, b, c, d: WithTop α

x, y: α


a + b = a = b =
α: Type u

β: Type v

inst✝: Add α

c, d: WithTop α

x, y: α


none.none
none + none = none = none =
α: Type u

β: Type v

inst✝: Add α

c, d: WithTop α

x, y, val✝: α


none.some
none + Option.some val✝ = none = Option.some val✝ =
α: Type u

β: Type v

inst✝: Add α

a, b, c, d: WithTop α

x, y: α


a + b = a = b =
α: Type u

β: Type v

inst✝: Add α

c, d: WithTop α

x, y: α


none.none
none + none = none = none =
α: Type u

β: Type v

inst✝: Add α

c, d: WithTop α

x, y, val✝: α


none.some
none + Option.some val✝ = none = Option.some val✝ =
α: Type u

β: Type v

inst✝: Add α

c, d: WithTop α

x, y, val✝: α


some.none
Option.some val✝ + none = Option.some val✝ = none =
α: Type u

β: Type v

inst✝: Add α

c, d: WithTop α

x, y, val✝¹, val✝: α


some.some
Option.some val✝¹ + Option.some val✝ = Option.some val✝¹ = Option.some val✝ =
α: Type u

β: Type v

inst✝: Add α

a, b, c, d: WithTop α

x, y: α


a + b = a = b =

Goals accomplished! 🐙
#align with_top.add_eq_top
WithTop.add_eq_top: ∀ {α : Type u} [inst : Add α] {a b : WithTop α}, a + b = a = b =
WithTop.add_eq_top
theorem
add_ne_top: a + b a b
add_ne_top
:
a: WithTop α
a
+
b: WithTop α
b
: ?m.9327
a: WithTop α
a
: ?m.9351
b: WithTop α
b
: ?m.9367
:=
add_eq_top: ∀ {α : Type ?u.9381} [inst : Add α] {a b : WithTop α}, a + b = a = b =
add_eq_top
.
not: ∀ {a b : Prop}, (a b) → (¬a ¬b)
not
.
trans: ∀ {a b c : Prop}, (a b) → (b c) → (a c)
trans
not_or: ∀ {p q : Prop}, ¬(p q) ¬p ¬q
not_or
#align with_top.add_ne_top
WithTop.add_ne_top: ∀ {α : Type u} [inst : Add α] {a b : WithTop α}, a + b a b
WithTop.add_ne_top
theorem
add_lt_top: ∀ {α : Type u} [inst : Add α] [inst_1 : LT α] {a b : WithTop α}, a + b < a < b <
add_lt_top
[
LT: Type ?u.9464 → Type ?u.9464
LT
α: Type u
α
] {
a: WithTop α
a
b: WithTop α
b
:
WithTop: Type ?u.9467 → Type ?u.9467
WithTop
α: Type u
α
} :
a: WithTop α
a
+
b: WithTop α
b
<
: ?m.9478
a: WithTop α
a
<
: ?m.9823
b: WithTop α
b
<
: ?m.9850
:=

Goals accomplished! 🐙
α: Type u

β: Type v

inst✝¹: Add α

a✝, b✝, c, d: WithTop α

x, y: α

inst✝: LT α

a, b: WithTop α


a + b < a < b <
α: Type u

β: Type v

inst✝¹: Add α

a✝, b✝, c, d: WithTop α

x, y: α

inst✝: LT α

a, b: WithTop α


a + b < a < b <
α: Type u

β: Type v

inst✝¹: Add α

a✝, b✝, c, d: WithTop α

x, y: α

inst✝: LT α

a, b: WithTop α


α: Type u

β: Type v

inst✝¹: Add α

a✝, b✝, c, d: WithTop α

x, y: α

inst✝: LT α

a, b: WithTop α


a + b < a < b <

Goals accomplished! 🐙

Goals accomplished! 🐙
#align with_top.add_lt_top
WithTop.add_lt_top: ∀ {α : Type u} [inst : Add α] [inst_1 : LT α] {a b : WithTop α}, a + b < a < b <
WithTop.add_lt_top
theorem
add_eq_coe: ∀ {α : Type u} [inst : Add α] {a b : WithTop α} {c : α}, a + b = c a' b', a' = a b' = b a' + b' = c
add_eq_coe
: ∀ {
a: WithTop α
a
b: WithTop α
b
:
WithTop: Type ?u.10258 → Type ?u.10258
WithTop
α: Type u
α
} {
c: α
c
:
α: Type u
α
},
a: WithTop α
a
+
b: WithTop α
b
=
c: α
c
↔ ∃
a': α
a'
b': α
b'
:
α: Type u
α
, ↑
a': α
a'
=
a: WithTop α
a
∧ ↑
b': α
b'
=
b: WithTop α
b
a': α
a'
+
b': α
b'
=
c: α
c
|
none: {α : Type ?u.10623} → Option α
none
,
b: WithTop α
b
,
c: α
c
=>

Goals accomplished! 🐙
α: Type u

β: Type v

inst✝: Add α

a, b✝, c✝, d: WithTop α

x, y: α

b: WithTop α

c: α


none + b = c a' b', a' = none b' = b a' + b' = c

Goals accomplished! 🐙
|
Option.some: {α : Type ?u.10657} → αOption α
Option.some
a: α
a
,
none: {α : Type ?u.10661} → Option α
none
,
c: α
c
=>

Goals accomplished! 🐙
α: Type u

β: Type v

inst✝: Add α

a✝, b, c✝, d: WithTop α

x, y, a, c: α


Option.some a + none = c a' b', a' = Option.some a b' = none a' + b' = c

Goals accomplished! 🐙
|
Option.some: {α : Type ?u.10695} → αOption α
Option.some
a: α
a
,
Option.some: {α : Type ?u.10698} → αOption α
Option.some
b: α
b
,
c: α
c
=>

Goals accomplished! 🐙
α: Type u

β: Type v

inst✝: Add α

a✝, b✝, c✝, d: WithTop α

x, y, a, b, c: α


Option.some a + Option.some b = c a' b', a' = Option.some a b' = Option.some b a' + b' = c

Goals accomplished! 🐙
#align with_top.add_eq_coe
WithTop.add_eq_coe: ∀ {α : Type u} [inst : Add α] {a b : WithTop α} {c : α}, a + b = c a' b', a' = a b' = b a' + b' = c
WithTop.add_eq_coe
-- Porting note: simp can already prove this. -- @[simp] theorem
add_coe_eq_top_iff: ∀ {α : Type u} [inst : Add α] {x : WithTop α} {y : α}, x + y = x =
add_coe_eq_top_iff
{
x: WithTop α
x
:
WithTop: Type ?u.13140 → Type ?u.13140
WithTop
α: Type u
α
} {
y: α
y
:
α: Type u
α
} :
x: WithTop α
x
+
y: α
y
=
: ?m.13150
x: WithTop α
x
=
: ?m.13362
:=

Goals accomplished! 🐙
α: Type u

β: Type v

inst✝: Add α

a, b, c, d: WithTop α

x✝, y✝: α

x: WithTop α

y: α


x + y = x =
α: Type u

β: Type v

inst✝: Add α

a, b, c, d: WithTop α

x, y✝, y: α


top
+ y = =
α: Type u

β: Type v

inst✝: Add α

a, b, c, d: WithTop α

x, y✝, y, a✝: α


coe
a✝ + y = a✝ =
α: Type u

β: Type v

inst✝: Add α

a, b, c, d: WithTop α

x✝, y✝: α

x: WithTop α

y: α


x + y = x =
α: Type u

β: Type v

inst✝: Add α

a, b, c, d: WithTop α

x, y✝, y: α


top
+ y = =
α: Type u

β: Type v

inst✝: Add α

a, b, c, d: WithTop α

x, y✝, y, a✝: α


coe
a✝ + y = a✝ =
α: Type u

β: Type v

inst✝: Add α

a, b, c, d: WithTop α

x✝, y✝: α

x: WithTop α

y: α


x + y = x =

Goals accomplished! 🐙
#align with_top.add_coe_eq_top_iff
WithTop.add_coe_eq_top_iff: ∀ {α : Type u} [inst : Add α] {x : WithTop α} {y : α}, x + y = x =
WithTop.add_coe_eq_top_iff
-- Porting note: simp can already prove this. -- @[simp] theorem
coe_add_eq_top_iff: ∀ {y : WithTop α}, x + y = y =
coe_add_eq_top_iff
{
y: WithTop α
y
:
WithTop: Type ?u.13665 → Type ?u.13665
WithTop
α: Type u
α
} : ↑
x: α
x
+
y: WithTop α
y
=
: ?m.13676
y: WithTop α
y
=
: ?m.13833
:=

Goals accomplished! 🐙
α: Type u

β: Type v

inst✝: Add α

a, b, c, d: WithTop α

x, y✝: α

y: WithTop α


x + y = y =
α: Type u

β: Type v

inst✝: Add α

a, b, c, d: WithTop α

x, y: α


top
x + = =
α: Type u

β: Type v

inst✝: Add α

a, b, c, d: WithTop α

x, y, a✝: α


coe
x + a✝ = a✝ =
α: Type u

β: Type v

inst✝: Add α

a, b, c, d: WithTop α

x, y✝: α

y: WithTop α


x + y = y =
α: Type u

β: Type v

inst✝: Add α

a, b, c, d: WithTop α

x, y: α


top
x + = =
α: Type u

β: Type v

inst✝: Add α

a, b, c, d: WithTop α

x, y, a✝: α


coe
x + a✝ = a✝ =
α: Type u

β: Type v

inst✝: Add α

a, b, c, d: WithTop α

x, y✝: α

y: WithTop α


x + y = y =

Goals accomplished! 🐙
#align with_top.coe_add_eq_top_iff
WithTop.coe_add_eq_top_iff: ∀ {α : Type u} [inst : Add α] {x : α} {y : WithTop α}, x + y = y =
WithTop.coe_add_eq_top_iff
instance
covariantClass_add_le: ∀ [inst : LE α] [inst_1 : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1], CovariantClass (WithTop α) (WithTop α) (fun x x_1 => x + x_1) fun x x_1 => x x_1
covariantClass_add_le
[
LE: Type ?u.14135 → Type ?u.14135
LE
α: Type u
α
] [
CovariantClass: (M : Type ?u.14139) → (N : Type ?u.14138) → (MNN) → (NNProp) → Prop
CovariantClass
α: Type u
α
α: Type u
α
(· + ·): ααα
(· + ·)
(· ≤ ·): ααProp
(· ≤ ·)
] :
CovariantClass: (M : Type ?u.14207) → (N : Type ?u.14206) → (MNN) → (NNProp) → Prop
CovariantClass
(
WithTop: Type ?u.14208 → Type ?u.14208
WithTop
α: Type u
α
) (
WithTop: Type ?u.14209 → Type ?u.14209
WithTop
α: Type u
α
)
(· + ·): WithTop αWithTop αWithTop α
(· + ·)
(· ≤ ·): WithTop αWithTop αProp
(· ≤ ·)
:= ⟨fun
a: ?m.14572
a
b: ?m.14575
b
c: ?m.14578
c
h: ?m.14581
h
=>

Goals accomplished! 🐙
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

a, b, c: WithTop α

h: b c


a + b a + c
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

b, c: WithTop α

h: b c


none
none + b none + c
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

b, c: WithTop α

h: b c

val✝: α


some
Option.some val✝ + b Option.some val✝ + c
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

a, b, c: WithTop α

h: b c


a + b a + c
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

b, c: WithTop α

h: b c


none
none + b none + c
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

b, c: WithTop α

h: b c

val✝: α


some
Option.some val✝ + b Option.some val✝ + c
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

a, b, c: WithTop α

h: b c


a + b a + c
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

b: WithTop α

h: b none


none.none
none + b none + none
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

b: WithTop α

val✝: α

h: b Option.some val✝


none.some
none + b none + Option.some val✝
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

a, b, c: WithTop α

h: b c


a + b a + c
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

b: WithTop α

h: b none


none.none
none + b none + none
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

b: WithTop α

val✝: α

h: b Option.some val✝


none.some
none + b none + Option.some val✝
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

b: WithTop α

val✝: α

h: b none


some.none
Option.some val✝ + b Option.some val✝ + none
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

b: WithTop α

val✝¹, val✝: α

h: b Option.some val✝


some.some
Option.some val✝¹ + b Option.some val✝¹ + Option.some val✝
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

a, b, c: WithTop α

h: b c


a + b a + c
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

b: WithTop α

val✝: α

h: b none


some.none
Option.some val✝ + b Option.some val✝ + none

Goals accomplished! 🐙
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

a, b, c: WithTop α

h: b c


a + b a + c
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

val✝¹, val✝, b: α

right✝: b val✝

h: b Option.some val✝


some.some.intro.intro
Option.some val✝¹ + b Option.some val✝¹ + Option.some val✝
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

a, b, c: WithTop α

h: b c


a + b a + c

Goals accomplished! 🐙
#align with_top.covariant_class_add_le
WithTop.covariantClass_add_le: ∀ {α : Type u} [inst : Add α] [inst_1 : LE α] [inst_2 : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1], CovariantClass (WithTop α) (WithTop α) (fun x x_1 => x + x_1) fun x x_1 => x x_1
WithTop.covariantClass_add_le
instance
covariantClass_swap_add_le: ∀ [inst : LE α] [inst_1 : CovariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1], CovariantClass (WithTop α) (WithTop α) (swap fun x x_1 => x + x_1) fun x x_1 => x x_1
covariantClass_swap_add_le
[
LE: Type ?u.15658 → Type ?u.15658
LE
α: Type u
α
] [
CovariantClass: (M : Type ?u.15662) → (N : Type ?u.15661) → (MNN) → (NNProp) → Prop
CovariantClass
α: Type u
α
α: Type u
α
(
swap: {α : Sort ?u.15665} → {β : Sort ?u.15664} → {φ : αβSort ?u.15663} → ((x : α) → (y : β) → φ x y) → (y : β) → (x : α) → φ x y
swap
(· + ·): ααα
(· + ·)
)
(· ≤ ·): ααProp
(· ≤ ·)
] :
CovariantClass: (M : Type ?u.15752) → (N : Type ?u.15751) → (MNN) → (NNProp) → Prop
CovariantClass
(
WithTop: Type ?u.15753 → Type ?u.15753
WithTop
α: Type u
α
) (
WithTop: Type ?u.15754 → Type ?u.15754
WithTop
α: Type u
α
) (
swap: {α : Sort ?u.15757} → {β : Sort ?u.15756} → {φ : αβSort ?u.15755} → ((x : α) → (y : β) → φ x y) → (y : β) → (x : α) → φ x y
swap
(· + ·): WithTop αWithTop αWithTop α
(· + ·)
)
(· ≤ ·): WithTop αWithTop αProp
(· ≤ ·)
:= ⟨fun
a: ?m.16135
a
b: ?m.16138
b
c: ?m.16141
c
h: ?m.16144
h
=>

Goals accomplished! 🐙
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

a, b, c: WithTop α

h: b c


swap (fun x x_1 => x + x_1) a b swap (fun x x_1 => x + x_1) a c
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

b, c: WithTop α

h: b c


none
swap (fun x x_1 => x + x_1) none b swap (fun x x_1 => x + x_1) none c
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

b, c: WithTop α

h: b c

val✝: α


some
swap (fun x x_1 => x + x_1) (Option.some val✝) b swap (fun x x_1 => x + x_1) (Option.some val✝) c
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

a, b, c: WithTop α

h: b c


swap (fun x x_1 => x + x_1) a b swap (fun x x_1 => x + x_1) a c
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

b, c: WithTop α

h: b c


none
swap (fun x x_1 => x + x_1) none b swap (fun x x_1 => x + x_1) none c
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

b, c: WithTop α

h: b c

val✝: α


some
swap (fun x x_1 => x + x_1) (Option.some val✝) b swap (fun x x_1 => x + x_1) (Option.some val✝) c
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

a, b, c: WithTop α

h: b c


swap (fun x x_1 => x + x_1) a b swap (fun x x_1 => x + x_1) a c
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

b: WithTop α

h: b none


none.none
swap (fun x x_1 => x + x_1) none b swap (fun x x_1 => x + x_1) none none
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

b: WithTop α

val✝: α

h: b Option.some val✝


none.some
swap (fun x x_1 => x + x_1) none b swap (fun x x_1 => x + x_1) none (Option.some val✝)
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

a, b, c: WithTop α

h: b c


swap (fun x x_1 => x + x_1) a b swap (fun x x_1 => x + x_1) a c
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

b: WithTop α

h: b none


none.none
swap (fun x x_1 => x + x_1) none b swap (fun x x_1 => x + x_1) none none
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

b: WithTop α

val✝: α

h: b Option.some val✝


none.some
swap (fun x x_1 => x + x_1) none b swap (fun x x_1 => x + x_1) none (Option.some val✝)
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

b: WithTop α

val✝: α

h: b none


some.none
swap (fun x x_1 => x + x_1) (Option.some val✝) b swap (fun x x_1 => x + x_1) (Option.some val✝) none
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

b: WithTop α

val✝¹, val✝: α

h: b Option.some val✝


some.some
swap (fun x x_1 => x + x_1) (Option.some val✝¹) b swap (fun x x_1 => x + x_1) (Option.some val✝¹) (Option.some val✝)
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

a, b, c: WithTop α

h: b c


swap (fun x x_1 => x + x_1) a b swap (fun x x_1 => x + x_1) a c
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

b: WithTop α

h: b none


none.none
swap (fun x x_1 => x + x_1) none b swap (fun x x_1 => x + x_1) none none

Goals accomplished! 🐙
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

a, b, c: WithTop α

h: b c


swap (fun x x_1 => x + x_1) a b swap (fun x x_1 => x + x_1) a c
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

val✝¹, val✝, b: α

right✝: b val✝

h: b Option.some val✝


some.some.intro.intro
swap (fun x x_1 => x + x_1) (Option.some val✝¹) b swap (fun x x_1 => x + x_1) (Option.some val✝¹) (Option.some val✝)
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: CovariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

a, b, c: WithTop α

h: b c


swap (fun x x_1 => x + x_1) a b swap (fun x x_1 => x + x_1) a c

Goals accomplished! 🐙
#align with_top.covariant_class_swap_add_le
WithTop.covariantClass_swap_add_le: ∀ {α : Type u} [inst : Add α] [inst_1 : LE α] [inst_2 : CovariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1], CovariantClass (WithTop α) (WithTop α) (swap fun x x_1 => x + x_1) fun x x_1 => x x_1
WithTop.covariantClass_swap_add_le
instance
contravariantClass_add_lt: ∀ [inst : LT α] [inst_1 : ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1], ContravariantClass (WithTop α) (WithTop α) (fun x x_1 => x + x_1) fun x x_1 => x < x_1
contravariantClass_add_lt
[
LT: Type ?u.17227 → Type ?u.17227
LT
α: Type u
α
] [
ContravariantClass: (M : Type ?u.17231) → (N : Type ?u.17230) → (MNN) → (NNProp) → Prop
ContravariantClass
α: Type u
α
α: Type u
α
(· + ·): ααα
(· + ·)
(· < ·): ααProp
(· < ·)
] :
ContravariantClass: (M : Type ?u.17299) → (N : Type ?u.17298) → (MNN) → (NNProp) → Prop
ContravariantClass
(
WithTop: Type ?u.17300 → Type ?u.17300
WithTop
α: Type u
α
) (
WithTop: Type ?u.17301 → Type ?u.17301
WithTop
α: Type u
α
)
(· + ·): WithTop αWithTop αWithTop α
(· + ·)
(· < ·): WithTop αWithTop αProp
(· < ·)
:= ⟨fun
a: ?m.17664
a
b: ?m.17667
b
c: ?m.17670
c
h: ?m.17673
h
=>

Goals accomplished! 🐙
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

a, b, c: WithTop α

h: a + b < a + c


b < c
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

b, c: WithTop α

h: + b < + c


top
b < c
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

b, c: WithTop α

a✝: α

h: a✝ + b < a✝ + c


coe
b < c
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

b, c: WithTop α

h: + b < + c


top
b < c
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

b, c: WithTop α

a✝: α

h: a✝ + b < a✝ + c


coe
b < c
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

a, b, c: WithTop α

h: a + b < a + c


b < c
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

b, c: WithTop α

h: + b < + c


top
b < c
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

b, c: WithTop α

h: + b < + c


top
b < c
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

b, c: WithTop α

a✝: α

h: a✝ + b < a✝ + c


coe
b < c

Goals accomplished! 🐙
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

a, b, c: WithTop α

h: a + b < a + c


b < c
α: Type u

β: Type v

inst✝²: Add α

a, b, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

c: WithTop α

a✝: α

h: a✝ + < a✝ + c


coe.top
< c
α: Type u

β: Type v

inst✝²: Add α

a, b, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

c: WithTop α

a✝¹, a✝: α

h: a✝¹ + a✝ < a✝¹ + c


coe.coe
a✝ < c
α: Type u

β: Type v

inst✝²: Add α

a, b, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

c: WithTop α

a✝: α

h: a✝ + < a✝ + c


coe.top
< c
α: Type u

β: Type v

inst✝²: Add α

a, b, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

c: WithTop α

a✝¹, a✝: α

h: a✝¹ + a✝ < a✝¹ + c


coe.coe
a✝ < c
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

a, b, c: WithTop α

h: a + b < a + c


b < c
α: Type u

β: Type v

inst✝²: Add α

a, b, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

c: WithTop α

a✝: α

h: a✝ + < a✝ + c


coe.top
< c
α: Type u

β: Type v

inst✝²: Add α

a, b, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

c: WithTop α

a✝: α

h: a✝ + < a✝ + c


coe.top
< c
α: Type u

β: Type v

inst✝²: Add α

a, b, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

c: WithTop α

a✝¹, a✝: α

h: a✝¹ + a✝ < a✝¹ + c


coe.coe
a✝ < c

Goals accomplished! 🐙
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

a, b, c: WithTop α

h: a + b < a + c


b < c
α: Type u

β: Type v

inst✝²: Add α

a, b, c, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

a✝¹, a✝: α

h: a✝¹ + a✝ < a✝¹ +


coe.coe.top
a✝ <
α: Type u

β: Type v

inst✝²: Add α

a, b, c, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

a✝², a✝¹, a✝: α

h: a✝² + a✝¹ < a✝² + a✝


coe.coe.coe
a✝¹ < a✝
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

a, b, c: WithTop α

h: a + b < a + c


b < c
α: Type u

β: Type v

inst✝²: Add α

a, b, c, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

a✝¹, a✝: α

h: a✝¹ + a✝ < a✝¹ +


coe.coe.top
a✝ <
α: Type u

β: Type v

inst✝²: Add α

a, b, c, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

a✝¹, a✝: α

h: a✝¹ + a✝ < a✝¹ +


coe.coe.top
a✝ <
α: Type u

β: Type v

inst✝²: Add α

a, b, c, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

a✝², a✝¹, a✝: α

h: a✝² + a✝¹ < a✝² + a✝


coe.coe.coe
a✝¹ < a✝

Goals accomplished! 🐙
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

a, b, c: WithTop α

h: a + b < a + c


b < c
α: Type u

β: Type v

inst✝²: Add α

a, b, c, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

a✝², a✝¹, a✝: α

h: a✝² + a✝¹ < a✝² + a✝


coe.coe.coe
a✝¹ < a✝
α: Type u

β: Type v

inst✝²: Add α

a, b, c, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

a✝², a✝¹, a✝: α

h: a✝² + a✝¹ < a✝² + a✝


coe.coe.coe
a✝¹ < a✝

Goals accomplished! 🐙
#align with_top.contravariant_class_add_lt
WithTop.contravariantClass_add_lt: ∀ {α : Type u} [inst : Add α] [inst_1 : LT α] [inst_2 : ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1], ContravariantClass (WithTop α) (WithTop α) (fun x x_1 => x + x_1) fun x x_1 => x < x_1
WithTop.contravariantClass_add_lt
instance
contravariantClass_swap_add_lt: ∀ {α : Type u} [inst : Add α] [inst_1 : LT α] [inst_2 : ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1], ContravariantClass (WithTop α) (WithTop α) (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1
contravariantClass_swap_add_lt
[
LT: Type ?u.18091 → Type ?u.18091
LT
α: Type u
α
] [
ContravariantClass: (M : Type ?u.18095) → (N : Type ?u.18094) → (MNN) → (NNProp) → Prop
ContravariantClass
α: Type u
α
α: Type u
α
(
swap: {α : Sort ?u.18098} → {β : Sort ?u.18097} → {φ : αβSort ?u.18096} → ((x : α) → (y : β) → φ x y) → (y : β) → (x : α) → φ x y
swap
(· + ·): ααα
(· + ·)
)
(· < ·): ααProp
(· < ·)
] :
ContravariantClass: (M : Type ?u.18185) → (N : Type ?u.18184) → (MNN) → (NNProp) → Prop
ContravariantClass
(
WithTop: Type ?u.18186 → Type ?u.18186
WithTop
α: Type u
α
) (
WithTop: Type ?u.18187 → Type ?u.18187
WithTop
α: Type u
α
) (
swap: {α : Sort ?u.18190} → {β : Sort ?u.18189} → {φ : αβSort ?u.18188} → ((x : α) → (y : β) → φ x y) → (y : β) → (x : α) → φ x y
swap
(· + ·): WithTop αWithTop αWithTop α
(· + ·)
)
(· < ·): WithTop αWithTop αProp
(· < ·)
:= ⟨fun
a: ?m.18568
a
b: ?m.18571
b
c: ?m.18574
c
h: ?m.18577
h
=>

Goals accomplished! 🐙
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1

a, b, c: WithTop α

h: swap (fun x x_1 => x + x_1) a b < swap (fun x x_1 => x + x_1) a c


b < c
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1

b, c: WithTop α

h: swap (fun x x_1 => x + x_1) none b < swap (fun x x_1 => x + x_1) none c


none
b < c
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1

b, c: WithTop α

val✝: α

h: swap (fun x x_1 => x + x_1) (Option.some val✝) b < swap (fun x x_1 => x + x_1) (Option.some val✝) c


some
b < c
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1

a, b, c: WithTop α

h: swap (fun x x_1 => x + x_1) a b < swap (fun x x_1 => x + x_1) a c


b < c
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1

b, c: WithTop α

h: swap (fun x x_1 => x + x_1) none b < swap (fun x x_1 => x + x_1) none c


none
b < c
α: Type u

β: Type v

inst✝²: Add α

a, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1

b, c: WithTop α

val✝: α

h: swap (fun x x_1 => x + x_1) (Option.some val✝) b < swap (fun x x_1 => x + x_1) (Option.some val✝) c


some
b < c
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1

a, b, c: WithTop α

h: swap (fun x x_1 => x + x_1) a b < swap (fun x x_1 => x + x_1) a c


b < c
α: Type u

β: Type v

inst✝²: Add α

a, b, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1

c: WithTop α

val✝: α

h: swap (fun x x_1 => x + x_1) (Option.some val✝) none < swap (fun x x_1 => x + x_1) (Option.some val✝) c


some.none
none < c
α: Type u

β: Type v

inst✝²: Add α

a, b, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1

c: WithTop α

val✝¹, val✝: α

h: swap (fun x x_1 => x + x_1) (Option.some val✝¹) (Option.some val✝) < swap (fun x x_1 => x + x_1) (Option.some val✝¹) c


some.some
Option.some val✝ < c
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1

a, b, c: WithTop α

h: swap (fun x x_1 => x + x_1) a b < swap (fun x x_1 => x + x_1) a c


b < c
α: Type u

β: Type v

inst✝²: Add α

a, b, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1

c: WithTop α

h: swap (fun x x_1 => x + x_1) none none < swap (fun x x_1 => x + x_1) none c


none.none
none < c
α: Type u

β: Type v

inst✝²: Add α

a, b, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1

c: WithTop α

val✝: α

h: swap (fun x x_1 => x + x_1) none (Option.some val✝) < swap (fun x x_1 => x + x_1) none c


none.some
Option.some val✝ < c
α: Type u

β: Type v

inst✝²: Add α

a, b, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1

c: WithTop α

val✝: α

h: swap (fun x x_1 => x + x_1) (Option.some val✝) none < swap (fun x x_1 => x + x_1) (Option.some val✝) c


some.none
none < c
α: Type u

β: Type v

inst✝²: Add α

a, b, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1

c: WithTop α

val✝¹, val✝: α

h: swap (fun x x_1 => x + x_1) (Option.some val✝¹) (Option.some val✝) < swap (fun x x_1 => x + x_1) (Option.some val✝¹) c


some.some
Option.some val✝ < c
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1

a, b, c: WithTop α

h: swap (fun x x_1 => x + x_1) a b < swap (fun x x_1 => x + x_1) a c


b < c
α: Type u

β: Type v

inst✝²: Add α

a, b, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1

c: WithTop α

val✝¹, val✝: α

h: swap (fun x x_1 => x + x_1) (Option.some val✝¹) (Option.some val✝) < swap (fun x x_1 => x + x_1) (Option.some val✝¹) c


some.some
Option.some val✝ < c
α: Type u

β: Type v

inst✝²: Add α

a, b, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1

c: WithTop α

val✝¹, val✝: α

h: swap (fun x x_1 => x + x_1) (Option.some val✝¹) (Option.some val✝) < swap (fun x x_1 => x + x_1) (Option.some val✝¹) c


some.some
Option.some val✝ < c
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1

a, b, c: WithTop α

h: swap (fun x x_1 => x + x_1) a b < swap (fun x x_1 => x + x_1) a c


b < c
α: Type u

β: Type v

inst✝²: Add α

a, b, c, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1

val✝¹, val✝: α

h: swap (fun x x_1 => x + x_1) (Option.some val✝¹) (Option.some val✝) < swap (fun x x_1 => x + x_1) (Option.some val✝¹) none


some.some.none
Option.some val✝ < none
α: Type u

β: Type v

inst✝²: Add α

a, b, c, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1

val✝², val✝¹, val✝: α

h: swap (fun x x_1 => x + x_1) (Option.some val✝²) (Option.some val✝¹) < swap (fun x x_1 => x + x_1) (Option.some val✝²) (Option.some val✝)


some.some.some
Option.some val✝¹ < Option.some val✝
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1

a, b, c: WithTop α

h: swap (fun x x_1 => x + x_1) a b < swap (fun x x_1 => x + x_1) a c


b < c
α: Type u

β: Type v

inst✝²: Add α

a, b, c, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1

val✝¹, val✝: α

h: swap (fun x x_1 => x + x_1) (Option.some val✝¹) (Option.some val✝) < swap (fun x x_1 => x + x_1) (Option.some val✝¹) none


some.some.none
Option.some val✝ < none
α: Type u

β: Type v

inst✝²: Add α

a, b, c, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1

val✝¹, val✝: α

h: swap (fun x x_1 => x + x_1) (Option.some val✝¹) (Option.some val✝) < swap (fun x x_1 => x + x_1) (Option.some val✝¹) none


some.some.none
Option.some val✝ < none
α: Type u

β: Type v

inst✝²: Add α

a, b, c, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1

val✝², val✝¹, val✝: α

h: swap (fun x x_1 => x + x_1) (Option.some val✝²) (Option.some val✝¹) < swap (fun x x_1 => x + x_1) (Option.some val✝²) (Option.some val✝)


some.some.some
Option.some val✝¹ < Option.some val✝

Goals accomplished! 🐙
α: Type u

β: Type v

inst✝²: Add α

a✝, b✝, c✝, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1

a, b, c: WithTop α

h: swap (fun x x_1 => x + x_1) a b < swap (fun x x_1 => x + x_1) a c


b < c
α: Type u

β: Type v

inst✝²: Add α

a, b, c, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1

val✝², val✝¹, val✝: α

h: swap (fun x x_1 => x + x_1) (Option.some val✝²) (Option.some val✝¹) < swap (fun x x_1 => x + x_1) (Option.some val✝²) (Option.some val✝)


some.some.some
Option.some val✝¹ < Option.some val✝
α: Type u

β: Type v

inst✝²: Add α

a, b, c, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1

val✝², val✝¹, val✝: α

h: swap (fun x x_1 => x + x_1) (Option.some val✝²) (Option.some val✝¹) < swap (fun x x_1 => x + x_1) (Option.some val✝²) (Option.some val✝)


some.some.some
Option.some val✝¹ < Option.some val✝

Goals accomplished! 🐙
#align with_top.contravariant_class_swap_add_lt
WithTop.contravariantClass_swap_add_lt: ∀ {α : Type u} [inst : Add α] [inst_1 : LT α] [inst_2 : ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1], ContravariantClass (WithTop α) (WithTop α) (swap fun x x_1 => x + x_1) fun x x_1 => x < x_1
WithTop.contravariantClass_swap_add_lt
protected theorem
le_of_add_le_add_left: ∀ {α : Type u} [inst : Add α] {a b c : WithTop α} [inst_1 : LE α] [inst_2 : ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1], a a + b a + cb c
le_of_add_le_add_left
[
LE: Type ?u.19412 → Type ?u.19412
LE
α: Type u
α
] [
ContravariantClass: (M : Type ?u.19416) → (N : Type ?u.19415) → (MNN) → (NNProp) → Prop
ContravariantClass
α: Type u
α
α: Type u
α
(· + ·): ααα
(· + ·)
(· ≤ ·): ααProp
(· ≤ ·)
] (
ha: a
ha
:
a: WithTop α
a
: ?m.19487
) (
h: a + b a + c
h
:
a: WithTop α
a
+
b: WithTop α
b
a: WithTop α
a
+
c: WithTop α
c
) :
b: WithTop α
b
c: WithTop α
c
:=

Goals accomplished! 🐙
α: Type u

β: Type v

inst✝²: Add α

a, b, c, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

ha: a

h: a + b a + c


b c
α: Type u

β: Type v

inst✝²: Add α

b, c, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

a: α

h: a + b a + c


intro
b c
α: Type u

β: Type v

inst✝²: Add α

a, b, c, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

ha: a

h: a + b a + c


b c
α: Type u

β: Type v

inst✝²: Add α

b, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

a: α

h: a + b a +


intro.top
α: Type u

β: Type v

inst✝²: Add α

b, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

a, a✝: α

h: a + b a + a✝


intro.coe
b a✝
α: Type u

β: Type v

inst✝²: Add α

a, b, c, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

ha: a

h: a + b a + c


b c
α: Type u

β: Type v

inst✝²: Add α

b, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

a: α

h: a + b a +


intro.top
α: Type u

β: Type v

inst✝²: Add α

b, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

a: α

h: a + b a +


intro.top
α: Type u

β: Type v

inst✝²: Add α

b, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

a, a✝: α

h: a + b a + a✝


intro.coe
b a✝

Goals accomplished! 🐙
α: Type u

β: Type v

inst✝²: Add α

a, b, c, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

ha: a

h: a + b a + c


b c
α: Type u

β: Type v

inst✝²: Add α

b, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

a, a✝: α

h: a + b a + a✝


intro.coe
b a✝
α: Type u

β: Type v

inst✝²: Add α

b, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

a, a✝: α

h: a + b a + a✝


intro.coe
b a✝
α: Type u

β: Type v

inst✝²: Add α

d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

a, a✝: α

h: a + a + a✝


intro.coe.top
a✝
α: Type u

β: Type v

inst✝²: Add α

d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

a, a✝¹, a✝: α

h: a + a✝ a + a✝¹


intro.coe.coe
a✝ a✝¹
α: Type u

β: Type v

inst✝²: Add α

b, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

a, a✝: α

h: a + b a + a✝


intro.coe
b a✝
α: Type u

β: Type v

inst✝²: Add α

d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

a, a✝: α

h: a + a + a✝


intro.coe.top
a✝
α: Type u

β: Type v

inst✝²: Add α

d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

a, a✝: α

h: a + a + a✝


intro.coe.top
a✝
α: Type u

β: Type v

inst✝²: Add α

d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

a, a✝¹, a✝: α

h: a + a✝ a + a✝¹


intro.coe.coe
a✝ a✝¹

Goals accomplished! 🐙
α: Type u

β: Type v

inst✝²: Add α

b, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

a, a✝: α

h: a + b a + a✝


intro.coe
b a✝
α: Type u

β: Type v

inst✝²: Add α

d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

a, a✝¹, a✝: α

h: a + a✝ a + a✝¹


intro.coe.coe
a✝ a✝¹
α: Type u

β: Type v

inst✝²: Add α

d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

a, a✝¹, a✝: α

h: a + a✝ a + a✝¹


intro.coe.coe
a✝ a✝¹
α: Type u

β: Type v

inst✝²: Add α

d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

a, a✝¹, a✝: α

h: a + a✝ a + a✝¹


intro.coe.coe
a✝ a✝¹
α: Type u

β: Type v

inst✝²: Add α

d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1

a, a✝¹, a✝: α

h: a + a✝ a + a✝¹


intro.coe.coe
a✝ a✝¹

Goals accomplished! 🐙
#align with_top.le_of_add_le_add_left
WithTop.le_of_add_le_add_left: ∀ {α : Type u} [inst : Add α] {a b c : WithTop α} [inst_1 : LE α] [inst_2 : ContravariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x x_1], a a + b a + cb c
WithTop.le_of_add_le_add_left
protected theorem
le_of_add_le_add_right: ∀ {α : Type u} [inst : Add α] {a b c : WithTop α} [inst_1 : LE α] [inst_2 : ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1], a b + a c + ab c
le_of_add_le_add_right
[
LE: Type ?u.20698 → Type ?u.20698
LE
α: Type u
α
] [
ContravariantClass: (M : Type ?u.20702) → (N : Type ?u.20701) → (MNN) → (NNProp) → Prop
ContravariantClass
α: Type u
α
α: Type u
α
(
swap: {α : Sort ?u.20705} → {β : Sort ?u.20704} → {φ : αβSort ?u.20703} → ((x : α) → (y : β) → φ x y) → (y : β) → (x : α) → φ x y
swap
(· + ·): ααα
(· + ·)
)
(· ≤ ·): ααProp
(· ≤ ·)
] (
ha: a
ha
:
a: WithTop α
a
: ?m.20795
) (
h: b + a c + a
h
:
b: WithTop α
b
+
a: WithTop α
a
c: WithTop α
c
+
a: WithTop α
a
) :
b: WithTop α
b
c: WithTop α
c
:=

Goals accomplished! 🐙
α: Type u

β: Type v

inst✝²: Add α

a, b, c, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

ha: a

h: b + a c + a


b c
α: Type u

β: Type v

inst✝²: Add α

b, c, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

a: α

h: b + a c + a


intro
b c
α: Type u

β: Type v

inst✝²: Add α

a, b, c, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

ha: a

h: b + a c + a


b c
α: Type u

β: Type v

inst✝²: Add α

b, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

a: α

h: b + a none + a


intro.none
b none
α: Type u

β: Type v

inst✝²: Add α

b, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

a, val✝: α

h: b + a Option.some val✝ + a


intro.some
b Option.some val✝
α: Type u

β: Type v

inst✝²: Add α

a, b, c, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

ha: a

h: b + a c + a


b c
α: Type u

β: Type v

inst✝²: Add α

b, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

a: α

h: b + a none + a


intro.none
b none
α: Type u

β: Type v

inst✝²: Add α

b, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

a: α

h: b + a none + a


intro.none
b none
α: Type u

β: Type v

inst✝²: Add α

b, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

a, val✝: α

h: b + a Option.some val✝ + a


intro.some
b Option.some val✝

Goals accomplished! 🐙
α: Type u

β: Type v

inst✝²: Add α

a, b, c, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

ha: a

h: b + a c + a


b c
α: Type u

β: Type v

inst✝²: Add α

b, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

a, val✝: α

h: b + a Option.some val✝ + a


intro.some
b Option.some val✝
α: Type u

β: Type v

inst✝²: Add α

b, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

a, val✝: α

h: b + a Option.some val✝ + a


intro.some
b Option.some val✝
α: Type u

β: Type v

inst✝²: Add α

d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

a, val✝: α

h: none + a Option.some val✝ + a


intro.some.none
none Option.some val✝
α: Type u

β: Type v

inst✝²: Add α

d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

a, val✝¹, val✝: α

h: Option.some val✝ + a Option.some val✝¹ + a


intro.some.some
Option.some val✝ Option.some val✝¹
α: Type u

β: Type v

inst✝²: Add α

b, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

a, val✝: α

h: b + a Option.some val✝ + a


intro.some
b Option.some val✝
α: Type u

β: Type v

inst✝²: Add α

d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

a, val✝: α

h: none + a Option.some val✝ + a


intro.some.none
none Option.some val✝
α: Type u

β: Type v

inst✝²: Add α

d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

a, val✝: α

h: none + a Option.some val✝ + a


intro.some.none
none Option.some val✝
α: Type u

β: Type v

inst✝²: Add α

d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

a, val✝¹, val✝: α

h: Option.some val✝ + a Option.some val✝¹ + a


intro.some.some
Option.some val✝ Option.some val✝¹

Goals accomplished! 🐙
α: Type u

β: Type v

inst✝²: Add α

b, d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

a, val✝: α

h: b + a Option.some val✝ + a


intro.some
b Option.some val✝
α: Type u

β: Type v

inst✝²: Add α

d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

a, val✝¹, val✝: α

h: Option.some val✝ + a Option.some val✝¹ + a


intro.some.some
Option.some val✝ Option.some val✝¹
α: Type u

β: Type v

inst✝²: Add α

d: WithTop α

x, y: α

inst✝¹: LE α

inst✝: ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1

a, val✝¹, val✝: α

h: Option.some val✝ + a Option.some val✝¹ + a


intro.some.some
Option.some val✝ Option.some val✝¹

Goals accomplished! 🐙
#align with_top.le_of_add_le_add_right
WithTop.le_of_add_le_add_right: ∀ {α : Type u} [inst : Add α] {a b c : WithTop α} [inst_1 : LE α] [inst_2 : ContravariantClass α α (swap fun x x_1 => x + x_1) fun x x_1 => x x_1], a b + a c + ab c
WithTop.le_of_add_le_add_right
protected theorem
add_lt_add_left: ∀ {α : Type u} [inst : Add α] {a b c : WithTop α} [inst_1 : LT α] [inst_2 : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1], a b < ca + b < a + c
add_lt_add_left
[
LT: Type ?u.21926 → Type ?u.21926
LT
α: Type u
α
] [
CovariantClass: (M : Type ?u.21930) → (N : Type ?u.21929) → (MNN) → (NNProp) → Prop
CovariantClass
α: Type u
α
α: Type u
α
(· + ·): ααα
(· + ·)
(· < ·): ααProp
(· < ·)
] (
ha: a
ha
:
a: WithTop α
a
: ?m.22001
) (
h: b < c
h
:
b: WithTop α
b
<
c: WithTop α
c
) :
a: WithTop α
a
+
b: WithTop α
b
<
a: WithTop α
a
+
c: WithTop α
c
:=

Goals accomplished! 🐙
α: Type u

β: Type v

inst✝²: Add α

a, b, c, d: WithTop α

x, y: α

inst✝¹: LT α

inst✝: CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x < x_1

ha: a

h: b < c


a + b < a + c
α: Type u

β: Type v

inst✝²: Add α

b, c, d: WithTop α

x, y: α

inst✝¹: