Be concise but rigorous. Do not invent objections. Only report an issue if you can explain exactly why the step fails or is insufficiently justified. Act as a careful mathematical referee. Review the proof below for correctness, not for style. Your task: - Find actual logical gaps, unjustified inferences, hidden assumptions, undefined objects, notation conflicts, or uses of results stronger than what was stated. - Be skeptical and precise. - Do not give a general summary first. Instructions: 1. Read the input line by line. 2. List findings first, ordered by severity. 3. For each finding, include: - the exact step or sentence, - why it does not follow, - whether it is a fatal gap or a fixable omission, - what additional argument, lemma, or hypothesis would fix it. 4. Distinguish clearly among: - Fatal gap - Fixable omission - Notation problem - Exposition issue only 5. Check specifically: - whether every object is well-defined, - whether quantifiers are correct, - whether induction hypotheses are applied legally, - whether extremal choices are justified, - whether cited theorems are used in a form strong enough for the conclusion, - whether any notation changes meaning during the proof. 6. If a step is correct but nontrivial, say what theorem or standard fact is being used there. 7. If you do not find a logical gap, say exactly: “I do not see a logical gap.” Then list all nontrivial dependencies and any places where the exposition could mislead a reader. Output format: - Findings - Nontrivial dependencies - Minor issues - Verdict Input: [paste proof]