lean_workbook_plus_58536
Proved⚠️ Retired — specification defect
The Lean statement below does not encode the problem shown on this page, so its
Provedstatus carries no information about that problem. Do not import this node or use it as a dependency.
Let , let , let , and let . So all reals are either in or equal to 0. Let . And for , let ; for , let ; for , let ; for , let . Then maps to , to , to , and to . You can also check that for all .
Why this node was retired
The posted statement is
theorem lean_workbook_plus_58536 (f : ℝ → ℝ)
(h₀ : ∀ x, 0 ≤ x ∧ Int.ceil x % 2 = 1 → f x = x - 1)
(h₁ : ∀ x, 0 ≤ x ∧ (Int.ceil x % 2 = 0 ∨ x = 0) → f x = -1 - x)
(h₂ : ∀ x, x ≤ 0 ∧ Int.floor (-x) % 2 = 1 → f x = 1 + x)
(h₃ : ∀ x, x ≤ 0 ∧ (Int.floor (-x) % 2 = 0 ∨ x = 0) → f x = 1 - x)
(h₄ : ∀ x, f (f x) = -x) :
∀ x, 0 ≤ x ∧ Int.ceil x % 2 = 1 → f x = x - 1 ∧
∀ x, 0 ≤ x ∧ (Int.ceil x % 2 = 0 ∨ x = 0) → f x = -1 - x ∧
∀ x, x ≤ 0 ∧ Int.floor (-x) % 2 = 1 → f x = 1 + x ∧
∀ x, x ≤ 0 ∧ (Int.floor (-x) % 2 = 0 ∨ x = 0) → f x = 1 - x := by sorry
The posted clauses conflict at zero, replace ceilings by floors on negative inputs, and only repeat their hypotheses. The source’s particular piecewise formula also needs checking: at x=1/2 it gives f(f(x))=1/2, not−1/2.
A proof of a malformed proposition can be a correct proof of that proposition, so this is not a judgment on the accepted submission — but the Proved status must not be read as settling the problem shown above.
Proposed corrected statement
Restore the task of constructing a function with f(f(x))=−x, defining f(0)=0 separately and using disjoint nonzero pieces; verify a correct construction rather than assuming the desired equation.
Diagnosis and correction from the public Prove2Me statement audit (wamlat/prove2me-errors). The correction is natural-language mathematics and is not Lean-verified — it is a specification for a corrected node, not a drop-in replacement. No corrected replacement node exists yet.
import Mathlib.Analysis.Complex.Basic
theorem lean_workbook_plus_58536 (f : ℝ → ℝ) (h₀ : ∀ x, 0 ≤ x ∧ Int.ceil x % 2 = 1 → f x = x - 1) (h₁ : ∀ x, 0 ≤ x ∧ (Int.ceil x % 2 = 0 ∨ x = 0) → f x = -1 - x) (h₂ : ∀ x, x ≤ 0 ∧ Int.floor (-x) % 2 = 1 → f x = 1 + x) (h₃ : ∀ x, x ≤ 0 ∧ (Int.floor (-x) % 2 = 0 ∨ x = 0) → f x = 1 - x) (h₄ : ∀ x, f (f x) = -x) : ∀ x, 0 ≤ x ∧ Int.ceil x % 2 = 1 → f x = x - 1 ∧ ∀ x, 0 ≤ x ∧ (Int.ceil x % 2 = 0 ∨ x = 0) → f x = -1 - x ∧ ∀ x, x ≤ 0 ∧ Int.floor (-x) % 2 = 1 → f x = 1 + x ∧ ∀ x, x ≤ 0 ∧ (Int.floor (-x) % 2 = 0 ∨ x = 0) → f x = 1 - x := by sorry