Compfiles/Usa2018P2.lean
Explanation legend Lean4 Domain Explanation Language (L4DEL)
L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.
- L4DEL
- Lean4 Domain Explanation Language
Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.
Project sources: Pinned compfiles documentation, Pinned compfiles corpus index
29 declarations, 0 contain sorry, 0 declared as axioms
United States of America Mathematical Olympiad 2018, Problem 2
Find all functions $f : (0, \infty) \to (0, \infty)$ such that $$f\left(x + \frac{1}{y}\right) + f\left(y + \frac{1}{z}\right) + f\left(z + \frac{1}{x}\right) = 1$$ for all $x, y, z > 0$ with $xyz = 1$.
Imports (8)
Imported by 1 file
- theorem
Usa2018P2.jensen_bounded_eq_zeroIfhsatisfies Jensen's functional equation on[0, 1], vanishes at the endpoints and is bounded there, thenhis identically zero on[0, 1]line 37 sourceSource documentation
If
hsatisfies Jensen's functional equation on[0, 1], vanishes at the endpoints and is bounded there, thenhis identically zero on[0, 1].standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LE.le,OfNat.ofNat,Eq,HDiv.hDiv,HAdd.hAdd,Nat,absProof uses:
HPow.hPow,Nat.recAux,dite,Eq.mpr,id,congrFun',congrArg,Eq.trans,congr,Nat.cast_one,pow_zero,div_self,of_eq_true,Not,False,True,not_false_eq_true,Eq.symm,le_antisymm,Nat.rawCastand 173 more198 instances, coercions and auxiliary constants left out.
Tactic trace: 158 steps
Open to load the checked before-and-after goal states.
theorem jensen_bounded_eq_zero {h : ℝ → ℝ} (hJ : ∀ s t : ℝ, 0 ≤ s → s ≤ 1 → 0 ≤ t → t ≤ 1 → h ((s + t) / 2) = (h s + h t) / 2) (h0 : h 0 = 0) (h1 : h 1 = 0) (hb : ∀ t : ℝ, 0 ≤ t → t ≤ 1 → |h t| ≤ 1) : ∀ t : ℝ, 0 ≤ t → t ≤ 1 → h t = 0 := by …Mentions: h
- def
Usa2018P2.gThe normalized function $g(s) = f(1/s - 1)$, mapping $(0, 1)$ to $(0, 1)$ line 195 sourceSource documentation
The normalized function $g(s) = f(1/s - 1)$, mapping $(0, 1)$ to $(0, 1)$.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
RealProof uses:
HSub.hSub,HDiv.hDiv,OfNat.ofNat7 instances, coercions and auxiliary constants left out.
noncomputable def g (f : ℝ → ℝ) : ℝ → ℝ := fun s ↦ f (1 / s - 1)
Mentions: f
- def
Usa2018P2.hfnThe discrepancy betweengand its linear interpolant on[1/8, 3/8], rescaled to parameters in[0, 1]line 199 sourceSource documentation
The discrepancy between
gand its linear interpolant on[1/8, 3/8], rescaled to parameters in[0, 1].standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
RealProof uses:
HSub.hSub, Usa2018P2.g,HDiv.hDiv,HAdd.hAdd,HMul.hMul,OfNat.ofNat16 instances, coercions and auxiliary constants left out.
noncomputable def hfn (f : ℝ → ℝ) : ℝ → ℝ := fun t ↦ …
Mentions: f
- theorem
Usa2018P2.f_lt_oneEvery valuef twitht > 0is less than1(plug(x, y, z) = (t / 2, 2 / t, 1)into the equation) line 210 sourceSource documentation
Every value
f twitht > 0is less than1(plug(x, y, z) = (t / 2, 2 / t, 1)into the equation).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LT.lt,OfNat.ofNat,Eq,HMul.hMul,HAdd.hAdd,HDiv.hDivProof uses:
Ne,ne_of_gt,Nat,of_eq_true,Eq.trans,inferInstance,CommGroupWithZero,True,Mathlib.Tactic.FieldSimp.eq_eq_cancel_eq,Mathlib.Tactic.FieldSimp.NF.eval,List.nil,Prod,Int,Mathlib.Tactic.FieldSimp.eq_mul_of_eq_eq_eq_mul,congr_arg₂,rfl,Mathlib.Tactic.FieldSimp.NF.cons,Prod.mk,Mathlib.Tactic.FieldSimp.NF.mul_eq_eval,Neg.negand 114 more128 instances, coercions and auxiliary constants left out.
Tactic trace: 14 steps
Open to load the checked before-and-after goal states.
theorem f_lt_one {t : ℝ} (ht : 0 < t) : f t < 1 := by …Mentions: f
- theorem
Usa2018P2.arg_posFors ∈ (0, 1)the argument1 / s - 1offingis positive line 220 sourceSource documentation
For
s ∈ (0, 1)the argument1 / s - 1offingis positive.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LT.lt,OfNat.ofNat,HSub.hSub,HDiv.hDivProof uses:
Eq.mpr,id,Eq,congrArg,propext,one_lt_div,lt_of_not_ge,LE.le,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,HAdd.hAdd,HMul.hMul,inferInstance,AddMonoidWithOne,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,Nat.rawCast,HPow.hPow,Nat,Inv.invand 56 more91 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
theorem arg_pos {s : ℝ} (hs0 : 0 < s) (hs1 : s < 1) : 0 < 1 / s - 1 := by … - theorem
Usa2018P2.g_posline 225 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LT.lt,OfNat.ofNat, Usa2018P2.gProof uses:
HSub.hSub,HDiv.hDiv, Usa2018P2.arg_pos15 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P2.g_lt_oneline 229 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LT.lt,OfNat.ofNat,Eq,HMul.hMul,HAdd.hAdd,HDiv.hDiv, Usa2018P2.gProof uses: Usa2018P2.f_lt_one,
HSub.hSub, Usa2018P2.arg_pos26 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P2.g_eqThe functional equation rewritten in terms ofgvia the substitution(x, y, z) = (b / c, c / a, a / b)line 235 sourceSource documentation
The functional equation rewritten in terms of
gvia the substitution(x, y, z) = (b / c, c / a, a / b).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LT.lt,OfNat.ofNat,Eq,HMul.hMul,HAdd.hAdd,HDiv.hDiv, Usa2018P2.gProof uses:
Ne,ne_of_gt,add_pos',of_eq_true,Eq.trans,inferInstance,CommGroupWithZero,True,Mathlib.Tactic.FieldSimp.eq_eq_cancel_eq,Mathlib.Tactic.FieldSimp.NF.eval,List.nil,Prod,Int,Mathlib.Tactic.FieldSimp.eq_mul_of_eq_eq_eq_mul,congr_arg₂,rfl,Mathlib.Tactic.FieldSimp.NF.cons,Prod.mk,Mathlib.Tactic.FieldSimp.NF.mul_eq_eval,Neg.negand 103 more116 instances, coercions and auxiliary constants left out.
Tactic trace: 28 steps
Open to load the checked before-and-after goal states.
theorem g_eq {a b c : ℝ} (ha : 0 < a) (hb : 0 < b) (hc : 0 < c) : g f (a / (a + b + c)) + g f (b / (a + b + c)) + g f (c / (a + b + c)) = 1 := by …Mentions: Usa2018P2.g, f
- theorem
Usa2018P2.g_eq_oneFora + b + c = 1this readsg a + g b + g c = 1line 263 sourceSource documentation
For
a + b + c = 1this readsg a + g b + g c = 1.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LT.lt,OfNat.ofNat,Eq,HMul.hMul,HAdd.hAdd,HDiv.hDiv, Usa2018P2.gProof uses: Usa2018P2.g_eq,
Eq.mp,congrArg,div_one33 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
theorem g_eq_one {a b c : ℝ} (ha : 0 < a) (hb : 0 < b) (hc : 0 < c) (hsum : a + b + c = 1) : g f a + g f b + g f c = 1 := by …Mentions: Usa2018P2.g, f
- theorem
Usa2018P2.g_jensenJensen's functional equation forgon pairs summing to less than1line 270 sourceSource documentation
Jensen's functional equation for
gon pairs summing to less than1.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LT.lt,OfNat.ofNat,Eq,HMul.hMul,HAdd.hAdd,HDiv.hDiv, Usa2018P2.g,NatProof uses:
HSub.hSub,lt_of_not_ge,LE.le,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,congrArg,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,Int.rawCast,inferInstance,Ring,Int.negOfNat,HPow.hPow,Nat.rawCast,Mathlib.Tactic.Ring.Common.sub_congr,Mathlib.Tactic.Ring.Common.atom_pf,rfl,Eq.mpr,id,Eq.symmand 79 more116 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
theorem g_jensen {a b : ℝ} (ha : 0 < a) (hb : 0 < b) (hab : a + b < 1) : g f a + g f b = 2 * g f ((a + b) / 2) := by …Mentions: Usa2018P2.g, f
- theorem
Usa2018P2.hfn_zeroline 277 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,Eq, Usa2018P2.hfn,OfNat.ofNatProof uses:
HDiv.hDiv,HAdd.hAdd,HMul.hMul,Nat,Mathlib.Meta.NormNum.isNNRat_eq_true,Mathlib.Meta.NormNum.isNNRat_div,Mathlib.Meta.NormNum.isNNRat_mul,Inv.inv,Eq.refl,Mathlib.Meta.NormNum.IsNat.to_isNNRat,Mathlib.Meta.NormNum.isNat_add,Mathlib.Meta.NormNum.isNat_mul,Mathlib.Meta.NormNum.isNat_ofNat,Mathlib.Meta.NormNum.instAtLeastTwo,Nat.cast_zero,Nat.cast_one,Mathlib.Meta.NormNum.isNNRat_inv_pos,Nat.mul,id,Eq.mprand 41 more65 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P2.hfn_oneline 283 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,Eq, Usa2018P2.hfn,OfNat.ofNatProof uses:
HDiv.hDiv,HAdd.hAdd,HMul.hMul,Nat,Mathlib.Meta.NormNum.isNNRat_eq_true,Mathlib.Meta.NormNum.isNNRat_div,Mathlib.Meta.NormNum.isNNRat_mul,Inv.inv,Eq.refl,Mathlib.Meta.NormNum.IsNat.to_isNNRat,Mathlib.Meta.NormNum.isNat_add,Mathlib.Meta.NormNum.isNat_mul,Mathlib.Meta.NormNum.isNat_ofNat,Mathlib.Meta.NormNum.instAtLeastTwo,Nat.cast_one,Mathlib.Meta.NormNum.isNNRat_inv_pos,Nat.mul,id,Eq.mpr,HSub.hSuband 41 more67 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P2.hfn_jensenline 290 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LT.lt,OfNat.ofNat,Eq,HMul.hMul,HAdd.hAdd,HDiv.hDiv,LE.le, Usa2018P2.hfn,NatProof uses:
lt_of_not_ge,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,Neg.neg,HSub.hSub,congrArg,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,Int.rawCast,inferInstance,Ring,Int.negOfNat,HPow.hPow,Nat.rawCast,Mathlib.Tactic.Ring.Common.neg_congr,Mathlib.Tactic.Ring.cast_pos,Mathlib.Meta.NormNum.isNat_ofNat,Nat.cast_one,Mathlib.Tactic.Ring.Common.neg_add,Mathlib.Meta.NormNum.IsInt.to_raw_eqand 94 more126 instances, coercions and auxiliary constants left out.
Tactic trace: 16 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P2.hfn_bddline 306 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LT.lt,OfNat.ofNat,Eq,HMul.hMul,HAdd.hAdd,HDiv.hDiv,LE.le,abs, Usa2018P2.hfnProof uses:
Nat,lt_of_not_ge,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,Neg.neg,HSub.hSub,congrArg,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,Int.rawCast,inferInstance,Ring,Int.negOfNat,HPow.hPow,Nat.rawCast,Mathlib.Tactic.Ring.Common.neg_congr,Mathlib.Tactic.Ring.cast_pos,Mathlib.Meta.NormNum.isNat_ofNat,Nat.cast_one,Mathlib.Tactic.Ring.Common.neg_addand 93 more126 instances, coercions and auxiliary constants left out.
Tactic trace: 34 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2018P2.hfn_eq_zeroline 330 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LT.lt,OfNat.ofNat,Eq,HMul.hMul,HAdd.hAdd,HDiv.hDiv,LE.le, Usa2018P2.hfnProof uses: Usa2018P2.jensen_bounded_eq_zero, Usa2018P2.hfn_jensen, Usa2018P2.hfn_zero, Usa2018P2.hfn_one, Usa2018P2.hfn_bdd
26 instances, coercions and auxiliary constants left out.
- theorem
Usa2018P2.g_linear_mid_expgagrees with a linear function on[1/8, 3/8]line 336 sourceSource documentation
gagrees with a linear function on[1/8, 3/8].standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LT.lt,OfNat.ofNat,Eq,HMul.hMul,HAdd.hAdd,HDiv.hDiv,LE.le,Nat, Usa2018P2.g,HSub.hSubProof uses:
le_of_not_gt,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,inferInstance,AddMonoidWithOne,Mathlib.Meta.NormNum.instAtLeastTwo,congrArg,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,Nat.rawCast,HPow.hPow,Int.rawCast,Ring,Int.negOfNat,Mathlib.Tactic.Ring.Common.sub_congr,Mathlib.Tactic.Ring.Common.mul_congr,Mathlib.Tactic.Ring.cast_pos,Mathlib.Meta.NormNum.isNat_ofNat,Nat.cast_one,Mathlib.Tactic.Ring.Common.add_muland 92 more113 instances, coercions and auxiliary constants left out.
Tactic trace: 10 steps
Open to load the checked before-and-after goal states.
theorem g_linear_mid_exp {x : ℝ} (hx0 : 1 / 8 ≤ x) (hx1 : x ≤ 3 / 8) : g f x = 4 * (g f (3 / 8) - g f (1 / 8)) * x + (3 * g f (1 / 8) - g f (3 / 8)) / 2 := by …Mentions: Usa2018P2.g, f
- theorem
Usa2018P2.kl_sumWith3 g (1/3) = 1and1/3 ∈ [1/8, 3/8], the coefficients satisfyk + 3 l = 1line 349 sourceSource documentation
With
3 g (1/3) = 1and1/3 ∈ [1/8, 3/8], the coefficients satisfyk + 3 l = 1.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LT.lt,OfNat.ofNat,Eq,HMul.hMul,HAdd.hAdd,HDiv.hDiv,LE.le,Nat, Usa2018P2.gProof uses: Usa2018P2.g_eq_one,
Mathlib.Meta.NormNum.isNNRat_lt_true,Mathlib.Meta.NormNum.IsNat.to_isNNRat,Mathlib.Meta.NormNum.isNat_ofNat,Nat.cast_zero,Mathlib.Meta.NormNum.isNNRat_div,Mathlib.Meta.NormNum.isNNRat_mul,Inv.inv,Eq.refl,Nat.cast_one,Mathlib.Meta.NormNum.isNNRat_inv_pos,Mathlib.Meta.NormNum.instAtLeastTwo,Nat.mul,Bool,Bool.true,Mathlib.Meta.NormNum.isNat_eq_true,Mathlib.Meta.NormNum.instAddMonoidWithOne',Mathlib.Meta.NormNum.IsNNRat.to_isNat,Mathlib.Meta.NormNum.isNNRat_add,Mathlib.Meta.NormNum.isRat_le_trueand 78 more108 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
theorem kl_sum {k l : ℝ} (hmid : ∀ x : ℝ, 1 / 8 ≤ x → x ≤ 3 / 8 → g f x = k * x + l) : k + 3 * l = 1 := by …Mentions: Usa2018P2.g, f
- theorem
Usa2018P2.g_linear_ext_lowLinearity extends from[1/8, 3/8]down to(0, 1/8)using Jensen line 358 sourceSource documentation
Linearity extends from
[1/8, 3/8]down to(0, 1/8)using Jensen.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LT.lt,OfNat.ofNat,Eq,HMul.hMul,HAdd.hAdd,HDiv.hDiv,LE.le,Nat, Usa2018P2.gProof uses:
HSub.hSub, Usa2018P2.g_jensen,lt_of_not_ge,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,inferInstance,AddMonoidWithOne,Mathlib.Meta.NormNum.instAtLeastTwo,congrArg,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,Int.rawCast,Ring,Int.negOfNat,HPow.hPow,Nat.rawCast,Mathlib.Meta.NormNum.instAddMonoidWithOne,Mathlib.Tactic.Ring.Common.mul_congr,Mathlib.Tactic.Ring.cast_pos,Mathlib.Meta.NormNum.isNat_ofNatand 90 more113 instances, coercions and auxiliary constants left out.
Tactic trace: 13 steps
Open to load the checked before-and-after goal states.
theorem g_linear_ext_low {k l : ℝ} (hmid : ∀ x : ℝ, 1 / 8 ≤ x → x ≤ 3 / 8 → g f x = k * x + l) {x : ℝ} (hx0 : 0 < x) (hx1 : x < 1 / 8) : g f x = k * x + l := by …Mentions: Usa2018P2.g, f
- theorem
Usa2018P2.g_linear_lowgis linear on all of(0, 3/8]line 371 sourceSource documentation
gis linear on all of(0, 3/8].standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LT.lt,OfNat.ofNat,Eq,HMul.hMul,HAdd.hAdd,HDiv.hDiv,LE.le,Nat, Usa2018P2.gProof uses:
Or,le_or_gt, Usa2018P2.g_linear_ext_low42 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
theorem g_linear_low {k l : ℝ} (hmid : ∀ x : ℝ, 1 / 8 ≤ x → x ≤ 3 / 8 → g f x = k * x + l) {x : ℝ} (hx0 : 0 < x) (hx1 : x ≤ 3 / 8) : g f x = k * x + l := by …Mentions: Usa2018P2.g, f
- theorem
Usa2018P2.g_linear_ext_highLinearity extends from(0, 3/8]up to(0, 1)using the equation with(x, (1 - x) / 2, (1 - x) / 2)line 381 sourceSource documentation
Linearity extends from
(0, 3/8]up to(0, 1)using the equation with(x, (1 - x) / 2, (1 - x) / 2).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LT.lt,OfNat.ofNat,Eq,HMul.hMul,HAdd.hAdd,HDiv.hDiv,Nat,LE.le, Usa2018P2.gProof uses:
HSub.hSub,lt_of_not_ge,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,inferInstance,AddMonoidWithOne,Mathlib.Meta.NormNum.instAtLeastTwo,congrArg,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,Int.rawCast,Ring,Int.negOfNat,HPow.hPow,Nat.rawCast,Mathlib.Tactic.Ring.Common.sub_congr,Mathlib.Tactic.Ring.Common.atom_pf,rfl,Eq.mpr,idand 101 more115 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
theorem g_linear_ext_high {k l : ℝ} (hsum : k + 3 * l = 1) (hmid : ∀ x : ℝ, 1 / 8 ≤ x → x ≤ 3 / 8 → g f x = k * x + l) {x : ℝ} (hx0 : 3 / 8 ≤ x) (hx1 : x < 1) : g f x = k * x + l := by …Mentions: Usa2018P2.g, f
- theorem
Usa2018P2.g_lineargis linear on all of(0, 1)line 391 sourceSource documentation
gis linear on all of(0, 1).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LT.lt,OfNat.ofNat,Eq,HMul.hMul,HAdd.hAdd,HDiv.hDiv,Nat,LE.le, Usa2018P2.gProof uses:
Or,le_or_gt, Usa2018P2.g_linear_low, Usa2018P2.g_linear_ext_high,le_of_lt43 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
theorem g_linear {k l : ℝ} (hsum : k + 3 * l = 1) (hmid : ∀ x : ℝ, 1 / 8 ≤ x → x ≤ 3 / 8 → g f x = k * x + l) {x : ℝ} (hx0 : 0 < x) (hx1 : x < 1) : g f x = k * x + l := by …Mentions: Usa2018P2.g, f
- theorem
Usa2018P2.l_nonnegSincegis positive, the constant term of the linear function is nonnegative line 401 sourceSource documentation
Since
gis positive, the constant term of the linear function is nonnegative.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LT.lt,OfNat.ofNat,Eq, Usa2018P2.g,HAdd.hAdd,HMul.hMul,LE.leProof uses:
Decidable.byContradiction,Not,Or,False,le_or_gt,HDiv.hDiv,Nat,Mathlib.Meta.NormNum.isNNRat_lt_true,Mathlib.Meta.NormNum.IsNat.to_isNNRat,Mathlib.Meta.NormNum.isNat_ofNat,Nat.cast_zero,Mathlib.Meta.NormNum.isNNRat_div,Mathlib.Meta.NormNum.isNNRat_mul,Inv.inv,Eq.refl,Nat.cast_one,Mathlib.Meta.NormNum.isNNRat_inv_pos,Mathlib.Meta.NormNum.instAtLeastTwo,Nat.mul,Booland 94 more127 instances, coercions and auxiliary constants left out.
Tactic trace: 37 steps
Open to load the checked before-and-after goal states.
theorem l_nonneg {k l : ℝ} (hg : ∀ x : ℝ, 0 < x → x < 1 → g f x = k * x + l) : 0 ≤ l := by …Mentions: Usa2018P2.g, f
- theorem
Usa2018P2.kl_nonnegSincegis positive, the value of the linear function at1is nonnegative line 433 sourceSource documentation
Since
gis positive, the value of the linear function at1is nonnegative.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LT.lt,OfNat.ofNat,Eq, Usa2018P2.g,HAdd.hAdd,HMul.hMul,LE.leProof uses:
Decidable.byContradiction,Not,Or,False,le_or_gt,HDiv.hDiv,Nat,Mathlib.Meta.NormNum.isNNRat_lt_true,Mathlib.Meta.NormNum.IsNat.to_isNNRat,Mathlib.Meta.NormNum.isNat_ofNat,Nat.cast_zero,Mathlib.Meta.NormNum.isNNRat_div,Mathlib.Meta.NormNum.isNNRat_mul,Inv.inv,Eq.refl,Nat.cast_one,Mathlib.Meta.NormNum.isNNRat_inv_pos,Mathlib.Meta.NormNum.instAtLeastTwo,Nat.mul,Booland 135 more132 instances, coercions and auxiliary constants left out.
Tactic trace: 43 steps
Open to load the checked before-and-after goal states.
theorem kl_nonneg {k l : ℝ} (hg : ∀ x : ℝ, 0 < x → x < 1 → g f x = k * x + l) : 0 ≤ k + l := by …Mentions: Usa2018P2.g, f
- theorem
Usa2018P2.k_memThe slope of the linear function lies in[-1/2, 1]line 470 sourceSource documentation
The slope of the linear function lies in
[-1/2, 1].standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LT.lt,OfNat.ofNat,Eq,HAdd.hAdd,HMul.hMul,Nat, Usa2018P2.g,Membership.mem,Set,Set.Icc,HDiv.hDiv,Neg.negProof uses:
LE.le, Usa2018P2.l_nonneg, Usa2018P2.kl_nonneg,Eq.mpr,And,id,congrArg,propext,Set.mem_Icc,And.intro,le_of_not_gt,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,HSub.hSub,inferInstance,AddMonoidWithOne,Mathlib.Meta.NormNum.instAtLeastTwo,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,Int.rawCastand 78 more106 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
theorem k_mem {k l : ℝ} (hsum : k + 3 * l = 1) (hg : ∀ x : ℝ, 0 < x → x < 1 → g f x = k * x + l) : k ∈ Set.Icc (-1 / 2) 1 := by …Mentions: Usa2018P2.g, f
- theorem
Usa2018P2.f_formulaTransfer the linear formula forgback tofline 478 sourceSource documentation
Transfer the linear formula for
gback tof.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,Eq,HAdd.hAdd,HMul.hMul,OfNat.ofNat,Nat,LT.lt, Usa2018P2.g,HDiv.hDiv,HSub.hSubProof uses:
lt_of_not_ge,LE.le,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,Neg.neg,congrArg,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,Int.rawCast,inferInstance,Ring,Int.negOfNat,HPow.hPow,Nat.rawCast,Mathlib.Tactic.Ring.Common.neg_congr,Mathlib.Tactic.Ring.cast_pos,Mathlib.Meta.NormNum.isNat_ofNat,Nat.cast_one,Mathlib.Tactic.Ring.Common.neg_add,Mathlib.Meta.NormNum.IsInt.to_raw_eqand 77 more125 instances, coercions and auxiliary constants left out.
Tactic trace: 17 steps
Open to load the checked before-and-after goal states.
theorem f_formula {k l : ℝ} (hsum : k + 3 * l = 1) (hg : ∀ x : ℝ, 0 < x → x < 1 → g f x = k * x + l) {t : ℝ} (ht : 0 < t) : f t = k / (t + 1) + (1 - k) / 3 := by …Mentions: Usa2018P2.g, f
- theorem
Usa2018P2.forwardForward direction: every solution belongs to the one-parameter family line 496 sourceSource documentation
Forward direction: every solution belongs to the one-parameter family.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LT.lt,OfNat.ofNat,Eq,HMul.hMul,HAdd.hAdd,HDiv.hDiv,Exists,And,Membership.mem,Set,Set.Icc,Neg.neg,Nat,HSub.hSubProof uses:
LE.le, Usa2018P2.g, Usa2018P2.g_linear_mid_exp, Usa2018P2.kl_sum, Usa2018P2.g_linear,Exists.intro,And.intro, Usa2018P2.k_mem, Usa2018P2.f_formula45 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
theorem forward : ∃ k : ℝ, k ∈ Set.Icc (-1 / 2) 1 ∧ ∀ t : ℝ, 0 < t → f t = k / (t + 1) + (1 - k) / 3 := by …Mentions: f
- theorem
Usa2018P2.backwardBackward direction: every function of the one-parameter family solves the problem line 509 sourceSource documentation
Backward direction: every function of the one-parameter family solves the problem.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,Membership.mem,Set,Set.Icc,HDiv.hDiv,Neg.neg,OfNat.ofNat,Nat,LT.lt,Eq,HAdd.hAdd,HSub.hSub,And,HMul.hMulProof uses:
LE.le,Eq.mp,congrArg,propext,Set.mem_Icc,And.intro,Eq.mpr,id,lt_of_not_ge,Mathlib.Tactic.Linarith.lt_irrefl,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,Int.rawCast,inferInstance,Ring,Int.negOfNat,HPow.hPow,Nat.rawCast,Mathlib.Tactic.Ring.Common.neg_congr,Mathlib.Tactic.Ring.cast_posand 154 more177 instances, coercions and auxiliary constants left out.
Tactic trace: 72 steps
Open to load the checked before-and-after goal states.
theorem backward {f : ℝ → ℝ} {k : ℝ} (hk : k ∈ Set.Icc (-1 / 2) 1) (hf : ∀ t : ℝ, 0 < t → f t = k / (t + 1) + (1 - k) / 3) : (∀ x : ℝ, 0 < x → 0 < f x) ∧ (∀ x y z : ℝ, 0 < x → 0 < y → 0 < z → x * y * z = 1 → f (x + 1 / y) + f (y + 1 / z) + f (z + 1 / x) = 1) := by …Mentions: f
- determine
Usa2018P2.solution_setline 573 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Set,RealProof uses:
Set.ofPred,Exists,And,Membership.mem,Set.Icc,HDiv.hDiv,Neg.neg,OfNat.ofNat,LT.lt,Eq,HAdd.hAdd,HSub.hSub19 instances, coercions and auxiliary constants left out.
- problem
Usa2018P2.usa2018_p2line 576 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,Iff,Membership.mem,Set, Usa2018P2.solution_set,And,LT.lt,OfNat.ofNat,Eq,HMul.hMul,HAdd.hAdd,HDiv.hDivProof uses:
Iff.intro,Set.Icc,Neg.neg,HSub.hSub, Usa2018P2.backward, Usa2018P2.forward36 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.