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) 2020 Johan Commelin. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johan Commelin

! This file was ported from Lean 3 source module order.copy
! leanprover-community/mathlib commit 207cfac9fcd06138865b5d04f7091e46d9320432
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
import Mathlib.Order.ConditionallyCompleteLattice.Basic

/-!
# Tooling to make copies of lattice structures

Sometimes it is useful to make a copy of a lattice structure
where one replaces the data parts with provably equal definitions
that have better definitional properties.
-/


open Order

universe u

variable {
α: Type u
α
:
Type u: Type (u+1)
Type u
} --Porting note: mathlib3 proof uses `refine { top := top, bot := bot, .. }` but this does not work -- anymore /-- A function to create a provable equal copy of a bounded order with possibly different definitional equalities. -/ def
BoundedOrder.copy: {α : Type u} → {h h' : LE α} → (c : BoundedOrder α) → (top : α) → top = (bot : α) → bot = (∀ (x y : α), x y x y) → BoundedOrder α
BoundedOrder.copy
{
h: LE α
h
:
LE: Type ?u.6 → Type ?u.6
LE
α: Type u
α
} {
h': LE α
h'
:
LE: Type ?u.9 → Type ?u.9
LE
α: Type u
α
} (c : @
BoundedOrder: (α : Type ?u.12) → [inst : LE α] → Type ?u.12
BoundedOrder
α: Type u
α
h': LE α
h'
) (
top: α
top
:
α: Type u
α
) (
eq_top: top =
eq_top
:
top: α
top
= (

Goals accomplished! 🐙
α: Type u

h, h': LE α

c: BoundedOrder α

top: α


Top α

Goals accomplished! 🐙
: Top α).
top: {α : Type ?u.22} → [self : Top α] → α
top
) (
bot: α
bot
:
α: Type u
α
) (
eq_bot: bot =
eq_bot
:
bot: α
bot
= (

Goals accomplished! 🐙
α: Type u

h, h': LE α

c: BoundedOrder α

top: α

eq_top: top =

bot: α


Bot α

Goals accomplished! 🐙
: Bot α).
bot: {α : Type ?u.34} → [self : Bot α] → α
bot
) (
le_eq: ∀ (x y : α), x y x y
le_eq
: ∀
x: α
x
y: α
y
:
α: Type u
α
, (@
LE.le: {α : Type ?u.45} → [self : LE α] → ααProp
LE.le
α: Type u
α
h: LE α
h
)
x: α
x
y: α
y
x: α
x
y: α
y
) : @
BoundedOrder: (α : Type ?u.54) → [inst : LE α] → Type ?u.54
BoundedOrder
α: Type u
α
h: LE α
h
:= @
BoundedOrder.mk: {α : Type ?u.245} → [inst : LE α] → [toOrderTop : OrderTop α] → [toOrderBot : OrderBot α] → BoundedOrder α
BoundedOrder.mk
α: Type u
α
h: LE α
h
(@
OrderTop.mk: {α : Type ?u.246} → [inst : LE α] → [toTop : Top α] → (∀ (a : α), a ) → OrderTop α
OrderTop.mk
α: Type u
α
h: LE α
h
{ top :=
top: α
top
} (fun
_: ?m.250
_

Goals accomplished! 🐙
α: Type u

h, h': LE α

c: BoundedOrder α

top: α

eq_top: top =

bot: α

eq_bot: bot =

le_eq: ∀ (x y : α), x y x y

x✝: α


x✝

Goals accomplished! 🐙
)) (@
OrderBot.mk: {α : Type ?u.256} → [inst : LE α] → [toBot : Bot α] → (∀ (a : α), a) → OrderBot α
OrderBot.mk
α: Type u
α
h: LE α
h
{ bot :=
bot: α
bot
} (fun
_: ?m.260
_

Goals accomplished! 🐙
α: Type u

h, h': LE α

c: BoundedOrder α

top: α

eq_top: top =

bot: α

eq_bot: bot =

le_eq: ∀ (x y : α), x y x y

x✝: α


x✝

Goals accomplished! 🐙
)) #align bounded_order.copy
BoundedOrder.copy: {α : Type u} → {h h' : LE α} → (c : BoundedOrder α) → (top : α) → top = (bot : α) → bot = (∀ (x y : α), x y x y) → BoundedOrder α
BoundedOrder.copy
--Porting note: original proof uses -- `all_goals { abstract { subst_vars, casesI c, simp_rw le_eq, assumption } }` /-- A function to create a provable equal copy of a lattice with possibly different definitional equalities. -/ def
Lattice.copy: {α : Type u} → (c : Lattice α) → (le : ααProp) → le = LE.le(sup : ααα) → sup = Sup.sup(inf : ααα) → inf = Inf.infLattice α
Lattice.copy
(
c: Lattice α
c
:
Lattice: Type ?u.1090 → Type ?u.1090
Lattice
α: Type u
α
) (
le: ααProp
le
:
α: Type u
α
α: Type u
α
Prop: Type
Prop
) (
eq_le: le = LE.le
eq_le
:
le: ααProp
le
= (

Goals accomplished! 🐙
α: Type u

c: Lattice α

le: ααProp


LE α

Goals accomplished! 🐙
: LE α).
le: {α : Type ?u.1105} → [self : LE α] → ααProp
le
) (
sup: ααα
sup
:
α: Type u
α
α: Type u
α
α: Type u
α
) (
eq_sup: sup = Sup.sup
eq_sup
:
sup: ααα
sup
= (

Goals accomplished! 🐙
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα


Sup α

Goals accomplished! 🐙
: Sup α).
sup: {α : Type ?u.1129} → [self : Sup α] → ααα
sup
) (
inf: ααα
inf
:
α: Type u
α
α: Type u
α
α: Type u
α
) (
eq_inf: inf = Inf.inf
eq_inf
:
inf: ααα
inf
= (

Goals accomplished! 🐙
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα


Inf α

Goals accomplished! 🐙
: Inf α).
inf: {α : Type ?u.1153} → [self : Inf α] → ααα
inf
) :
Lattice: Type ?u.1165 → Type ?u.1165
Lattice
α: Type u
α
:=

Goals accomplished! 🐙
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_1
∀ (a : α), a a
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_2
∀ (a b c : α), a bb ca c
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_3
∀ (a b : α), a < b a b ¬b a
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_4
∀ (a b : α), a bb aa = b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_5
∀ (a b : α), a a b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_6
∀ (a b : α), b a b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_7
∀ (a b c : α), a cb ca b c
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_8
∀ (a b : α), a b a
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_9
∀ (a b : α), a b b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c : α), a ba ca b c
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_1
∀ (a : α), a a
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_1
∀ (a : α), a a
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_2
∀ (a b c : α), a bb ca c
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_3
∀ (a b : α), a < b a b ¬b a
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_4
∀ (a b : α), a bb aa = b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_5
∀ (a b : α), a a b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_6
∀ (a b : α), b a b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_7
∀ (a b c : α), a cb ca b c
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_8
∀ (a b : α), a b a
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_9
∀ (a b : α), a b b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c : α), a ba ca b c
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝: α


