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.DocSize
import Pretty.Defs.Resolve
import Pretty.Claims.MeasRender

/-!
## Determinism of resolving theorems
-/

mutual 
  /--
  The determinism of resolving (Page 19, Section 5.6)
  -/
  theorem 
Resolve_deterministic: ∀ {α : Type} {F : Factory α} {d : Doc} {c i : } {ms₁ ms₂ : MeasureSet}, Resolve F d c i ms₁Resolve F d c i ms₂ms₁ = ms₂
Resolve_deterministic
(
h₁: Resolve F d c i ms₁
h₁
:
Resolve: {α : Type} → Factory αDocMeasureSetProp
Resolve
F: ?m.4
F
d: ?m.11
d
c: ?m.17
c
i: ?m.23
i
ms₁: ?m.29
ms₁
) (
h₂: Resolve F d c i ms₂
h₂
:
Resolve: {α : Type} → Factory αDocMeasureSetProp
Resolve
F: ?m.4
F
d: ?m.11
d
c: ?m.17
c
i: ?m.23
i
ms₂: ?m.39
ms₂
) :
ms₁: ?m.29
ms₁
=
ms₂: ?m.39
ms₂
:=

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

h₁: Resolve F d c i ms₁

h₂: Resolve F d c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

h₁: Resolve F d c i ms₁

h₂: Resolve F d c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

h₁: Resolve F d c i ms₁

h₂: Resolve F d c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

h₁: Resolve F d c i ms₁

h₂: Resolve F d c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

s✝: String

h₁: Resolve F (Doc.text s✝) c i ms₁

h₂: Resolve F (Doc.text s✝) c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

h₁: Resolve F d c i ms₁

h₂: Resolve F d c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

s✝: String

h₂: Resolve F (Doc.text s✝) c i ms₂

m✝: Meas

h_bad✝: c + String.length s✝ > F.W i > F.W

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


text_taint
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

s✝: String

h₂: Resolve F (Doc.text s✝) c i ms₂

m✝: Meas

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

h_i✝: i F.W

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


text_set
MeasureSet.set [m✝] (_ : ¬[m✝] = []) = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

s✝: String

h₁: Resolve F (Doc.text s✝) c i ms₁

h₂: Resolve F (Doc.text s✝) c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

s✝: String

h₂: Resolve F (Doc.text s✝) c i ms₂

m✝: Meas

h_bad: c + String.length s✝ > F.W i > F.W

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


α✝: Type

F: Factory α✝

d: Doc

c, i:

s✝: String

m✝¹: Meas

h_bad: c + String.length s✝ > F.W i > F.W

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

m✝: Meas

h_bad✝: c + String.length s✝ > F.W i > F.W

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


text_taint
α✝: Type

F: Factory α✝

d: Doc

c, i:

s✝: String

m✝¹: Meas

h_bad: c + String.length s✝ > F.W i > F.W

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

m✝: Meas

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

h_i✝: i F.W

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


text_set
MeasureSet.tainted m✝¹ = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

s✝: String

h₂: Resolve F (Doc.text s✝) c i ms₂

m✝: Meas

h_bad: c + String.length s✝ > F.W i > F.W

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


α✝: Type

F: Factory α✝

d: Doc

c, i:

s✝: String

m✝¹: Meas

h_bad: c + String.length s✝ > F.W i > F.W

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

m✝: Meas

h_bad✝: c + String.length s✝ > F.W i > F.W

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


α✝: Type

F: Factory α✝

d: Doc

c, i:

s✝: String

m✝¹: Meas

h_bad: c + String.length s✝ > F.W i > F.W

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

m✝: Meas

h_bad✝: c + String.length s✝ > F.W i > F.W

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

this: m✝¹ = m✝


α✝: Type

F: Factory α✝

d: Doc

c, i:

s✝: String

m✝¹: Meas

h_bad: c + String.length s✝ > F.W i > F.W

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

m✝: Meas

h_bad✝: c + String.length s✝ > F.W i > F.W

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


α✝: Type

F: Factory α✝

d: Doc

c, i:

s✝: String

m✝: Meas

h_bad: c + String.length s✝ > F.W i > F.W

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

h_bad✝: c + String.length s✝ > F.W i > F.W

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


α✝: Type

F: Factory α✝

d: Doc

c, i:

s✝: String

m✝¹: Meas

h_bad: c + String.length s✝ > F.W i > F.W

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

m✝: Meas

h_bad✝: c + String.length s✝ > F.W i > F.W

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



Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

s✝: String

h₂: Resolve F (Doc.text s✝) c i ms₂

m✝: Meas

h_bad: c + String.length s✝ > F.W i > F.W

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


α✝: Type

F: Factory α✝

d: Doc

c, i:

s✝: String

m✝¹: Meas

h_bad: c + String.length s✝ > F.W i > F.W

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

m✝: Meas

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

h_i: i F.W

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


MeasureSet.tainted m✝¹ = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

s✝: String

m✝¹: Meas

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

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✝: c + String.length s✝ > F.W


inl
MeasureSet.tainted m✝¹ = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

s✝: String

m✝¹: Meas

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

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✝: i > F.W


inr
MeasureSet.tainted m✝¹ = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

s✝: String

m✝¹: Meas

h_bad: c + String.length s✝ > F.W i > F.W

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

m✝: Meas

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

h_i: i F.W

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


MeasureSet.tainted m✝¹ = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

s✝: String

m✝¹: Meas

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

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_bad: c + String.length s✝ > F.W


MeasureSet.tainted m✝¹ = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

s✝: String

m✝¹: Meas

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

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_bad: ¬c + String.length s✝ F.W


MeasureSet.tainted m✝¹ = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

s✝: String

m✝¹: Meas

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

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_bad: c + String.length s✝ > F.W


MeasureSet.tainted m✝¹ = MeasureSet.set [m✝] (_ : ¬[m✝] = [])

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

s✝: String

m✝¹: Meas

h_bad: c + String.length s✝ > F.W i > F.W

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

m✝: Meas

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

h_i: i F.W

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


MeasureSet.tainted m✝¹ = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

s✝: String

m✝¹: Meas

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

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_bad: i > F.W


MeasureSet.tainted m✝¹ = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

s✝: String

m✝¹: Meas

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

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_bad: ¬i F.W


MeasureSet.tainted m✝¹ = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

s✝: String

m✝¹: Meas

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

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_bad: i > F.W


MeasureSet.tainted m✝¹ = MeasureSet.set [m✝] (_ : ¬[m✝] = [])

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

s✝: String

h₁: Resolve F (Doc.text s✝) c i ms₁

h₂: Resolve F (Doc.text s✝) c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

s✝: String

h₂: Resolve F (Doc.text s✝) c i ms₂

m✝: Meas

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

h_i: i F.W

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


MeasureSet.set [m✝] (_ : ¬[m✝] = []) = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

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

m✝: Meas

h_bad✝: c + String.length s✝ > F.W i > F.W

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


text_taint
MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.tainted m✝
α✝: Type

F: Factory α✝

d: Doc

c, i:

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

m✝: Meas

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

h_i✝: i F.W

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


text_set
MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

s✝: String

h₂: Resolve F (Doc.text s✝) c i ms₂

m✝: Meas

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

h_i: i F.W

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


MeasureSet.set [m✝] (_ : ¬[m✝] = []) = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

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

m✝: Meas

h_bad: c + String.length s✝ > F.W i > F.W

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


MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.tainted m✝
α✝: Type

F: Factory α✝

d: Doc

c, i:

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

m✝: Meas

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

