Theorems / mh_numb_b64eac
Mathlib held-out
Number theory · medium
theorem lg_target (n : ℕ) : ∃ a b c d, a ^ 2 + b ^ 2 + c ^ 2 + d ^ 2 = n := by
- Mathlib declaration
- Nat.sum_four_squares
- Held-out module
- Mathlib.NumberTheory.SumFourSquares
- Banned modules (itself + downstream)
- 1
- Reference proof premises (reachable / held-out)
- 0 / 2
Traces
Each configuration's full record: what was retrieved, what the model wrote, what Lean said back.
Not verified1 model calls · 1 Lean checks · $0.00005
Attempts
- sample 0 · round 0Lean 3 syntax1.8 s model time
Proof cases n with m; constructor; exact ⟨0, 0, 0, m⟩
What Lean printed (this is all the model sees on repair) 4:16: error: unknown tactic 4:10: error: Invalid syntax for case analysis tactic: The `with` keyword must be followed by a tactic or by an alternative (e.g. `| zero =>`), but here it is followed by the identifier `m`.
Reference proof
Mathlib's own source for this declaration, shown for comparison. It may use lemmas the prover is not allowed to use.
/-- **Four squares theorem** -/
theorem sum_four_squares (n : ℕ) : ∃ a b c d : ℕ, a ^ 2 + b ^ 2 + c ^ 2 + d ^ 2 = n := by
-- The proof is by induction on prime factorization. The case of prime `n` was proved above,
-- the inductive step follows from `Nat.euler_four_squares`.
induction n using Nat.recOnMul with
| zero => exact ⟨0, 0, 0, 0, rfl⟩
| one => exact ⟨1, 0, 0, 0, rfl⟩
| prime p hp => exact hp.sum_four_squares
| mul m n hm hn =>
rcases hm with ⟨a, b, c, d, rfl⟩
rcases hn with ⟨w, x, y, z, rfl⟩
exact ⟨_, _, _, _, euler_four_squares _ _ _ _ _ _ _ _⟩