refine'_1
a✝ a✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝: α


refine'_1
a✝ a✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_1
∀ (a : α), a a

Goals accomplished! 🐙
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_2
∀ (a b c : α), a bb ca c
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_2
∀ (a b c : α), a bb ca c
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_3
∀ (a b : α), a < b a b ¬b a
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_4
∀ (a b : α), a bb aa = b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_5
∀ (a b : α), a a b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_6
∀ (a b : α), b a b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_7
∀ (a b c_1 : α), a c_1b c_1a b c_1
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_8
∀ (a b : α), a b a
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_9
∀ (a b : α), a b b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c_1 : α), a ba c_1a b c_1
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hab: a✝ b✝

hbc: b✝ c✝


refine'_2
a✝ c✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hab: a✝ b✝

hbc: b✝ c✝


refine'_2
a✝ c✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_2
∀ (a b c : α), a bb ca c
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hab: a✝ b✝

hbc: b✝ c✝


refine'_2
a✝ c✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hab: a✝ b✝

hbc: b✝ c✝


refine'_2
a✝ c✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hab: a✝ b✝

hbc: b✝ c✝


refine'_2
a✝ c✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hab: a✝ b✝

hbc: b✝ c✝


refine'_2
a✝ c✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hab: a✝ b✝

hbc: b✝ c✝


refine'_2
a✝ c✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_2
∀ (a b c : α), a bb ca c

Goals accomplished! 🐙
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_3
∀ (a b : α), a < b a b ¬b a
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_3
∀ (a b : α), a < b a b ¬b a
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_4
∀ (a b : α), a bb aa = b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_5
∀ (a b : α), a a b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_6
∀ (a b : α), b a b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_7
∀ (a b c_1 : α), a c_1b c_1a b c_1
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_8
∀ (a b : α), a b a
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_9
∀ (a b : α), a b b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c_1 : α), a ba c_1a b c_1
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α


