import Pretty.Defs.Basic import Pretty.Supports.Basic import Pretty.Supports.FactoryMath import Pretty.Supports.Domination import Pretty.Supports.LastAndCost import Pretty.Supports.Dedup /-! Various lemmas about `pareto`. -/ lemmapareto_head (h : paretoF (F: ?m.4m ::m: ?m.14m' ::m': ?m.24ms)) :ms: ?m.34m.last >m: ?m.14m'.last ∧m': ?m.24F.ltF: ?m.4m.m: ?m.14costcost: {α : Type} → Meas → αm'.m': ?m.24cost :=cost: {α : Type} → Meas → αGoals accomplished! 🐙Goals accomplished! 🐙lemmaGoals accomplished! 🐙pareto_rest {ms : List Meas} {ms: List Measm : Meas} (h : paretom: MeasF (F: ?m.141m ::m: Measms)) : paretoms: List MeasFF: ?m.141ms :=ms: List MeasGoals accomplished! 🐙Goals accomplished! 🐙lemmaGoals accomplished! 🐙pareto_drop (n :n: ℕℕ) (ℕ: Typeh : paretoh: pareto F msFF: ?m.234ms) : paretoms: ?m.243F (F: ?m.234ms.dropms: ?m.243n) :=n: ℕGoals accomplished! 🐙Goals accomplished! 🐙lemmaGoals accomplished! 🐙pareto_rest' (h : paretoF (F: ?m.647m ::m: ?m.657m' ::m': ?m.667ms)) : paretoms: ?m.677F (F: ?m.647m ::m: ?m.657ms) :=ms: ?m.677Goals accomplished! 🐙α✝: Type
F: Factory α✝
m, m': Meas
ms: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: ms)) (hj : i + 1 < List.length (m :: m' :: ms)), (List.get (m' :: ms) { val := i, isLt := (_ : i < List.length (m' :: ms)) }).last < (List.get (m :: m' :: ms) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: ms)) (hj : i + 1 < List.length (m :: m' :: ms)), Factory.lt F (List.get (m :: m' :: ms) { val := i, isLt := hi }).cost (List.get (m' :: ms) { val := i, isLt := (_ : i < List.length (m' :: ms)) }).cost(∀ (i : ℕ) (hi : i < List.length (m :: ms)) (hj : i + 1 < List.length (m :: ms)), (List.get ms { val := i, isLt := (_ : i < List.length ms) }).last < (List.get (m :: ms) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: ms)) (hj : i + 1 < List.length (m :: ms)), Factory.lt F (List.get (m :: ms) { val := i, isLt := hi }).cost (List.get ms { val := i, isLt := (_ : i < List.length ms) }).costα✝: Type
F: Factory α✝
m, m': Meas
ms: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: ms)) (hj : i + 1 < List.length (m :: m' :: ms)), (List.get (m' :: ms) { val := i, isLt := (_ : i < List.length (m' :: ms)) }).last < (List.get (m :: m' :: ms) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: ms)) (hj : i + 1 < List.length (m :: m' :: ms)), Factory.lt F (List.get (m :: m' :: ms) { val := i, isLt := hi }).cost (List.get (m' :: ms) { val := i, isLt := (_ : i < List.length (m' :: ms)) }).cost
left∀ (i : ℕ) (hi : i < List.length (m :: ms)) (hj : i + 1 < List.length (m :: ms)), (List.get ms { val := i, isLt := (_ : i < List.length ms) }).last < (List.get (m :: ms) { val := i, isLt := hi }).lastα✝: Type
F: Factory α✝
m, m': Meas
ms: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: ms)) (hj : i + 1 < List.length (m :: m' :: ms)), (List.get (m' :: ms) { val := i, isLt := (_ : i < List.length (m' :: ms)) }).last < (List.get (m :: m' :: ms) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: ms)) (hj : i + 1 < List.length (m :: m' :: ms)), Factory.lt F (List.get (m :: m' :: ms) { val := i, isLt := hi }).cost (List.get (m' :: ms) { val := i, isLt := (_ : i < List.length (m' :: ms)) }).cost
right∀ (i : ℕ) (hi : i < List.length (m :: ms)) (hj : i + 1 < List.length (m :: ms)), Factory.lt F (List.get (m :: ms) { val := i, isLt := hi }).cost (List.get ms { val := i, isLt := (_ : i < List.length ms) }).costα✝: Type
F: Factory α✝
m, m': Meas
ms: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: ms)) (hj : i + 1 < List.length (m :: m' :: ms)), (List.get (m' :: ms) { val := i, isLt := (_ : i < List.length (m' :: ms)) }).last < (List.get (m :: m' :: ms) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: ms)) (hj : i + 1 < List.length (m :: m' :: ms)), Factory.lt F (List.get (m :: m' :: ms) { val := i, isLt := hi }).cost (List.get (m' :: ms) { val := i, isLt := (_ : i < List.length (m' :: ms)) }).cost∀ (i : ℕ) (hi : i < List.length (m :: ms)) (hj : i + 1 < List.length (m :: ms)), (List.get ms { val := i, isLt := (_ : i < List.length ms) }).last < (List.get (m :: ms) { val := i, isLt := hi }).lastα✝: Type
F: Factory α✝
m, m': Meas
ms: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: ms)) (hj : i + 1 < List.length (m :: m' :: ms)), (List.get (m' :: ms) { val := i, isLt := (_ : i < List.length (m' :: ms)) }).last < (List.get (m :: m' :: ms) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: ms)) (hj : i + 1 < List.length (m :: m' :: ms)), Factory.lt F (List.get (m :: m' :: ms) { val := i, isLt := hi }).cost (List.get (m' :: ms) { val := i, isLt := (_ : i < List.length (m' :: ms)) }).cost
i: ℕ
hi: i < List.length (m :: ms)
hj: i + 1 < List.length (m :: ms)α✝: Type
F: Factory α✝
m, m': Meas
ms: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: ms)) (hj : i + 1 < List.length (m :: m' :: ms)), (List.get (m' :: ms) { val := i, isLt := (_ : i < List.length (m' :: ms)) }).last < (List.get (m :: m' :: ms) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: ms)) (hj : i + 1 < List.length (m :: m' :: ms)), Factory.lt F (List.get (m :: m' :: ms) { val := i, isLt := hi }).cost (List.get (m' :: ms) { val := i, isLt := (_ : i < List.length (m' :: ms)) }).cost∀ (i : ℕ) (hi : i < List.length (m :: ms)) (hj : i + 1 < List.length (m :: ms)), (List.get ms { val := i, isLt := (_ : i < List.length ms) }).last < (List.get (m :: ms) { val := i, isLt := hi }).lastα✝: Type
F: Factory α✝
m, m': Meas
i: ℕ
h: (∀ (i : ℕ) (hi : i < List.length [m, m']) (hj : i + 1 < List.length [m, m']), (List.get [m'] { val := i, isLt := (_ : i < List.length [m']) }).last < (List.get [m, m'] { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length [m, m']) (hj : i + 1 < List.length [m, m']), Factory.lt F (List.get [m, m'] { val := i, isLt := hi }).cost (List.get [m'] { val := i, isLt := (_ : i < List.length [m']) }).cost
hi: i < List.length [m]
hj: i + 1 < List.length [m]
nil(List.get [] { val := i, isLt := (_ : i < List.length []) }).last < (List.get [m] { val := i, isLt := hi }).lastα✝: Type
F: Factory α✝
m, m': Meas
i: ℕ
head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: i < List.length (m :: head✝ :: tail✝)
hj: i + 1 < List.length (m :: head✝ :: tail✝)
consα✝: Type
F: Factory α✝
m, m': Meas
ms: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: ms)) (hj : i + 1 < List.length (m :: m' :: ms)), (List.get (m' :: ms) { val := i, isLt := (_ : i < List.length (m' :: ms)) }).last < (List.get (m :: m' :: ms) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: ms)) (hj : i + 1 < List.length (m :: m' :: ms)), Factory.lt F (List.get (m :: m' :: ms) { val := i, isLt := hi }).cost (List.get (m' :: ms) { val := i, isLt := (_ : i < List.length (m' :: ms)) }).cost∀ (i : ℕ) (hi : i < List.length (m :: ms)) (hj : i + 1 < List.length (m :: ms)), (List.get ms { val := i, isLt := (_ : i < List.length ms) }).last < (List.get (m :: ms) { val := i, isLt := hi }).lastα✝: Type
F: Factory α✝
m, m': Meas
i: ℕ
h: (∀ (i : ℕ) (hi : i < List.length [m, m']) (hj : i + 1 < List.length [m, m']), (List.get [m'] { val := i, isLt := (_ : i < List.length [m']) }).last < (List.get [m, m'] { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length [m, m']) (hj : i + 1 < List.length [m, m']), Factory.lt F (List.get [m, m'] { val := i, isLt := hi }).cost (List.get [m'] { val := i, isLt := (_ : i < List.length [m']) }).cost
hi: i < List.length [m]
hj: i + 1 < List.length [m](List.get [] { val := i, isLt := (_ : i < List.length []) }).last < (List.get [m] { val := i, isLt := hi }).lastGoals accomplished! 🐙α✝: Type
F: Factory α✝
m, m': Meas
ms: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: ms)) (hj : i + 1 < List.length (m :: m' :: ms)), (List.get (m' :: ms) { val := i, isLt := (_ : i < List.length (m' :: ms)) }).last < (List.get (m :: m' :: ms) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: ms)) (hj : i + 1 < List.length (m :: m' :: ms)), Factory.lt F (List.get (m :: m' :: ms) { val := i, isLt := hi }).cost (List.get (m' :: ms) { val := i, isLt := (_ : i < List.length (m' :: ms)) }).cost∀ (i : ℕ) (hi : i < List.length (m :: ms)) (hj : i + 1 < List.length (m :: ms)), (List.get ms { val := i, isLt := (_ : i < List.length ms) }).last < (List.get (m :: ms) { val := i, isLt := hi }).lasthd: Type
F: Factory hd
m, m': Meas
i: ℕ
head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: i < List.length (m :: head✝ :: tail✝)
hj: i + 1 < List.length (m :: head✝ :: tail✝)hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)
zerohd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
n✝: ℕ
hi: Nat.succ n✝ < List.length (m :: head✝ :: tail✝)
hj: Nat.succ n✝ + 1 < List.length (m :: head✝ :: tail✝)
succhd: Type
F: Factory hd
m, m': Meas
i: ℕ
head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: i < List.length (m :: head✝ :: tail✝)
hj: i + 1 < List.length (m :: head✝ :: tail✝)hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)Goals accomplished! 🐙hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)0 < List.length (m :: m' :: head✝ :: tail✝)Goals accomplished! 🐙hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)Goals accomplished! 🐙hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)Goals accomplished! 🐙hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)
h₁: (List.get (m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < Nat.succ (List.length tail✝ + 2)) }).lasthd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)
h₁: (List.get (m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < Nat.succ (List.length tail✝ + 2)) }).lastGoals accomplished! 🐙hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)
h₁: (List.get (m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < Nat.succ (List.length tail✝ + 2)) }).last1 < List.length (m :: m' :: head✝ :: tail✝)Goals accomplished! 🐙hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)
h₁: (List.get (m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < Nat.succ (List.length tail✝ + 2)) }).lastGoals accomplished! 🐙hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)
h₁: (List.get (m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < Nat.succ (List.length tail✝ + 2)) }).lasthd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)
h₁: (List.get (m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < Nat.succ (List.length tail✝ + 2)) }).lasthd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)
h₁: (List.get (m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < Nat.succ (List.length tail✝ + 2)) }).lastGoals accomplished! 🐙Goals accomplished! 🐙hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)
h₁: (List.get (m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < Nat.succ (List.length tail✝ + 2)) }).last
h₂: (List.get (m' :: head✝ :: tail✝) { val := 1, isLt := (_ : 1 < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := 1, isLt := (_ : 1 < Nat.succ (Nat.succ (List.length tail✝ + 1))) }).lasthd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)
h₁: m'.last < m.last
h₂: head✝.last < m'.lasthead✝.last < m.lasthd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)Goals accomplished! 🐙hd: Type
F: Factory hd
m, m': Meas
i: ℕ
head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: i < List.length (m :: head✝ :: tail✝)
hj: i + 1 < List.length (m :: head✝ :: tail✝)hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hi: i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hj: i + 1 + 1 < Nat.succ (Nat.succ (List.length tail✝))hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hi: i + 1 < List.length tail✝ + 1 + 1
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hj: i + 1 + 1 < List.length tail✝ + 1 + 1hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hi: i + 1 < List.length tail✝ + 1 + 1
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hj: i + 1 + 1 < List.length tail✝ + 1 + 1hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hi: i + 1 < List.length tail✝ + 1 + 1
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hj: i + 1 + 1 < List.length tail✝ + 1 + 1hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝Goals accomplished! 🐙hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝i + 2 < List.length tail✝ + 2 + 1hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝i + 2 < List.length tail✝ + 2 + 1hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝i + 2 < List.length tail✝ + 2 + 1hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝Goals accomplished! 🐙Goals accomplished! 🐙hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝Goals accomplished! 🐙hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝Goals accomplished! 🐙Goals accomplished! 🐙hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < Nat.succ (Nat.succ (List.length tail✝))
hj✝: Nat.succ i + 1 < Nat.succ (Nat.succ (List.length tail✝))
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝
h': (List.get (m' :: head✝ :: tail✝) { val := i + 2, isLt := (_ : i + 2 < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i + 2, isLt := (_ : i + 2 < List.length (m :: m' :: head✝ :: tail✝)) }).lasthd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)Goals accomplished! 🐙α✝: Type
F: Factory α✝
m, m': Meas
ms: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: ms)) (hj : i + 1 < List.length (m :: m' :: ms)), (List.get (m' :: ms) { val := i, isLt := (_ : i < List.length (m' :: ms)) }).last < (List.get (m :: m' :: ms) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: ms)) (hj : i + 1 < List.length (m :: m' :: ms)), Factory.lt F (List.get (m :: m' :: ms) { val := i, isLt := hi }).cost (List.get (m' :: ms) { val := i, isLt := (_ : i < List.length (m' :: ms)) }).cost∀ (i : ℕ) (hi : i < List.length (m :: ms)) (hj : i + 1 < List.length (m :: ms)), Factory.lt F (List.get (m :: ms) { val := i, isLt := hi }).cost (List.get ms { val := i, isLt := (_ : i < List.length ms) }).costα✝: Type
F: Factory α✝
m, m': Meas
ms: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: ms)) (hj : i + 1 < List.length (m :: m' :: ms)), (List.get (m' :: ms) { val := i, isLt := (_ : i < List.length (m' :: ms)) }).last < (List.get (m :: m' :: ms) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: ms)) (hj : i + 1 < List.length (m :: m' :: ms)), Factory.lt F (List.get (m :: m' :: ms) { val := i, isLt := hi }).cost (List.get (m' :: ms) { val := i, isLt := (_ : i < List.length (m' :: ms)) }).cost
i: ℕ
hi: i < List.length (m :: ms)
hj: i + 1 < List.length (m :: ms)Factory.lt F (List.get (m :: ms) { val := i, isLt := hi }).cost (List.get ms { val := i, isLt := (_ : i < List.length ms) }).costα✝: Type
F: Factory α✝
m, m': Meas
ms: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: ms)) (hj : i + 1 < List.length (m :: m' :: ms)), (List.get (m' :: ms) { val := i, isLt := (_ : i < List.length (m' :: ms)) }).last < (List.get (m :: m' :: ms) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: ms)) (hj : i + 1 < List.length (m :: m' :: ms)), Factory.lt F (List.get (m :: m' :: ms) { val := i, isLt := hi }).cost (List.get (m' :: ms) { val := i, isLt := (_ : i < List.length (m' :: ms)) }).cost∀ (i : ℕ) (hi : i < List.length (m :: ms)) (hj : i + 1 < List.length (m :: ms)), Factory.lt F (List.get (m :: ms) { val := i, isLt := hi }).cost (List.get ms { val := i, isLt := (_ : i < List.length ms) }).costα✝: Type
F: Factory α✝
m, m': Meas
i: ℕ
h: (∀ (i : ℕ) (hi : i < List.length [m, m']) (hj : i + 1 < List.length [m, m']), (List.get [m'] { val := i, isLt := (_ : i < List.length [m']) }).last < (List.get [m, m'] { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length [m, m']) (hj : i + 1 < List.length [m, m']), Factory.lt F (List.get [m, m'] { val := i, isLt := hi }).cost (List.get [m'] { val := i, isLt := (_ : i < List.length [m']) }).cost
hi: i < List.length [m]
hj: i + 1 < List.length [m]
nilFactory.lt F (List.get [m] { val := i, isLt := hi }).cost (List.get [] { val := i, isLt := (_ : i < List.length []) }).costα✝: Type
F: Factory α✝
m, m': Meas
i: ℕ
head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: i < List.length (m :: head✝ :: tail✝)
hj: i + 1 < List.length (m :: head✝ :: tail✝)
consFactory.lt F (List.get (m :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (head✝ :: tail✝)) }).costα✝: Type
F: Factory α✝
m, m': Meas
ms: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: ms)) (hj : i + 1 < List.length (m :: m' :: ms)), (List.get (m' :: ms) { val := i, isLt := (_ : i < List.length (m' :: ms)) }).last < (List.get (m :: m' :: ms) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: ms)) (hj : i + 1 < List.length (m :: m' :: ms)), Factory.lt F (List.get (m :: m' :: ms) { val := i, isLt := hi }).cost (List.get (m' :: ms) { val := i, isLt := (_ : i < List.length (m' :: ms)) }).cost∀ (i : ℕ) (hi : i < List.length (m :: ms)) (hj : i + 1 < List.length (m :: ms)), Factory.lt F (List.get (m :: ms) { val := i, isLt := hi }).cost (List.get ms { val := i, isLt := (_ : i < List.length ms) }).costα✝: Type
F: Factory α✝
m, m': Meas
i: ℕ
h: (∀ (i : ℕ) (hi : i < List.length [m, m']) (hj : i + 1 < List.length [m, m']), (List.get [m'] { val := i, isLt := (_ : i < List.length [m']) }).last < (List.get [m, m'] { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length [m, m']) (hj : i + 1 < List.length [m, m']), Factory.lt F (List.get [m, m'] { val := i, isLt := hi }).cost (List.get [m'] { val := i, isLt := (_ : i < List.length [m']) }).cost
hi: i < List.length [m]
hj: i + 1 < List.length [m]Factory.lt F (List.get [m] { val := i, isLt := hi }).cost (List.get [] { val := i, isLt := (_ : i < List.length []) }).costGoals accomplished! 🐙α✝: Type
F: Factory α✝
m, m': Meas
ms: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: ms)) (hj : i + 1 < List.length (m :: m' :: ms)), (List.get (m' :: ms) { val := i, isLt := (_ : i < List.length (m' :: ms)) }).last < (List.get (m :: m' :: ms) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: ms)) (hj : i + 1 < List.length (m :: m' :: ms)), Factory.lt F (List.get (m :: m' :: ms) { val := i, isLt := hi }).cost (List.get (m' :: ms) { val := i, isLt := (_ : i < List.length (m' :: ms)) }).cost∀ (i : ℕ) (hi : i < List.length (m :: ms)) (hj : i + 1 < List.length (m :: ms)), Factory.lt F (List.get (m :: ms) { val := i, isLt := hi }).cost (List.get ms { val := i, isLt := (_ : i < List.length ms) }).costhd: Type
F: Factory hd
m, m': Meas
i: ℕ
head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: i < List.length (m :: head✝ :: tail✝)
hj: i + 1 < List.length (m :: head✝ :: tail✝)Factory.lt F (List.get (m :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (head✝ :: tail✝)) }).costhd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)
zerohd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
n✝: ℕ
hi: Nat.succ n✝ < List.length (m :: head✝ :: tail✝)
hj: Nat.succ n✝ + 1 < List.length (m :: head✝ :: tail✝)
succhd: Type
F: Factory hd
m, m': Meas
i: ℕ
head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: i < List.length (m :: head✝ :: tail✝)
hj: i + 1 < List.length (m :: head✝ :: tail✝)Factory.lt F (List.get (m :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (head✝ :: tail✝)) }).costhd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)Goals accomplished! 🐙hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)0 < List.length (m :: m' :: head✝ :: tail✝)Goals accomplished! 🐙hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)Goals accomplished! 🐙hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)Goals accomplished! 🐙hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)
h₁: Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < Nat.succ (List.length tail✝ + 2)) }).cost (List.get (m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < List.length (m' :: head✝ :: tail✝)) }).costhd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)
h₁: Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < Nat.succ (List.length tail✝ + 2)) }).cost (List.get (m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < List.length (m' :: head✝ :: tail✝)) }).costGoals accomplished! 🐙hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)
h₁: Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < Nat.succ (List.length tail✝ + 2)) }).cost (List.get (m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < List.length (m' :: head✝ :: tail✝)) }).cost1 < List.length (m :: m' :: head✝ :: tail✝)Goals accomplished! 🐙hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)
h₁: Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < Nat.succ (List.length tail✝ + 2)) }).cost (List.get (m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < List.length (m' :: head✝ :: tail✝)) }).costGoals accomplished! 🐙hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)
h₁: Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < Nat.succ (List.length tail✝ + 2)) }).cost (List.get (m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < List.length (m' :: head✝ :: tail✝)) }).costGoals accomplished! 🐙hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)
h₁: Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < Nat.succ (List.length tail✝ + 2)) }).cost (List.get (m' :: head✝ :: tail✝) { val := 0, isLt := (_ : 0 < List.length (m' :: head✝ :: tail✝)) }).cost
h₂: Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := 1, isLt := (_ : 1 < Nat.succ (Nat.succ (List.length tail✝ + 1))) }).cost (List.get (m' :: head✝ :: tail✝) { val := 1, isLt := (_ : 1 < List.length (m' :: head✝ :: tail✝)) }).costhd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)
h₁: Factory.lt F m.cost m'.cost
h₂: Factory.lt F m'.cost head✝.costFactory.lt F m.cost head✝.costhd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)
h₁: Factory.lt F m.cost m'.cost
h₂: Factory.lt F m'.cost head✝.cost
h₁Factory.lt F m.cost ?c₂hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)
h₁: Factory.lt F m.cost m'.cost
h₂: Factory.lt F m'.cost head✝.cost
h₂Factory.lt F ?c₂ head✝.costhd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)
h₁: Factory.lt F m.cost m'.cost
h₂: Factory.lt F m'.cost head✝.cost
c₂hdhd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)
h₁: Factory.lt F m.cost m'.cost
h₂: Factory.lt F m'.cost head✝.costFactory.lt F m.cost head✝.costhd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)
h₁: Factory.lt F m.cost m'.cost
h₂: Factory.lt F m'.cost head✝.cost
h₁Factory.lt F m.cost ?c₂hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)
h₁: Factory.lt F m.cost m'.cost
h₂: Factory.lt F m'.cost head✝.cost
h₂Factory.lt F ?c₂ head✝.costhd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)
h₁: Factory.lt F m.cost m'.cost
h₂: Factory.lt F m'.cost head✝.cost
c₂hdhd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: Nat.zero < List.length (m :: head✝ :: tail✝)
hj: Nat.zero + 1 < List.length (m :: head✝ :: tail✝)
h₁: Factory.lt F m.cost m'.cost
h₂: Factory.lt F m'.cost head✝.costFactory.lt F m.cost head✝.costGoals accomplished! 🐙hd: Type
F: Factory hd
m, m': Meas
i: ℕ
head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
hi: i < List.length (m :: head✝ :: tail✝)
hj: i + 1 < List.length (m :: head✝ :: tail✝)Factory.lt F (List.get (m :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (head✝ :: tail✝)) }).costhd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj✝: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj✝: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝Goals accomplished! 🐙hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj✝: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj✝: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj✝: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj✝: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj✝: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj✝: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj✝: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj✝: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝i + 2 < List.length tail✝ + 2 + 1hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj✝: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝i + 2 < List.length tail✝ + 2 + 1hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj✝: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝i + 2 < List.length tail✝ + 2 + 1hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj✝: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝Goals accomplished! 🐙Goals accomplished! 🐙hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj✝: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝Goals accomplished! 🐙hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj✝: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj✝: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj✝: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj✝: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj✝: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj✝: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj✝: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj✝: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj✝: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj✝: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj✝: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝Goals accomplished! 🐙Goals accomplished! 🐙hd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi✝: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj✝: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)
hi: i < List.length tail✝ + 1
hj: i < List.length tail✝
h': Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i + 2, isLt := (_ : i + 2 < List.length (m :: m' :: head✝ :: tail✝)) }).cost (List.get (m' :: head✝ :: tail✝) { val := i + 2, isLt := (_ : i + 2 < List.length (m' :: head✝ :: tail✝)) }).costhd: Type
F: Factory hd
m, m', head✝: Meas
tail✝: List Meas
h: (∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).last < (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).last) ∧ ∀ (i : ℕ) (hi : i < List.length (m :: m' :: head✝ :: tail✝)) (hj : i + 1 < List.length (m :: m' :: head✝ :: tail✝)), Factory.lt F (List.get (m :: m' :: head✝ :: tail✝) { val := i, isLt := hi }).cost (List.get (m' :: head✝ :: tail✝) { val := i, isLt := (_ : i < List.length (m' :: head✝ :: tail✝)) }).cost
i: ℕ
hi: Nat.succ i < List.length (m :: head✝ :: tail✝)
hj: Nat.succ i + 1 < List.length (m :: head✝ :: tail✝)lemma pareto_one (Goals accomplished! 🐙m : Meas) : paretom: MeasF [F: ?m.24127m] :=m: MeasGoals accomplished! 🐙lemmaGoals accomplished! 🐙pareto_cons (ms : List Meas) (ms: List Measxx: Measy : Meas) (y: Meash_last :h_last: x.last > y.lastx.last >x: Measy.last) (h_cost :y: MeasFF: ?m.24260.ltF.lt x.cost y.cost: Sort ?u.24255F.lt x.cost y.cost: Sort ?u.24255xx: Meas.F.lt x.cost y.cost: Sort ?u.24255costcost: {α : Type} → Meas → αF.lt x.cost y.cost: Sort ?u.24255yy: Meas.F.lt x.cost y.cost: Sort ?u.24255cost) (h : paretocost: {α : Type} → Meas → αF (F: ?m.24260y ::y: Measms)) : paretoms: List MeasF (F: ?m.24260x ::x: Measy ::y: Measms) :=ms: List MeasGoals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
x, y: Meas
h_last: x.last > y.last
h_cost: Factory.lt F x.cost y.cost
h: last_decreasing (y :: ms) ∧ cost_increasing F (y :: ms)last_decreasing (x :: y :: ms) ∧ cost_increasing F (x :: y :: ms)α✝: Type
F: Factory α✝
ms: List Meas
x, y: Meas
h_last: x.last > y.last
h_cost: Factory.lt F x.cost y.cost
h: last_decreasing (y :: ms) ∧ cost_increasing F (y :: ms)
leftlast_decreasing (x :: y :: ms)α✝: Type
F: Factory α✝
ms: List Meas
x, y: Meas
h_last: x.last > y.last
h_cost: Factory.lt F x.cost y.cost
h: last_decreasing (y :: ms) ∧ cost_increasing F (y :: ms)
rightcost_increasing F (x :: y :: ms)α✝: Type
F: Factory α✝
ms: List Meas
x, y: Meas
h_last: x.last > y.last
h_cost: Factory.lt F x.cost y.cost
h: last_decreasing (y :: ms) ∧ cost_increasing F (y :: ms)last_decreasing (x :: y :: ms)α✝: Type
F: Factory α✝
ms: List Meas
x, y: Meas
h_last: x.last > y.last
h_cost: Factory.lt F x.cost y.cost
h: last_decreasing (y :: ms) ∧ cost_increasing F (y :: ms)
h_lastx.last > y.lastα✝: Type
F: Factory α✝
ms: List Meas
x, y: Meas
h_last: x.last > y.last
h_cost: Factory.lt F x.cost y.cost
h: last_decreasing (y :: ms) ∧ cost_increasing F (y :: ms)
hlast_decreasing (y :: ms)α✝: Type
F: Factory α✝
ms: List Meas
x, y: Meas
h_last: x.last > y.last
h_cost: Factory.lt F x.cost y.cost
h: last_decreasing (y :: ms) ∧ cost_increasing F (y :: ms)last_decreasing (x :: y :: ms)α✝: Type
F: Factory α✝
ms: List Meas
x, y: Meas
h_last: x.last > y.last
h_cost: Factory.lt F x.cost y.cost
h: last_decreasing (y :: ms) ∧ cost_increasing F (y :: ms)x.last > y.lastGoals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
x, y: Meas
h_last: x.last > y.last
h_cost: Factory.lt F x.cost y.cost
h: last_decreasing (y :: ms) ∧ cost_increasing F (y :: ms)last_decreasing (x :: y :: ms)α✝: Type
F: Factory α✝
ms: List Meas
x, y: Meas
h_last: x.last > y.last
h_cost: Factory.lt F x.cost y.cost
h: last_decreasing (y :: ms) ∧ cost_increasing F (y :: ms)last_decreasing (y :: ms)Goals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
x, y: Meas
h_last: x.last > y.last
h_cost: Factory.lt F x.cost y.cost
h: last_decreasing (y :: ms) ∧ cost_increasing F (y :: ms)cost_increasing F (x :: y :: ms)α✝: Type
F: Factory α✝
ms: List Meas
x, y: Meas
h_last: x.last > y.last
h_cost: Factory.lt F x.cost y.cost
h: last_decreasing (y :: ms) ∧ cost_increasing F (y :: ms)
h_costFactory.lt F x.cost y.costα✝: Type
F: Factory α✝
ms: List Meas
x, y: Meas
h_last: x.last > y.last
h_cost: Factory.lt F x.cost y.cost
h: last_decreasing (y :: ms) ∧ cost_increasing F (y :: ms)
hcost_increasing F (y :: ms)α✝: Type
F: Factory α✝
ms: List Meas
x, y: Meas
h_last: x.last > y.last
h_cost: Factory.lt F x.cost y.cost
h: last_decreasing (y :: ms) ∧ cost_increasing F (y :: ms)cost_increasing F (x :: y :: ms)α✝: Type
F: Factory α✝
ms: List Meas
x, y: Meas
h_last: x.last > y.last
h_cost: Factory.lt F x.cost y.cost
h: last_decreasing (y :: ms) ∧ cost_increasing F (y :: ms)Factory.lt F x.cost y.costGoals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
x, y: Meas
h_last: x.last > y.last
h_cost: Factory.lt F x.cost y.cost
h: last_decreasing (y :: ms) ∧ cost_increasing F (y :: ms)cost_increasing F (x :: y :: ms)α✝: Type
F: Factory α✝
ms: List Meas
x, y: Meas
h_last: x.last > y.last
h_cost: Factory.lt F x.cost y.cost
h: last_decreasing (y :: ms) ∧ cost_increasing F (y :: ms)cost_increasing F (y :: ms)lemmaGoals accomplished! 🐙pareto_concat (m : Meas) (m: Meash : paretoh: pareto F msFF: ?m.24626ms) : paretoms: ?m.24636F (dedupF: ?m.24626F (F: ?m.24626ms.map (funms: ?m.24636m' => Meas.concatm': ?m.24660FF: ?m.24626mm: Measm'))) :=m': ?m.24660Goals accomplished! 🐙last_decreasing (dedup F (List.map (fun m' => Meas.concat F m m') ms)) ∧ cost_increasing F (dedup F (List.map (fun m' => Meas.concat F m m') ms))
leftlast_decreasing (dedup F (List.map (fun m' => Meas.concat F m m') ms))
rightcost_increasing F (dedup F (List.map (fun m' => Meas.concat F m m') ms))last_decreasing (dedup F (List.map (fun m' => Meas.concat F m m') ms))
hlast_decreasing (List.map (fun m' => Meas.concat F m m') ms)last_decreasing (dedup F (List.map (fun m' => Meas.concat F m m') ms))
h.hlast_decreasing (dedup F (List.map (fun m' => Meas.concat F m m') ms))Goals accomplished! 🐙cost_increasing F (dedup F (List.map (fun m' => Meas.concat F m m') ms))
hcost_increasing_non_strict F (List.map (fun m' => Meas.concat F m m') ms)cost_increasing F (dedup F (List.map (fun m' => Meas.concat F m m') ms))
h.hcost_increasing F mscost_increasing F (dedup F (List.map (fun m' => Meas.concat F m m') ms))lemmaGoals accomplished! 🐙pareto_map_lift_align (n :n: ℕℕ) (ℕ: Typeh : paretoh: pareto F msFF: ?m.24879ms) : paretoms: ?m.24888F (F: ?m.24879ms.map (Meas.adjust_alignms: ?m.24888n)) :=n: ℕGoals accomplished! 🐙Goals accomplished! 🐙α✝: Type
F: Factory α✝
n: ℕ
head✝: Meas
ih: pareto F [] → pareto F (List.map (Meas.adjust_align n) [])
h: pareto F [head✝]
nilpareto F (List.map (Meas.adjust_align n) [head✝])α✝: Type
F: Factory α✝
n: ℕ
head✝¹, head✝: Meas
tail✝: List Meas
ih: pareto F (head✝ :: tail✝) → pareto F (List.map (Meas.adjust_align n) (head✝ :: tail✝))
h: pareto F (head✝¹ :: head✝ :: tail✝)
conspareto F (List.map (Meas.adjust_align n) (head✝¹ :: head✝ :: tail✝))Goals accomplished! 🐙α✝: Type
F: Factory α✝
n: ℕ
head✝¹, head✝: Meas
tail✝: List Meas
ih: pareto F (head✝ :: tail✝) → pareto F (List.map (Meas.adjust_align n) (head✝ :: tail✝))
h: pareto F (head✝¹ :: head✝ :: tail✝)
h_last(Meas.adjust_align n head✝¹).last > (Meas.adjust_align n head✝).lastα✝: Type
F: Factory α✝
n: ℕ
head✝¹, head✝: Meas
tail✝: List Meas
ih: pareto F (head✝ :: tail✝) → pareto F (List.map (Meas.adjust_align n) (head✝ :: tail✝))
h: pareto F (head✝¹ :: head✝ :: tail✝)
h_costFactory.lt F (Meas.adjust_align n head✝¹).cost (Meas.adjust_align n head✝).costα✝: Type
F: Factory α✝
n: ℕ
head✝¹, head✝: Meas
tail✝: List Meas
ih: pareto F (head✝ :: tail✝) → pareto F (List.map (Meas.adjust_align n) (head✝ :: tail✝))
h: pareto F (head✝¹ :: head✝ :: tail✝)
hpareto F (Meas.adjust_align n head✝ :: List.map (Meas.adjust_align n) tail✝)α✝: Type
F: Factory α✝
n: ℕ
head✝¹, head✝: Meas
tail✝: List Meas
ih: pareto F (head✝ :: tail✝) → pareto F (List.map (Meas.adjust_align n) (head✝ :: tail✝))
h: pareto F (head✝¹ :: head✝ :: tail✝)
h_last(Meas.adjust_align n head✝¹).last > (Meas.adjust_align n head✝).lastα✝: Type
F: Factory α✝
n: ℕ
head✝¹, head✝: Meas
tail✝: List Meas
ih: pareto F (head✝ :: tail✝) → pareto F (List.map (Meas.adjust_align n) (head✝ :: tail✝))
h: pareto F (head✝¹ :: head✝ :: tail✝)
h_costFactory.lt F (Meas.adjust_align n head✝¹).cost (Meas.adjust_align n head✝).costα✝: Type
F: Factory α✝
n: ℕ
head✝¹, head✝: Meas
tail✝: List Meas
ih: pareto F (head✝ :: tail✝) → pareto F (List.map (Meas.adjust_align n) (head✝ :: tail✝))
h: pareto F (head✝¹ :: head✝ :: tail✝)
hpareto F (Meas.adjust_align n head✝ :: List.map (Meas.adjust_align n) tail✝)α✝: Type
F: Factory α✝
n: ℕ
head✝¹, head✝: Meas
tail✝: List Meas
ih: pareto F (head✝ :: tail✝) → pareto F (List.map (Meas.adjust_align n) (head✝ :: tail✝))
h: pareto F (head✝¹ :: head✝ :: tail✝)
hα✝: Type
F: Factory α✝
n: ℕ
head✝¹, head✝: Meas
tail✝: List Meas
ih: pareto F (head✝ :: tail✝) → pareto F (List.map (Meas.adjust_align n) (head✝ :: tail✝))
h: pareto F (head✝¹ :: head✝ :: tail✝)
mMeasGoals accomplished! 🐙α✝: Type
F: Factory α✝
n: ℕ
head✝¹, head✝: Meas
tail✝: List Meas
ih: pareto F (head✝ :: tail✝) → pareto F (List.map (Meas.adjust_align n) (head✝ :: tail✝))
h: pareto F (head✝¹ :: head✝ :: tail✝)Factory.lt F (Meas.adjust_align n head✝¹).cost (Meas.adjust_align n head✝).costα✝: Type
F: Factory α✝
n: ℕ
head✝¹, head✝: Meas
tail✝: List Meas
ih: pareto F (head✝ :: tail✝) → pareto F (List.map (Meas.adjust_align n) (head✝ :: tail✝))
h: head✝¹.last > head✝.last ∧ Factory.lt F head✝¹.cost head✝.cost(Meas.adjust_align n head✝¹).last > (Meas.adjust_align n head✝).lastlemmaGoals accomplished! 🐙pareto_map_lift_nest (n :n: ℕℕ) (ℕ: Typeh : paretoh: pareto F msFF: ?m.27789ms) : paretoms: ?m.27798F (F: ?m.27789ms.map (Meas.adjust_nestms: ?m.27798n)) :=n: ℕGoals accomplished! 🐙Goals accomplished! 🐙α✝: Type
F: Factory α✝
n: ℕ
head✝: Meas
ih: pareto F [] → pareto F (List.map (Meas.adjust_nest n) [])
h: pareto F [head✝]
nilpareto F (List.map (Meas.adjust_nest n) [head✝])α✝: Type
F: Factory α✝
n: ℕ
head✝¹, head✝: Meas
tail✝: List Meas
ih: pareto F (head✝ :: tail✝) → pareto F (List.map (Meas.adjust_nest n) (head✝ :: tail✝))
h: pareto F (head✝¹ :: head✝ :: tail✝)
conspareto F (List.map (Meas.adjust_nest n) (head✝¹ :: head✝ :: tail✝))Goals accomplished! 🐙α✝: Type
F: Factory α✝
n: ℕ
head✝¹, head✝: Meas
tail✝: List Meas
ih: pareto F (head✝ :: tail✝) → pareto F (List.map (Meas.adjust_nest n) (head✝ :: tail✝))
h: pareto F (head✝¹ :: head✝ :: tail✝)
h_last(Meas.adjust_nest n head✝¹).last > (Meas.adjust_nest n head✝).lastα✝: Type
F: Factory α✝
n: ℕ
head✝¹, head✝: Meas
tail✝: List Meas
ih: pareto F (head✝ :: tail✝) → pareto F (List.map (Meas.adjust_nest n) (head✝ :: tail✝))
h: pareto F (head✝¹ :: head✝ :: tail✝)
h_costFactory.lt F (Meas.adjust_nest n head✝¹).cost (Meas.adjust_nest n head✝).costα✝: Type
F: Factory α✝
n: ℕ
head✝¹, head✝: Meas
tail✝: List Meas
ih: pareto F (head✝ :: tail✝) → pareto F (List.map (Meas.adjust_nest n) (head✝ :: tail✝))
h: pareto F (head✝¹ :: head✝ :: tail✝)
hpareto F (Meas.adjust_nest n head✝ :: List.map (Meas.adjust_nest n) tail✝)α✝: Type
F: Factory α✝
n: ℕ
head✝¹, head✝: Meas
tail✝: List Meas
ih: pareto F (head✝ :: tail✝) → pareto F (List.map (Meas.adjust_nest n) (head✝ :: tail✝))
h: pareto F (head✝¹ :: head✝ :: tail✝)
h_last(Meas.adjust_nest n head✝¹).last > (Meas.adjust_nest n head✝).lastα✝: Type
F: Factory α✝
n: ℕ
head✝¹, head✝: Meas
tail✝: List Meas
ih: pareto F (head✝ :: tail✝) → pareto F (List.map (Meas.adjust_nest n) (head✝ :: tail✝))
h: pareto F (head✝¹ :: head✝ :: tail✝)
h_costFactory.lt F (Meas.adjust_nest n head✝¹).cost (Meas.adjust_nest n head✝).costα✝: Type
F: Factory α✝
n: ℕ
head✝¹, head✝: Meas
tail✝: List Meas
ih: pareto F (head✝ :: tail✝) → pareto F (List.map (Meas.adjust_nest n) (head✝ :: tail✝))
h: pareto F (head✝¹ :: head✝ :: tail✝)
hpareto F (Meas.adjust_nest n head✝ :: List.map (Meas.adjust_nest n) tail✝)α✝: Type
F: Factory α✝
n: ℕ
head✝¹, head✝: Meas
tail✝: List Meas
ih: pareto F (head✝ :: tail✝) → pareto F (List.map (Meas.adjust_nest n) (head✝ :: tail✝))
h: pareto F (head✝¹ :: head✝ :: tail✝)
hα✝: Type
F: Factory α✝
n: ℕ
head✝¹, head✝: Meas
tail✝: List Meas
ih: pareto F (head✝ :: tail✝) → pareto F (List.map (Meas.adjust_nest n) (head✝ :: tail✝))
h: pareto F (head✝¹ :: head✝ :: tail✝)
mMeasGoals accomplished! 🐙α✝: Type
F: Factory α✝
n: ℕ
head✝¹, head✝: Meas
tail✝: List Meas
ih: pareto F (head✝ :: tail✝) → pareto F (List.map (Meas.adjust_nest n) (head✝ :: tail✝))
h: head✝¹.last > head✝.last ∧ Factory.lt F head✝¹.cost head✝.costFactory.lt F (Meas.adjust_nest n head✝¹).cost (Meas.adjust_nest n head✝).costα✝: Type
F: Factory α✝
n: ℕ
head✝¹, head✝: Meas
tail✝: List Meas
ih: pareto F (head✝ :: tail✝) → pareto F (List.map (Meas.adjust_nest n) (head✝ :: tail✝))
h: pareto F (head✝¹ :: head✝ :: tail✝)Factory.lt F (Meas.adjust_nest n head✝¹).cost (Meas.adjust_nest n head✝).costGoals accomplished! 🐙