have size_eq : (x::xs).length = (y::ys).length
n : ℕ
a b : Variables n order.GrLex
x : ℕ
xs : List ℕ
p : List.length (x :: xs) = n
y : ℕ
ys : List ℕ
q : List.length (y :: ys) = n
⊢ foldl (fun x y => x + y) (x + y) (zipWith (fun x y => x + y) xs ys) =
    foldl (fun x y => x + y) x xs + foldl (fun x y => x + y) y ys
case size_eq
n : ℕ
a b : Variables n order.GrLex
x : ℕ
xs : List ℕ
p : List.length (x :: xs) = n
y : ℕ
ys : List ℕ
q : List.length (y :: ys) = n
⊢ List.length (x :: xs) = List.length (y :: ys)

n : ℕ
a b : Variables n order.GrLex
x : ℕ
xs : List ℕ
p : List.length (x :: xs) = n
y : ℕ
ys : List ℕ
q : List.length (y :: ys) = n
size_eq : List.length (x :: xs) = List.length (y :: ys)
⊢ foldl (fun x y => x + y) (x + y) (zipWith (fun x y => x + y) xs ys) =
    foldl (fun x y => x + y) x xs + foldl (fun x y => x + y) y ys