refine'_3
a✝ < b✝ a✝ b✝ ¬b✝ a✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α


refine'_3
a✝ < b✝ a✝ b✝ ¬b✝ a✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_3
∀ (a b : α), a < b a b ¬b a

Goals accomplished! 🐙
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_4
∀ (a b : α), a bb aa = b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_4
∀ (a b : α), a bb aa = b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_5
∀ (a b : α), a a b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_6
∀ (a b : α), b a b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_7
∀ (a b c_1 : α), a c_1b c_1a b c_1
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_8
∀ (a b : α), a b a
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_9
∀ (a b : α), a b b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c_1 : α), a ba c_1a b c_1
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α

hab: a✝ b✝

hba: b✝ a✝


refine'_4
a✝ = b✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α

hab: a✝ b✝

hba: b✝ a✝


refine'_4
a✝ = b✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_4
∀ (a b : α), a bb aa = b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α

hab: le a✝ b✝

hba: le b✝ a✝


refine'_4
a✝ = b✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α

hab: a✝ b✝

hba: b✝ a✝


refine'_4
a✝ = b✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α

hab: a✝ b✝

hba: b✝ a✝


refine'_4
a✝ = b✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α

hab: a✝ b✝

hba: b✝ a✝


refine'_4
a✝ = b✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_4
∀ (a b : α), a bb aa = b

Goals accomplished! 🐙
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_5
∀ (a b : α), a a b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_5
∀ (a b : α), a a b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_6
∀ (a b : α), b a b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_7
∀ (a b c_1 : α), a c_1b c_1a b c_1
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_8
∀ (a b : α), a b a
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_9
∀ (a b : α), a b b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c_1 : α), a ba c_1a b c_1
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α


refine'_5
a✝ a✝ b✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α


refine'_5
a✝ a✝ b✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_5
∀ (a b : α), a a b

Goals accomplished! 🐙
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_6
∀ (a b : α), b a b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_6
∀ (a b : α), b a b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_7
∀ (a b c_1 : α), a c_1b c_1a b c_1
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_8
∀ (a b : α), a b a
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_9
∀ (a b : α), a b b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c_1 : α), a ba c_1a b c_1
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α


refine'_6
b✝ a✝ b✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α


refine'_6
b✝ a✝ b✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_6
∀ (a b : α), b a b

Goals accomplished! 🐙
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_7
∀ (a b c_1 : α), a c_1b c_1a b c_1
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_7
∀ (a b c_1 : α), a c_1b c_1a b c_1
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_8
∀ (a b : α), a b a
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_9
∀ (a b : α), a b b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c_1 : α), a ba c_1a b c_1
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hac: a✝ c✝

hbc: b✝ c✝


refine'_7
a✝ b✝ c✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hac: a✝ c✝

hbc: b✝ c✝


refine'_7
a✝ b✝ c✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_7
∀ (a b c_1 : α), a c_1b c_1a b c_1
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hac: le a✝ c✝

hbc: le b✝ c✝


refine'_7
le (sup a✝ b✝) c✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hac: a✝ c✝

hbc: b✝ c✝


refine'_7
sup a✝ b✝ c✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hac: a✝ c✝

hbc: b✝ c✝


refine'_7
sup a✝ b✝ c✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hac: a✝ c✝

hbc: b✝ c✝


refine'_7
sup a✝ b✝ c✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_7
∀ (a b c_1 : α), a c_1b c_1a b c_1

Goals accomplished! 🐙
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_8
∀ (a b : α), a b a
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_8
∀ (a b : α), a b a
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_9
∀ (a b : α), a b b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c_1 : α), a ba c_1a b c_1
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α


refine'_8
a✝ b✝ a✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α


refine'_8
a✝ b✝ a✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_8
∀ (a b : α), a b a

Goals accomplished! 🐙
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_9
∀ (a b : α), a b b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_9
∀ (a b : α), a b b
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c_1 : α), a ba c_1a b c_1
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α


refine'_9
a✝ b✝ b✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α


refine'_9
a✝ b✝ b✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_9
∀ (a b : α), a b b

Goals accomplished! 🐙
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c_1 : α), a ba c_1a b c_1
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c_1 : α), a ba c_1a b c_1
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hac: a✝ b✝

hbc: a✝ c✝


refine'_10
a✝ b✝ c✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hac: a✝ b✝

hbc: a✝ c✝


refine'_10
a✝ b✝ c✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c_1 : α), a ba c_1a b c_1
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hac: le a✝ b✝

