IMO 2024 P6

Let \mathbb{Q} be the set of rational numbers. A function f : \mathbb{Q} \to \mathbb{Q} is called aquaesulian if the following property holds: for every x, y \in \mathbb{Q}, f(x + f(y)) = f(x) + y \qquad\text{or}\qquad f(f(x) + y) = x + f(y). Show that there exists an integer c such that for any aquaesulian function f there are at most c different rational numbers of the form f(r) + f(-r) for some rational number r, and find the smallest possible value of c.

Solution: c=2

open Polynomial theorem imo_2024_p6 (IsAquaesulian : (ℚ → ℚ) → Prop) (IsAquaesulian_def : ∀ f, IsAquaesulian f ↔ ∀ x y, f (x + f y) = f x + y ∨ f (f x + y) = x + f y) : IsLeast {(c : ℤ) | ∀ f, IsAquaesulian f → {(f r + f (-r)) | (r : ℚ)}.Finite ∧ {(f r + f (-r)) | (r : ℚ)}.ncard ≤ c} 2 :=
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
⊢ IsLeast {c | ∀ (f : ℚ → ℚ), IsAquaesulian f → {x | ∃ r, f r + f (-r) = x}.Finite ∧ ↑{x | ∃ r, f r + f (-r) = x}.ncard ≤ c} 2
refine_1
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
⊢ 2 ∈ {c | ∀ (f : ℚ → ℚ), IsAquaesulian f → {x | ∃ r, f r + f (-r) = x}.Finite ∧ ↑{x | ∃ r, f r + f (-r) = x}.ncard ≤ c}
refine_2
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
⊢ 2 ∈ lowerBounds {c | ∀ (f : ℚ → ℚ), IsAquaesulian f → {x | ∃ r, f r + f (-r) = x}.Finite ∧ ↑{x | ∃ r, f r + f (-r) = x}.ncard ≤ c}
refine_1
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
⊢ 2 ∈ {c | ∀ (f : ℚ → ℚ), IsAquaesulian f → {x | ∃ r, f r + f (-r) = x}.Finite ∧ ↑{x | ∃ r, f r + f (-r) = x}.ncard ≤ c}
/- Let f be an aquaesulian function with f(0) = 0. We claim that f(x) + f(-x) takes on at most two distinct values. -/
refine_1.refine_1
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
b:IsAquaesulian u
j:u 0 = 0
c:¬({x | ∃ r, u r + u (-r) = x}.Finite ∧ ↑{x | ∃ r, u r + u (-r) = x}.ncard ≤ 2)
⊢ False
refine_1.refine_2
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
b:IsAquaesulian u
j:¬u 0 = 0
⊢ {x | ∃ r, u r + u (-r) = x}.Finite ∧ ↑{x | ∃ r, u r + u (-r) = x}.ncard ≤ 2
refine_1.refine_1
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
b:IsAquaesulian u
j:u 0 = 0
c:¬({x | ∃ r, u r + u (-r) = x}.Finite ∧ ↑{x | ∃ r, u r + u (-r) = x}.ncard ≤ 2)
⊢ False
-- If f(x) + f(-x) = 0 for all x, we are done.
refine_1.refine_1
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
b:IsAquaesulian u
j:u 0 = 0
c:¬({x | ∃ r, u r + u (-r) = x}.Finite ∧ ↑{x | ∃ r, u r + u (-r) = x}.ncard ≤ 2)
this:{J | ∃ k, u k + u (-k) = J} ⊆ {0}
⊢ False
this
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
b:IsAquaesulian u
j:u 0 = 0
c:¬({x | ∃ r, u r + u (-r) = x}.Finite ∧ ↑{x | ∃ r, u r + u (-r) = x}.ncard ≤ 2)
⊢ {J | ∃ k, u k + u (-k) = J} ⊆ {0}
refine_1.refine_1
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
b:IsAquaesulian u
j:u 0 = 0
c:¬({x | ∃ r, u r + u (-r) = x}.Finite ∧ ↑{x | ∃ r, u r + u (-r) = x}.ncard ≤ 2)
this:{J | ∃ k, u k + u (-k) = J} ⊆ {0}
⊢ False
All goals completed! 🐙
-- Otherwise, take a, k such that f(a) + f(-a) = k ≠ 0.
this.intro
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
b:IsAquaesulian u
j:u 0 = 0
c:¬({x | ∃ r, u r + u (-r) = x}.Finite ∧ ↑{x | ∃ r, u r + u (-r) = x}.ncard ≤ 2)
a:ℚ
⊢ u a + u (-a) ∈ {0}
this.intro
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
b:IsAquaesulian u
j:u 0 = 0
a:ℚ
c:u a + u (-a) ∉ {0}
⊢ {x | ∃ r, u r + u (-r) = x}.Finite ∧ ↑{x | ∃ r, u r + u (-r) = x}.ncard ≤ 2
this.intro
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
a:ℚ
b:∀ (x y : ℚ), u (x + u y) = u x + y ∨ u (u x + y) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
⊢ {x | ∃ r, u r + u (-r) = x}.Finite ∧ {x | ∃ r, u r + u (-r) = x}.ncard ≤ 2
-- If we can show that f(x) + f(-x) = 0 or k for all x, then we are done.
this.intro
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
a:ℚ
b:∀ (x y : ℚ), u (x + u y) = u x + y ∨ u (u x + y) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
this:{U | ∃ examples6, u examples6 + u (-examples6) = U} ⊆ {0, u a + u (-a)}
⊢ {x | ∃ r, u r + u (-r) = x}.Finite ∧ {x | ∃ r, u r + u (-r) = x}.ncard ≤ 2
this
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
a:ℚ
b:∀ (x y : ℚ), u (x + u y) = u x + y ∨ u (u x + y) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
⊢ {U | ∃ examples6, u examples6 + u (-examples6) = U} ⊆ {0, u a + u (-a)}
this.intro
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
a:ℚ
b:∀ (x y : ℚ), u (x + u y) = u x + y ∨ u (u x + y) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
this:{U | ∃ examples6, u examples6 + u (-examples6) = U} ⊆ {0, u a + u (-a)}
⊢ {x | ∃ r, u r + u (-r) = x}.Finite ∧ {x | ∃ r, u r + u (-r) = x}.ncard ≤ 2
All goals completed! 🐙
-- We now proceed to show that f(x) + f(-x) = 0 or k for all x.
this.intro
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
a:ℚ
b:∀ (x y : ℚ), u (x + u y) = u x + y ∨ u (u x + y) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
hz:ℚ
⊢ u hz + u (-hz) ∈ {0, u a + u (-a)}
-- We have f(x + f(a)) = f(x) + a or f(f(x) + a) = x + f(a).
this.intro.inl
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
a:ℚ
b:∀ (x y : ℚ), u (x + u y) = u x + y ∨ u (u x + y) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
hz:ℚ
h✝:u (hz + u a) = u hz + a
⊢ u hz + u (-hz) ∈ {0, u a + u (-a)}
this.intro.inr
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
a:ℚ
b:∀ (x y : ℚ), u (x + u y) = u x + y ∨ u (u x + y) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
hz:ℚ
h✝:u (u hz + a) = hz + u a
⊢ u hz + u (-hz) ∈ {0, u a + u (-a)}
this.intro.inl
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
a:ℚ
b:∀ (x y : ℚ), u (x + u y) = u x + y ∨ u (u x + y) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
hz:ℚ
h✝:u (hz + u a) = u hz + a
⊢ u hz + u (-hz) ∈ {0, u a + u (-a)}
-- Step "f.": First, consider the case where f(x + f(a)) = f(x) + a. /- Step "i.": We have f(-a + f(x + f(a))) = f(-a) + (x + f(a)) or f(f(-a) + (x + f(a))) = -a + f(x + f(a)). -/
this.intro.inl
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
a:ℚ
b:∀ (x y : ℚ), u (x + u y) = u x + y ∨ u (u x + y) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
hz:ℚ
h✝:u (hz + u a) = u hz + a
this:u (-a + u (hz + u a)) = u (-a) + (hz + u a) ∨ u (u (-a) + (hz + u a)) = -a + u (hz + u a)
⊢ u hz + u (-hz) ∈ {0, u a + u (-a)}
/- Step "ii.": We have f(x + f(x)) = f(x) + x or f(f(x) + x) = x + f(x). This simplifies to just f(x + f(x)) = x + f(x). -/
this.intro.inl
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
a:ℚ
b:∀ (x y : ℚ), u (x + u y) = u x + y ∨ u (u x + y) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
hz:ℚ
h✝:u (hz + u a) = u hz + a
this✝:u (-a + u (hz + u a)) = u (-a) + (hz + u a) ∨ u (u (-a) + (hz + u a)) = -a + u (hz + u a)
this:u (hz + u hz) = u hz + hz ∨ u (u hz + hz) = hz + u hz
⊢ u hz + u (-hz) ∈ {0, u a + u (-a)}
/- Step "iii.": Substituting step “f.” into step “i.” and simplifying gives f(f(x)) = x + f(a) + f(-a) or f(x + f(a) + f(-a)) = f(x). -/
this.intro.inl
IsAquaesulian:(ℚ → ℚ) → Prop
u:ℚ → ℚ
a:ℚ
hz:ℚ
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = y + f x ∨ f (y + f x) = x + f y
b:∀ (x y : ℚ), u (x + u y) = y + u x ∨ u (y + u x) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
h✝:u (hz + u a) = a + u hz
this✝:u (u hz) = hz + u a + u (-a) ∨ u (hz + u a + u (-a)) = u hz
this:u (hz + u hz) = hz + u hz
⊢ u hz + u (-hz) = 0 ∨ u hz + u (-hz) = u a + u (-a)
/- Step "iiii.": We have f(-x + f(x + f(x))) = f(-x) + x + f(x) or f(f(-x) + x + f(x)) = -x + f(x + f(x)). -/
this.intro.inl
IsAquaesulian:(ℚ → ℚ) → Prop
u:ℚ → ℚ
a:ℚ
hz:ℚ
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = y + f x ∨ f (y + f x) = x + f y
b:∀ (x y : ℚ), u (x + u y) = y + u x ∨ u (y + u x) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
h✝:u (hz + u a) = a + u hz
this✝¹:u (u hz) = hz + u a + u (-a) ∨ u (hz + u a + u (-a)) = u hz
this✝:u (hz + u hz) = hz + u hz
this:u (-hz + u (hz + u hz)) = hz + u hz + u (-hz) ∨ u (hz + u hz + u (-hz)) = -hz + u (hz + u hz)
⊢ u hz + u (-hz) = 0 ∨ u hz + u (-hz) = u a + u (-a)
/- Substituting step “ii.” into step “iv.”, we have f(f(x)) = x + f(-x) + f(x) or f(x + f(-x) + f(x)) = f(x). -/
this.intro.inl
IsAquaesulian:(ℚ → ℚ) → Prop
u:ℚ → ℚ
a:ℚ
hz:ℚ
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = y + f x ∨ f (y + f x) = x + f y
b:∀ (x y : ℚ), u (x + u y) = y + u x ∨ u (y + u x) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
h✝:u (hz + u a) = a + u hz
this✝¹:u (u hz) = hz + (u a + u (-a)) ∨ u (hz + (u a + u (-a))) = u hz
this✝:u (hz + u hz) = hz + u hz
this:u (u hz) = hz + (u hz + u (-hz)) ∨ u (hz + (u hz + u (-hz))) = u hz
⊢ u hz + u (-hz) = 0 ∨ u hz + u (-hz) = u a + u (-a)
this.intro.inl.inl
IsAquaesulian:(ℚ → ℚ) → Prop
u:ℚ → ℚ
a:ℚ
hz:ℚ
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = y + f x ∨ f (y + f x) = x + f y
b:∀ (x y : ℚ), u (x + u y) = y + u x ∨ u (y + u x) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
h✝¹:u (hz + u a) = a + u hz
this✝:u (u hz) = hz + (u a + u (-a)) ∨ u (hz + (u a + u (-a))) = u hz
this:u (hz + u hz) = hz + u hz
h✝:u (u hz) = hz + (u hz + u (-hz))
⊢ u hz + u (-hz) = 0 ∨ u hz + u (-hz) = u a + u (-a)
this.intro.inl.inr
IsAquaesulian:(ℚ → ℚ) → Prop
u:ℚ → ℚ
a:ℚ
hz:ℚ
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = y + f x ∨ f (y + f x) = x + f y
b:∀ (x y : ℚ), u (x + u y) = y + u x ∨ u (y + u x) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
h✝¹:u (hz + u a) = a + u hz
this✝:u (u hz) = hz + (u a + u (-a)) ∨ u (hz + (u a + u (-a))) = u hz
this:u (hz + u hz) = hz + u hz
h✝:u (hz + (u hz + u (-hz))) = u hz
⊢ u hz + u (-hz) = 0 ∨ u hz + u (-hz) = u a + u (-a)
this.intro.inl.inl
IsAquaesulian:(ℚ → ℚ) → Prop
u:ℚ → ℚ
a:ℚ
hz:ℚ
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = y + f x ∨ f (y + f x) = x + f y
b:∀ (x y : ℚ), u (x + u y) = y + u x ∨ u (y + u x) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
h✝¹:u (hz + u a) = a + u hz
this✝:u (u hz) = hz + (u a + u (-a)) ∨ u (hz + (u a + u (-a))) = u hz
this:u (hz + u hz) = hz + u hz
h✝:u (u hz) = hz + (u hz + u (-hz))
⊢ u hz + u (-hz) = 0 ∨ u hz + u (-hz) = u a + u (-a)
-- Step "vi.": First, consider the case where f(f(x)) = x + f(-x) + f(x). /- Step "vi.1" In this case, step “iii.” simplifies to f(-x) + f(x) = f(a) + f(-a) or f(x + f(a) + f(-a)) = f(x). In the first case we are done, so we focus only on the second case. -/
this.intro.inl.inl
IsAquaesulian:(ℚ → ℚ) → Prop
u:ℚ → ℚ
a:ℚ
hz:ℚ
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = y + f x ∨ f (y + f x) = x + f y
b:∀ (x y : ℚ), u (x + u y) = y + u x ∨ u (y + u x) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
h✝¹:u (hz + u a) = a + u hz
this✝:u hz + u (-hz) = u a + u (-a) ∨ u (hz + (u a + u (-a))) = u hz
this:u (hz + u hz) = hz + u hz
h✝:u (u hz) = hz + (u hz + u (-hz))
⊢ u hz + u (-hz) = 0 ∨ u hz + u (-hz) = u a + u (-a)
/- Step "vi.2": We have f(x + f(x + f(a) + f(-a))) = f(x) + x + (f(a) + f(-a)) or f(f(x) + x + f(a) + f(-a)) = x + f(x + f(a) + f(-a)). -/
this.intro.inl.inl
IsAquaesulian:(ℚ → ℚ) → Prop
u:ℚ → ℚ
a:ℚ
hz:ℚ
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = y + f x ∨ f (y + f x) = x + f y
b:∀ (x y : ℚ), u (x + u y) = y + u x ∨ u (y + u x) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
h✝¹:u (hz + u a) = a + u hz
this✝¹:u hz + u (-hz) = u a + u (-a) ∨ u (hz + (u a + u (-a))) = u hz
this✝:u (hz + u hz) = hz + u hz
h✝:u (u hz) = hz + (u hz + u (-hz))
this:u (hz + u (hz + (u a + u (-a)))) = hz + (u a + u (-a)) + u hz ∨ u (hz + (u a + u (-a)) + u hz) = hz + u (hz + (u a + u (-a)))
⊢ u hz + u (-hz) = 0 ∨ u hz + u (-hz) = u a + u (-a)
/- Step "vi.3": We have f(x + f(a) + f(-a) + f(x + f(a) + f(-a))) = x + f(a) + f(-a) + f(x + f(a) + f(-a)). -/
this.intro.inl.inl
IsAquaesulian:(ℚ → ℚ) → Prop
u:ℚ → ℚ
a:ℚ
hz:ℚ
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = y + f x ∨ f (y + f x) = x + f y
b:∀ (x y : ℚ), u (x + u y) = y + u x ∨ u (y + u x) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
h✝¹:u (hz + u a) = a + u hz
this✝²:u hz + u (-hz) = u a + u (-a) ∨ u (hz + (u a + u (-a))) = u hz
this✝¹:u (hz + u hz) = hz + u hz
h✝:u (u hz) = hz + (u hz + u (-hz))
this✝:u (hz + u (hz + (u a + u (-a)))) = hz + (u a + u (-a)) + u hz ∨ u (hz + (u a + u (-a)) + u hz) = hz + u (hz + (u a + u (-a)))
this:u (hz + (u a + u (-a)) + u (hz + (u a + u (-a)))) = hz + (u a + u (-a)) + u (hz + (u a + u (-a))) ∨ u (hz + (u a + u (-a)) + u (hz + (u a + u (-a)))) = hz + (u a + u (-a)) + u (hz + (u a + u (-a)))
⊢ u hz + u (-hz) = 0 ∨ u hz + u (-hz) = u a + u (-a)
/- Step "vi.4": Substituting step “vi.1.” into step “vi.2” gives f(x +f(x))=f(x)+x+(f(a)+f(-a)) or f(f(x)+x+f(a)+f(-a))=x+f(x). Step "vi.5" Substituting step “vi.1.” into step “vi.3.” gives f(x+f(a)+f(-a)+f(x))=x+f(a)+f(-a)+f(x). Substituting step “vi.5.” into step “vi.4.” and simplifying gives f(x +f(x))=f(x)+x+(f(a)+f(-a)) or f(a)+f(-a)=0. The former case simplifies via step “ii.” to f(a)+f(-a)=0, so in both cases we have a contradiction. -/ use .inr$ by_contra$
IsAquaesulian:(ℚ → ℚ) → Prop
u:ℚ → ℚ
a:ℚ
hz:ℚ
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = y + f x ∨ f (y + f x) = x + f y
b:∀ (x y : ℚ), u (x + u y) = y + u x ∨ u (y + u x) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
h✝¹:u (hz + u a) = a + u hz
this✝²:u hz + u (-hz) = u a + u (-a) ∨ u (hz + (u a + u (-a))) = u hz
this✝¹:u (hz + u hz) = hz + u hz
h✝:u (u hz) = hz + (u hz + u (-hz))
this✝:u (hz + u (hz + (u a + u (-a)))) = hz + (u a + u (-a)) + u hz ∨ u (hz + (u a + u (-a)) + u hz) = hz + u (hz + (u a + u (-a)))
this:u (hz + (u a + u (-a)) + u (hz + (u a + u (-a)))) = hz + (u a + u (-a)) + u (hz + (u a + u (-a))) ∨ u (hz + (u a + u (-a)) + u (hz + (u a + u (-a)))) = hz + (u a + u (-a)) + u (hz + (u a + u (-a)))
⊢ ¬u hz + u (-hz) = u a + u (-a) → False
All goals completed! 🐙
-- Step "vii." Now, consider the case where f(x + f(-x) + f(x)) = f(x). /- Step "vii.1": We have f(x + f(x + f(-x) + f(x))) = f(x) + x + f(-x) + f(x) or f(f(x) + x + f(-x) + f(x)) = x + f(x + f(-x) + f(x)). -/
this.intro.inl.inr
IsAquaesulian:(ℚ → ℚ) → Prop
u:ℚ → ℚ
a:ℚ
hz:ℚ
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = y + f x ∨ f (y + f x) = x + f y
b:∀ (x y : ℚ), u (x + u y) = y + u x ∨ u (y + u x) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
h✝¹:u (hz + u a) = a + u hz
this✝¹:u (u hz) = hz + (u a + u (-a)) ∨ u (hz + (u a + u (-a))) = u hz
this✝:u (hz + u hz) = hz + u hz
h✝:u (hz + (u hz + u (-hz))) = u hz
this:u (hz + u (hz + (u hz + u (-hz)))) = hz + (u hz + u (-hz)) + u hz ∨ u (hz + (u hz + u (-hz)) + u hz) = hz + u (hz + (u hz + u (-hz)))
⊢ u hz + u (-hz) = 0 ∨ u hz + u (-hz) = u a + u (-a)
/- Step "vii.2": We have f(f(x + f(-x) + f(x)) + x + f(-x) + f(x)) = x + f(-x) + f(x) + f(x + f(-x) + f(x)). Step "vii.3": Substituting step “vii.” into step “vii.2.” gives f(f(x)+x+f(-x)+f(x))= x+f(-x)+f(x)+f(x). Substituting step “vii.” into step “1.” gives f(x+f(x))=f(x)+x+f(-x)+f(x) or f(f(x)+x+f(-x)+f(x))=x+f(x). In the first case we can substitute in step “ii.” and simplify to f(-x)+f(x)=0 as desired. In the second case we can substitute in step “vii.3” to obtain f(-x)+f(x)=0 again as desired. -/ cases b (hz+(u hz+u (-hz)))$ hz+(u hz+u (-hz))with|_
this.intro.inl.inr.inr
IsAquaesulian:(ℚ → ℚ) → Prop
u:ℚ → ℚ
a:ℚ
hz:ℚ
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = y + f x ∨ f (y + f x) = x + f y
b:∀ (x y : ℚ), u (x + u y) = y + u x ∨ u (y + u x) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
h✝²:u (hz + u a) = a + u hz
this✝¹:u (u hz) = hz + (u a + u (-a)) ∨ u (hz + (u a + u (-a))) = u hz
this✝:u (hz + u hz) = hz + u hz
h✝¹:u (hz + (u hz + u (-hz))) = u hz
this:u (hz + u (hz + (u hz + u (-hz)))) = hz + (u hz + u (-hz)) + u hz ∨ u (hz + (u hz + u (-hz)) + u hz) = hz + u (hz + (u hz + u (-hz)))
h✝:u (hz + (u hz + u (-hz)) + u (hz + (u hz + u (-hz)))) = hz + (u hz + u (-hz)) + u (hz + (u hz + u (-hz)))
⊢ u hz + u (-hz) = 0 ∨ u hz + u (-hz) = u a + u (-a)
All goals completed! 🐙
-- Step "g.": Now, consider the case where f(f(x) + a) = x + f(a). /- Step "i.": We have f(-x + f(f(x) + a)) = f(-x) + (f(x) + a) or f(f(-x) + f(x) + a) = -x + f(f(x) + a). -/
this.intro.inr
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
a:ℚ
b:∀ (x y : ℚ), u (x + u y) = u x + y ∨ u (u x + y) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
hz:ℚ
h✝:u (u hz + a) = hz + u a
this:u (-hz + u (u hz + a)) = u (-hz) + (u hz + a) ∨ u (u (-hz) + (u hz + a)) = -hz + u (u hz + a)
⊢ u hz + u (-hz) ∈ {0, u a + u (-a)}
this.intro.inr
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
a:ℚ
b:∀ (x y : ℚ), u (x + u y) = u x + y ∨ u (u x + y) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
hz:ℚ
h✝:u (u hz + a) = hz + u a
this✝:u (-hz + u (u hz + a)) = u (-hz) + (u hz + a) ∨ u (u (-hz) + (u hz + a)) = -hz + u (u hz + a)
this:∀ (y : ℚ), u (-a + u y) = u (-a) + y ∨ u (u (-a) + y) = -a + u y
⊢ u hz + u (-hz) ∈ {0, u a + u (-a)}
/- Step "ii." We have f(-a + f(f(x) + a)) = f(-a) + (f(x) + a) or f(f(-a) + (f(x) + a)) = -a + f(f(x) + a). -/
this.intro.inr
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
a:ℚ
b:∀ (x y : ℚ), u (x + u y) = u x + y ∨ u (u x + y) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
hz:ℚ
h✝:u (u hz + a) = hz + u a
this✝:u (-hz + u (u hz + a)) = u (-hz) + (u hz + a) ∨ u (u (-hz) + (u hz + a)) = -hz + u (u hz + a)
this:u (-a + u (u hz + a)) = u (-a) + (u hz + a) ∨ u (u (-a) + (u hz + a)) = -a + u (u hz + a)
⊢ u hz + u (-hz) ∈ {0, u a + u (-a)}
/- Step "iii.": Substituting step “g.” into step “i.” gives f(f(a)) = f(-x) + (f(x) + a) or f(f(-x) + f(x) + a) = f(a). Step "iv.": Substituting step “g.” into step “ii.” gives f(-a + x + f(a)) = f(-a) + f(x) + a or f(f(-a) + f(x) + a) = -a + x + f(a). -/
this.intro.inr
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
a:ℚ
b:∀ (x y : ℚ), u (x + u y) = u x + y ∨ u (u x + y) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
hz:ℚ
h✝:u (u hz + a) = hz + u a
this✝:u (u a) = u (-hz) + u hz + a ∨ u (u (-hz) + u hz + a) = u a
this:u (-a + hz + u a) = u (-a) + u hz + a ∨ u (u (-a) + u hz + a) = -a + hz + u a
⊢ u hz + u (-hz) = 0 ∨ u hz + u (-hz) = u a + u (-a)
this.intro.inr
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
a:ℚ
b:∀ (x y : ℚ), u (x + u y) = u x + y ∨ u (u x + y) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
hz:ℚ
h✝:u (u hz + a) = hz + u a
this✝¹:u (u a) = u (-hz) + u hz + a ∨ u (u (-hz) + u hz + a) = u a
this✝:u (-a + hz + u a) = u (-a) + u hz + a ∨ u (u (-a) + u hz + a) = -a + hz + u a
this:∀ (y : ℚ), u (0 + u y) = u 0 + y ∨ u (u 0 + y) = 0 + u y
⊢ u hz + u (-hz) = 0 ∨ u hz + u (-hz) = u a + u (-a)
this.intro.inr
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
a:ℚ
b:∀ (x y : ℚ), u (x + u y) = u x + y ∨ u (u x + y) = x + u y
j:u 0 = 0
c:¬u a + u (-a) = 0
hz:ℚ
h✝:u (u hz + a) = hz + u a
this✝²:u (u a) = u (-hz) + u hz + a ∨ u (u (-hz) + u hz + a) = u a
this✝¹:u (-a + hz + u a) = u (-a) + u hz + a ∨ u (u (-a) + u hz + a) = -a + hz + u a
this✝:∀ (y : ℚ), u (0 + u y) = u 0 + y ∨ u (u 0 + y) = 0 + u y
this:∀ (x y : ℚ), u (x + u y) = u x + y ∨ u (u x + y) = x + u y
⊢ u hz + u (-hz) = 0 ∨ u hz + u (-hz) = u a + u (-a)
-- Step "v.": We have f(a + f(a)) = a + f(a).
this.intro.inr
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
a:ℚ
j:u 0 = 0
c:¬u a + u (-a) = 0
hz:ℚ
h✝:u (u hz + a) = hz + u a
this✝²:u (u a) = u (-hz) + u hz + a ∨ u (u (-hz) + u hz + a) = u a
this✝¹:u (-a + hz + u a) = u (-a) + u hz + a ∨ u (u (-a) + u hz + a) = -a + hz + u a
this✝:∀ (y : ℚ), u (0 + u y) = u 0 + y ∨ u (u 0 + y) = 0 + u y
this:∀ (x y : ℚ), u (x + u y) = u x + y ∨ u (u x + y) = x + u y
b:u (a + u a) = u a + a ∨ u (u a + a) = a + u a
⊢ u hz + u (-hz) = 0 ∨ u hz + u (-hz) = u a + u (-a)
this.intro.inr
IsAquaesulian:(ℚ → ℚ) → Prop
u:ℚ → ℚ
a:ℚ
hz:ℚ
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = y + f x ∨ f (y + f x) = x + f y
j:u 0 = 0
c:¬u a + u (-a) = 0
h✝:u (a + u hz) = hz + u a
this✝¹:u (u a) = a + (u hz + u (-hz)) ∨ u (a + (u hz + u (-hz))) = u a
this✝:u (u a + (hz + -a)) = a + (u hz + u (-a)) ∨ u (a + (u hz + u (-a))) = u a + (hz + -a)
this:∀ (x y : ℚ), u (x + u y) = y + u x ∨ u (y + u x) = x + u y
b:u (a + u a) = a + u a
⊢ u hz + u (-hz) = 0 ∨ u hz + u (-hz) = u a + u (-a)
/- Step "vi.": We have f(-a + f(a + f(a))) = f(-a) + a + f(a) or f(f(-a) + a + f(a)) = -a + f(a + f(a)). -/
this.intro.inr
IsAquaesulian:(ℚ → ℚ) → Prop
u:ℚ → ℚ
a:ℚ
hz:ℚ
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = y + f x ∨ f (y + f x) = x + f y
j:u 0 = 0
c:¬u a + u (-a) = 0
h✝:u (a + u hz) = hz + u a
this✝²:u (u a) = a + (u hz + u (-hz)) ∨ u (a + (u hz + u (-hz))) = u a
this✝¹:u (u a + (hz + -a)) = a + (u hz + u (-a)) ∨ u (a + (u hz + u (-a))) = u a + (hz + -a)
this✝:∀ (x y : ℚ), u (x + u y) = y + u x ∨ u (y + u x) = x + u y
b:u (a + u a) = a + u a
this:u (-a + u (a + u a)) = a + u a + u (-a) ∨ u (a + u a + u (-a)) = -a + u (a + u a)
⊢ u hz + u (-hz) = 0 ∨ u hz + u (-hz) = u a + u (-a)
/- Step "vii.": Substituting step “v.” into step “vi.” and simplifying gives f(f(a)) = a + f(a) + f(-a) or f(a + f(a) + f(-a)) = f(a). -/
this.intro.inr
IsAquaesulian:(ℚ → ℚ) → Prop
u:ℚ → ℚ
a:ℚ
hz:ℚ
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = y + f x ∨ f (y + f x) = x + f y
j:u 0 = 0
c:¬u a + u (-a) = 0
h✝:u (a + u hz) = hz + u a
this✝²:u (u a) = a + (u hz + u (-hz)) ∨ u (a + (u hz + u (-hz))) = u a
this✝¹:u (u a + (hz + -a)) = a + (u hz + u (-a)) ∨ u (a + (u hz + u (-a))) = u a + (hz + -a)
this✝:∀ (x y : ℚ), u (x + u y) = y + u x ∨ u (y + u x) = x + u y
b:u (a + u a) = a + u a
this:u (u a) = a + (u a + u (-a)) ∨ u (a + (u a + u (-a))) = u a
⊢ u hz + u (-hz) = 0 ∨ u hz + u (-hz) = u a + u (-a)
this.intro.inr.inl
IsAquaesulian:(ℚ → ℚ) → Prop
u:ℚ → ℚ
a:ℚ
hz:ℚ
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = y + f x ∨ f (y + f x) = x + f y
j:u 0 = 0
c:¬u a + u (-a) = 0
h✝¹:u (a + u hz) = hz + u a
this✝¹:u (u a) = a + (u hz + u (-hz)) ∨ u (a + (u hz + u (-hz))) = u a
this✝:u (u a + (hz + -a)) = a + (u hz + u (-a)) ∨ u (a + (u hz + u (-a))) = u a + (hz + -a)
this:∀ (x y : ℚ), u (x + u y) = y + u x ∨ u (y + u x) = x + u y
b:u (a + u a) = a + u a
h✝:u (u a) = a + (u a + u (-a))
⊢ u hz + u (-hz) = 0 ∨ u hz + u (-hz) = u a + u (-a)
this.intro.inr.inr
IsAquaesulian:(ℚ → ℚ) → Prop
u:ℚ → ℚ
a:ℚ
hz:ℚ
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = y + f x ∨ f (y + f x) = x + f y
j:u 0 = 0
c:¬u a + u (-a) = 0
h✝¹:u (a + u hz) = hz + u a
this✝¹:u (u a) = a + (u hz + u (-hz)) ∨ u (a + (u hz + u (-hz))) = u a
this✝:u (u a + (hz + -a)) = a + (u hz + u (-a)) ∨ u (a + (u hz + u (-a))) = u a + (hz + -a)
this:∀ (x y : ℚ), u (x + u y) = y + u x ∨ u (y + u x) = x + u y
b:u (a + u a) = a + u a
h✝:u (a + (u a + u (-a))) = u a
⊢ u hz + u (-hz) = 0 ∨ u hz + u (-hz) = u a + u (-a)
this.intro.inr.inl
IsAquaesulian:(ℚ → ℚ) → Prop
u:ℚ → ℚ
a:ℚ
hz:ℚ
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = y + f x ∨ f (y + f x) = x + f y
j:u 0 = 0
c:¬u a + u (-a) = 0
h✝¹:u (a + u hz) = hz + u a
this✝¹:u (u a) = a + (u hz + u (-hz)) ∨ u (a + (u hz + u (-hz))) = u a
this✝:u (u a + (hz + -a)) = a + (u hz + u (-a)) ∨ u (a + (u hz + u (-a))) = u a + (hz + -a)
this:∀ (x y : ℚ), u (x + u y) = y + u x ∨ u (y + u x) = x + u y
b:u (a + u a) = a + u a
h✝:u (u a) = a + (u a + u (-a))
⊢ u hz + u (-hz) = 0 ∨ u hz + u (-hz) = u a + u (-a)
-- Step "viii.": First, consider the case where f(f(a)) = a + f(a) + f(-a). /- Step "viii.1": In this case, step “iii.” simplifies to f(a) + f(-a) = f(-x) + f(x) or f(f(-x) + f(x) + a) = f(a). In the first case we are done, so we focus only on the second case. -/
this.intro.inr.inl
IsAquaesulian:(ℚ → ℚ) → Prop
u:ℚ → ℚ
a:ℚ
hz:ℚ
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = y + f x ∨ f (y + f x) = x + f y
j:u 0 = 0
c:¬u a + u (-a) = 0
h✝¹:u (a + u hz) = hz + u a
this✝¹:u a + u (-a) = u hz + u (-hz) ∨ u (a + (u hz + u (-hz))) = u a
this✝:u (u a + (hz + -a)) = a + (u hz + u (-a)) ∨ u (a + (u hz + u (-a))) = u a + (hz + -a)
this:∀ (x y : ℚ), u (x + u y) = y + u x ∨ u (y + u x) = x + u y
b:u (a + u a) = a + u a
h✝:u (u a) = a + (u a + u (-a))
⊢ u hz + u (-hz) = 0 ∨ u hz + u (-hz) = u a + u (-a)
this.intro.inr.inl
IsAquaesulian:(ℚ → ℚ) → Prop
u:ℚ → ℚ
a:ℚ
hz:ℚ
j:u 0 = 0
c:¬u a + u (-a) = 0
h✝¹:u (a + u hz) = hz + u a
this✝¹:u a + u (-a) = u hz + u (-hz) ∨ u (a + (u hz + u (-hz))) = u a
this✝:u (u a + (hz + -a)) = a + (u hz + u (-a)) ∨ u (a + (u hz + u (-a))) = u a + (hz + -a)
this:∀ (x y : ℚ), u (x + u y) = y + u x ∨ u (y + u x) = x + u y
b:u (a + u a) = a + u a
h✝:u (u a) = a + (u a + u (-a))
IsAquaesulian_def:u hz + u (-hz) ≠ 0 ∧ u hz + u (-hz) ≠ u a + u (-a)
⊢ ∃ f, (IsAquaesulian f ∧ ∃ x y, f (x + f y) ≠ y + f x ∧ f (y + f x) ≠ x + f y) ∨ ¬IsAquaesulian f ∧ ∀ (x y : ℚ), f (x + f y) = y + f x ∨ f (y + f x) = x + f y
this.intro.inr.inl
IsAquaesulian:(ℚ → ℚ) → Prop
u:ℚ → ℚ
a:ℚ
hz:ℚ
j:u 0 = 0
c:¬u a + u (-a) = 0
h✝¹:u (a + u hz) = hz + u a
this✝¹:u a + u (-a) = u hz + u (-hz) ∨ u (a + (u hz + u (-hz))) = u a
this✝:u (u a + (hz + -a)) = a + (u hz + u (-a)) ∨ u (a + (u hz + u (-a))) = u a + (hz + -a)
this:∀ (x y : ℚ), u (x + u y) = y + u x ∨ u (y + u x) = x + u y
b:u (a + u a) = a + u a
h✝:u (u a) = a + (u a + u (-a))
IsAquaesulian_def:¬u hz + u (-hz) = 0 ∧ ¬u hz + u (-hz) = u a + u (-a)
⊢ ∃ f, (IsAquaesulian f ∧ ∃ x y, ¬f (x + f y) = y + f x ∧ ¬f (y + f x) = x + f y) ∨ ¬IsAquaesulian f ∧ ∀ (x y : ℚ), f (x + f y) = y + f x ∨ f (y + f x) = x + f y
this.intro.inr.inl
IsAquaesulian:(ℚ → ℚ) → Prop
u:ℚ → ℚ
a:ℚ
hz:ℚ
j:u 0 = 0
c:¬u a + u (-a) = 0
h✝¹:u (a + u hz) = hz + u a
this✝¹:u a + u (-a) = u hz + u (-hz) ∨ u (a + (u hz + u (-hz))) = u a
this✝:u (u a + (hz + -a)) = a + (u hz + u (-a)) ∨ u (a + (u hz + u (-a))) = u a + (hz + -a)
this:∀ (x y : ℚ), u (x + u y) = y + u x ∨ u (y + u x) = x + u y
b:u (a + u a) = a + u a
h✝:u (u a) = a + (u a + u (-a))
IsAquaesulian_def:¬u hz + u (-hz) = 0 ∧ ¬u hz + u (-hz) = u a + u (-a)
⊢ False
/- Step "viii.2": We have f(a + f(a + (f(x) + f(-x)))) = a + (f(x) + f(-x)) + f(a) or f(a + (f(x) + f(-x)) + f(a)) = a + f(a + (f(x) + f(-x))). -/
this.intro.inr.inl
IsAquaesulian:(ℚ → ℚ) → Prop
u:ℚ → ℚ
a:ℚ
hz:ℚ
j:u 0 = 0
c:¬u a + u (-a) = 0
h✝¹:u (a + u hz) = hz + u a
this✝²:u a + u (-a) = u hz + u (-hz) ∨ u (a + (u hz + u (-hz))) = u a
this✝¹:u (u a + (hz + -a)) = a + (u hz + u (-a)) ∨ u (a + (u hz + u (-a))) = u a + (hz + -a)
this✝:∀ (x y : ℚ), u (x + u y) = y + u x ∨ u (y + u x) = x + u y
b:u (a + u a) = a + u a
h✝:u (u a) = a + (u a + u (-a))
IsAquaesulian_def:¬u hz + u (-hz) = 0 ∧ ¬u hz + u (-hz) = u a + u (-a)
this:u (a + u (a + (u hz + u (-hz)))) = a + (u hz + u (-hz)) + u a ∨ u (a + (u hz + u (-hz)) + u a) = a + u (a + (u hz + u (-hz)))
⊢ False
this.intro.inr.inl
IsAquaesulian:(ℚ → ℚ) → Prop
u:ℚ → ℚ
a:ℚ
hz:ℚ
j:u 0 = 0
c:¬u a + u (-a) = 0
h✝¹:u (a + u hz) = hz + u a
this✝²:u (a + (u hz + u (-hz))) = u a
this✝¹:u (u a + (hz + -a)) = a + (u hz + u (-a)) ∨ u (a + (u hz + u (-a))) = u a + (hz + -a)
this✝:∀ (x y : ℚ), u (x + u y) = y + u x ∨ u (y + u x) = x + u y
b:u (a + u a) = a + u a
h✝:u (u a) = a + (u a + u (-a))
IsAquaesulian_def:¬u hz + u (-hz) = 0 ∧ ¬u hz + u (-hz) = u a + u (-a)
this:u (a + (u hz + u (-hz)) + u a) = a + u a
⊢ False
/- Step "viii.3": We have f(a + f(x) + f(-x) + f(a + f(x) + f(-x))) = a + f(x) + f(-x) + f(a + f(x) + f(-x)). -/
this.intro.inr.inl
IsAquaesulian:(ℚ → ℚ) → Prop
u:ℚ → ℚ
a:ℚ
hz:ℚ
j:u 0 = 0
c:¬u a + u (-a) = 0
h✝¹:u (a + u hz) = hz + u a
this✝³:u (a + (u hz + u (-hz))) = u a
this✝²:u (u a + (hz + -a)) = a + (u hz + u (-a)) ∨ u (a + (u hz + u (-a))) = u a + (hz + -a)
this✝¹:∀ (x y : ℚ), u (x + u y) = y + u x ∨ u (y + u x) = x + u y
b:u (a + u a) = a + u a
h✝:u (u a) = a + (u a + u (-a))
IsAquaesulian_def:¬u hz + u (-hz) = 0 ∧ ¬u hz + u (-hz) = u a + u (-a)
this✝:u (a + (u hz + u (-hz)) + u a) = a + u a
this:u (a + (u hz + u (-hz)) + u (a + (u hz + u (-hz)))) = a + (u hz + u (-hz)) + u (a + (u hz + u (-hz))) ∨ u (a + (u hz + u (-hz)) + u (a + (u hz + u (-hz)))) = a + (u hz + u (-hz)) + u (a + (u hz + u (-hz)))
⊢ False
/- Step "viii.4": Substituting step “viii.1” into step “viii.3” gives f(a + f(x) + f(-x) + f(a))=a + f(x) + f(-x) + f(a). The result follows by casework on step “viii.2”; In the first case, substituting in step “viii.1” followed by step “v.” gives f(x) + f(-x) = 0 as desired, and in the second case, substituting in step “viiii.4” followed by step “viii.1” gives f(x) + f(-x) = 0 again as desired. -/
All goals completed! 🐙
-- Step "ix.": Now, consider the case where f(a + f(a) + f(-a)) = f(a). /- Step "ix.1.": We have f(a + f(a + f(a) + f(-a))) = f(a) + a + f(a) + f(-a) or f(f(a) + a + f(a) + f(-a)) = a + f(a + f(a) + f(-a)). -/
this.intro.inr.inr
IsAquaesulian:(ℚ → ℚ) → Prop
u:ℚ → ℚ
a:ℚ
hz:ℚ
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = y + f x ∨ f (y + f x) = x + f y
j:u 0 = 0
c:¬u a + u (-a) = 0
h✝¹:u (a + u hz) = hz + u a
this✝²:u (u a) = a + (u hz + u (-hz)) ∨ u (a + (u hz + u (-hz))) = u a
this✝¹:u (u a + (hz + -a)) = a + (u hz + u (-a)) ∨ u (a + (u hz + u (-a))) = u a + (hz + -a)
this✝:∀ (x y : ℚ), u (x + u y) = y + u x ∨ u (y + u x) = x + u y
b:u (a + u a) = a + u a
h✝:u (a + (u a + u (-a))) = u a
this:u (a + u (a + (u a + u (-a)))) = a + (u a + u (-a)) + u a ∨ u (a + (u a + u (-a)) + u a) = a + u (a + (u a + u (-a)))
⊢ u hz + u (-hz) = 0 ∨ u hz + u (-hz) = u a + u (-a)
/- Step "ix.2.": We have f(a + f(a) + f(-a) + f(a + f(a) + f(-a))) = a + f(a) + f(-a) + f(a + f(a) + f(-a)). Step "ix.3.": Substituting step “ix.” into step “ix.2” gives f(a + f(a) + f(-a) +f(a)) = a + f(a) + f(-a) + f(a). The result follows by casework on step “ix.1.”: In the first case, we can substitute in step “ix.” followed by step “v.” to get f(a)+f(-a)=0, and in the second case we can substitute in step “ix.3.” followed by step “ix.” to get f(a)+f(-a)=0 again. Either way, this contradicts our assumption about a. -/ cases‹forall Jd S,_› (a+(u a+u (-a))) ( a + (u a +u ↑(-a)))with| _
this.intro.inr.inr.inr
IsAquaesulian:(ℚ → ℚ) → Prop
u:ℚ → ℚ
a:ℚ
hz:ℚ
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = y + f x ∨ f (y + f x) = x + f y
j:u 0 = 0
c:¬u a + u (-a) = 0
h✝²:u (a + u hz) = hz + u a
this✝²:u (u a) = a + (u hz + u (-hz)) ∨ u (a + (u hz + u (-hz))) = u a
this✝¹:u (u a + (hz + -a)) = a + (u hz + u (-a)) ∨ u (a + (u hz + u (-a))) = u a + (hz + -a)
this✝:∀ (x y : ℚ), u (x + u y) = y + u x ∨ u (y + u x) = x + u y
b:u (a + u a) = a + u a
h✝¹:u (a + (u a + u (-a))) = u a
this:u (a + u (a + (u a + u (-a)))) = a + (u a + u (-a)) + u a ∨ u (a + (u a + u (-a)) + u a) = a + u (a + (u a + u (-a)))
h✝:u (a + (u a + u (-a)) + u (a + (u a + u (-a)))) = a + (u a + u (-a)) + u (a + (u a + u (-a)))
⊢ u hz + u (-hz) = 0 ∨ u hz + u (-hz) = u a + u (-a)
All goals completed! 🐙
/- Now let f be an aquaesulian function with f(0) ≠ 0. We will derive a contradiction. -/
refine_1.refine_2
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
b:∀ (x y : ℚ), u (x + u y) = u x + y ∨ u (u x + y) = x + u y
j:¬u 0 = 0
⊢ {x | ∃ r, u r + u (-r) = x}.Finite ∧ {x | ∃ r, u r + u (-r) = x}.ncard ≤ 2
/- We have: P(0, 0) -> f(f(0)) = f(0), P(f(0), f(0)) -> f(f(0) + f(f(0))) = f(0) + f(f(0)) -> f(2f(0)) = 2f(0), P(0, f(0)) -> f(f(f(0))) = 2f(0) or f(2f(0)) = f(f(0)) -> f(0) = 2f(0) or f(2f(0)) = f(0) -> f(0) = 2f(0) or 2f(0) = f(0), so f(0) = 0 as desired. -/ cases b 0 0with|_
refine_1.refine_2.inr
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
b:∀ (x y : ℚ), u (x + u y) = u x + y ∨ u (u x + y) = x + u y
j:¬u 0 = 0
h✝:u (u 0 + 0) = 0 + u 0
⊢ {x | ∃ r, u r + u (-r) = x}.Finite ∧ {x | ∃ r, u r + u (-r) = x}.ncard ≤ 2
exact absurd (b 0$ (0+(1 *(@(u ↑.((0) )))))^ 01: ↑ ((_)) ) (id$ (
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
b:∀ (x y : ℚ), u (x + u y) = u x + y ∨ u (u x + y) = x + u y
j:¬u 0 = 0
h✝:u (u 0 + 0) = 0 + u 0
⊢ ¬(u (0 + u ((0 + 1 * u 0) ^ 1)) = u 0 + (0 + 1 * u 0) ^ 1 ∨ u (u 0 + (0 + 1 * u 0) ^ 1) = 0 + u ((0 + 1 * u 0) ^ 1))
(cases ( b (u 0) ( (u 0)))with|_
inr
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
u:ℚ → ℚ
b:∀ (x y : ℚ), u (x + u y) = u x + y ∨ u (u x + y) = x + u y
j:¬u 0 = 0
h✝¹:u (u 0 + 0) = 0 + u 0
h✝:u (u (u 0) + u 0) = u 0 + u (u 0)
⊢ ¬(u (0 + u ((0 + 1 * u 0) ^ 1)) = u 0 + (0 + 1 * u 0) ^ 1 ∨ u (u 0 + (0 + 1 * u 0) ^ 1) = 0 + u ((0 + 1 * u 0) ^ 1))
All goals completed! 🐙
)))
refine_2
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
K:ℤ
V:K ∈ {c | ∀ (f : ℚ → ℚ), IsAquaesulian f → {x | ∃ r, f r + f (-r) = x}.Finite ∧ ↑{x | ∃ r, f r + f (-r) = x}.ncard ≤ c}
⊢ 2 ≤ K
-- Now let f(x) = -x + 2⌈x⌉. We claim that f is aquaesulian.
refine_2
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
K:ℤ
V:(IsAquaesulian fun N => -N + 2 * ↑⌈N⌉) → {x | ∃ r, -r + 2 * ↑⌈r⌉ + (- -r + 2 * ↑⌈-r⌉) = x}.Finite ∧ ↑{x | ∃ r, -r + 2 * ↑⌈r⌉ + (- -r + 2 * ↑⌈-r⌉) = x}.ncard ≤ K
⊢ 2 ≤ K
refine_2
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
K:ℤ
V:(IsAquaesulian fun N => -N + 2 * ↑⌈N⌉) → {x | ∃ r, -r + 2 * ↑⌈r⌉ + (- -r + 2 * ↑⌈-r⌉) = x}.Finite ∧ ↑{x | ∃ r, -r + 2 * ↑⌈r⌉ + (- -r + 2 * ↑⌈-r⌉) = x}.ncard ≤ K
⊢ ∀ (x y : ℚ), -(x + (-y + 2 * ↑⌈y⌉)) + 2 * ↑⌈x + (-y + 2 * ↑⌈y⌉)⌉ = -x + 2 * ↑⌈x⌉ + y ∨ -(-x + 2 * ↑⌈x⌉ + y) + 2 * ↑⌈-x + 2 * ↑⌈x⌉ + y⌉ = x + (-y + 2 * ↑⌈y⌉)
refine_2
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
K:ℤ
V:{x | ∃ r, -r + 2 * ↑⌈r⌉ + (- -r + 2 * ↑⌈-r⌉) = x}.Finite ∧ ↑{x | ∃ r, -r + 2 * ↑⌈r⌉ + (- -r + 2 * ↑⌈-r⌉) = x}.ncard ≤ K
⊢ 2 ≤ K
refine_2
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
K:ℤ
V:(IsAquaesulian fun N => -N + 2 * ↑⌈N⌉) → {x | ∃ r, -r + 2 * ↑⌈r⌉ + (- -r + 2 * ↑⌈-r⌉) = x}.Finite ∧ ↑{x | ∃ r, -r + 2 * ↑⌈r⌉ + (- -r + 2 * ↑⌈-r⌉) = x}.ncard ≤ K
⊢ ∀ (x y : ℚ), -(x + (-y + 2 * ↑⌈y⌉)) + 2 * ↑⌈x + (-y + 2 * ↑⌈y⌉)⌉ = -x + 2 * ↑⌈x⌉ + y ∨ -(-x + 2 * ↑⌈x⌉ + y) + 2 * ↑⌈-x + 2 * ↑⌈x⌉ + y⌉ = x + (-y + 2 * ↑⌈y⌉)
simp_rw [
refine_2
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
K:ℤ
V:(IsAquaesulian fun N => -N + 2 * ↑⌈N⌉) → {x | ∃ r, -r + 2 * ↑⌈r⌉ + (- -r + 2 * ↑⌈-r⌉) = x}.Finite ∧ ↑{x | ∃ r, -r + 2 * ↑⌈r⌉ + (- -r + 2 * ↑⌈-r⌉) = x}.ncard ≤ K
⊢ ∀ (x y : ℚ), 2 * ↑⌈x + (-y + 2 * ↑⌈y⌉)⌉ = -x + 2 * ↑⌈x⌉ + y - -(x + (-y + 2 * ↑⌈y⌉)) ∨ 2 * ↑⌈-x + 2 * ↑⌈x⌉ + y⌉ = x + (-y + 2 * ↑⌈y⌉) - -(-x + 2 * ↑⌈x⌉ + y)
] /- The functional equation simplifies to ⌈x - y + ⌈y⌉ * 2⌉ * 2 = ⌈y⌉ * 2 + ⌈x⌉ * 2 or ⌈-x + y + ⌈x⌉ * 2⌉ * 2 = ⌈y⌉ * 2 + ⌈x⌉ * 2. -/
refine_2
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
K:ℤ
V:(IsAquaesulian fun N => -N + 2 * ↑⌈N⌉) → {x | ∃ r, -r + 2 * ↑⌈r⌉ + (- -r + 2 * ↑⌈-r⌉) = x}.Finite ∧ ↑{x | ∃ r, -r + 2 * ↑⌈r⌉ + (- -r + 2 * ↑⌈-r⌉) = x}.ncard ≤ K
⊢ ∀ (x y : ℚ), ↑⌈x - y + ↑⌈y⌉ * 2⌉ * 2 = ↑⌈y⌉ * 2 + ↑⌈x⌉ * 2 ∨ ↑⌈-x + y + ↑⌈x⌉ * 2⌉ * 2 = ↑⌈y⌉ * 2 + ↑⌈x⌉ * 2
refine_2
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
K:ℤ
V:(IsAquaesulian fun N => -N + 2 * ↑⌈N⌉) → {x | ∃ r, -r + 2 * ↑⌈r⌉ + (- -r + 2 * ↑⌈-r⌉) = x}.Finite ∧ ↑{x | ∃ r, -r + 2 * ↑⌈r⌉ + (- -r + 2 * ↑⌈-r⌉) = x}.ncard ≤ K
⊢ ∀ (x y : ℚ), ⌈x - y + ↑(⌈y⌉ * 2)⌉ * 2 = ⌈y⌉ * 2 + ⌈x⌉ * 2 ∨ ⌈-x + y + ↑(⌈x⌉ * 2)⌉ * 2 = ⌈y⌉ * 2 + ⌈x⌉ * 2
/- Which is equivalent to: (A) ⌈y⌉ + ⌈x⌉ - 1 < x - y + ⌈y⌉ * 2 ≤ ⌈y⌉ + ⌈x⌉ or (B) ⌈y⌉ + ⌈x⌉ - 1 < -x + y + ⌈x⌉ * 2 ≤ ⌈y⌉ + ⌈x⌉ -/
refine_2
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
K:ℤ
V:(IsAquaesulian fun N => -N + 2 * ↑⌈N⌉) → {x | ∃ r, -r + 2 * ↑⌈r⌉ + (- -r + 2 * ↑⌈-r⌉) = x}.Finite ∧ ↑{x | ∃ r, -r + 2 * ↑⌈r⌉ + (- -r + 2 * ↑⌈-r⌉) = x}.ncard ≤ K
⊢ ∀ (x y : ℚ), ↑⌈y⌉ + ↑⌈x⌉ - 1 < x - y + ↑⌈y⌉ * 2 ∧ x - y + ↑⌈y⌉ * 2 ≤ ↑⌈y⌉ + ↑⌈x⌉ ∨ ↑⌈y⌉ + ↑⌈x⌉ - 1 < -x + y + ↑⌈x⌉ * 2 ∧ -x + y + ↑⌈x⌉ * 2 ≤ ↑⌈y⌉ + ↑⌈x⌉
useλc K=>(em _).imp (⟨
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
⊢ IsLeast {c | ∀ (f : ℚ → ℚ), IsAquaesulian f → {x | ∃ r, f r + f (-r) = x}.Finite ∧ ↑{x | ∃ r, f r + f (-r) = x}.ncard ≤ c} 2
linarith[Int.ceil_lt_add_one c,Int.le_ceil K],.⟩) (
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
⊢ IsLeast {c | ∀ (f : ℚ → ℚ), IsAquaesulian f → {x | ∃ r, f r + f (-r) = x}.Finite ∧ ↑{x | ∃ r, f r + f (-r) = x}.ncard ≤ c} 2
repeat use
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
⊢ IsLeast {c | ∀ (f : ℚ → ℚ), IsAquaesulian f → {x | ∃ r, f r + f (-r) = x}.Finite ∧ ↑{x | ∃ r, f r + f (-r) = x}.ncard ≤ c} 2
linarith[.,Int.le_ceil c,or,Int.ceil_lt_add_one$ K]) /- If x - y + ⌈y⌉ * 2 ≤ ⌈y⌉ + ⌈x⌉ then we have the desired result (A) since ⌈y⌉ < y + 1. Otherwise, we have ⌈y⌉ + ⌈x⌉ < x - y + ⌈y⌉ * 2 which we negate and add ⌈x⌉ * 2 + ⌈y⌉ * 2 to get -x + y + ⌈x⌉ * 2 < ⌈y⌉ + ⌈x⌉, from which we get the desired result (B) since ⌈x⌉ < x + 1. -/
refine_2
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
K:ℤ
V:{x | ∃ r, 2 * ↑⌈r⌉ + -(2 * ↑⌊r⌋) = x}.Finite ∧ ↑{x | ∃ r, 2 * ↑⌈r⌉ + -(2 * ↑⌊r⌋) = x}.ncard ≤ K
⊢ 2 ≤ K
refine_2
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
K:ℤ
V:{x | ∃ r, 2 * ↑⌈r⌉ + -(2 * ↑⌊r⌋) = x}.Finite ∧ ↑{x | ∃ r, 2 * ↑⌈r⌉ + -(2 * ↑⌊r⌋) = x}.ncard ≤ K
this:2 ≤ ⋯.toFinset.card
⊢ 2 ≤ K
this
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
K:ℤ
V:{x | ∃ r, 2 * ↑⌈r⌉ + -(2 * ↑⌊r⌋) = x}.Finite ∧ ↑{x | ∃ r, 2 * ↑⌈r⌉ + -(2 * ↑⌊r⌋) = x}.ncard ≤ K
⊢ 2 ≤ ⋯.toFinset.card
refine_2
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
K:ℤ
V:{x | ∃ r, 2 * ↑⌈r⌉ + -(2 * ↑⌊r⌋) = x}.Finite ∧ ↑{x | ∃ r, 2 * ↑⌈r⌉ + -(2 * ↑⌊r⌋) = x}.ncard ≤ K
this:2 ≤ ⋯.toFinset.card
⊢ 2 ≤ K
refine_2
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
K:ℤ
V:{x | ∃ r, 2 * ↑⌈r⌉ + -(2 * ↑⌊r⌋) = x}.Finite ∧ ↑{x | ∃ r, 2 * ↑⌈r⌉ + -(2 * ↑⌊r⌋) = x}.ncard ≤ K
this:2 ≤ ⋯.toFinset.card
M:Finset ℚ := ⋯.toFinset
⊢ 2 ≤ K
norm_num[this,V.2.trans',(Set.ext$
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
K:ℤ
V:{x | ∃ r, 2 * ↑⌈r⌉ + -(2 * ↑⌊r⌋) = x}.Finite ∧ ↑{x | ∃ r, 2 * ↑⌈r⌉ + -(2 * ↑⌊r⌋) = x}.ncard ≤ K
this:2 ≤ ⋯.toFinset.card
M:Finset ℚ := ⋯.toFinset
⊢ ∀ (x : ℚ), x ∈ {x | ∃ t, 2 * ↑⌈t⌉ + -(2 * ↑⌊t⌋) = x} ↔ x ∈ ↑M
All goals completed! 🐙
: {x :Rat|∃t:Rat, (↑2 ) * ( ⌈ t ⌉:(ℚ ) ) .. + (- (2 *⌊(t)⌋)) = ↑x} = M)] /- Finally, we have f(-1) + f(1) = 0 and f(1/2) = f(-1/2) = 2 as two distinct values of f. Thus, c = 2 is tight as desired. -/ use Finset.one_lt_card.2$
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
K:ℤ
V:{x | ∃ r, 2 * ↑⌈r⌉ + -(2 * ↑⌊r⌋) = x}.Finite ∧ ↑{x | ∃ r, 2 * ↑⌈r⌉ + -(2 * ↑⌊r⌋) = x}.ncard ≤ K
⊢ ∃ a ∈ ⋯.toFinset, ∃ b ∈ ⋯.toFinset, a ≠ b
exists@0,V.1.mem_toFinset.2 (
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
K:ℤ
V:{x | ∃ r, 2 * ↑⌈r⌉ + -(2 * ↑⌊r⌋) = x}.Finite ∧ ↑{x | ∃ r, 2 * ↑⌈r⌉ + -(2 * ↑⌊r⌋) = x}.ncard ≤ K
⊢ 0 ∈ {x | ∃ r, 2 * ↑⌈r⌉ + -(2 * ↑⌊r⌋) = x}
All goals completed! 🐙
),2,V.1.mem_toFinset.2 (
IsAquaesulian:(ℚ → ℚ) → Prop
IsAquaesulian_def:∀ (f : ℚ → ℚ), IsAquaesulian f ↔ ∀ (x y : ℚ), f (x + f y) = f x + y ∨ f (f x + y) = x + f y
K:ℤ
V:{x | ∃ r, 2 * ↑⌈r⌉ + -(2 * ↑⌊r⌋) = x}.Finite ∧ ↑{x | ∃ r, 2 * ↑⌈r⌉ + -(2 * ↑⌊r⌋) = x}.ncard ≤ K
⊢ 2 ∈ {x | ∃ r, 2 * ↑⌈r⌉ + -(2 * ↑⌊r⌋) = x}
All goals completed! 🐙
)

The following command shows which axioms the proof relies upon:

'imo_2024_p6' depends on axioms: [propext, Classical.choice, Quot.sound]#print axioms imo_2024_p6
'imo_2024_p6' depends on axioms: [propext, Classical.choice, Quot.sound]

These are the standard built in axioms.