h✝: c + String.length s✝ > F.W


inl
MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.tainted m✝
α✝: Type

F: Factory α✝

d: Doc

c, i:

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

m✝: Meas

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

h✝: i > F.W


inr
MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.tainted m✝
α✝: Type

F: Factory α✝

d: Doc

c, i:

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

m✝: Meas

h_bad: c + String.length s✝ > F.W i > F.W

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


MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.tainted m✝
α✝: Type

F: Factory α✝

d: Doc

c, i:

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

m✝: Meas

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

h_bad: c + String.length s✝ > F.W


MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.tainted m✝
α✝: Type

F: Factory α✝

d: Doc

c, i:

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

m✝: Meas

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

h_bad: ¬c + String.length s✝ F.W


MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.tainted m✝
α✝: Type

F: Factory α✝

d: Doc

c, i:

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

m✝: Meas

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

h_bad: c + String.length s✝ > F.W


MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.tainted m✝

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

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

m✝: Meas

h_bad: c + String.length s✝ > F.W i > F.W

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


MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.tainted m✝
α✝: Type

F: Factory α✝

d: Doc

c, i:

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

m✝: Meas

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

h_bad: i > F.W


MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.tainted m✝
α✝: Type

F: Factory α✝

d: Doc

c, i:

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

m✝: Meas

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

h_bad: ¬i F.W


MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.tainted m✝
α✝: Type

F: Factory α✝

d: Doc

c, i:

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

m✝: Meas

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

h_bad: i > F.W


MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.tainted m✝

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

s✝: String

h₂: Resolve F (Doc.text s✝) c i ms₂

m✝: Meas

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

h_i: i F.W

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


MeasureSet.set [m✝] (_ : ¬[m✝] = []) = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

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

m✝: Meas

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

h_i✝: i F.W

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


MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

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

m✝: Meas

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

h_i✝: i F.W

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

this: m✝¹ = m✝


MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

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

m✝: Meas

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

h_i✝: i F.W

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


MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

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_c✝: c + String.length s✝ F.W

h_i✝: i F.W

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


MeasureSet.set [m✝] (_ : ¬[m✝] = []) = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

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

m✝: Meas

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

h_i✝: i F.W

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


MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.set [m✝] (_ : ¬[m✝] = [])

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

h₁: Resolve F d c i ms₁

h₂: Resolve F d c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

h₁: Resolve F Doc.nl c i ms₁

h₂: Resolve F Doc.nl c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

h₁: Resolve F d c i ms₁

h₂: Resolve F d c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

h₂: Resolve F Doc.nl c i ms₂

m✝: Meas

h_bad✝: c > F.W i > F.W

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


line_taint
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

h₂: Resolve F Doc.nl c i ms₂

m✝: Meas

h_c✝: c F.W

h_i✝: i F.W

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


line_set
MeasureSet.set [m✝] (_ : ¬[m✝] = []) = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

h₁: Resolve F Doc.nl c i ms₁

h₂: Resolve F Doc.nl c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

h₂: Resolve F Doc.nl c i ms₂

m✝: Meas

h_bad: c > F.W i > F.W

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


α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

h_bad: c > F.W i > F.W

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

m✝: Meas

h_bad✝: c > F.W i > F.W

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


line_taint
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

h_bad: c > F.W i > F.W

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

m✝: Meas

h_c✝: c F.W

h_i✝: i F.W

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


line_set
MeasureSet.tainted m✝¹ = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

h₂: Resolve F Doc.nl c i ms₂

m✝: Meas

h_bad: c > F.W i > F.W

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


α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

h_bad: c > F.W i > F.W

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

m✝: Meas

h_bad✝: c > F.W i > F.W

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


α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

h_bad: c > F.W i > F.W

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

m✝: Meas

h_bad✝: c > F.W i > F.W

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

this: m✝¹ = m✝


α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

h_bad: c > F.W i > F.W

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

m✝: Meas

h_bad✝: c > F.W i > F.W

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


α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝: Meas

h_bad: c > F.W i > F.W

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

h_bad✝: c > F.W i > F.W

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


α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

h_bad: c > F.W i > F.W

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

m✝: Meas

h_bad✝: c > F.W i > F.W

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



Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

h₂: Resolve F Doc.nl c i ms₂

m✝: Meas

h_bad: c > F.W i > F.W

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


α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

h_bad: c > F.W i > F.W

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

m✝: Meas

h_c: c F.W

h_i: i F.W

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


MeasureSet.tainted m✝¹ = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

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

m✝: Meas

h_c: c F.W

h_i: i F.W

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

h✝: c > F.W


inl
MeasureSet.tainted m✝¹ = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

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

m✝: Meas

h_c: c F.W

h_i: i F.W

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

h✝: i > F.W


inr
MeasureSet.tainted m✝¹ = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

h_bad: c > F.W i > F.W

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

m✝: Meas

h_c: c F.W

h_i: i F.W

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


MeasureSet.tainted m✝¹ = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

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

m✝: Meas

h_c: c F.W

h_i: i F.W

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

h_bad: c > F.W


MeasureSet.tainted m✝¹ = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

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

m✝: Meas

h_c: c F.W

h_i: i F.W

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

h_bad: ¬c F.W


MeasureSet.tainted m✝¹ = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

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

m✝: Meas

h_c: c F.W

h_i: i F.W

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

h_bad: c > F.W


MeasureSet.tainted m✝¹ = MeasureSet.set [m✝] (_ : ¬[m✝] = [])

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

h_bad: c > F.W i > F.W

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

m✝: Meas

h_c: c F.W

h_i: i F.W

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


MeasureSet.tainted m✝¹ = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

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

m✝: Meas

h_c: c F.W

h_i: i F.W

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

h_bad: i > F.W


MeasureSet.tainted m✝¹ = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

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

m✝: Meas

h_c: c F.W

h_i: i F.W

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

h_bad: ¬i F.W


MeasureSet.tainted m✝¹ = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

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

m✝: Meas

h_c: c F.W

h_i: i F.W

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

h_bad: i > F.W


MeasureSet.tainted m✝¹ = MeasureSet.set [m✝] (_ : ¬[m✝] = [])

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

h₁: Resolve F Doc.nl c i ms₁

h₂: Resolve F Doc.nl c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

h₂: Resolve F Doc.nl c i ms₂

m✝: Meas

h_c: c F.W

h_i: i F.W

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


MeasureSet.set [m✝] (_ : ¬[m✝] = []) = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

h_c: c F.W

h_i: i F.W

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

m✝: Meas

h_bad✝: c > F.W i > F.W

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


line_taint
MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.tainted m✝
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

h_c: c F.W

h_i: i F.W

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

m✝: Meas

h_c✝: c F.W

h_i✝: i F.W

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


line_set
MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

h₂: Resolve F Doc.nl c i ms₂

m✝: Meas

h_c: c F.W

h_i: i F.W

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


MeasureSet.set [m✝] (_ : ¬[m✝] = []) = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

h_c: c F.W

h_i: i F.W

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

m✝: Meas

h_bad: c > F.W i > F.W

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


MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.tainted m✝
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

h_c: c F.W

h_i: i F.W

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

m✝: Meas

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

h✝: c > F.W


inl
MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.tainted m✝
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

h_c: c F.W

h_i: i F.W

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

m✝: Meas

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

h✝: i > F.W


inr
MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.tainted m✝
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

h_c: c F.W

h_i: i F.W

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

m✝: Meas

h_bad: c > F.W i > F.W

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


MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.tainted m✝
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

h_c: c F.W