hbc: le a✝ c✝


refine'_10
le a✝ (inf b✝ c✝)
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hac: a✝ b✝

hbc: a✝ c✝


refine'_10
a✝ inf b✝ c✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hac: a✝ b✝

hbc: a✝ c✝


refine'_10
a✝ inf b✝ c✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hac: a✝ b✝

hbc: a✝ c✝


refine'_10
a✝ inf b✝ c✝
α: Type u

c: Lattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c_1 : α), a ba c_1a b c_1

Goals accomplished! 🐙
#align lattice.copy
Lattice.copy: {α : Type u} → (c : Lattice α) → (le : ααProp) → le = LE.le(sup : ααα) → sup = Sup.sup(inf : ααα) → inf = Inf.infLattice α
Lattice.copy
--Porting note: original proof uses -- `all_goals { abstract { subst_vars, casesI c, simp_rw le_eq, assumption } }` /-- A function to create a provable equal copy of a distributive lattice with possibly different definitional equalities. -/ def
DistribLattice.copy: (c : DistribLattice α) → (le : ααProp) → le = LE.le(sup : ααα) → sup = Sup.sup(inf : ααα) → inf = Inf.infDistribLattice α
DistribLattice.copy
(c :
DistribLattice: Type ?u.13050 → Type ?u.13050
DistribLattice
α: Type u
α
) (
le: ααProp
le
:
α: Type u
α
α: Type u
α
Prop: Type
Prop
) (
eq_le: le = LE.le
eq_le
:
le: ααProp
le
= (

Goals accomplished! 🐙
α: Type u

c: DistribLattice α

le: ααProp


LE α

Goals accomplished! 🐙
: LE α).
le: {α : Type ?u.13065} → [self : LE α] → ααProp
le
) (
sup: ααα
sup
:
α: Type u
α
α: Type u
α
α: Type u
α
) (
eq_sup: sup = Sup.sup
eq_sup
:
sup: ααα
sup
= (

Goals accomplished! 🐙
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα


Sup α

Goals accomplished! 🐙
: Sup α).
sup: {α : Type ?u.13089} → [self : Sup α] → ααα
sup
) (
inf: ααα
inf
:
α: Type u
α
α: Type u
α
α: Type u
α
) (
eq_inf: inf = Inf.inf
eq_inf
:
inf: ααα
inf
= (

Goals accomplished! 🐙
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα


Inf α

Goals accomplished! 🐙
: Inf α).
inf: {α : Type ?u.13113} → [self : Inf α] → ααα
inf
) :
DistribLattice: Type ?u.13125 → Type ?u.13125
DistribLattice
α: Type u
α
:=

Goals accomplished! 🐙
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_1
∀ (a : α), a a
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_2
∀ (a b c : α), a bb ca c
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_3
∀ (a b : α), a < b a b ¬b a
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_4
∀ (a b : α), a bb aa = b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_5
∀ (a b : α), a a b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_6
∀ (a b : α), b a b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_7
∀ (a b c : α), a cb ca b c
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_8
∀ (a b : α), a b a
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_9
∀ (a b : α), a b b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c : α), a ba ca b c
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_11
∀ (x y z : α), (x y) (x z) x y z
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_1
∀ (a : α), a a
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_1
∀ (a : α), a a
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_2
∀ (a b c : α), a bb ca c
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_3
∀ (a b : α), a < b a b ¬b a
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_4
∀ (a b : α), a bb aa = b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_5
∀ (a b : α), a a b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_6
∀ (a b : α), b a b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_7
∀ (a b c : α), a cb ca b c
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_8
∀ (a b : α), a b a
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_9
∀ (a b : α), a b b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c : α), a ba ca b c
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_11
∀ (x y z : α), (x y) (x z) x y z
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝: α


refine'_1
a✝ a✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝: α


refine'_1
a✝ a✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_1
∀ (a : α), a a

Goals accomplished! 🐙
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_2
∀ (a b c : α), a bb ca c
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_2
∀ (a b c : α), a bb ca c
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_3
∀ (a b : α), a < b a b ¬b a
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_4
∀ (a b : α), a bb aa = b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_5
∀ (a b : α), a a b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_6
∀ (a b : α), b a b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_7
∀ (a b c_1 : α), a c_1b c_1a b c_1
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_8
∀ (a b : α), a b a
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_9
∀ (a b : α), a b b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c_1 : α), a ba c_1a b c_1
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_11
∀ (x y z : α), (x y) (x z) x y z
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hab: a✝ b✝

