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.Supports.ResolvePareto

/-!
This set of lemmas states that a measure set from resolving will consist of 
measures whose last line length is bound by $W_F$
-/

mutual
  lemma 
ResolveConcatOne_last: ∀ {α : Type} {F : Factory α} {d : Doc} {m_left : Meas} {i : } {ms : List Meas} {h_not_empty : ms []} {m : Meas}, ResolveConcatOne F d m_left i (MeasureSet.set ms h_not_empty)m msm.last F.W
ResolveConcatOne_last
(
h: ResolveConcatOne F d m_left i (MeasureSet.set ms h_not_empty)
h
:
ResolveConcatOne: {α : Type} → Factory αDocMeasMeasureSetProp
ResolveConcatOne
F: ?m.4
F
d: ?m.11
d
m_left: ?m.17
m_left
i: ?m.24
i
(
MeasureSet.set: {α : Type} → (ms : List Meas) → ms []MeasureSet
MeasureSet.set
ms: ?m.33
ms
h_not_empty: ?m.42
h_not_empty
)) (
h_in: m ms
h_in
:
m: ?m.70
m
ms: ?m.33
ms
) :
m: ?m.70
m
.
last: {α : Type} → Meas
last
F: ?m.4
F
.
W: {α : Type} → Factory α
W
:=

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

m_left: Meas

i:

ms: List Meas

h_not_empty: ms []

m: Meas

h: ResolveConcatOne F d m_left i (MeasureSet.set ms h_not_empty)

h_in: m ms


m.last F.W
α✝: Type

F: Factory α✝

d: Doc

m_left: Meas

i:

m: Meas

ms✝: List Meas

h_non_empty✝: ms✝ []

h✝: Resolve F d m_left.last i (MeasureSet.set ms✝ h_non_empty✝)

h_not_empty: dedup F (List.map (fun m' => Meas.concat F m_left m') ms✝) []

h_in: m dedup F (List.map (fun m' => Meas.concat F m_left m') ms✝)


set
m.last F.W
α✝: Type

F: Factory α✝

d: Doc

m_left: Meas

i:

ms: List Meas

h_not_empty: ms []

m: Meas

h: ResolveConcatOne F d m_left i (MeasureSet.set ms h_not_empty)

h_in: m ms


m.last F.W
α✝: Type

F: Factory α✝

d: Doc

m_left: Meas

i:

m: Meas

ms✝: List Meas

h_non_empty✝: ms✝ []

h: Resolve F d m_left.last i (MeasureSet.set ms✝ h_non_empty✝)

h_not_empty: dedup F (List.map (fun m' => Meas.concat F m_left m') ms✝) []

h_in: m dedup F (List.map (fun m' => Meas.concat F m_left m') ms✝)


m.last F.W
α✝: Type

F: Factory α✝

d: Doc

m_left: Meas

i:

m: Meas

ms✝: List Meas

h_non_empty✝: ms✝ []

h: Resolve F d m_left.last i (MeasureSet.set ms✝ h_non_empty✝)

h_not_empty: dedup F (List.map (fun m' => Meas.concat F m_left m') ms✝) []

h_in: m dedup F (List.map (fun m' => Meas.concat F m_left m') ms✝)

this: m List.map (fun m' => Meas.concat F m_left m') ms✝


m.last F.W
α✝: Type

F: Factory α✝

d: Doc

m_left: Meas

i:

m: Meas

ms✝: List Meas

h_non_empty✝: ms✝ []

h: Resolve F d m_left.last i (MeasureSet.set ms✝ h_non_empty✝)

h_not_empty: dedup F (List.map (fun m' => Meas.concat F m_left m') ms✝) []

h_in: m dedup F (List.map (fun m' => Meas.concat F m_left m') ms✝)


m.last F.W
α✝: Type

F: Factory α✝

d: Doc

m_left: Meas

i:

m: Meas

ms✝: List Meas

h_non_empty✝: ms✝ []

h: Resolve F d m_left.last i (MeasureSet.set ms✝ h_non_empty✝)

h_not_empty: dedup F (List.map (fun m' => Meas.concat F m_left m') ms✝) []

h_in: m dedup F (List.map (fun m' => Meas.concat F m_left m') ms✝)

this: a, a ms✝ Meas.concat F m_left a = m


m.last F.W
α✝: Type

F: Factory α✝

d: Doc

m_left: Meas

i:

m: Meas

ms✝: List Meas

h_non_empty✝: ms✝ []

h: Resolve F d m_left.last i (MeasureSet.set ms✝ h_non_empty✝)

h_not_empty: dedup F (List.map (fun m' => Meas.concat F m_left m') ms✝) []

h_in: m dedup F (List.map (fun m' => Meas.concat F m_left m') ms✝)


m.last F.W
α✝: Type

F: Factory α✝

d: Doc

m_left: Meas

i:

m: Meas

ms✝: List Meas

h_non_empty✝: ms✝ []

h: Resolve F d m_left.last i (MeasureSet.set ms✝ h_non_empty✝)

h_not_empty: dedup F (List.map (fun m' => Meas.concat F m_left m') ms✝) []

h_in: m dedup F (List.map (fun m' => Meas.concat F m_left m') ms✝)

this: a, a ms✝ Meas.concat F m_left a = m

m': Meas

h_mem: m' ms✝

h': Meas.concat F m_left m' = m


m.last F.W
α✝: Type

F: Factory α✝

d: Doc

m_left: Meas

i:

m: Meas

ms✝: List Meas

h_non_empty✝: ms✝ []

h: Resolve F d m_left.last i (MeasureSet.set ms✝ h_non_empty✝)

h_not_empty: dedup F (List.map (fun m' => Meas.concat F m_left m') ms✝) []

h_in: m dedup F (List.map (fun m' => Meas.concat F m_left m') ms✝)


m.last F.W
α✝: Type

F: Factory α✝

d: Doc

m_left: Meas

i:

ms✝: List Meas

h_non_empty✝: ms✝ []

h: Resolve F d m_left.last i (MeasureSet.set ms✝ h_non_empty✝)

h_not_empty: dedup F (List.map (fun m' => Meas.concat F m_left m') ms✝) []

m': Meas

h_mem: m' ms✝

h_in: Meas.concat F m_left m' dedup F (List.map (fun m' => Meas.concat F m_left m') ms✝)

this: a, a ms✝ Meas.concat F m_left a = Meas.concat F m_left m'