h_i: i F.W

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

m✝: Meas

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

h_bad: c > F.W


MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.tainted m✝
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

h_c: c F.W

h_i: i F.W

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

m✝: Meas

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

h_bad: ¬c F.W


MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.tainted m✝
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

h_c: c F.W

h_i: i F.W

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

m✝: Meas

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

h_bad: c > F.W


MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.tainted m✝

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

h_c: c F.W

h_i: i F.W

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

m✝: Meas

h_bad: c > F.W i > F.W

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


MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.tainted m✝
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

h_c: c F.W

h_i: i F.W

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

m✝: Meas

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

h_bad: i > F.W


MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.tainted m✝
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

h_c: c F.W

h_i: i F.W

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

m✝: Meas

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

h_bad: ¬i F.W


MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.tainted m✝
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

h_c: c F.W

h_i: i F.W

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

m✝: Meas

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

h_bad: i > F.W


MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.tainted m✝

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

h₂: Resolve F Doc.nl c i ms₂

m✝: Meas

h_c: c F.W

h_i: i F.W

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


MeasureSet.set [m✝] (_ : ¬[m✝] = []) = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

h_c: c F.W

h_i: i F.W

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

m✝: Meas

h_c✝: c F.W

h_i✝: i F.W

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


MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

h_c: c F.W

h_i: i F.W

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

m✝: Meas

h_c✝: c F.W

h_i✝: i F.W

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

this: m✝¹ = m✝


MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

h_c: c F.W

h_i: i F.W

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

m✝: Meas

h_c✝: c F.W

h_i✝: i F.W

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


MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝: Meas

h_c: c F.W

h_i: i F.W

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

h_c✝: c F.W

h_i✝: i F.W

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


MeasureSet.set [m✝] (_ : ¬[m✝] = []) = MeasureSet.set [m✝] (_ : ¬[m✝] = [])
α✝: Type

F: Factory α✝

d: Doc

c, i:

m✝¹: Meas

h_c: c F.W

h_i: i F.W

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

m✝: Meas

h_c✝: c F.W

h_i✝: i F.W

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


MeasureSet.set [m✝¹] (_ : ¬[m✝¹] = []) = MeasureSet.set [m✝] (_ : ¬[m✝] = [])

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

h₁: Resolve F d c i ms₁

h₂: Resolve F d c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

n:

d': Doc