hbc: b✝ c✝


refine'_2
a✝ c✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hab: a✝ b✝

hbc: b✝ c✝


refine'_2
a✝ c✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_2
∀ (a b c : α), a bb ca c
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hab: a✝ b✝

hbc: b✝ c✝


refine'_2
a✝ c✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hab: a✝ b✝

hbc: b✝ c✝


refine'_2
a✝ c✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hab: a✝ b✝

hbc: b✝ c✝


refine'_2
a✝ c✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hab: a✝ b✝

hbc: b✝ c✝


refine'_2
a✝ c✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hab: a✝ b✝

hbc: b✝ c✝


refine'_2
a✝ c✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_2
∀ (a b c : α), a bb ca c

Goals accomplished! 🐙
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_3
∀ (a b : α), a < b a b ¬b a
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_3
∀ (a b : α), a < b a b ¬b a
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_4
∀ (a b : α), a bb aa = b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_5
∀ (a b : α), a a b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_6
∀ (a b : α), b a b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_7
∀ (a b c_1 : α), a c_1b c_1a b c_1
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_8
∀ (a b : α), a b a
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_9
∀ (a b : α), a b b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c_1 : α), a ba c_1a b c_1
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_11
∀ (x y z : α), (x y) (x z) x y z
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α


refine'_3
a✝ < b✝ a✝ b✝ ¬b✝ a✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α


refine'_3
a✝ < b✝ a✝ b✝ ¬b✝ a✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_3
∀ (a b : α), a < b a b ¬b a

Goals accomplished! 🐙
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_4
∀ (a b : α), a bb aa = b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_4
∀ (a b : α), a bb aa = b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_5
∀ (a b : α), a a b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_6
∀ (a b : α), b a b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_7
∀ (a b c_1 : α), a c_1b c_1a b c_1
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_8
∀ (a b : α), a b a
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_9
∀ (a b : α), a b b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c_1 : α), a ba c_1a b c_1
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_11
∀ (x y z : α), (x y) (x z) x y z
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α

hab: a✝ b✝

hba: b✝ a✝


refine'_4
a✝ = b✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α

hab: a✝ b✝

hba: b✝ a✝


refine'_4
a✝ = b✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_4
∀ (a b : α), a bb aa = b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α

hab: le a✝ b✝

hba: le b✝ a✝


refine'_4
a✝ = b✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α

hab: a✝ b✝

hba: b✝ a✝


refine'_4
a✝ = b✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α

hab: a✝ b✝

hba: b✝ a✝


refine'_4
a✝ = b✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α

hab: a✝ b✝

hba: b✝ a✝


refine'_4
a✝ = b✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_4
∀ (a b : α), a bb aa = b

Goals accomplished! 🐙
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_5
∀ (a b : α), a a b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_5
∀ (a b : α), a a b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_6
∀ (a b : α), b a b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_7
∀ (a b c_1 : α), a c_1b c_1a b c_1
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_8
∀ (a b : α), a b a
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_9
∀ (a b : α), a b b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c_1 : α), a ba c_1a b c_1
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_11
∀ (x y z : α), (x y) (x z) x y z
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α


refine'_5
a✝ a✝ b✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α


refine'_5
a✝ a✝ b✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_5
∀ (a b : α), a a b

Goals accomplished! 🐙
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_6
∀ (a b : α), b a b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_6
∀ (a b : α), b a b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_7
∀ (a b c_1 : α), a c_1b c_1a b c_1
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_8
∀ (a b : α), a b a
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_9
∀ (a b : α), a b b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c_1 : α), a ba c_1a b c_1
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_11
∀ (x y z : α), (x y) (x z) x y z
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α


refine'_6
b✝ a✝ b✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α


refine'_6
b✝ a✝ b✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_6
∀ (a b : α), b a b

Goals accomplished! 🐙
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_7
∀ (a b c_1 : α), a c_1b c_1a b c_1
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_7
∀ (a b c_1 : α), a c_1b c_1a b c_1
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_8
∀ (a b : α), a b a
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_9
∀ (a b : α), a b b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c_1 : α), a ba c_1a b c_1
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_11
∀ (x y z : α), (x y) (x z) x y z
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hac: a✝ c✝

hbc: b✝ c✝


refine'_7
a✝ b✝ c✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hac: a✝ c✝

hbc: b✝ c✝


refine'_7
a✝ b✝ c✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_7
∀ (a b c_1 : α), a c_1b c_1a b c_1
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hac: le a✝ c✝