(Meas.concat F m_left m').last F.W
α✝: Type

F: Factory α✝

d: Doc

m_left: Meas

i:

m: Meas

ms✝: List Meas

h_non_empty✝: ms✝ []

h: Resolve F d m_left.last i (MeasureSet.set ms✝ h_non_empty✝)

h_not_empty: dedup F (List.map (fun m' => Meas.concat F m_left m') ms✝) []

h_in: m dedup F (List.map (fun m' => Meas.concat F m_left m') ms✝)


m.last F.W
α✝: Type

F: Factory α✝

d: Doc

m_left: Meas

i:

ms✝: List Meas

h_non_empty✝: ms✝ []

h: Resolve F d m_left.last i (MeasureSet.set ms✝ h_non_empty✝)

h_not_empty: dedup F (List.map (fun m' => Meas.concat F m_left m') ms✝) []

m': Meas

h_mem: m' ms✝

h_in: Meas.concat F m_left m' dedup F (List.map (fun m' => Meas.concat F m_left m') ms✝)

this: a, a ms✝ Meas.concat F m_left a = Meas.concat F m_left m'


m'.last F.W
α✝: Type

F: Factory α✝

d: Doc

m_left: Meas

i:

m: Meas

ms✝: List Meas

h_non_empty✝: ms✝ []

h: Resolve F d m_left.last i (MeasureSet.set ms✝ h_non_empty✝)

h_not_empty: dedup F (List.map (fun m' => Meas.concat F m_left m') ms✝) []

h_in: m dedup F (List.map (fun m' => Meas.concat F m_left m') ms✝)


m.last F.W

Goals accomplished! 🐙
lemma
ResolveConcat_last: ∀ {α : Type} {ms : List Meas} {F : Factory α} {ms_in : List Meas} {d : Doc} {i : } {m : Meas} {h_not_empty : ms []}, ResolveConcat F ms_in d i (MeasureSet.set ms h_not_empty)m msm.last F.W
ResolveConcat_last
{
h_not_empty: ms []
h_not_empty
:
ms: ?m.122
ms
[]: unknown metavariable '?_uniq.128'
[]
} (
h: ResolveConcat F ms_in d i (MeasureSet.set ms h_not_empty)
h
:
ResolveConcat: {α : Type} → Factory αList MeasDocMeasureSetProp
ResolveConcat
F: ?m.135
F
ms_in: ?m.150
ms_in
d: ?m.165
d
i: ?m.179
i
(
MeasureSet.set: {α : Type} → (ms : List Meas) → ms []MeasureSet
MeasureSet.set
ms: ?m.122
ms
h_not_empty: ms []
h_not_empty
)) (
h_in: m ms
h_in
:
m: ?m.218
m
ms: ?m.122
ms
) :
m: ?m.218
m
.
last: {α : Type} → Meas
last
F: ?m.135
F
.
W: {α : Type} → Factory α
W
:=

Goals accomplished! 🐙
α✝: Type

ms: List Meas

F: Factory α✝

ms_in: List Meas

d: Doc

i:

m: Meas

h_not_empty: ms []

h: ResolveConcat F ms_in d i (MeasureSet.set ms h_not_empty)

h_in: m ms


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

ms_in: List Meas

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ml: MeasureSet

h_meas: MeasureSet.set ms h_not_empty = ml

h: ResolveConcat F ms_in d i ml


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

ms_in: List Meas

d: Doc

i:

m: Meas

h_not_empty: ms []

h: ResolveConcat F ms_in d i (MeasureSet.set ms h_not_empty)

h_in: m ms


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ml: MeasureSet

h_meas: MeasureSet.set ms h_not_empty = ml

m✝: Meas

h_current✝: ResolveConcatOne F d m✝ i ml


one
m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝: List Meas

msr✝: MeasureSet

m✝: Meas

msr'✝: MeasureSet

h_rest✝: ResolveConcat F ms✝ d i msr✝

h_current✝: ResolveConcatOne F d m✝ i msr'✝

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F msr'✝ msr✝


cons
m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

ms_in: List Meas

d: Doc

i:

m: Meas

h_not_empty: ms []

h: ResolveConcat F ms_in d i (MeasureSet.set ms h_not_empty)

h_in: m ms


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ml: MeasureSet

h_meas: MeasureSet.set ms h_not_empty = ml

m✝: Meas

h_current: ResolveConcatOne F d m✝ i ml


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ml: MeasureSet

h_meas: MeasureSet.set ms h_not_empty = ml

m✝: Meas

h_current: ResolveConcatOne F d m✝ i ml


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ml: MeasureSet

h_meas: MeasureSet.set ms h_not_empty = ml

m✝: Meas

h_current: ResolveConcatOne F d m✝ i ml


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ml: MeasureSet

h_meas: MeasureSet.set ms h_not_empty = ml

m✝: Meas

h_current: ResolveConcatOne F d m✝ i ml


h
ResolveConcatOne F ?d ?m_left ?i (MeasureSet.set ?ms ?h_not_empty)
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ml: MeasureSet

h_meas: MeasureSet.set ms h_not_empty = ml

m✝: Meas

h_current: ResolveConcatOne F d m✝ i ml


h_in
m ?ms
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ml: MeasureSet

h_meas: MeasureSet.set ms h_not_empty = ml

m✝: Meas

h_current: ResolveConcatOne F d m✝ i ml


d
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ml: MeasureSet

h_meas: MeasureSet.set ms h_not_empty = ml

m✝: Meas

h_current: ResolveConcatOne F d m✝ i ml


m_left
Meas
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ml: MeasureSet

h_meas: MeasureSet.set ms h_not_empty = ml

m✝: Meas

h_current: ResolveConcatOne F d m✝ i ml


i
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ml: MeasureSet

h_meas: MeasureSet.set ms h_not_empty = ml

m✝: Meas

h_current: ResolveConcatOne F d m✝ i ml


ms
List Meas
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ml: MeasureSet

h_meas: MeasureSet.set ms h_not_empty = ml

m✝: Meas

h_current: ResolveConcatOne F d m✝ i ml


h_not_empty
?ms []
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ml: MeasureSet

h_meas: MeasureSet.set ms h_not_empty = ml

m✝: Meas

h_current: ResolveConcatOne F d m✝ i ml


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ml: MeasureSet

h_meas: MeasureSet.set ms h_not_empty = ml

m✝: Meas

h_current: ResolveConcatOne F d m✝ i ml


ResolveConcatOne F ?d ?m_left ?i (MeasureSet.set ?ms ?h_not_empty)
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

m✝: Meas

h_current: ResolveConcatOne F d m✝ i (MeasureSet.set ms h_not_empty)


ResolveConcatOne F (?m.2912 (MeasureSet.set ms h_not_empty) (_ : MeasureSet.set ms h_not_empty = MeasureSet.set ms h_not_empty) h_current) (?m.2913 (MeasureSet.set ms h_not_empty) (_ : MeasureSet.set ms h_not_empty = MeasureSet.set ms h_not_empty) h_current) (?m.2914 (MeasureSet.set ms h_not_empty) (_ : MeasureSet.set ms h_not_empty = MeasureSet.set ms h_not_empty) h_current) (MeasureSet.set (?m.2915 (MeasureSet.set ms h_not_empty) (_ : MeasureSet.set ms h_not_empty = MeasureSet.set ms h_not_empty) h_current) (_ : ?m.2915 (MeasureSet.set ms h_not_empty) (_ : MeasureSet.set ms h_not_empty = MeasureSet.set ms h_not_empty) h_current []))
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ml: MeasureSet

h_meas: MeasureSet.set ms h_not_empty = ml

m✝: Meas

h_current: ResolveConcatOne F d m✝ i ml


ResolveConcatOne F ?d ?m_left ?i (MeasureSet.set ?ms ?h_not_empty)

Goals accomplished! 🐙
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ml: MeasureSet

h_meas: MeasureSet.set ms h_not_empty = ml

m✝: Meas

h_current: ResolveConcatOne F d m✝ i ml


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ml: MeasureSet

h_meas: MeasureSet.set ms h_not_empty = ml

m✝: Meas

h_current: ResolveConcatOne F d m✝ i ml


m ms

Goals accomplished! 🐙
α✝: Type

ms: List Meas

F: Factory α✝

ms_in: List Meas

d: Doc

i:

m: Meas

h_not_empty: ms []

h: ResolveConcat F ms_in d i (MeasureSet.set ms h_not_empty)

h_in: m ms


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝: List Meas

ms': MeasureSet

m✝: Meas

ms'': MeasureSet

h_rest: ResolveConcat F ms✝ d i ms'

h_current: ResolveConcatOne F d m✝ i ms''

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F ms'' ms'


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝: List Meas

m✝¹: Meas

ms'': MeasureSet

h_current: ResolveConcatOne F d m✝¹ i ms''

m✝: Meas

h_rest: ResolveConcat F ms✝ d i (MeasureSet.tainted m✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F ms'' (MeasureSet.tainted m✝)


tainted
m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝¹: List Meas

m✝: Meas

ms'': MeasureSet

h_current: ResolveConcatOne F d m✝ i ms''

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d i (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F ms'' (MeasureSet.set ms✝ h✝)


set
m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝: List Meas

ms': MeasureSet

m✝: Meas

ms'': MeasureSet

h_rest: ResolveConcat F ms✝ d i ms'

h_current: ResolveConcatOne F d m✝ i ms''

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F ms'' ms'


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝: List Meas

m✝¹: Meas

ms'': MeasureSet

h_current: ResolveConcatOne F d m✝¹ i ms''

m✝: Meas

h_rest: ResolveConcat F ms✝ d i (MeasureSet.tainted m✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F ms'' (MeasureSet.tainted m✝)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝: List Meas

m✝¹: Meas

ms'': MeasureSet

h_current: ResolveConcatOne F d m✝¹ i ms''

m✝: Meas

h_rest: ResolveConcat F ms✝ d i (MeasureSet.tainted m✝)

h_meas: MeasureSet.set ms h_not_empty = ms''


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝: List Meas

m✝¹: Meas

ms'': MeasureSet

h_current: ResolveConcatOne F d m✝¹ i ms''

m✝: Meas

h_rest: ResolveConcat F ms✝ d i (MeasureSet.tainted m✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F ms'' (MeasureSet.tainted m✝)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝: List Meas

m✝¹, m✝: Meas

h_rest: ResolveConcat F ms✝ d i (MeasureSet.tainted m✝)

h_current: ResolveConcatOne F d m✝¹ i (MeasureSet.set ms h_not_empty)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝: List Meas

m✝¹: Meas

ms'': MeasureSet

h_current: ResolveConcatOne F d m✝¹ i ms''

m✝: Meas

h_rest: ResolveConcat F ms✝ d i (MeasureSet.tainted m✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F ms'' (MeasureSet.tainted m✝)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝: List Meas

m✝¹, m✝: Meas

h_rest: ResolveConcat F ms✝ d i (MeasureSet.tainted m✝)

h_current: ResolveConcatOne F d m✝¹ i (MeasureSet.set ms h_not_empty)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝: List Meas

m✝¹, m✝: Meas

h_rest: ResolveConcat F ms✝ d i (MeasureSet.tainted m✝)

h_current: ResolveConcatOne F d m✝¹ i (MeasureSet.set ms h_not_empty)


h
ResolveConcatOne F ?d ?m_left ?i (MeasureSet.set ?ms ?h_not_empty)
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝: List Meas

m✝¹, m✝: Meas

h_rest: ResolveConcat F ms✝ d i (MeasureSet.tainted m✝)

h_current: ResolveConcatOne F d m✝¹ i (MeasureSet.set ms h_not_empty)


h_in
m ?ms
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝: List Meas

m✝¹, m✝: Meas

h_rest: ResolveConcat F ms✝ d i (MeasureSet.tainted m✝)

h_current: ResolveConcatOne F d m✝¹ i (MeasureSet.set ms h_not_empty)


d
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝: List Meas

m✝¹, m✝: Meas

h_rest: ResolveConcat F ms✝ d i (MeasureSet.tainted m✝)

h_current: ResolveConcatOne F d m✝¹ i (MeasureSet.set ms h_not_empty)


m_left
Meas
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝: List Meas

m✝¹, m✝: Meas

h_rest: ResolveConcat F ms✝ d i (MeasureSet.tainted m✝)

h_current: ResolveConcatOne F d m✝¹ i (MeasureSet.set ms h_not_empty)


i
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝: List Meas

m✝¹, m✝: Meas

h_rest: ResolveConcat F ms✝ d i (MeasureSet.tainted m✝)

h_current: ResolveConcatOne F d m✝¹ i (MeasureSet.set ms h_not_empty)


ms
List Meas
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝: List Meas

m✝¹, m✝: Meas

h_rest: ResolveConcat F ms✝ d i (MeasureSet.tainted m✝)

h_current: ResolveConcatOne F d m✝¹ i (MeasureSet.set ms h_not_empty)


h_not_empty
?ms []

Goals accomplished! 🐙
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝: List Meas

ms': MeasureSet

m✝: Meas

ms'': MeasureSet

h_rest: ResolveConcat F ms✝ d i ms'

h_current: ResolveConcatOne F d m✝ i ms''

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F ms'' ms'


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝¹: List Meas

m✝: Meas

ms'': MeasureSet

h_current: ResolveConcatOne F d m✝ i ms''

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d i (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F ms'' (MeasureSet.set ms✝ h✝)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝¹: List Meas

m✝¹: Meas

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d i (MeasureSet.set ms✝ h✝)

m✝: Meas

h_current: ResolveConcatOne F d m✝¹ i (MeasureSet.tainted m✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms✝ h✝)


tainted
m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝²: List Meas

m✝: Meas

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_rest: ResolveConcat F ms✝² d i (MeasureSet.set ms✝¹ h✝¹)

ms✝: List Meas

h✝: ms✝ []

h_current: ResolveConcatOne F d m✝ i (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms✝¹ h✝¹)


set
m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝¹: List Meas

m✝: Meas

ms'': MeasureSet

h_current: ResolveConcatOne F d m✝ i ms''

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d i (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F ms'' (MeasureSet.set ms✝ h✝)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝¹: List Meas

m✝¹: Meas

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d i (MeasureSet.set ms✝ h✝)

m✝: Meas

h_current: ResolveConcatOne F d m✝¹ i (MeasureSet.tainted m✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms✝ h✝)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝¹: List Meas

m✝¹: Meas

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d i (MeasureSet.set ms✝ h✝)

m✝: Meas

h_current: ResolveConcatOne F d m✝¹ i (MeasureSet.tainted m✝)

h_meas: ms = ms✝


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝¹: List Meas

m✝¹: Meas

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d i (MeasureSet.set ms✝ h✝)

m✝: Meas

h_current: ResolveConcatOne F d m✝¹ i (MeasureSet.tainted m✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms✝ h✝)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝: List Meas

m✝¹, m✝: Meas

h_current: ResolveConcatOne F d m✝¹ i (MeasureSet.tainted m✝)

h✝: ms []

h_rest: ResolveConcat F ms✝ d i (MeasureSet.set ms h✝)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝¹: List Meas

m✝¹: Meas

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d i (MeasureSet.set ms✝ h✝)

m✝: Meas

h_current: ResolveConcatOne F d m✝¹ i (MeasureSet.tainted m✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms✝ h✝)


m.last F.W

Goals accomplished! 🐙
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝¹: List Meas

m✝: Meas

ms'': MeasureSet

h_current: ResolveConcatOne F d m✝ i ms''

ms✝: List Meas

h✝: ms✝ []

h_rest: ResolveConcat F ms✝¹ d i (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F ms'' (MeasureSet.set ms✝ h✝)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝²: List Meas

m✝: Meas

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_rest: ResolveConcat F ms✝² d i (MeasureSet.set ms✝¹ h✝¹)

ms✝: List Meas

h✝: ms✝ []

h_current: ResolveConcatOne F d m✝ i (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms✝¹ h✝¹)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝²: List Meas

m✝: Meas

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_rest: ResolveConcat F ms✝² d i (MeasureSet.set ms✝¹ h✝¹)

ms✝: List Meas

h✝: ms✝ []

h_current: ResolveConcatOne F d m✝ i (MeasureSet.set ms✝ h✝)

h_meas: ms = merge F (ms✝, ms✝¹)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝²: List Meas

m✝: Meas

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_rest: ResolveConcat F ms✝² d i (MeasureSet.set ms✝¹ h✝¹)

ms✝: List Meas

h✝: ms✝ []

h_current: ResolveConcatOne F d m✝ i (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms✝¹ h✝¹)


m.last F.W
α✝: Type

F: Factory α✝

d: Doc

i:

m: Meas

ms✝²: List Meas

m✝: Meas

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_rest: ResolveConcat F ms✝² d i (MeasureSet.set ms✝¹ h✝¹)

ms✝: List Meas

h✝: ms✝ []

h_current: ResolveConcatOne F d m✝ i (MeasureSet.set ms✝ h✝)

h_not_empty: merge F (ms✝, ms✝¹) []

h_in: m merge F (ms✝, ms✝¹)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝²: List Meas

m✝: Meas

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_rest: ResolveConcat F ms✝² d i (MeasureSet.set ms✝¹ h✝¹)

ms✝: List Meas

h✝: ms✝ []

h_current: ResolveConcatOne F d m✝ i (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms✝¹ h✝¹)


m.last F.W
α✝: Type

F: Factory α✝

d: Doc

i:

m: Meas

ms✝²: List Meas

m✝: Meas

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_rest: ResolveConcat F ms✝² d i (MeasureSet.set ms✝¹ h✝¹)

ms✝: List Meas

h✝: ms✝ []

h_current: ResolveConcatOne F d m✝ i (MeasureSet.set ms✝ h✝)

h_not_empty: merge F (ms✝, ms✝¹) []

h_in: m merge F (ms✝, ms✝¹)

this: m ms✝ m ms✝¹


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝²: List Meas

m✝: Meas

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_rest: ResolveConcat F ms✝² d i (MeasureSet.set ms✝¹ h✝¹)

ms✝: List Meas

h✝: ms✝ []

h_current: ResolveConcatOne F d m✝ i (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms✝¹ h✝¹)


m.last F.W
α✝: Type

F: Factory α✝

d: Doc

i:

m: Meas

ms✝²: List Meas

m✝: Meas

ms✝¹: List Meas

h✝²: ms✝¹ []

h_rest: ResolveConcat F ms✝² d i (MeasureSet.set ms✝¹ h✝²)

ms✝: List Meas

h✝¹: ms✝ []

h_current: ResolveConcatOne F d m✝ i (MeasureSet.set ms✝ h✝¹)

h_not_empty: merge F (ms✝, ms✝¹) []

h_in: m merge F (ms✝, ms✝¹)

h✝: m ms✝


inl
m.last F.W
α✝: Type

F: Factory α✝

d: Doc

i:

m: Meas

ms✝²: List Meas

m✝: Meas

ms✝¹: List Meas

h✝²: ms✝¹ []

h_rest: ResolveConcat F ms✝² d i (MeasureSet.set ms✝¹ h✝²)

ms✝: List Meas

h✝¹: ms✝ []

h_current: ResolveConcatOne F d m✝ i (MeasureSet.set ms✝ h✝¹)

h_not_empty: merge F (ms✝, ms✝¹) []

h_in: m merge F (ms✝, ms✝¹)

h✝: m ms✝¹


inr
m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝²: List Meas

m✝: Meas

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_rest: ResolveConcat F ms✝² d i (MeasureSet.set ms✝¹ h✝¹)

ms✝: List Meas

h✝: ms✝ []

h_current: ResolveConcatOne F d m✝ i (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms✝¹ h✝¹)


m.last F.W
α✝: Type

F: Factory α✝

d: Doc

i:

m: Meas

ms✝²: List Meas

m✝: Meas

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_rest: ResolveConcat F ms✝² d i (MeasureSet.set ms✝¹ h✝¹)

ms✝: List Meas

h✝: ms✝ []

h_current: ResolveConcatOne F d m✝ i (MeasureSet.set ms✝ h✝)

h_not_empty: merge F (ms✝, ms✝¹) []

h_in: m merge F (ms✝, ms✝¹)

h_in': m ms✝


m.last F.W
α✝: Type

F: Factory α✝

d: Doc

i:

m: Meas

ms✝²: List Meas

m✝: Meas

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_rest: ResolveConcat F ms✝² d i (MeasureSet.set ms✝¹ h✝¹)

ms✝: List Meas

h✝: ms✝ []

h_current: ResolveConcatOne F d m✝ i (MeasureSet.set ms✝ h✝)

h_not_empty: merge F (ms✝, ms✝¹) []

h_in: m merge F (ms✝, ms✝¹)

h_in': m ms✝


m.last F.W
α✝: Type

F: Factory α✝

d: Doc

i:

m: Meas

ms✝²: List Meas

m✝: Meas

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_rest: ResolveConcat F ms✝² d i (MeasureSet.set ms✝¹ h✝¹)

ms✝: List Meas

h✝: ms✝ []

h_current: ResolveConcatOne F d m✝ i (MeasureSet.set ms✝ h✝)

h_not_empty: merge F (ms✝, ms✝¹) []

h_in: m merge F (ms✝, ms✝¹)

h_in': m ms✝


h
ResolveConcatOne F ?d ?m_left ?i (MeasureSet.set ?ms ?h_not_empty)
α✝: Type

F: Factory α✝

d: Doc

i:

m: Meas

ms✝²: List Meas

m✝: Meas

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_rest: ResolveConcat F ms✝² d i (MeasureSet.set ms✝¹ h✝¹)

ms✝: List Meas

h✝: ms✝ []

h_current: ResolveConcatOne F d m✝ i (MeasureSet.set ms✝ h✝)

h_not_empty: merge F (ms✝, ms✝¹) []

h_in: m merge F (ms✝, ms✝¹)

h_in': m ms✝


h_in
m ?ms
α✝: Type

F: Factory α✝

d: Doc

i:

m: Meas

ms✝²: List Meas

m✝: Meas

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_rest: ResolveConcat F ms✝² d i (MeasureSet.set ms✝¹ h✝¹)

ms✝: List Meas

h✝: ms✝ []

h_current: ResolveConcatOne F d m✝ i (MeasureSet.set ms✝ h✝)

h_not_empty: merge F (ms✝, ms✝¹) []

h_in: m merge F (ms✝, ms✝¹)

h_in': m ms✝


d
α✝: Type

F: Factory α✝

d: Doc

i:

m: Meas

ms✝²: List Meas

m✝: Meas

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_rest: ResolveConcat F ms✝² d i (MeasureSet.set ms✝¹ h✝¹)

ms✝: List Meas

h✝: ms✝ []

h_current: ResolveConcatOne F d m✝ i (MeasureSet.set ms✝ h✝)

h_not_empty: merge F (ms✝, ms✝¹) []

h_in: m merge F (ms✝, ms✝¹)

h_in': m ms✝


m_left
Meas
α✝: Type

F: Factory α✝

d: Doc

i:

m: Meas

ms✝²: List Meas

m✝: Meas

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_rest: ResolveConcat F ms✝² d i (MeasureSet.set ms✝¹ h✝¹)

ms✝: List Meas

h✝: ms✝ []

h_current: ResolveConcatOne F d m✝ i (MeasureSet.set ms✝ h✝)

h_not_empty: merge F (ms✝, ms✝¹) []

h_in: m merge F (ms✝, ms✝¹)

h_in': m ms✝


i
α✝: Type

F: Factory α✝

d: Doc

i:

m: Meas

ms✝²: List Meas

m✝: Meas

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_rest: ResolveConcat F ms✝² d i (MeasureSet.set ms✝¹ h✝¹)

ms✝: List Meas

h✝: ms✝ []

h_current: ResolveConcatOne F d m✝ i (MeasureSet.set ms✝ h✝)

h_not_empty: merge F (ms✝, ms✝¹) []

h_in: m merge F (ms✝, ms✝¹)

h_in': m ms✝


ms
List Meas
α✝: Type

F: Factory α✝

d: Doc

i:

m: Meas

ms✝²: List Meas

m✝: Meas

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_rest: ResolveConcat F ms✝² d i (MeasureSet.set ms✝¹ h✝¹)

ms✝: List Meas

h✝: ms✝ []

h_current: ResolveConcatOne F d m✝ i (MeasureSet.set ms✝ h✝)

h_not_empty: merge F (ms✝, ms✝¹) []

h_in: m merge F (ms✝, ms✝¹)

h_in': m ms✝


h_not_empty
?ms []

Goals accomplished! 🐙
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

i:

m: Meas

h_not_empty: ms []

h_in: m ms

ms✝²: List Meas

m✝: Meas

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_rest: ResolveConcat F ms✝² d i (MeasureSet.set ms✝¹ h✝¹)

ms✝: List Meas

h✝: ms✝ []

h_current: ResolveConcatOne F d m✝ i (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms✝¹ h✝¹)


m.last F.W
α✝: Type

F: Factory α✝

d: Doc

i:

m: Meas

ms✝²: List Meas

m✝: Meas

ms✝¹: List Meas

h✝¹: ms✝¹ []

h_rest: ResolveConcat F ms✝² d i (MeasureSet.set ms✝¹ h✝¹)

ms✝: List Meas

h✝: ms✝ []

h_current: ResolveConcatOne F d m✝ i (MeasureSet.set ms✝ h✝)

h_not_empty: merge F (ms✝, ms✝¹) []

h_in: m merge F (ms✝, ms✝¹)

h_in': m ms✝¹


m.last F.W

Goals accomplished! 🐙
lemma
Resolve_last: ∀ {α : Type} {ms : List Meas} {F : Factory α} {d : Doc} {c i : } {m : Meas} {h_not_empty : ms []}, Resolve F d c i (MeasureSet.set ms h_not_empty)m msm.last F.W
Resolve_last
{
h_not_empty: ms []
h_not_empty
:
ms: ?m.281
ms
[]: List ?m.383
[]
} (
h: Resolve F d c i (MeasureSet.set ms h_not_empty)
h
:
Resolve: {α : Type} → Factory αDocMeasureSetProp
Resolve
F: ?m.294
F
d: ?m.309
d
c: ?m.323
c
i: ?m.337
i
(
MeasureSet.set: {α : Type} → (ms : List Meas) → ms []MeasureSet
MeasureSet.set
ms: ?m.281
ms
h_not_empty: ms []
h_not_empty
)) (
h_in: m ms
h_in
:
m: ?m.377
m
ms: ?m.281
ms
) :
m: ?m.377
m
.
last: {α : Type} → Meas
last
F: ?m.294
F
.
W: {α : Type} → Factory α
W
:=

Goals accomplished! 🐙
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

c, i:

m: Meas

h_not_empty: ms []

h: Resolve F d c i (MeasureSet.set ms h_not_empty)

h_in: m ms


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

s✝: String

h: Resolve F (Doc.text s✝) c i (MeasureSet.set ms h_not_empty)


text
m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

h: Resolve F Doc.nl c i (MeasureSet.set ms h_not_empty)


nl
m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

d₁✝, d₂✝: Doc

h: Resolve F (Doc.concat d₁✝ d₂✝) c i (MeasureSet.set ms h_not_empty)


concat
m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

n✝:

d✝: Doc

h: Resolve F (Doc.nest n✝ d✝) c i (MeasureSet.set ms h_not_empty)


nest
m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

d✝: Doc

h: Resolve F (Doc.align d✝) c i (MeasureSet.set ms h_not_empty)


align
m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

d₁✝, d₂✝: Doc

h: Resolve F (Doc.choice d₁✝ d₂✝) c i (MeasureSet.set ms h_not_empty)


choice
m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

c, i:

m: Meas

h_not_empty: ms []

h: Resolve F d c i (MeasureSet.set ms h_not_empty)

h_in: m ms


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

s✝: String

h: Resolve F (Doc.text s✝) c i (MeasureSet.set ms h_not_empty)


m.last F.W
α✝: Type

F: Factory α✝

c, i:

m: Meas

s✝: String

m✝: Meas

h_c✝: c + String.length s✝ F.W

h_i✝: i F.W

h✝: MeasRender F (Doc.text s✝) c i m✝

h_not_empty: [m✝] []

h_in: m [m✝]


text_set
m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

s✝: String

h: Resolve F (Doc.text s✝) c i (MeasureSet.set ms h_not_empty)


m.last F.W
α✝: Type

F: Factory α✝

c, i:

m: Meas

s✝: String

m✝: Meas

h_c: c + String.length s✝ F.W

h_i: i F.W

h_meas: MeasRender F (Doc.text s✝) c i m✝

h_not_empty: [m✝] []

h_in: m [m✝]


m.last F.W
α✝: Type

F: Factory α✝

c, i:

m: Meas

s✝: String

m✝: Meas

h_c: c + String.length s✝ F.W

h_i: i F.W

h_meas: MeasRender F (Doc.text s✝) c i m✝

h_not_empty: [m✝] []

h_in: m = m✝


m.last F.W
α✝: Type

F: Factory α✝

c, i:

m: Meas

s✝: String

m✝: Meas

h_c: c + String.length s✝ F.W

h_i: i F.W

h_meas: MeasRender F (Doc.text s✝) c i m✝

h_not_empty: [m✝] []

h_in: m [m✝]


m.last F.W
α✝: Type

F: Factory α✝

c, i:

m: Meas

s✝: String

h_c: c + String.length s✝ F.W

h_i: i F.W

h_meas: MeasRender F (Doc.text s✝) c i m

h_not_empty: [m] []


m.last F.W
α✝: Type

F: Factory α✝

c, i:

m: Meas

s✝: String

m✝: Meas

h_c: c + String.length s✝ F.W

h_i: i F.W

h_meas: MeasRender F (Doc.text s✝) c i m✝

h_not_empty: [m✝] []

h_in: m [m✝]


m.last F.W
α✝: Type

F: Factory α✝

c, i:

s✝: String

h_c: c + String.length s✝ F.W

h_i: i F.W

h_not_empty: [{ last := c + String.length s✝, cost := Factory.text F c (String.length s✝), doc := Doc.text s✝, x := c + String.length s✝, y := i }] []


text
{ last := c + String.length s✝, cost := Factory.text F c (String.length s✝), doc := Doc.text s✝, x := c + String.length s✝, y := i }.last F.W
α✝: Type

F: Factory α✝

c, i:

m: Meas

s✝: String

m✝: Meas

h_c: c + String.length s✝ F.W

h_i: i F.W

h_meas: MeasRender F (Doc.text s✝) c i m✝

h_not_empty: [m✝] []

h_in: m [m✝]


m.last F.W
α✝: Type

F: Factory α✝

c, i:

s✝: String

h_c: c + String.length s✝ F.W

h_i: i F.W

h_not_empty: [{ last := c + String.length s✝, cost := Factory.text F c (String.length s✝), doc := Doc.text s✝, x := c + String.length s✝, y := i }] []


text
c + String.length s✝ F.W
α✝: Type

F: Factory α✝

c, i:

m: Meas

s✝: String

m✝: Meas

h_c: c + String.length s✝ F.W

h_i: i F.W

h_meas: MeasRender F (Doc.text s✝) c i m✝

h_not_empty: [m✝] []

h_in: m [m✝]


m.last F.W

Goals accomplished! 🐙
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

c, i:

m: Meas

h_not_empty: ms []

h: Resolve F d c i (MeasureSet.set ms h_not_empty)

h_in: m ms


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

h: Resolve F Doc.nl c i (MeasureSet.set ms h_not_empty)


m.last F.W
α✝: Type

F: Factory α✝

c, i:

m, m✝: Meas

h_c✝: c F.W

h_i✝: i F.W

h✝: MeasRender F Doc.nl c i m✝

h_not_empty: [m✝] []

h_in: m [m✝]


line_set
m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

h: Resolve F Doc.nl c i (MeasureSet.set ms h_not_empty)


m.last F.W
α✝: Type

F: Factory α✝

c, i:

m, m✝: Meas

h_c: c F.W

h_i: i F.W

h_meas: MeasRender F Doc.nl c i m✝

h_not_empty: [m✝] []

h_in: m [m✝]


m.last F.W
α✝: Type

F: Factory α✝

c, i:

m, m✝: Meas

h_c: c F.W

h_i: i F.W

h_meas: MeasRender F Doc.nl c i m✝

h_not_empty: [m✝] []

h_in: m = m✝


m.last F.W
α✝: Type

F: Factory α✝

c, i:

m, m✝: Meas

h_c: c F.W

h_i: i F.W

h_meas: MeasRender F Doc.nl c i m✝

h_not_empty: [m✝] []

h_in: m [m✝]


m.last F.W
α✝: Type

F: Factory α✝

c, i:

m: Meas

h_c: c F.W

h_i: i F.W

h_meas: MeasRender F Doc.nl c i m

h_not_empty: [m] []


m.last F.W
α✝: Type

F: Factory α✝

c, i:

m, m✝: Meas

h_c: c F.W

h_i: i F.W

h_meas: MeasRender F Doc.nl c i m✝

h_not_empty: [m✝] []

h_in: m [m✝]


m.last F.W
α✝: Type

F: Factory α✝

c, i:

h_c: c F.W

h_i: i F.W

h_not_empty: [{ last := i, cost := Factory.nl F i, doc := Doc.nl, x := max c i, y := i }] []


nl
{ last := i, cost := Factory.nl F i, doc := Doc.nl, x := max c i, y := i }.last F.W
α✝: Type

F: Factory α✝

c, i:

m, m✝: Meas

h_c: c F.W

h_i: i F.W

h_meas: MeasRender F Doc.nl c i m✝

h_not_empty: [m✝] []

h_in: m [m✝]


m.last F.W
α✝: Type

F: Factory α✝

c, i:

h_c: c F.W

h_i: i F.W

h_not_empty: [{ last := i, cost := Factory.nl F i, doc := Doc.nl, x := max c i, y := i }] []


nl
i F.W
α✝: Type

F: Factory α✝

c, i:

m, m✝: Meas

h_c: c F.W

h_i: i F.W

h_meas: MeasRender F Doc.nl c i m✝

h_not_empty: [m✝] []

h_in: m [m✝]


m.last F.W

Goals accomplished! 🐙
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

c, i:

m: Meas

h_not_empty: ms []

h: Resolve F d c i (MeasureSet.set ms h_not_empty)

h_in: m ms


m.last F.W
n: Type

ms: List Meas

F: Factory n

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

n✝:

ih: Doc

h: Resolve F (Doc.nest n✝ ih) c i (MeasureSet.set ms h_not_empty)


m.last F.W
n: Type

ms: List Meas

F: Factory n

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

n✝:

ih: Doc

ml: MeasureSet

h_meas: MeasureSet.set ms h_not_empty = ml

h: Resolve F (Doc.nest n✝ ih) c i ml


m.last F.W
n: Type

ms: List Meas

F: Factory n

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

n✝:

ih: Doc

h: Resolve F (Doc.nest n✝ ih) c i (MeasureSet.set ms h_not_empty)


m.last F.W
n: Type

ms: List Meas

F: Factory n

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

n✝:

ih: Doc

ms✝: MeasureSet

h✝: Resolve F ih c (i + n✝) ms✝

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_nest n✝) ms✝


nest
m.last F.W
n: Type

ms: List Meas

F: Factory n

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

n✝:

ih: Doc

h: Resolve F (Doc.nest n✝ ih) c i (MeasureSet.set ms h_not_empty)


m.last F.W
n: Type

ms: List Meas

F: Factory n

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

n✝:

ih: Doc

ms': MeasureSet

h: Resolve F ih c (i + n✝) ms'

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_nest n✝) ms'


m.last F.W
n: Type

ms: List Meas

F: Factory n

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

n✝:

ih: Doc

m✝: Meas

h: Resolve F ih c (i + n✝) (MeasureSet.tainted m✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_nest n✝) (MeasureSet.tainted m✝)


tainted
m.last F.W
n: Type

ms: List Meas

F: Factory n

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

n✝:

ih: Doc

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c (i + n✝) (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_nest n✝) (MeasureSet.set ms✝ h✝)


set
m.last F.W
n: Type

ms: List Meas

F: Factory n

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

n✝:

ih: Doc

ms': MeasureSet

h: Resolve F ih c (i + n✝) ms'

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_nest n✝) ms'


m.last F.W
n: Type

ms: List Meas

F: Factory n

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

n✝:

ih: Doc

m✝: Meas

h: Resolve F ih c (i + n✝) (MeasureSet.tainted m✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_nest n✝) (MeasureSet.tainted m✝)


m.last F.W

Goals accomplished! 🐙
n: Type

ms: List Meas

F: Factory n

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

n✝:

ih: Doc

ms': MeasureSet

h: Resolve F ih c (i + n✝) ms'

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_nest n✝) ms'


m.last F.W
n: Type

ms: List Meas

F: Factory n

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

n✝:

ih: Doc

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c (i + n✝) (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_nest n✝) (MeasureSet.set ms✝ h✝)


m.last F.W
n: Type

ms: List Meas

F: Factory n

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

n✝:

ih: Doc

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c (i + n✝) (MeasureSet.set ms✝ h✝)

h_meas: ms = List.map (Meas.adjust_nest n✝) ms✝


m.last F.W
n: Type

ms: List Meas

F: Factory n

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

n✝:

ih: Doc

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c (i + n✝) (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_nest n✝) (MeasureSet.set ms✝ h✝)


m.last F.W
n: Type

F: Factory n

c, i:

m: Meas

n✝:

ih: Doc

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c (i + n✝) (MeasureSet.set ms✝ h✝)

h_not_empty: List.map (Meas.adjust_nest n✝) ms✝ []

h_in: m List.map (Meas.adjust_nest n✝) ms✝


m.last F.W
n: Type

ms: List Meas

F: Factory n

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

n✝:

ih: Doc

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c (i + n✝) (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_nest n✝) (MeasureSet.set ms✝ h✝)


m.last F.W
n: Type

F: Factory n

c, i:

m: Meas

n✝:

ih: Doc

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c (i + n✝) (MeasureSet.set ms✝ h✝)

h_not_empty: List.map (Meas.adjust_nest n✝) ms✝ []

h_in: a, a ms✝ Meas.adjust_nest n✝ a = m


m.last F.W
n: Type

ms: List Meas

F: Factory n

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

n✝:

ih: Doc

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c (i + n✝) (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_nest n✝) (MeasureSet.set ms✝ h✝)


m.last F.W
n: Type

F: Factory n

c, i:

m: Meas

n✝:

ih: Doc

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c (i + n✝) (MeasureSet.set ms✝ h✝)

h_not_empty: List.map (Meas.adjust_nest n✝) ms✝ []

h_in: a, a ms✝ Meas.adjust_nest n✝ a = m

m': Meas

h_left: m' ms✝

h_right: Meas.adjust_nest n✝ m' = m


m.last F.W
n: Type

ms: List Meas

F: Factory n

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

n✝:

ih: Doc

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c (i + n✝) (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_nest n✝) (MeasureSet.set ms✝ h✝)


m.last F.W
n: Type

F: Factory n

c, i:

m: Meas

n✝:

ih✝: Doc

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih✝ c (i + n✝) (MeasureSet.set ms✝ h✝)

h_not_empty: List.map (Meas.adjust_nest n✝) ms✝ []

h_in: a, a ms✝ Meas.adjust_nest n✝ a = m

m': Meas

h_left: m' ms✝

h_right: Meas.adjust_nest n✝ m' = m

ih: m'.last F.W


m.last F.W
n: Type

ms: List Meas

F: Factory n

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

n✝:

ih: Doc

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c (i + n✝) (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_nest n✝) (MeasureSet.set ms✝ h✝)


m.last F.W
n: Type

F: Factory n

c, i:

m: Meas

n✝:

ih✝: Doc

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih✝ c (i + n✝) (MeasureSet.set ms✝ h✝)

h_not_empty: List.map (Meas.adjust_nest n✝) ms✝ []

h_in: a, a ms✝ Meas.adjust_nest n✝ a = m

m': Meas

h_left: m' ms✝

h_right: { last := m'.last, cost := m'.cost, doc := Doc.nest n✝ m'.doc, x := m'.x, y := m'.y } = m

ih: m'.last F.W


m.last F.W
n: Type

ms: List Meas

F: Factory n

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

n✝:

ih: Doc

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c (i + n✝) (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_nest n✝) (MeasureSet.set ms✝ h✝)


m.last F.W
n: Type

F: Factory n

c, i, n✝:

ih✝: Doc

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih✝ c (i + n✝) (MeasureSet.set ms✝ h✝)

h_not_empty: List.map (Meas.adjust_nest n✝) ms✝ []

m': Meas

h_left: m' ms✝

ih: m'.last F.W

last✝:

cost✝: n

doc✝: Doc

x✝, y✝:

h_in: a, a ms✝ Meas.adjust_nest n✝ a = { last := last✝, cost := cost✝, doc := doc✝, x := x✝, y := y✝ }

h_right: { last := m'.last, cost := m'.cost, doc := Doc.nest n✝ m'.doc, x := m'.x, y := m'.y } = { last := last✝, cost := cost✝, doc := doc✝, x := x✝, y := y✝ }


mk
{ last := last✝, cost := cost✝, doc := doc✝, x := x✝, y := y✝ }.last F.W
n: Type

ms: List Meas

F: Factory n

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

n✝:

ih: Doc

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c (i + n✝) (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_nest n✝) (MeasureSet.set ms✝ h✝)


m.last F.W
n: Type

F: Factory n

c, i, n✝:

ih✝: Doc

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih✝ c (i + n✝) (MeasureSet.set ms✝ h✝)

h_not_empty: List.map (Meas.adjust_nest n✝) ms✝ []

m': Meas

h_left: m' ms✝

ih: m'.last F.W

last✝:

cost✝: n

doc✝: Doc

x✝, y✝:

h_in: a, a ms✝ Meas.adjust_nest n✝ a = { last := last✝, cost := cost✝, doc := doc✝, x := x✝, y := y✝ }

h_right: m'.last = last✝ m'.cost = cost✝ Doc.nest n✝ m'.doc = doc✝ m'.x = x✝ m'.y = y✝


mk
last✝ F.W
n: Type

ms: List Meas

F: Factory n

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

n✝:

ih: Doc

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c (i + n✝) (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_nest n✝) (MeasureSet.set ms✝ h✝)


m.last F.W
n: Type

F: Factory n

c, i, n✝:

ih✝: Doc

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih✝ c (i + n✝) (MeasureSet.set ms✝ h✝)

h_not_empty: List.map (Meas.adjust_nest n✝) ms✝ []

m': Meas

h_left: m' ms✝

ih: m'.last F.W

last✝:

cost✝: n

doc✝: Doc

x✝, y✝:

h_in: a, a ms✝ Meas.adjust_nest n✝ a = { last := last✝, cost := cost✝, doc := doc✝, x := x✝, y := y✝ }

h_right: m'.last = last✝ m'.cost = cost✝ Doc.nest n✝ m'.doc = doc✝ m'.x = x✝ m'.y = y✝


mk
m'.last F.W
n: Type

ms: List Meas

F: Factory n

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

n✝:

ih: Doc

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c (i + n✝) (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_nest n✝) (MeasureSet.set ms✝ h✝)


m.last F.W

Goals accomplished! 🐙
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

c, i:

m: Meas

h_not_empty: ms []

h: Resolve F d c i (MeasureSet.set ms h_not_empty)

h_in: m ms


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih: Doc

h: Resolve F (Doc.align ih) c i (MeasureSet.set ms h_not_empty)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih: Doc

ml: MeasureSet

h_meas: MeasureSet.set ms h_not_empty = ml

h: Resolve F (Doc.align ih) c i ml


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih: Doc

h: Resolve F (Doc.align ih) c i (MeasureSet.set ms h_not_empty)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih: Doc

ms✝: MeasureSet

h✝: Resolve F ih c c ms✝

h_bad✝: i > F.W

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms✝)


align_taint
m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih: Doc

ms✝: MeasureSet

h✝: Resolve F ih c c ms✝

h_ok✝: i F.W

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_align i) ms✝


align
m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih: Doc

h: Resolve F (Doc.align ih) c i (MeasureSet.set ms h_not_empty)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih: Doc

ms': MeasureSet

h: Resolve F ih c c ms'

h_ok✝: i F.W

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_align i) ms'


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih: Doc

h_ok✝: i F.W

m✝: Meas

h: Resolve F ih c c (MeasureSet.tainted m✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝)


tainted
m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih: Doc

h_ok✝: i F.W

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c c (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set ms✝ h✝)


set
m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih: Doc

ms': MeasureSet

h: Resolve F ih c c ms'

h_ok✝: i F.W

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_align i) ms'


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih: Doc

h_ok✝: i F.W

m✝: Meas

h: Resolve F ih c c (MeasureSet.tainted m✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝)


m.last F.W

Goals accomplished! 🐙
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih: Doc

ms': MeasureSet

h: Resolve F ih c c ms'

h_ok✝: i F.W

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_align i) ms'


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih: Doc

h_ok✝: i F.W

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c c (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set ms✝ h✝)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih: Doc

h_ok✝: i F.W

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c c (MeasureSet.set ms✝ h✝)

h_meas: ms = List.map (Meas.adjust_align i) ms✝


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih: Doc

h_ok✝: i F.W

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c c (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set ms✝ h✝)


m.last F.W
α✝: Type

F: Factory α✝

c, i:

m: Meas

ih: Doc

h_ok✝: i F.W

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c c (MeasureSet.set ms✝ h✝)

h_not_empty: List.map (Meas.adjust_align i) ms✝ []

h_in: m List.map (Meas.adjust_align i) ms✝


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih: Doc

h_ok✝: i F.W

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c c (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set ms✝ h✝)


m.last F.W
α✝: Type

F: Factory α✝

c, i:

m: Meas

ih: Doc

h_ok✝: i F.W

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c c (MeasureSet.set ms✝ h✝)

h_not_empty: List.map (Meas.adjust_align i) ms✝ []

h_in: a, a ms✝ Meas.adjust_align i a = m


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih: Doc

h_ok✝: i F.W

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c c (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set ms✝ h✝)


m.last F.W
α✝: Type

F: Factory α✝

c, i:

m: Meas

ih: Doc

h_ok✝: i F.W

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c c (MeasureSet.set ms✝ h✝)

h_not_empty: List.map (Meas.adjust_align i) ms✝ []

h_in: a, a ms✝ Meas.adjust_align i a = m

m': Meas

h_left: m' ms✝

h_right: Meas.adjust_align i m' = m


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih: Doc

h_ok✝: i F.W

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c c (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set ms✝ h✝)


m.last F.W
α✝: Type

F: Factory α✝

c, i:

m: Meas

ih✝: Doc

h_ok✝: i F.W

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih✝ c c (MeasureSet.set ms✝ h✝)

h_not_empty: List.map (Meas.adjust_align i) ms✝ []

h_in: a, a ms✝ Meas.adjust_align i a = m

m': Meas

h_left: m' ms✝

h_right: Meas.adjust_align i m' = m

ih: m'.last F.W


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih: Doc

h_ok✝: i F.W

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c c (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set ms✝ h✝)


m.last F.W
α✝: Type

F: Factory α✝

c, i:

m: Meas

ih✝: Doc

h_ok✝: i F.W

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih✝ c c (MeasureSet.set ms✝ h✝)

h_not_empty: List.map (Meas.adjust_align i) ms✝ []

h_in: a, a ms✝ Meas.adjust_align i a = m

m': Meas

h_left: m' ms✝

h_right: { last := m'.last, cost := m'.cost, doc := Doc.align m'.doc, x := m'.x, y := max i m'.y } = m

ih: m'.last F.W


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih: Doc

h_ok✝: i F.W

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c c (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set ms✝ h✝)


m.last F.W
α✝: Type

F: Factory α✝

c, i:

ih✝: Doc

h_ok✝: i F.W

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih✝ c c (MeasureSet.set ms✝ h✝)

h_not_empty: List.map (Meas.adjust_align i) ms✝ []

m': Meas

h_left: m' ms✝

ih: m'.last F.W

last✝:

cost✝: α✝

doc✝: Doc

x✝, y✝:

h_in: a, a ms✝ Meas.adjust_align i a = { last := last✝, cost := cost✝, doc := doc✝, x := x✝, y := y✝ }

h_right: { last := m'.last, cost := m'.cost, doc := Doc.align m'.doc, x := m'.x, y := max i m'.y } = { last := last✝, cost := cost✝, doc := doc✝, x := x✝, y := y✝ }


mk
{ last := last✝, cost := cost✝, doc := doc✝, x := x✝, y := y✝ }.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih: Doc

h_ok✝: i F.W

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c c (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set ms✝ h✝)


m.last F.W
α✝: Type

F: Factory α✝

c, i:

ih✝: Doc

h_ok✝: i F.W

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih✝ c c (MeasureSet.set ms✝ h✝)

h_not_empty: List.map (Meas.adjust_align i) ms✝ []

m': Meas

h_left: m' ms✝

ih: m'.last F.W

last✝:

cost✝: α✝

doc✝: Doc

x✝, y✝:

h_in: a, a ms✝ Meas.adjust_align i a = { last := last✝, cost := cost✝, doc := doc✝, x := x✝, y := y✝ }

h_right: m'.last = last✝ m'.cost = cost✝ Doc.align m'.doc = doc✝ m'.x = x✝ max i m'.y = y✝


mk
last✝ F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih: Doc

h_ok✝: i F.W

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c c (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set ms✝ h✝)


m.last F.W
α✝: Type

F: Factory α✝

c, i:

ih✝: Doc

h_ok✝: i F.W

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih✝ c c (MeasureSet.set ms✝ h✝)

h_not_empty: List.map (Meas.adjust_align i) ms✝ []

m': Meas

h_left: m' ms✝

ih: m'.last F.W

last✝:

cost✝: α✝

doc✝: Doc

x✝, y✝:

h_in: a, a ms✝ Meas.adjust_align i a = { last := last✝, cost := cost✝, doc := doc✝, x := x✝, y := y✝ }

h_right: m'.last = last✝ m'.cost = cost✝ Doc.align m'.doc = doc✝ m'.x = x✝ max i m'.y = y✝


mk
m'.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih: Doc

h_ok✝: i F.W

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c c (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set ms✝ h✝)


m.last F.W

Goals accomplished! 🐙
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih: Doc

h: Resolve F (Doc.align ih) c i (MeasureSet.set ms h_not_empty)


m.last F.W
α✝: Type

ms✝: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms✝ []

h_in: m ms✝

ih: Doc

ms: MeasureSet

h: Resolve F ih c c ms

h_bad✝: i > F.W

h_meas: MeasureSet.set ms✝ h_not_empty = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih: Doc

h_bad✝: i > F.W

m✝: Meas

h: Resolve F ih c c (MeasureSet.tainted m✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint (MeasureSet.tainted m✝))


tainted
m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih: Doc

h_bad✝: i > F.W

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c c (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint (MeasureSet.set ms✝ h✝))


set
m.last F.W
α✝: Type

ms✝: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms✝ []

h_in: m ms✝

ih: Doc

ms: MeasureSet

h: Resolve F ih c c ms

h_bad✝: i > F.W

h_meas: MeasureSet.set ms✝ h_not_empty = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih: Doc

h_bad✝: i > F.W

ms✝: List Meas

h✝: ms✝ []

h: Resolve F ih c c (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint (MeasureSet.set ms✝ h✝))


m.last F.W

Goals accomplished! 🐙
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

c, i:

m: Meas

h_not_empty: ms []

h: Resolve F d c i (MeasureSet.set ms h_not_empty)

h_in: m ms


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

h: Resolve F (Doc.choice ih₁ ih₂) c i (MeasureSet.set ms h_not_empty)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

ml: MeasureSet

h_meas: MeasureSet.set ms h_not_empty = ml

h: Resolve F (Doc.choice ih₁ ih₂) c i ml


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

h: Resolve F (Doc.choice ih₁ ih₂) c i (MeasureSet.set ms h_not_empty)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

ms✝, ms'✝: MeasureSet

h_left✝: Resolve F ih₁ c i ms✝

h_right✝: Resolve F ih₂ c i ms'✝

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F ms✝ ms'✝


choice
m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

h: Resolve F (Doc.choice ih₁ ih₂) c i (MeasureSet.set ms h_not_empty)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

ms'', ms': MeasureSet

h_left: Resolve F ih₁ c i ms''

h_right: Resolve F ih₂ c i ms'

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F ms'' ms'


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

ms'': MeasureSet

h_left: Resolve F ih₁ c i ms''

m✝: Meas

h_right: Resolve F ih₂ c i (MeasureSet.tainted m✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F ms'' (MeasureSet.tainted m✝)


tainted
m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

ms'': MeasureSet

h_left: Resolve F ih₁ c i ms''

ms✝: List Meas

h✝: ms✝ []

h_right: Resolve F ih₂ c i (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F ms'' (MeasureSet.set ms✝ h✝)


set
m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

ms'', ms': MeasureSet

h_left: Resolve F ih₁ c i ms''

h_right: Resolve F ih₂ c i ms'

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F ms'' ms'


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

ms'': MeasureSet

h_left: Resolve F ih₁ c i ms''

m✝: Meas

h_right: Resolve F ih₂ c i (MeasureSet.tainted m✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F ms'' (MeasureSet.tainted m✝)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

ms'': MeasureSet

h_left: Resolve F ih₁ c i ms''

m✝: Meas

h_right: Resolve F ih₂ c i (MeasureSet.tainted m✝)

h_meas: MeasureSet.set ms h_not_empty = ms''


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

ms'': MeasureSet

h_left: Resolve F ih₁ c i ms''

m✝: Meas

h_right: Resolve F ih₂ c i (MeasureSet.tainted m✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F ms'' (MeasureSet.tainted m✝)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

m✝: Meas

h_right: Resolve F ih₂ c i (MeasureSet.tainted m✝)

h_left: Resolve F ih₁ c i (MeasureSet.set ms h_not_empty)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

ms'': MeasureSet

h_left: Resolve F ih₁ c i ms''

m✝: Meas

h_right: Resolve F ih₂ c i (MeasureSet.tainted m✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F ms'' (MeasureSet.tainted m✝)


m.last F.W

Goals accomplished! 🐙
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

ms'', ms': MeasureSet

h_left: Resolve F ih₁ c i ms''

h_right: Resolve F ih₂ c i ms'

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F ms'' ms'


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

ms'': MeasureSet

h_left: Resolve F ih₁ c i ms''

ms✝: List Meas

h_not_empty': ms✝ []

h_right: Resolve F ih₂ c i (MeasureSet.set ms✝ h_not_empty')

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F ms'' (MeasureSet.set ms✝ h_not_empty')


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

ms✝: List Meas

h_not_empty': ms✝ []

h_right: Resolve F ih₂ c i (MeasureSet.set ms✝ h_not_empty')

m✝: Meas

h_left: Resolve F ih₁ c i (MeasureSet.tainted m✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms✝ h_not_empty')


tainted
m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

ms✝¹: List Meas

h_not_empty': ms✝¹ []

h_right: Resolve F ih₂ c i (MeasureSet.set ms✝¹ h_not_empty')

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F ih₁ c i (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms✝¹ h_not_empty')


set
m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

ms'': MeasureSet

h_left: Resolve F ih₁ c i ms''

ms✝: List Meas

h_not_empty': ms✝ []

h_right: Resolve F ih₂ c i (MeasureSet.set ms✝ h_not_empty')

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F ms'' (MeasureSet.set ms✝ h_not_empty')


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

ms✝: List Meas

h_not_empty': ms✝ []

h_right: Resolve F ih₂ c i (MeasureSet.set ms✝ h_not_empty')

m✝: Meas

h_left: Resolve F ih₁ c i (MeasureSet.tainted m✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms✝ h_not_empty')


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

ms✝: List Meas

h_not_empty': ms✝ []

h_right: Resolve F ih₂ c i (MeasureSet.set ms✝ h_not_empty')

m✝: Meas

h_left: Resolve F ih₁ c i (MeasureSet.tainted m✝)

h_meas: ms = ms✝


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

ms✝: List Meas

h_not_empty': ms✝ []

h_right: Resolve F ih₂ c i (MeasureSet.set ms✝ h_not_empty')

m✝: Meas

h_left: Resolve F ih₁ c i (MeasureSet.tainted m✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms✝ h_not_empty')


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

m✝: Meas

h_left: Resolve F ih₁ c i (MeasureSet.tainted m✝)

h_not_empty': ms []

h_right: Resolve F ih₂ c i (MeasureSet.set ms h_not_empty')


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

ms✝: List Meas

h_not_empty': ms✝ []

h_right: Resolve F ih₂ c i (MeasureSet.set ms✝ h_not_empty')

m✝: Meas

h_left: Resolve F ih₁ c i (MeasureSet.tainted m✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms✝ h_not_empty')


m.last F.W

Goals accomplished! 🐙
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

ms'': MeasureSet

h_left: Resolve F ih₁ c i ms''

ms✝: List Meas

h_not_empty': ms✝ []

h_right: Resolve F ih₂ c i (MeasureSet.set ms✝ h_not_empty')

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F ms'' (MeasureSet.set ms✝ h_not_empty')


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

ms✝¹: List Meas

h_not_empty': ms✝¹ []

h_right: Resolve F ih₂ c i (MeasureSet.set ms✝¹ h_not_empty')

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F ih₁ c i (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms✝¹ h_not_empty')


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

ms✝¹: List Meas

h_not_empty': ms✝¹ []

h_right: Resolve F ih₂ c i (MeasureSet.set ms✝¹ h_not_empty')

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F ih₁ c i (MeasureSet.set ms✝ h✝)

h_meas: ms = merge F (ms✝, ms✝¹)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

ms✝¹: List Meas

h_not_empty': ms✝¹ []

h_right: Resolve F ih₂ c i (MeasureSet.set ms✝¹ h_not_empty')

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F ih₁ c i (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms✝¹ h_not_empty')


m.last F.W
α✝: Type

F: Factory α✝

c, i:

m: Meas

ih₁, ih₂: Doc

ms✝¹: List Meas

h_not_empty': ms✝¹ []

h_right: Resolve F ih₂ c i (MeasureSet.set ms✝¹ h_not_empty')

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F ih₁ c i (MeasureSet.set ms✝ h✝)

h_not_empty: merge F (ms✝, ms✝¹) []

h_in: m merge F (ms✝, ms✝¹)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

ms✝¹: List Meas

h_not_empty': ms✝¹ []

h_right: Resolve F ih₂ c i (MeasureSet.set ms✝¹ h_not_empty')

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F ih₁ c i (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms✝¹ h_not_empty')


m.last F.W
α✝: Type

F: Factory α✝

c, i:

m: Meas

ih₁, ih₂: Doc

ms✝¹: List Meas

h_not_empty': ms✝¹ []

h_right: Resolve F ih₂ c i (MeasureSet.set ms✝¹ h_not_empty')

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F ih₁ c i (MeasureSet.set ms✝ h✝)

h_not_empty: merge F (ms✝, ms✝¹) []

h_in: m merge F (ms✝, ms✝¹)

this: m ms✝ m ms✝¹


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

ms✝¹: List Meas

h_not_empty': ms✝¹ []

h_right: Resolve F ih₂ c i (MeasureSet.set ms✝¹ h_not_empty')

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F ih₁ c i (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms✝¹ h_not_empty')


m.last F.W
α✝: Type

F: Factory α✝

c, i:

m: Meas

ih₁, ih₂: Doc

ms✝¹: List Meas

h_not_empty': ms✝¹ []

h_right: Resolve F ih₂ c i (MeasureSet.set ms✝¹ h_not_empty')

ms✝: List Meas

h✝¹: ms✝ []

h_left: Resolve F ih₁ c i (MeasureSet.set ms✝ h✝¹)

h_not_empty: merge F (ms✝, ms✝¹) []

h_in: m merge F (ms✝, ms✝¹)

h✝: m ms✝


inl
m.last F.W
α✝: Type

F: Factory α✝

c, i:

m: Meas

ih₁, ih₂: Doc

ms✝¹: List Meas

h_not_empty': ms✝¹ []

h_right: Resolve F ih₂ c i (MeasureSet.set ms✝¹ h_not_empty')

ms✝: List Meas

h✝¹: ms✝ []

h_left: Resolve F ih₁ c i (MeasureSet.set ms✝ h✝¹)

h_not_empty: merge F (ms✝, ms✝¹) []

h_in: m merge F (ms✝, ms✝¹)

h✝: m ms✝¹


inr
m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

ms✝¹: List Meas

h_not_empty': ms✝¹ []

h_right: Resolve F ih₂ c i (MeasureSet.set ms✝¹ h_not_empty')

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F ih₁ c i (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms✝¹ h_not_empty')


m.last F.W
α✝: Type

F: Factory α✝

c, i:

m: Meas

ih₁, ih₂: Doc

ms✝¹: List Meas

h_not_empty': ms✝¹ []

h_right: Resolve F ih₂ c i (MeasureSet.set ms✝¹ h_not_empty')

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F ih₁ c i (MeasureSet.set ms✝ h✝)

h_not_empty: merge F (ms✝, ms✝¹) []

h_in: m merge F (ms✝, ms✝¹)

h_in': m ms✝


m.last F.W

Goals accomplished! 🐙
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, ih₂: Doc

ms✝¹: List Meas

h_not_empty': ms✝¹ []

h_right: Resolve F ih₂ c i (MeasureSet.set ms✝¹ h_not_empty')

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F ih₁ c i (MeasureSet.set ms✝ h✝)

h_meas: MeasureSet.set ms h_not_empty = MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms✝¹ h_not_empty')


m.last F.W
α✝: Type

F: Factory α✝

c, i:

m: Meas

ih₁, ih₂: Doc

ms✝¹: List Meas

h_not_empty': ms✝¹ []

h_right: Resolve F ih₂ c i (MeasureSet.set ms✝¹ h_not_empty')

ms✝: List Meas

h✝: ms✝ []

h_left: Resolve F ih₁ c i (MeasureSet.set ms✝ h✝)

h_not_empty: merge F (ms✝, ms✝¹) []

h_in: m merge F (ms✝, ms✝¹)

h_in': m ms✝¹


m.last F.W

Goals accomplished! 🐙
α✝: Type

ms: List Meas

F: Factory α✝

d: Doc

c, i:

m: Meas

h_not_empty: ms []

h: Resolve F d c i (MeasureSet.set ms h_not_empty)

h_in: m ms


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, d₂✝: Doc

h: Resolve F (Doc.concat ih₁ d₂✝) c i (MeasureSet.set ms h_not_empty)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, d₂✝: Doc

ms✝: List Meas

h_non_empty✝: ms✝ []

h_left✝: Resolve F ih₁ c i (MeasureSet.set ms✝ h_non_empty✝)

h✝: ResolveConcat F ms✝ d₂✝ i (MeasureSet.set ms h_not_empty)


concat_set
m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, d₂✝: Doc

h: Resolve F (Doc.concat ih₁ d₂✝) c i (MeasureSet.set ms h_not_empty)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, d₂✝: Doc

ms✝: List Meas

h_non_empty✝: ms✝ []

h_left: Resolve F ih₁ c i (MeasureSet.set ms✝ h_non_empty✝)

h_right: ResolveConcat F ms✝ d₂✝ i (MeasureSet.set ms h_not_empty)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, d₂✝: Doc

ms✝: List Meas

h_non_empty✝: ms✝ []

h_left: Resolve F ih₁ c i (MeasureSet.set ms✝ h_non_empty✝)

h_right: ResolveConcat F ms✝ d₂✝ i (MeasureSet.set ms h_not_empty)


m.last F.W
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, d₂✝: Doc

ms✝: List Meas

h_non_empty✝: ms✝ []

h_left: Resolve F ih₁ c i (MeasureSet.set ms✝ h_non_empty✝)

h_right: ResolveConcat F ms✝ d₂✝ i (MeasureSet.set ms h_not_empty)


h
ResolveConcat F ?ms_in ?d ?i (MeasureSet.set ?ms ?h_not_empty)
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, d₂✝: Doc

ms✝: List Meas

h_non_empty✝: ms✝ []

h_left: Resolve F ih₁ c i (MeasureSet.set ms✝ h_non_empty✝)

h_right: ResolveConcat F ms✝ d₂✝ i (MeasureSet.set ms h_not_empty)


h_in
m ?ms
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, d₂✝: Doc

ms✝: List Meas

h_non_empty✝: ms✝ []

h_left: Resolve F ih₁ c i (MeasureSet.set ms✝ h_non_empty✝)

h_right: ResolveConcat F ms✝ d₂✝ i (MeasureSet.set ms h_not_empty)


ms
List Meas
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, d₂✝: Doc

ms✝: List Meas

h_non_empty✝: ms✝ []

h_left: Resolve F ih₁ c i (MeasureSet.set ms✝ h_non_empty✝)

h_right: ResolveConcat F ms✝ d₂✝ i (MeasureSet.set ms h_not_empty)


ms_in
List Meas
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, d₂✝: Doc

ms✝: List Meas

h_non_empty✝: ms✝ []

h_left: Resolve F ih₁ c i (MeasureSet.set ms✝ h_non_empty✝)

h_right: ResolveConcat F ms✝ d₂✝ i (MeasureSet.set ms h_not_empty)


d
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, d₂✝: Doc

ms✝: List Meas

h_non_empty✝: ms✝ []

h_left: Resolve F ih₁ c i (MeasureSet.set ms✝ h_non_empty✝)

h_right: ResolveConcat F ms✝ d₂✝ i (MeasureSet.set ms h_not_empty)


i
α✝: Type

ms: List Meas

F: Factory α✝

c, i:

m: Meas

h_not_empty: ms []

h_in: m ms

ih₁, d₂✝: Doc

ms✝: List Meas

h_non_empty✝: ms✝ []

h_left: Resolve F ih₁ c i (MeasureSet.set ms✝ h_non_empty✝)

h_right: ResolveConcat F ms✝ d₂✝ i (MeasureSet.set ms h_not_empty)


h_not_empty
?ms []

Goals accomplished! 🐙
end termination_by ResolveConcatOne_last => (
d: Doc
d
.
size: Doc
size
,
1: ?m.35150
1
,
0: ?m.35161
0
) ResolveConcat_last => (
d: Doc
d
.
size: Doc
size
,
2: ?m.35592
2
,
ms_in: List Meas
ms_in
.
length: {α : Type ?u.35597} → List α
length
) Resolve_last => (
d: Doc
d
.
size: Doc
size
,
0: ?m.35396
0
,
0: ?m.35407
0
)