h₁: Resolve F (Doc.nest n d') c i ms₁

h₂: Resolve F (Doc.nest n d') c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

h₁: Resolve F d c i ms₁

h₂: Resolve F d c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

n:

d': Doc

h₂: Resolve F (Doc.nest n d') c i ms₂

ms✝: MeasureSet

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


nest
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

n:

d': Doc

h₁: Resolve F (Doc.nest n d') c i ms₁

h₂: Resolve F (Doc.nest n d') c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

n:

d': Doc

h₂: Resolve F (Doc.nest n d') c i ms₂

ms✝: MeasureSet

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


α✝: Type

F: Factory α✝

d: Doc

c, i, n:

d': Doc

ms✝¹: MeasureSet

h₁: Resolve F d' c (i + n) ms✝¹

ms✝: MeasureSet

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


nest
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

n:

d': Doc

h₂: Resolve F (Doc.nest n d') c i ms₂

ms✝: MeasureSet

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


α✝: Type

F: Factory α✝

d: Doc

c, i, n:

d': Doc

ms✝¹: MeasureSet

h₁: Resolve F d' c (i + n) ms✝¹

ms✝: MeasureSet

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


α✝: Type

F: Factory α✝

d: Doc

c, i, n:

d': Doc

ms✝¹: MeasureSet

h₁: Resolve F d' c (i + n) ms✝¹

ms✝: MeasureSet

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

this: ms✝¹ = ms✝


α✝: Type

F: Factory α✝

d: Doc

c, i, n:

d': Doc

ms✝¹: MeasureSet

h₁: Resolve F d' c (i + n) ms✝¹

ms✝: MeasureSet

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


α✝: Type

F: Factory α✝

d: Doc

c, i, n:

d': Doc

ms✝: MeasureSet

h₁, h₂: Resolve F d' c (i + n) ms✝


α✝: Type

F: Factory α✝

d: Doc

c, i, n:

d': Doc

ms✝¹: MeasureSet

h₁: Resolve F d' c (i + n) ms✝¹

ms✝: MeasureSet

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



Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

h₁: Resolve F d c i ms₁

h₂: Resolve F d c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

d': Doc

h₁: Resolve F (Doc.align d') c i ms₁

h₂: Resolve F (Doc.align d') c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

h₁: Resolve F d c i ms₁

h₂: Resolve F d c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

d': Doc

h₂: Resolve F (Doc.align d') c i ms₂

ms✝: MeasureSet

h✝: Resolve F d' c c ms✝

h_bad✝: i > F.W


align_taint
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

d': Doc

h₂: Resolve F (Doc.align d') c i ms₂

ms✝: MeasureSet

h✝: Resolve F d' c c ms✝

h_ok✝: i F.W


align
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

d': Doc

h₁: Resolve F (Doc.align d') c i ms₁

h₂: Resolve F (Doc.align d') c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

d': Doc

h₂: Resolve F (Doc.align d') c i ms₂

ms✝: MeasureSet

h₁: Resolve F d' c c ms✝

h_ok: i F.W


α✝: Type

F: Factory α✝

d: Doc

c, i:

d': Doc

ms✝¹: MeasureSet

h₁: Resolve F d' c c ms✝¹

h_ok: i F.W

ms✝: MeasureSet

h✝: Resolve F d' c c ms✝

h_bad✝: i > F.W


align_taint
α✝: Type

F: Factory α✝

d: Doc

c, i:

d': Doc

ms✝¹: MeasureSet

h₁: Resolve F d' c c ms✝¹

h_ok: i F.W

ms✝: MeasureSet

h✝: Resolve F d' c c ms✝

h_ok✝: i F.W


align
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

d': Doc

h₂: Resolve F (Doc.align d') c i ms₂

ms✝: MeasureSet

h₁: Resolve F d' c c ms✝

h_ok: i F.W


α✝: Type

F: Factory α✝

d: Doc

c, i:

d': Doc

ms✝¹: MeasureSet

h₁: Resolve F d' c c ms✝¹

h_ok: i F.W

ms✝: MeasureSet

h✝: Resolve F d' c c ms✝

h_bad: i > F.W


α✝: Type

F: Factory α✝

d: Doc

c, i:

d': Doc

ms✝¹: MeasureSet

h₁: Resolve F d' c c ms✝¹

h_ok: i F.W

ms✝: MeasureSet

h✝: Resolve F d' c c ms✝

h_bad: ¬i F.W


α✝: Type

F: Factory α✝

d: Doc

c, i:

d': Doc

ms✝¹: MeasureSet

h₁: Resolve F d' c c ms✝¹

h_ok: i F.W

ms✝: MeasureSet

h✝: Resolve F d' c c ms✝

h_bad: i > F.W



Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

d': Doc

h₂: Resolve F (Doc.align d') c i ms₂

ms✝: MeasureSet

h₁: Resolve F d' c c ms✝

h_ok: i F.W


α✝: Type

F: Factory α✝

d: Doc

c, i:

d': Doc

ms✝¹: MeasureSet

h₁: Resolve F d' c c ms✝¹

h_ok: i F.W

ms✝: MeasureSet

h₂: Resolve F d' c c ms✝

h_ok✝: i F.W



Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

d': Doc

h₁: Resolve F (Doc.align d') c i ms₁

h₂: Resolve F (Doc.align d') c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

d': Doc

h₂: Resolve F (Doc.align d') c i ms₂

ms✝: MeasureSet

h: Resolve F d' c c ms✝

h_bad: i > F.W


α✝: Type

F: Factory α✝

d: Doc

c, i:

d': Doc

ms✝¹: MeasureSet

h: Resolve F d' c c ms✝¹

h_bad: i > F.W

ms✝: MeasureSet

h✝: Resolve F d' c c ms✝

h_bad✝: i > F.W


align_taint
α✝: Type

F: Factory α✝

d: Doc

c, i:

d': Doc

ms✝¹: MeasureSet

h: Resolve F d' c c ms✝¹

h_bad: i > F.W

ms✝: MeasureSet

h✝: Resolve F d' c c ms✝

h_ok✝: i F.W


align
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

d': Doc

h₂: Resolve F (Doc.align d') c i ms₂

ms✝: MeasureSet

h: Resolve F d' c c ms✝

h_bad: i > F.W


α✝: Type

F: Factory α✝

d: Doc

c, i:

d': Doc

ms✝¹: MeasureSet

h: Resolve F d' c c ms✝¹

h_bad: i > F.W

ms✝: MeasureSet

h': Resolve F d' c c ms✝

h_bad✝: i > F.W



Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

d': Doc

h₂: Resolve F (Doc.align d') c i ms₂

ms✝: MeasureSet

h: Resolve F d' c c ms✝

h_bad: i > F.W


α✝: Type

F: Factory α✝

d: Doc

c, i:

d': Doc

ms✝¹: MeasureSet

h: Resolve F d' c c ms✝¹

h_bad: i > F.W

ms✝: MeasureSet

h✝: Resolve F d' c c ms✝

h_ok✝: i F.W


α✝: Type

F: Factory α✝

d: Doc

c, i:

d': Doc

ms✝¹: MeasureSet

h: Resolve F d' c c ms✝¹

ms✝: MeasureSet

h✝: Resolve F d' c c ms✝

h_ok✝: i F.W

h_bad: ¬i F.W


α✝: Type

F: Factory α✝

d: Doc

c, i:

d': Doc

ms✝¹: MeasureSet

h: Resolve F d' c c ms✝¹

h_bad: i > F.W

ms✝: MeasureSet

h✝: Resolve F d' c c ms✝

h_ok✝: i F.W



Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

h₁: Resolve F d c i ms₁

h₂: Resolve F d c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

d₁, d₂: Doc

h₁: Resolve F (Doc.choice d₁ d₂) c i ms₁

h₂: Resolve F (Doc.choice d₁ d₂) c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

h₁: Resolve F d c i ms₁

h₂: Resolve F d c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

d₁, d₂: Doc

h₂: Resolve F (Doc.choice d₁ d₂) c i ms₂

ms✝, ms'✝: MeasureSet

h_left✝: Resolve F d₁ c i ms✝

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


choice
MeasureSet.union F ms✝ ms'✝ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

d₁, d₂: Doc

h₁: Resolve F (Doc.choice d₁ d₂) c i ms₁

h₂: Resolve F (Doc.choice d₁ d₂) c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

d₁, d₂: Doc

h₂: Resolve F (Doc.choice d₁ d₂) c i ms₂

ms✝, ms'✝: MeasureSet

h_right: Resolve F d₁ c i ms✝

h_left: Resolve F d₂ c i ms'✝


MeasureSet.union F ms✝ ms'✝ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

d₁, d₂: Doc

ms✝¹, ms'✝¹: MeasureSet

h_right: Resolve F d₁ c i ms✝¹

h_left: Resolve F d₂ c i ms'✝¹

ms✝, ms'✝: MeasureSet

h_left✝: Resolve F d₁ c i ms✝

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


choice
MeasureSet.union F ms✝¹ ms'✝¹ = MeasureSet.union F ms✝ ms'✝
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

d₁, d₂: Doc

h₂: Resolve F (Doc.choice d₁ d₂) c i ms₂

ms✝, ms'✝: MeasureSet

h_right: Resolve F d₁ c i ms✝

h_left: Resolve F d₂ c i ms'✝


MeasureSet.union F ms✝ ms'✝ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

d₁, d₂: Doc

ms✝¹, ms'✝¹: MeasureSet

h_right: Resolve F d₁ c i ms✝¹

h_left: Resolve F d₂ c i ms'✝¹

ms✝, ms'✝: MeasureSet

h_right': Resolve F d₁ c i ms✝

h_left': Resolve F d₂ c i ms'✝


MeasureSet.union F ms✝¹ ms'✝¹ = MeasureSet.union F ms✝ ms'✝

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

h₁: Resolve F d c i ms₁

h₂: Resolve F d c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

d₁, d₂: Doc

h₁: Resolve F (Doc.concat d₁ d₂) c i ms₁

h₂: Resolve F (Doc.concat d₁ d₂) c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

h₁: Resolve F d c i ms₁

h₂: Resolve F d c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

d₁, d₂: Doc

h₂: Resolve F (Doc.concat d₁ d₂) c i ms₂

m✝: Meas

ms'✝: MeasureSet

m'✝: Meas

h_taint✝: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝

h_right✝: Resolve F d₂ m✝.last i ms'✝

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


concat_taint
MeasureSet.tainted (Meas.concat F m✝ m'✝) = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

d₁, d₂: Doc

h₂: Resolve F (Doc.concat d₁ d₂) c i ms₂

ms✝: List Meas

h_non_empty✝: ms✝ []

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

h✝: ResolveConcat F ms✝ d₂ i ms₁


concat_set
ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

d₁, d₂: Doc

h₁: Resolve F (Doc.concat d₁ d₂) c i ms₁

h₂: Resolve F (Doc.concat d₁ d₂) c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

d₁, d₂: Doc

h₂: Resolve F (Doc.concat d₁ d₂) c i ms₂

m✝: Meas

ms'✝: MeasureSet

m'✝: Meas

h_taint₁: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝

h_right₁: Resolve F d₂ m✝.last i ms'✝

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


MeasureSet.tainted (Meas.concat F m✝ m'✝) = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

d₁, d₂: Doc

m✝¹: Meas

ms'✝¹: MeasureSet

m'✝¹: Meas

h_taint₁: MeasureSet.taint ms'✝¹ = MeasureSet.tainted m'✝¹

h_right₁: Resolve F d₂ m✝¹.last i ms'✝¹

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

m✝: Meas

ms'✝: MeasureSet

m'✝: Meas

h_taint✝: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝

h_right✝: Resolve F d₂ m✝.last i ms'✝

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


concat_taint
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

d₁, d₂: Doc

m✝: Meas

ms'✝: MeasureSet

m'✝: Meas

h_taint₁: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝

h_right₁: Resolve F d₂ m✝.last i ms'✝

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

ms✝: List Meas

h_non_empty✝: ms✝ []

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

h✝: ResolveConcat F ms✝ d₂ i ms₂


concat_set
MeasureSet.tainted (Meas.concat F m✝ m'✝) = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

d₁, d₂: Doc

h₂: Resolve F (Doc.concat d₁ d₂) c i ms₂

m✝: Meas

ms'✝: MeasureSet

m'✝: Meas

h_taint₁: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝

h_right₁: Resolve F d₂ m✝.last i ms'✝

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


MeasureSet.tainted (Meas.concat F m✝ m'✝) = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

d₁, d₂: Doc

m✝¹: Meas

ms'✝¹: MeasureSet

m'✝¹: Meas

h_taint₁: MeasureSet.taint ms'✝¹ = MeasureSet.tainted m'✝¹

h_right₁: Resolve F d₂ m✝¹.last i ms'✝¹

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

m✝: Meas

ms'✝: MeasureSet

m'✝: Meas

h_taint₂: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝

h_right₂: Resolve F d₂ m✝.last i ms'✝

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


α✝: Type

F: Factory α✝

d: Doc

c, i:

d₁, d₂: Doc

m✝: Meas

ms'✝¹: MeasureSet

m'✝¹: Meas

h_taint₁: MeasureSet.taint ms'✝¹ = MeasureSet.tainted m'✝¹

h_right₁: Resolve F d₂ m✝.last i ms'✝¹

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

ms'✝: MeasureSet

m'✝: Meas

h_taint₂: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝

h_right₂: Resolve F d₂ m✝.last i ms'✝

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


refl
α✝: Type

F: Factory α✝

d: Doc

c, i:

d₁, d₂: Doc

m✝¹: Meas

ms'✝¹: MeasureSet

m'✝¹: Meas

h_taint₁: MeasureSet.taint ms'✝¹ = MeasureSet.tainted m'✝¹

h_right₁: Resolve F d₂ m✝¹.last i ms'✝¹

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

m✝: Meas

ms'✝: MeasureSet

m'✝: Meas

h_taint₂: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝

h_right₂: Resolve F d₂ m✝.last i ms'✝

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


α✝: Type

F: Factory α✝

d: Doc

c, i:

d₁, d₂: Doc

m✝: Meas

ms'✝: MeasureSet

m'✝¹: Meas

h_taint₁: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝¹

h_right₁: Resolve F d₂ m✝.last i ms'✝

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

m'✝: Meas

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

h_taint₂: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝

h_right₂: Resolve F d₂ m✝.last i ms'✝


refl.refl
α✝: Type

F: Factory α✝

d: Doc

c, i:

d₁, d₂: Doc

m✝¹: Meas

ms'✝¹: MeasureSet

m'✝¹: Meas

h_taint₁: MeasureSet.taint ms'✝¹ = MeasureSet.tainted m'✝¹

h_right₁: Resolve F d₂ m✝¹.last i ms'✝¹

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

m✝: Meas

ms'✝: MeasureSet

m'✝: Meas

h_taint₂: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝

h_right₂: Resolve F d₂ m✝.last i ms'✝

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


α✝: Type

F: Factory α✝

d: Doc

c, i:

d₁, d₂: Doc

m✝: Meas

ms'✝: MeasureSet

m'✝¹: Meas

h_taint₁: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝¹

h_right₁: Resolve F d₂ m✝.last i ms'✝

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

m'✝: Meas

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

h_right₂: Resolve F d₂ m✝.last i ms'✝

h_taint₂: m'✝¹ = m'✝


refl.refl
α✝: Type

F: Factory α✝

d: Doc

c, i:

d₁, d₂: Doc

m✝¹: Meas

ms'✝¹: MeasureSet

m'✝¹: Meas

h_taint₁: MeasureSet.taint ms'✝¹ = MeasureSet.tainted m'✝¹

h_right₁: Resolve F d₂ m✝¹.last i ms'✝¹

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

m✝: Meas

ms'✝: MeasureSet

m'✝: Meas

h_taint₂: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝

h_right₂: Resolve F d₂ m✝.last i ms'✝

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



Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

d₁, d₂: Doc

h₂: Resolve F (Doc.concat d₁ d₂) c i ms₂

m✝: Meas

ms'✝: MeasureSet

m'✝: Meas

h_taint₁: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝

h_right₁: Resolve F d₂ m✝.last i ms'✝

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


MeasureSet.tainted (Meas.concat F m✝ m'✝) = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₂: MeasureSet

d₁, d₂: Doc

m✝: Meas

ms'✝: MeasureSet

m'✝: Meas

h_taint₁: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝

h_right₁: Resolve F d₂ m✝.last i ms'✝

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

ms✝: List Meas

h_non_empty✝: ms✝ []

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

h✝: ResolveConcat F ms✝ d₂ i ms₂


MeasureSet.tainted (Meas.concat F m✝ m'✝) = ms₂

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

d₁, d₂: Doc

h₁: Resolve F (Doc.concat d₁ d₂) c i ms₁

h₂: Resolve F (Doc.concat d₁ d₂) c i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

d₁, d₂: Doc

h₂: Resolve F (Doc.concat d₁ d₂) c i ms₂

ms✝: List Meas

h_non_empty✝: ms✝ []

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

h_right₁: ResolveConcat F ms✝ d₂ i ms₁


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁: MeasureSet

d₁, d₂: Doc

ms✝: List Meas

h_non_empty✝: ms✝ []

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

h_right₁: ResolveConcat F ms✝ d₂ i ms₁

m✝: Meas

ms'✝: MeasureSet

m'✝: Meas

h_taint✝: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝

h_right✝: Resolve F d₂ m✝.last i ms'✝

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


concat_taint
ms₁ = MeasureSet.tainted (Meas.concat F m✝ m'✝)
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

d₁, d₂: Doc

ms✝¹: List Meas

h_non_empty✝¹: ms✝¹ []

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

h_right₁: ResolveConcat F ms✝¹ d₂ i ms₁

ms✝: List Meas

h_non_empty✝: ms✝ []

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

h✝: ResolveConcat F ms✝ d₂ i ms₂


concat_set
ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

d₁, d₂: Doc

h₂: Resolve F (Doc.concat d₁ d₂) c i ms₂

ms✝: List Meas

h_non_empty✝: ms✝ []

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

h_right₁: ResolveConcat F ms✝ d₂ i ms₁


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁: MeasureSet

d₁, d₂: Doc

ms✝: List Meas

h_non_empty✝: ms✝ []

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

h_right₁: ResolveConcat F ms✝ d₂ i ms₁

m✝: Meas

ms'✝: MeasureSet

m'✝: Meas

h_taint₂: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝

h_right₂: Resolve F d₂ m✝.last i ms'✝

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


ms₁ = MeasureSet.tainted (Meas.concat F m✝ m'✝)

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

d₁, d₂: Doc

h₂: Resolve F (Doc.concat d₁ d₂) c i ms₂

ms✝: List Meas

h_non_empty✝: ms✝ []

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

h_right₁: ResolveConcat F ms✝ d₂ i ms₁


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

d₁, d₂: Doc

ms✝¹: List Meas

h_non_empty✝¹: ms✝¹ []

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

h_right₁: ResolveConcat F ms✝¹ d₂ i ms₁

ms✝: List Meas

h_non_empty✝: ms✝ []

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

h_right₂: ResolveConcat F ms✝ d₂ i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

d₁, d₂: Doc

ms✝: List Meas

h_non_empty✝¹: ms✝ []

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

h_right₁: ResolveConcat F ms✝ d₂ i ms₁

h_non_empty✝: ms✝ []

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

h_right₂: ResolveConcat F ms✝ d₂ i ms₂


refl
ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

d₁, d₂: Doc

ms✝¹: List Meas

h_non_empty✝¹: ms✝¹ []

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

h_right₁: ResolveConcat F ms✝¹ d₂ i ms₁

ms✝: List Meas

h_non_empty✝: ms✝ []

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

h_right₂: ResolveConcat F ms✝ d₂ i ms₂


ms₁ = ms₂
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁: MeasureSet

d₁, d₂: Doc

ms✝: List Meas

h_non_empty✝¹: ms✝ []

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

h_right₁: ResolveConcat F ms✝ d₂ i ms₁

h_non_empty✝: ms✝ []

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

h_right₂: ResolveConcat F ms✝ d₂ i ms₁


refl.refl
ms₁ = ms₁
α✝: Type

F: Factory α✝

d: Doc

c, i:

ms₁, ms₂: MeasureSet

d₁, d₂: Doc

ms✝¹: List Meas

h_non_empty✝¹: ms✝¹ []

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

h_right₁: ResolveConcat F ms✝¹ d₂ i ms₁

ms✝: List Meas

h_non_empty✝: ms✝ []

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

h_right₂: ResolveConcat F ms✝ d₂ i ms₂


ms₁ = ms₂

Goals accomplished! 🐙

Goals accomplished! 🐙
theorem
ResolveConcatOne_deterministic: ∀ {α : Type} {F : Factory α} {d : Doc} {m : Meas} {i : } {msr₁ msr₂ : MeasureSet}, ResolveConcatOne F d m i msr₁ResolveConcatOne F d m i msr₂msr₁ = msr₂
ResolveConcatOne_deterministic
(
h₁: ResolveConcatOne F d m i msr₁
h₁
:
ResolveConcatOne: {α : Type} → Factory αDocMeasMeasureSetProp
ResolveConcatOne
F: ?m.55
F
d: ?m.62
d
m: ?m.68
m
i: ?m.75
i
msr₁: ?m.81
msr₁
) (
h₂: ResolveConcatOne F d m i msr₂
h₂
:
ResolveConcatOne: {α : Type} → Factory αDocMeasMeasureSetProp
ResolveConcatOne
F: ?m.55
F
d: ?m.62
d
m: ?m.68
m
i: ?m.75
i
msr₂: ?m.91
msr₂
) :
msr₁: ?m.81
msr₁
=
msr₂: ?m.91
msr₂
:=

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

m: Meas

i:

msr₁, msr₂: MeasureSet

h₁: ResolveConcatOne F d m i msr₁

h₂: ResolveConcatOne F d m i msr₂


msr₁ = msr₂
α✝: Type

F: Factory α✝

d: Doc

m: Meas

i:

msr₂: MeasureSet

h₂: ResolveConcatOne F d m i msr₂

m'✝: Meas

h✝: Resolve F d m.last i (MeasureSet.tainted m'✝)


tainted
MeasureSet.tainted (Meas.concat F m m'✝) = msr₂
α✝: Type

F: Factory α✝

d: Doc

m: Meas

i:

msr₂: MeasureSet

h₂: ResolveConcatOne F d m i msr₂

ms✝: List Meas

h_non_empty✝: ms✝ []

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


set
MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m m') ms✝) []) = msr₂
α✝: Type

F: Factory α✝

d: Doc

m: Meas

i:

msr₁, msr₂: MeasureSet

h₁: ResolveConcatOne F d m i msr₁

h₂: ResolveConcatOne F d m i msr₂


msr₁ = msr₂
α✝: Type

F: Factory α✝

d: Doc

m: Meas

i:

msr₂: MeasureSet

h₂: ResolveConcatOne F d m i msr₂

m'✝: Meas

h₁: Resolve F d m.last i (MeasureSet.tainted m'✝)


MeasureSet.tainted (Meas.concat F m m'✝) = msr₂
α✝: Type

F: Factory α✝

d: Doc

m: Meas

i:

m'✝¹: Meas

h₁: Resolve F d m.last i (MeasureSet.tainted m'✝¹)

m'✝: Meas

h✝: Resolve F d m.last i (MeasureSet.tainted m'✝)


tainted
α✝: Type

F: Factory α✝

d: Doc

m: Meas

i:

m'✝: Meas

h₁: Resolve F d m.last i (MeasureSet.tainted m'✝)

ms✝: List Meas

h_non_empty✝: ms✝ []

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


set
MeasureSet.tainted (Meas.concat F m m'✝) = MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m m') ms✝) [])
α✝: Type

F: Factory α✝

d: Doc

m: Meas

i:

msr₂: MeasureSet

h₂: ResolveConcatOne F d m i msr₂

m'✝: Meas

h₁: Resolve F d m.last i (MeasureSet.tainted m'✝)


MeasureSet.tainted (Meas.concat F m m'✝) = msr₂
α✝: Type

F: Factory α✝

d: Doc

m: Meas

i:

m'✝¹: Meas

h₁: Resolve F d m.last i (MeasureSet.tainted m'✝¹)

m'✝: Meas

h₂: Resolve F d m.last i (MeasureSet.tainted m'✝)


α✝: Type

F: Factory α✝

d: Doc

m: Meas

i:

m'✝: Meas

h₁, h₂: Resolve F d m.last i (MeasureSet.tainted m'✝)


refl
α✝: Type

F: Factory α✝

d: Doc

m: Meas

i:

m'✝¹: Meas

h₁: Resolve F d m.last i (MeasureSet.tainted m'✝¹)

m'✝: Meas

h₂: Resolve F d m.last i (MeasureSet.tainted m'✝)



Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

m: Meas

i:

msr₂: MeasureSet

h₂: ResolveConcatOne F d m i msr₂

m'✝: Meas

h₁: Resolve F d m.last i (MeasureSet.tainted m'✝)


MeasureSet.tainted (Meas.concat F m m'✝) = msr₂
α✝: Type

F: Factory α✝

d: Doc

m: Meas

i:

m'✝: Meas

h₁: Resolve F d m.last i (MeasureSet.tainted m'✝)

ms✝: List Meas

h_non_empty✝: ms✝ []

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


MeasureSet.tainted (Meas.concat F m m'✝) = MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m m') ms✝) [])

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

m: Meas

i:

msr₁, msr₂: MeasureSet

h₁: ResolveConcatOne F d m i msr₁

h₂: ResolveConcatOne F d m i msr₂


msr₁ = msr₂
α✝: Type

F: Factory α✝

d: Doc

m: Meas

i:

msr₂: MeasureSet

h₂: ResolveConcatOne F d m i msr₂

ms✝: List Meas

h_non_empty✝: ms✝ []

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


MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m m') ms✝) []) = msr₂
α✝: Type

F: Factory α✝

d: Doc

m: Meas

i:

ms✝: List Meas

h_non_empty✝: ms✝ []

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

m'✝: Meas

h✝: Resolve F d m.last i (MeasureSet.tainted m'✝)


tainted
MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m m') ms✝) []) = MeasureSet.tainted (Meas.concat F m m'✝)
α✝: Type

F: Factory α✝

d: Doc

m: Meas

i:

ms✝¹: List Meas

h_non_empty✝¹: ms✝¹ []

h₁: Resolve F d m.last i (MeasureSet.set ms✝¹ h_non_empty✝¹)

ms✝: List Meas

h_non_empty✝: ms✝ []

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


set
MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m m') ms✝¹)) (_ : dedup F (List.map (fun m' => Meas.concat F m m') ms✝¹) []) = MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m m') ms✝) [])
α✝: Type

F: Factory α✝

d: Doc

m: Meas

i:

msr₂: MeasureSet

h₂: ResolveConcatOne F d m i msr₂

ms✝: List Meas

h_non_empty✝: ms✝ []

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


MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m m') ms✝) []) = msr₂
α✝: Type

F: Factory α✝

d: Doc

m: Meas

i:

ms✝: List Meas

h_non_empty✝: ms✝ []

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

m'✝: Meas

h₂: Resolve F d m.last i (MeasureSet.tainted m'✝)


MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m m') ms✝) []) = MeasureSet.tainted (Meas.concat F m m'✝)

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

m: Meas

i:

msr₂: MeasureSet

h₂: ResolveConcatOne F d m i msr₂

ms✝: List Meas

h_non_empty✝: ms✝ []

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


MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m m') ms✝) []) = msr₂
α✝: Type

F: Factory α✝

d: Doc

m: Meas

i:

ms✝¹: List Meas

h_non_empty✝¹: ms✝¹ []

h₁: Resolve F d m.last i (MeasureSet.set ms✝¹ h_non_empty✝¹)

ms✝: List Meas

h_non_empty✝: ms✝ []

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


MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m m') ms✝¹)) (_ : dedup F (List.map (fun m' => Meas.concat F m m') ms✝¹) []) = MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m m') ms✝) [])
α✝: Type

F: Factory α✝

d: Doc

m: Meas

i:

ms✝: List Meas

h_non_empty✝¹: ms✝ []

h₁: Resolve F d m.last i (MeasureSet.set ms✝ h_non_empty✝¹)

h_non_empty✝: ms✝ []

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


refl
MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m m') ms✝) []) = MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m m') ms✝) [])
α✝: Type

F: Factory α✝

d: Doc

m: Meas

i:

ms✝¹: List Meas

h_non_empty✝¹: ms✝¹ []

h₁: Resolve F d m.last i (MeasureSet.set ms✝¹ h_non_empty✝¹)

ms✝: List Meas

h_non_empty✝: ms✝ []

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


MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m m') ms✝¹)) (_ : dedup F (List.map (fun m' => Meas.concat F m m') ms✝¹) []) = MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m m') ms✝) [])

Goals accomplished! 🐙
theorem
ResolveConcat_deterministic: ∀ {α : Type} {F : Factory α} {d : Doc} {i : } {msr₁ msr₂ : MeasureSet} {ms : List Meas}, ResolveConcat F ms d i msr₁ResolveConcat F ms d i msr₂msr₁ = msr₂
ResolveConcat_deterministic
{
ms: List Meas
ms
:
List: Type ?u.165 → Type ?u.165
List
Meas: {α : Type} → Type
Meas
} (
h₁: ResolveConcat F ms d i msr₁
h₁
:
ResolveConcat: {α : Type} → Factory αList MeasDocMeasureSetProp
ResolveConcat
F: ?m.111
F
ms: List Meas
ms
d: ?m.125
d
i: ?m.136
i
msr₁: ?m.147
msr₁
) (
h₂: ResolveConcat F ms d i msr₂
h₂
:
ResolveConcat: {α : Type} → Factory αList MeasDocMeasureSetProp
ResolveConcat
F: ?m.111
F
ms: List Meas
ms
d: ?m.125
d
i: ?m.136
i
msr₂: ?m.162
msr₂
) :
msr₁: ?m.147
msr₁
=
msr₂: ?m.162
msr₂
:=

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

i:

msr₁, msr₂: MeasureSet

ms: List Meas

h₁: ResolveConcat F ms d i msr₁

h₂: ResolveConcat F ms d i msr₂


msr₁ = msr₂
α✝: Type

F: Factory α✝

d: Doc

i:

msr₁, msr₂: MeasureSet

m✝: Meas

h₂: ResolveConcat F [m✝] d i msr₂

h_current✝: ResolveConcatOne F d m✝ i msr₁


one
msr₁ = msr₂
α✝: Type

F: Factory α✝

d: Doc

i:

msr₂: MeasureSet

ms✝: List Meas

msr✝: MeasureSet

m✝: Meas

msr'✝: MeasureSet

h₂: ResolveConcat F (m✝ :: ms✝) d i msr₂

h_rest✝: ResolveConcat F ms✝ d i msr✝

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


cons
MeasureSet.union F msr'✝ msr✝ = msr₂
α✝: Type

F: Factory α✝

d: Doc

i:

msr₁, msr₂: MeasureSet

ms: List Meas

h₁: ResolveConcat F ms d i msr₁

h₂: ResolveConcat F ms d i msr₂


msr₁ = msr₂
α✝: Type

F: Factory α✝

d: Doc

i:

msr₁, msr₂: MeasureSet

m✝: Meas

h₂: ResolveConcat F [m✝] d i msr₂

h_current✝: ResolveConcatOne F d m✝ i msr₁


msr₁ = msr₂
α✝: Type

F: Factory α✝

d: Doc

i:

msr₁, msr₂: MeasureSet

m✝: Meas

h₂: ResolveConcat F [m✝] d i msr₂

h_current✝: ResolveConcatOne F d m✝ i msr₁


msr₁ = msr₂
α✝: Type

F: Factory α✝

d: Doc

i:

msr₁, msr₂: MeasureSet

m✝: Meas

h_current✝¹: ResolveConcatOne F d m✝ i msr₁

h_current✝: ResolveConcatOne F d m✝ i msr₂


one
msr₁ = msr₂
α✝: Type

F: Factory α✝

d: Doc

i:

msr₁: MeasureSet

m✝: Meas

h_current✝¹: ResolveConcatOne F d m✝ i msr₁

msr✝, msr'✝: MeasureSet

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

h_rest✝: ResolveConcat F [] d i msr✝


cons
msr₁ = MeasureSet.union F msr'✝ msr✝
α✝: Type

F: Factory α✝

d: Doc

i:

msr₁, msr₂: MeasureSet

m✝: Meas

h_current✝¹: ResolveConcatOne F d m✝ i msr₁

h_current✝: ResolveConcatOne F d m✝ i msr₂


one
msr₁ = msr₂
α✝: Type

F: Factory α✝

d: Doc

i:

msr₁, msr₂: MeasureSet

m✝: Meas

h₂: ResolveConcat F [m✝] d i msr₂

h_current✝: ResolveConcatOne F d m✝ i msr₁


msr₁ = msr₂
α✝: Type

F: Factory α✝

d: Doc

i:

msr₁, msr₂: MeasureSet

m✝: Meas

h_current✝¹: ResolveConcatOne F d m✝ i msr₁

h_current✝: ResolveConcatOne F d m✝ i msr₂


msr₁ = msr₂
α✝: Type

F: Factory α✝

d: Doc

i:

msr₁, msr₂: MeasureSet

m✝: Meas

h_current✝¹: ResolveConcatOne F d m✝ i msr₁

h_current✝: ResolveConcatOne F d m✝ i msr₂


h₁
ResolveConcatOne ?F ?d ?m ?i msr₁
α✝: Type

F: Factory α✝

d: Doc

i:

msr₁, msr₂: MeasureSet

m✝: Meas

h_current✝¹: ResolveConcatOne F d m✝ i msr₁

h_current✝: ResolveConcatOne F d m✝ i msr₂


h₂
ResolveConcatOne ?F ?d ?m ?i msr₂
α✝: Type

F: Factory α✝

d: Doc

i:

msr₁, msr₂: MeasureSet

m✝: Meas

h_current✝¹: ResolveConcatOne F d m✝ i msr₁

h_current✝: ResolveConcatOne F d m✝ i msr₂


F
Factory α✝
α✝: Type

F: Factory α✝

d: Doc

i:

msr₁, msr₂: MeasureSet

m✝: Meas

h_current✝¹: ResolveConcatOne F d m✝ i msr₁

h_current✝: ResolveConcatOne F d m✝ i msr₂


d
α✝: Type

F: Factory α✝

d: Doc

i:

msr₁, msr₂: MeasureSet

m✝: Meas

h_current✝¹: ResolveConcatOne F d m✝ i msr₁

h_current✝: ResolveConcatOne F d m✝ i msr₂


m
Meas
α✝: Type

F: Factory α✝

d: Doc

i:

msr₁, msr₂: MeasureSet

m✝: Meas

h_current✝¹: ResolveConcatOne F d m✝ i msr₁

h_current✝: ResolveConcatOne F d m✝ i msr₂


i
α✝: Type

F: Factory α✝

d: Doc

i:

msr₁, msr₂: MeasureSet

m✝: Meas

h_current✝¹: ResolveConcatOne F d m✝ i msr₁

h_current✝: ResolveConcatOne F d m✝ i msr₂


msr₁ = msr₂
α✝: Type

F: Factory α✝

d: Doc

i:

msr₁, msr₂: MeasureSet

m✝: Meas

h_current✝¹: ResolveConcatOne F d m✝ i msr₁

h_current✝: ResolveConcatOne F d m✝ i msr₂


h₁
ResolveConcatOne ?F ?d ?m ?i msr₁
α✝: Type

F: Factory α✝

d: Doc

i:

msr₁, msr₂: MeasureSet

m✝: Meas

h_current✝¹: ResolveConcatOne F d m✝ i msr₁

h_current✝: ResolveConcatOne F d m✝ i msr₂


h₂
ResolveConcatOne ?F ?d ?m ?i msr₂
α✝: Type

F: Factory α✝

d: Doc

i:

msr₁, msr₂: MeasureSet

m✝: Meas

h_current✝¹: ResolveConcatOne F d m✝ i msr₁

h_current✝: ResolveConcatOne F d m✝ i msr₂


F
Factory α✝
α✝: Type

F: Factory α✝

d: Doc

i:

msr₁, msr₂: MeasureSet

m✝: Meas

h_current✝¹: ResolveConcatOne F d m✝ i msr₁

h_current✝: ResolveConcatOne F d m✝ i msr₂


d
α✝: Type

F: Factory α✝

d: Doc

i:

msr₁, msr₂: MeasureSet

m✝: Meas

h_current✝¹: ResolveConcatOne F d m✝ i msr₁

h_current✝: ResolveConcatOne F d m✝ i msr₂


m
Meas
α✝: Type

F: Factory α✝

d: Doc

i:

msr₁, msr₂: MeasureSet

m✝: Meas

h_current✝¹: ResolveConcatOne F d m✝ i msr₁

h_current✝: ResolveConcatOne F d m✝ i msr₂


i
α✝: Type

F: Factory α✝

d: Doc

i:

msr₁, msr₂: MeasureSet

m✝: Meas

h_current✝¹: ResolveConcatOne F d m✝ i msr₁

h_current✝: ResolveConcatOne F d m✝ i msr₂


msr₁ = msr₂

Goals accomplished! 🐙
α✝: Type

F: Factory α✝

d: Doc

i:

msr₁, msr₂: MeasureSet

ms: List Meas

h₁: ResolveConcat F ms d i msr₁

h₂: ResolveConcat F ms d i msr₂


msr₁ = msr₂
α✝: Type

F: Factory α✝

d: Doc

i:

msr₂: MeasureSet

ms✝: List Meas

msr✝: MeasureSet

m✝: Meas

msr'✝: MeasureSet

h₂: ResolveConcat F (m✝ :: ms✝) d i msr₂

h_rest₁: ResolveConcat F ms✝ d i msr✝

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


MeasureSet.union F msr'✝ msr✝ = msr₂
α✝: Type

F: Factory α✝

d: Doc

i:

msr₂: MeasureSet

ms✝: List Meas

msr✝: MeasureSet

m✝: Meas

msr'✝: MeasureSet

h₂: ResolveConcat F (m✝ :: ms✝) d i msr₂

h_rest₁: ResolveConcat F ms✝ d i msr✝

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


MeasureSet.union F msr'✝ msr✝ = msr₂
α✝: Type

F: Factory α✝

d: Doc

i:

msr₂, msr✝: MeasureSet

m✝: Meas

msr'✝: MeasureSet

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

h_rest₁: ResolveConcat F [] d i msr✝

h_current✝: ResolveConcatOne F d m✝ i msr₂


one
MeasureSet.union F msr'✝ msr✝ = msr₂
α✝: Type

F: Factory α✝

d: Doc

i:

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'✝¹

msr✝, msr'✝: MeasureSet

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

h_rest✝: ResolveConcat F ms✝ d i msr✝


cons
MeasureSet.union F msr'✝¹ msr✝¹ = MeasureSet.union F msr'✝ msr✝
α✝: Type

F: Factory α✝

d: Doc

i:

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'✝¹

msr✝, msr'✝: MeasureSet

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

h_rest✝: ResolveConcat F ms✝ d i msr✝


cons
MeasureSet.union F msr'✝¹ msr✝¹ = MeasureSet.union F msr'✝ msr✝
α✝: Type

F: Factory α✝

d: Doc

i:

msr₂: MeasureSet

ms✝: List Meas

msr✝: MeasureSet

m✝: Meas

msr'✝: MeasureSet

h₂: ResolveConcat F (m✝ :: ms✝) d i msr₂

h_rest₁: ResolveConcat F ms✝ d i msr✝

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


MeasureSet.union F msr'✝ msr✝ = msr₂
α✝: Type

F: Factory α✝

d: Doc

i:

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'✝¹

msr✝, msr'✝: MeasureSet

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

h_rest₂: ResolveConcat F ms✝ d i msr✝


MeasureSet.union F msr'✝¹ msr✝¹ = MeasureSet.union F msr'✝ msr✝
α✝: Type

F: Factory α✝

d: Doc

i:

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

msr✝: MeasureSet

h_rest₂: ResolveConcat F ms✝ d i msr✝

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


refl
MeasureSet.union F msr'✝ msr✝¹ = MeasureSet.union F msr'✝ msr✝
α✝: Type

F: Factory α✝

d: Doc

i:

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'✝¹

msr✝, msr'✝: MeasureSet

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

h_rest₂: ResolveConcat F ms✝ d i msr✝


MeasureSet.union F msr'✝¹ msr✝¹ = MeasureSet.union F msr'✝ msr✝
α✝: Type

F: Factory α✝

d: Doc

i:

ms✝: List Meas

msr✝: MeasureSet

m✝: Meas

msr'✝: MeasureSet

h_rest₁: ResolveConcat F ms✝ d i msr✝

h_current₁, h_current₂: ResolveConcatOne F d m✝ i msr'✝

h_rest₂: ResolveConcat F ms✝ d i msr✝


refl.refl
MeasureSet.union F msr'✝ msr✝ = MeasureSet.union F msr'✝ msr✝
α✝: Type

F: Factory α✝

d: Doc

i:

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'✝¹

msr✝, msr'✝: MeasureSet

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

h_rest₂: ResolveConcat F ms✝ d i msr✝


MeasureSet.union F msr'✝¹ msr✝¹ = MeasureSet.union F msr'✝ msr✝

Goals accomplished! 🐙
end termination_by ResolveConcatOne_deterministic => (
d: Doc
d
.
size: Doc
size
,
1: ?m.51073
1
,
0: ?m.51080
0
) ResolveConcat_deterministic => (
d: Doc
d
.
size: Doc
size
,
2: ?m.50895
2
,
ms: List Meas
ms
.
length: {α : Type ?u.50904} → List α
length
) Resolve_deterministic => (
d: Doc
d
.
size: Doc
size
,
0: ?m.50668
0
,
0: ?m.50679
0
)