hbc: le b✝ c✝


refine'_7
le (sup a✝ b✝) c✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hac: a✝ c✝

hbc: b✝ c✝


refine'_7
sup a✝ b✝ c✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hac: a✝ c✝

hbc: b✝ c✝


refine'_7
sup a✝ b✝ c✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hac: a✝ c✝

hbc: b✝ c✝


refine'_7
sup a✝ b✝ c✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_7
∀ (a b c_1 : α), a c_1b c_1a b c_1

Goals accomplished! 🐙
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_8
∀ (a b : α), a b a
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_8
∀ (a b : α), a b a
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_9
∀ (a b : α), a b b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c_1 : α), a ba c_1a b c_1
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_11
∀ (x y z : α), (x y) (x z) x y z
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α


refine'_8
a✝ b✝ a✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α


refine'_8
a✝ b✝ a✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_8
∀ (a b : α), a b a

Goals accomplished! 🐙
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_9
∀ (a b : α), a b b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_9
∀ (a b : α), a b b
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c_1 : α), a ba c_1a b c_1
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_11
∀ (x y z : α), (x y) (x z) x y z
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α


refine'_9
a✝ b✝ b✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝: α


refine'_9
a✝ b✝ b✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_9
∀ (a b : α), a b b

Goals accomplished! 🐙
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c_1 : α), a ba c_1a b c_1
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c_1 : α), a ba c_1a b c_1
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_11
∀ (x y z : α), (x y) (x z) x y z
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hac: a✝ b✝

hbc: a✝ c✝


refine'_10
a✝ b✝ c✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hac: a✝ b✝

hbc: a✝ c✝


refine'_10
a✝ b✝ c✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c_1 : α), a ba c_1a b c_1
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hac: le a✝ b✝

hbc: le a✝ c✝


refine'_10
le a✝ (inf b✝ c✝)
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hac: a✝ b✝

hbc: a✝ c✝


refine'_10
a✝ inf b✝ c✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hac: a✝ b✝

hbc: a✝ c✝


refine'_10
a✝ inf b✝ c✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

a✝, b✝, c✝: α

hac: a✝ b✝

hbc: a✝ c✝


refine'_10
a✝ inf b✝ c✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_10
∀ (a b c_1 : α), a ba c_1a b c_1

Goals accomplished! 🐙
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_11
∀ (x y z : α), (x y) (x z) x y z
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_11
∀ (x y z : α), (x y) (x z) x y z
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

x✝, y✝, z✝: α


refine'_11
(x✝ y✝) (x✝ z✝) x✝ y✝ z✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

x✝, y✝, z✝: α


refine'_11
(x✝ y✝) (x✝ z✝) x✝ y✝ z✝
α: Type u

c: DistribLattice α

le: ααProp

eq_le: le = LE.le

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf


refine'_11
∀ (x y z : α), (x y) (x z) x y z

