Complicated problem involving mathematical induction


We are collecting donations to buy a new chair. We receive $ m$ donations in total $ d_1, d_2, …, d_m \in \mathbb{N}$ ($ m \geq 1$ and every donation $ d_i$ is whole-numbered, i.e $ \in \mathbb{N}$ ). A chair costs $ c$ dollars, where $ c \in [m].$ (Notation: $ [m]$ $ :=$ $ \{1, 2, …, m\}$ ).

Prove using mathematical induction over $ m$ , that there exists two numbers $ k, l$ with $ k \leq l$ such that the sum of the amount of donations $ \sum _{s=k} ^l {d_s}$ is exactly sufficient to purchase $ x$ chairs ($ x \in \mathbb{N}$ ) without any money being left.

I’m unable to find the correct approach to solve this. I’m sure the Pigeonhole Principle will be useful here, but I don’t know how to correctly apply it within the induction proof. Can someone point me in the right direction?

Why is the proof complete after proving only for one induction when we have more than one variable?

So I’m self-learning coq. And I came across the proof for associativity in addition forall (a b c : nat)

enter image description here

Appearntly when we do induction a. after intros a b c., it creates 2 subgoals

enter image description here

and afterwards we simply need to show that the two sides in both subgoals are equivalent, and the proof is completed.

So I’m just wondering why we don’t need to do induction b. and induction c. to complete the proof? Why only performing induction on a is able to complete the proof?

Or in other words, how come in the function that returns the proof, we just get b and c for “free”? Constructively don’t we need something like a double induction applied twice?

enter image description here

Induction details for proof of closure of regular languages under unions

I was reading M. Sipser, Introduction to the theory of computation 3ed. where he presents a proof by construction that the class of regular languages is closed under unions (Theorem 1.25). However, he omits the induction details for a formal proof of correctness. I tried filling in the details myself but it was a mess; how is this usually done?

How to prove by induction on the length of the input string?

The string is $ $ S = \{(ab)^k | k \geq 1 \}$ $

The NFA enter image description here

I’m new learning formal language and I understand how to prove mathematical induction. However, when it turns into a string or NFA stuff, I’m stuck on what induction hypothesis do I have to make(or writing the proof formally). Have been stuck for a while, what’s a good way to start an approach?

Induction proofs in Big-O notation

I’m not sure how go about this question: Prove the following inequality. For a correct proof, we require a value of the constant $ c>0$ and an $ n \in \mathbb N$ , such that $ \forall n>N : f(x)<c\cdot g(n)$ .

$ \mathcal O(2^n) < \mathcal O (n!)$ .

I’m well aware how to prove $ 2^n < n!$ using induction, I just don’t understand how one is supposed to find a constant, etc. The only thing that springs to mind here is choosing $ N = 4$ , since that is when $ 2^n < n!$ begins to hold. If someone could clarify how I can apply the definition of Big-O notation to solve this, I would be greatful.

solving a problem with induction

the original question is the following

prove that $ 2·\sum_{i=0}^{n-1} 2^{i} = 3^n-1$ for all n $ \geq$ 1

I know that i have to prove by induction and have succesfully done the base case, my IH is the following:

Assume $ 2·\sum_{i=0}^{n-1} 2^{i} = 3^n-1$ holds for all n $ \geq$ 1 to prove $ 2·\sum_{i=0}^{n} 2^{i} = 3^{n+1}-1$

then I did this: $ 2·\sum_{i=0}^{n} 2^{i} = 2·\sum_{i=0}^{n-1} 2^{i} +3^n$

then by my IH: $ 2·\sum_{i=0}^{n-1} 2^{i} +3^n = 3^n-1+3^n $

after this I struggle to continue, I know I have to find a way to rewrite it to $ 3^{n+1}-1$ and I know this is equal to $ 3·3^n-1$ but I don’t see how to get from the one to the other. Anyone who can help?