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.
import Pretty.Defs.Factory
import Pretty.Tactic

/-!
## The cost factory for SnowWhite
-/

def 
maxw:
maxw
:
: Type
:=
80: ?m.4
80
/-- The cost factory for SnowWhite (Section 6) along with proofs that the operations satisfy the contracts imposed by the cost factory interface. -/ def
ourFactory: Factory ( × )
ourFactory
:
Factory: TypeType
Factory
(
: Type
×
: Type
) := { le := fun
sumo₁:
sumo₁
,
h₁:
h₁
⟩ ⟨
sumo₂:
sumo₂
,
h₂:
h₂
⟩ => if
sumo₁:
sumo₁
=
sumo₂:
sumo₂
then
h₁:
h₁
h₂:
h₂
else
sumo₁:
sumo₁
<
sumo₂:
sumo₂
, concat := fun
sumo₁:
sumo₁
,
h₁:
h₁
⟩ ⟨
sumo₂:
sumo₂
,
h₂:
h₂
⟩ => ⟨
sumo₁:
sumo₁
+
sumo₂:
sumo₂
,
h₁:
h₁
+
h₂:
h₂
⟩, text := fun
c: ?m.500
c
l: ?m.503
l
=> let
a: ?m.506
a
:= (
max: {α : Type ?u.510} → [self : Max α] → ααα
max
maxw:
maxw
c: ?m.500
c
) -
maxw:
maxw
let
b: ?m.566
b
:=
c: ?m.500
c
+
l: ?m.503
l
- (
max: {α : Type ?u.573} → [self : Max α] → ααα
max
maxw:
maxw
c: ?m.500
c
) ⟨
b: ?m.566
b
* (
2: ?m.638
2
*
a: ?m.506
a
+
b: ?m.566
b
),
0: ?m.743
0
⟩, nl := fun
_: ?m.766
_
=> ⟨
0: ?m.777
0
,
1: ?m.780
1
⟩, W :=
100: ?m.789
100
, text_monotonic :=

Goals accomplished! 🐙

∀ {c c' l : }, c c'(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) ((fun c l => let a := max maxw c - maxw; let b := c + l - max maxw c; (b * (2 * a + b), 0)) c l) ((fun c l => let a := max maxw c - maxw; let b := c + l - max maxw c; (b * (2 * a + b), 0)) c' l) = true

∀ {c c' l : }, c c'(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) ((fun c l => let a := max maxw c - maxw; let b := c + l - max maxw c; (b * (2 * a + b), 0)) c l) ((fun c l => let a := max maxw c - maxw; let b := c + l - max maxw c; (b * (2 * a + b), 0)) c' l) = true

∀ {c c' l : }, c c'(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) ((fun c l => let a := max maxw c - maxw; let b := c + l - max maxw c; (b * (2 * a + b), 0)) c l) ((fun c l => let a := max maxw c - maxw; let b := c + l - max maxw c; (b * (2 * a + b), 0)) c' l) = true
c, c', l:

hc: c c'


(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) ((fun c l => let a := max maxw c - maxw; let b := c + l - max maxw c; (b * (2 * a + b), 0)) c l) ((fun c l => let a := max maxw c - maxw; let b := c + l - max maxw c; (b * (2 * a + b), 0)) c' l) = true

∀ {c c' l : }, c c'(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) ((fun c l => let a := max maxw c - maxw; let b := c + l - max maxw c; (b * (2 * a + b), 0)) c l) ((fun c l => let a := max maxw c - maxw; let b := c + l - max maxw c; (b * (2 * a + b), 0)) c' l) = true
c, c', l:

hc: c c'


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))

∀ {c c' l : }, c c'(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) ((fun c l => let a := max maxw c - maxw; let b := c + l - max maxw c; (b * (2 * a + b), 0)) c l) ((fun c l => let a := max maxw c - maxw; let b := c + l - max maxw c; (b * (2 * a + b), 0)) c' l) = true
c, c', l:

hc: c c'

h_l: l > 0


pos
¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

hc: c c'

h_l: ¬l > 0


neg
¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))

∀ {c c' l : }, c c'(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) ((fun c l => let a := max maxw c - maxw; let b := c + l - max maxw c; (b * (2 * a + b), 0)) c l) ((fun c l => let a := max maxw c - maxw; let b := c + l - max maxw c; (b * (2 * a + b), 0)) c' l) = true
c, c', l:

hc: c c'

h_l: l > 0


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

hc: c c'

h_l: l > 0

h_if0: c = c'


pos
¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

hc: c c'

h_l: l > 0

h_if0: ¬c = c'


neg
¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

hc: c c'

h_l: l > 0


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

hc: c c'

h_l: l > 0

h_if0: c = c'


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))

Goals accomplished! 🐙
c, c', l:

hc: c c'

h_l: l > 0


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

hc: c c'

h_l: l > 0

h_if0: ¬c = c'


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

hc: c c'

h_l: l > 0

h_if0: ¬c = c'


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))

Goals accomplished! 🐙
c, c', l:

hc: c c'

h_l: l > 0

h_if0: ¬c = c'


c < c'
c, c', l:

hc: c c'

h_l: l > 0

h_if0: ¬c = c'


c < c'
c, c', l:

hc: c c'

h_l: l > 0

h_if0: ¬c = c'


c < c'
c, c', l:

hc: c c'

h_l: l > 0

h_if0: ¬c = c'


c < c'
c, c', l:

hc: c c'

h_l: l > 0

h_if0: ¬c = c'


c < c'
c, l:

h_l: l > 0

h_if0: ¬c = c


refl
c < c
c, l:

h_l: l > 0

m✝:

a✝: Nat.le c m✝

h_if0: ¬c = Nat.succ m✝


step
c < Nat.succ m✝
c, c', l:

hc: c c'

h_l: l > 0

h_if0: ¬c = c'


c < c'
c, l:

h_l: l > 0

h_if0: ¬c = c


c < c

Goals accomplished! 🐙
c, c', l:

hc: c c'

h_l: l > 0

h_if0: ¬c = c'


c < c'
c, l:

h_l: l > 0

m✝:

a✝: Nat.le c m✝

h_if0: ¬c = Nat.succ m✝


c < Nat.succ m✝
c, l, m✝:

a✝: c m✝

h_l: 1 l

h_if0: ¬c = m✝ + 1


c m✝
c, l:

h_l: l > 0

m✝:

a✝: Nat.le c m✝

h_if0: ¬c = Nat.succ m✝


c < Nat.succ m✝

Goals accomplished! 🐙

Goals accomplished! 🐙
c, c', l:

hc: c c'

h_l: l > 0

h_if0: ¬c = c'


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

hc: c c'

h_l: l > 0

h_if0: ¬c = c'


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c maxw


pos
¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: ¬c maxw


neg
¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

hc: c c'

h_l: l > 0

h_if0: ¬c = c'


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c maxw


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c maxw


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))

Goals accomplished! 🐙
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c maxw



Goals accomplished! 🐙
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c maxw


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c maxw

h_if': c' maxw


¬(c - maxw = c' - maxw l = 0)l * (2 * (c - maxw) + l) < l * (2 * (c' - maxw) + l)
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c maxw


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c maxw

h_if': c' maxw

h: ¬(c - maxw = c' - maxw l = 0)


l * (2 * (c - maxw) + l) < l * (2 * (c' - maxw) + l)
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c maxw


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c maxw

h_if': c' maxw

h: ¬(c - maxw = c' - maxw l = 0)


h
2 * (c - maxw) + l < 2 * (c' - maxw) + l
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c maxw

h_if': c' maxw

h: ¬(c - maxw = c' - maxw l = 0)


hk
l > 0
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c maxw


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c maxw

h_if': c' maxw

h: ¬(c - maxw = c' - maxw l = 0)


2 * (c - maxw) + l < 2 * (c' - maxw) + l
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c maxw

h_if': c' maxw

h: ¬(c - maxw = c' - maxw l = 0)


h
2 * (c - maxw) < 2 * (c' - maxw)
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c maxw

h_if': c' maxw

h: ¬(c - maxw = c' - maxw l = 0)


2 * (c - maxw) + l < 2 * (c' - maxw) + l
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c maxw

h_if': c' maxw

h: ¬(c - maxw = c' - maxw l = 0)


h.h
c - maxw < c' - maxw
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c maxw

h_if': c' maxw

h: ¬(c - maxw = c' - maxw l = 0)


h.hk
2 > 0
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c maxw

h_if': c' maxw

h: ¬(c - maxw = c' - maxw l = 0)


2 * (c - maxw) + l < 2 * (c' - maxw) + l
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c maxw

h_if': c' maxw

h: ¬(c - maxw = c' - maxw l = 0)


c - maxw < c' - maxw
c, c', l:

h_lt: c < c'

h_if: c maxw

h_if': c' maxw


c - maxw < c' - maxw
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c maxw

h_if': c' maxw

h: ¬(c - maxw = c' - maxw l = 0)


c - maxw < c' - maxw
c, c', l:

h_lt: c < c'

h_if: c maxw

h_if': c' maxw


c - maxw < c' - maxw
c, c', l:

h_lt: c < c'

h_if: c maxw

h_if': c' maxw


h0
c < c'
c, c', l:

h_lt: c < c'

h_if: c maxw

h_if': c' maxw


h1

Goals accomplished! 🐙
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c maxw

h_if': c' maxw

h: ¬(c - maxw = c' - maxw l = 0)


2 * (c - maxw) + l < 2 * (c' - maxw) + l
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c maxw

h_if': c' maxw

h: ¬(c - maxw = c' - maxw l = 0)


2 > 0

Goals accomplished! 🐙
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c maxw


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c maxw

h_if': c' maxw

h: ¬(c - maxw = c' - maxw l = 0)


l > 0

Goals accomplished! 🐙
c, c', l:

hc: c c'

h_l: l > 0

h_if0: ¬c = c'


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: ¬c maxw


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: ¬c maxw


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))

Goals accomplished! 🐙
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw


c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw


c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw


c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw


c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw


c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw


h
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw



Goals accomplished! 🐙

Goals accomplished! 🐙
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: ¬c maxw


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw


¬(c + l - maxw) * (c + l - maxw) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - maxw) * (c + l - maxw) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: ¬c maxw


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' maxw


pos
¬(c + l - maxw) * (c + l - maxw) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - maxw) * (c + l - maxw) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': ¬c' maxw


neg
¬(c + l - maxw) * (c + l - maxw) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - maxw) * (c + l - maxw) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: ¬c maxw


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' maxw


¬(c + l - maxw) * (c + l - maxw) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - maxw) * (c + l - maxw) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' maxw


¬(c + l - maxw) * (c + l - maxw) = l * (2 * (c' - maxw) + l)(c + l - maxw) * (c + l - maxw) < l * (2 * (c' - maxw) + l)
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' maxw


¬(c + l - maxw) * (c + l - maxw) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - maxw) * (c + l - maxw) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' maxw

a✝: ¬(c + l - maxw) * (c + l - maxw) = l * (2 * (c' - maxw) + l)


(c + l - maxw) * (c + l - maxw) < l * (2 * (c' - maxw) + l)
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' maxw


¬(c + l - maxw) * (c + l - maxw) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - maxw) * (c + l - maxw) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' maxw

a✝: ¬(c + l - maxw) * (c + l - maxw) = l * (2 * (c' - maxw) + l)


(c + l - maxw) * (c + l - maxw) < l * (2 * (c' - maxw) + l)

Goals accomplished! 🐙
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' maxw

a✝: ¬(c + l - maxw) * (c + l - maxw) = l * (2 * (c' - maxw) + l)


c + l - maxw < l
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' maxw

a✝: ¬(c + l - maxw) * (c + l - maxw) = l * (2 * (c' - maxw) + l)


c + l - maxw < l
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' maxw

a✝: ¬(c + l - maxw) * (c + l - maxw) = l * (2 * (c' - maxw) + l)


c + l - maxw < l
c, l:

h_l: l > 0

h_if: c < maxw


c + l - maxw < l
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' maxw

a✝: ¬(c + l - maxw) * (c + l - maxw) = l * (2 * (c' - maxw) + l)


c + l - maxw < l
c, l:

h_l: l > 0

h_if: c < maxw


c + l - maxw < l
c, l:

h_l: l > 0

h_if: c < maxw


l + c - maxw < l
c, l:

h_l: l > 0

h_if: c < maxw


c + l - maxw < l
c, l:

h_l: l > 0

h_if: c < maxw


l - (maxw - c) < l
c, l:

h_l: l > 0

h_if: c < maxw


c, l:

h_l: l > 0

h_if: c < maxw


l - (maxw - c) < l
c, l:

h_l: l > 0

h_if: c < maxw


c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' maxw

a✝: ¬(c + l - maxw) * (c + l - maxw) = l * (2 * (c' - maxw) + l)


c + l - maxw < l
c, l:

h_l: l > 0

h_if: c < maxw


l - (maxw - c) < l
c, l:

h_l: l > 0

h_if: c < maxw


c, l:

h_l: l > 0

h_if: c < maxw

v:

h: maxw - c = v


l - v < l
c, l:

h_l: l > 0

h_if: c < maxw


l - (maxw - c) < l
c, l:

h_l: l > 0

h_if: c < maxw


c, l:

h_l: l > 0

h_if: c < maxw

h: maxw - c = Nat.zero


zero
c, l:

h_l: l > 0

h_if: c < maxw

n✝:

h: maxw - c = Nat.succ n✝


succ
l - Nat.succ n✝ < l
c, l:

h_l: l > 0

h_if: c < maxw


l - (maxw - c) < l
c, l:

h_l: l > 0

h_if: c < maxw


c, l:

h_l: l > 0

h_if: c < maxw

h: maxw - c = Nat.zero


c, l:

h_l: l > 0

h_if: c < maxw

h: maxw c


c, l:

h_l: l > 0

h_if: c < maxw

h: maxw - c = Nat.zero



Goals accomplished! 🐙
c, l:

h_l: l > 0

h_if: c < maxw


l - (maxw - c) < l
c, l:

h_l: l > 0

h_if: c < maxw


c, l:

h_l: l > 0

h_if: c < maxw

n✝:

h: maxw - c = Nat.succ n✝


l - Nat.succ n✝ < l
l:

h_l: l > 0

n✝:


l - Nat.succ n✝ < l
c, l:

h_l: l > 0

h_if: c < maxw

n✝:

h: maxw - c = Nat.succ n✝


l - Nat.succ n✝ < l
n✝:

h_l: Nat.zero > 0


zero
n✝¹, n✝:

h_l: Nat.succ n✝ > 0


succ
Nat.succ n✝ - Nat.succ n✝¹ < Nat.succ n✝
c, l:

h_l: l > 0

h_if: c < maxw

n✝:

h: maxw - c = Nat.succ n✝


l - Nat.succ n✝ < l

Goals accomplished! 🐙
c, l:

h_l: l > 0

h_if: c < maxw

n✝:

h: maxw - c = Nat.succ n✝


l - Nat.succ n✝ < l
n✝¹, n✝:

h_l: Nat.succ n✝ > 0


Nat.succ n✝ - Nat.succ n✝¹ < Nat.succ n✝

Goals accomplished! 🐙
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' maxw

a✝: ¬(c + l - maxw) * (c + l - maxw) = l * (2 * (c' - maxw) + l)


c + l - maxw < l
c, l:

h_l: l > 0

h_if: c < maxw


c, l:

h_l: l > 0

h_if: c < maxw


h
c, l:

h_l: l > 0

h_if: c < maxw



Goals accomplished! 🐙

Goals accomplished! 🐙
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' maxw


¬(c + l - maxw) * (c + l - maxw) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - maxw) * (c + l - maxw) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' maxw

a✝: ¬(c + l - maxw) * (c + l - maxw) = l * (2 * (c' - maxw) + l)

this: c + l - maxw < l


(c + l - maxw) * (c + l - maxw) < l * (2 * (c' - maxw) + l)

Goals accomplished! 🐙
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' maxw

a✝: ¬(c + l - maxw) * (c + l - maxw) = l * (2 * (c' - maxw) + l)

this: c + l - maxw < l


c + l - maxw < 2 * (c' - maxw) + l

Goals accomplished! 🐙
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' maxw


¬(c + l - maxw) * (c + l - maxw) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - maxw) * (c + l - maxw) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' maxw

a✝: ¬(c + l - maxw) * (c + l - maxw) = l * (2 * (c' - maxw) + l)

this: c + l - maxw < l

this2: c + l - maxw < 2 * (c' - maxw) + l


(c + l - maxw) * (c + l - maxw) < l * (2 * (c' - maxw) + l)
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' maxw

a✝: ¬(c + l - maxw) * (c + l - maxw) = l * (2 * (c' - maxw) + l)

this: c + l - maxw < l

this2: c + l - maxw < 2 * (c' - maxw) + l


h1
c + l - maxw < l
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' maxw

a✝: ¬(c + l - maxw) * (c + l - maxw) = l * (2 * (c' - maxw) + l)

this: c + l - maxw < l

this2: c + l - maxw < 2 * (c' - maxw) + l


h2
c + l - maxw < 2 * (c' - maxw) + l

Goals accomplished! 🐙
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: ¬c maxw


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': ¬c' maxw


¬(c + l - maxw) * (c + l - maxw) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - maxw) * (c + l - maxw) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw


¬(c + l - maxw) * (c + l - maxw) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - maxw) * (c + l - maxw) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': ¬c' maxw


¬(c + l - maxw) * (c + l - maxw) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - maxw) * (c + l - maxw) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw


¬(c + l - maxw) * (c + l - maxw) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - maxw) * (c + l - maxw) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))

Goals accomplished! 🐙
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw


c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw


c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw


c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw


c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw


c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw


h
c' < maxw
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw



Goals accomplished! 🐙

Goals accomplished! 🐙
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': ¬c' maxw


¬(c + l - maxw) * (c + l - maxw) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - maxw) * (c + l - maxw) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw


¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)(c + l - maxw) * (c + l - maxw) < (c' + l - maxw) * (c' + l - maxw)
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': ¬c' maxw


¬(c + l - maxw) * (c + l - maxw) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - maxw) * (c + l - maxw) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)


(c + l - maxw) * (c + l - maxw) < (c' + l - maxw) * (c' + l - maxw)
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': ¬c' maxw


¬(c + l - maxw) * (c + l - maxw) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - maxw) * (c + l - maxw) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)


a
c + l - maxw < c' + l - maxw
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': ¬c' maxw


¬(c + l - maxw) * (c + l - maxw) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - maxw) * (c + l - maxw) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l maxw


pos
c + l - maxw < c' + l - maxw
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': ¬c + l maxw


neg
c + l - maxw < c' + l - maxw
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': ¬c' maxw


¬(c + l - maxw) * (c + l - maxw) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - maxw) * (c + l - maxw) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l maxw


c + l - maxw < c' + l - maxw
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l maxw


c + l - maxw < c' + l - maxw

Goals accomplished! 🐙
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l maxw


c' + l maxw

Goals accomplished! 🐙
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l maxw


c + l - maxw < c' + l - maxw
c, c', l:

h_lt: c < c'

h_if'': c + l maxw

h_if''': c' + l maxw


c + l - maxw < c' + l - maxw
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l maxw


c + l - maxw < c' + l - maxw
c, c', l:

h_lt: c < c'

h_if'': c + l maxw

h_if''': c' + l maxw


c + l - maxw < c' + l - maxw
c, c', l:

h_lt: c < c'

h_if'': c + l maxw

h_if''': c' + l maxw


h0
c + l < c' + l
c, c', l:

h_lt: c < c'

h_if'': c + l maxw

h_if''': c' + l maxw


h1
maxw c + l
c, c', l:

h_lt: c < c'

h_if'': c + l maxw

h_if''': c' + l maxw


h0
c + l < c' + l
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l maxw


c + l - maxw < c' + l - maxw

Goals accomplished! 🐙
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': ¬c' maxw


¬(c + l - maxw) * (c + l - maxw) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - maxw) * (c + l - maxw) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': ¬c + l maxw


c + l - maxw < c' + l - maxw
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l < maxw


c + l - maxw < c' + l - maxw
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': ¬c + l maxw


c + l - maxw < c' + l - maxw
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l < maxw


c + l - maxw < c' + l - maxw

Goals accomplished! 🐙
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l < maxw


c + l - maxw = 0
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l < maxw


c + l - maxw = 0
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l < maxw


c + l - maxw = 0
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l < maxw


c + l maxw
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l < maxw


c + l - maxw = 0
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l < maxw


h
c + l < maxw
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l < maxw


c + l - maxw = 0

Goals accomplished! 🐙

Goals accomplished! 🐙
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': ¬c + l maxw


c + l - maxw < c' + l - maxw
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l < maxw

this: c + l - maxw = 0

h_if''': c' + l > maxw


pos
c + l - maxw < c' + l - maxw
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l < maxw

this: c + l - maxw = 0

h_if''': ¬c' + l > maxw


neg
c + l - maxw < c' + l - maxw
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': ¬c + l maxw


c + l - maxw < c' + l - maxw
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l < maxw

this: c + l - maxw = 0

h_if''': c' + l > maxw


c + l - maxw < c' + l - maxw
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l < maxw

this: c + l - maxw = 0

h_if''': c' + l > maxw


maxw < c' + l
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l < maxw

this: c + l - maxw = 0

h_if''': c' + l > maxw


c + l - maxw < c' + l - maxw
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l < maxw

this: c + l - maxw = 0

h_if''': maxw < c' + l


maxw < c' + l
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l < maxw

this: c + l - maxw = 0

h_if''': c' + l > maxw


c + l - maxw < c' + l - maxw

Goals accomplished! 🐙
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': ¬c + l maxw


c + l - maxw < c' + l - maxw
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l < maxw

this: c + l - maxw = 0

h_if''': ¬c' + l > maxw


c + l - maxw < c' + l - maxw
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l < maxw

this: c + l - maxw = 0

h_if''': c' + l maxw


c + l - maxw < c' + l - maxw
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l < maxw

this: c + l - maxw = 0

h_if''': ¬c' + l > maxw


c + l - maxw < c' + l - maxw
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l < maxw

this: c + l - maxw = 0

h_if''': c' + l maxw


c + l - maxw < c' + l - maxw

Goals accomplished! 🐙
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l < maxw

this: c + l - maxw = 0

h_if''': c' + l maxw


c' + l - maxw = 0
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l < maxw

this: c + l - maxw = 0

h_if''': c' + l maxw


c' + l - maxw = 0
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l < maxw

this: c + l - maxw = 0

h_if''': c' + l maxw


c' + l - maxw = 0

Goals accomplished! 🐙

Goals accomplished! 🐙
c, c', l:

h_l: l > 0

h_lt: c < c'

h_if: c < maxw

h_max: max maxw c = maxw

h_if': c' < maxw

h_max': max maxw c' = maxw

h: ¬(c + l - maxw) * (c + l - maxw) = (c' + l - maxw) * (c' + l - maxw)

h_if'': c + l < maxw

this: c + l - maxw = 0

h_if''': ¬c' + l > maxw


c + l - maxw < c' + l - maxw

Goals accomplished! 🐙

∀ {c c' l : }, c c'(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) ((fun c l => let a := max maxw c - maxw; let b := c + l - max maxw c; (b * (2 * a + b), 0)) c l) ((fun c l => let a := max maxw c - maxw; let b := c + l - max maxw c; (b * (2 * a + b), 0)) c' l) = true
c, c', l:

hc: c c'

h_l: ¬l > 0


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

hc: c c'

h_l: ¬l > 0

h: ¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))


(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

hc: c c'

h_l: ¬l > 0


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

hc: c c'

h: ¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))

h_l: l = 0


(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))
c, c', l:

hc: c c'

h_l: ¬l > 0


¬(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) = (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))(c + l - max maxw c) * (2 * (max maxw c - maxw) + (c + l - max maxw c)) < (c' + l - max maxw c') * (2 * (max maxw c' - maxw) + (c' + l - max maxw c'))

Goals accomplished! 🐙

Goals accomplished! 🐙
, nl_monotonic :=

Goals accomplished! 🐙

∀ {i i' : }, i i'(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) ((fun x => (0, 1)) i) ((fun x => (0, 1)) i') = true

Goals accomplished! 🐙
, concat_monotonic :=

Goals accomplished! 🐙

∀ {cost₁ cost₂ cost₃ cost₄ : × }, (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) cost₁ cost₂ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) cost₃ cost₄ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) ((fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => (sumo₁ + sumo₂, h₁ + h₂)) cost₁ cost₃) ((fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => (sumo₁ + sumo₂, h₁ + h₂)) cost₂ cost₄) = true

∀ {cost₁ cost₂ cost₃ cost₄ : × }, (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) cost₁ cost₂ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) cost₃ cost₄ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) ((fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => (sumo₁ + sumo₂, h₁ + h₂)) cost₁ cost₃) ((fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => (sumo₁ + sumo₂, h₁ + h₂)) cost₂ cost₄) = true

∀ {cost₁ cost₂ cost₃ cost₄ : × }, (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) cost₁ cost₂ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) cost₃ cost₄ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) ((fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => (sumo₁ + sumo₂, h₁ + h₂)) cost₁ cost₃) ((fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => (sumo₁ + sumo₂, h₁ + h₂)) cost₂ cost₄) = true
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃, sumo₄, h₄:


(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) (sumo₁, h₁) (sumo₂, h₂) = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) (sumo₃, h₃) (sumo₄, h₄) = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) ((fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => (sumo₁ + sumo₂, h₁ + h₂)) (sumo₁, h₁) (sumo₃, h₃)) ((fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => (sumo₁ + sumo₂, h₁ + h₂)) (sumo₂, h₂) (sumo₄, h₄)) = true

∀ {cost₁ cost₂ cost₃ cost₄ : × }, (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) cost₁ cost₂ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) cost₃ cost₄ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) ((fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => (sumo₁ + sumo₂, h₁ + h₂)) cost₁ cost₃) ((fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => (sumo₁ + sumo₂, h₁ + h₂)) cost₂ cost₄) = true
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃, sumo₄, h₄:


(if sumo₁ = sumo₂ then h₁ h₂ else sumo₁ < sumo₂) → (if sumo₃ = sumo₄ then h₃ h₄ else sumo₃ < sumo₄) → if sumo₁ + sumo₃ = sumo₂ + sumo₄ then h₁ + h₃ h₂ + h₄ else sumo₁ + sumo₃ < sumo₂ + sumo₄

∀ {cost₁ cost₂ cost₃ cost₄ : × }, (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) cost₁ cost₂ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) cost₃ cost₄ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) ((fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => (sumo₁ + sumo₂, h₁ + h₂)) cost₁ cost₃) ((fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => (sumo₁ + sumo₂, h₁ + h₂)) cost₂ cost₄) = true
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃, sumo₄, h₄:

h✝²: sumo₁ = sumo₂

h✝¹: sumo₃ = sumo₄

h✝: sumo₁ + sumo₃ = sumo₂ + sumo₄


inl.inl.inl
h₁ h₂h₃ h₄h₁ + h₃ h₂ + h₄
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃, sumo₄, h₄:

h✝²: sumo₁ = sumo₂

h✝¹: sumo₃ = sumo₄

h✝: ¬sumo₁ + sumo₃ = sumo₂ + sumo₄


inl.inl.inr
h₁ h₂h₃ h₄sumo₁ + sumo₃ < sumo₂ + sumo₄
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃, sumo₄, h₄:

h✝²: sumo₁ = sumo₂

h✝¹: ¬sumo₃ = sumo₄

h✝: sumo₁ + sumo₃ = sumo₂ + sumo₄


inl.inr.inl
h₁ h₂sumo₃ < sumo₄h₁ + h₃ h₂ + h₄
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃, sumo₄, h₄:

h✝²: sumo₁ = sumo₂

h✝¹: ¬sumo₃ = sumo₄

h✝: ¬sumo₁ + sumo₃ = sumo₂ + sumo₄


inl.inr.inr
h₁ h₂sumo₃ < sumo₄sumo₁ + sumo₃ < sumo₂ + sumo₄
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃, sumo₄, h₄:

h✝²: ¬sumo₁ = sumo₂

h✝¹: sumo₃ = sumo₄

h✝: sumo₁ + sumo₃ = sumo₂ + sumo₄


inr.inl.inl
sumo₁ < sumo₂h₃ h₄h₁ + h₃ h₂ + h₄
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃, sumo₄, h₄:

h✝²: ¬sumo₁ = sumo₂

h✝¹: sumo₃ = sumo₄

h✝: ¬sumo₁ + sumo₃ = sumo₂ + sumo₄


inr.inl.inr
sumo₁ < sumo₂h₃ h₄sumo₁ + sumo₃ < sumo₂ + sumo₄
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃, sumo₄, h₄:

h✝²: ¬sumo₁ = sumo₂

h✝¹: ¬sumo₃ = sumo₄

h✝: sumo₁ + sumo₃ = sumo₂ + sumo₄


inr.inr.inl
sumo₁ < sumo₂sumo₃ < sumo₄h₁ + h₃ h₂ + h₄
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃, sumo₄, h₄:

h✝²: ¬sumo₁ = sumo₂

h✝¹: ¬sumo₃ = sumo₄

h✝: ¬sumo₁ + sumo₃ = sumo₂ + sumo₄


inr.inr.inr
sumo₁ < sumo₂sumo₃ < sumo₄sumo₁ + sumo₃ < sumo₂ + sumo₄

∀ {cost₁ cost₂ cost₃ cost₄ : × }, (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) cost₁ cost₂ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) cost₃ cost₄ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) ((fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => (sumo₁ + sumo₂, h₁ + h₂)) cost₁ cost₃) ((fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => (sumo₁ + sumo₂, h₁ + h₂)) cost₂ cost₄) = true
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃, sumo₄, h₄:

h✝²: sumo₁ = sumo₂

h✝¹: sumo₃ = sumo₄

h✝: sumo₁ + sumo₃ = sumo₂ + sumo₄


h₁ h₂h₃ h₄h₁ + h₃ h₂ + h₄
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃, sumo₄, h₄:

h✝²: sumo₁ = sumo₂

h✝¹: sumo₃ = sumo₄

h✝: sumo₁ + sumo₃ = sumo₂ + sumo₄

h1: h₁ h₂

h2: h₃ h₄


h₁ + h₃ h₂ + h₄
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃, sumo₄, h₄:

h✝²: ¬sumo₁ = sumo₂

h✝¹: ¬sumo₃ = sumo₄

h✝: sumo₁ + sumo₃ = sumo₂ + sumo₄


sumo₁ < sumo₂sumo₃ < sumo₄h₁ + h₃ h₂ + h₄

Goals accomplished! 🐙

∀ {cost₁ cost₂ cost₃ cost₄ : × }, (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) cost₁ cost₂ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) cost₃ cost₄ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) ((fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => (sumo₁ + sumo₂, h₁ + h₂)) cost₁ cost₃) ((fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => (sumo₁ + sumo₂, h₁ + h₂)) cost₂ cost₄) = true
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃, sumo₄, h₄:

h✝²: sumo₁ = sumo₂

h✝¹: ¬sumo₃ = sumo₄

h✝: sumo₁ + sumo₃ = sumo₂ + sumo₄


h₁ h₂sumo₃ < sumo₄h₁ + h₃ h₂ + h₄

Goals accomplished! 🐙

Goals accomplished! 🐙
, le_trans :=

Goals accomplished! 🐙

∀ {c₁ c₂ c₃ : × }, (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₂ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₂ c₃ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₃ = true

∀ {c₁ c₂ c₃ : × }, (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₂ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₂ c₃ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₃ = true

∀ {c₁ c₂ c₃ : × }, (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₂ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₂ c₃ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₃ = true
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃:


(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) (sumo₁, h₁) (sumo₂, h₂) = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) (sumo₂, h₂) (sumo₃, h₃) = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) (sumo₁, h₁) (sumo₃, h₃) = true

∀ {c₁ c₂ c₃ : × }, (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₂ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₂ c₃ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₃ = true
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃:


(if sumo₁ = sumo₂ then h₁ h₂ else sumo₁ < sumo₂) → (if sumo₂ = sumo₃ then h₂ h₃ else sumo₂ < sumo₃) → if sumo₁ = sumo₃ then h₁ h₃ else sumo₁ < sumo₃

∀ {c₁ c₂ c₃ : × }, (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₂ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₂ c₃ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₃ = true
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃:

h✝²: sumo₁ = sumo₂

h✝¹: sumo₂ = sumo₃

h✝: sumo₁ = sumo₃


inl.inl.inl
h₁ h₂h₂ h₃h₁ h₃
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃:

h✝²: sumo₁ = sumo₂

h✝¹: sumo₂ = sumo₃

h✝: ¬sumo₁ = sumo₃


inl.inl.inr
h₁ h₂h₂ h₃sumo₁ < sumo₃
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃:

h✝²: sumo₁ = sumo₂

h✝¹: ¬sumo₂ = sumo₃

h✝: sumo₁ = sumo₃


inl.inr.inl
h₁ h₂sumo₂ < sumo₃h₁ h₃
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃:

h✝²: sumo₁ = sumo₂

h✝¹: ¬sumo₂ = sumo₃

h✝: ¬sumo₁ = sumo₃


inl.inr.inr
h₁ h₂sumo₂ < sumo₃sumo₁ < sumo₃
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃:

h✝²: ¬sumo₁ = sumo₂

h✝¹: sumo₂ = sumo₃

h✝: sumo₁ = sumo₃


inr.inl.inl
sumo₁ < sumo₂h₂ h₃h₁ h₃
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃:

h✝²: ¬sumo₁ = sumo₂

h✝¹: sumo₂ = sumo₃

h✝: ¬sumo₁ = sumo₃


inr.inl.inr
sumo₁ < sumo₂h₂ h₃sumo₁ < sumo₃
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃:

h✝²: ¬sumo₁ = sumo₂

h✝¹: ¬sumo₂ = sumo₃

h✝: sumo₁ = sumo₃


inr.inr.inl
sumo₁ < sumo₂sumo₂ < sumo₃h₁ h₃
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃:

h✝²: ¬sumo₁ = sumo₂

h✝¹: ¬sumo₂ = sumo₃

h✝: ¬sumo₁ = sumo₃


inr.inr.inr
sumo₁ < sumo₂sumo₂ < sumo₃sumo₁ < sumo₃

∀ {c₁ c₂ c₃ : × }, (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₂ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₂ c₃ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₃ = true
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃:

h✝²: ¬sumo₁ = sumo₂

h✝¹: sumo₂ = sumo₃

h✝: ¬sumo₁ = sumo₃


sumo₁ < sumo₂h₂ h₃sumo₁ < sumo₃
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃:

h✝²: ¬sumo₁ = sumo₂

h✝¹: ¬sumo₂ = sumo₃

h✝: sumo₁ = sumo₃

h1: sumo₁ < sumo₂

h2: sumo₂ < sumo₃


h₁ h₃
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃:

h✝²: ¬sumo₁ = sumo₂

h✝¹: ¬sumo₂ = sumo₃

h✝: sumo₁ = sumo₃


sumo₁ < sumo₂sumo₂ < sumo₃h₁ h₃

Goals accomplished! 🐙

∀ {c₁ c₂ c₃ : × }, (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₂ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₂ c₃ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₃ = true
sumo₁, h₁, sumo₂, h₂, sumo₃, h₃:

h✝²: sumo₁ = sumo₂

h✝¹: ¬sumo₂ = sumo₃

h✝: sumo₁ = sumo₃


h₁ h₂sumo₂ < sumo₃h₁ h₃

Goals accomplished! 🐙

Goals accomplished! 🐙
, le_antisymm :=

Goals accomplished! 🐙

∀ {c₁ c₂ : × }, (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₂ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₂ c₁ = truec₁ = c₂

∀ {c₁ c₂ : × }, (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₂ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₂ c₁ = truec₁ = c₂

∀ {c₁ c₂ : × }, (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₂ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₂ c₁ = truec₁ = c₂
sumo₁, h₁, sumo₂, h₂:


(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) (sumo₁, h₁) (sumo₂, h₂) = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) (sumo₂, h₂) (sumo₁, h₁) = true(sumo₁, h₁) = (sumo₂, h₂)

∀ {c₁ c₂ : × }, (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₂ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₂ c₁ = truec₁ = c₂
sumo₁, h₁, sumo₂, h₂:


(if sumo₁ = sumo₂ then h₁ h₂ else sumo₁ < sumo₂) → (if sumo₂ = sumo₁ then h₂ h₁ else sumo₂ < sumo₁) → sumo₁ = sumo₂ h₁ = h₂

∀ {c₁ c₂ : × }, (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₂ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₂ c₁ = truec₁ = c₂
sumo₁, h₁, sumo₂, h₂:

h✝¹: sumo₁ = sumo₂

h✝: sumo₂ = sumo₁


inl.inl
h₁ h₂h₂ h₁sumo₁ = sumo₂ h₁ = h₂
sumo₁, h₁, sumo₂, h₂:

h✝¹: sumo₁ = sumo₂

h✝: ¬sumo₂ = sumo₁


inl.inr
h₁ h₂sumo₂ < sumo₁sumo₁ = sumo₂ h₁ = h₂
sumo₁, h₁, sumo₂, h₂:

h✝¹: ¬sumo₁ = sumo₂

h✝: sumo₂ = sumo₁


inr.inl
sumo₁ < sumo₂h₂ h₁sumo₁ = sumo₂ h₁ = h₂
sumo₁, h₁, sumo₂, h₂:

h✝¹: ¬sumo₁ = sumo₂

h✝: ¬sumo₂ = sumo₁


inr.inr
sumo₁ < sumo₂sumo₂ < sumo₁sumo₁ = sumo₂ h₁ = h₂

∀ {c₁ c₂ : × }, (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₂ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₂ c₁ = truec₁ = c₂
sumo₁, h₁, sumo₂, h₂:

h✝: sumo₁ = sumo₂

h: sumo₂ = sumo₁


h₁ h₂h₂ h₁sumo₁ = sumo₂ h₁ = h₂
sumo₁, h₁, sumo₂, h₂:

h✝: sumo₁ = sumo₂

h: sumo₂ = sumo₁

h1: h₁ h₂

h2: h₂ h₁


sumo₁ = sumo₂ h₁ = h₂
sumo₁, h₁, sumo₂, h₂:

h✝: sumo₁ = sumo₂

h: sumo₂ = sumo₁


h₁ h₂h₂ h₁sumo₁ = sumo₂ h₁ = h₂
sumo₁, h₁, sumo₂, h₂:

h✝: sumo₁ = sumo₂

h: sumo₂ = sumo₁

h1: h₁ h₂

h2: h₂ h₁


h₁ = h₂
sumo₁, h₁, sumo₂, h₂:

h✝: sumo₁ = sumo₂

h: sumo₂ = sumo₁


h₁ h₂h₂ h₁sumo₁ = sumo₂ h₁ = h₂
sumo₁, h₁, sumo₂, h₂:

h✝: sumo₁ = sumo₂

h: sumo₂ = sumo₁

h1: h₁ h₂

h2: h₂ h₁


h₁ = h₂
sumo₁, h₁, sumo₂, h₂:

h✝: sumo₁ = sumo₂

h: sumo₂ = sumo₁

h1: h₁ h₂

h2: h₂ h₁


h₁
h₁ h₂
sumo₁, h₁, sumo₂, h₂:

h✝: sumo₁ = sumo₂

h: sumo₂ = sumo₁

h1: h₁ h₂

h2: h₂ h₁


h₂
h₂ h₁

Goals accomplished! 🐙

∀ {c₁ c₂ : × }, (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₂ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₂ c₁ = truec₁ = c₂
sumo₁, h₁, sumo₂, h₂:

h✝¹: ¬sumo₁ = sumo₂

h✝: sumo₂ = sumo₁


sumo₁ < sumo₂h₂ h₁sumo₁ = sumo₂ h₁ = h₂

Goals accomplished! 🐙

∀ {c₁ c₂ : × }, (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₂ = true(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₂ c₁ = truec₁ = c₂
sumo₁, h₁, sumo₂, h₂:

h✝¹: ¬sumo₁ = sumo₂

h✝: ¬sumo₂ = sumo₁


sumo₁ < sumo₂sumo₂ < sumo₁sumo₁ = sumo₂ h₁ = h₂
sumo₁, h₁, sumo₂, h₂:

h✝¹: ¬sumo₁ = sumo₂

h✝: ¬sumo₂ = sumo₁

h1: sumo₁ < sumo₂

h2: sumo₂ < sumo₁


sumo₁ = sumo₂ h₁ = h₂
sumo₁, h₁, sumo₂, h₂:

h✝¹: ¬sumo₁ = sumo₂

h✝: ¬sumo₂ = sumo₁


sumo₁ < sumo₂sumo₂ < sumo₁sumo₁ = sumo₂ h₁ = h₂

Goals accomplished! 🐙

Goals accomplished! 🐙
le_total :=

Goals accomplished! 🐙

∀ (c₁ c₂ : × ), (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₂ = true (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₂ c₁ = true

∀ (c₁ c₂ : × ), (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₂ = true (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₂ c₁ = true

∀ (c₁ c₂ : × ), (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₂ = true (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₂ c₁ = true
sumo₁, h₁, sumo₂, h₂:


(fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) (sumo₁, h₁) (sumo₂, h₂) = true (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) (sumo₂, h₂) (sumo₁, h₁) = true

∀ (c₁ c₂ : × ), (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₂ = true (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₂ c₁ = true
sumo₁, h₁, sumo₂, h₂:


(if sumo₁ = sumo₂ then h₁ h₂ else sumo₁ < sumo₂) if sumo₂ = sumo₁ then h₂ h₁ else sumo₂ < sumo₁

∀ (c₁ c₂ : × ), (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₂ = true (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₂ c₁ = true
sumo₁, h₁, sumo₂, h₂:

h✝¹: sumo₁ = sumo₂

h✝: sumo₂ = sumo₁


inl.inl
h₁ h₂ h₂ h₁
sumo₁, h₁, sumo₂, h₂:

h✝¹: sumo₁ = sumo₂

h✝: ¬sumo₂ = sumo₁


inl.inr
h₁ h₂ sumo₂ < sumo₁
sumo₁, h₁, sumo₂, h₂:

h✝¹: ¬sumo₁ = sumo₂

h✝: sumo₂ = sumo₁


inr.inl
sumo₁ < sumo₂ h₂ h₁
sumo₁, h₁, sumo₂, h₂:

h✝¹: ¬sumo₁ = sumo₂

h✝: ¬sumo₂ = sumo₁


inr.inr
sumo₁ < sumo₂ sumo₂ < sumo₁

∀ (c₁ c₂ : × ), (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₂ = true (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₂ c₁ = true
sumo₁, h₁, sumo₂, h₂:

h✝¹: sumo₁ = sumo₂

h✝: sumo₂ = sumo₁


h₁ h₂ h₂ h₁

Goals accomplished! 🐙

∀ (c₁ c₂ : × ), (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₁ c₂ = true (fun x x_1 => match x with | (sumo₁, h₁) => match x_1 with | (sumo₂, h₂) => if sumo₁ = sumo₂ then decide (h₁ h₂) else decide (sumo₁ < sumo₂)) c₂ c₁ = true
sumo₁, h₁, sumo₂, h₂:

h✝¹: ¬sumo₁ = sumo₂

h✝: ¬sumo₂ = sumo₁


sumo₁ < sumo₂ sumo₂ < sumo₁

Goals accomplished! 🐙

Goals accomplished! 🐙
}