Goals accomplished! 🐙
#align distrib_lattice.copy
DistribLattice.copy: {α : Type u} → (c : DistribLattice α) → (le : ααProp) → le = LE.le(sup : ααα) → sup = Sup.sup(inf : ααα) → inf = Inf.infDistribLattice α
DistribLattice.copy
--Porting note: original proof uses -- `all_goals { abstract { subst_vars, casesI c, simp_rw le_eq, assumption } }` /-- A function to create a provable equal copy of a complete lattice with possibly different definitional equalities. -/ def
CompleteLattice.copy: {α : Type u} → (c : CompleteLattice α) → (le : ααProp) → le = LE.le(top : α) → top = (bot : α) → bot = (sup : ααα) → sup = Sup.sup(inf : ααα) → inf = Inf.inf(sSup : Set αα) → sSup = SupSet.sSup(sInf : Set αα) → sInf = InfSet.sInfCompleteLattice α
CompleteLattice.copy
(c :
CompleteLattice: Type ?u.44069 → Type ?u.44069
CompleteLattice
α: Type u
α
) (
le: ααProp
le
:
α: Type u
α
α: Type u
α
Prop: Type
Prop
) (
eq_le: le = LE.le
eq_le
:
le: ααProp
le
= (

Goals accomplished! 🐙
α: Type u

c: CompleteLattice α

le: ααProp


LE α

Goals accomplished! 🐙
: LE α).
le: {α : Type ?u.44084} → [self : LE α] → ααProp
le
) (
top: α
top
:
α: Type u
α
) (
eq_top: top =
eq_top
:
top: α
top
= (

Goals accomplished! 🐙
α: Type u

c: CompleteLattice α

le: ααProp

eq_le: le = LE.le

top: α


Top α

Goals accomplished! 🐙
: Top α).
top: {α : Type ?u.44102} → [self : Top α] → α
top
) (
bot: α
bot
:
α: Type u
α
) (
eq_bot: bot =
eq_bot
:
bot: α
bot
= (

Goals accomplished! 🐙
α: Type u

c: CompleteLattice α

le: ααProp

eq_le: le = LE.le

top: α

eq_top: top =

bot: α


Bot α

Goals accomplished! 🐙
: Bot α).
bot: {α : Type ?u.44114} → [self : Bot α] → α
bot
) (
sup: ααα
sup
:
α: Type u
α
α: Type u
α
α: Type u
α
) (
eq_sup: sup = Sup.sup
eq_sup
:
sup: ααα
sup
= (

Goals accomplished! 🐙
α: Type u

c: CompleteLattice α

le: ααProp

eq_le: le = LE.le

top: α

eq_top: top =

bot: α

eq_bot: bot =

sup: ααα


Sup α

Goals accomplished! 🐙
: Sup α).
sup: {α : Type ?u.44132} → [self : Sup α] → ααα
sup
) (
inf: ααα
inf
:
α: Type u
α
α: Type u
α
α: Type u
α
) (
eq_inf: inf = Inf.inf
eq_inf
:
inf: ααα
inf
= (

Goals accomplished! 🐙
α: Type u

c: CompleteLattice α

le: ααProp

eq_le: le = LE.le

top: α

eq_top: top =

bot: α

eq_bot: bot =

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα


Inf α

Goals accomplished! 🐙
: Inf α).
inf: {α : Type ?u.44156} → [self : Inf α] → ααα
inf
) (
sSup: Set αα
sSup
:
Set: Type ?u.44169 → Type ?u.44169
Set
α: Type u
α
α: Type u
α
) (
eq_sSup: sSup = SupSet.sSup
eq_sSup
:
sSup: Set αα
sSup
= (

Goals accomplished! 🐙
α: Type u

c: CompleteLattice α

le: ααProp

eq_le: le = LE.le

top: α

eq_top: top =

bot: α

eq_bot: bot =

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

sSup: Set αα



Goals accomplished! 🐙
: SupSet α).
sSup: {α : Type ?u.44178} → [self : SupSet α] → Set αα
sSup
) (
sInf: Set αα
sInf
:
Set: Type ?u.44189 → Type ?u.44189
Set
α: Type u
α
α: Type u
α
) (
eq_sInf: sInf = InfSet.sInf
eq_sInf
:
sInf: Set αα
sInf
= (

Goals accomplished! 🐙
α: Type u

c: CompleteLattice α

le: ααProp

eq_le: le = LE.le

top: α

eq_top: top =

bot: α

eq_bot: bot =

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

sSup: Set αα

eq_sSup: sSup = SupSet.sSup

sInf: Set αα



Goals accomplished! 🐙
: InfSet α).
sInf: {α : Type ?u.44198} → [self : InfSet α] → Set αα
sInf
) :
CompleteLattice: Type ?u.44207 → Type ?u.44207
CompleteLattice
α: Type u
α
:=

Goals accomplished! 🐙
α: Type u

c: CompleteLattice α

le: ααProp

eq_le: le = LE.le

top: α

eq_top: top =

bot: α

eq_bot: bot =

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

sSup: Set αα

eq_sSup: sSup = SupSet.sSup

sInf: Set αα

eq_sInf: sInf = InfSet.sInf


α: Type u

c: CompleteLattice α

le: ααProp

eq_le: le = LE.le

top: α

eq_top: top =

bot: α

eq_bot: bot =

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

sSup: Set αα

eq_sSup: sSup = SupSet.sSup

sInf: Set αα

eq_sInf: sInf = InfSet.sInf

src✝:= Lattice.copy toLattice le eq_le sup eq_sup inf eq_inf: Lattice α


refine'_1
∀ (s : Set α) (a : α), a sa SupSet.sSup s
α: Type u

c: CompleteLattice α

le: ααProp

eq_le: le = LE.le

top: α

eq_top: top =

bot: α

eq_bot: bot =

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

sSup: Set αα

eq_sSup: sSup = SupSet.sSup

sInf: Set αα

eq_sInf: sInf = InfSet.sInf

src✝:= Lattice.copy toLattice le eq_le sup eq_sup inf eq_inf: Lattice α


