Documentation

Pretty.Claims.ResolveOptimal

Optimality theorems #

theorem Resolve_optimal :
∀ {α : Type} {F : Factory α} {d : Doc} {c i : } {ml : MeasureSet} {D : List Doc} {d_choiceless : Doc} {m : Meas}, Resolve F d c i mlWiden d Dd_choiceless DMeasRender F d_choiceless c i mm.y F.Wm.x F.Wms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better m = true

The optimality theorem (Theorem 5.7)

theorem ResolveConcat_optimal :
∀ {α : Type} {F : Factory α} {ms : List Meas} {d₂ : Doc} {i : } {ml : MeasureSet} {L₂ : List Doc} {d_right : Doc} {m₂ m_better_left m₁ : Meas}, ResolveConcat F ms d₂ i mlWiden d₂ L₂d_right L₂MeasRender F d_right m₁.last i m₂m₁.x F.W m₂.x F.Wm₁.y F.W m₂.y F.Wdominates F m_better_left m₁ = truem_better_left msms h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true
theorem ResolveConcatOne_optimal {d₂ : Doc} {L₂ : List Doc} {d_right : Doc} :
∀ {α : Type} {F : Factory α} {m_better : Meas} {i : } {ml : MeasureSet} {m₂ m₁ : Meas}, Widen d₂ L₂d_right L₂ResolveConcatOne F d₂ m_better i mlMeasRender F d_right m₁.last i m₂m₁.x F.W m₂.x F.Wm₁.y F.W m₂.y F.Wdominates F m_better m₁ = truems h, ml = MeasureSet.set ms h m_better, m_better ms dominates F m_better (Meas.concat F m₁ m₂) = true