import Pretty.Defs.Resolve import Pretty.Claims.MeasRender import Pretty.Supports.ResolvePareto theoremResolve_optimal_text (h_print : ResolveResolve_optimal_text: ∀ {α : Type} {F : Factory α} {s : String} {c i : ℕ} {ml : MeasureSet} {D : List Doc} {d_choiceless : Doc} {m : Meas}, Resolve F (Doc.text s) c i ml → Widen (Doc.text s) D → d_choiceless ∈ D → MeasRender F d_choiceless c i m → m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueF (Doc.textF: ?m.4s)s: ?m.11cc: ?m.17ii: ?m.23ml) (h_widen : Widen (Doc.textml: ?m.29s)s: ?m.11D) (D: ?m.38h_mem :h_mem: d_choiceless ∈ Dd_choiceless ∈d_choiceless: ?m.63D) (D: ?m.38h_render : MeasRenderh_render: MeasRender F d_choiceless c i mFF: ?m.4d_choicelessd_choiceless: ?m.63cc: ?m.17ii: ?m.23m) (m: ?m.102h_y :h_y: m.y ≤ F.Wm.y ≤m: ?m.102F.W) (F: ?m.4h_x :h_x: m.x ≤ F.Wm.x ≤m: ?m.102F.W) : ∃F: ?m.4msms: ?m.164h,h: ?m.169ml = MeasureSet.setml: ?m.29msms: ?m.164h ∧ ∃h: ?m.169m_better,m_better: ?m.204m_better ∈m_better: ?m.204ms ∧ dominatesms: ?m.164FF: ?m.4m_betterm_better: ?m.204m :=m: ?m.102Goals accomplished! 🐙α✝: Type
F: Factory α✝
s: String
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_render: 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.text_taint∃ ms h, MeasureSet.tainted m✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
s: String
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_render: 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.text_setα✝: Type
F: Factory α✝
s: String
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_render: 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✝α✝: Type
F: Factory α✝
s: String
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_render: 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✝α✝: Type
F: Factory α✝
s: String
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_render: 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✝α✝: Type
F: Factory α✝
s: String
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_render: 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α✝: Type
F: Factory α✝
s: String
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_render: 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✝α✝: Type
F: Factory α✝
s: String
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_render: 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 mGoals accomplished! 🐙α✝: Type
F: Factory α✝
s: String
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_render: 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[m] ≠ []Goals accomplished! 🐙α✝: Type
F: Factory α✝
s: String
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_render: 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α✝: Type
F: Factory α✝
s: String
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_render: 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✝Goals accomplished! 🐙α✝: Type
F: Factory α✝
s: String
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_render: MeasRender F (Doc.text s) c i m
m✝: Meas
h_bad: c + String.length s > F.W ∨ i > F.W
h_render': MeasRender F (Doc.text s) c i m✝∃ ms h, MeasureSet.tainted m✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
s: String
c, i: ℕ
m✝: Meas
h_bad: c + String.length s > F.W ∨ i > F.W
h_render': MeasRender F (Doc.text s) c i m✝
h_y: { last := c + String.length s, cost := Factory.text F c (String.length s), doc := Doc.text s, x := c + String.length s, y := i }.y ≤ F.W
h_x: { last := c + String.length s, cost := Factory.text F c (String.length s), doc := Doc.text s, x := c + String.length s, y := i }.x ≤ F.W
text∃ ms h, MeasureSet.tainted m✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := c + String.length s, cost := Factory.text F c (String.length s), doc := Doc.text s, x := c + String.length s, y := i } = trueα✝: Type
F: Factory α✝
s: String
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_render: MeasRender F (Doc.text s) c i m
m✝: Meas
h_bad: c + String.length s > F.W ∨ i > F.W
h_render': MeasRender F (Doc.text s) c i m✝∃ ms h, MeasureSet.tainted m✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
s: String
c, i: ℕ
m✝: Meas
h_bad: c + String.length s > F.W ∨ i > F.W
h_render': MeasRender F (Doc.text s) c i m✝
h_y: i ≤ F.W
h_x: c + String.length s ≤ F.W
text∃ ms h, MeasureSet.tainted m✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := c + String.length s, cost := Factory.text F c (String.length s), doc := Doc.text s, x := c + String.length s, y := i } = trueα✝: Type
F: Factory α✝
s: String
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_render: MeasRender F (Doc.text s) c i m
m✝: Meas
h_bad: c + String.length s > F.W ∨ i > F.W
h_render': MeasRender F (Doc.text s) c i m✝∃ ms h, MeasureSet.tainted m✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
s: String
c, i: ℕ
m✝: Meas
h_render': MeasRender F (Doc.text s) c i m✝
h_y: i ≤ F.W
h_x: c + String.length s ≤ F.W
h✝: c + String.length s > F.W
text.inl∃ ms h, MeasureSet.tainted m✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := c + String.length s, cost := Factory.text F c (String.length s), doc := Doc.text s, x := c + String.length s, y := i } = trueα✝: Type
F: Factory α✝
s: String
c, i: ℕ
m✝: Meas
h_render': MeasRender F (Doc.text s) c i m✝
h_y: i ≤ F.W
h_x: c + String.length s ≤ F.W
h✝: i > F.W
text.inr∃ ms h, MeasureSet.tainted m✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := c + String.length s, cost := Factory.text F c (String.length s), doc := Doc.text s, x := c + String.length s, y := i } = trueα✝: Type
F: Factory α✝
s: String
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_render: MeasRender F (Doc.text s) c i m
m✝: Meas
h_bad: c + String.length s > F.W ∨ i > F.W
h_render': MeasRender F (Doc.text s) c i m✝∃ ms h, MeasureSet.tainted m✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
s: String
c, i: ℕ
m✝: Meas
h_render': MeasRender F (Doc.text s) c i m✝
h_y: i ≤ F.W
h_x: c + String.length s ≤ F.W
h_bad: c + String.length s > F.W∃ ms h, MeasureSet.tainted m✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := c + String.length s, cost := Factory.text F c (String.length s), doc := Doc.text s, x := c + String.length s, y := i } = trueGoals accomplished! 🐙α✝: Type
F: Factory α✝
s: String
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_render: MeasRender F (Doc.text s) c i m
m✝: Meas
h_bad: c + String.length s > F.W ∨ i > F.W
h_render': MeasRender F (Doc.text s) c i m✝∃ ms h, MeasureSet.tainted m✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
s: String
c, i: ℕ
m✝: Meas
h_render': MeasRender F (Doc.text s) c i m✝
h_y: i ≤ F.W
h_x: c + String.length s ≤ F.W
h_bad: i > F.W∃ ms h, MeasureSet.tainted m✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := c + String.length s, cost := Factory.text F c (String.length s), doc := Doc.text s, x := c + String.length s, y := i } = truetheoremGoals accomplished! 🐙Resolve_optimal_nl (h_print : ResolveResolve_optimal_nl: ∀ {α : Type} {F : Factory α} {c i : ℕ} {ml : MeasureSet} {D : List Doc} {d_choiceless : Doc} {m : Meas}, Resolve F Doc.nl c i ml → Widen Doc.nl D → d_choiceless ∈ D → MeasRender F d_choiceless c i m → m.y ≤ F.W → m.x ≤ F.W → ∃ ms h, ml = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueFF: ?m.8959Doc.nlDoc.nl: Doccc: ?m.8966ii: ?m.8972ml) (h_widen : Widenml: ?m.8978Doc.nlDoc.nl: DocD) (D: ?m.8987h_mem :h_mem: d_choiceless ∈ Dd_choiceless ∈d_choiceless: ?m.9012D) (D: ?m.8987h_render : MeasRenderh_render: MeasRender F d_choiceless c i mFF: ?m.8959d_choicelessd_choiceless: ?m.9012cc: ?m.8966ii: ?m.8972m) (m: ?m.9051h_y :h_y: m.y ≤ F.Wm.y ≤m: ?m.9051F.W) (F: ?m.8959h_x :h_x: m.x ≤ F.Wm.x ≤m: ?m.9051F.W) : ∃F: ?m.8959msms: ?m.9113h,h: ?m.9118ml = MeasureSet.setml: ?m.8978msms: ?m.9113h ∧ ∃h: ?m.9118m_better,m_better: ?m.9153m_better ∈m_better: ?m.9153ms ∧ dominatesms: ?m.9113FF: ?m.8959m_betterm_better: ?m.9153m :=m: ?m.9051Goals accomplished! 🐙α✝: Type
F: Factory α✝
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_render: 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✝
nl.line_taint∃ ms h, MeasureSet.tainted m✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better m = trueα✝: Type
F: Factory α✝
c, i: ℕ
m: Meas
h_y: m.y ≤ F.W
h_x: m.x ≤ F.W
h_render: 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✝
nl.line_setGoals accomplished! 🐙Goals accomplished! 🐙Goals accomplished! 🐙α✝: Type
F: Factory α✝
c, i: ℕ
m✝: Meas
h_bad: c > F.W ∨ i > F.W
h_render': MeasRender F Doc.nl c i m✝
h_y: { last := i, cost := Factory.nl F i, doc := Doc.nl, x := max c i, y := i }.y ≤ F.W
h_x: { last := i, cost := Factory.nl F i, doc := Doc.nl, x := max c i, y := i }.x ≤ F.W
nl∃ ms h, MeasureSet.tainted m✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := i, cost := Factory.nl F i, doc := Doc.nl, x := max c i, y := i } = trueα✝: Type
F: Factory α✝
c, i: ℕ
m✝: Meas
h_bad: c > F.W ∨ i > F.W
h_render': MeasRender F Doc.nl c i m✝
h_y: i ≤ F.W
h_x: c ≤ F.W ∧ i ≤ F.W
nl∃ ms h, MeasureSet.tainted m✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := i, cost := Factory.nl F i, doc := Doc.nl, x := max c i, y := i } = trueα✝: Type
F: Factory α✝
c, i: ℕ
m✝: Meas
h_render': MeasRender F Doc.nl c i m✝
h_y: i ≤ F.W
h_x: c ≤ F.W ∧ i ≤ F.W
h✝: c > F.W
nl.inl∃ ms h, MeasureSet.tainted m✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := i, cost := Factory.nl F i, doc := Doc.nl, x := max c i, y := i } = trueα✝: Type
F: Factory α✝
c, i: ℕ
m✝: Meas
h_render': MeasRender F Doc.nl c i m✝
h_y: i ≤ F.W
h_x: c ≤ F.W ∧ i ≤ F.W
h✝: i > F.W
nl.inr∃ ms h, MeasureSet.tainted m✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := i, cost := Factory.nl F i, doc := Doc.nl, x := max c i, y := i } = trueα✝: Type
F: Factory α✝
c, i: ℕ
m✝: Meas
h_render': MeasRender F Doc.nl c i m✝
h_y: i ≤ F.W
h_x: c ≤ F.W ∧ i ≤ F.W
h_bad: c > F.W∃ ms h, MeasureSet.tainted m✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := i, cost := Factory.nl F i, doc := Doc.nl, x := max c i, y := i } = trueGoals accomplished! 🐙α✝: Type
F: Factory α✝
c, i: ℕ
m✝: Meas
h_render': MeasRender F Doc.nl c i m✝
h_y: i ≤ F.W
h_x: c ≤ F.W ∧ i ≤ F.W
h_bad: i > F.W∃ ms h, MeasureSet.tainted m✝ = MeasureSet.set ms h ∧ ∃ m_better, m_better ∈ ms ∧ dominates F m_better { last := i, cost := Factory.nl F i, doc := Doc.nl, x := max c i, y := i } = trueGoals accomplished! 🐙