refine'_2
∀ (s : Set α) (a : α), (∀ (b : α), b sb a) → SupSet.sSup s a
α: Type u

c: CompleteLattice α

le: ααProp

eq_le: le = LE.le

top: α

eq_top: top =

bot: α

eq_bot: bot =

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

sSup: Set αα

eq_sSup: sSup = SupSet.sSup

sInf: Set αα

eq_sInf: sInf = InfSet.sInf

src✝:= Lattice.copy toLattice le eq_le sup eq_sup inf eq_inf: Lattice α


refine'_3
∀ (s : Set α) (a : α), a sInfSet.sInf s a
α: Type u

c: CompleteLattice α

le: ααProp

eq_le: le = LE.le

top: α

eq_top: top =

bot: α

eq_bot: bot =

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

sSup: Set αα

eq_sSup: sSup = SupSet.sSup

sInf: Set αα

eq_sInf: sInf = InfSet.sInf

src✝:= Lattice.copy toLattice le eq_le sup eq_sup inf eq_inf: Lattice α


refine'_4
∀ (s : Set α) (a : α), (∀ (b : α), b sa b) → a InfSet.sInf s
α: Type u

c: CompleteLattice α

le: ααProp

eq_le: le = LE.le

top: α

eq_top: top =

bot: α

eq_bot: bot =

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

sSup: Set αα

eq_sSup: sSup = SupSet.sSup

sInf: Set αα

eq_sInf: sInf = InfSet.sInf

src✝:= Lattice.copy toLattice le eq_le sup eq_sup inf eq_inf: Lattice α


refine'_5
∀ (x : α), x
α: Type u

c: CompleteLattice α

le: ααProp

eq_le: le = LE.le

top: α

eq_top: top =

bot: α

eq_bot: bot =

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

sSup: Set αα

eq_sSup: sSup = SupSet.sSup

sInf: Set αα

eq_sInf: sInf = InfSet.sInf

src✝:= Lattice.copy toLattice le eq_le sup eq_sup inf eq_inf: Lattice α


refine'_6
∀ (x : α), x
α: Type u

c: CompleteLattice α

le: ααProp

eq_le: le = LE.le

top: α

eq_top: top =

bot: α

eq_bot: bot =

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

sSup: Set αα

eq_sSup: sSup = SupSet.sSup

sInf: Set αα

eq_sInf: sInf = InfSet.sInf


α: Type u

c: CompleteLattice α

le: ααProp

eq_le: le = LE.le

top: α

eq_top: top =

bot: α

eq_bot: bot =

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

sSup: Set αα

eq_sSup: sSup = SupSet.sSup

sInf: Set αα

eq_sInf: sInf = InfSet.sInf

src✝:= Lattice.copy toLattice le eq_le sup eq_sup inf eq_inf: Lattice α


refine'_1
∀ (s : Set α) (a : α), a sa SupSet.sSup s
α: Type u

c: CompleteLattice α

le: ααProp

eq_le: le = LE.le

top: α

eq_top: top =

bot: α

eq_bot: bot =

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

sSup: Set αα

eq_sSup: sSup = SupSet.sSup

sInf: Set αα

eq_sInf: sInf = InfSet.sInf

src✝:= Lattice.copy toLattice le eq_le sup eq_sup inf eq_inf: Lattice α


refine'_1
∀ (s : Set α) (a : α), a sa SupSet.sSup s
α: Type u

c: CompleteLattice α

le: ααProp

eq_le: le = LE.le

top: α

eq_top: top =

bot: α

eq_bot: bot =

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

sSup: Set αα

eq_sSup: sSup = SupSet.sSup

sInf: Set αα

eq_sInf: sInf = InfSet.sInf

src✝:= Lattice.copy toLattice le eq_le sup eq_sup inf eq_inf: Lattice α


refine'_2
∀ (s : Set α) (a : α), (∀ (b : α), b sb a) → SupSet.sSup s a
α: Type u

c: CompleteLattice α

le: ααProp

eq_le: le = LE.le

top: α

eq_top: top =

bot: α

eq_bot: bot =

sup: ααα

eq_sup: sup = Sup.sup

inf: ααα

eq_inf: inf = Inf.inf

sSup: Set αα

eq_sSup: sSup = SupSet.sSup

sInf: Set αα

eq_sInf: sInf = InfSet.sInf

src✝:= Lattice.copy toLattice le eq_le sup eq_sup inf eq_inf: Lattice α


refine'_3
∀ (s : Set α) (a : α), a s