import Pretty.Defs.Resolve import Pretty.Claims.MeasRender import Pretty.Supports.Pareto import Pretty.Supports.ResolveLast import Pretty.Supports.ResolvePareto /-! ## Lemmas for the informal proof of time complexity of $Ξ _e$ -/ /-- A measure set from resolving will have size at most $W_\mathcal{F} + 1$ (Lemma 5.9) -/ lemmaResolve_bound {h_not_empty :h_not_empty: ms β []ms βms: ?m.5[]} ([]: unknown metavariable '?_uniq.39'h : Resolveh: Resolve F d c i (MeasureSet.set ms h_not_empty)FF: ?m.18dd: ?m.33cc: ?m.47i (MeasureSet.seti: ?m.61msms: ?m.5h_not_empty)) :h_not_empty: ms β []ms.length β€ms: ?m.5F.W +F: ?m.181 :=1: ?m.96Goals accomplished! πΞ±β: Type
ms: List Meas
F: Factory Ξ±β
d: Doc
c, i: β
h_not_empty: ms β []
h: Resolve F d c i (MeasureSet.set ms h_not_empty)
h_last: last_decreasing msList.length ms β€ F.W + 1Ξ±β: Type
F: Factory Ξ±β
d: Doc
c, i: β
h_not_empty: [] β []
h: Resolve F d c i (MeasureSet.set [] h_not_empty)
h_last: last_decreasing []
nilList.length [] β€ F.W + 1Ξ±β: Type
F: Factory Ξ±β
d: Doc
c, i: β
headβ: Meas
tailβ: List Meas
h_not_empty: headβ :: tailβ β []
h: Resolve F d c i (MeasureSet.set (headβ :: tailβ) h_not_empty)
h_last: last_decreasing (headβ :: tailβ)
consList.length (headβ :: tailβ) β€ F.W + 1Ξ±β: Type
F: Factory Ξ±β
d: Doc
c, i: β
h_not_empty: [] β []
h: Resolve F d c i (MeasureSet.set [] h_not_empty)
h_last: last_decreasing []List.length [] β€ F.W + 1Goals accomplished! πGoals accomplished! πΞ±β: Type
F: Factory Ξ±β
d: Doc
c, i: β
hd: Meas
tl: List Meas
h_not_empty: hd :: tl β []
h: Resolve F d c i (MeasureSet.set (hd :: tl) h_not_empty)
h_last: last_decreasing (hd :: tl)List.length (hd :: tl) - 1 - (List.length (hd :: tl) - 1) < List.length (hd :: tl)Goals accomplished! πGoals accomplished! πΞ±β: Type
F: Factory Ξ±β
d: Doc
c, i: β
hd: Meas
tl: List Meas
h_not_empty: hd :: tl β []
h: Resolve F d c i (MeasureSet.set (hd :: tl) h_not_empty)
h_last: last_decreasing (hd :: tl)(List.get (hd :: tl) { val := List.length (hd :: tl) - 1 - (List.length (hd :: tl) - 1), isLt := (_ : Nat.succ (List.length tl) - Nat.succ 0 - (Nat.succ (List.length tl) - Nat.succ 0) < Nat.succ (List.length tl)) }).last β₯ List.length (hd :: tl) - 1Ξ±β: Type
F: Factory Ξ±β
d: Doc
c, i: β
hd: Meas
tl: List Meas
h_not_empty: hd :: tl β []
h: Resolve F d c i (MeasureSet.set (hd :: tl) h_not_empty)
h_last: last_decreasing (hd :: tl)(List.get (hd :: tl) { val := List.length (hd :: tl) - 1 - (List.length (hd :: tl) - 1), isLt := (_ : Nat.succ (List.length tl) - Nat.succ 0 - (Nat.succ (List.length tl) - Nat.succ 0) < Nat.succ (List.length tl)) }).last β₯ List.length (hd :: tl) - 1Ξ±β: Type
F: Factory Ξ±β
d: Doc
c, i: β
hd: Meas
tl: List Meas
h_not_empty: hd :: tl β []
h: Resolve F d c i (MeasureSet.set (hd :: tl) h_not_empty)
h_last: last_decreasing (hd :: tl)(List.get (hd :: tl) { val := List.length (hd :: tl) - 1 - (List.length (hd :: tl) - 1), isLt := (_ : Nat.succ (List.length tl) - Nat.succ 0 - (Nat.succ (List.length tl) - Nat.succ 0) < Nat.succ (List.length tl)) }).last β₯ List.length (hd :: tl) - 1Ξ±β: Type
F: Factory Ξ±β
d: Doc
c, i: β
hd: Meas
tl: List Meas
h_not_empty: hd :: tl β []
h: Resolve F d c i (MeasureSet.set (hd :: tl) h_not_empty)
h_last: last_decreasing (hd :: tl)(List.get (hd :: tl) { val := List.length (hd :: tl) - 1 - (List.length (hd :: tl) - 1), isLt := (_ : Nat.succ (List.length tl) - Nat.succ 0 - (Nat.succ (List.length tl) - Nat.succ 0) < Nat.succ (List.length tl)) }).last β₯ List.length (hd :: tl) - 1Ξ±β: Type
F: Factory Ξ±β
d: Doc
c, i: β
hd: Meas
tl: List Meas
h_not_empty: hd :: tl β []
h: Resolve F d c i (MeasureSet.set (hd :: tl) h_not_empty)
h_last: last_decreasing (hd :: tl)
hlast_decreasing (hd :: tl)Ξ±β: Type
F: Factory Ξ±β
d: Doc
c, i: β
hd: Meas
tl: List Meas
h_not_empty: hd :: tl β []
h: Resolve F d c i (MeasureSet.set (hd :: tl) h_not_empty)
h_last: last_decreasing (hd :: tl)
h_boundList.length (hd :: tl) - 1 < List.length (hd :: tl)Goals accomplished! πGoals accomplished! πΞ±β: Type
F: Factory Ξ±β
d: Doc
c, i: β
hd: Meas
tl: List Meas
h_not_empty: hd :: tl β []
h: Resolve F d c i (MeasureSet.set (hd :: tl) h_not_empty)
h_last: last_decreasing (hd :: tl)
h_bound: List.length tl β€ hd.lastList.length (hd :: tl) β€ F.W + 1Ξ±β: Type
F: Factory Ξ±β
d: Doc
c, i: β
hd: Meas
tl: List Meas
h_not_empty: hd :: tl β []
h: Resolve F d c i (MeasureSet.set (hd :: tl) h_not_empty)
h_last: last_decreasing (hd :: tl)
h_bound: List.length tl β€ hd.lastList.length (hd :: tl) β€ F.W + 1Goals accomplished! πGoals accomplished! πΞ±β: Type
F: Factory Ξ±β
d: Doc
c, i: β
hd: Meas
tl: List Meas
h_not_empty: hd :: tl β []
h: Resolve F d c i (MeasureSet.set (hd :: tl) h_not_empty)
h_last: last_decreasing (hd :: tl)
h_bound: List.length tl β€ hd.lastList.length (hd :: tl) β€ F.W + 1Goals accomplished! πGoals accomplished! πΞ±β: Type
F: Factory Ξ±β
d: Doc
c, i: β
hd: Meas
tl: List Meas
h_not_empty: hd :: tl β []
h: Resolve F d c i (MeasureSet.set (hd :: tl) h_not_empty)
h_lastβ: last_decreasing (hd :: tl)
h_bound: List.length tl β€ hd.last
h_last: hd.last β€ F.WList.length (hd :: tl) β€ F.W + 1Ξ±β: Type
F: Factory Ξ±β
d: Doc
c, i: β
hd: Meas
tl: List Meas
h_not_empty: hd :: tl β []
h: Resolve F d c i (MeasureSet.set (hd :: tl) h_not_empty)
h_lastβ: last_decreasing (hd :: tl)
h_bound: List.length tl β€ hd.last
h_last: hd.last β€ F.WList.length tl β€ F.WΞ±β: Type
F: Factory Ξ±β
d: Doc
c, i: β
hd: Meas
tl: List Meas
h_not_empty: hd :: tl β []
h: Resolve F d c i (MeasureSet.set (hd :: tl) h_not_empty)
h_lastβ: last_decreasing (hd :: tl)
h_bound: List.length tl β€ hd.last
h_last: hd.last β€ F.WList.length tl β€ F.WΞ±β: Type
F: Factory Ξ±β
d: Doc
c, i: β
hd: Meas
tl: List Meas
h_not_empty: hd :: tl β []
h: Resolve F d c i (MeasureSet.set (hd :: tl) h_not_empty)
h_lastβ: last_decreasing (hd :: tl)
h_bound: List.length tl β€ hd.last
h_last: hd.last β€ F.W
aList.length tl β€ ?bΞ±β: Type
F: Factory Ξ±β
d: Doc
c, i: β
hd: Meas
tl: List Meas
h_not_empty: hd :: tl β []
h: Resolve F d c i (MeasureSet.set (hd :: tl) h_not_empty)
h_lastβ: last_decreasing (hd :: tl)
h_bound: List.length tl β€ hd.last
h_last: hd.last β€ F.W
a?b β€ F.WΞ±β: Type
F: Factory Ξ±β
d: Doc
c, i: β
hd: Meas
tl: List Meas
h_not_empty: hd :: tl β []
h: Resolve F d c i (MeasureSet.set (hd :: tl) h_not_empty)
h_lastβ: last_decreasing (hd :: tl)
h_bound: List.length tl β€ hd.last
h_last: hd.last β€ F.W
b/-- If resolving happens at a printing context that exceeds $W_\mathcal{F}$, the result will always be tainted (Lemma 5.10) -/ lemmaGoals accomplished! πResolve_exceeding_tainted (h : Resolveh: Resolve F d c i msFF: ?m.9999dd: ?m.10006cc: ?m.10012ii: ?m.10018ms) (h_bad :ms: ?m.10024c >c: ?m.10012F.W β¨F: ?m.9999i >i: ?m.10018F.W) : βF: ?m.9999m,m: ?m.10050ms =ms: ?m.10024MeasureSet.taintedMeasureSet.tainted: {Ξ± : Type} β Meas β MeasureSetm :=m: ?m.10050Goals accomplished! πΞ±β: Type
F: Factory Ξ±β
sβ: String
c, i: β
ms: MeasureSet
h: Resolve F (Doc.text sβ) c i ms
h_bad: c > F.W β¨ i > F.W
textβ m, ms = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
c, i: β
ms: MeasureSet
h: Resolve F Doc.nl c i ms
h_bad: c > F.W β¨ i > F.W
nlβ m, ms = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dββ, dββ: Doc
dβ_ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
dβ_ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
ms: MeasureSet
h: Resolve F (Doc.concat dββ dββ) c i ms
h_bad: c > F.W β¨ i > F.W
concatβ m, ms = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
nβ: β
dβ: Doc
d_ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
ms: MeasureSet
h: Resolve F (Doc.nest nβ dβ) c i ms
h_bad: c > F.W β¨ i > F.W
nestβ m, ms = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dβ: Doc
d_ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
ms: MeasureSet
h: Resolve F (Doc.align dβ) c i ms
h_bad: c > F.W β¨ i > F.W
alignβ m, ms = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dββ, dββ: Doc
dβ_ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
dβ_ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
ms: MeasureSet
h: Resolve F (Doc.choice dββ dββ) c i ms
h_bad: c > F.W β¨ i > F.W
choiceβ m, ms = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
sβ: String
c, i: β
h_bad: c > F.W β¨ i > F.W
mβ: Meas
h_badβ: c + String.length sβ > F.W β¨ i > F.W
hβ: MeasRender F (Doc.text sβ) c i mβ
text_taintβ m, MeasureSet.tainted mβ = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
sβ: String
c, i: β
h_bad: c > F.W β¨ i > F.W
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β m, MeasureSet.set [mβ] (_ : Β¬[mβ] = []) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
sβ: String
c, i: β
h_bad: c > F.W β¨ i > F.W
m: Meas
h_badβ: c + String.length sβ > F.W β¨ i > F.W
hβ: MeasRender F (Doc.text sβ) c i mβ m_1, MeasureSet.tainted m = MeasureSet.tainted m_1Goals accomplished! πΞ±β: Type
F: Factory Ξ±β
sβ: String
c, i: β
h_bad: c > F.W β¨ i > F.W
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, MeasureSet.set [mβ] (_ : Β¬[mβ] = []) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
sβ: String
c, i: β
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 > F.W
inlβ m, MeasureSet.set [mβ] (_ : Β¬[mβ] = []) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
sβ: String
c, i: β
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β m, MeasureSet.set [mβ] (_ : Β¬[mβ] = []) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
sβ: String
c, i: β
h_bad: c > F.W β¨ i > F.W
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, MeasureSet.set [mβ] (_ : Β¬[mβ] = []) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
sβ: String
c, i: β
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 > F.Wβ m, MeasureSet.set [mβ] (_ : Β¬[mβ] = []) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
sβ: String
c, i: β
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 > F.Wβ m, MeasureSet.set [mβ] (_ : Β¬[mβ] = []) = MeasureSet.tainted mGoals accomplished! πGoals accomplished! πΞ±β: Type
F: Factory Ξ±β
sβ: String
c, i: β
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 > F.Wβ m, MeasureSet.set [mβ] (_ : Β¬[mβ] = []) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
sβ: String
c, i: β
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: c β€ F.W
h_bad: Β¬c β€ F.Wβ m, MeasureSet.set [mβ] (_ : Β¬[mβ] = []) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
sβ: String
c, i: β
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 > F.Wβ m, MeasureSet.set [mβ] (_ : Β¬[mβ] = []) = MeasureSet.tainted mGoals accomplished! πΞ±β: Type
F: Factory Ξ±β
sβ: String
c, i: β
h_bad: c > F.W β¨ i > F.W
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, MeasureSet.set [mβ] (_ : Β¬[mβ] = []) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
sβ: String
c, i: β
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β m, MeasureSet.set [mβ] (_ : Β¬[mβ] = []) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
sβ: String
c, i: β
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β m, MeasureSet.set [mβ] (_ : Β¬[mβ] = []) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
sβ: String
c, i: β
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β m, MeasureSet.set [mβ] (_ : Β¬[mβ] = []) = MeasureSet.tainted mGoals accomplished! πΞ±β: Type
F: Factory Ξ±β
c, i: β
h_bad: c > F.W β¨ i > F.W
mβ: Meas
h_badβ: c > F.W β¨ i > F.W
hβ: MeasRender F Doc.nl c i mβ
line_taintβ m, MeasureSet.tainted mβ = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
c, i: β
h_bad: c > F.W β¨ i > F.W
mβ: Meas
h_cβ: c β€ F.W
h_iβ: i β€ F.W
hβ: MeasRender F Doc.nl c i mβ
line_setβ m, MeasureSet.set [mβ] (_ : Β¬[mβ] = []) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
c, i: β
h_bad: c > F.W β¨ i > F.W
m: Meas
h_badβ: c > F.W β¨ i > F.W
hβ: MeasRender F Doc.nl c i mβ m_1, MeasureSet.tainted m = MeasureSet.tainted m_1Goals accomplished! πΞ±β: Type
F: Factory Ξ±β
c, i: β
h_bad: c > F.W β¨ i > F.W
mβ: Meas
h_c: c β€ F.W
h_i: i β€ F.W
hβ: MeasRender F Doc.nl c i mββ m, MeasureSet.set [mβ] (_ : Β¬[mβ] = []) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
c, i: β
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β m, MeasureSet.set [mβ] (_ : Β¬[mβ] = []) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
c, i: β
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β m, MeasureSet.set [mβ] (_ : Β¬[mβ] = []) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
c, i: β
h_bad: c > F.W β¨ i > F.W
mβ: Meas
h_c: c β€ F.W
h_i: i β€ F.W
hβ: MeasRender F Doc.nl c i mββ m, MeasureSet.set [mβ] (_ : Β¬[mβ] = []) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
c, i: β
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β m, MeasureSet.set [mβ] (_ : Β¬[mβ] = []) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
c, i: β
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β m, MeasureSet.set [mβ] (_ : Β¬[mβ] = []) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
c, i: β
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β m, MeasureSet.set [mβ] (_ : Β¬[mβ] = []) = MeasureSet.tainted mGoals accomplished! πΞ±β: Type
F: Factory Ξ±β
c, i: β
h_bad: c > F.W β¨ i > F.W
mβ: Meas
h_c: c β€ F.W
h_i: i β€ F.W
hβ: MeasRender F Doc.nl c i mββ m, MeasureSet.set [mβ] (_ : Β¬[mβ] = []) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
c, i: β
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β m, MeasureSet.set [mβ] (_ : Β¬[mβ] = []) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
c, i: β
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β m, MeasureSet.set [mβ] (_ : Β¬[mβ] = []) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
c, i: β
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β m, MeasureSet.set [mβ] (_ : Β¬[mβ] = []) = MeasureSet.tainted mGoals accomplished! πΞ±β: Type
F: Factory Ξ±β
n: β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
msβ: MeasureSet
hβ: Resolve F dβ c (i + n) msβ
nestβ m, MeasureSet.lift (Meas.adjust_nest n) msβ = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
n: β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
msβ: MeasureSet
h: Resolve F dβ c (i + n) msββ m, MeasureSet.lift (Meas.adjust_nest n) msβ = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
n: β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
msβ: MeasureSet
h: Resolve F dβ c (i + n) msβ
hβ: c > F.W
inlβ m, MeasureSet.lift (Meas.adjust_nest n) msβ = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
n: β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
msβ: MeasureSet
h: Resolve F dβ c (i + n) msβ
hβ: i > F.W
inrβ m, MeasureSet.lift (Meas.adjust_nest n) msβ = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
n: β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
msβ: MeasureSet
h: Resolve F dβ c (i + n) msββ m, MeasureSet.lift (Meas.adjust_nest n) msβ = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
n: β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
msβ: MeasureSet
h: Resolve F dβ c (i + n) msβ
h_bad: c > F.Wβ m, MeasureSet.lift (Meas.adjust_nest n) msβ = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
n: β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
msβ: MeasureSet
h: Resolve F dβ c (i + n) msβ
h_bad: c > F.Wβ m, MeasureSet.lift (Meas.adjust_nest n) msβ = MeasureSet.tainted mGoals accomplished! πGoals accomplished! πGoals accomplished! πΞ±β: Type
F: Factory Ξ±β
n: β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
msβ: MeasureSet
h: Resolve F dβ c (i + n) msβ
h_bad: c > F.W
m: Meas
hβ: msβ = MeasureSet.tainted mβ m, MeasureSet.lift (Meas.adjust_nest n) msβ = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
n: β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
msβ: MeasureSet
h: Resolve F dβ c (i + n) msβ
h_bad: c > F.Wβ m, MeasureSet.lift (Meas.adjust_nest n) msβ = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
n: β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
msβ: MeasureSet
h: Resolve F dβ c (i + n) msβ
h_bad: c > F.W
m: Meas
hβ: msβ = MeasureSet.tainted mMeasureSet.lift (Meas.adjust_nest n) msβ = MeasureSet.tainted (Meas.adjust_nest n m)Ξ±β: Type
F: Factory Ξ±β
n: β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
msβ: MeasureSet
h: Resolve F dβ c (i + n) msβ
h_bad: c > F.Wβ m, MeasureSet.lift (Meas.adjust_nest n) msβ = MeasureSet.tainted mGoals accomplished! πΞ±β: Type
F: Factory Ξ±β
n: β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
msβ: MeasureSet
h: Resolve F dβ c (i + n) msββ m, MeasureSet.lift (Meas.adjust_nest n) msβ = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
n: β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
msβ: MeasureSet
h: Resolve F dβ c (i + n) msβ
h_bad: i > F.Wβ m, MeasureSet.lift (Meas.adjust_nest n) msβ = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
n: β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
msβ: MeasureSet
h: Resolve F dβ c (i + n) msβ
h_bad: i > F.Wβ m, MeasureSet.lift (Meas.adjust_nest n) msβ = MeasureSet.tainted mGoals accomplished! πGoals accomplished! πGoals accomplished! πΞ±β: Type
F: Factory Ξ±β
n: β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
msβ: MeasureSet
h: Resolve F dβ c (i + n) msβ
h_bad: i > F.W
m: Meas
hβ: msβ = MeasureSet.tainted mβ m, MeasureSet.lift (Meas.adjust_nest n) msβ = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
n: β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
msβ: MeasureSet
h: Resolve F dβ c (i + n) msβ
h_bad: i > F.Wβ m, MeasureSet.lift (Meas.adjust_nest n) msβ = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
n: β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
msβ: MeasureSet
h: Resolve F dβ c (i + n) msβ
h_bad: i > F.W
m: Meas
hβ: msβ = MeasureSet.tainted mMeasureSet.lift (Meas.adjust_nest n) msβ = MeasureSet.tainted (Meas.adjust_nest n m)Ξ±β: Type
F: Factory Ξ±β
n: β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
msβ: MeasureSet
h: Resolve F dβ c (i + n) msβ
h_bad: i > F.Wβ m, MeasureSet.lift (Meas.adjust_nest n) msβ = MeasureSet.tainted mGoals accomplished! πΞ±β: Type
F: Factory Ξ±β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
msβ: MeasureSet
hβ: Resolve F dβ c c msβ
h_badβ: i > F.W
align_taintβ m, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint msβ) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
msβ: MeasureSet
hβ: Resolve F dβ c c msβ
h_okβ: i β€ F.W
alignβ m, MeasureSet.lift (Meas.adjust_align i) msβ = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
msβ: MeasureSet
h: Resolve F dβ c c msβ
h_okβ: i β€ F.Wβ m, MeasureSet.lift (Meas.adjust_align i) msβ = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
msβ: MeasureSet
h: Resolve F dβ c c msβ
h_okβ: i β€ F.W
hβ: c > F.W
inlβ m, MeasureSet.lift (Meas.adjust_align i) msβ = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
msβ: MeasureSet
h: Resolve F dβ c c msβ
h_okβ: i β€ F.W
hβ: i > F.W
inrβ m, MeasureSet.lift (Meas.adjust_align i) msβ = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
msβ: MeasureSet
h: Resolve F dβ c c msβ
h_okβ: i β€ F.Wβ m, MeasureSet.lift (Meas.adjust_align i) msβ = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
msβ: MeasureSet
h: Resolve F dβ c c msβ
h_okβ: i β€ F.W
h_bad: c > F.Wβ m, MeasureSet.lift (Meas.adjust_align i) msβ = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
msβ: MeasureSet
h: Resolve F dβ c c msβ
h_okβ: i β€ F.W
h_bad: c > F.Wβ m, MeasureSet.lift (Meas.adjust_align i) msβ = MeasureSet.tainted mGoals accomplished! πGoals accomplished! πGoals accomplished! πΞ±β: Type
F: Factory Ξ±β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
msβ: MeasureSet
h: Resolve F dβ c c msβ
h_okβ: i β€ F.W
h_bad: c > F.W
m: Meas
hβ: msβ = MeasureSet.tainted mβ m, MeasureSet.lift (Meas.adjust_align i) msβ = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
msβ: MeasureSet
h: Resolve F dβ c c msβ
h_okβ: i β€ F.W
h_bad: c > F.Wβ m, MeasureSet.lift (Meas.adjust_align i) msβ = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
msβ: MeasureSet
h: Resolve F dβ c c msβ
h_okβ: i β€ F.W
h_bad: c > F.W
m: Meas
hβ: msβ = MeasureSet.tainted mMeasureSet.lift (Meas.adjust_align i) msβ = MeasureSet.tainted (Meas.adjust_align i m)Ξ±β: Type
F: Factory Ξ±β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
msβ: MeasureSet
h: Resolve F dβ c c msβ
h_okβ: i β€ F.W
h_bad: c > F.Wβ m, MeasureSet.lift (Meas.adjust_align i) msβ = MeasureSet.tainted mGoals accomplished! πΞ±β: Type
F: Factory Ξ±β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
msβ: MeasureSet
h: Resolve F dβ c c msβ
h_okβ: i β€ F.Wβ m, MeasureSet.lift (Meas.adjust_align i) msβ = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
msβ: MeasureSet
h: Resolve F dβ c c msβ
h_okβ: i β€ F.W
hβ: i > F.Wβ m, MeasureSet.lift (Meas.adjust_align i) msβ = MeasureSet.tainted mGoals accomplished! πΞ±β: Type
F: Factory Ξ±β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
ms: MeasureSet
h: Resolve F dβ c c ms
h_badβ: i > F.Wβ m, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
h_badβ: i > F.W
mβ: Meas
h: Resolve F dβ c c (MeasureSet.tainted mβ)
taintedβ m, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint (MeasureSet.tainted mβ)) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
h_badβ: i > F.W
msβ: List Meas
hβ: msβ β []
h: Resolve F dβ c c (MeasureSet.set msβ hβ)
setβ m, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint (MeasureSet.set msβ hβ)) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
ms: MeasureSet
h: Resolve F dβ c c ms
h_badβ: i > F.Wβ m, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
h_badβ: i > F.W
m: Meas
h: Resolve F dβ c c (MeasureSet.tainted m)β m_1, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint (MeasureSet.tainted m)) = MeasureSet.tainted m_1Goals accomplished! πΞ±β: Type
F: Factory Ξ±β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
ms: MeasureSet
h: Resolve F dβ c c ms
h_badβ: i > F.Wβ m, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
h_badβ: i > F.W
ms: List Meas
hβ: ms β []
h: Resolve F dβ c c (MeasureSet.set ms hβ)β m, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint (MeasureSet.set ms hβ)) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
h_badβ: i > F.W
ms: List Meas
hβ: ms β []
h: Resolve F dβ c c (MeasureSet.set ms hβ)β m, MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint (MeasureSet.set ms hβ)) = MeasureSet.tainted mGoals accomplished! πΞ±β: Type
F: Factory Ξ±β
dβ: Doc
ih: β {c i : β} {ms : MeasureSet}, Resolve F dβ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
h_badβ: i > F.W
ms: List Meas
hβ: ms β []
h: Resolve F dβ c c (MeasureSet.set ms hβ)ms β []Goals accomplished! πGoals accomplished! πΞ±β: Type
F: Factory Ξ±β
dββ, dββ: Doc
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
ms: MeasureSet
h: Resolve F (Doc.choice dββ dββ) c i ms
h_bad: c > F.W β¨ i > F.Wβ m, ms = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dββ, dββ: Doc
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
msβ, ms'β: MeasureSet
h_leftβ: Resolve F dββ c i msβ
h_rightβ: Resolve F dββ c i ms'β
choiceβ m, MeasureSet.union F msβ ms'β = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dββ, dββ: Doc
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
ms: MeasureSet
h: Resolve F (Doc.choice dββ dββ) c i ms
h_bad: c > F.W β¨ i > F.Wβ m, ms = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dββ, dββ: Doc
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
msβ, ms'β: MeasureSet
h_left: Resolve F dββ c i msβ
h_right: Resolve F dββ c i ms'ββ m, MeasureSet.union F msβ ms'β = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dββ, dββ: Doc
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
msβ, ms'β: MeasureSet
h_left: Resolve F dββ c i msβ
h_right: Resolve F dββ c i ms'β
m: Meas
h: msβ = MeasureSet.tainted mβ m, MeasureSet.union F msβ ms'β = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dββ, dββ: Doc
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
msβ, ms'β: MeasureSet
h_left: Resolve F dββ c i msβ
h_right: Resolve F dββ c i ms'ββ m, MeasureSet.union F msβ ms'β = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dββ, dββ: Doc
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
msβ, ms'β: MeasureSet
h_left: Resolve F dββ c i msβ
h_right: Resolve F dββ c i ms'β
m: Meas
h: msβ = MeasureSet.tainted m
m': Meas
h': ms'β = MeasureSet.tainted m'β m, MeasureSet.union F msβ ms'β = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dββ, dββ: Doc
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
msβ, ms'β: MeasureSet
h_left: Resolve F dββ c i msβ
h_right: Resolve F dββ c i ms'ββ m, MeasureSet.union F msβ ms'β = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dββ, dββ: Doc
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
msβ, ms'β: MeasureSet
h_left: Resolve F dββ c i msβ
h_right: Resolve F dββ c i ms'β
m: Meas
h: msβ = MeasureSet.tainted m
m': Meas
h': ms'β = MeasureSet.tainted m'MeasureSet.union F msβ ms'β = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dββ, dββ: Doc
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
msβ, ms'β: MeasureSet
h_left: Resolve F dββ c i msβ
h_right: Resolve F dββ c i ms'ββ m, MeasureSet.union F msβ ms'β = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dββ, dββ: Doc
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
m, m': Meas
h_left: Resolve F dββ c i (MeasureSet.tainted m)
h_right: Resolve F dββ c i (MeasureSet.tainted m')Ξ±β: Type
F: Factory Ξ±β
dββ, dββ: Doc
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
msβ, ms'β: MeasureSet
h_left: Resolve F dββ c i msβ
h_right: Resolve F dββ c i ms'ββ m, MeasureSet.union F msβ ms'β = MeasureSet.tainted mGoals accomplished! πΞ±β: Type
F: Factory Ξ±β
dββ, dββ: Doc
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
dβ_ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
ms: MeasureSet
h: Resolve F (Doc.concat dββ dββ) c i ms
h_bad: c > F.W β¨ i > F.Wβ m, ms = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dββ, dββ: Doc
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
dβ_ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
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β m, MeasureSet.tainted (Meas.concat F mβ m'β) = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dββ, dββ: Doc
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
dβ_ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
ms: MeasureSet
h_bad: c > F.W β¨ i > F.W
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β m, ms = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dββ, dββ: Doc
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
dβ_ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
ms: MeasureSet
h: Resolve F (Doc.concat dββ dββ) c i ms
h_bad: c > F.W β¨ i > F.Wβ m, ms = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dββ, dββ: Doc
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
dβ_ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
h_bad: c > F.W β¨ i > F.W
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, MeasureSet.tainted (Meas.concat F mβ mβ) = MeasureSet.tainted mGoals accomplished! πΞ±β: Type
F: Factory Ξ±β
dββ, dββ: Doc
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
dβ_ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
ms: MeasureSet
h: Resolve F (Doc.concat dββ dββ) c i ms
h_bad: c > F.W β¨ i > F.Wβ m, ms = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dββ, dββ: Doc
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
dβ_ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
ms: MeasureSet
h_bad: c > F.W β¨ i > F.W
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β m, ms = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dββ, dββ: Doc
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
dβ_ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
ms: MeasureSet
h_bad: c > F.W β¨ i > F.W
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
wβ: Meas
hβ: MeasureSet.set msβ h_non_emptyβ = MeasureSet.tainted wββ m, ms = MeasureSet.tainted mΞ±β: Type
F: Factory Ξ±β
dββ, dββ: Doc
ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
dβ_ihβ: β {c i : β} {ms : MeasureSet}, Resolve F dββ c i ms β c > F.W β¨ i > F.W β β m, ms = MeasureSet.tainted m
c, i: β
ms: MeasureSet
h_bad: c > F.W β¨ i > F.W
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β m, ms = MeasureSet.tainted mGoals accomplished! π