diff --git a/README.md b/README.md index eadbf458..a374a566 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@

-PutnamBench is a benchmark for evaluation of theorem-proving algorithms on competition mathematics problems sourced from the William Lowell Putnam Mathematical Competition years 1962 - 2023. Our formalizations currently support three formal languages : Lean 4 $\land$ Isabelle $\land$ Coq. PutnamBench comprises of 1697 manually-crafted formalizations, aggregated over all languages. +PutnamBench is a benchmark for evaluation of theorem-proving algorithms on competition mathematics problems sourced from the William Lowell Putnam Mathematical Competition years 1962 - 2023. Our formalizations currently support three formal languages : Lean 4 $\land$ Isabelle $\land$ Coq. PutnamBench comprises of 1696 manually-crafted formalizations, aggregated over all languages. PutnamBench aims to support research in automated mathematical reasoning by providing a multilingual benchmark for evaluating theorem-proving algorithms. It is released under permissive licenses (Apache 2.0 for Lean 4 and Isabelle, MIT for Coq). The [informal statements](informal/README.md) are also available with permission from the MAA. @@ -14,14 +14,14 @@ PutnamBench includes factored solutions for problems which require exhibiting a We are hosting a [**leaderboard**](https://trishullab.github.io/PutnamBench/leaderboard.html) and will readily receive evaluation results which are accompanied by a preprint or publication. **Do not** include proofs as confirmation in any public setting. Please reach out privately at `george.tsoukalas@utexas.edu` with any requests for additions to the leaderboard. -**We strongly encourage community feedback!** Please let us know if you have any comments for improving PutnamBench. If you notice any mistakes, please raise an issue on the repository and we will address it. We kindly ask that you do not write formal proofs for any of the problems in an effort to reduce contamination. +**We strongly encourage community feedback!** Please let us know if you have any comments for improving PutnamBench. If you notice any mistakes, please raise an issue on the repository and we will address it. We kindly ask that you do not write formal proofs for any of the problems in an effort to reduce contamination. If you do wish to write formal proofs for a subset of the problems, we please ask that you first engage in discussion with us. ## Statistics | Language | Count | | ------------- | -------------- | -| Lean 4 | 640 | +| Lean 4 | 644 | | Isabelle | 640 | -| Coq | 417 | +| Coq | 412 | We also report the number of problems in a certain category. Note that some problems fall under multiple categories. While the categories are intended to capture general features of the problems, we also note that there is a high variance of problems inside an individual category. @@ -29,18 +29,14 @@ We also report the number of problems in a certain category. Note that some prob | ---------------- | -------------- | | Algebra | 253 | | Analysis | 226 | -| Number Theory | 107 | -| Geometry | 68 | +| Number Theory | 108 | +| Geometry | 69 | | Linear Algebra | 51 | | Abstract Algebra | 28 | -| Combinatorics | 26 | -| Probability | 9 | +| Combinatorics | 29 | +| Probability | 10 | | Set Theory | 8 | -## Versioning -- Version: `v0` -- In preliminary release to allow for initial community feedback. We seek to release an official first version following several weeks of discussion with the community. - ## Citation The associated paper for PutnamBench is [available at this link](https://arxiv.org/abs/2407.11214). Please consider including the following citation if you find PutnamBench useful. ``` diff --git a/coq/README.md b/coq/README.md index 70243bcf..4526175b 100644 --- a/coq/README.md +++ b/coq/README.md @@ -1,6 +1,5 @@ -Note: We are continuing to make modifications to the Coq formalizations, in particular those which were recently added. We encourage feedback, but keep this in mind. The format of the formalizations will be standardized with the other languages upon completion. +Note that roughly half of the Coq formalizations rely on Mathcomp, while the other half rely on a combination of the Coq Standard Library, Coquelicot, and other various Coq repositories. We also note that while the dependencies listed in each formalization are sufficient to *state* the problem, one may need further mathematical theory developed in Coq to write a proof. -We also note that while the dependencies listed in each formalization are sufficient to *state* the problem, one may need further mathematical theory developed in Coq to write a proof. # Installation You need to install `opam` and then run `setup.sh` to install the necessary dependencies. diff --git a/coq/src/commented_problems.v b/coq/src/commented_problems.v deleted file mode 100644 index 13b26c0c..00000000 --- a/coq/src/commented_problems.v +++ /dev/null @@ -1,186 +0,0 @@ - -(* TODO: WIP *) -(* NOTE -- Divide-and-conquer recursion is hard to formulate in Coq. A proof must be provided for termination *) -(* Section putnam_2013_b1. -Require Import ZArith Nat List Lia Ensembles Finite_sets Reals Program Coquelicot.Hierarchy. -Open Scope Z. -Program Fixpoint Aa (n : nat) {measure n} : Z := - match n with - | O => 0 - | S O => 1 - | S (S m) => if even m then Aa (div2 (m+2)) else if even (div2 (m+2)) then Aa (div2 (m+2)) else (-1) * Aa (div2 (m+2)) - end. -Next Obligation. Proof. destruct m. simpl; auto. induction m. simpl; auto. simpl. Admitted. -Theorem putnam_2013_b1: - sum_n (fun n => (Aa n)*(Aa (n+2))) 2013 = 1. -Proof. Admitted. -End putnam_2013_b1. *) - -(* Skipped due to lack of surface integral function *) -(* Section putnam_2019_a4. -Require Import PeanoNat. Require Import Reals Coquelicot.Derive. -Definition putnam_2019_a4_solution := false. -Theorem putnam_2019_a4: - forall (f: R -> R), - continuity f -> - forall (x y z: R), x*x + y*y + z*z = 1 -> - True. -Proof. Admitted. -End putnam_2019_a4. *) - -(* TODO: missing determinant refinement in coqeal *) -(* Section putnam_2023_b6. -Require Import Nat Finite_sets. -From mathcomp Require Import matrix ssrbool ssralg fintype. -Variable putnam_2023_b6_solution : nat -> nat. -Open Scope ring_scope. -Theorem putnam_2023_b6: - forall (n: nat), - let s (i j: nat) := cardinal (nat*nat) (fun p => let (a, b) := p in 1 <= i <= n /\ 1 <= j <= n /\ eq (add (mul a i) (mul b j)) n) in - (\matrix_(i < n, j < n) s i j) - = (\matrix_(i < n, j < n) s i j). -Proof. Admitted. -End putnam_2023_b6. *) - -(* TODO: How to get the cardinality of a set with cardinal? Could not figure out a clean way*) -(* Section putnam_1973_a6. -Require Import Reals Finite_sets Ensembles Coquelicot.Coquelicot. From mathcomp Require Import fintype. -Theorem putnam_1973_a6 - (h_nint : nat -> ('I_7 -> (R * R)) -> nat := fun n lines => - let intersection_set (p : R * R) : Prop := exists! S : Ensemble 'I_7, cardinal _ S n /\ (forall i : 'I_7, In _ S i -> (snd p = (snd (lines i)) * (fst p) + (fst (lines i)))) in - cardinal _ intersection_set - ) - : ~ (exists lines: 'I_7 -> (R * R), (forall i j : 'I_7, i <> j -> (lines i <> lines j)) /\ h_nint 3 lines >= 6 /\ h_nint 2 lines >= 4). -Proof. Admitted. -End putnam_1973_a6. *) - -(* Section putnam_1999_a5. -Require Import Reals NewtonInt. From mathcomp Require Import all_algebra all_ssreflect ssrnat ssrnum ssralg fintype poly seq. -Open Scope ring_scope. -Theorem putnam_1999_a5: - forall (R: numDomainType) (p: {poly R}), - (size p = 1999%nat) -> - exists (C: R), Num.norm p.[0] <= GRing.mul C (Num.norm p.[0]). -Proof. Admitted. -End putnam_1999_a5. *) - -(* Section putnam_2010_a5. -Require Import Reals. From mathcomp Require Import fingroup ssreflect ssrbool eqtype seq choice fintype div path tuple bigop prime finset. -Open Scope R. -Variable R3: finGroupType. -Definition cross_product (a b : R -> R -> R) : R -> R -> R := a. -Theorem putnam_2010_a5: - forall (G: {group R3}), - forall (a b: R -> R -> R), - cross_product a b = a \/ cross_product a b = a -> - forall (a b: R -> R -> R), - cross_product a b = a. -Proof. Admitted. -End putnam_2010_a5. *) - -(* From mathcomp Require Import matrix ssralg ssrbool. -Open Scope ring_scope. -Definition putnam_1991_a2_solution := False. -Theorem putnam_1991_a2 - (R : comUnitRingType) - (n : nat) - (npos : n >= 1) - : (exists A B : 'M[R]_n, A <> B /\ mulmx (mulmx A A) A = mulmx (mulmx B B) B /\ - mulmx (mulmx A A) B = mulmx (mulmx B B) A /\ - (mulmx A A + mulmx B B) \in unitmx) <-> putnam_1991_a2_solution. -Proof. Admitted. *) - -(* From mathcomp Require Import ssrnat ssrnum ssralg poly polydiv seq. -Open Scope ring_scope. -Definition putnam_1992_b4_solution := 3984%nat. -Theorem putnam_1992_b4 - (R : numDomainType) - (itercomp := fix iter (f : {poly R} * {poly R} -> {poly R} * {poly R}) (n : nat) (p : {poly R} * {poly R}) : {poly R} * {poly R} := - match n with - | O => p - | S n' => f (iter f n' p) - end) - (qr : {poly R} * {poly R} -> {poly R} * {poly R} := fun duple => (deriv (fst duple) * snd duple - deriv (snd duple) * fst duple, snd duple * snd duple)) - (valid : {poly R} -> Prop := fun p => p <> 0 /\ lt (size p) 1992 /\ exists c : R, gcdp_rec p ('X^3 - 'X) = polyC c) - (twople : {poly R} -> {poly R} -> Prop := fun p f => exists g : {poly R}, g * fst (itercomp qr 1992%nat (p, 'X^3 - 'X)) = f * snd (itercomp qr 1992%nat (p, 'X^3 - 'X))) - (min : nat) - (hmineq : exists p f : {poly R}, (valid p /\ twople p f) /\ size f = min) - (hminlb : forall p f : {poly R}, (valid p /\ twople p f) -> ge (size f) min) - : min = putnam_1992_b4_solution. -Proof. Admitted. *) - -(* Require Import Reals -GeoCoq.Main.Tarski_dev.Ch16_coordinates_with_functions -GeoCoq.Axioms.Definitions -GeoCoq.Main.Highschool.triangles. -Context `{T2D:Tarski_2D} `{TE:@Tarski_euclidean Tn TnEQD}. -Open Scope R. -Definition putnam_2003_b5_solution (pt_to_R : Tpoint -> (R * R)) (dist : Tpoint -> Tpoint -> R) (P Op : Tpoint) := sqrt 3 * (1 - (dist P Op) ^ 2 - 1). -Theorem putnam_2003_b5 - (pt_to_R : Tpoint -> (R * R)) - (F_to_R : F -> R) - (dist : Tpoint -> Tpoint -> R := fun A B => let (a, b) := pt_to_R A in let (c, d) := pt_to_R B in dist_euc a b c d) - (Triangle : Tpoint -> Tpoint -> Tpoint -> Prop := fun x y z => ~ Col x y z) (* copied from GeoCoq.Axioms.euclidean_axioms *) - (A B C Op Op' P: Tpoint) - (fixpoint : dist Op Op' = R1) - (hABC : OnCircle A Op Op' /\ OnCircle B Op Op' /\ OnCircle C Op Op') - (hABC' : Main.Highschool.triangles.equilateral A B C) - (hp : InCircle P Op Op') - (a : R := dist P A) - (b : R := dist P B) - (c : R := dist P C) - : exists (A' B' C' : Tpoint) (D: Cs O E A' B' C'), - Triangle A' B' C' /\ dist A' B' = a /\ dist B' C' = b /\ dist C' A' = c /\ - F_to_R (signed_area A' B' C' D A' B' C') = (putnam_2003_b5_solution pt_to_R dist P Op). -Proof. Admitted. *) - -(* Require Import Reals Rgeom ZArith -GeoCoq.Main.Tarski_dev.Ch16_coordinates_with_functions -GeoCoq.Main.Annexes.midpoint_theorems -GeoCoq.Main.Highschool.circumcenter. -Context `{T2D:Tarski_2D} `{TE:@Tarski_euclidean Tn TnEQD}. -Open Scope R. -Definition putnam_1997_a1_solution := 28. -Theorem putnam_1997_a1 - (pt_to_R : Tpoint -> (R * R)) - (dist : Tpoint -> Tpoint -> R := fun A B => let (a, b) := pt_to_R A in let (c, d) := pt_to_R B in dist_euc a b c d) - (A B C : Tpoint) - (Hp Op Mp Fp : Tpoint) - (l1 : dist Hp Op = 11) - (l2 : dist Op Mp = 5) - (s : Rectangle Hp Op Mp Fp) - (hHp : Bet A Fp Hp) - (hOp : is_circumcenter Op A B C) - (hMp : Midpoint B C Mp) - (hFp : Perp A C B Fp /\ Col A C Fp) - : dist B C = putnam_1997_a1_solution. -Proof. Admitted. *) - -(* Require Import Nat Reals Coquelicot.Coquelicot ZArith. -Theorem putnam_1997_b4 - (a : nat -> nat -> Z) - (max_degree : nat -> nat) - (coeff : nat -> (nat -> R)) - (hpoly : forall (m : nat) (x : R), sum_n (fun i => (coeff m i) * (x^i)) (max_degree m) = (1 + x + x^2)^m) - (ha : forall m n : nat, IZR (a m n) = coeff m n) - : forall k : nat, ge k 0 -> 0 <= (sum_n (fun i => (-1)^i * (IZR (a (Nat.sub k i) i))) (Z.to_nat (Coquelicot.Rcomplements.floor (2 * INR k / 3)))) <= 1. -Proof. Admitted. *) - -(* From mathcomp Require Import ssralg ssrnum fintype seq poly. -Open Scope ring_scope. -Variable (R: numDomainType). -Definition putnam_1985_a6_solution : {poly R} := 6%:R *: 'X^2 + 5%:R *: 'X + 1%:R. -Theorem putnam_1985_a6 - (g : {poly R} := 3%:R *: 'X^2 + 7%:R *: 'X + 2%:R) - (Comp_poly_n := fix comp_poly_n (p : {poly R}) (n : nat) : {poly R} := - match n with - | O => 1 - | S n' => comp_poly (comp_poly_n p n') p - end) - : forall (f: {poly R}), f`_0 = 0 -> - forall (n: nat), - let F : {poly R} := Comp_poly_n f n in - let G : {poly R} := Comp_poly_n g n in - (\sum_(i < size F) F`_i) = (\sum_(i < size G) G`_i) - <-> f = putnam_1985_a6_solution. -Proof. Admitted. *) \ No newline at end of file diff --git a/coq/src/putnam_1965_b4.v b/coq/src/putnam_1965_b4.v index 33d4a59f..32e18301 100644 --- a/coq/src/putnam_1965_b4.v +++ b/coq/src/putnam_1965_b4.v @@ -1,7 +1,29 @@ -Require Import Reals Coquelicot.Hierarchy Ensembles. -Definition putnam_1965_b4_solution : (((R -> R) -> R -> R) * ((R -> R) -> R -> R)) * ((Ensemble R) * (R -> R)) := (((fun (h : R -> R) (x : R) => h x + x), (fun (h : R -> R) (x : R) => h x + 1)), ((fun x : R => x >= 0), sqrt)). +From mathcomp Require Import all_algebra all_ssreflect. +From mathcomp Require Import reals normedtype sequences topology. +From mathcomp Require Import classical_sets. +Import numFieldNormedType.Exports. +Import Order.TTheory GRing.Theory Num.Theory. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope ring_scope. +Local Open Scope classical_set_scope. + +Variable R : realType. +Definition putnam_1965_b4_solution : ((((R -> R) -> (R -> R)) * ((R -> R) -> (R -> R))) * ((set R) * (R -> R))) := +((fun h : R -> R => (fun x : R => h x + x), fun h : R -> R => (fun x => h x + 1)), ([set x : R | x >= 0], @Num.sqrt R)). Theorem putnam_1965_b4 - (f : nat -> R -> R) - (hf : forall n : nat, gt n 0 -> f n = (fun x : R => (sum_n (fun i : nat => (C n (2 * i)) * x ^ i) (n / 2)) / (sum_n (fun i : nat => (C n (2 * i + 1)) * x ^ i) ((n - 1) / 2)))) - : let '((p, q), (s, g)) := putnam_1965_b4_solution in (forall n : nat, gt n 0 -> f (Nat.add n 1) = (fun x : R => p (f n) x / q (f n) x) /\ s = (fun x : R => exists L : R, filterlim (fun n : nat => f n x) eventually (locally L)) /\ (forall x : R, s x -> filterlim (fun n : nat => f n x) eventually (locally (g x)))). -Proof. Admitted. + (f u v : nat -> R -> R) + (hu : forall n : nat, gt n 0 -> forall x : R, u n x = \sum_(0 <= i < n%/2 .+1) ('C(n, 2 * i)%:R * x^i)) + (hv : forall n : nat, gt n 0 -> forall x : R, v n x = \sum_(0 <= i < (n.-1)%/2 .+1) ('C(n, 2 * (i.+1))%:R * x^i)) + (hf : forall n : nat, gt n 0 -> forall x : R, f n x = u n x / v n x) + (n : nat) + (hn : gt n 0) + (f_seq : R -> (nat -> R) := fun (x : R) => fun (m : nat) => f m x) : + let '((p, q), (s, g)) := putnam_1965_b4_solution in + (forall x : R, v n x <> 0 -> v (n.+1) x <> 0 -> q (f n) x <> 0 -> f (n.+1) x = p (f n) x / q (f n) x) /\ + s = [set x : R | exists l : R, f_seq x @ \oo --> l] /\ + (forall x : R, x \in s -> (f_seq x) @ \oo --> g x). +Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_1968_a3.v b/coq/src/putnam_1968_a3.v index 8553351c..6f5a2828 100644 --- a/coq/src/putnam_1968_a3.v +++ b/coq/src/putnam_1968_a3.v @@ -1,8 +1,17 @@ -Require Import Ensembles List. From mathcomp Require Import fintype. -Variable A : finType. +From mathcomp Require Import all_algebra all_ssreflect. +From mathcomp Require Import classical_sets cardinality. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope classical_set_scope. +Local Open Scope card_scope. + Theorem putnam_1968_a3 - (nthvalue : list (Ensemble A) -> nat -> Ensemble A) - (hnthvalue : forall (l : list (Ensemble A)) (n : nat), n < length l -> nth_error l n = value (nthvalue l n)) - : exists l : list (Ensemble A), head l = value (Empty_set A) /\ (forall SS : Ensemble A, exists! i : nat, i < length l /\ nthvalue l i = SS) /\ - (forall i : nat, i < length l - 1 -> (exists a : A, (~((nthvalue l i) a) /\ nthvalue l (i + 1) = Ensembles.Add A (nthvalue l i) a) \/ (~((nthvalue l (i + 1)) a) /\ nthvalue l i = Ensembles.Add A (nthvalue l (i + 1)) a))). -Proof. Admitted. + (A : finType) : + exists (n : nat) (s : nat -> (set A)), + s 0 = set0 /\ + (forall (t : set A), exists! i, i < (\prod_(0 <= i < n) 2) /\ s i = t) /\ + (forall i, i + 1 < \prod_(0 <= i < n) 2 -> ((s i) `\` (s (i + 1))) `|` ((s (i + 1)) `\` (s i)) #= [set: 'I_1]). +Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_1969_a5.v b/coq/src/putnam_1969_a5.v index 1083aa7b..19a354c4 100644 --- a/coq/src/putnam_1969_a5.v +++ b/coq/src/putnam_1969_a5.v @@ -11,8 +11,17 @@ Local Open Scope ring_scope. Local Open Scope classical_set_scope. Variable R : realType. -Theorem putnam_1969_a5 : - forall x y : R -> R, (forall t : R, differentiable x t /\ differentiable y t) -> - (forall t : R, t > 0 -> x 0 = y 0 <-> exists u : R -> R, continuous u /\ - (x t = 0 /\ y t = 0 /\ forall p : R, x^`() p = -2 * y p + u p /\ y^`() p = -2 * x p + u p)). +Theorem putnam_1969_a5 + (x0 y0 t : R) + (ht : 0 < t) : + x0 = y0 <-> exists x y u : R -> R, + (forall x' : R, differentiable x x') /\ + (forall y' : R, differentiable y y') /\ + continuous u /\ + (forall x' : R, x^`() x' = -2 * (y x') + u x') /\ + (forall y' : R, y^`() y' = -2 * (x y') + u y') /\ + x 0 = x0 /\ + y 0 = y0 /\ + x t = 0 /\ + y t = 0. Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_1977_a3.v b/coq/src/putnam_1977_a3.v index 416ee684..cc23009b 100644 --- a/coq/src/putnam_1977_a3.v +++ b/coq/src/putnam_1977_a3.v @@ -10,7 +10,8 @@ Local Open Scope ring_scope. Variable R : realType. Definition putnam_1977_a3_solution : (R -> R) -> (R -> R) -> (R -> R) := fun f g x => g x - f (x - 3) + f (x - 1) + f (x + 1) - f (x + 3). Theorem putnam_1977_a3 - (f g : R -> R) - : let h := putnam_1977_a3_solution f g in - forall x : R, f x = (h (x + 1) + h (x - 1)) / 2 /\ g x = (h (x + 4) + h (x - 4)) / 2. + (f g h : R -> R) + (hf : forall x, f x = (h (x + 1) + h (x - 1)) / 2) + (hg : forall x, g x = (h (x + 4) + h (x - 4)) / 2) + : h = putnam_1977_a3_solution f g. Proof. Admitted. diff --git a/coq/src/putnam_1981_a1.v b/coq/src/putnam_1981_a1.v index c8b01ce3..5317d699 100644 --- a/coq/src/putnam_1981_a1.v +++ b/coq/src/putnam_1981_a1.v @@ -1,8 +1,20 @@ -Require Import Nat Reals Coquelicot.Coquelicot. From mathcomp Require Import div bigop. -Definition putnam_1981_a1_solution : R := Rdiv 1 8. +From mathcomp Require Import all_algebra all_ssreflect. +From mathcomp Require Import reals normedtype sequences topology. +From mathcomp Require Import classical_sets. +Import numFieldNormedType.Exports. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope ring_scope. +Local Open Scope classical_set_scope. + +Variable R : realType. +Definition putnam_1981_a1_solution : R := 1 / 8. Theorem putnam_1981_a1 - (P : nat -> nat -> Prop := fun n k => 5 ^ k %| (\prod_(1<=i nat) - (hf : forall (n: nat), gt n 1 -> P n (f n) /\ forall (k: nat), P n k -> le k (f n)) - : Lim_seq (fun n => INR (f n) / INR n ^ 2) = putnam_1981_a1_solution. + (P : nat -> nat -> Prop := fun n k => (5 ^ k %| (\prod_( 1<= i < n+1) (i%:Z ^+ i)))%Z) + (E : nat -> nat) + (hE : forall n : nat, ge n 1 -> P n (E n) /\ forall k : nat, P n k -> le k (E n)) + : (fun n : nat => (E n)%:R / (n%:R ^ 2)) @ \oo --> putnam_1981_a1_solution. Proof. Admitted. diff --git a/coq/src/putnam_1981_b5.v b/coq/src/putnam_1981_b5.v index 91cec724..26793fd3 100644 --- a/coq/src/putnam_1981_b5.v +++ b/coq/src/putnam_1981_b5.v @@ -1,4 +1,7 @@ Require Import BinNums Nat NArith Coquelicot.Coquelicot. + +Local Coercion Raxioms.INR : nat >-> Rdefinitions.R. + Definition putnam_1981_b5_solution := True. Theorem putnam_1981_b5 (f := fix count_ones (n : positive) : nat := @@ -7,6 +10,6 @@ Theorem putnam_1981_b5 | xO n' => count_ones n' | xI n' => 1 + count_ones n' end) - (k := Series (fun n => Rdefinitions.Rdiv (Raxioms.INR (f (Pos.of_nat n))) (Raxioms.INR (n + pow n 2)))) - : exists (a b: nat), Rtrigo_def.exp k = Rdefinitions.Rdiv (Raxioms.INR a) (Raxioms.INR b) <-> putnam_1981_b5_solution. + (k := Series (fun n => Rdefinitions.Rdiv (f (Pos.of_nat n)) (n + pow n 2))) + : exists (a b: nat), Rtrigo_def.exp k = Rdefinitions.Rdiv a b <-> putnam_1981_b5_solution. Proof. Admitted. diff --git a/coq/src/putnam_1983_a3.v b/coq/src/putnam_1983_a3.v index 646a520a..6e2425cd 100644 --- a/coq/src/putnam_1983_a3.v +++ b/coq/src/putnam_1983_a3.v @@ -1,13 +1,15 @@ -Require Import Nat ZArith Znumtheory. -Open Scope nat_scope. -Fixpoint nat_sum (a : nat -> nat) (k : nat) : nat := - match k with - | O => a O - | S k' => a k + nat_sum a k' - end. +From mathcomp Require Import all_algebra all_ssreflect. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope nat_scope. + Theorem putnam_1983_a3 (p : nat) - (hp : odd p = true /\ prime (Z.of_nat p)) - (f : nat -> nat := fun n => nat_sum (fun i => (i+1) * n^i) (p-2)) - : forall (a b : nat), a < p /\ b < p /\ a <> b -> (f a) mod p <> (f b) mod p. -Proof. Admitted. + (F : nat -> nat) + (poddprime : odd p = true /\ prime p) + (hF : forall n : nat, F n = \sum_(0 <= i < p-1) ((i.+1) * n ^ i)) + : forall a b : nat, 1 <= a <= p /\ 1 <= b <= p /\ a <> b -> ~ (F a = F b %[mod p]). +Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_1985_a6.v b/coq/src/putnam_1985_a6.v new file mode 100644 index 00000000..b879d8df --- /dev/null +++ b/coq/src/putnam_1985_a6.v @@ -0,0 +1,17 @@ +From mathcomp Require Import all_ssreflect all_algebra. +From mathcomp Require Import reals. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Open Scope ring_scope. + +Variable R : realType. +Definition putnam_1985_a6_solution : {poly R} := 6 * 'X ^ 2 + 5 * 'X + 1. +Theorem putnam_1985_a6 + (Gamma : {poly R} -> R := fun p => \sum_(i <- p) (i ^+ 2)) + (f : {poly R} := 3 * 'X ^ 2 + 7 * 'X + 2) + : let g := putnam_1985_a6_solution in + g.[0] = 1 /\ forall n : nat, ge n 1 -> Gamma (f ^ n) = Gamma (g ^ n). +Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_1985_b2.v b/coq/src/putnam_1985_b2.v index f2637f7e..b1a5f797 100644 --- a/coq/src/putnam_1985_b2.v +++ b/coq/src/putnam_1985_b2.v @@ -8,4 +8,4 @@ Theorem putnam_1985_b2 (hfn0 : forall n : nat, ge n 1 -> f n 0 = 0) (hfderiv : forall n : nat, forall x : R, Derive (f (S n)) x = (INR n + 1) * f n (x + 1)) : (forall n : nat, In n putnam_1985_b2_solution -> prime (Z.of_nat n)) /\ exists a : nat, INR a = f 100%nat 1 /\ fold_left mul putnam_1985_b2_solution 1%nat = a. -Proof. Admitted. +Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_1986_a6.v b/coq/src/putnam_1986_a6.v index 0cb90a86..21b63e89 100644 --- a/coq/src/putnam_1986_a6.v +++ b/coq/src/putnam_1986_a6.v @@ -1,20 +1,22 @@ -Require Import Reals Factorial Coquelicot.Coquelicot. -Definition putnam_1986_a6_solution (b: nat -> nat) (n: nat) := - let fix prod_n (b : nat -> nat) (n : nat) : nat := - match n with - | O => 1%nat - | S n' => Nat.mul (b n') (prod_n b n') - end in - INR (prod_n b n) / INR (fact n). +From mathcomp Require Import all_algebra all_ssreflect. +From mathcomp Require Import reals. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope ring_scope. + +Variable R : realType. +Definition putnam_1986_a6_solution : (nat -> nat) -> nat -> R := fun b n => (\prod_(1 <= i < n.+1) (b i)%:R) / n`!%:R. Theorem putnam_1986_a6 (n : nat) (npos : gt n 0) - (a : nat -> R) + (a : nat -> R) (b : nat -> nat) - (bpos : forall i : nat, lt i n -> gt (b i) 0) - (binj : forall i j : nat, lt i n /\ lt j n -> (b i = b j -> i = j)) - (f : R -> R) - (fpoly : exists c : nat -> R, exists deg : nat, f = fun x => sum_n (fun n => c n * x ^ n) deg) - (hf : forall x : R, (1 - x) ^ n * f x = 1 + sum_n (fun i => (a i) * x ^ (b i)) (n - 1)) - : f 1 = putnam_1986_a6_solution b n. -Proof. Admitted. + (bpos : forall i : nat, lt i n /\ gt n 0 -> gt (b i) 0) + (binj : forall i j : nat, lt i n /\ lt j n /\ gt i 0 /\ gt j 0 -> (b i = b j -> i = j)) + (f : {poly R}) + (hf : forall x : R, (1 - x) ^ n * f.[x] = 1 + \sum_(1 <= i < n.+1) ((a i) * x ^ (b i))) + : f.[1] = putnam_1986_a6_solution b n. +Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_1989_a1.v b/coq/src/putnam_1989_a1.v deleted file mode 100644 index f0ee0af5..00000000 --- a/coq/src/putnam_1989_a1.v +++ /dev/null @@ -1,7 +0,0 @@ -Require Import Nat Reals ZArith Znumtheory Coquelicot.Coquelicot Finite_sets. -Open Scope R. -Definition putnam_1989_a1_solution := 1%nat. -Theorem putnam_1989_a1 - (a : nat -> R := fun n => sum_n (fun i => if odd i then INR (10^(i-1)) else R0) (2*n+2)) - : cardinal nat (fun n => prime (floor (a n))) putnam_1989_a1_solution. -Proof. Admitted. diff --git a/coq/src/putnam_1990_b2.v b/coq/src/putnam_1990_b2.v index cae46349..214cc66f 100644 --- a/coq/src/putnam_1990_b2.v +++ b/coq/src/putnam_1990_b2.v @@ -1,13 +1,22 @@ -Require Import Reals Coquelicot.Coquelicot. -Open Scope R. -Theorem putnam_1990_b2 - (prod_n : (nat -> R) -> nat -> R := fix P (a: nat -> R) (n : nat) : R := - match n with - | O => 1 - | S n' => a n' * P a n' - end) +From mathcomp Require Import all_algebra all_ssreflect. +From mathcomp Require Import reals exp sequences normedtype topology. +From mathcomp Require Import classical_sets. +Import numFieldNormedType.Exports. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope ring_scope. +Local Open Scope classical_set_scope. + +Variable R : realType. + +Theorem putnam_1990_b2 (x z : R) - (hxz : Rabs x < 1 /\ Rabs z > 1) - (P : nat -> R := fun j => (prod_n (fun i => 1 - z * x ^ i) j) / (prod_n (fun i => z - x ^ (i + 1)) j)) - : 1 + Series (fun j => (1 + x ^ (j+1)) * P (j+1)%nat) = 0. -Proof. Admitted. + (P : nat -> R) + (xlt1 : `| x | < 1) + (zgt1 : `| z | > 1) + (hP : forall j : nat, ge j 1 -> P j = (\prod_(0 <= i < j) (1 - z * x ^ i)) / (\prod_(1 <= i < j.+1) (z - x ^ i))) + : (fun n : nat => 1 + \sum_(1 <= j < n) ((1 + x ^ j) * P j)) @ \oo --> 0. +Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_1990_b5.v b/coq/src/putnam_1990_b5.v index d1a40d89..3360fa45 100644 --- a/coq/src/putnam_1990_b5.v +++ b/coq/src/putnam_1990_b5.v @@ -1,8 +1,18 @@ -Require Import Reals Ensembles Finite_sets Coquelicot.Coquelicot. -Definition putnam_1990_b5_solution := True. -Open Scope R. -Theorem putnam_1990_b5 - (pn : (nat -> R) -> nat -> R -> R := fun a n x => sum_n (fun i => a i * pow x i) n) - : (exists (a : nat -> R), forall (n: nat), gt n 0 -> exists (roots: Ensemble R), cardinal R roots n /\ forall (r: R), roots r <-> pn a n r = 0) <-> - putnam_1990_b5_solution. -Proof. Admitted. +From mathcomp Require Import all_algebra all_ssreflect. +From mathcomp Require Import reals sequences topology normedtype. +From mathcomp Require Import classical_sets cardinality. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope ring_scope. +Local Open Scope classical_set_scope. +Local Open Scope card_scope. + +Variable R : realType. +Definition putnam_1990_b5_solution : Prop := True. +Theorem putnam_1990_b5 : + (exists a : nat -> R, (forall i : nat, a i != 0) /\ + (forall n : nat, ge n 1 -> (exists roots : seq R, uniq roots /\ size roots = n /\ all (fun x => 0 == \sum_(0 <= i < n.+1) (a i) * (x) ^ i) roots))). +Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_1991_a3.v b/coq/src/putnam_1991_a3.v index c5ae4639..86d9abad 100644 --- a/coq/src/putnam_1991_a3.v +++ b/coq/src/putnam_1991_a3.v @@ -1,14 +1,24 @@ -Require Import Reals Coquelicot.Coquelicot. -Open Scope R. -Definition poly (coeff : nat -> R) (deg : nat) : R -> R := fun x : R => sum_n (fun i => coeff i * x ^ i) deg. -Definition putnam_1991_a3_solution (coeff: nat -> R) : Prop := (forall n : nat, gt n 2 -> coeff n = 0) /\ exists (r1 r2 : R), r1 <> r2 /\ poly coeff 2 r1 = 0 /\ poly coeff 2 r2 = 0. +From mathcomp Require Import all_algebra all_ssreflect. +From mathcomp Require Import reals normedtype sequences topology derive. +From mathcomp Require Import classical_sets. +Import numFieldNormedType.Exports. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope ring_scope. +Local Open Scope classical_set_scope. + +Variable R : realType. +Definition putnam_1991_a3_solution : set {poly R} := [set P : {poly R} | size P = 3%nat /\ (exists r1 r2 : R, r1 <> r2 /\ P.[r1] = 0 /\ P.[r2] = 0)]. Theorem putnam_1991_a3 - (coeff : nat -> R) + (P : {poly R}) (n : nat) - (hn : coeff n <> 0 /\ forall m : nat, gt m n -> coeff m = 0) + (hn : n = (size P).-1) (hge : ge n 2) - : (exists (r: nat -> R), (forall i : nat, lt i (n - 1) -> r i < r (S i)) /\ - (forall i : nat, lt i n -> poly coeff n (r i) = 0) /\ - (forall i : nat, lt i (n - 1) -> (Derive (poly coeff n)) ((r i + r (S i)) / 2) = 0)) <-> - putnam_1991_a3_solution coeff. -Proof. Admitted. + : P \in putnam_1991_a3_solution <-> + (exists (r: nat -> R), (forall i : nat, lt i (n - 1) -> r i < r (i.+1)) /\ + (forall i : nat, lt i n -> P.[r i] = 0) /\ + (forall i : nat, lt i (n.-1) -> (P^`()).[(r i + r i.+1) / 2] = 0)). +Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_1995_b4.v b/coq/src/putnam_1995_b4.v index 89fbd543..473703e2 100644 --- a/coq/src/putnam_1995_b4.v +++ b/coq/src/putnam_1995_b4.v @@ -4,6 +4,7 @@ Definition putnam_1995_b4_solution : Z * Z * Z * Z := (3%Z,1%Z,5%Z,2%Z). Theorem putnam_1995_b4 (contfrac : R) (hcontfrac : contfrac = 2207 - 1/contfrac) + (hcontfrac' : 1 < contfrac) : let (abc, d) := putnam_1995_b4_solution in let (ab, c) := abc in let (a, b) := ab in pow contfrac (1 / 8) = (IZR a + IZR b * sqrt (IZR c))/IZR d. Proof. Admitted. diff --git a/coq/src/putnam_1996_a3.v b/coq/src/putnam_1996_a3.v index dbb9e677..49378a4f 100644 --- a/coq/src/putnam_1996_a3.v +++ b/coq/src/putnam_1996_a3.v @@ -1,11 +1,17 @@ -Require Import Nat Ensembles Finite_sets. From mathcomp Require Import fintype. +From mathcomp Require Import all_algebra all_ssreflect classical_sets cardinality. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope classical_set_scope. +Local Open Scope card_scope. + Definition putnam_1996_a3_solution : Prop := False. -Theorem putnam_1996_a3 - (studentchoicesinrange : (nat -> Ensemble nat) -> Prop := (fun studentchoices : (nat -> Ensemble nat) => forall n : nat, Included _ (studentchoices n) (fun i : nat => le 1 i /\ le i 6))) - (studentchoicesprop : (nat -> Ensemble nat) -> Prop := (fun studentchoices : (nat -> Ensemble nat) => - exists S : Ensemble nat, Included _ S (fun i : nat => le 1 i /\ le i 20) /\ cardinal _ S 5 /\ - (exists c1 c2 : nat, (le 1 c1 /\ le c1 6) /\ (le 1 c2 /\ le c2 6) /\ c1 <> c2 /\ - ((Included _ (fun i : nat => i = c1 \/ i = c2) (fun i : nat => forall s : nat, In _ S s -> In _ (studentchoices s) i)) - \/ (Included _ (fun i : nat => i = c1 \/ i = c2) (fun i : nat => forall s : nat, In _ S s -> ~ (In _ (studentchoices s) i))))))) - : (forall studentchoices : (nat -> Ensemble nat), studentchoicesinrange studentchoices -> studentchoicesprop studentchoices) <-> putnam_1996_a3_solution. +Theorem putnam_1996_a3 : + (forall choices : 'I_20 -> set 'I_6, + exists (students : set 'I_20) (courses : set 'I_6), + students #= [set: 'I_5] /\ courses #= [set: 'I_2] /\ + (courses `<=` \bigcap_(s in students) (choices s) \/ courses `<=` \bigcap_(s in students) (~` choices s))) + <-> putnam_1996_a3_solution. Proof. Admitted. diff --git a/coq/src/putnam_1998_a4.v b/coq/src/putnam_1998_a4.v index 6a2f4284..bfc03e00 100644 --- a/coq/src/putnam_1998_a4.v +++ b/coq/src/putnam_1998_a4.v @@ -1,13 +1,18 @@ -Require Import Nat ZArith Reals Coquelicot.Coquelicot. -Open Scope nat_scope. -Definition putnam_1998_a4_solution : nat -> Prop := (fun n : nat => exists k : nat, n = 6 * k + 1). +From mathcomp Require Import all_algebra all_ssreflect. +From mathcomp Require Import classical_sets. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope classical_set_scope. + +Definition putnam_1998_a4_solution : set nat := [set n | n = 1 %[mod 6]]. Theorem putnam_1998_a4 - (concatenate : nat -> nat -> nat := fun x y => Nat.pow 10 (Z.to_nat (floor (Rdiv (ln (INR y)) (ln 10))) + 1) * x + y) - (a := fix A (n: nat) := - match n with - | O => O - | S O => 1 - | S ((S n'') as n') => if eqb n'' O then 10 else (concatenate (A n') (A n'')) - end) - : forall (n: nat), n >= 1 -> ((a (n-1)) mod 11 = 0 <-> putnam_1998_a4_solution n). -Proof. Admitted. + (A : nat -> list nat) + (hA1 : A 1 = [:: 0]) + (hA2 : A 2 = [:: 1]) + (hA : forall n, gt n 0 -> A (n.+2) = A (n.+1) ++ A n) + (of_digits : list nat -> nat := fun L => foldl (fun x y => 10 * y + x) 0 L) + : [set n : nat | ge n 1 /\ 11 %| of_digits (A n)] = putnam_1998_a4_solution. +Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_1999_a3.v b/coq/src/putnam_1999_a3.v index daa763fe..e5a175ef 100644 --- a/coq/src/putnam_1999_a3.v +++ b/coq/src/putnam_1999_a3.v @@ -1,6 +1,6 @@ Require Import Reals Coquelicot.Coquelicot. Theorem putnam_1999_a3 - (f : R -> R := fun x => 1/(1- 2 * x - x^2)) + (f : R -> R := fun x => 1/(1 - 2 * x - x^2)) (a : nat -> R) (hf : exists epsilon : R, epsilon > 0 /\ (forall x : R, 0 <= Rabs (x) < epsilon -> filterlim (fun n : nat => sum_n (fun i => a i * x^i) n) eventually (locally (f x)))) : forall n : nat, exists m : nat, (a n)^2 + (a (S n))^2 = a m. diff --git a/coq/src/putnam_1999_b2.v b/coq/src/putnam_1999_b2.v index 25b7d49b..8605cbce 100644 --- a/coq/src/putnam_1999_b2.v +++ b/coq/src/putnam_1999_b2.v @@ -1,10 +1,18 @@ -Require Import List Reals Coquelicot.Coquelicot. +From mathcomp Require Import all_algebra all_ssreflect. +From mathcomp Require Import reals complex derive topology normedtype. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope ring_scope. + +Variable R : realType. + Theorem putnam_1999_b2 - (a1 a2: nat -> R) - (n: nat) - (p : R -> R := fun x => sum_n (fun i => a1 i * x ^ i) n) - (q : R -> R := fun x => sum_n (fun i => a2 i * x ^ i) 2) - (hP : forall (x: R), p x = q x * (Derive_n p 2) x) - : (exists (r1 r2: R), r1 <> r2 /\ p r1 = 0 /\ p r2 = 0) -> - (exists (roots: list R), length roots = n /\ NoDup roots /\ (forall (r: R), In r roots -> p r = 0)). -Proof. Admitted. + (P Q : {poly R[i]}) + (hQ : size Q = 3%nat) + (hP : forall x : R[i], P.[x] = Q.[x] * (P^`(2)).[x]) + : (exists x1 x2 : R[i], x1 <> x2 /\ P.[x1] = 0 /\ P.[x2] = 0) -> + (exists f : seq R[i], size f = (size P).-1 /\ uniq f /\ all (fun x => P.[x] == 0) f). +Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_2000_a6.v b/coq/src/putnam_2000_a6.v index 1679776f..54499a81 100644 --- a/coq/src/putnam_2000_a6.v +++ b/coq/src/putnam_2000_a6.v @@ -1,9 +1,15 @@ -Require Import ZArith Reals Coquelicot.Coquelicot. +From mathcomp Require Import all_algebra all_ssreflect. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope ring_scope. + Theorem putnam_2000_a6 - (n : nat) - (coeff : nat -> Z) - (f : R -> R := fun x => sum_n (fun i => (IZR (coeff i)) * (x^i)) n) - (a : nat -> R) - (ha : a O = 0 /\ forall i : nat, a (S i) = f (a i)) - : (exists m : nat, gt m 0 /\ a m = 0) -> (a (S O) = 0 \/ a (S (S O)) = 0). -Proof. Admitted. + (f : {poly int}) + (a : nat -> int) + (ha0 : a 0%nat = 0) + (ha : forall n : nat, a (n.+1) = f.[a n]) + : (exists m : nat, gt m 0 /\ a m = 0) -> (a 1%nat = 0 \/ a 2%nat = 0). +Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_2001_b2.v b/coq/src/putnam_2001_b2.v index 4d0c5fdc..554df025 100644 --- a/coq/src/putnam_2001_b2.v +++ b/coq/src/putnam_2001_b2.v @@ -1,7 +1,10 @@ Require Import Reals Coquelicot.Coquelicot. Definition putnam_2001_b2_solution : R -> R -> Prop := (fun x y : R => x = (3 ^ (1 / 5) + 1) / 2 /\ y = (3 ^ (1 / 5) - 1) / 2). Theorem putnam_2001_b2 - : forall (x y: R), - (1 / x + 1 / (2 * y) = (x ^ 2 + 3 * y ^ 2) * (3 * x ^ 2 + y ^ 2) /\ + (x y : R) + (hx : x <> 0) + (hy : y <> 0) + : (1 / x + 1 / (2 * y) = (x ^ 2 + 3 * y ^ 2) * (3 * x ^ 2 + y ^ 2) /\ 1 / x - 1 / (2 * y) = 2 * (y ^ 4 - x ^ 4)) <-> putnam_2001_b2_solution x y. Proof. Admitted. + diff --git a/coq/src/putnam_2001_b4.v b/coq/src/putnam_2001_b4.v index 6d4df621..7bd435a0 100644 --- a/coq/src/putnam_2001_b4.v +++ b/coq/src/putnam_2001_b4.v @@ -1,12 +1,13 @@ Require Import Basics List QArith. From mathcomp Require Import bigop fintype seq ssrbool ssreflect ssrnat ssrnum ssralg finfun. Open Scope Q_scope. -Definition putnam_2001_b4_solution : Prop := True. + Definition image (f: Q -> Q) := fun y => exists (x: Q), (~ In x [:: -1; 0; 1]) /\ f x = y. Fixpoint compose_n {A : Type} (f : A -> A) (n : nat) := match n with | O => fun x => x | S n' => compose f (compose_n f n') end. +Definition putnam_2001_b4_solution : Prop := True. Theorem putnam_2001_b4 (f : Q -> Q := fun x => x - 1 / x) : (~exists (x: Q), (~ In x [:: -1; 0; 1]) /\ (forall (n: nat), ge n 1 -> (image (compose_n f n)) x)) <-> putnam_2001_b4_solution. diff --git a/coq/src/putnam_2002_a1.v b/coq/src/putnam_2002_a1.v index 61112d51..d6c0ed6e 100644 --- a/coq/src/putnam_2002_a1.v +++ b/coq/src/putnam_2002_a1.v @@ -1,10 +1,21 @@ -Require Import Reals Factorial Coquelicot.Coquelicot. -Definition putnam_2002_a1_solution (k n: nat) := Rpower (-1 * INR k) (INR n) * INR (fact n). +From mathcomp Require Import all_algebra all_ssreflect. +From mathcomp Require Import reals normedtype sequences topology derive. +From mathcomp Require Import classical_sets. +Import numFieldNormedType.Exports. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope ring_scope. +Local Open Scope classical_set_scope. + +Variable R : realType. +Definition putnam_2002_a1_solution : nat -> nat -> R := fun k n : nat => (-k%:R) ^ n * n`!%:R. Theorem putnam_2002_a1 (k : nat) - (p : (nat -> R) -> R -> nat -> R := fun a x n => sum_n (fun i => a i * x ^ i) n) + (P : nat -> {poly R}) (kpos : gt k 0) - : forall (N: nat), forall (a: nat -> R) (n: nat), - (forall (x: R), (Derive_n (fun x => 1 / (x ^ k - 1)) N) x = (p a x n) / (x ^ k - 1) ^ (n + 1)) -> - p a 1 n = putnam_2002_a1_solution k n. -Proof. Admitted. + (Pderiv : forall n : nat, forall x : R, derive1n n (fun x' : R => 1/(x' ^ k - 1)) x = (P n).[x] / ((x ^ k - 1) ^ (n.+1))) + : forall n : nat, (P n).[1] = putnam_2002_a1_solution k n. +Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_2003_a2.v b/coq/src/putnam_2003_a2.v index bfd920dc..38d38b55 100644 --- a/coq/src/putnam_2003_a2.v +++ b/coq/src/putnam_2003_a2.v @@ -1,16 +1,20 @@ -Require Import List Reals Coquelicot.Coquelicot. +From mathcomp Require Import all_algebra all_ssreflect. +From mathcomp Require Import reals exp sequences normedtype. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope ring_scope. + +Variable R : realType. + Theorem putnam_2003_a2 - (Suml := fix suml (l1 l2 : list R) : list R := - match l1, l2 with - | nil, _ => nil - | _, nil => nil - | h1 :: t1, h2 :: t2 => (h1 + h2) :: suml t1 t2 - end) (n : nat) - (a b : list R) - (npos : ge n 1) - (ablen : length a = n /\ length b = n) - (abnneg : forall i : nat, lt i n -> nth i a 0 >= 0 /\ nth i b 0 >= 0) - : (fold_left Rmult a 1) ^ (1 / n) + (fold_left Rmult b 1) ^ (1 / n) <= - (fold_left Rmult (Suml a b) 1) ^ (1 / n). -Proof. Admitted. + (hn : gt n 0) + (a b : 'I_n -> R) + (abnneg : forall i : 'I_n, (a i) >= 0 /\ (b i) >= 0) + : expR (ln (\prod_(i < n) (a i)) * (1 / n%:R)) + + expR (ln (\prod_(i < n) (b i)) * (1 / n%:R)) <= + expR (ln (\prod_(i < n) (a i + b i)) * (1 / n%:R)). +Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_2003_b1.v b/coq/src/putnam_2003_b1.v index 39c7ad94..366421a1 100644 --- a/coq/src/putnam_2003_b1.v +++ b/coq/src/putnam_2003_b1.v @@ -1,8 +1,14 @@ -Require Import Reals Coquelicot.Coquelicot. -Definition putnam_2003_b1_solution := False. +From mathcomp Require Import all_algebra all_ssreflect. +From mathcomp Require Import reals. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope ring_scope. + +Variable R : realType. +Definition putnam_2003_b1_solution : Prop := False. Theorem putnam_2003_b1 - (p : (nat -> R) -> R -> nat -> R := fun coeff x n => sum_n (fun i => coeff i * x ^ i) n) - : (exists (coeffa coeffb coeffc coeffd: nat -> R) (na nb nc nd: nat), forall (x y: R), - 1 + x * y + x ^ 2 * y ^ 2 = (p coeffa x na) * (p coeffc y nc) + (p coeffb x nb) * (p coeffd y nd)) - <-> putnam_2003_b1_solution. -Proof. Admitted. + : (exists a b c d : {poly R}, forall x y : R, 1 + x * y + x ^ 2 * y ^ 2 = a.[x] * c.[y] + b.[x] * d.[y]) <-> putnam_2003_b1_solution. +Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_2003_b3.v b/coq/src/putnam_2003_b3.v index 4c262935..ffc95f9e 100644 --- a/coq/src/putnam_2003_b3.v +++ b/coq/src/putnam_2003_b3.v @@ -1,16 +1,12 @@ -Require Import Nat List Reals Coquelicot.Coquelicot. +From mathcomp Require Import all_algebra all_ssreflect. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope nat_scope. + Theorem putnam_2003_b3 - (lcmn := fix lcm_n (args : list nat) : nat := - match args with - | nil => 1%nat - | h :: args' => div (h * (lcm_n args')) (gcd h (lcm_n args')) - end) - (prodn := fix prod_n (m: nat -> R) (n : nat) : R := - match n with - | O => m 0%nat - | S n' => m n * prod_n m n' - end) (n : nat) - (npos : gt n 0) - : INR (fact n) = prodn (fun i => INR (lcmn (seq 1 (div n (i + 1))))) (sub n 1). -Proof. Admitted. + : n `! = \prod_(1 <= i < n.+1) (foldl (fun x y => lcmn x y) 1%nat (iota 1 (n%/i))). +Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_2004_b5.v b/coq/src/putnam_2004_b5.v index 5844b7b2..0787c4bc 100644 --- a/coq/src/putnam_2004_b5.v +++ b/coq/src/putnam_2004_b5.v @@ -1,10 +1,20 @@ -Require Import Reals Coquelicot.Coquelicot. -Definition putnam_2004_b5_solution := 2 / exp 1. +From mathcomp Require Import all_algebra all_ssreflect. +From mathcomp Require Import reals sequences topology normedtype exp. +From mathcomp Require Import classical_sets. +Import numFieldNormedType.Exports. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope ring_scope. +Local Open Scope classical_set_scope. + +Variable R : realType. +Definition at_left := fun (x : R) => within (fun y => y < x) (nbhs x). +Definition putnam_2004_b5_solution : R := 2 / expR 1. Theorem putnam_2004_b5 - (prodn := fix prod_n (m: nat -> R) (n : nat) : R := - match n with - | O => 1 - | S n' => m n' * prod_n m n' - end) - : filterlim (fun x => (Lim_seq (fun nInc => prodn (fun n => Rpower ((1 + x ^ (n + 1)) / (1 + x ^ n)) (x ^ n) ) nInc))) (at_left 1) (locally putnam_2004_b5_solution). -Proof. Admitted. + (xprod : R -> R) + (hxprod : forall x : R, 0 < x < 1 -> (fun N : nat => \prod_(0 <= n < N) (expR (ln ((1 + x ^ (n.+1))/(1 + x ^ n)) * (x ^ n)))) @ \oo --> xprod x) + : xprod @ (at_left 1) --> putnam_2004_b5_solution. +Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_2005_a3.v b/coq/src/putnam_2005_a3.v index c40a1c39..d515cfeb 100644 --- a/coq/src/putnam_2005_a3.v +++ b/coq/src/putnam_2005_a3.v @@ -3,9 +3,10 @@ Theorem putnam_2005_a3 (csqrt : C -> C) (c : nat -> C) (n : nat) + (hn : gt n 0) (p : C -> C := fun z : C => sum_n (fun i => c i * z^i) n) (g : C -> C := fun z : C => p z / csqrt (z^n)) (pzeros : forall z : C, p z = 0 -> norm z = 1%R) (hcsqrt : forall z : C, (csqrt z)^2 = z /\ Re (csqrt z) >= 0 /\ (Re (csqrt z) = 0%R -> Im (csqrt z) >= 0%R)) - : forall z : C, C_derive g z = 0 -> norm z = 1%R. -Proof. Admitted. + : forall z : C, z <> 0 -> C_derive g z = 0 -> norm z = 1%R. +Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_2005_b3.v b/coq/src/putnam_2005_b3.v index b546a2af..8c4fb957 100644 --- a/coq/src/putnam_2005_b3.v +++ b/coq/src/putnam_2005_b3.v @@ -2,5 +2,7 @@ Require Import Reals Coquelicot.Coquelicot. Definition putnam_2005_b3_solution (f : R -> R) := exists c d : R, c > 0 /\ d > 0 /\ (d = 1 -> c = 1) /\ forall x : R, x > 0 -> f x = c * Rpower x d. Theorem putnam_2005_b3 (f : R -> R) - : ((forall (x : R), x > 0 -> ex_derive f x) /\ exists a : R, a > 0 /\ forall x : R, x > 0 -> Derive f (a / x) = x / f x) <-> putnam_2005_b3_solution f. + (hf : forall x : R, x > 0 -> f x > 0) + (hf' : forall x : R, x > 0 -> ex_derive f x) + : (exists a : R, a > 0 /\ forall x : R, x > 0 -> Derive f (a / x) = x / f x) <-> putnam_2005_b3_solution f. Proof. Admitted. diff --git a/coq/src/putnam_2005_b4.v b/coq/src/putnam_2005_b4.v index 15b9e6a1..bfad1777 100644 --- a/coq/src/putnam_2005_b4.v +++ b/coq/src/putnam_2005_b4.v @@ -1,13 +1,18 @@ -Require Import List Ensembles Finite_sets ZArith. -Theorem putnam_2005_b4 - (Absl := fix absl (l : list Z) : list Z := - match l with - | nil => nil - | h :: t => Z.abs h :: absl t - end) - (m n : nat) +From mathcomp Require Import all_algebra all_ssreflect. +From mathcomp Require Import classical_sets cardinality. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope ring_scope. +Local Open Scope classical_set_scope. +Local Open Scope card_scope. + +Theorem putnam_2005_b4 + (m n : int) (mnpos : m > 0 /\ n > 0) - (f : nat -> nat -> nat) - (hf : forall m' n' : nat, (m' > 0 /\ n' > 0) -> cardinal (list Z) (fun x => length x = n' /\ Z.le (fold_left Z.add (Absl x) 0%Z) (Z.of_nat m')) (f m' n')) + (f : int -> int -> nat) + (hf : forall m' n' : int, (m' > 0 /\ n' > 0) -> [set: 'I_(f m' n')] #= [set x : seq int | (size x)%:Z = n' /\ \sum_(i <- x) `|i| <= m']) : f m n = f n m. -Proof. Admitted. +Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_2006_a5.v b/coq/src/putnam_2006_a5.v index 3f3572f7..6656486a 100644 --- a/coq/src/putnam_2006_a5.v +++ b/coq/src/putnam_2006_a5.v @@ -1,16 +1,22 @@ -Require Import Nat Reals Coquelicot.Coquelicot. -Definition putnam_2006_a5_solution (n: nat) := if eqb (n mod 4) (1%nat) then (Z.of_nat n) else (-1 * Z.of_nat n)%Z. +From mathcomp Require Import all_algebra all_ssreflect. +From mathcomp Require Import reals trigo. +From mathcomp Require Import classical_sets. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope ring_scope. +Local Open Scope classical_set_scope. + +Variable R : realType. +Definition putnam_2006_a5_solution : nat -> int := fun n : nat => if n == 1 %[mod 4] then n%:Z else - n%:Z. Theorem putnam_2006_a5 - (prodn := fix prod_n (m: nat -> R) (n : nat) : R := - match n with - | O => 1 - | S n' => m (S n') * prod_n m n' - end) (n : nat) - (th : R) + (theta : R) (a : nat -> R) - (nodd : odd n = true) - (thetairr : ~ exists (p q: Z), th / PI = IZR (p / q)) - (ha : forall k, a k = tan (th + (INR k * PI) / INR n)) - : sum_n_m a 1 n / prodn a n = IZR (putnam_2006_a5_solution n). -Proof. Admitted. + (nodd : odd n) + (thetairr : ~ exists a b : int, b <> 0 /\ theta / pi = (a%:~R / b%:~R)) + (ha : forall k : nat, ge k 1 /\ ge n k -> a k = tan (theta + (k%:R * pi) / n%:R)) + : \sum_(1 <= k < n.+1) a k / \prod_(1 <= k < n.+1) a k = (putnam_2006_a5_solution n)%:~R. +Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_2011_a2.v b/coq/src/putnam_2011_a2.v index 505d774e..650358de 100644 --- a/coq/src/putnam_2011_a2.v +++ b/coq/src/putnam_2011_a2.v @@ -1,18 +1,22 @@ -Require Import Reals Coquelicot.Coquelicot. -Definition putnam_2011_a2_solution := 3 / 2. +From mathcomp Require Import all_algebra all_ssreflect. +From mathcomp Require Import reals sequences topology normedtype. +From mathcomp Require Import classical_sets. +Import numFieldNormedType.Exports. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope ring_scope. +Local Open Scope classical_set_scope. + +Variable R : realType. +Definition putnam_2011_a2_solution : R := 3/2. Theorem putnam_2011_a2 - (prodn := fix prod_n (m: nat -> R) (n : nat) : R := - match n with - | O => m 0%nat - | S n' => m n * prod_n m n' - end) - (a: nat -> R) - (ha1 : a 0%nat = 1) - (B := fix b (n: nat) := - match n with - | O => 1 - | S n' => b n' * a n - 2 - end) - (M: R) - : (forall (n: nat), a n > 0 /\ B n > 0 /\ -1 * M <= B n <= M) -> Series (fun n => 1 / prodn a n) = putnam_2011_a2_solution. -Proof. Admitted. + (a b : R ^nat) + (habn : forall n : nat, a n > 0 /\ b n > 0) + (hab1 : a 0%nat = 1 /\ b 0%nat = 1) + (hb : forall n : nat, ge n 1 -> b n = b (n.-1) * a n - 2) + (hbnd : exists B : R, forall n : nat, `|b n| <= B) + : (fun n : nat => \sum_(1 <= i < n.+1) 1/(\prod_(1 <= j < i.+1) (a j))) @ \oo --> putnam_2011_a2_solution. +Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_2013_b4.v b/coq/src/putnam_2013_b4.v index 23eb73fd..ede8c593 100644 --- a/coq/src/putnam_2013_b4.v +++ b/coq/src/putnam_2013_b4.v @@ -6,7 +6,7 @@ Theorem putnam_2013_b4 (var : (R -> R) -> (R -> R) := fun f : R -> R => fun x : R => f x - (mu f)) (Var : (R -> R) -> R := fun f => RInt (fMult (var f) (var f)) 0 1) (M : (R -> R) -> R) - (hM : forall (f : R -> R), ((exists (x : R), (0 <= x <= 1) /\ Rabs (f x) = M f) /\ (forall x : R, 0 <= x <= 1 -> Rabs (f x) <= M f))) + (hM : forall (f : R -> R), (forall x : R, (0 <= x <= 1) -> continuity_pt f x) -> ((exists (x : R), (0 <= x <= 1) /\ Rabs (f x) = M f) /\ (forall x : R, 0 <= x <= 1 -> Rabs (f x) <= M f))) : forall (f g: R -> R), (forall (x: R), 0 <= x <= 1 -> continuity_pt f x /\ continuity_pt g x) -> Var (fMult f g) <= 2 * Var f * (M g)^2 + 2 * Var g * (M f)^2. Proof. Admitted. diff --git a/coq/src/putnam_2015_a3.v b/coq/src/putnam_2015_a3.v index f29d66ea..1073eb53 100644 --- a/coq/src/putnam_2015_a3.v +++ b/coq/src/putnam_2015_a3.v @@ -1,5 +1,7 @@ Require Import Reals ROrderedType Coquelicot.Coquelicot. Open Scope C. + +(* Note: While this formalization is quite unwieldy, to my knowledge there is no definition of complex log in real-closed.complex.v *) Definition putnam_2015_a3_solution : C := RtoC 13725. Theorem putnam_2015_a3 (Carg : C -> R := fun z => if Reqb (Im z) 0 then (if Rlt_dec (Re z) 0 then PI else R0) else atan ((Im z)/(Re z))) @@ -16,4 +18,4 @@ Theorem putnam_2015_a3 end) (f : nat -> nat -> C := fun a b => Clog 2%nat (Re (1 + cos (2*PI*INR(a+1)*INR(b+1)/2015)), sin (2*PI*INR(a+1)*INR(b+1)/2015))) : HCprod2 f 2015%nat 2015%nat = putnam_2015_a3_solution. -Proof. Admitted. +Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_2016_a2.v b/coq/src/putnam_2016_a2.v index 13664d88..c0ad1399 100644 --- a/coq/src/putnam_2016_a2.v +++ b/coq/src/putnam_2016_a2.v @@ -1,9 +1,9 @@ Require Import Reals Coquelicot.Coquelicot. Definition putnam_2016_a2_solution := (3 + sqrt 5) / 2. Theorem putnam_2016_a2 - (p : nat -> nat -> Prop := fun n m => Binomial.C m (n - 1) > Binomial.C (m - 1) n) + (p : nat -> nat -> Prop := fun n m => gt m 0 /\ Binomial.C m (n - 1) > Binomial.C (m - 1) n) (M : nat -> nat) - (pM : forall n : nat, p n (M n)) - (hMub : forall n m : nat, p n m -> le m (M n)) + (pM : forall n : nat, gt n 0 -> p n (M n)) + (hMub : forall n m : nat, gt n 0 /\ p n m -> le m (M n)) : Lim_seq (fun n => (INR (M n) / INR n)) = putnam_2016_a2_solution. Proof. Admitted. diff --git a/coq/src/putnam_2016_a6.v b/coq/src/putnam_2016_a6.v index 05b2f56e..68ecdf1e 100644 --- a/coq/src/putnam_2016_a6.v +++ b/coq/src/putnam_2016_a6.v @@ -1,20 +1,24 @@ -Require Import Reals Coquelicot.Coquelicot. +From mathcomp Require Import all_algebra all_ssreflect. +From mathcomp Require Import reals normedtype topology sequences measure lebesgue_measure lebesgue_integral. +From mathcomp Require Import classical_sets. +Import numFieldNormedType.Exports. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope ring_scope. +Local Open Scope classical_set_scope. + +Variable R : realType. +Definition mu := [the measure _ _ of @lebesgue_measure R]. Definition putnam_2016_a6_solution : R := 5 / 6. Theorem putnam_2016_a6 (C : R) - (max : (R -> R) -> R) - (hmax : forall (P : R -> R) (coeff: nat -> R) (n: nat), - (coeff n <> 0 /\ P = (fun x => sum_n (fun i => coeff i * x ^ i) n)) -> - exists (x: R), 0 <= x <= 1 /\ Rabs (P x) = max P) - (hmaxub : forall (P : R -> R) (coeff: nat -> R) (n: nat), - (coeff n <> 0 /\ P = (fun x => sum_n (fun i => coeff i * x ^ i) n)) -> - (forall (x: R), 0 <= x <= 1 -> Rabs (P x) <= max P)) - (p : R -> Prop := - fun c => - forall (P : R -> R) (coeff: nat -> R), - (coeff 3%nat <> R0 /\ P = (fun x => sum_n (fun i => coeff i * x ^ i) 3)) -> - (exists (x: R), 0 <= x <= 1 /\ P x = 0) -> RInt P 0 1 <= c * max P) - (hpC : p C) - (hClb : forall c : R, p c -> C <= c) - : (C = putnam_2016_a6_solution). -Proof. Admitted. + (p : R -> Prop) + (max : {poly R} -> R) + (hmax : forall P, exists x : R, 0 <= x <= 1 /\ P.[x] = max P) + (hmaxub : forall P, forall x, 0 <= x <= 1 -> P.[x] <= max P) + (hp : forall c, p c <-> forall P : {poly R}, (size P = 4%nat) -> (exists x : R, 0 <= x <= 1 /\ P.[x] = 0) -> \int[mu]_(x in [set x | 0 <= x <= 1]) P.[x] <= c * max P) + : p putnam_2016_a6_solution /\ forall C, p C -> C <= putnam_2016_a6_solution. +Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_2017_a1.v b/coq/src/putnam_2017_a1.v index 9831f2a8..59ecc709 100644 --- a/coq/src/putnam_2017_a1.v +++ b/coq/src/putnam_2017_a1.v @@ -1,8 +1,22 @@ -From mathcomp Require Import div. -Definition putnam_2017_a1_solution (x: nat) := x > 0 /\ (x = 1 \/ 5 %| x = true). +From mathcomp Require Import all_algebra all_ssreflect. +From mathcomp Require Import classical_sets. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope ring_scope. +Local Open Scope classical_set_scope. + +Definition putnam_2017_a1_solution : set int := [set x : int | x > 0 /\ (x = 1 \/ (5 %| x)%Z)]. Theorem putnam_2017_a1 - (A: nat -> Prop) - (valid_set : (nat -> Prop) -> Prop := fun E => forall (n: nat), E 2 /\ E (n*n) -> E n /\ E n -> E ((n+5)*(n+5))) - (hA : valid_set A /\ (forall (B: nat -> Prop), valid_set B -> (forall (n: nat), A n -> B n))) - : forall n, ~ A n <-> putnam_2017_a1_solution n. + (IsQualifying : (set int) -> Prop) + (IsQualifying_def : forall S, IsQualifying S <-> + (forall n : int, n \in S -> n > 0) /\ + 2 \in S /\ + (forall n : int, n > 0 /\ (n ^ 2) \in S -> n \in S) /\ + (forall n : int, n \in S -> (n + 5) ^ 2 \in S)) + (S : set int) + (hS : IsQualifying S /\ forall T : set int, T `<=` S -> ~ IsQualifying T) + : ~` S `&` [set n : int | n > 0] = putnam_2017_a1_solution. Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_2018_b1.v b/coq/src/putnam_2018_b1.v index 8d1d1090..4f62c828 100644 --- a/coq/src/putnam_2018_b1.v +++ b/coq/src/putnam_2018_b1.v @@ -1,29 +1,24 @@ -Require Import Logic Ensembles Finite_sets Nat List. -Open Scope nat_scope. -Definition putnam_2018_b1_solution : Ensemble (nat * nat) := fun v : nat * nat => exists (b : nat), 0 <= b <= 100 /\ even b = true /\ fst v = 1 /\ snd v = b. -Definition is_in_ensemble_fst (E : Ensemble (nat * nat)) (x : nat) : bool := - match E (x, _) with - | True => true -end. -Definition is_in_ensemble_snd (E : Ensemble (nat * nat)) (y : nat) : bool := - match E (_, y) with - | True => true -end. +From mathcomp Require Import all_algebra all_ssreflect. +From mathcomp Require Import reals trigo. +From mathcomp Require Import classical_sets cardinality. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope ring_scope. +Local Open Scope classical_set_scope. +Local Open Scope card_scope. + +Variable R : realType. +Definition putnam_2018_b4_solution : set (int * int) := [set v | exists b : int, 0 <= b <= 100 /\ (exists k : int, b = 2 * k) /\ v = (1,b)]. Theorem putnam_2018_b1 - (P : Ensemble (nat * nat)) - (v : nat * nat) - (vinP : Prop) - (Pvdiff : Ensemble (nat * nat)) - (Pvpart : Prop) - (hP : P = fun v': nat * nat => 0 <= fst v' <= 2 /\ 0 <= snd v' <= 100) - (hvinP : vinP = P v) - (hPvdiff : Pvdiff = fun v' => P v' /\ v' <> v) - (hPvpart : Pvpart = - (exists Q R : Ensemble (nat * nat), - (Union (nat * nat) Q R = Pvdiff) /\ - (Intersection (nat * nat) Q R = Empty_set (nat * nat)) /\ - (exists (n: nat), cardinal (nat * nat) Q n = cardinal (nat * nat) R n /\ - (fold_right plus 0%nat (filter (fun x: nat => is_in_ensemble_fst Q x) (seq 0 3)) = fold_right plus 0%nat (filter (fun x: nat => is_in_ensemble_fst R x) (seq 0 3))) /\ - (fold_right plus 0%nat (filter (fun y: nat => is_in_ensemble_snd Q y) (seq 0 101)) = fold_right plus 0%nat (filter (fun y: nat => is_in_ensemble_snd R y) (seq 0 101)))))) - : (vinP /\ Pvpart) <-> putnam_2018_b1_solution v. -Proof. Admitted. + (P : set (int * int) := [set v' | 0 <= v'.1 <= 2 /\ 0 <= v'.2 <= 100]) + (v : int * int) + (Pvdiff : set (int * int) := [set v' | v' \in P /\ v' != v]) + : (v \in P /\ (exists Q R : set (int * int), + Q `|` R = Pvdiff /\ Q `&` R = set0 /\ Q #= R /\ + \sum_(i <- iota 0 3) (\sum_(j <- iota 0 101) (if (i%:Z, j%:Z) \in Q then i%:Z else 0)) = \sum_(i <- iota 0 3) (\sum_(j <- iota 0 101) (if (i%:Z, j%:Z) \in R then i%:Z else 0)) /\ + \sum_(i <- iota 0 3) (\sum_(j <- iota 0 101) (if (i%:Z, j%:Z) \in Q then j%:Z else 0)) = \sum_(i <- iota 0 3) (\sum_(j <- iota 0 101) (if (i%:Z, j%:Z) \in R then j%:Z else 0)))) + <-> v \in putnam_2018_b4_solution. +Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_2018_b3.v b/coq/src/putnam_2018_b3.v index cbd64e13..0b3bfd14 100644 --- a/coq/src/putnam_2018_b3.v +++ b/coq/src/putnam_2018_b3.v @@ -1,5 +1,5 @@ Require Import Nat Ensembles. From mathcomp Require Import div seq ssrnat ssrbool. -Definition putnam_2018_b3_solution := fun n => n = 2^2 \/ n = 2^4 \/ n = 2^8 \/ n = 2^(16). +Definition putnam_2018_b3_solution := fun n => n = 2^2 \/ n = 2^4 \/ n = 2^16 \/ n = 2^(256). Theorem putnam_2018_b3 (E : Ensemble nat := fun n => n > 0 /\ (n < 10^(100)) /\ (n %| 2^n) /\ ((n-1) %| (2^n-1)) /\ ((n-2) %| (2^n-2))) : E = putnam_2018_b3_solution. diff --git a/coq/src/putnam_2018_b4.v b/coq/src/putnam_2018_b4.v index 3302cc9a..7e478e79 100644 --- a/coq/src/putnam_2018_b4.v +++ b/coq/src/putnam_2018_b4.v @@ -1,13 +1,18 @@ -Require Import Reals. +From mathcomp Require Import all_algebra all_ssreflect. +From mathcomp Require Import reals trigo. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope ring_scope. + +Variable R : realType. Theorem putnam_2018_b4 - (a: R) - (s := fix s (n:nat) {struct n}: R := - match n with - | O => R1 - | S O => a - | S (S O) => a - | S (S ((S n''') as n'') as n') => - (2 * (s n') * (s n'') - (s n'''))%R - end) - : (exists n : nat, s n = R0) -> exists (T: nat), (gt T 0 /\ forall (i: nat), s (i+T) = s i). -Proof. Admitted. + (a : R) + (x : nat -> R) + (hx0 : x 0%nat = 1) + (hx1 : x 1%nat = a /\ x 2%nat = a) + (hxn : forall n : nat, ge n 2 -> x (n.+1) = 2 * (x n) * (x n.-1) - (x n.-2)) + : (exists n : nat, x n = 0) -> exists c : nat, (gt c 0) /\ (forall n : nat, x (Nat.add n c) = x n). +Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_2021_a2.v b/coq/src/putnam_2021_a2.v index 2dac3a66..cfd2e281 100644 --- a/coq/src/putnam_2021_a2.v +++ b/coq/src/putnam_2021_a2.v @@ -1,9 +1,22 @@ -Require Import Reals. From Coquelicot Require Import Continuity Lim_seq Rbar. -Open Scope R. -Definition putnam_2021_a2_solution := exp 1. +From mathcomp Require Import all_algebra all_ssreflect. +From mathcomp Require Import reals normedtype sequences topology exp. +From mathcomp Require Import classical_sets. +Import numFieldNormedType.Exports. +Import Order.TTheory GRing.Theory Num.Theory. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope ring_scope. +Local Open Scope classical_set_scope. +Local Open Scope card_scope. + +Variable R : realType. +(* Note: This is a slightly weaker statement due to the lack of the ``eventually'' filter for reals. *) +Definition putnam_2021_a2_solution : R := expR 1. Theorem putnam_2021_a2 - (sequence_r_to_0 : nat -> R := fun n => 1 / INR n) - (f : R -> R -> R := fun r x => Rpower (Rpower (x+1) (r+1) - Rpower x (r+1)) 1/r) - (g : R -> R := fun x => Lim_seq (fun n => f (sequence_r_to_0 n) x)) - : Lim_seq (fun n => (g (INR n))/INR n) = putnam_2021_a2_solution. -Proof. Admitted. + (g : R -> R) + (hg : forall x : R, x > 0 -> (fun r : R => expR (1/r * ln ((expR (ln (x + 1) * (r + 1))) - (expR (ln x * (r + 1)))))) @ at_right 0 --> g x) + : (fun x : nat => g x%:R / x%:R) @ \oo --> putnam_2021_a2_solution. +Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_2021_b2.v b/coq/src/putnam_2021_b2.v index 85465288..4b3af544 100644 --- a/coq/src/putnam_2021_b2.v +++ b/coq/src/putnam_2021_b2.v @@ -1,8 +1,18 @@ -Require Import List Reals Coquelicot.Hierarchy Coquelicot.Series. -Definition putnam_2021_b2_solution := 2/3. -Theorem putnam_2021_b2 - (A : (nat -> R) -> nat -> R := fun a n => fold_left Rmult (map a (seq 0 n)) 1) - (B : (nat -> R) -> R := fun a => Series (fun n => INR n * (Rpower (A a n) 1/(INR n)))) - : (forall (a : nat -> R), (forall (i: nat), a i >= 0) /\ Series a = 1 -> putnam_2021_b2_solution >= B a) /\ - (exists (a : nat -> R), (forall (i: nat), a i >= 0) /\ Series a = 1 -> putnam_2021_b2_solution = B a). -Proof. Admitted. +From mathcomp Require Import all_algebra all_ssreflect. +From mathcomp Require Import reals sequences topology normedtype. +From mathcomp Require Import classical_sets. +Import numFieldNormedType.Exports. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope ring_scope. +Local Open Scope classical_set_scope. + +Variable R : realType. +Definition putnam_2021_b2_solution : R := 2/3. +Theorem putnam_2021_b2 : + putnam_2021_b2_solution \in supremums [set S : R | exists a : R ^nat, series a @ \oo --> 1 /\ (forall k, a k >= 0) /\ + series (fun n : nat => n%:R / (2 ^+ n) * (\prod_(1 <= k < n.+1) a k) ^ (1 / n%:R)) @ \oo --> S]. +Proof. Admitted. \ No newline at end of file diff --git a/coq/src/putnam_2021_b4.v b/coq/src/putnam_2021_b4.v index 5e5ae219..25cd7c8e 100644 --- a/coq/src/putnam_2021_b4.v +++ b/coq/src/putnam_2021_b4.v @@ -1,11 +1,15 @@ -Require Import PeanoNat. From mathcomp Require Import bigop fintype ssrnat. +From mathcomp Require Import all_algebra all_ssreflect. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope nat_scope. + Theorem putnam_2021_b4 - (F := fix f (n: nat) : nat := - match n with - | O => O - | S O => 1 - | S ((S n'') as n') => f n' + f n'' - end) - : forall (m: nat), m > 2 = true -> - exists (p: nat), (\prod_(k < (F m)) k^k) mod (F m) = F p. -Proof. Admitted. + (F : nat -> nat) + (hF01 : F 0 = 0 /\ F 1 = 1) + (hF : forall n : nat, F (n.+2) = F (n.+1) + F n) + : forall m : nat, m > 2 -> + exists p : nat, (\prod_(1 <= k < F m) k ^ k) = F p %[mod (F m)]. +Proof. Admitted. diff --git a/coq/src/putnam_2023_a1.v b/coq/src/putnam_2023_a1.v index 9373da4d..6e921d87 100644 --- a/coq/src/putnam_2023_a1.v +++ b/coq/src/putnam_2023_a1.v @@ -1,12 +1,19 @@ -Require Import Reals List Rtrigo_def Coquelicot.Derive. -Open Scope R. +From mathcomp Require Import all_ssreflect ssrnum ssralg. +From mathcomp Require Import reals trigo normedtype derive topology sequences. +From mathcomp Require Import classical_sets. +Import numFieldNormedType.Exports. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope ring_scope. +Local Open Scope classical_set_scope. + +Variable R : realType. Definition putnam_2023_a1_solution : nat := 18. Theorem putnam_2023_a1 - (f : nat -> R -> R := fun n (x : R) => - let f_i i := cos (INR i * x) in - let coeffs := map f_i (seq 1 n) in - fold_right Rmult 1 coeffs - ) - : gt putnam_2023_a1_solution 0 /\ Derive_n (f putnam_2023_a1_solution) 2 0 > 2023 /\ (forall n : nat, (gt n 0 /\ lt n putnam_2023_a1_solution) -> Derive_n (f n) 2 0 <= 2023). -Proof. Admitted. - + (f : nat -> R -> R := fun n x => \prod_(1 <= i < n.+1) cos (i%:R * x)) + : gt putnam_2023_a1_solution 0 /\ `|(f putnam_2023_a1_solution)^`(2) 0| > 2023 /\ + forall n : nat, gt n 0 -> lt n putnam_2023_a1_solution -> `|(f n)^`(2) 0| <= 2023. +Proof. Admitted. diff --git a/coq/src/putnam_2023_a2.v b/coq/src/putnam_2023_a2.v index 4f44b056..dd589afc 100644 --- a/coq/src/putnam_2023_a2.v +++ b/coq/src/putnam_2023_a2.v @@ -1,12 +1,22 @@ -Require Import Nat Ensembles Factorial Reals Coquelicot.Coquelicot. -Definition putnam_2023_a2_solution : nat -> Ensemble R := (fun n => (fun x => x = -1 / INR (fact n) \/ x = 1 / INR (fact n))). -Theorem putnam_2023_a2 +From mathcomp Require Import all_algebra all_ssreflect. +From mathcomp Require Import reals. +From mathcomp Require Import classical_sets. + +Set Implicit Arguments. +Unset Strict Implicit. +Unset Printing Implicit Defensive. + +Local Open Scope ring_scope. +Local Open Scope classical_set_scope. + +Variable R : realType. +Definition putnam_2023_a2_solution : nat -> set R := fun n => [set x | x = -1 / (n`!)%:R \/ x = 1 / (n`!)%:R]. +Theorem putnam_2023_a2 (n : nat) - (hn0 : gt n 0) - (hnev : even n = true) - (coeff: nat -> R) - (p : R -> R := fun x => sum_n (fun i => coeff i * x ^ i) (2 * n)) - (monic_even : coeff (mul 2 n) = 1) - (hpinv : forall k : Z, and (Z.le 1 (Z.abs k)) (Z.le (Z.abs k) (Z.of_nat n)) -> p (1 / (IZR k)) = IZR (k ^ 2)) - : (fun x => (p (1 / x) = x ^ 2 /\ ~ exists k : Z, x = IZR k /\ Z.le (Z.abs k) (Z.of_nat n))) = putnam_2023_a2_solution n. + (hn0 : gt n 0 /\ ~~ odd n) + (p : {poly R}) + (hp : p \is monic /\ size p = (n.*2).+1) + (S : set R := [set x | exists k : int, x = k%:~R /\ 1 <= `|k| <= n]) + (hpinv : forall k : int, k%:~R \in S -> p.[1 / k%:~R] = k%:~R ^+ 2) + : [set x | (p.[1 / x] == x ^+ 2) && (x \notin S)] = putnam_2023_a2_solution n. Proof. Admitted. diff --git a/docs/results.json b/docs/results.json index 84706eba..58213303 100644 --- a/docs/results.json +++ b/docs/results.json @@ -91,5 +91,15 @@ "size": 7, "condensed-compute-budget": "pass@4096", "note": "pass@2048 w/ T = 1.0 + pass@2048 w/ T = 0.7" + }, + "ABEL": { + "link": "https://openreview.net/forum?id=kk3mSjVCUO", + "open-data": "NONE", + "num-solved": { + "lean-wsolution": 7 + }, + "size": 7, + "condensed-compute-budget": "pass@596", + "note": "7 hour cumulative online proof search on 256 GPUs" } } \ No newline at end of file diff --git a/informal/README.md b/informal/README.md index b51b9eeb..2e898b17 100644 --- a/informal/README.md +++ b/informal/README.md @@ -8,3 +8,5 @@ that is, you must write: These statements are also present in the docstrings of some of the formal statements. Github CI will automatically catch if these are out of sync, but if you update them in one place you will have to update them in the other. + +When a problem happens to require a solution (i.e. some additional data requested in the problem statement), we also add an `informal_solution` field which has as value an imperative sentence roughly of the form "Show that the solution is ..." diff --git a/informal/putnam.json b/informal/putnam.json index 61bc9c43..e1fdaa2b 100644 --- a/informal/putnam.json +++ b/informal/putnam.json @@ -172,7 +172,7 @@ }, { "problem_name": "putnam_1964_a2", - "informal_statement": "Let $\\alpha$ be a real number. Find all continuous real-valued functions $f : [0, 1] \\to (0, \\infty)$ such that \n\\begin{align*}\n\\int_0^1 f(x) dx &= 1, \\\\\n\\int_0^1 x f(x) dx &= \\alpha, \\\\\n\\int_0^1 x^2 f(x) dx &= \\alpha^2. \\\\\n\\end{align*}", + "informal_statement": "Let $\\alpha$ be a real number. Find all continuous real-valued functions $f : [0, 1] \\to (0, \\infty)$ such that\n\\begin{align*}\n\\int_0^1 f(x) dx &= 1, \\\\\n\\int_0^1 x f(x) dx &= \\alpha, \\\\\n\\int_0^1 x^2 f(x) dx &= \\alpha^2. \\\\\n\\end{align*}", "informal_solution": "Prove that there are no such functions.", "tags": [ "analysis", @@ -189,14 +189,14 @@ }, { "problem_name": "putnam_1964_a4", - "informal_statement": "The sequence of integers $u_n$ is bounded and satisfies \n\\[\nu_n = \\frac{u_{n-1} + u_{n-2} + u_{n-3}u_{n-4}}{u_{n-1}u_{n-2} + u_{n-3} + u_{n-4}}.\n\\] \nShow that it is periodic for sufficiently large $n$.", + "informal_statement": "The sequence of integers $u_n$ is bounded and satisfies\n\\[\nu_n = \\frac{u_{n-1} + u_{n-2} + u_{n-3}u_{n-4}}{u_{n-1}u_{n-2} + u_{n-3} + u_{n-4}}.\n\\]\nShow that it is periodic for sufficiently large $n$.", "tags": [ "analysis" ] }, { "problem_name": "putnam_1964_a5", - "informal_statement": "Prove that there exists a constant $k$ such that for any sequence $a_i$ of positive numbers, \n\\[\n\\sum_{n=1}^{\\infty} \\frac{n}{a_1 + a_2 + \\dots + a_n} \\leq k \\sum_{n=1}^{\\infty}\\frac{1}{a_n}.\n\\]", + "informal_statement": "Prove that there exists a constant $k$ such that for any sequence $a_i$ of positive numbers,\n\\[\n\\sum_{n=1}^{\\infty} \\frac{n}{a_1 + a_2 + \\dots + a_n} \\leq k \\sum_{n=1}^{\\infty}\\frac{1}{a_n}.\n\\]", "tags": [ "analysis" ] @@ -696,7 +696,7 @@ }, { "problem_name": "putnam_1969_b6", - "informal_statement": "Let $A$ be a $3 \\times 2$ matrix and $B$ be a $2 \\times 3$ matrix such that $$AB = \n\\begin{pmatrix}\n8 & 2 & -2 \\\\\n2 & 5 & 4 \\\\\n-2 & 4 & 5\n\\end{pmatrix}.\n$$ Prove that $$BA = \n\\begin{pmatrix}\n9 & 0 \\\\\n0 & 9\n\\end{pmatrix}.$$", + "informal_statement": "Let $A$ be a $3 \\times 2$ matrix and $B$ be a $2 \\times 3$ matrix such that $$AB =\n\\begin{pmatrix}\n8 & 2 & -2 \\\\\n2 & 5 & 4 \\\\\n-2 & 4 & 5\n\\end{pmatrix}.\n$$ Prove that $$BA =\n\\begin{pmatrix}\n9 & 0 \\\\\n0 & 9\n\\end{pmatrix}.$$", "informal_solution": "None.", "tags": [ "linear_algebra" @@ -1316,7 +1316,7 @@ }, { "problem_name": "putnam_1977_a6", - "informal_statement": "Let $X$ be the square $[0, 1] \\times [0, 1]$, and let $f : X \\to \\mathbb{R}$ be continuous. If $\\int_Y f(x, y) \\, dx \\, dy = 0$ for all squares $Y$ such that\n\\begin{itemize}\n\\item[(1)] $Y \\subseteq X$, \n\\item[(2)] $Y$ has sides parallel to those of $X$, \n\\item[(3)] at least one of $Y$'s sides is contained in the boundary of $X$, \n\\end{itemize}\nis it true that $f(x, y) = 0$ for all $x, y$?", + "informal_statement": "Let $X$ be the square $[0, 1] \\times [0, 1]$, and let $f : X \\to \\mathbb{R}$ be continuous. If $\\int_Y f(x, y) \\, dx \\, dy = 0$ for all squares $Y$ such that\n\\begin{itemize}\n\\item[(1)] $Y \\subseteq X$,\n\\item[(2)] $Y$ has sides parallel to those of $X$,\n\\item[(3)] at least one of $Y$'s sides is contained in the boundary of $X$,\n\\end{itemize}\nis it true that $f(x, y) = 0$ for all $x, y$?", "informal_solution": "Prove that $f(x,y)$ must be identically zero.", "tags": [ "analysis" @@ -1380,14 +1380,14 @@ }, { "problem_name": "putnam_1978_a4", - "informal_statement": "A binary operation (represented by multiplication) on $S$ has the property that $(ab)(cd) = ad$ for all $a, b, c, d$. Show that: \n\\begin{itemize}\n\\item[(1)] if $ab = c$, then $cc = c$; \n\\item[(2)] if $ab = c$, then $ad = cd$ for all $d$. \n\\end{itemize}\nFind a set $S$, and such a binary operation, which also satisfies:\n\\begin{itemize}\n\\item[(A)] $a a = a$ for all $a$; \n\\item[(B)] $ab = a \\neq b$ for some $a, b$; \n\\item[(C)] $ab \\neq a$ for some $a, b$.\n\\end{itemize}", + "informal_statement": "A binary operation (represented by multiplication) on $S$ has the property that $(ab)(cd) = ad$ for all $a, b, c, d$. Show that:\n\\begin{itemize}\n\\item[(1)] if $ab = c$, then $cc = c$;\n\\item[(2)] if $ab = c$, then $ad = cd$ for all $d$.\n\\end{itemize}\nFind a set $S$, and such a binary operation, which also satisfies:\n\\begin{itemize}\n\\item[(A)] $a a = a$ for all $a$;\n\\item[(B)] $ab = a \\neq b$ for some $a, b$;\n\\item[(C)] $ab \\neq a$ for some $a, b$.\n\\end{itemize}", "tags": [ "abstract_algebra" ] }, { "problem_name": "putnam_1978_a5", - "informal_statement": "Let $a_1, a_2, \\dots , a_n$ be reals in the interval $(0, \\pi)$ with arithmetic mean $\\mu$. Show that \n\\[\n\\prod_{i=1}^n \\left( \\frac{\\sin a_i}{a_i} \\right) \\leq \\left( \\frac{\\sin \\mu}{\\mu} \\right)^n.\n\\]", + "informal_statement": "Let $a_1, a_2, \\dots , a_n$ be reals in the interval $(0, \\pi)$ with arithmetic mean $\\mu$. Show that\n\\[\n\\prod_{i=1}^n \\left( \\frac{\\sin a_i}{a_i} \\right) \\leq \\left( \\frac{\\sin \\mu}{\\mu} \\right)^n.\n\\]", "tags": [ "analysis" ] @@ -1411,7 +1411,7 @@ }, { "problem_name": "putnam_1978_b3", - "informal_statement": "The polynomials $P_n(x)$ are defined by \n\\begin{align*}\nP_1(x) &= 1 + x, \\\\\nP_2(x) &= 1 + 2x, \\\\\nP_{2n+1}(x) &= P_{2n}(x) + (n + 1) x P_{2n-1}(x), \\\\\nP_{2n+2}(x) &= P_{2n+1}(x) + (n + 1) x P_{2n}(x). \n\\end{align*}\nLet $a_n$ be the largest real root of $P_n(x)$. Prove that $a_n$ is strictly monotonically increasing and tends to zero.", + "informal_statement": "The polynomials $P_n(x)$ are defined by\n\\begin{align*}\nP_1(x) &= 1 + x, \\\\\nP_2(x) &= 1 + 2x, \\\\\nP_{2n+1}(x) &= P_{2n}(x) + (n + 1) x P_{2n-1}(x), \\\\\nP_{2n+2}(x) &= P_{2n+1}(x) + (n + 1) x P_{2n}(x).\n\\end{align*}\nLet $a_n$ be the largest real root of $P_n(x)$. Prove that $a_n$ is strictly monotonically increasing and tends to zero.", "tags": [ "algebra", "analysis" @@ -1516,7 +1516,7 @@ }, { "problem_name": "putnam_1979_b6", - "informal_statement": "Let $z_i$ be complex numbers for $i = 1, 2, \\dots, n$. Show that \n\\[\n\\left \\lvert \\mathrm{Re} \\, [(z_1^2 + z_2^2 + \\dots + z_n^2)^{1/2} ] \\right \\rvert \\leq \\lvert \\mathrm{Re} \\, z_1 \\rvert + \\lvert \\mathrm{Re} \\, z_2 \\rvert + \\dots + \\lvert \\mathrm{Re} \\, z_n \\rvert.\n\\]", + "informal_statement": "Let $z_i$ be complex numbers for $i = 1, 2, \\dots, n$. Show that\n\\[\n\\left \\lvert \\mathrm{Re} \\, [(z_1^2 + z_2^2 + \\dots + z_n^2)^{1/2} ] \\right \\rvert \\leq \\lvert \\mathrm{Re} \\, z_1 \\rvert + \\lvert \\mathrm{Re} \\, z_2 \\rvert + \\dots + \\lvert \\mathrm{Re} \\, z_n \\rvert.\n\\]", "tags": [ "analysis" ] @@ -1762,7 +1762,7 @@ }, { "problem_name": "putnam_1983_a4", - "informal_statement": "Prove that for $m = 5 \\pmod 6$, \n\\[\n\\binom{m}{2} - \\binom{m}{5} + \\binom{m}{8} - \\binom{m}{11} + ... - \\binom{m}{m-6} + \\binom{m}{m-3} \\neq 0.\n\\]", + "informal_statement": "Prove that for $m = 5 \\pmod 6$,\n\\[\n\\binom{m}{2} - \\binom{m}{5} + \\binom{m}{8} - \\binom{m}{11} + ... - \\binom{m}{m-6} + \\binom{m}{m-3} \\neq 0.\n\\]", "tags": [ "algebra" ] @@ -2510,7 +2510,7 @@ { "problem_name": "putnam_1992_a4", "informal_statement": "Let $f$ be an infinitely differentiable real-valued function defined on the real numbers. If\n\\[\nf\\left( \\frac{1}{n} \\right) = \\frac{n^2}{n^2 + 1}, \\qquad n = 1, 2, 3, \\dots,\n\\]\ncompute the values of the derivatives $f^{(k)}(0), k = 1, 2, 3, \\dots$.", - "informal_solution": "Prove that \n\\[\nf^{(k)}(0) = \n\\begin{cases} \n(-1)^{k/2}k! & \\text{if $k$ is even;} \\\\\n0 & \\text{if $k$ is odd.} \\\\\n\\end{cases}\n\\]", + "informal_solution": "Prove that\n\\[\nf^{(k)}(0) =\n\\begin{cases}\n(-1)^{k/2}k! & \\text{if $k$ is even;} \\\\\n0 & \\text{if $k$ is odd.} \\\\\n\\end{cases}\n\\]", "tags": [ "analysis" ] @@ -3910,7 +3910,7 @@ { "problem_name": "putnam_2009_a2", "informal_statement": "Functions $f,g,h$ are differentiable on some open interval around $0$\nand satisfy the equations and initial conditions\n\\begin{gather*}\nf' = 2f^2gh+\\frac{1}{gh},\\quad f(0)=1, \\\\\ng'=fg^2h+\\frac{4}{fh}, \\quad g(0)=1, \\\\\nh'=3fgh^2+\\frac{1}{fg}, \\quad h(0)=1.\n\\end{gather*}\nFind an explicit formula for $f(x)$, valid in some open interval around $0$.", - "informal_solution": "Prove that the formula is \n\\[\nf(x) = 2^{-1/12} \\left(\\frac{\\sin(6x+\\pi/4)}{\\cos^2(6x+\\pi/4)}\\right)^{1/6}.\n\\]", + "informal_solution": "Prove that the formula is\n\\[\nf(x) = 2^{-1/12} \\left(\\frac{\\sin(6x+\\pi/4)}{\\cos^2(6x+\\pi/4)}\\right)^{1/6}.\n\\]", "tags": [ "analysis" ] @@ -4265,7 +4265,7 @@ }, { "problem_name": "putnam_2013_a2", - "informal_statement": "Let $S$ be the set of all positive integers that are \\emph{not} perfect squares. For $n$ in $S$, consider choices of integers\n$a_1, a_2, \\dots, a_r$ such that $n < a_1< a_2 < \\cdots < a_r$\nand $n \\cdot a_1 \\cdot a_2 \\cdots a_r$ is a perfect square, and\nlet $f(n)$ be the minumum of $a_r$ over all such choices. For example,\n$2 \\cdot 3 \\cdot 6$ is a perfect square, while $2 \\cdot 3$, $2 \\cdot 4$, \n$2 \\cdot 5$, $2 \\cdot 3 \\cdot 4$, $2 \\cdot 3 \\cdot 5$, $2 \\cdot 4 \\cdot 5$, and $2 \\cdot 3 \\cdot 4 \\cdot 5$ are not, and so $f(2) = 6$.\nShow that the function $f$ from $S$ to the integers is one-to-one.", + "informal_statement": "Let $S$ be the set of all positive integers that are \\emph{not} perfect squares. For $n$ in $S$, consider choices of integers\n$a_1, a_2, \\dots, a_r$ such that $n < a_1< a_2 < \\cdots < a_r$\nand $n \\cdot a_1 \\cdot a_2 \\cdots a_r$ is a perfect square, and\nlet $f(n)$ be the minumum of $a_r$ over all such choices. For example,\n$2 \\cdot 3 \\cdot 6$ is a perfect square, while $2 \\cdot 3$, $2 \\cdot 4$,\n$2 \\cdot 5$, $2 \\cdot 3 \\cdot 4$, $2 \\cdot 3 \\cdot 5$, $2 \\cdot 4 \\cdot 5$, and $2 \\cdot 3 \\cdot 4 \\cdot 5$ are not, and so $f(2) = 6$.\nShow that the function $f$ from $S$ to the integers is one-to-one.", "informal_solution": "None.", "tags": [ "number_theory", @@ -4315,7 +4315,7 @@ }, { "problem_name": "putnam_2013_b2", - "informal_statement": "Let $C = \\bigcup_{N=1}^\\infty C_N$, where $C_N$ denotes the set of those `cosine polynomials' of the form\n\\[\nf(x) = 1 + \\sum_{n=1}^N a_n \\cos(2 \\pi n x)\n\\]\nfor which:\n\\begin{enumerate}\n\\item[(i)]\n$f(x) \\geq 0$ for all real $x$, and\n\\item[(ii)]\n$a_n = 0$ whenever $n$ is a multiple of $3$.\n\\end{enumerate}\nDetermine the maximum value of $f(0)$ as $f$ ranges through $C$, and \nprove that this maximum is attained.", + "informal_statement": "Let $C = \\bigcup_{N=1}^\\infty C_N$, where $C_N$ denotes the set of those `cosine polynomials' of the form\n\\[\nf(x) = 1 + \\sum_{n=1}^N a_n \\cos(2 \\pi n x)\n\\]\nfor which:\n\\begin{enumerate}\n\\item[(i)]\n$f(x) \\geq 0$ for all real $x$, and\n\\item[(ii)]\n$a_n = 0$ whenever $n$ is a multiple of $3$.\n\\end{enumerate}\nDetermine the maximum value of $f(0)$ as $f$ ranges through $C$, and\nprove that this maximum is attained.", "informal_solution": "The maximum value of $f(0)$ is $3$.", "tags": [ "algebra" @@ -4512,7 +4512,7 @@ }, { "problem_name": "putnam_2015_b4", - "informal_statement": "Let $T$ be the set of all triples $(a,b,c)$ of positive integers for which there exist triangles with side lengths $a,b,c$. Express\n\\[\n\\sum_{(a,b,c) \\in T} \\frac{2^a}{3^b 5^c} \n\\]\nas a rational number in lowest terms.", + "informal_statement": "Let $T$ be the set of all triples $(a,b,c)$ of positive integers for which there exist triangles with side lengths $a,b,c$. Express\n\\[\n\\sum_{(a,b,c) \\in T} \\frac{2^a}{3^b 5^c}\n\\]\nas a rational number in lowest terms.", "informal_solution": "The answer is $17/21$.", "tags": [ "algebra" @@ -4554,7 +4554,7 @@ }, { "problem_name": "putnam_2016_a3", - "informal_statement": "Suppose that $f$ is a function from $\\mathbb{R}$ to $\\mathbb{R}$ such that\n\\[\nf(x) + f\\left( 1 - \\frac{1}{x} \\right) = \\arctan x\n\\]\nfor all real $x \\neq 0$. (As usual, $y = \\arctan x$ means $-\\pi/2 < y < \\pi/2$ and $\\tan y = x$.) Find \n\\[\n\\int_0^1 f(x)\\,dx.\n\\]", + "informal_statement": "Suppose that $f$ is a function from $\\mathbb{R}$ to $\\mathbb{R}$ such that\n\\[\nf(x) + f\\left( 1 - \\frac{1}{x} \\right) = \\arctan x\n\\]\nfor all real $x \\neq 0$. (As usual, $y = \\arctan x$ means $-\\pi/2 < y < \\pi/2$ and $\\tan y = x$.) Find\n\\[\n\\int_0^1 f(x)\\,dx.\n\\]", "informal_solution": "Prove that the answer is $\\frac{3\\pi}{8}$.", "tags": [ "analysis" @@ -4562,7 +4562,7 @@ }, { "problem_name": "putnam_2016_a5", - "informal_statement": "Suppose that $G$ is a finite group generated by the two elements $g$ and $h$, where the order of $g$ is odd. Show that every element of $G$ can be written in the form\n\\[\ng^{m_1} h^{n_1} g^{m_2} h^{n_2} \\cdots g^{m_r} h^{n_r}\n\\]\nwith $1 \\leq r \\leq |G|$ and $m_1, n_1, m_2, n_2, \\ldots, m_r, n_r \\in \\{-1, 1\\}$. \n(Here $|G|$ is the number of elements of $G$.)", + "informal_statement": "Suppose that $G$ is a finite group generated by the two elements $g$ and $h$, where the order of $g$ is odd. Show that every element of $G$ can be written in the form\n\\[\ng^{m_1} h^{n_1} g^{m_2} h^{n_2} \\cdots g^{m_r} h^{n_r}\n\\]\nwith $1 \\leq r \\leq |G|$ and $m_1, n_1, m_2, n_2, \\ldots, m_r, n_r \\in \\{-1, 1\\}$.\n(Here $|G|$ is the number of elements of $G$.)", "tags": [ "abstract_algebra" ] @@ -4689,7 +4689,7 @@ }, { "problem_name": "putnam_2017_b6", - "informal_statement": "Find the number of ordered $64$-tuples $(x_0,x_1,\\dots,x_{63})$ such that $x_0,x_1,\\dots,x_{63}$ are distinct elements of $\\{1,2,\\dots,2017\\}$ and \n\\[\nx_0 + x_1 + 2x_2 + 3x_3 + \\cdots + 63 x_{63}\n\\]\nis divisible by 2017.", + "informal_statement": "Find the number of ordered $64$-tuples $(x_0,x_1,\\dots,x_{63})$ such that $x_0,x_1,\\dots,x_{63}$ are distinct elements of $\\{1,2,\\dots,2017\\}$ and\n\\[\nx_0 + x_1 + 2x_2 + 3x_3 + \\cdots + 63 x_{63}\n\\]\nis divisible by 2017.", "informal_solution": "Prove that the answer is $\\frac{2016!}{1953!} - 63! \\cdot 2016$", "tags": [ "algebra", @@ -4804,7 +4804,7 @@ }, { "problem_name": "putnam_2019_a3", - "informal_statement": "Given real numbers $b_0, b_1, \\dots, b_{2019}$ with $b_{2019} \\neq 0$, let $z_1,z_2,\\dots,z_{2019}$ be \nthe roots in the complex plane of the polynomial \n\\[\nP(z) = \\sum_{k=0}^{2019} b_k z^k.\n\\]\nLet $\\mu = (|z_1| + \\cdots + |z_{2019}|)/2019$ be the average of the distances from $z_1,z_2,\\dots,z_{2019}$ to the origin. Determine the largest constant $M$ such that $\\mu \\geq M$ for all choices of $b_0,b_1,\\dots, b_{2019}$ that satisfy\n\\[\n1 \\leq b_0 < b_1 < b_2 < \\cdots < b_{2019} \\leq 2019.\n\\]", + "informal_statement": "Given real numbers $b_0, b_1, \\dots, b_{2019}$ with $b_{2019} \\neq 0$, let $z_1,z_2,\\dots,z_{2019}$ be\nthe roots in the complex plane of the polynomial\n\\[\nP(z) = \\sum_{k=0}^{2019} b_k z^k.\n\\]\nLet $\\mu = (|z_1| + \\cdots + |z_{2019}|)/2019$ be the average of the distances from $z_1,z_2,\\dots,z_{2019}$ to the origin. Determine the largest constant $M$ such that $\\mu \\geq M$ for all choices of $b_0,b_1,\\dots, b_{2019}$ that satisfy\n\\[\n1 \\leq b_0 < b_1 < b_2 < \\cdots < b_{2019} \\leq 2019.\n\\]", "informal_solution": "The answer is $M = 2019^{-1/2019}$.", "tags": [ "algebra" @@ -4921,7 +4921,7 @@ }, { "problem_name": "putnam_2020_a6", - "informal_statement": "For a positive integer $N$, let $f_N$ be the function defined by \n\\[\nf_N(x) = \\sum_{n=0}^N \\frac{N+1/2-n}{(N+1)(2n+1)} \\sin((2n+1)x).\n\\]\nDetermine the smallest constant $M$ such that $f_N(x) \\leq M$ for all $N$ and all real $x$.", + "informal_statement": "For a positive integer $N$, let $f_N$ be the function defined by\n\\[\nf_N(x) = \\sum_{n=0}^N \\frac{N+1/2-n}{(N+1)(2n+1)} \\sin((2n+1)x).\n\\]\nDetermine the smallest constant $M$ such that $f_N(x) \\leq M$ for all $N$ and all real $x$.", "informal_solution": "The smallest constant $M$ is $\\pi/4$.", "tags": [ "algebra" @@ -5149,7 +5149,7 @@ }, { "problem_name": "putnam_2023_a3", - "informal_statement": "Determine the smallest positive real number $r$ such that there exist differentiable functions $f\\colon \\mathbb{R} \\to \\mathbb{R}$ and $g\\colon \\mathbb{R} \\to \\mathbb{R}$ satisfying \n\\begin{enumerate}\n \\item[(a)] $f(0) > 0$, \n \\item[(b)] $g(0) = 0$, \n \\item[(c)] $|f'(x)| \\leq |g(x)|$ for all $x$, \n \\item[(d)] $|g'(x)| \\leq |f(x)|$ for all $x$, and \n \\item[(e)] $f(r) = 0$. \\end{enumerate}", + "informal_statement": "Determine the smallest positive real number $r$ such that there exist differentiable functions $f\\colon \\mathbb{R} \\to \\mathbb{R}$ and $g\\colon \\mathbb{R} \\to \\mathbb{R}$ satisfying\n\\begin{enumerate}\n \\item[(a)] $f(0) > 0$,\n \\item[(b)] $g(0) = 0$,\n \\item[(c)] $|f'(x)| \\leq |g(x)|$ for all $x$,\n \\item[(d)] $|g'(x)| \\leq |f(x)|$ for all $x$, and\n \\item[(e)] $f(r) = 0$. \\end{enumerate}", "informal_solution": "Show that the solution is $r = \\pi/2$.", "tags": [ "analysis" diff --git a/isabelle/putnam_1962_a2.thy b/isabelle/putnam_1962_a2.thy index 38aef144..a7b19430 100644 --- a/isabelle/putnam_1962_a2.thy +++ b/isabelle/putnam_1962_a2.thy @@ -4,11 +4,11 @@ theory putnam_1962_a2 imports Complex_Main begin definition putnam_1962_a2_solution :: "(real \ real) set" where "putnam_1962_a2_solution \ undefined" -(* {f :: real \ real. \ a c :: real. a > 0 \ f = (\ x. a / (1 - c * x)^2)} *) +(* {f :: real \ real. \ a c :: real. a \ 0 \ f = (\ x. a / (1 - c * x)^2)} *) theorem putnam_1962_a2: fixes hf :: "real \ (real \ real) \ bool" and hfinf :: "(real \ real) \ bool" - defines "hf \ \ (e :: real) (f :: real \ real). \ x \ {0<.. \ (e :: real) (f :: real \ real). (\ x :: real. f x \ 0) \ (\ x \ {0<.. \ (f :: real \ real). \ x > 0. (interval_lebesgue_integral lebesgue 0 x f) / x = sqrt((f 0) * (f x))" shows "(\ f :: real \ real. (hfinf f \ (\ g \ putnam_1962_a2_solution. \ x \ 0. g x = f x)) \ (\ e > 0. hf e f \ (\ g \ putnam_1962_a2_solution. \ x \ {0.. diff --git a/isabelle/putnam_1963_a3.thy b/isabelle/putnam_1963_a3.thy index 7b5eae62..5f2916d2 100644 --- a/isabelle/putnam_1963_a3.thy +++ b/isabelle/putnam_1963_a3.thy @@ -7,19 +7,17 @@ definition putnam_1963_a3_solution :: "(real \ real) \ n "putnam_1963_a3_solution \ undefined" (* \ (f :: real \ real) (n :: nat) (x :: real) (t :: real). (x-t)^(n-1) * (f t) / (fact (n-1)) * t^n *) theorem putnam_1963_a3: - fixes n :: "nat" - and f :: "real \ real" - and P :: "nat \ (real \ real) \ (real \ real)" - and delta :: "(real \ real) \ (real \ real)" - and D :: "nat \ (real \ real) \ (real \ real)" - and y :: "real \ real" - defines "delta \ \ g. ((\ x :: real. x * deriv g x))" - and "D \ \ m :: nat. \ g :: real \ real. (\ x :: real. (delta g) x - (real m) * (g x))" - and "y \ \ x :: real. interval_lebesgue_integral lebesgue 1 (ereal x) (putnam_1963_a3_solution f n x)" - assumes hn : "n \ 1" - and hf : "continuous_on UNIV f" - and hP : "P 0 y = y \ (\ m \ {0::nat.. k :: nat < n. ((deriv^^k) f) C1_differentiable_on UNIV) \ (\ x :: real \ 1. P n y x = f x) \ (\ i \ {0::nat.. (real \ real) \ (real \ real)" + and n :: "nat" + and f y :: "real \ real" + assumes hP : "(\ x. P 0 x = x) \ (\ (i :: nat) (y :: real \ real). P (i + 1) y = P i (\ x. x * deriv y x - (real_of_nat i) * y x))" + and hn : "0 < n" + and hf : "continuous_on {1..} f" + shows "((\ k :: nat < n. + ((deriv^^k) y) C1_differentiable_on {1..} ∧ + ((deriv^^k) y) 1 = 0) \ + (\ x :: real. x \ 0 \ (P n y) x = f x)) \ + (\ x :: real \ 1. y x = interval_lebesgue_integral lebesgue 1 (ereal x) (putnam_1963_a3_solution f n x))" sorry end \ No newline at end of file diff --git a/isabelle/putnam_1965_a6.thy b/isabelle/putnam_1965_a6.thy index 6bc8f8a4..57f9d12b 100644 --- a/isabelle/putnam_1965_a6.thy +++ b/isabelle/putnam_1965_a6.thy @@ -3,12 +3,16 @@ Complex_Main begin theorem putnam_1965_a6: - fixes u v m :: real - and pinter :: "(real \ real) \ bool" - assumes hm: "m > 1" - and huv: "u \ 0 \ v \ 0" - defines "pinter \ (\p::real\real. u * (fst p) + v * (snd p) = 1 \ (fst p) powr m + (snd p) powr m = 1)" - shows "((\! p :: real \ real. pinter p) \ (\ p :: real \ real. fst p \ 0 \ snd p \ 0 \ pinter p)) \ (\ n :: real. u powr n + v powr n = 1 \ m powi -1 + n powi -1 = 1)" + fixes u v m :: "real" + assumes hu : "0 < u" + and hv : "0 < v" + and hm : "1 < m" + shows "(\ x :: real > 0. \ y :: real > 0. + u * x + v * y = 1 \ + x powr m + y powr m = 1 \ + u = x powr (m - 1) \ + v = y powr (m - 1)) \ + (\ n :: real. u powr n + v powr n = 1 \ 1/m + 1/n = 1)" sorry end \ No newline at end of file diff --git a/isabelle/putnam_1965_b4.thy b/isabelle/putnam_1965_b4.thy index 703a07d5..b658b46b 100644 --- a/isabelle/putnam_1965_b4.thy +++ b/isabelle/putnam_1965_b4.thy @@ -5,9 +5,16 @@ begin definition putnam_1965_b4_solution :: "(((real \ real) \ real \ real) \ ((real \ real) \ real \ real)) \ ((real set) \ (real \ real))" where "putnam_1965_b4_solution \ undefined" (* ((\ h :: real \ real. \ x :: real. h x + x, \ h :: real \ real. \ x :: real. h x + 1), ({x :: real. x \ 0}, sqrt)) *) theorem putnam_1965_b4: - fixes f :: "nat \ real \ real" - assumes hf: "\ n > 0. f n = (\ x :: real. (\ i = 0 .. n div 2. (n choose (2 * i)) * x ^ i) / (\ i = 0 .. (n - 1) div 2. (n choose (2 * i + 1)) * x ^ i))" - shows "let ((p, q), (s, g)) = putnam_1965_b4_solution in (\ n > 0. f (n + 1) = (\ x. p (f n) x / q (f n) x) \ s = {x :: real. convergent (\ n. f n x)} \ (\ x \ s. (\ n. f n x) \ g x))" + fixes f u v :: "nat \ real \ real" + and n :: "nat" + assumes hu : "\ n :: nat > 0. \ x. u n x = (\ i = 0 .. n div 2. (n choose (2 * i)) * x ^ i)" + and hv : "\ n :: nat > 0. \ x. v n x = (\ i = 0 .. (n - 1) div 2. (n choose (2 * i + 1)) * x ^ i)" + and hf : "\ n :: nat > 0. \ x. f n x = u n x / v n x" + and hn : "0 < n" + shows "let ((p, q), (s, g)) = putnam_1965_b4_solution in + (\ n > 0. v n x \ 0 \ v (n+1) x \ 0 \ q (f n) x \ 0 \ f (n + 1) = (\ x. p (f n) x / q (f n) x) \ + s = {x :: real. convergent (\ n. f n x)} \ + (\ x \ s. (\ n. f n x) \ g x))" sorry -end +end \ No newline at end of file diff --git a/isabelle/putnam_1969_a5.thy b/isabelle/putnam_1969_a5.thy index 221e6d8a..918fe5b9 100644 --- a/isabelle/putnam_1969_a5.thy +++ b/isabelle/putnam_1969_a5.thy @@ -3,8 +3,19 @@ theory putnam_1969_a5 imports Complex_Main begin theorem putnam_1969_a5: - shows "\ x y :: real \ real. (x differentiable_on UNIV \ y differentiable_on UNIV) \ (\ t > 0. (x 0 = y 0 \ (\ u :: real \ real. continuous_on UNIV u \ x t = 0 \ y t = 0 \ - deriv x = (\ p :: real \ -2 * y p + u p) \ deriv y = (\ p :: real \ -2 * x p + u p))))" + fixes x0 y0 t :: "real" + assumes ht : "0 < t" + shows "x0 = y0 \ (\ x y u :: real \ real. + x differentiable_on UNIV \ + y differentiable_on UNIV \ + continuous_on UNIV u \ + (\ p :: real. deriv x p = -2 * y p + u p) \ + (\ p :: real. deriv y p = -2 * x p + u p) \ + x 0 = x0 \ + y 0 = y0 \ + x t = 0 \ + y t = 0)" sorry + end \ No newline at end of file diff --git a/isabelle/putnam_1969_b2.thy b/isabelle/putnam_1969_b2.thy index 9cd4c4cd..9c4f2d4f 100644 --- a/isabelle/putnam_1969_b2.thy +++ b/isabelle/putnam_1969_b2.thy @@ -6,11 +6,10 @@ begin definition putnam_1969_b2_solution :: bool where "putnam_1969_b2_solution \ undefined" (* False *) theorem putnam_1969_b2: - fixes G (structure) - and h :: "nat \ bool" - assumes hG: "group G \ finite (carrier G)" - defines "h \ (\n::nat. (\H::nat\('a set). (\i::nat\{0..(n-1)}. subgroup (H i) G \ H i \ carrier G) \ (carrier G = (\i::nat\{0..(n-1)}. H i))))" - shows "\(h 2) \ ((\(h 3)) \ putnam_1969_b2_solution)" + fixes P :: "nat \ bool" + defines "P \ \ n. \ G. group G \ finite (carrier G) \ + (\ H. (\ i\{0.. (H i) \ carrier G) \ (carrier G \ (\i::nat\{0.. (P 3 \ putnam_1969_b2_solution)" sorry end diff --git a/isabelle/putnam_1974_a4.thy b/isabelle/putnam_1974_a4.thy index b28f6fb6..d1753115 100644 --- a/isabelle/putnam_1974_a4.thy +++ b/isabelle/putnam_1974_a4.thy @@ -2,11 +2,11 @@ theory putnam_1974_a4 imports Complex_Main begin definition putnam_1974_a4_solution :: "nat \ real" where "putnam_1974_a4_solution \ undefined" -(* (\n::nat. (n / 2^(n-1)) * ((n-1) choose (nat \(n-1)/2\))) *) +(* (\n::nat. (n / 2^(n-1)) * ((n-1) choose (nat \n/2\))) *) theorem putnam_1974_a4: fixes n :: nat assumes hn: "n > 0" - shows "1/(2^(n-1)) * (\k::nat=0..((nat \n/2\)-1). (n - 2*k) * (n choose k)) = putnam_1974_a4_solution n" + shows "1/(2^(n-1)) * (\k::nat=0..(nat (\ n/2 \)). (n - 2*k) * (n choose k)) = putnam_1974_a4_solution n" sorry end diff --git a/isabelle/putnam_1974_b1.thy b/isabelle/putnam_1974_b1.thy index 4dfcbe48..447d052e 100644 --- a/isabelle/putnam_1974_b1.thy +++ b/isabelle/putnam_1974_b1.thy @@ -5,7 +5,7 @@ Complex_Main begin definition putnam_1974_b1_solution :: "(real^2) list \ bool" where "putnam_1974_b1_solution \ undefined" -(* \ points. \ (B :: real) (ordering :: nat \ nat). ordering permutes {0..<5} \ (\ i < 5. dist (points!(ordering i)) (points!(ordering ((i + 1) mod 5))) = B) *) +(* \ points. \ (B :: real) (ordering :: nat \ nat). B > 0 \ ordering permutes {0..<5} \ (\ i < 5. dist (points!(ordering i)) (points!(ordering ((i + 1) mod 5))) = B) *) theorem putnam_1974_b1: fixes on_unit_circle :: "(real^2) list \ bool" and distance_fun :: "(real^2) list \ real" diff --git a/isabelle/putnam_1977_a3.thy b/isabelle/putnam_1977_a3.thy index ecfc8087..6f25574b 100644 --- a/isabelle/putnam_1977_a3.thy +++ b/isabelle/putnam_1977_a3.thy @@ -4,8 +4,10 @@ begin definition putnam_1977_a3_solution::"(real\real) \ (real\real) \ (real\real)" where "putnam_1977_a3_solution \ undefined" (* \f. \g. \x. g x - f (x-3) + f (x-1) + f (x+1) - f (x+3) *) theorem putnam_1977_a3: - fixes f g::"real\real" - shows "let h = (putnam_1977_a3_solution f g) in (\x::real. f x = (h (x+1) + h (x-1)) / 2 \ g x = (h (x+4) + h (x-4)) / 2)" + fixes f g h :: "real\real" + assumes hf : "\ x. f x = (h (x+1) + h (x-1)) / 2" + and hg : "\ x. g x = (h (x+4) + h (x-4)) / 2" + shows "h = putnam_1977_a3_solution f g" sorry end \ No newline at end of file diff --git a/isabelle/putnam_1982_b4.thy b/isabelle/putnam_1982_b4.thy index 1584a3d4..2bafa4b9 100644 --- a/isabelle/putnam_1982_b4.thy +++ b/isabelle/putnam_1982_b4.thy @@ -5,7 +5,7 @@ definition putnam_1982_b4_solution::"bool \ bool" where "putnam_1982_b4_s (* True, True *) theorem putnam_1982_b4: fixes hn::"(int set) \ bool" - defines "hn \ \n. (\k::int. (\i \ n. i) dvd (\i \ n. (i + k)))" + defines "hn \ \n. (\ c :: int. c \ n) \ (\k::int. (\i \ n. i) dvd (\i \ n. (i + k)))" shows "((\n::(int set). hn n \ (\i \ n. abs(i) = 1)) \ fst putnam_1982_b4_solution) \ ((\n::(int set). (hn n \ (\i \ n. i > 0)) \ n = {1..card n})) \ snd putnam_1982_b4_solution" sorry diff --git a/isabelle/putnam_1984_a6.thy b/isabelle/putnam_1984_a6.thy index 02acd894..29e3bc87 100644 --- a/isabelle/putnam_1984_a6.thy +++ b/isabelle/putnam_1984_a6.thy @@ -10,7 +10,7 @@ theorem putnam_1984_a6: and gpeq :: "(nat \ nat) \ nat \ bool" defines "kadistinct \ \ (k :: nat) (a :: nat \ nat). k \ 1 \ (\ i j :: nat. (i < k \ j < k \ i \ j) \ a i \ a j)" and "gpeq \ \ (g :: nat \ nat) (p :: nat). p > 0 \ (\ (s :: nat) \ 1. g s = g (s + p))" - assumes hf : "\ n > 0. f n = (if [n \ 0] (mod 10) then (n mod 10) else f (n div 10))" + assumes hf : "\ n > 0. f n = (if [fact n \ 0] (mod 10) then ((fact n) mod 10) else f ((fact n) div 10))" shows "let (b, n) = putnam_1984_a6_solution in \ g :: nat \ nat. (\ (k :: nat) (a :: nat \ nat). kadistinct k a \ g (\ i=0..(k-1). a i) = f (\ i=0..(k-1). 5^(a i))) \ (if b then gpeq g n \ (\ p :: nat. gpeq g p \ p \ n) else \(\ p :: nat. gpeq g p))" diff --git a/isabelle/putnam_1991_a4.thy b/isabelle/putnam_1991_a4.thy index 99aae553..eed4aa96 100644 --- a/isabelle/putnam_1991_a4.thy +++ b/isabelle/putnam_1991_a4.thy @@ -8,12 +8,10 @@ definition putnam_1991_a4_solution :: bool where "putnam_1991_a4_solution \ real^2) \ bool" - and rareas :: "(nat \ real) \ bool" - and crline :: "(nat \ real^2) \ (nat \ real) \ bool" - defines "climit \ \ c. \(\ p :: real^2. \ \ :: real. \ > 0 \ (\ i :: nat. c i \ ball p \))" - and "rareas \ \ r. convergent (\ N. \ i = 0 .. N. pi * (r i) ^ 2)" - and "crline \ \ c r. \ v w :: real^2. w \ 0 \ (\ i :: nat. {p :: real^2. \ t :: real. p = v + t *s w} \ cball (c i) (r i) \ {})" + and rareas :: "(nat \ real) \ bool" + and crline :: "(nat \ real^2) \ (nat \ real) \ bool" + defines "climit \ \ c. \(\ p :: real^2. \ \ :: real. \ > 0 \ (\ f :: nat \ nat. strict_mono f \ (\ i :: nat. c (f i) \ ball p \)))" + and "rareas \ \ r. convergent (\ N. \ i = 0 .. N. pi * (r i) ^ 2)" + and "crline \ \ c r. \ v w :: real^2. w \ 0 \ (\ i :: nat. {p :: real^2. \ t :: real. p = v + t *s w} \ cball (c i) (r i) \ {})" shows "(\ c :: nat \ real^2. \ r :: nat \ real. (\ i :: nat. r i \ 0) \ climit c \ rareas r \ crline c r) \ putnam_1991_a4_solution" sorry - -end \ No newline at end of file diff --git a/isabelle/putnam_1995_b4.thy b/isabelle/putnam_1995_b4.thy index 983fa296..dbf3dac3 100644 --- a/isabelle/putnam_1995_b4.thy +++ b/isabelle/putnam_1995_b4.thy @@ -5,7 +5,8 @@ definition putnam_1995_b4_solution :: "int \ int \ int \ in (* (3,1,5,2) *) theorem putnam_1995_b4: fixes contfrac :: real - assumes hcontfrac: "contfrac = 2207 - 1/contfrac" + assumes hcontfrac : "contfrac = 2207 - 1/contfrac" + and hcontfrac': "1 < contfrac" shows "let (a,b,c,d) = putnam_1995_b4_solution in (contfrac powr (1/8) = (a + b * sqrt c) / d)" sorry diff --git a/isabelle/putnam_1998_a4.thy b/isabelle/putnam_1998_a4.thy index f934ca44..a639cf9d 100644 --- a/isabelle/putnam_1998_a4.thy +++ b/isabelle/putnam_1998_a4.thy @@ -3,16 +3,14 @@ begin definition putnam_1998_a4_solution::"nat set" where "putnam_1998_a4_solution \ undefined" (* {n::nat. [n = 1] (mod 6)} *) -fun digits::"nat \ nat list" where - "digits n = (if n < 10 then [n] else ([n mod 10::nat] @ digits (n div 10::nat)))" fun from_digits::"nat list \ nat" where "from_digits L = foldr (\a. \b. a + 10 * b) L 0" theorem putnam_1998_a4: - fixes A::"nat\nat" - assumes hA1 : "A 1 = 0" - and hA2 : "A 2 = 1" - and hA : "\n::nat > 2. A n = from_digits (digits (A (n-2)) @ digits (A (n-1)))" - shows "putnam_1998_a4_solution = {n::nat. n \ 1 \ 11 dvd (A n)}" + fixes A::"nat\nat list" + assumes hA1 : "A 1 = [0]" + and hA2 : "A 2 = [1]" + and hA : "\n::nat > 0. A (n+2) = A (n+1) @ A n" + shows "putnam_1998_a4_solution = {n::nat. n \ 1 \ 11 dvd (from_digits (A n))}" sorry end \ No newline at end of file diff --git a/isabelle/putnam_2001_b2.thy b/isabelle/putnam_2001_b2.thy index 5d786902..08c10b04 100644 --- a/isabelle/putnam_2001_b2.thy +++ b/isabelle/putnam_2001_b2.thy @@ -8,7 +8,9 @@ theorem putnam_2001_b2: fixes x y :: real and eq1 eq2 :: bool defines "eq1 \ 1 / x + 1 / (2 * y) = (x ^ 2 + 3 * y ^ 2) * (3 * x ^ 2 + y ^ 2)" - and "eq2 \ 1 / x - 1 / (2 * y) = 2 * (y ^ 4 - x ^ 4)" + and "eq2 \ 1 / x - 1 / (2 * y) = 2 * (y ^ 4 - x ^ 4)" + assumes hx : "x \ 0" + and hy : "y \ 0" shows "(eq1 \ eq2) \ (x, y) \ putnam_2001_b2_solution" sorry diff --git a/isabelle/putnam_2005_a3.thy b/isabelle/putnam_2005_a3.thy index 28962308..4985ec31 100644 --- a/isabelle/putnam_2005_a3.thy +++ b/isabelle/putnam_2005_a3.thy @@ -7,11 +7,13 @@ theorem putnam_2005_a3: fixes p :: "complex poly" and n :: nat and g :: "complex \ complex" + and z :: "complex" assumes pdeg : "degree p = n" and pzeros : "\z::complex. (poly p z = 0 \ norm z = 1)" and hg : "\z::complex. g z = (poly p z) / csqrt (z^n)" and hn : "n > 0" - shows "\z::complex. (deriv g z = 0 \ norm z = 1)" + and hz : "z \ 0 \ deriv g z = 0" + shows "norm z = 1" sorry end diff --git a/isabelle/putnam_2005_b3.thy b/isabelle/putnam_2005_b3.thy index bc7e498b..c68f5def 100644 --- a/isabelle/putnam_2005_b3.thy +++ b/isabelle/putnam_2005_b3.thy @@ -7,7 +7,9 @@ definition putnam_2005_b3_solution :: "(real \ real) set" where "put (* {f::real\real. (\c d::real. c > 0 \ d > 0 \ (d = 1 \ c = 1) \ (\x::real\{0<..}. f x = c * x powr d))} *) theorem putnam_2005_b3: fixes f :: "real \ real" - shows "(f differentiable_on {0<..} \ (\a::real>0. \x::real>0. deriv f (a/x) = x / f x)) \ f \ putnam_2005_b3_solution" + assumes hf : "\ x :: real. 0 < f x" + and hf' : "f differentiable_on {0<..}" + shows "(\a::real>0. \x::real>0. deriv f (a/x) = x / f x) \ f \ putnam_2005_b3_solution" sorry end diff --git a/isabelle/putnam_2007_a1.thy b/isabelle/putnam_2007_a1.thy index 64fd3206..874e1f3c 100644 --- a/isabelle/putnam_2007_a1.thy +++ b/isabelle/putnam_2007_a1.thy @@ -5,9 +5,11 @@ begin (* Note: Modified definition of tangent to handle this, but this is a bit of cheating - You would have to know that this works *) definition putnam_2007_a1_solution :: "real set" where "putnam_2007_a1_solution \ undefined" (* {2/3, 3/2, (13 + sqrt 601)/12, (13 - sqrt 601)/12} *) -definition reflect_tangent :: "(real \ real) \ (real \ real) \ bool" where "reflect_tangent \ (\f g::real\real. f C1_differentiable_on UNIV \ g C1_differentiable_on UNIV \ (\x y::real. f x = y \ g y = x \ deriv f x = 1 / deriv g y))" theorem putnam_2007_a1: - shows "\a::real. (reflect_tangent (\x::real. a*x^2 + a*x + 1/24) (\y::real. a*y^2 + a*y + 1/24) \ a \ putnam_2007_a1_solution)" + fixes P :: "(real \ real) \ bool" + and a :: "real" + assumes P_def : "\ f :: real \ real. (P f \ (\ x y. f x = y \ f y = x \ deriv f x * deriv f y = 1))" + shows "P (\ t :: real. a * t ^ 2 + a * t + 1 / 24) \ a \ putnam_2007_a1_solution" sorry end diff --git a/isabelle/putnam_2008_b3.thy b/isabelle/putnam_2008_b3.thy index e44e1384..6d2c7c29 100644 --- a/isabelle/putnam_2008_b3.thy +++ b/isabelle/putnam_2008_b3.thy @@ -8,7 +8,7 @@ theorem putnam_2008_b3: fixes hypercube :: "(real^4) set" and contains :: "real \ real^4 \ real^4 \ real^4 \ bool" defines "hypercube \ {P :: real^4. \ i. \P$i\ \ 1/(real 2)}" - and "contains \ \ r :: real. \ center :: real^4. \ P :: real^4. \ Q :: real^4. \ s t :: real. (s *s P + t *s Q \ 0 \ dist 0 (s *s P + t *s Q) = r) \ center + s *s P + t *s Q \ hypercube" + and "contains \ \ r :: real. \ center :: real^4. \ P :: real^4. \ Q :: real^4. (\ (\ c1 c2 :: real. c1 \ 0 \ c2 \ 0 \ c1 *s P + c2 *s Q = 0)) \ (\ s t :: real. (s *s P + t *s Q \ 0 \ dist 0 (s *s P + t *s Q) = r) \ center + s *s P + t *s Q \ hypercube)" shows "(\ center P Q :: real^4. contains putnam_2008_b3_solution center P Q) \ (\ r > putnam_2008_b3_solution. \(\ center P Q :: real^4. contains r center P Q))" sorry diff --git a/isabelle/putnam_2016_a2.thy b/isabelle/putnam_2016_a2.thy index a5d4dc48..e6ef5c7f 100644 --- a/isabelle/putnam_2016_a2.thy +++ b/isabelle/putnam_2016_a2.thy @@ -6,7 +6,7 @@ definition putnam_2016_a2_solution :: real where "putnam_2016_a2_solution \ nat" - defines "M \ \ n. GREATEST m. m choose (n - 1) > (m - 1) choose n" + assumes hM : "\ n :: nat > 0. M n = (GREATEST m. m choose (n - 1) > (m - 1) choose n)" shows "(\ n. M n / (real n)) \ putnam_2016_a2_solution" sorry diff --git a/isabelle/putnam_2017_a1.thy b/isabelle/putnam_2017_a1.thy index 666d3fc4..cbfb45b9 100644 --- a/isabelle/putnam_2017_a1.thy +++ b/isabelle/putnam_2017_a1.thy @@ -9,10 +9,10 @@ theorem putnam_2017_a1: assumes IsQualifying_def : "\ S. IsQualifying S \ (\ n \ S. 0 < n) \ 2 \ S \ - (\ n. n^2 \ S \ n \ S) \ + (\ n > 0. n^2 \ S \ n \ S) \ (\ n \ S. (n + 5)^2 \ S)" and hS : "S = (LEAST A. IsQualifying S)" shows "putnam_2017_a1_solution = {x :: int. x > 0} - s" - sorry + sorry end \ No newline at end of file diff --git a/isabelle/putnam_2018_b5.thy b/isabelle/putnam_2018_b5.thy index 9a94a3b8..20801bd8 100644 --- a/isabelle/putnam_2018_b5.thy +++ b/isabelle/putnam_2018_b5.thy @@ -6,14 +6,14 @@ begin theorem putnam_2018_b5: fixes f :: "real \ real \ real^2" - and fpart1 :: "2 \ real \ (real \ real)" - and fpart2 :: "2 \ real \ (real \ real)" - defines "fpart1 \ \ (i :: 2) (x2 :: real). \ x1 :: real. (f x1 x2)$i" - and "fpart2 \ \ (i :: 2) (x1 :: real). \ x2 :: real. (f x1 x2)$i" - assumes fdiff: "\ (i :: 2) (x :: real). (fpart1 i x) C1_differentiable_on UNIV \ (fpart2 i x) C1_differentiable_on UNIV" - and fpos: "\ (i :: 2) (x1 :: real) (x2 :: real). deriv (fpart1 i x2) x1 > 0 \ deriv (fpart2 i x1) x2 > 0" - and fexprgrt0: "\ x1 x2 :: real. (deriv (fpart1 1 x2) x1) * (deriv (fpart2 2 x1) x2) - (1 / 4) * ((deriv (fpart2 1 x1) x2) + deriv (fpart1 2 x2) x1) ^ 2 > 0" - shows "inj f" + and fpart1 :: "real \ (real \ real)" + and fpart2 :: "real \ (real \ real)" + defines "fpart1 \ \ (x2 :: real). \ x1 :: real. (f x1 x2)$0" + and "fpart2 \ \ (x1 :: real). \ x2 :: real. (f x1 x2)$1" + assumes fdiff: "\ (x :: real). (fpart1 x) C1_differentiable_on UNIV \ (fpart2 x) C1_differentiable_on UNIV" + and fpos: "\ (x1 :: real) (x2 :: real). deriv (fpart1 x2) x1 > 0 \ deriv (fpart2 x1) x2 > 0" + and fexprgrt0: "\ x1 x2 :: real. (deriv (fpart1 x2) x1) * (deriv (fpart2 x1) x2) - (1 / 4) * ((deriv (fpart2 x1) x2) + deriv (fpart1 x2) x1) ^ 2 > 0" + shows "inj (\ (a,b). f a b)" sorry end \ No newline at end of file diff --git a/isabelle/putnam_2019_a4.thy b/isabelle/putnam_2019_a4.thy deleted file mode 100644 index 980a59d9..00000000 --- a/isabelle/putnam_2019_a4.thy +++ /dev/null @@ -1,14 +0,0 @@ -theory putnam_2019_a4 imports Complex_Main -"HOL-Analysis.Set_Integral" -"HOL-Analysis.Lebesgue_Measure" -begin - -definition putnam_2019_a4_solution :: bool where "putnam_2019_a4_solution \ undefined" -(* False *) -theorem putnam_2019_a4: - fixes fint :: "((real^3) \ real) \ bool" - assumes hfint: "\f::(real^3)\real. fint f = (\S::real^3. set_lebesgue_integral lebesgue (sphere S 1) f = 0)" - shows "(\f::(real^3)\real. (continuous_on UNIV f \ fint f) \ (\x::real^3. f x = 0)) \ putnam_2019_a4_solution" - sorry - -end diff --git a/isabelle/putnam_2022_b1.thy b/isabelle/putnam_2022_b1.thy index 0b575770..d8f3dd91 100644 --- a/isabelle/putnam_2022_b1.thy +++ b/isabelle/putnam_2022_b1.thy @@ -2,16 +2,12 @@ theory putnam_2022_b1 imports Complex_Main "HOL-Computational_Algebra.Polynomial begin theorem putnam_2022_b1: - fixes n ::nat - and P :: "real poly" - and B :: "real poly" - assumes npos: "n \ 1" - and Pconst: "coeff P 0 = 0" - and Pdegree: "degree P = n" - and Pint: "\k::nat\{1..n}. coeff P k = round (coeff P k)" - and podd: "odd (round (coeff P 1))" - and hB: "\x::real. exp (poly P x) = poly B x" - shows "\k::nat. coeff B k \ 0" + fixes P :: "int poly" + and b :: "nat \ real" + assumes Pconst: "coeff P 0 = 0" + and podd: "odd (coeff P 1)" + and hb: "\x::real. exp (poly (map_poly real_of_int P) x) = (\ n :: nat. ((b n) * x^n))" + shows "\k::nat. b k \ 0" sorry end \ No newline at end of file diff --git a/isabelle/putnam_2023_a6.thy b/isabelle/putnam_2023_a6.thy new file mode 100644 index 00000000..22e3e3e4 --- /dev/null +++ b/isabelle/putnam_2023_a6.thy @@ -0,0 +1,23 @@ +theory Scratch imports Complex_Main +"HOL-Number_Theory.Cong" +begin + +definition putnam_2023_a6_solution :: "nat set" where +"putnam_2023_a6_solution \ {n :: nat. 0 < n}" +theorem putnam_2023_a6: + fixes IsValidGame :: "nat list \ bool" + and parityOf :: "nat list \ nat" + and ConformsToStrategy :: "nat list \ (nat list \ nat) \ bool" + and IsWinningFor :: "nat \ (nat list \ nat) \ bool" + assumes IsValidGame_def : "\ g. (IsValidGame G \ + distinct g \ (\ i \ set g. i \ {1..length g}))" + and parityOf_def : "\ g. parityOf g = card {n :: nat. n ∈ {0.. nth g n = n+1} mod 2" + and ConformsToStrategy_def : "\ g s. (ConformsToStrategy g s \ + (\ i ∈ {1.. nth g i = s (take i g)))" + and IsWinningFor_def : "\ n s. (IsWinningFor n s \ + (\ p. \ g. length g = n \ IsValidGame g + \ ConformsToStrategy g s \ parityOf g = p))" + shows "{n :: nat. 0 < n \ (\ s. IsWinningFor n s)} = putnam_2023_a6_solution" + sorry + +end \ No newline at end of file diff --git a/lean4/scripts/generate_files_by_year.py b/lean4/scripts/generate_files_by_year.py index 8964d715..018cdba6 100644 --- a/lean4/scripts/generate_files_by_year.py +++ b/lean4/scripts/generate_files_by_year.py @@ -9,7 +9,7 @@ def all_to_years(min_year, max_year): for year in range(max_year, min_year - 1, -1): filename = f"putnam_{year}.lean" with open(filename, "w") as g: - g.write("import Mathlib\nopen BigOperators\n\n") + g.write("import Mathlib\n\n") is_in_section = False for line in lines: if is_in_section: @@ -21,14 +21,14 @@ def all_to_years(min_year, max_year): def years_to_all(min_year, max_year): with open("putnam_all.lean", "w") as f: - f.write("import Mathlib\nopen BigOperators\n\n") + f.write("import Mathlib\n\n") for year in range(min_year, max_year + 1): filename = f"putnam_{year}.lean" with open(filename, "r") as g: lines = g.readlines() f.write(f"section putnam_{year}\n") for line in lines: - if line.strip() == "import Mathlib" or line.strip() == "open BigOperators": + if line.strip() == "import Mathlib": continue f.write(line) f.write(f"end putnam_{year}\n") @@ -45,7 +45,7 @@ def files_to_individual(min_year, max_year): problem_pattern = fr'putnam_{year}_[ab][1-6]' for idx, line in enumerate(lines): - if "Mathlib" in line or "BigOperators" in line: + if "Mathlib" in line: continue elif line.strip() == "" or idx == len(lines) - 1: if idx == len(lines) - 1: @@ -64,7 +64,7 @@ def files_to_individual(min_year, max_year): print(f"Search is {search}") assert False with open(f"src/{problem_name}.lean", "w") as g: - g.write("import Mathlib\nopen BigOperators\n\n") + g.write("import Mathlib\n\n") if len(running_scopes) > 0: g.write(f"open {' '.join(running_scopes)}\n\n") for line in section_content: @@ -106,7 +106,7 @@ def all_to_individual(min_year, max_year): filename = f"putnam_{section_name}.lean" with open(filename, "w") as g: - g.write("import Mathlib\nopen BigOperators\n") + g.write("import Mathlib\n") for namespace in namespaces: g.write(f"open {namespace}\n") g.write("\n") diff --git a/lean4/src/putnam_1962_a1.lean b/lean4/src/putnam_1962_a1.lean index 9f1422a9..bc940d02 100644 --- a/lean4/src/putnam_1962_a1.lean +++ b/lean4/src/putnam_1962_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MeasureTheory diff --git a/lean4/src/putnam_1962_a2.lean b/lean4/src/putnam_1962_a2.lean index 9dcf7d14..10c21fdf 100644 --- a/lean4/src/putnam_1962_a2.lean +++ b/lean4/src/putnam_1962_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MeasureTheory Set diff --git a/lean4/src/putnam_1962_a3.lean b/lean4/src/putnam_1962_a3.lean index 50360174..25d3fb29 100644 --- a/lean4/src/putnam_1962_a3.lean +++ b/lean4/src/putnam_1962_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MeasureTheory diff --git a/lean4/src/putnam_1962_a4.lean b/lean4/src/putnam_1962_a4.lean index fc896b85..01062553 100644 --- a/lean4/src/putnam_1962_a4.lean +++ b/lean4/src/putnam_1962_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Assume that $\lvert f(x) \rvert \le 1$ and $\lvert f''(x) \rvert \le 1$ for all $x$ on an interval of length at least 2. Show that $\lvert f'(x) \rvert \le 2$ on the interval. diff --git a/lean4/src/putnam_1962_a5.lean b/lean4/src/putnam_1962_a5.lean index 208b6645..a9e93cad 100644 --- a/lean4/src/putnam_1962_a5.lean +++ b/lean4/src/putnam_1962_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_1962_a5_solution : ℕ → ℕ := sorry -- fun n : ℕ => n * (n + 1) * 2^(n - 2) diff --git a/lean4/src/putnam_1962_a6.lean b/lean4/src/putnam_1962_a6.lean index a7d202b9..b81a91f2 100644 --- a/lean4/src/putnam_1962_a6.lean +++ b/lean4/src/putnam_1962_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Let $S$ be a set of rational numbers such that whenever $a$ and $b$ are members of $S$, so are $a+b$ and $ab$, and having the property that for every rational number $r$ exactly one of the following three statements is true: \[ r \in S, -r \in S, r = 0. \] Prove that $S$ is the set of all positive rational numbers. diff --git a/lean4/src/putnam_1962_b1.lean b/lean4/src/putnam_1962_b1.lean index 8e0a9f59..6a8d1d7e 100644 --- a/lean4/src/putnam_1962_b1.lean +++ b/lean4/src/putnam_1962_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Let $x^{(n)} = x(x-1)\cdots(x-n+1)$ for $n$ a positive integer and let $x^{(0)} = 1.$ Prove that \[ (x+y)^{(n)} = \sum_{k=0}^n {n \choose k} x^{(k)} y^{(n-k)}. \] diff --git a/lean4/src/putnam_1962_b2.lean b/lean4/src/putnam_1962_b2.lean index 8cb176d5..e80d088b 100644 --- a/lean4/src/putnam_1962_b2.lean +++ b/lean4/src/putnam_1962_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MeasureTheory diff --git a/lean4/src/putnam_1962_b3.lean b/lean4/src/putnam_1962_b3.lean index 5267fb17..36c96b74 100644 --- a/lean4/src/putnam_1962_b3.lean +++ b/lean4/src/putnam_1962_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MeasureTheory diff --git a/lean4/src/putnam_1962_b5.lean b/lean4/src/putnam_1962_b5.lean index c9d62344..9477f53b 100644 --- a/lean4/src/putnam_1962_b5.lean +++ b/lean4/src/putnam_1962_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MeasureTheory diff --git a/lean4/src/putnam_1962_b6.lean b/lean4/src/putnam_1962_b6.lean index 9e214d01..988cd188 100644 --- a/lean4/src/putnam_1962_b6.lean +++ b/lean4/src/putnam_1962_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Real diff --git a/lean4/src/putnam_1963_a2.lean b/lean4/src/putnam_1963_a2.lean index 66f14c7c..76b01060 100644 --- a/lean4/src/putnam_1963_a2.lean +++ b/lean4/src/putnam_1963_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_1963_a3.lean b/lean4/src/putnam_1963_a3.lean index c357462e..07471de0 100644 --- a/lean4/src/putnam_1963_a3.lean +++ b/lean4/src/putnam_1963_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Set Topology Filter @@ -16,5 +15,5 @@ theorem putnam_1963_a3 (f y : ℝ → ℝ) (hf : ContinuousOn f (Ici 1)) : ContDiffOn ℝ n y (Ici 1) ∧ (∀ i < n, deriv^[i] y 1 = 0) ∧ (Ici 1).EqOn (P n y) f ↔ - ∀ x ≥ 1, y x = ∫ t in (1 : ℝ)..x, putnam_1963_a3_solution f n x t := by + ∀ x ≥ 1, y x = ∫ t in (1 : ℝ)..x, putnam_1963_a3_solution f n x t := sorry diff --git a/lean4/src/putnam_1963_a4.lean b/lean4/src/putnam_1963_a4.lean index 803a5988..a431c528 100644 --- a/lean4/src/putnam_1963_a4.lean +++ b/lean4/src/putnam_1963_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Set @@ -11,5 +10,5 @@ theorem putnam_1963_a4 (T_def : ∀ a n, T a n = n * ((1 + a (n + 1)) / a n - 1)) (P : (ℕ → ℝ) → ℝ → Prop) (P_def : ∀ a C, P a C ↔ C ≤ limsup (T a) atTop ∨ ¬ BddAbove (range (T a))) : - (∀ a, (∀ n, 0 < a n) → P a 1) ∧ (∀ C > 1, ∃ a, (∀ n, 0 < a n) ∧ ¬ P a C) := by + (∀ a, (∀ n, 0 < a n) → P a 1) ∧ (∀ C > 1, ∃ a, (∀ n, 0 < a n) ∧ ¬ P a C) := sorry diff --git a/lean4/src/putnam_1963_a6.lean b/lean4/src/putnam_1963_a6.lean index 1df44be7..7add62d5 100644 --- a/lean4/src/putnam_1963_a6.lean +++ b/lean4/src/putnam_1963_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_1963_b1.lean b/lean4/src/putnam_1963_b1.lean index 48d4a770..f14b9195 100644 --- a/lean4/src/putnam_1963_b1.lean +++ b/lean4/src/putnam_1963_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Polynomial diff --git a/lean4/src/putnam_1963_b2.lean b/lean4/src/putnam_1963_b2.lean index 261d941a..65d56a6a 100644 --- a/lean4/src/putnam_1963_b2.lean +++ b/lean4/src/putnam_1963_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Polynomial diff --git a/lean4/src/putnam_1963_b3.lean b/lean4/src/putnam_1963_b3.lean index aaff0c28..69511d4c 100644 --- a/lean4/src/putnam_1963_b3.lean +++ b/lean4/src/putnam_1963_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Polynomial diff --git a/lean4/src/putnam_1963_b5.lean b/lean4/src/putnam_1963_b5.lean index 454f9b78..c2752d8d 100644 --- a/lean4/src/putnam_1963_b5.lean +++ b/lean4/src/putnam_1963_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Polynomial diff --git a/lean4/src/putnam_1963_b6.lean b/lean4/src/putnam_1963_b6.lean index fef2505e..8e4b66c3 100644 --- a/lean4/src/putnam_1963_b6.lean +++ b/lean4/src/putnam_1963_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Polynomial diff --git a/lean4/src/putnam_1964_a1.lean b/lean4/src/putnam_1964_a1.lean index 0b611690..24049c13 100644 --- a/lean4/src/putnam_1964_a1.lean +++ b/lean4/src/putnam_1964_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Let $A_1, A_2, A_3, A_4, A_5, A_6$ be distinct points in the plane. Let $D$ be the longest distance between any pair, and let $d$ the shortest distance. Show that $\frac{D}{d} \geq \sqrt 3$. diff --git a/lean4/src/putnam_1964_a2.lean b/lean4/src/putnam_1964_a2.lean index 3390dbde..b6fa62c7 100644 --- a/lean4/src/putnam_1964_a2.lean +++ b/lean4/src/putnam_1964_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set @@ -7,7 +6,7 @@ open Set abbrev putnam_1964_a2_solution : ℝ → Set (ℝ → ℝ) := sorry -- fun _ ↦ ∅ /-- -Let $\alpha$ be a real number. Find all continuous real-valued functions $f : [0, 1] \to (0, \infty)$ such that +Let $\alpha$ be a real number. Find all continuous real-valued functions $f : [0, 1] \to (0, \infty)$ such that \begin{align*} \int_0^1 f(x) dx &= 1, \\ \int_0^1 x f(x) dx &= \alpha, \\ diff --git a/lean4/src/putnam_1964_a3.lean b/lean4/src/putnam_1964_a3.lean index 455608f4..594528d9 100644 --- a/lean4/src/putnam_1964_a3.lean +++ b/lean4/src/putnam_1964_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Function diff --git a/lean4/src/putnam_1964_a4.lean b/lean4/src/putnam_1964_a4.lean index 07a68f4a..d1eee691 100644 --- a/lean4/src/putnam_1964_a4.lean +++ b/lean4/src/putnam_1964_a4.lean @@ -1,13 +1,12 @@ import Mathlib -open BigOperators open Set Function /-- -The sequence of integers $u_n$ is bounded and satisfies +The sequence of integers $u_n$ is bounded and satisfies \[ u_n = \frac{u_{n-1} + u_{n-2} + u_{n-3}u_{n-4}}{u_{n-1}u_{n-2} + u_{n-3} + u_{n-4}}. -\] +\] Show that it is periodic for sufficiently large $n$. -/ theorem putnam_1964_a4 diff --git a/lean4/src/putnam_1964_a5.lean b/lean4/src/putnam_1964_a5.lean index 36ef8031..53b28612 100644 --- a/lean4/src/putnam_1964_a5.lean +++ b/lean4/src/putnam_1964_a5.lean @@ -1,10 +1,9 @@ import Mathlib -open BigOperators open Set Function Filter Topology /-- -Prove that there exists a constant $k$ such that for any sequence $a_i$ of positive numbers, +Prove that there exists a constant $k$ such that for any sequence $a_i$ of positive numbers, \[ \sum_{n=1}^{\infty} \frac{n}{a_1 + a_2 + \dots + a_n} \leq k \sum_{n=1}^{\infty}\frac{1}{a_n}. \] diff --git a/lean4/src/putnam_1964_a6.lean b/lean4/src/putnam_1964_a6.lean index c7a1f6f9..453fb76d 100644 --- a/lean4/src/putnam_1964_a6.lean +++ b/lean4/src/putnam_1964_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Function Filter Topology diff --git a/lean4/src/putnam_1964_b1.lean b/lean4/src/putnam_1964_b1.lean index 05320397..24d50230 100644 --- a/lean4/src/putnam_1964_b1.lean +++ b/lean4/src/putnam_1964_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Function Filter Topology diff --git a/lean4/src/putnam_1964_b2.lean b/lean4/src/putnam_1964_b2.lean index 382d3443..9d7e6728 100644 --- a/lean4/src/putnam_1964_b2.lean +++ b/lean4/src/putnam_1964_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Function Filter Topology diff --git a/lean4/src/putnam_1964_b3.lean b/lean4/src/putnam_1964_b3.lean index 78b1aed6..147fdbba 100644 --- a/lean4/src/putnam_1964_b3.lean +++ b/lean4/src/putnam_1964_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Function Filter Topology diff --git a/lean4/src/putnam_1964_b5.lean b/lean4/src/putnam_1964_b5.lean index dee633ba..72643cc8 100644 --- a/lean4/src/putnam_1964_b5.lean +++ b/lean4/src/putnam_1964_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Function Filter Topology diff --git a/lean4/src/putnam_1964_b6.lean b/lean4/src/putnam_1964_b6.lean index cbe0818d..32f70a51 100644 --- a/lean4/src/putnam_1964_b6.lean +++ b/lean4/src/putnam_1964_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Function Filter Topology diff --git a/lean4/src/putnam_1965_a1.lean b/lean4/src/putnam_1965_a1.lean index 4b71b3c1..2b2a17c1 100644 --- a/lean4/src/putnam_1965_a1.lean +++ b/lean4/src/putnam_1965_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open EuclideanGeometry Real diff --git a/lean4/src/putnam_1965_a2.lean b/lean4/src/putnam_1965_a2.lean index 6149cb72..9fbe1c42 100644 --- a/lean4/src/putnam_1965_a2.lean +++ b/lean4/src/putnam_1965_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open EuclideanGeometry diff --git a/lean4/src/putnam_1965_a3.lean b/lean4/src/putnam_1965_a3.lean index 3521325b..7e269db2 100644 --- a/lean4/src/putnam_1965_a3.lean +++ b/lean4/src/putnam_1965_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open EuclideanGeometry Topology Filter Complex diff --git a/lean4/src/putnam_1965_a4.lean b/lean4/src/putnam_1965_a4.lean index f5425598..b6937ac5 100644 --- a/lean4/src/putnam_1965_a4.lean +++ b/lean4/src/putnam_1965_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open EuclideanGeometry Topology Filter Complex diff --git a/lean4/src/putnam_1965_a5.lean b/lean4/src/putnam_1965_a5.lean index 6c99a86c..940ae757 100644 --- a/lean4/src/putnam_1965_a5.lean +++ b/lean4/src/putnam_1965_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open EuclideanGeometry Topology Filter Complex diff --git a/lean4/src/putnam_1965_a6.lean b/lean4/src/putnam_1965_a6.lean index e62ec376..280095bb 100644 --- a/lean4/src/putnam_1965_a6.lean +++ b/lean4/src/putnam_1965_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open EuclideanGeometry Topology Filter Complex diff --git a/lean4/src/putnam_1965_b1.lean b/lean4/src/putnam_1965_b1.lean index 019576be..0179e3d1 100644 --- a/lean4/src/putnam_1965_b1.lean +++ b/lean4/src/putnam_1965_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open EuclideanGeometry Topology Filter Complex diff --git a/lean4/src/putnam_1965_b2.lean b/lean4/src/putnam_1965_b2.lean index f6254d44..eb8b2e24 100644 --- a/lean4/src/putnam_1965_b2.lean +++ b/lean4/src/putnam_1965_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open EuclideanGeometry Topology Filter Complex diff --git a/lean4/src/putnam_1965_b3.lean b/lean4/src/putnam_1965_b3.lean index d497269e..649637d7 100644 --- a/lean4/src/putnam_1965_b3.lean +++ b/lean4/src/putnam_1965_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open EuclideanGeometry Topology Filter Complex diff --git a/lean4/src/putnam_1965_b4.lean b/lean4/src/putnam_1965_b4.lean index ee3c8127..e2d2bf25 100644 --- a/lean4/src/putnam_1965_b4.lean +++ b/lean4/src/putnam_1965_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open EuclideanGeometry Topology Filter Complex diff --git a/lean4/src/putnam_1965_b5.lean b/lean4/src/putnam_1965_b5.lean index 80c60180..ddc133f4 100644 --- a/lean4/src/putnam_1965_b5.lean +++ b/lean4/src/putnam_1965_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open EuclideanGeometry Topology Filter Complex SimpleGraph.Walk diff --git a/lean4/src/putnam_1965_b6.lean b/lean4/src/putnam_1965_b6.lean index ea6c9ba4..4a9ababd 100644 --- a/lean4/src/putnam_1965_b6.lean +++ b/lean4/src/putnam_1965_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open EuclideanGeometry Topology Filter Complex SimpleGraph.Walk diff --git a/lean4/src/putnam_1966_a1.lean b/lean4/src/putnam_1966_a1.lean index f9846bd6..d59fdc6e 100644 --- a/lean4/src/putnam_1966_a1.lean +++ b/lean4/src/putnam_1966_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Let $a_n$ denote the sequence $0, 1, 1, 2, 2, 3, \dots$, where $a_n = \frac{n}{2}$ if $n$ is even and $\frac{n - 1}{2}$ if n is odd. Furthermore, let $f(n)$ denote the sum of the first $n$ terms of $a_n$. Prove that all positive integers $x$ and $y$ with $x > y$ satisfy $xy = f(x + y) - f(x - y)$. diff --git a/lean4/src/putnam_1966_a2.lean b/lean4/src/putnam_1966_a2.lean index 03406044..12928635 100644 --- a/lean4/src/putnam_1966_a2.lean +++ b/lean4/src/putnam_1966_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Let $a$, $b$, and $c$ be the side lengths of a triangle with inradius $r$. If $p = \frac{a + b + c}{2}$, show that $$\frac{1}{(p - a)^2} + \frac{1}{(p - b)^2} + \frac{1}{(p - c)^2} \ge \frac{1}{r^2}.$$ diff --git a/lean4/src/putnam_1966_a3.lean b/lean4/src/putnam_1966_a3.lean index c0fd9d94..8c393150 100644 --- a/lean4/src/putnam_1966_a3.lean +++ b/lean4/src/putnam_1966_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_1966_a4.lean b/lean4/src/putnam_1966_a4.lean index 275227d8..acbfd7dc 100644 --- a/lean4/src/putnam_1966_a4.lean +++ b/lean4/src/putnam_1966_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_1966_a5.lean b/lean4/src/putnam_1966_a5.lean index 2ac53676..cc183f3e 100644 --- a/lean4/src/putnam_1966_a5.lean +++ b/lean4/src/putnam_1966_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_1966_a6.lean b/lean4/src/putnam_1966_a6.lean index 07c1df0c..a4ff0eb1 100644 --- a/lean4/src/putnam_1966_a6.lean +++ b/lean4/src/putnam_1966_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_1966_b1.lean b/lean4/src/putnam_1966_b1.lean index 5b2472a5..b4b8bcf3 100644 --- a/lean4/src/putnam_1966_b1.lean +++ b/lean4/src/putnam_1966_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology diff --git a/lean4/src/putnam_1966_b2.lean b/lean4/src/putnam_1966_b2.lean index a5c7c6eb..9de34735 100644 --- a/lean4/src/putnam_1966_b2.lean +++ b/lean4/src/putnam_1966_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Prove that, for any ten consecutive integers, at least one is relatively prime to all of the others. diff --git a/lean4/src/putnam_1966_b3.lean b/lean4/src/putnam_1966_b3.lean index 967a1273..1444f013 100644 --- a/lean4/src/putnam_1966_b3.lean +++ b/lean4/src/putnam_1966_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_1966_b4.lean b/lean4/src/putnam_1966_b4.lean index 848f6209..c2d3dd0a 100644 --- a/lean4/src/putnam_1966_b4.lean +++ b/lean4/src/putnam_1966_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_1966_b5.lean b/lean4/src/putnam_1966_b5.lean index 7144cdbf..ae0894e4 100644 --- a/lean4/src/putnam_1966_b5.lean +++ b/lean4/src/putnam_1966_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_1966_b6.lean b/lean4/src/putnam_1966_b6.lean index b5bbaea1..809291a5 100644 --- a/lean4/src/putnam_1966_b6.lean +++ b/lean4/src/putnam_1966_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_1967_a1.lean b/lean4/src/putnam_1967_a1.lean index 517420aa..66e062e7 100644 --- a/lean4/src/putnam_1967_a1.lean +++ b/lean4/src/putnam_1967_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Topology Filter diff --git a/lean4/src/putnam_1967_a2.lean b/lean4/src/putnam_1967_a2.lean index 4b6edb43..f62f4efe 100644 --- a/lean4/src/putnam_1967_a2.lean +++ b/lean4/src/putnam_1967_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Topology Filter diff --git a/lean4/src/putnam_1967_a3.lean b/lean4/src/putnam_1967_a3.lean index de3a86d6..cc303183 100644 --- a/lean4/src/putnam_1967_a3.lean +++ b/lean4/src/putnam_1967_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Topology Filter diff --git a/lean4/src/putnam_1967_a4.lean b/lean4/src/putnam_1967_a4.lean index 555c7522..7e46b52b 100644 --- a/lean4/src/putnam_1967_a4.lean +++ b/lean4/src/putnam_1967_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Topology Filter diff --git a/lean4/src/putnam_1967_a5.lean b/lean4/src/putnam_1967_a5.lean index 37a64284..f3baf2a6 100644 --- a/lean4/src/putnam_1967_a5.lean +++ b/lean4/src/putnam_1967_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Topology Filter diff --git a/lean4/src/putnam_1967_a6.lean b/lean4/src/putnam_1967_a6.lean index ce8f1649..f462b89d 100644 --- a/lean4/src/putnam_1967_a6.lean +++ b/lean4/src/putnam_1967_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Topology Filter diff --git a/lean4/src/putnam_1967_b1.lean b/lean4/src/putnam_1967_b1.lean index cc904c09..c4404d18 100644 --- a/lean4/src/putnam_1967_b1.lean +++ b/lean4/src/putnam_1967_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Topology Filter diff --git a/lean4/src/putnam_1967_b2.lean b/lean4/src/putnam_1967_b2.lean index b73bb97c..6dfdc20e 100644 --- a/lean4/src/putnam_1967_b2.lean +++ b/lean4/src/putnam_1967_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Topology Filter diff --git a/lean4/src/putnam_1967_b3.lean b/lean4/src/putnam_1967_b3.lean index 15effa7d..4d091d16 100644 --- a/lean4/src/putnam_1967_b3.lean +++ b/lean4/src/putnam_1967_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Topology Filter diff --git a/lean4/src/putnam_1967_b4.lean b/lean4/src/putnam_1967_b4.lean index 4cb236dd..633b08ac 100644 --- a/lean4/src/putnam_1967_b4.lean +++ b/lean4/src/putnam_1967_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Topology Filter diff --git a/lean4/src/putnam_1967_b5.lean b/lean4/src/putnam_1967_b5.lean index 5896d2c9..58cc6c9c 100644 --- a/lean4/src/putnam_1967_b5.lean +++ b/lean4/src/putnam_1967_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Topology Filter diff --git a/lean4/src/putnam_1967_b6.lean b/lean4/src/putnam_1967_b6.lean index 577da971..b5bf530d 100644 --- a/lean4/src/putnam_1967_b6.lean +++ b/lean4/src/putnam_1967_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Topology Filter diff --git a/lean4/src/putnam_1968_a1.lean b/lean4/src/putnam_1968_a1.lean index 97f9a9b9..bc3d519b 100644 --- a/lean4/src/putnam_1968_a1.lean +++ b/lean4/src/putnam_1968_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Prove that $$\frac{22}{7} - \pi = \int_{0}^{1} \frac{x^4(1 - x)^4}{1 + x^2} dx$$. diff --git a/lean4/src/putnam_1968_a2.lean b/lean4/src/putnam_1968_a2.lean index b3d0b8d4..02a1162a 100644 --- a/lean4/src/putnam_1968_a2.lean +++ b/lean4/src/putnam_1968_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- For all integers $a$, $b$, $c$, $d$, $e$, and $f$ such that $ad \neq bc$ and any real number $\epsilon > 0$, prove that there exist rational numbers $r$ and $s$ such that $$0 < |ra + sb - e| < \varepsilon$$ and $$0 < |rc + sd - f| < \varepsilon.$$ diff --git a/lean4/src/putnam_1968_a3.lean b/lean4/src/putnam_1968_a3.lean index 6a49bf10..d8ef807c 100644 --- a/lean4/src/putnam_1968_a3.lean +++ b/lean4/src/putnam_1968_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Finset symmDiff @@ -16,5 +15,5 @@ theorem putnam_1968_a3 ∃ (n : ℕ) (s : Fin (2 ^ n) → Set α), s 0 = ∅ ∧ (∀ t, ∃! i, s i = t) ∧ - (∀ i, i + 1 < 2 ^ n → (s i ∆ s (i + 1)).ncard = 1) := by + (∀ i, i + 1 < 2 ^ n → (s i ∆ s (i + 1)).ncard = 1) := sorry diff --git a/lean4/src/putnam_1968_a4.lean b/lean4/src/putnam_1968_a4.lean index 05bb6316..c5e83c3d 100644 --- a/lean4/src/putnam_1968_a4.lean +++ b/lean4/src/putnam_1968_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Finset diff --git a/lean4/src/putnam_1968_a5.lean b/lean4/src/putnam_1968_a5.lean index 44be2758..507ee5ed 100644 --- a/lean4/src/putnam_1968_a5.lean +++ b/lean4/src/putnam_1968_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Finset Polynomial diff --git a/lean4/src/putnam_1968_a6.lean b/lean4/src/putnam_1968_a6.lean index b38de6b6..301a23e6 100644 --- a/lean4/src/putnam_1968_a6.lean +++ b/lean4/src/putnam_1968_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Finset Polynomial diff --git a/lean4/src/putnam_1968_b2.lean b/lean4/src/putnam_1968_b2.lean index 1f5ea47e..feabce14 100644 --- a/lean4/src/putnam_1968_b2.lean +++ b/lean4/src/putnam_1968_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Finset Polynomial diff --git a/lean4/src/putnam_1968_b4.lean b/lean4/src/putnam_1968_b4.lean index bc0f2f5f..473030da 100644 --- a/lean4/src/putnam_1968_b4.lean +++ b/lean4/src/putnam_1968_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Finset Polynomial Topology Filter Metric diff --git a/lean4/src/putnam_1968_b5.lean b/lean4/src/putnam_1968_b5.lean index b331097b..53d7240d 100644 --- a/lean4/src/putnam_1968_b5.lean +++ b/lean4/src/putnam_1968_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Finset Polynomial Topology Filter Metric diff --git a/lean4/src/putnam_1968_b6.lean b/lean4/src/putnam_1968_b6.lean index e9d47d68..f3069eaa 100644 --- a/lean4/src/putnam_1968_b6.lean +++ b/lean4/src/putnam_1968_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Finset Polynomial Topology Filter Metric diff --git a/lean4/src/putnam_1969_a1.lean b/lean4/src/putnam_1969_a1.lean index 90e92389..b1391f14 100644 --- a/lean4/src/putnam_1969_a1.lean +++ b/lean4/src/putnam_1969_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Matrix Filter Topology Set Nat diff --git a/lean4/src/putnam_1969_a2.lean b/lean4/src/putnam_1969_a2.lean index b775130a..2f39d4a8 100644 --- a/lean4/src/putnam_1969_a2.lean +++ b/lean4/src/putnam_1969_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Matrix Filter Topology Set Nat diff --git a/lean4/src/putnam_1969_a4.lean b/lean4/src/putnam_1969_a4.lean index f1e8416b..02d764e6 100644 --- a/lean4/src/putnam_1969_a4.lean +++ b/lean4/src/putnam_1969_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Matrix Filter Topology Set Nat diff --git a/lean4/src/putnam_1969_a5.lean b/lean4/src/putnam_1969_a5.lean index 2de76cc3..39ae1bb2 100644 --- a/lean4/src/putnam_1969_a5.lean +++ b/lean4/src/putnam_1969_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Matrix Filter Topology Set Nat @@ -18,5 +17,5 @@ theorem putnam_1969_a5 x 0 = x0 ∧ y 0 = y0 ∧ x t = 0 ∧ - y t = 0 := by + y t = 0 := sorry diff --git a/lean4/src/putnam_1969_a6.lean b/lean4/src/putnam_1969_a6.lean index 4dfefcb6..b0ccd2a8 100644 --- a/lean4/src/putnam_1969_a6.lean +++ b/lean4/src/putnam_1969_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Matrix Filter Topology Set Nat diff --git a/lean4/src/putnam_1969_b1.lean b/lean4/src/putnam_1969_b1.lean index 89e65d13..1e17dd30 100644 --- a/lean4/src/putnam_1969_b1.lean +++ b/lean4/src/putnam_1969_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Matrix Filter Topology Set Nat diff --git a/lean4/src/putnam_1969_b2.lean b/lean4/src/putnam_1969_b2.lean index b680db96..c68d31b9 100644 --- a/lean4/src/putnam_1969_b2.lean +++ b/lean4/src/putnam_1969_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Matrix Filter Topology Set Nat diff --git a/lean4/src/putnam_1969_b3.lean b/lean4/src/putnam_1969_b3.lean index 5a86acda..9c9b2e6c 100644 --- a/lean4/src/putnam_1969_b3.lean +++ b/lean4/src/putnam_1969_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Matrix Filter Topology Set Nat diff --git a/lean4/src/putnam_1969_b5.lean b/lean4/src/putnam_1969_b5.lean index e1a67b0f..d0d02c97 100644 --- a/lean4/src/putnam_1969_b5.lean +++ b/lean4/src/putnam_1969_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Matrix Filter Topology Set Nat diff --git a/lean4/src/putnam_1969_b6.lean b/lean4/src/putnam_1969_b6.lean index 88c20625..cca70f87 100644 --- a/lean4/src/putnam_1969_b6.lean +++ b/lean4/src/putnam_1969_b6.lean @@ -1,16 +1,15 @@ import Mathlib -open BigOperators open Matrix Filter Topology Set Nat /-- -Let $A$ be a $3 \times 2$ matrix and $B$ be a $2 \times 3$ matrix such that $$AB = +Let $A$ be a $3 \times 2$ matrix and $B$ be a $2 \times 3$ matrix such that $$AB = \begin{pmatrix} 8 & 2 & -2 \\ 2 & 5 & 4 \\ -2 & 4 & 5 \end{pmatrix}. -$$ Prove that $$BA = +$$ Prove that $$BA = \begin{pmatrix} 9 & 0 \\ 0 & 9 diff --git a/lean4/src/putnam_1970_a1.lean b/lean4/src/putnam_1970_a1.lean index 255a7e6c..94f7a85d 100644 --- a/lean4/src/putnam_1970_a1.lean +++ b/lean4/src/putnam_1970_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Metric Set EuclideanGeometry @@ -14,6 +13,7 @@ theorem putnam_1970_a1 (f_def : f = fun x : ℝ => Real.exp (a*x) * Real.cos (b*x)) (p : ℕ → ℝ) (hp : ∃ c : ℝ, c > 0 ∧ ∀ x ∈ ball 0 c, ∑' n : ℕ, (p n)*x^n = f x) -(S : Set ℕ := {n : ℕ | p n = 0}) +(S : Set ℕ) +(S_def : S = {n : ℕ | p n = 0}) : S = ∅ ∨ ¬Finite S := sorry diff --git a/lean4/src/putnam_1970_a2.lean b/lean4/src/putnam_1970_a2.lean index 5ebb64ad..59466496 100644 --- a/lean4/src/putnam_1970_a2.lean +++ b/lean4/src/putnam_1970_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Metric Set EuclideanGeometry diff --git a/lean4/src/putnam_1970_a3.lean b/lean4/src/putnam_1970_a3.lean index ce0848ad..a9ec50b1 100644 --- a/lean4/src/putnam_1970_a3.lean +++ b/lean4/src/putnam_1970_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Metric Set EuclideanGeometry diff --git a/lean4/src/putnam_1970_a4.lean b/lean4/src/putnam_1970_a4.lean index 3366c42f..4a68a3c8 100644 --- a/lean4/src/putnam_1970_a4.lean +++ b/lean4/src/putnam_1970_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Metric Set EuclideanGeometry Filter Topology diff --git a/lean4/src/putnam_1970_b1.lean b/lean4/src/putnam_1970_b1.lean index 1542189a..86c12734 100644 --- a/lean4/src/putnam_1970_b1.lean +++ b/lean4/src/putnam_1970_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Metric Set EuclideanGeometry Filter Topology diff --git a/lean4/src/putnam_1970_b2.lean b/lean4/src/putnam_1970_b2.lean index f7ba0b84..3070a461 100644 --- a/lean4/src/putnam_1970_b2.lean +++ b/lean4/src/putnam_1970_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Metric Set EuclideanGeometry Filter Topology diff --git a/lean4/src/putnam_1970_b3.lean b/lean4/src/putnam_1970_b3.lean index 95d2933e..ca3f7cde 100644 --- a/lean4/src/putnam_1970_b3.lean +++ b/lean4/src/putnam_1970_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Metric Set EuclideanGeometry Filter Topology diff --git a/lean4/src/putnam_1970_b4.lean b/lean4/src/putnam_1970_b4.lean index 9179a06c..1a1880a6 100644 --- a/lean4/src/putnam_1970_b4.lean +++ b/lean4/src/putnam_1970_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Metric Set EuclideanGeometry Filter Topology diff --git a/lean4/src/putnam_1970_b5.lean b/lean4/src/putnam_1970_b5.lean index 03c73f06..c8771863 100644 --- a/lean4/src/putnam_1970_b5.lean +++ b/lean4/src/putnam_1970_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Metric Set EuclideanGeometry Filter Topology diff --git a/lean4/src/putnam_1970_b6.lean b/lean4/src/putnam_1970_b6.lean index e103967e..e809431e 100644 --- a/lean4/src/putnam_1970_b6.lean +++ b/lean4/src/putnam_1970_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Metric Set EuclideanGeometry Filter Topology diff --git a/lean4/src/putnam_1971_a1.lean b/lean4/src/putnam_1971_a1.lean index 6afe95ca..1ec7ad47 100644 --- a/lean4/src/putnam_1971_a1.lean +++ b/lean4/src/putnam_1971_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set diff --git a/lean4/src/putnam_1971_a2.lean b/lean4/src/putnam_1971_a2.lean index b535e696..6aa00afe 100644 --- a/lean4/src/putnam_1971_a2.lean +++ b/lean4/src/putnam_1971_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set diff --git a/lean4/src/putnam_1971_a3.lean b/lean4/src/putnam_1971_a3.lean index 19f26ef5..0b0f0a87 100644 --- a/lean4/src/putnam_1971_a3.lean +++ b/lean4/src/putnam_1971_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set diff --git a/lean4/src/putnam_1971_a4.lean b/lean4/src/putnam_1971_a4.lean index 8a2ecb40..e307bd9a 100644 --- a/lean4/src/putnam_1971_a4.lean +++ b/lean4/src/putnam_1971_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set MvPolynomial diff --git a/lean4/src/putnam_1971_a5.lean b/lean4/src/putnam_1971_a5.lean index 2ceaa815..a134900e 100644 --- a/lean4/src/putnam_1971_a5.lean +++ b/lean4/src/putnam_1971_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set MvPolynomial diff --git a/lean4/src/putnam_1971_a6.lean b/lean4/src/putnam_1971_a6.lean index e27c03e5..e544d2b7 100644 --- a/lean4/src/putnam_1971_a6.lean +++ b/lean4/src/putnam_1971_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set MvPolynomial diff --git a/lean4/src/putnam_1971_b1.lean b/lean4/src/putnam_1971_b1.lean index 038eea5c..27d10d11 100644 --- a/lean4/src/putnam_1971_b1.lean +++ b/lean4/src/putnam_1971_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set MvPolynomial diff --git a/lean4/src/putnam_1971_b2.lean b/lean4/src/putnam_1971_b2.lean index 1e1a1fa0..1f68b935 100644 --- a/lean4/src/putnam_1971_b2.lean +++ b/lean4/src/putnam_1971_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set MvPolynomial diff --git a/lean4/src/putnam_1971_b3.lean b/lean4/src/putnam_1971_b3.lean index 8d6ce245..0265166d 100644 --- a/lean4/src/putnam_1971_b3.lean +++ b/lean4/src/putnam_1971_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set MvPolynomial diff --git a/lean4/src/putnam_1971_b6.lean b/lean4/src/putnam_1971_b6.lean index 3a7bdf74..6b8494dc 100644 --- a/lean4/src/putnam_1971_b6.lean +++ b/lean4/src/putnam_1971_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set MvPolynomial diff --git a/lean4/src/putnam_1972_a1.lean b/lean4/src/putnam_1972_a1.lean index c94278c5..7d4ffdf0 100644 --- a/lean4/src/putnam_1972_a1.lean +++ b/lean4/src/putnam_1972_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open EuclideanGeometry Filter Topology Set diff --git a/lean4/src/putnam_1972_a2.lean b/lean4/src/putnam_1972_a2.lean index 5e7d1242..aa6ca852 100644 --- a/lean4/src/putnam_1972_a2.lean +++ b/lean4/src/putnam_1972_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open EuclideanGeometry Filter Topology Set diff --git a/lean4/src/putnam_1972_a3.lean b/lean4/src/putnam_1972_a3.lean index 1240ae33..cac34689 100644 --- a/lean4/src/putnam_1972_a3.lean +++ b/lean4/src/putnam_1972_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open EuclideanGeometry Filter Topology Set diff --git a/lean4/src/putnam_1972_a5.lean b/lean4/src/putnam_1972_a5.lean index b737445b..affd7302 100644 --- a/lean4/src/putnam_1972_a5.lean +++ b/lean4/src/putnam_1972_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open EuclideanGeometry Filter Topology Set diff --git a/lean4/src/putnam_1972_a6.lean b/lean4/src/putnam_1972_a6.lean index bae8a91c..ffa3cb37 100644 --- a/lean4/src/putnam_1972_a6.lean +++ b/lean4/src/putnam_1972_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open EuclideanGeometry Filter Topology Set MeasureTheory diff --git a/lean4/src/putnam_1972_b1.lean b/lean4/src/putnam_1972_b1.lean index c963cf28..663b5533 100644 --- a/lean4/src/putnam_1972_b1.lean +++ b/lean4/src/putnam_1972_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open EuclideanGeometry Filter Topology Set MeasureTheory Metric diff --git a/lean4/src/putnam_1972_b2.lean b/lean4/src/putnam_1972_b2.lean index f14c3795..f5cbab9b 100644 --- a/lean4/src/putnam_1972_b2.lean +++ b/lean4/src/putnam_1972_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open EuclideanGeometry Filter Topology Set MeasureTheory Metric diff --git a/lean4/src/putnam_1972_b3.lean b/lean4/src/putnam_1972_b3.lean index be89ef30..687bcac5 100644 --- a/lean4/src/putnam_1972_b3.lean +++ b/lean4/src/putnam_1972_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open EuclideanGeometry Filter Topology Set MeasureTheory Metric diff --git a/lean4/src/putnam_1972_b4.lean b/lean4/src/putnam_1972_b4.lean index fa481550..45271c04 100644 --- a/lean4/src/putnam_1972_b4.lean +++ b/lean4/src/putnam_1972_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open EuclideanGeometry Filter Topology Set MeasureTheory Metric diff --git a/lean4/src/putnam_1972_b5.lean b/lean4/src/putnam_1972_b5.lean index 95d33ab1..a7e291be 100644 --- a/lean4/src/putnam_1972_b5.lean +++ b/lean4/src/putnam_1972_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open EuclideanGeometry Set Metric diff --git a/lean4/src/putnam_1972_b6.lean b/lean4/src/putnam_1972_b6.lean index fe55178b..ad982dad 100644 --- a/lean4/src/putnam_1972_b6.lean +++ b/lean4/src/putnam_1972_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open EuclideanGeometry Filter Topology Set MeasureTheory Metric diff --git a/lean4/src/putnam_1973_a1.lean b/lean4/src/putnam_1973_a1.lean index f6668422..287c91fc 100644 --- a/lean4/src/putnam_1973_a1.lean +++ b/lean4/src/putnam_1973_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Set MeasureTheory Topology Filter diff --git a/lean4/src/putnam_1973_a2.lean b/lean4/src/putnam_1973_a2.lean index d0c09594..e03d8211 100644 --- a/lean4/src/putnam_1973_a2.lean +++ b/lean4/src/putnam_1973_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Set MeasureTheory Topology Filter diff --git a/lean4/src/putnam_1973_a3.lean b/lean4/src/putnam_1973_a3.lean index 1cc796eb..3d14eda2 100644 --- a/lean4/src/putnam_1973_a3.lean +++ b/lean4/src/putnam_1973_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Set MeasureTheory Topology Filter diff --git a/lean4/src/putnam_1973_a4.lean b/lean4/src/putnam_1973_a4.lean index 9a912142..16ccf3b7 100644 --- a/lean4/src/putnam_1973_a4.lean +++ b/lean4/src/putnam_1973_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Set MeasureTheory Topology Filter diff --git a/lean4/src/putnam_1973_a6.lean b/lean4/src/putnam_1973_a6.lean index 6e0b4a3e..6e110774 100644 --- a/lean4/src/putnam_1973_a6.lean +++ b/lean4/src/putnam_1973_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Set MeasureTheory Topology Filter diff --git a/lean4/src/putnam_1973_b1.lean b/lean4/src/putnam_1973_b1.lean index b836219e..0075ca5e 100644 --- a/lean4/src/putnam_1973_b1.lean +++ b/lean4/src/putnam_1973_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Set MeasureTheory Topology Filter diff --git a/lean4/src/putnam_1973_b2.lean b/lean4/src/putnam_1973_b2.lean index 76004038..50128357 100644 --- a/lean4/src/putnam_1973_b2.lean +++ b/lean4/src/putnam_1973_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Set MeasureTheory Topology Filter diff --git a/lean4/src/putnam_1973_b3.lean b/lean4/src/putnam_1973_b3.lean index 504dd8fa..14008520 100644 --- a/lean4/src/putnam_1973_b3.lean +++ b/lean4/src/putnam_1973_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Set MeasureTheory Topology Filter diff --git a/lean4/src/putnam_1973_b4.lean b/lean4/src/putnam_1973_b4.lean index fee71a9d..f1a1707b 100644 --- a/lean4/src/putnam_1973_b4.lean +++ b/lean4/src/putnam_1973_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Set MeasureTheory Topology Filter diff --git a/lean4/src/putnam_1974_a1.lean b/lean4/src/putnam_1974_a1.lean index 0ada9a96..e685ac6c 100644 --- a/lean4/src/putnam_1974_a1.lean +++ b/lean4/src/putnam_1974_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set diff --git a/lean4/src/putnam_1974_a3.lean b/lean4/src/putnam_1974_a3.lean index 59441b7d..d3a679a1 100644 --- a/lean4/src/putnam_1974_a3.lean +++ b/lean4/src/putnam_1974_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set diff --git a/lean4/src/putnam_1974_a4.lean b/lean4/src/putnam_1974_a4.lean index 6c11f085..6e90e164 100644 --- a/lean4/src/putnam_1974_a4.lean +++ b/lean4/src/putnam_1974_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Nat diff --git a/lean4/src/putnam_1974_a6.lean b/lean4/src/putnam_1974_a6.lean index a0f29114..a4bcd1b6 100644 --- a/lean4/src/putnam_1974_a6.lean +++ b/lean4/src/putnam_1974_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Nat Polynomial diff --git a/lean4/src/putnam_1974_b1.lean b/lean4/src/putnam_1974_b1.lean index 10563ee0..10499aa7 100644 --- a/lean4/src/putnam_1974_b1.lean +++ b/lean4/src/putnam_1974_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Nat Polynomial diff --git a/lean4/src/putnam_1974_b2.lean b/lean4/src/putnam_1974_b2.lean index 4f99327f..90d37f8e 100644 --- a/lean4/src/putnam_1974_b2.lean +++ b/lean4/src/putnam_1974_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Nat Polynomial Filter Topology diff --git a/lean4/src/putnam_1974_b3.lean b/lean4/src/putnam_1974_b3.lean index d394c747..02c5d89c 100644 --- a/lean4/src/putnam_1974_b3.lean +++ b/lean4/src/putnam_1974_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Nat Polynomial Filter Topology diff --git a/lean4/src/putnam_1974_b4.lean b/lean4/src/putnam_1974_b4.lean index 49fdecd6..14864f54 100644 --- a/lean4/src/putnam_1974_b4.lean +++ b/lean4/src/putnam_1974_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Nat Polynomial Filter Topology diff --git a/lean4/src/putnam_1974_b5.lean b/lean4/src/putnam_1974_b5.lean index 3e2bf12a..1187a296 100644 --- a/lean4/src/putnam_1974_b5.lean +++ b/lean4/src/putnam_1974_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Nat Polynomial Filter Topology diff --git a/lean4/src/putnam_1974_b6.lean b/lean4/src/putnam_1974_b6.lean index ffb0f1e7..1747942d 100644 --- a/lean4/src/putnam_1974_b6.lean +++ b/lean4/src/putnam_1974_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Nat Polynomial Filter Topology diff --git a/lean4/src/putnam_1975_a1.lean b/lean4/src/putnam_1975_a1.lean index 28d3b90e..382ead63 100644 --- a/lean4/src/putnam_1975_a1.lean +++ b/lean4/src/putnam_1975_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial diff --git a/lean4/src/putnam_1975_a2.lean b/lean4/src/putnam_1975_a2.lean index d2f53c83..9723066e 100644 --- a/lean4/src/putnam_1975_a2.lean +++ b/lean4/src/putnam_1975_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial diff --git a/lean4/src/putnam_1975_a3.lean b/lean4/src/putnam_1975_a3.lean index 93ec6a9c..3d3d634b 100644 --- a/lean4/src/putnam_1975_a3.lean +++ b/lean4/src/putnam_1975_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial diff --git a/lean4/src/putnam_1975_a4.lean b/lean4/src/putnam_1975_a4.lean index 57438983..bbd82d1b 100644 --- a/lean4/src/putnam_1975_a4.lean +++ b/lean4/src/putnam_1975_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial Real Complex diff --git a/lean4/src/putnam_1975_a5.lean b/lean4/src/putnam_1975_a5.lean index bd58d996..b7736eda 100644 --- a/lean4/src/putnam_1975_a5.lean +++ b/lean4/src/putnam_1975_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial Real Complex diff --git a/lean4/src/putnam_1975_b1.lean b/lean4/src/putnam_1975_b1.lean index 0a0e4dd0..b8803057 100644 --- a/lean4/src/putnam_1975_b1.lean +++ b/lean4/src/putnam_1975_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial Real Complex diff --git a/lean4/src/putnam_1975_b2.lean b/lean4/src/putnam_1975_b2.lean index 50d087d8..0c0c9d83 100644 --- a/lean4/src/putnam_1975_b2.lean +++ b/lean4/src/putnam_1975_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial Real Complex Matrix Filter Topology diff --git a/lean4/src/putnam_1975_b3.lean b/lean4/src/putnam_1975_b3.lean index e3c4a402..476618b6 100644 --- a/lean4/src/putnam_1975_b3.lean +++ b/lean4/src/putnam_1975_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial Real Complex Matrix Filter Topology Multiset diff --git a/lean4/src/putnam_1975_b4.lean b/lean4/src/putnam_1975_b4.lean index 878d714e..4f37d12d 100644 --- a/lean4/src/putnam_1975_b4.lean +++ b/lean4/src/putnam_1975_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial Real Complex Matrix Filter Topology Multiset diff --git a/lean4/src/putnam_1975_b5.lean b/lean4/src/putnam_1975_b5.lean index 6d152d35..0d0a580a 100644 --- a/lean4/src/putnam_1975_b5.lean +++ b/lean4/src/putnam_1975_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial Real Complex Matrix Filter Topology Multiset diff --git a/lean4/src/putnam_1975_b6.lean b/lean4/src/putnam_1975_b6.lean index a9059fdc..64e6f0b4 100644 --- a/lean4/src/putnam_1975_b6.lean +++ b/lean4/src/putnam_1975_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial Real Complex Matrix Filter Topology Multiset diff --git a/lean4/src/putnam_1976_a2.lean b/lean4/src/putnam_1976_a2.lean index 8d2d3f22..3e1e04a2 100644 --- a/lean4/src/putnam_1976_a2.lean +++ b/lean4/src/putnam_1976_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MvPolynomial diff --git a/lean4/src/putnam_1976_a3.lean b/lean4/src/putnam_1976_a3.lean index 25733455..87f40079 100644 --- a/lean4/src/putnam_1976_a3.lean +++ b/lean4/src/putnam_1976_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_1976_a3_solution : Set (ℕ × ℕ × ℕ × ℕ) := sorry -- {(3, 2, 2, 3), (2, 3, 3, 2)} diff --git a/lean4/src/putnam_1976_a4.lean b/lean4/src/putnam_1976_a4.lean index af683b48..73c1eefa 100644 --- a/lean4/src/putnam_1976_a4.lean +++ b/lean4/src/putnam_1976_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial diff --git a/lean4/src/putnam_1976_a6.lean b/lean4/src/putnam_1976_a6.lean index 3f594618..3c0d1203 100644 --- a/lean4/src/putnam_1976_a6.lean +++ b/lean4/src/putnam_1976_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial diff --git a/lean4/src/putnam_1976_b1.lean b/lean4/src/putnam_1976_b1.lean index afe36f0e..fc4741bb 100644 --- a/lean4/src/putnam_1976_b1.lean +++ b/lean4/src/putnam_1976_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial Filter Topology diff --git a/lean4/src/putnam_1976_b2.lean b/lean4/src/putnam_1976_b2.lean index e5bdc630..72aeeb9e 100644 --- a/lean4/src/putnam_1976_b2.lean +++ b/lean4/src/putnam_1976_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial Filter Topology diff --git a/lean4/src/putnam_1976_b3.lean b/lean4/src/putnam_1976_b3.lean index dab28c18..c06d906c 100644 --- a/lean4/src/putnam_1976_b3.lean +++ b/lean4/src/putnam_1976_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial Filter Topology ProbabilityTheory MeasureTheory diff --git a/lean4/src/putnam_1976_b5.lean b/lean4/src/putnam_1976_b5.lean index cb068f44..0b23bd68 100644 --- a/lean4/src/putnam_1976_b5.lean +++ b/lean4/src/putnam_1976_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial Filter Topology ProbabilityTheory MeasureTheory diff --git a/lean4/src/putnam_1976_b6.lean b/lean4/src/putnam_1976_b6.lean index f5bc6817..75647031 100644 --- a/lean4/src/putnam_1976_b6.lean +++ b/lean4/src/putnam_1976_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial Filter Topology ProbabilityTheory MeasureTheory diff --git a/lean4/src/putnam_1977_a1.lean b/lean4/src/putnam_1977_a1.lean index 7142c9a1..6b6c30cc 100644 --- a/lean4/src/putnam_1977_a1.lean +++ b/lean4/src/putnam_1977_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators noncomputable abbrev putnam_1977_a1_solution : ℝ := sorry -- -7 / 8 diff --git a/lean4/src/putnam_1977_a2.lean b/lean4/src/putnam_1977_a2.lean index cd865e14..8c013507 100644 --- a/lean4/src/putnam_1977_a2.lean +++ b/lean4/src/putnam_1977_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_1977_a2_solution : ℝ → ℝ → ℝ → ℝ → Prop := sorry -- fun a b c d ↦ d = a ∧ b = -c ∨ d = b ∧ a = -c ∨ d = c ∧ a = -b diff --git a/lean4/src/putnam_1977_a3.lean b/lean4/src/putnam_1977_a3.lean index 074f58f4..c61fbb7d 100644 --- a/lean4/src/putnam_1977_a3.lean +++ b/lean4/src/putnam_1977_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_1977_a3_solution : (ℝ → ℝ) → (ℝ → ℝ) → (ℝ → ℝ) := sorry -- fun f g x ↦ g x - f (x - 3) + f (x - 1) + f (x + 1) - f (x + 3) diff --git a/lean4/src/putnam_1977_a4.lean b/lean4/src/putnam_1977_a4.lean index ac14bc5e..349be510 100644 --- a/lean4/src/putnam_1977_a4.lean +++ b/lean4/src/putnam_1977_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open RingHom Set diff --git a/lean4/src/putnam_1977_a5.lean b/lean4/src/putnam_1977_a5.lean index 75ab81eb..baaa9413 100644 --- a/lean4/src/putnam_1977_a5.lean +++ b/lean4/src/putnam_1977_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open RingHom Set Nat diff --git a/lean4/src/putnam_1977_a6.lean b/lean4/src/putnam_1977_a6.lean index 6568b92e..8a5a00b7 100644 --- a/lean4/src/putnam_1977_a6.lean +++ b/lean4/src/putnam_1977_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open RingHom Set Nat @@ -8,9 +7,9 @@ abbrev putnam_1977_a6_solution : Prop := sorry /-- Let $X$ be the square $[0, 1] \times [0, 1]$, and let $f : X \to \mathbb{R}$ be continuous. If $\int_Y f(x, y) \, dx \, dy = 0$ for all squares $Y$ such that \begin{itemize} -\item[(1)] $Y \subseteq X$, -\item[(2)] $Y$ has sides parallel to those of $X$, -\item[(3)] at least one of $Y$'s sides is contained in the boundary of $X$, +\item[(1)] $Y \subseteq X$, +\item[(2)] $Y$ has sides parallel to those of $X$, +\item[(3)] at least one of $Y$'s sides is contained in the boundary of $X$, \end{itemize} is it true that $f(x, y) = 0$ for all $x, y$? -/ diff --git a/lean4/src/putnam_1977_b1.lean b/lean4/src/putnam_1977_b1.lean index cf8eba63..56e2ebc4 100644 --- a/lean4/src/putnam_1977_b1.lean +++ b/lean4/src/putnam_1977_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open RingHom Set Nat Filter Topology diff --git a/lean4/src/putnam_1977_b3.lean b/lean4/src/putnam_1977_b3.lean index 5b259383..c485075d 100644 --- a/lean4/src/putnam_1977_b3.lean +++ b/lean4/src/putnam_1977_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open RingHom Set Nat Filter Topology diff --git a/lean4/src/putnam_1977_b5.lean b/lean4/src/putnam_1977_b5.lean index 71b1018c..ebb1a37c 100644 --- a/lean4/src/putnam_1977_b5.lean +++ b/lean4/src/putnam_1977_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open RingHom Set Nat Filter Topology diff --git a/lean4/src/putnam_1977_b6.lean b/lean4/src/putnam_1977_b6.lean index 6b3da7c0..18d3241e 100644 --- a/lean4/src/putnam_1977_b6.lean +++ b/lean4/src/putnam_1977_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open RingHom Set Nat Filter Topology diff --git a/lean4/src/putnam_1978_a1.lean b/lean4/src/putnam_1978_a1.lean index 72371f34..0dfd7d41 100644 --- a/lean4/src/putnam_1978_a1.lean +++ b/lean4/src/putnam_1978_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Let $S = \{1, 4, 7, 10, 13, 16, \dots , 100\}$. Let $T$ be a subset of $20$ elements of $S$. Show that we can find two distinct elements of $T$ with sum $104$. diff --git a/lean4/src/putnam_1978_a2.lean b/lean4/src/putnam_1978_a2.lean index cdc74e54..94270812 100644 --- a/lean4/src/putnam_1978_a2.lean +++ b/lean4/src/putnam_1978_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Let $A$ be the real $n \times n$ matrix $(a_{ij})$ where $a_{ij} = a$ for $i < j$, $b \; (\neq a)$ for $i > j$, and $c_i$ for $i = j$. Show that $\det A = \frac{b p(a) - a p(b)}{b - a}$, where $p(x) = \prod_{i=1}^n (c_i - x)$. diff --git a/lean4/src/putnam_1978_a3.lean b/lean4/src/putnam_1978_a3.lean index c21d20e8..ec08e9fc 100644 --- a/lean4/src/putnam_1978_a3.lean +++ b/lean4/src/putnam_1978_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Polynomial diff --git a/lean4/src/putnam_1978_a4.lean b/lean4/src/putnam_1978_a4.lean index 93025f5c..a285159a 100644 --- a/lean4/src/putnam_1978_a4.lean +++ b/lean4/src/putnam_1978_a4.lean @@ -1,19 +1,18 @@ import Mathlib -open BigOperators open Set -- Note: This formalization uses "Type" instead of "Type*" for an algebraic structure (a set with a bypass operation). Also, the original problem asks for a witness to the existentially quantified statement in the goal. /-- -A binary operation (represented by multiplication) on $S$ has the property that $(ab)(cd) = ad$ for all $a, b, c, d$. Show that: +A binary operation (represented by multiplication) on $S$ has the property that $(ab)(cd) = ad$ for all $a, b, c, d$. Show that: \begin{itemize} -\item[(1)] if $ab = c$, then $cc = c$; -\item[(2)] if $ab = c$, then $ad = cd$ for all $d$. +\item[(1)] if $ab = c$, then $cc = c$; +\item[(2)] if $ab = c$, then $ad = cd$ for all $d$. \end{itemize} Find a set $S$, and such a binary operation, which also satisfies: \begin{itemize} -\item[(A)] $a a = a$ for all $a$; -\item[(B)] $ab = a \neq b$ for some $a, b$; +\item[(A)] $a a = a$ for all $a$; +\item[(B)] $ab = a \neq b$ for some $a, b$; \item[(C)] $ab \neq a$ for some $a, b$. \end{itemize} -/ diff --git a/lean4/src/putnam_1978_a5.lean b/lean4/src/putnam_1978_a5.lean index 45ef5d00..e4133730 100644 --- a/lean4/src/putnam_1978_a5.lean +++ b/lean4/src/putnam_1978_a5.lean @@ -1,10 +1,9 @@ import Mathlib -open BigOperators open Set Real /-- -Let $a_1, a_2, \dots , a_n$ be reals in the interval $(0, \pi)$ with arithmetic mean $\mu$. Show that +Let $a_1, a_2, \dots , a_n$ be reals in the interval $(0, \pi)$ with arithmetic mean $\mu$. Show that \[ \prod_{i=1}^n \left( \frac{\sin a_i}{a_i} \right) \leq \left( \frac{\sin \mu}{\mu} \right)^n. \] diff --git a/lean4/src/putnam_1978_a6.lean b/lean4/src/putnam_1978_a6.lean index baae166c..6e0a8f9d 100644 --- a/lean4/src/putnam_1978_a6.lean +++ b/lean4/src/putnam_1978_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Real diff --git a/lean4/src/putnam_1978_b2.lean b/lean4/src/putnam_1978_b2.lean index b5b2581a..446e05b4 100644 --- a/lean4/src/putnam_1978_b2.lean +++ b/lean4/src/putnam_1978_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Real diff --git a/lean4/src/putnam_1978_b3.lean b/lean4/src/putnam_1978_b3.lean index 8ea7f2f2..ee4227c1 100644 --- a/lean4/src/putnam_1978_b3.lean +++ b/lean4/src/putnam_1978_b3.lean @@ -1,15 +1,14 @@ import Mathlib -open BigOperators open Set Real Filter Topology Polynomial /-- -The polynomials $P_n(x)$ are defined by +The polynomials $P_n(x)$ are defined by \begin{align*} P_1(x) &= 1 + x, \\ P_2(x) &= 1 + 2x, \\ P_{2n+1}(x) &= P_{2n}(x) + (n + 1) x P_{2n-1}(x), \\ -P_{2n+2}(x) &= P_{2n+1}(x) + (n + 1) x P_{2n}(x). +P_{2n+2}(x) &= P_{2n+1}(x) + (n + 1) x P_{2n}(x). \end{align*} Let $a_n$ be the largest real root of $P_n(x)$. Prove that $a_n$ is strictly monotonically increasing and tends to zero. -/ diff --git a/lean4/src/putnam_1978_b4.lean b/lean4/src/putnam_1978_b4.lean index 9f65d75b..08856fe2 100644 --- a/lean4/src/putnam_1978_b4.lean +++ b/lean4/src/putnam_1978_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Real Filter Topology Polynomial diff --git a/lean4/src/putnam_1978_b5.lean b/lean4/src/putnam_1978_b5.lean index 7a3dda3e..9e85d88a 100644 --- a/lean4/src/putnam_1978_b5.lean +++ b/lean4/src/putnam_1978_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Real Filter Topology Polynomial diff --git a/lean4/src/putnam_1978_b6.lean b/lean4/src/putnam_1978_b6.lean index 3f42f7a3..06ccc1f5 100644 --- a/lean4/src/putnam_1978_b6.lean +++ b/lean4/src/putnam_1978_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Real Filter Topology Polynomial diff --git a/lean4/src/putnam_1979_a1.lean b/lean4/src/putnam_1979_a1.lean index 80456f68..81905d07 100644 --- a/lean4/src/putnam_1979_a1.lean +++ b/lean4/src/putnam_1979_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_1979_a1_solution : Multiset ℕ := sorry -- Multiset.replicate 659 3 + {2} diff --git a/lean4/src/putnam_1979_a2.lean b/lean4/src/putnam_1979_a2.lean index d7f7ef58..a3604f04 100644 --- a/lean4/src/putnam_1979_a2.lean +++ b/lean4/src/putnam_1979_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_1979_a2_solution : ℝ → Prop := sorry -- fun k : ℝ => k ≥ 0 diff --git a/lean4/src/putnam_1979_a3.lean b/lean4/src/putnam_1979_a3.lean index 253def7f..144b48b3 100644 --- a/lean4/src/putnam_1979_a3.lean +++ b/lean4/src/putnam_1979_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_1979_a3_solution : (ℝ × ℝ) → Prop := sorry -- fun (a, b) => ∃ m : ℤ, a = m ∧ b = m diff --git a/lean4/src/putnam_1979_a4.lean b/lean4/src/putnam_1979_a4.lean index 1ed96e36..f4d706d0 100644 --- a/lean4/src/putnam_1979_a4.lean +++ b/lean4/src/putnam_1979_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set diff --git a/lean4/src/putnam_1979_a5.lean b/lean4/src/putnam_1979_a5.lean index e71b0470..68b3ae6e 100644 --- a/lean4/src/putnam_1979_a5.lean +++ b/lean4/src/putnam_1979_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set diff --git a/lean4/src/putnam_1979_a6.lean b/lean4/src/putnam_1979_a6.lean index eedc6ff8..fb47d6d8 100644 --- a/lean4/src/putnam_1979_a6.lean +++ b/lean4/src/putnam_1979_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set diff --git a/lean4/src/putnam_1979_b2.lean b/lean4/src/putnam_1979_b2.lean index 8107e25f..165490fa 100644 --- a/lean4/src/putnam_1979_b2.lean +++ b/lean4/src/putnam_1979_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Topology Filter diff --git a/lean4/src/putnam_1979_b3.lean b/lean4/src/putnam_1979_b3.lean index 7ba152dc..a7b08e78 100644 --- a/lean4/src/putnam_1979_b3.lean +++ b/lean4/src/putnam_1979_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Topology Filter Polynomial diff --git a/lean4/src/putnam_1979_b5.lean b/lean4/src/putnam_1979_b5.lean index 9d5ca403..61b0c54c 100644 --- a/lean4/src/putnam_1979_b5.lean +++ b/lean4/src/putnam_1979_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Topology Filter Polynomial MeasureTheory diff --git a/lean4/src/putnam_1979_b6.lean b/lean4/src/putnam_1979_b6.lean index 641c78d3..45c86765 100644 --- a/lean4/src/putnam_1979_b6.lean +++ b/lean4/src/putnam_1979_b6.lean @@ -1,10 +1,9 @@ import Mathlib -open BigOperators open Set Topology Filter Polynomial MeasureTheory /-- -Let $z_i$ be complex numbers for $i = 1, 2, \dots, n$. Show that +Let $z_i$ be complex numbers for $i = 1, 2, \dots, n$. Show that \[ \left \lvert \mathrm{Re} \, [(z_1^2 + z_2^2 + \dots + z_n^2)^{1/2} ] \right \rvert \leq \lvert \mathrm{Re} \, z_1 \rvert + \lvert \mathrm{Re} \, z_2 \rvert + \dots + \lvert \mathrm{Re} \, z_n \rvert. \] diff --git a/lean4/src/putnam_1980_a2.lean b/lean4/src/putnam_1980_a2.lean index 6f1285a6..db785780 100644 --- a/lean4/src/putnam_1980_a2.lean +++ b/lean4/src/putnam_1980_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_1980_a2_solution : ℕ → ℕ → ℕ := sorry -- (fun r s : ℕ => (1 + 4 * r + 6 * r ^ 2) * (1 + 4 * s + 6 * s ^ 2)) diff --git a/lean4/src/putnam_1980_a3.lean b/lean4/src/putnam_1980_a3.lean index 894b2b79..65e4373e 100644 --- a/lean4/src/putnam_1980_a3.lean +++ b/lean4/src/putnam_1980_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators noncomputable abbrev putnam_1980_a3_solution : ℝ := sorry -- Real.pi / 4 diff --git a/lean4/src/putnam_1980_a4.lean b/lean4/src/putnam_1980_a4.lean index 920781c1..4bbb535a 100644 --- a/lean4/src/putnam_1980_a4.lean +++ b/lean4/src/putnam_1980_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- \begin{enumerate} diff --git a/lean4/src/putnam_1980_a5.lean b/lean4/src/putnam_1980_a5.lean index fd10279a..1faf07ca 100644 --- a/lean4/src/putnam_1980_a5.lean +++ b/lean4/src/putnam_1980_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Let $P(t)$ be a nonconstant polynomial with real coefficients. Prove that the system of simultaneous equations $0=\int_0^xP(t)\sin t\,dt=\int_0^xP(t)\cos t\,dt$ has only finitely many real solutions $x$. diff --git a/lean4/src/putnam_1980_a6.lean b/lean4/src/putnam_1980_a6.lean index 30fba095..65f2ac41 100644 --- a/lean4/src/putnam_1980_a6.lean +++ b/lean4/src/putnam_1980_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators -- Note: uses (ℝ → ℝ) instead of (Set.Icc (0 : ℝ) 1 → ℝ) noncomputable abbrev putnam_1980_a6_solution : ℝ := sorry diff --git a/lean4/src/putnam_1980_b1.lean b/lean4/src/putnam_1980_b1.lean index 66c16c3f..bf9a4785 100644 --- a/lean4/src/putnam_1980_b1.lean +++ b/lean4/src/putnam_1980_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Real diff --git a/lean4/src/putnam_1980_b3.lean b/lean4/src/putnam_1980_b3.lean index aff41b02..c3f14670 100644 --- a/lean4/src/putnam_1980_b3.lean +++ b/lean4/src/putnam_1980_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_1980_b3_solution : Set ℝ := sorry -- {a : ℝ | a ≥ 3} diff --git a/lean4/src/putnam_1980_b4.lean b/lean4/src/putnam_1980_b4.lean index 5931fa1a..80ddae64 100644 --- a/lean4/src/putnam_1980_b4.lean +++ b/lean4/src/putnam_1980_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Let $X$ be a finite set with at least $10$ elements; for each $i \in \{0, 1, ..., 1065\}$, let $A_i \subseteq X$ satisfy $|A_i| > \frac{1}{2}|X|$. Prove that there exist $10$ elements $x_1, x_2, \dots, x_{10} \in X$ such that each $A_i$ contains at least one of $x_1, x_2, \dots, x_{10}$. diff --git a/lean4/src/putnam_1980_b5.lean b/lean4/src/putnam_1980_b5.lean index 618d3d6d..c9d7ba03 100644 --- a/lean4/src/putnam_1980_b5.lean +++ b/lean4/src/putnam_1980_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set diff --git a/lean4/src/putnam_1980_b6.lean b/lean4/src/putnam_1980_b6.lean index 17e04d38..493d8051 100644 --- a/lean4/src/putnam_1980_b6.lean +++ b/lean4/src/putnam_1980_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set diff --git a/lean4/src/putnam_1981_a1.lean b/lean4/src/putnam_1981_a1.lean index 51a41ab8..911f9273 100644 --- a/lean4/src/putnam_1981_a1.lean +++ b/lean4/src/putnam_1981_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Set Polynomial Function diff --git a/lean4/src/putnam_1981_a3.lean b/lean4/src/putnam_1981_a3.lean index 4bd03e02..80c2114a 100644 --- a/lean4/src/putnam_1981_a3.lean +++ b/lean4/src/putnam_1981_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Set Polynomial Function diff --git a/lean4/src/putnam_1981_a5.lean b/lean4/src/putnam_1981_a5.lean index 3cbd6444..8ef436e1 100644 --- a/lean4/src/putnam_1981_a5.lean +++ b/lean4/src/putnam_1981_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Set Polynomial Function diff --git a/lean4/src/putnam_1981_b1.lean b/lean4/src/putnam_1981_b1.lean index 94c2340a..077aabd8 100644 --- a/lean4/src/putnam_1981_b1.lean +++ b/lean4/src/putnam_1981_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Set Polynomial Function diff --git a/lean4/src/putnam_1981_b2.lean b/lean4/src/putnam_1981_b2.lean index 5da3d8f3..c74c1236 100644 --- a/lean4/src/putnam_1981_b2.lean +++ b/lean4/src/putnam_1981_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Set Polynomial Function diff --git a/lean4/src/putnam_1981_b3.lean b/lean4/src/putnam_1981_b3.lean index 6d68c0a8..e6aedd74 100644 --- a/lean4/src/putnam_1981_b3.lean +++ b/lean4/src/putnam_1981_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Set Polynomial Function diff --git a/lean4/src/putnam_1981_b4.lean b/lean4/src/putnam_1981_b4.lean index a5402222..5cb5f78f 100644 --- a/lean4/src/putnam_1981_b4.lean +++ b/lean4/src/putnam_1981_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Set Polynomial Function diff --git a/lean4/src/putnam_1981_b5.lean b/lean4/src/putnam_1981_b5.lean index 06c07a57..e796e955 100644 --- a/lean4/src/putnam_1981_b5.lean +++ b/lean4/src/putnam_1981_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Set Polynomial Function diff --git a/lean4/src/putnam_1982_a2.lean b/lean4/src/putnam_1982_a2.lean index e2be2867..9e216619 100644 --- a/lean4/src/putnam_1982_a2.lean +++ b/lean4/src/putnam_1982_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Function Filter Topology Polynomial Real diff --git a/lean4/src/putnam_1982_a3.lean b/lean4/src/putnam_1982_a3.lean index 2f7ec8f3..c0627f99 100644 --- a/lean4/src/putnam_1982_a3.lean +++ b/lean4/src/putnam_1982_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Function Filter Topology Polynomial Real diff --git a/lean4/src/putnam_1982_a4.lean b/lean4/src/putnam_1982_a4.lean index fc9b25db..613fef7a 100644 --- a/lean4/src/putnam_1982_a4.lean +++ b/lean4/src/putnam_1982_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Function Filter Topology diff --git a/lean4/src/putnam_1982_a5.lean b/lean4/src/putnam_1982_a5.lean index 9e1e919c..be613e8a 100644 --- a/lean4/src/putnam_1982_a5.lean +++ b/lean4/src/putnam_1982_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Let $a, b, c, d$ be positive integers satisfying $a + c \leq 1982$ and $\frac{a}{b} + \frac{c}{d} < 1$. Prove that $1 - \frac{a}{b} - \frac{c}{d} > \frac{1}{1983^3}$. diff --git a/lean4/src/putnam_1982_a6.lean b/lean4/src/putnam_1982_a6.lean index ba2b07af..d76da022 100644 --- a/lean4/src/putnam_1982_a6.lean +++ b/lean4/src/putnam_1982_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Function Filter Topology Polynomial Real @@ -18,7 +17,8 @@ $\lim_{n \rightarrow \infty}\sum_{k = 1}^{n} x_k = 1$. Prove or disprove: these conditions imply that $$\lim_{n \rightarrow \infty} \sum_{k = 1}^{n} x_{b(k)} = 1.$$ -/ theorem putnam_1982_a6 -(S : Set ℕ := Ici 1) +(S : Set ℕ) +(S_def : S = Ici 1) (hb : (ℕ → ℕ) → Prop) (hb_def : hb = fun b : ℕ → ℕ => BijOn b S S) (hx : (ℕ → ℝ) → Prop) diff --git a/lean4/src/putnam_1982_b2.lean b/lean4/src/putnam_1982_b2.lean index b2978021..5bd67667 100644 --- a/lean4/src/putnam_1982_b2.lean +++ b/lean4/src/putnam_1982_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Function Filter Topology Polynomial Real diff --git a/lean4/src/putnam_1982_b3.lean b/lean4/src/putnam_1982_b3.lean index 32d204df..c8417e91 100644 --- a/lean4/src/putnam_1982_b3.lean +++ b/lean4/src/putnam_1982_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Function Filter Topology Polynomial Real diff --git a/lean4/src/putnam_1982_b4.lean b/lean4/src/putnam_1982_b4.lean index c32a4ce1..4fadfea0 100644 --- a/lean4/src/putnam_1982_b4.lean +++ b/lean4/src/putnam_1982_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Function Filter Topology Polynomial Real diff --git a/lean4/src/putnam_1982_b5.lean b/lean4/src/putnam_1982_b5.lean index b72c2740..c0caaf0d 100644 --- a/lean4/src/putnam_1982_b5.lean +++ b/lean4/src/putnam_1982_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Function Filter Topology Polynomial Real diff --git a/lean4/src/putnam_1983_a1.lean b/lean4/src/putnam_1983_a1.lean index a7c44b4f..055d2a6e 100644 --- a/lean4/src/putnam_1983_a1.lean +++ b/lean4/src/putnam_1983_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_1983_a1_solution : ℕ := sorry -- 2301 diff --git a/lean4/src/putnam_1983_a3.lean b/lean4/src/putnam_1983_a3.lean index b6570efc..a755bc1b 100644 --- a/lean4/src/putnam_1983_a3.lean +++ b/lean4/src/putnam_1983_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Let $p$ be in the set $\{3,5,7,11,\dots\}$ of odd primes and let $F(n)=1+2n+3n^2+\dots+(p-1)n^{p-2}$. Prove that if $a$ and $b$ are distinct integers in $\{0,1,2,\dots,p-1\}$ then $F(a)$ and $F(b)$ are not congruent modulo $p$, that is, $F(a)-F(b)$ is not exactly divisible by $p$. diff --git a/lean4/src/putnam_1983_a4.lean b/lean4/src/putnam_1983_a4.lean index a1d1a691..cc7d65fb 100644 --- a/lean4/src/putnam_1983_a4.lean +++ b/lean4/src/putnam_1983_a4.lean @@ -1,10 +1,9 @@ import Mathlib -open BigOperators open Nat /-- -Prove that for $m = 5 \pmod 6$, +Prove that for $m = 5 \pmod 6$, \[ \binom{m}{2} - \binom{m}{5} + \binom{m}{8} - \binom{m}{11} + ... - \binom{m}{m-6} + \binom{m}{m-3} \neq 0. \] diff --git a/lean4/src/putnam_1983_a5.lean b/lean4/src/putnam_1983_a5.lean index 75218fa6..ab17938b 100644 --- a/lean4/src/putnam_1983_a5.lean +++ b/lean4/src/putnam_1983_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat diff --git a/lean4/src/putnam_1983_a6.lean b/lean4/src/putnam_1983_a6.lean index 61d814a2..d4580ee7 100644 --- a/lean4/src/putnam_1983_a6.lean +++ b/lean4/src/putnam_1983_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Filter Topology Real diff --git a/lean4/src/putnam_1983_b2.lean b/lean4/src/putnam_1983_b2.lean index 04076aab..e018606d 100644 --- a/lean4/src/putnam_1983_b2.lean +++ b/lean4/src/putnam_1983_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Filter Topology Real diff --git a/lean4/src/putnam_1983_b4.lean b/lean4/src/putnam_1983_b4.lean index cbd70e0f..f05e9ad4 100644 --- a/lean4/src/putnam_1983_b4.lean +++ b/lean4/src/putnam_1983_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Real diff --git a/lean4/src/putnam_1983_b5.lean b/lean4/src/putnam_1983_b5.lean index 3f06299d..8be90b71 100644 --- a/lean4/src/putnam_1983_b5.lean +++ b/lean4/src/putnam_1983_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Filter Topology Real diff --git a/lean4/src/putnam_1983_b6.lean b/lean4/src/putnam_1983_b6.lean index 08743fc1..822ffaa2 100644 --- a/lean4/src/putnam_1983_b6.lean +++ b/lean4/src/putnam_1983_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Filter Topology Real Polynomial diff --git a/lean4/src/putnam_1984_a2.lean b/lean4/src/putnam_1984_a2.lean index 45b3027e..29338b7c 100644 --- a/lean4/src/putnam_1984_a2.lean +++ b/lean4/src/putnam_1984_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_1984_a2_solution : ℚ := sorry -- 2 diff --git a/lean4/src/putnam_1984_a3.lean b/lean4/src/putnam_1984_a3.lean index 78999ef3..493aab2c 100644 --- a/lean4/src/putnam_1984_a3.lean +++ b/lean4/src/putnam_1984_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_1984_a5.lean b/lean4/src/putnam_1984_a5.lean index 09bbcd64..3d358162 100644 --- a/lean4/src/putnam_1984_a5.lean +++ b/lean4/src/putnam_1984_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat diff --git a/lean4/src/putnam_1984_a6.lean b/lean4/src/putnam_1984_a6.lean index 9cd8e4d6..7670fb7a 100644 --- a/lean4/src/putnam_1984_a6.lean +++ b/lean4/src/putnam_1984_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Function Nat diff --git a/lean4/src/putnam_1984_b1.lean b/lean4/src/putnam_1984_b1.lean index d90a8de4..22502c53 100644 --- a/lean4/src/putnam_1984_b1.lean +++ b/lean4/src/putnam_1984_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat diff --git a/lean4/src/putnam_1984_b2.lean b/lean4/src/putnam_1984_b2.lean index 109f71ec..26529709 100644 --- a/lean4/src/putnam_1984_b2.lean +++ b/lean4/src/putnam_1984_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat diff --git a/lean4/src/putnam_1984_b3.lean b/lean4/src/putnam_1984_b3.lean index acaaf8af..149755a0 100644 --- a/lean4/src/putnam_1984_b3.lean +++ b/lean4/src/putnam_1984_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat diff --git a/lean4/src/putnam_1984_b5.lean b/lean4/src/putnam_1984_b5.lean index 113c0a59..244c189a 100644 --- a/lean4/src/putnam_1984_b5.lean +++ b/lean4/src/putnam_1984_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat diff --git a/lean4/src/putnam_1985_a1.lean b/lean4/src/putnam_1985_a1.lean index 22d2b37e..5bb6342b 100644 --- a/lean4/src/putnam_1985_a1.lean +++ b/lean4/src/putnam_1985_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set diff --git a/lean4/src/putnam_1985_a3.lean b/lean4/src/putnam_1985_a3.lean index 0673f9cc..0729b0ea 100644 --- a/lean4/src/putnam_1985_a3.lean +++ b/lean4/src/putnam_1985_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Filter Topology Real diff --git a/lean4/src/putnam_1985_a4.lean b/lean4/src/putnam_1985_a4.lean index c47e6f61..3aeccd4d 100644 --- a/lean4/src/putnam_1985_a4.lean +++ b/lean4/src/putnam_1985_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Filter Topology Real diff --git a/lean4/src/putnam_1985_a5.lean b/lean4/src/putnam_1985_a5.lean index 4d68ef82..0375f1e6 100644 --- a/lean4/src/putnam_1985_a5.lean +++ b/lean4/src/putnam_1985_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Filter Topology Real diff --git a/lean4/src/putnam_1985_a6.lean b/lean4/src/putnam_1985_a6.lean index 61a1dd52..c543fb29 100644 --- a/lean4/src/putnam_1985_a6.lean +++ b/lean4/src/putnam_1985_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Filter Topology Real Polynomial diff --git a/lean4/src/putnam_1985_b1.lean b/lean4/src/putnam_1985_b1.lean index e23c5a3e..d4cb4172 100644 --- a/lean4/src/putnam_1985_b1.lean +++ b/lean4/src/putnam_1985_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Filter Topology Real Polynomial Function diff --git a/lean4/src/putnam_1985_b2.lean b/lean4/src/putnam_1985_b2.lean index 2bef27df..c44ae17f 100644 --- a/lean4/src/putnam_1985_b2.lean +++ b/lean4/src/putnam_1985_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Filter Topology Real Polynomial Function diff --git a/lean4/src/putnam_1985_b3.lean b/lean4/src/putnam_1985_b3.lean index 3e397b44..616cbb5f 100644 --- a/lean4/src/putnam_1985_b3.lean +++ b/lean4/src/putnam_1985_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Filter Topology Real Polynomial Function diff --git a/lean4/src/putnam_1985_b5.lean b/lean4/src/putnam_1985_b5.lean index b4d1cdda..405ee17d 100644 --- a/lean4/src/putnam_1985_b5.lean +++ b/lean4/src/putnam_1985_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Filter Topology Real Polynomial Function diff --git a/lean4/src/putnam_1985_b6.lean b/lean4/src/putnam_1985_b6.lean index 610f8305..b32184b7 100644 --- a/lean4/src/putnam_1985_b6.lean +++ b/lean4/src/putnam_1985_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Filter Topology Real Polynomial Function diff --git a/lean4/src/putnam_1986_a1.lean b/lean4/src/putnam_1986_a1.lean index aa840531..30fd6792 100644 --- a/lean4/src/putnam_1986_a1.lean +++ b/lean4/src/putnam_1986_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_1986_a1_solution : ℝ := sorry -- 18 diff --git a/lean4/src/putnam_1986_a2.lean b/lean4/src/putnam_1986_a2.lean index 59b0da75..b8e71199 100644 --- a/lean4/src/putnam_1986_a2.lean +++ b/lean4/src/putnam_1986_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_1986_a2_solution : ℕ := sorry -- 3 diff --git a/lean4/src/putnam_1986_a3.lean b/lean4/src/putnam_1986_a3.lean index d73b2c6c..281c6511 100644 --- a/lean4/src/putnam_1986_a3.lean +++ b/lean4/src/putnam_1986_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Real diff --git a/lean4/src/putnam_1986_a4.lean b/lean4/src/putnam_1986_a4.lean index 7616e34e..d6869596 100644 --- a/lean4/src/putnam_1986_a4.lean +++ b/lean4/src/putnam_1986_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Real Equiv diff --git a/lean4/src/putnam_1986_a5.lean b/lean4/src/putnam_1986_a5.lean index bce3d2e2..699b7ba6 100644 --- a/lean4/src/putnam_1986_a5.lean +++ b/lean4/src/putnam_1986_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Real Equiv diff --git a/lean4/src/putnam_1986_a6.lean b/lean4/src/putnam_1986_a6.lean index f37343ec..b20e1f94 100644 --- a/lean4/src/putnam_1986_a6.lean +++ b/lean4/src/putnam_1986_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Real Equiv diff --git a/lean4/src/putnam_1986_b1.lean b/lean4/src/putnam_1986_b1.lean index e0424e17..91ac83d9 100644 --- a/lean4/src/putnam_1986_b1.lean +++ b/lean4/src/putnam_1986_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Real Equiv diff --git a/lean4/src/putnam_1986_b2.lean b/lean4/src/putnam_1986_b2.lean index 390bb1d4..e0c92ac4 100644 --- a/lean4/src/putnam_1986_b2.lean +++ b/lean4/src/putnam_1986_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Real Equiv diff --git a/lean4/src/putnam_1986_b3.lean b/lean4/src/putnam_1986_b3.lean index d720fd3e..d7cc6765 100644 --- a/lean4/src/putnam_1986_b3.lean +++ b/lean4/src/putnam_1986_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Real Equiv Polynomial diff --git a/lean4/src/putnam_1986_b4.lean b/lean4/src/putnam_1986_b4.lean index 347b5d0c..49a86eb3 100644 --- a/lean4/src/putnam_1986_b4.lean +++ b/lean4/src/putnam_1986_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Real Equiv Polynomial Filter Topology diff --git a/lean4/src/putnam_1986_b5.lean b/lean4/src/putnam_1986_b5.lean index 35f21205..9c392bf1 100644 --- a/lean4/src/putnam_1986_b5.lean +++ b/lean4/src/putnam_1986_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Real Equiv Polynomial Filter Topology MvPolynomial diff --git a/lean4/src/putnam_1986_b6.lean b/lean4/src/putnam_1986_b6.lean index 9a2cdc12..71d8b158 100644 --- a/lean4/src/putnam_1986_b6.lean +++ b/lean4/src/putnam_1986_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Real Equiv Polynomial Filter Topology MvPolynomial Matrix diff --git a/lean4/src/putnam_1987_a1.lean b/lean4/src/putnam_1987_a1.lean index 1aeadd14..c1693c04 100644 --- a/lean4/src/putnam_1987_a1.lean +++ b/lean4/src/putnam_1987_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Curves $A$, $B$, $C$, and $D$ are defined in the plane as follows: diff --git a/lean4/src/putnam_1987_a2.lean b/lean4/src/putnam_1987_a2.lean index 7b5924d9..6ced9af7 100644 --- a/lean4/src/putnam_1987_a2.lean +++ b/lean4/src/putnam_1987_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_1987_a2_solution : ℕ := sorry -- 1984 diff --git a/lean4/src/putnam_1987_a4.lean b/lean4/src/putnam_1987_a4.lean index 5cd88143..cf0e16b8 100644 --- a/lean4/src/putnam_1987_a4.lean +++ b/lean4/src/putnam_1987_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MvPolynomial Real diff --git a/lean4/src/putnam_1987_a5.lean b/lean4/src/putnam_1987_a5.lean index 5fad17e1..aae45c50 100644 --- a/lean4/src/putnam_1987_a5.lean +++ b/lean4/src/putnam_1987_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MvPolynomial Real diff --git a/lean4/src/putnam_1987_a6.lean b/lean4/src/putnam_1987_a6.lean index da2ddc88..5978b608 100644 --- a/lean4/src/putnam_1987_a6.lean +++ b/lean4/src/putnam_1987_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MvPolynomial Real Nat diff --git a/lean4/src/putnam_1987_b1.lean b/lean4/src/putnam_1987_b1.lean index c972732b..a6052957 100644 --- a/lean4/src/putnam_1987_b1.lean +++ b/lean4/src/putnam_1987_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MvPolynomial Real Nat diff --git a/lean4/src/putnam_1987_b2.lean b/lean4/src/putnam_1987_b2.lean index 3293659e..74729cd6 100644 --- a/lean4/src/putnam_1987_b2.lean +++ b/lean4/src/putnam_1987_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MvPolynomial Real Nat diff --git a/lean4/src/putnam_1987_b3.lean b/lean4/src/putnam_1987_b3.lean index b2fff123..29dc8dc4 100644 --- a/lean4/src/putnam_1987_b3.lean +++ b/lean4/src/putnam_1987_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MvPolynomial Real Nat diff --git a/lean4/src/putnam_1987_b4.lean b/lean4/src/putnam_1987_b4.lean index 00f5c08d..e04325ce 100644 --- a/lean4/src/putnam_1987_b4.lean +++ b/lean4/src/putnam_1987_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MvPolynomial Real Nat Filter Topology diff --git a/lean4/src/putnam_1987_b5.lean b/lean4/src/putnam_1987_b5.lean index b2d70ea5..4c0f839a 100644 --- a/lean4/src/putnam_1987_b5.lean +++ b/lean4/src/putnam_1987_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MvPolynomial Real Nat Filter Topology diff --git a/lean4/src/putnam_1987_b6.lean b/lean4/src/putnam_1987_b6.lean index 284a006e..188bf387 100644 --- a/lean4/src/putnam_1987_b6.lean +++ b/lean4/src/putnam_1987_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MvPolynomial Real Nat Filter Topology diff --git a/lean4/src/putnam_1988_a1.lean b/lean4/src/putnam_1988_a1.lean index 70bae3fc..e2c14f18 100644 --- a/lean4/src/putnam_1988_a1.lean +++ b/lean4/src/putnam_1988_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_1988_a1_solution : ℝ := sorry -- 6 diff --git a/lean4/src/putnam_1988_a2.lean b/lean4/src/putnam_1988_a2.lean index ac1900b8..84e97a9e 100644 --- a/lean4/src/putnam_1988_a2.lean +++ b/lean4/src/putnam_1988_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set diff --git a/lean4/src/putnam_1988_a3.lean b/lean4/src/putnam_1988_a3.lean index a8726e55..2cb1b4ee 100644 --- a/lean4/src/putnam_1988_a3.lean +++ b/lean4/src/putnam_1988_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Filter Topology diff --git a/lean4/src/putnam_1988_a4.lean b/lean4/src/putnam_1988_a4.lean index 213d8f04..f9284d11 100644 --- a/lean4/src/putnam_1988_a4.lean +++ b/lean4/src/putnam_1988_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Filter Topology diff --git a/lean4/src/putnam_1988_a5.lean b/lean4/src/putnam_1988_a5.lean index 7d584e68..5f3cad51 100644 --- a/lean4/src/putnam_1988_a5.lean +++ b/lean4/src/putnam_1988_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Filter Topology diff --git a/lean4/src/putnam_1988_a6.lean b/lean4/src/putnam_1988_a6.lean index c5b36369..0931ab0f 100644 --- a/lean4/src/putnam_1988_a6.lean +++ b/lean4/src/putnam_1988_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Filter Topology diff --git a/lean4/src/putnam_1988_b1.lean b/lean4/src/putnam_1988_b1.lean index 1710edfa..42401a7c 100644 --- a/lean4/src/putnam_1988_b1.lean +++ b/lean4/src/putnam_1988_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Filter Topology diff --git a/lean4/src/putnam_1988_b2.lean b/lean4/src/putnam_1988_b2.lean index 22683c57..64a1fb93 100644 --- a/lean4/src/putnam_1988_b2.lean +++ b/lean4/src/putnam_1988_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Filter Topology diff --git a/lean4/src/putnam_1988_b3.lean b/lean4/src/putnam_1988_b3.lean index b5892363..06ff3610 100644 --- a/lean4/src/putnam_1988_b3.lean +++ b/lean4/src/putnam_1988_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Filter Topology diff --git a/lean4/src/putnam_1988_b4.lean b/lean4/src/putnam_1988_b4.lean index ca4c58ea..bf27f2a7 100644 --- a/lean4/src/putnam_1988_b4.lean +++ b/lean4/src/putnam_1988_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Filter Topology diff --git a/lean4/src/putnam_1988_b5.lean b/lean4/src/putnam_1988_b5.lean index a0a3dc86..5ac03603 100644 --- a/lean4/src/putnam_1988_b5.lean +++ b/lean4/src/putnam_1988_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Filter Topology diff --git a/lean4/src/putnam_1988_b6.lean b/lean4/src/putnam_1988_b6.lean index a8760098..80852362 100644 --- a/lean4/src/putnam_1988_b6.lean +++ b/lean4/src/putnam_1988_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Filter Topology diff --git a/lean4/src/putnam_1989_a1.lean b/lean4/src/putnam_1989_a1.lean index 52dd78d6..4b222162 100644 --- a/lean4/src/putnam_1989_a1.lean +++ b/lean4/src/putnam_1989_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_1989_a1_solution : ℕ∞ := sorry -- 1 diff --git a/lean4/src/putnam_1989_a2.lean b/lean4/src/putnam_1989_a2.lean index 6ee337a7..1a985f08 100644 --- a/lean4/src/putnam_1989_a2.lean +++ b/lean4/src/putnam_1989_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators noncomputable abbrev putnam_1989_a2_solution : ℝ → ℝ → ℝ := sorry -- (fun a b : ℝ => (Real.exp (a ^ 2 * b ^ 2) - 1) / (a * b)) diff --git a/lean4/src/putnam_1989_a3.lean b/lean4/src/putnam_1989_a3.lean index 1179157e..bac10ff9 100644 --- a/lean4/src/putnam_1989_a3.lean +++ b/lean4/src/putnam_1989_a3.lean @@ -1,5 +1,5 @@ import Mathlib -open BigOperators Complex +open Complex /-- Prove that if diff --git a/lean4/src/putnam_1989_a6.lean b/lean4/src/putnam_1989_a6.lean index 6f00a82a..b4348d8e 100644 --- a/lean4/src/putnam_1989_a6.lean +++ b/lean4/src/putnam_1989_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat diff --git a/lean4/src/putnam_1989_b1.lean b/lean4/src/putnam_1989_b1.lean index 293a1b7e..3fc5bc39 100644 --- a/lean4/src/putnam_1989_b1.lean +++ b/lean4/src/putnam_1989_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat diff --git a/lean4/src/putnam_1989_b2.lean b/lean4/src/putnam_1989_b2.lean index 34c75521..eb5bbee3 100644 --- a/lean4/src/putnam_1989_b2.lean +++ b/lean4/src/putnam_1989_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat diff --git a/lean4/src/putnam_1989_b3.lean b/lean4/src/putnam_1989_b3.lean index 748efad2..d17db207 100644 --- a/lean4/src/putnam_1989_b3.lean +++ b/lean4/src/putnam_1989_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Filter Topology @@ -29,5 +28,5 @@ theorem putnam_1989_b3 (μ_def : ∀ n, μ n = ∫ x in Set.Ioi 0, x ^ n * f x) : (∀ n, μ n = putnam_1989_b3_solution n (μ 0)) ∧ (∃ L, Tendsto (fun n ↦ (μ n) * 3 ^ n / n !) atTop (𝓝 L)) ∧ - (Tendsto (fun n ↦ (μ n) * 3 ^ n / n !) atTop (𝓝 0) → μ 0 = 0) := by + (Tendsto (fun n ↦ (μ n) * 3 ^ n / n !) atTop (𝓝 0) → μ 0 = 0) := sorry diff --git a/lean4/src/putnam_1989_b4.lean b/lean4/src/putnam_1989_b4.lean index 8b16bec0..fc3673ec 100644 --- a/lean4/src/putnam_1989_b4.lean +++ b/lean4/src/putnam_1989_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Filter Topology Set diff --git a/lean4/src/putnam_1989_b6.lean b/lean4/src/putnam_1989_b6.lean index 85d4db46..e91a9056 100644 --- a/lean4/src/putnam_1989_b6.lean +++ b/lean4/src/putnam_1989_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Filter Topology Set diff --git a/lean4/src/putnam_1990_a1.lean b/lean4/src/putnam_1990_a1.lean index 128124a9..336fc49a 100644 --- a/lean4/src/putnam_1990_a1.lean +++ b/lean4/src/putnam_1990_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Nat diff --git a/lean4/src/putnam_1990_a2.lean b/lean4/src/putnam_1990_a2.lean index 07ab2428..7a79cc1d 100644 --- a/lean4/src/putnam_1990_a2.lean +++ b/lean4/src/putnam_1990_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Nat diff --git a/lean4/src/putnam_1990_a4.lean b/lean4/src/putnam_1990_a4.lean index a0ea526c..66419f0f 100644 --- a/lean4/src/putnam_1990_a4.lean +++ b/lean4/src/putnam_1990_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Nat diff --git a/lean4/src/putnam_1990_a5.lean b/lean4/src/putnam_1990_a5.lean index 870d469f..55713e95 100644 --- a/lean4/src/putnam_1990_a5.lean +++ b/lean4/src/putnam_1990_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Nat diff --git a/lean4/src/putnam_1990_a6.lean b/lean4/src/putnam_1990_a6.lean index ff520934..a6f5ebcb 100644 --- a/lean4/src/putnam_1990_a6.lean +++ b/lean4/src/putnam_1990_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Nat @@ -11,5 +10,5 @@ If $X$ is a finite set, let $|X|$ denote the number of elements in $X$. Call an theorem putnam_1990_a6 : ((Finset.univ : Finset <| Finset (Set.Icc 1 10) × Finset (Set.Icc 1 10)).filter fun ⟨S, T⟩ ↦ (∀ s ∈ S, T.card < s) ∧ (∀ t ∈ T, S.card < t)).card = - putnam_1990_a6_solution := by + putnam_1990_a6_solution := sorry diff --git a/lean4/src/putnam_1990_b1.lean b/lean4/src/putnam_1990_b1.lean index c936b2df..83357c58 100644 --- a/lean4/src/putnam_1990_b1.lean +++ b/lean4/src/putnam_1990_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Nat diff --git a/lean4/src/putnam_1990_b2.lean b/lean4/src/putnam_1990_b2.lean index 212d45b0..5d8162df 100644 --- a/lean4/src/putnam_1990_b2.lean +++ b/lean4/src/putnam_1990_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Nat diff --git a/lean4/src/putnam_1990_b3.lean b/lean4/src/putnam_1990_b3.lean index 010ebe7e..5a57eaaa 100644 --- a/lean4/src/putnam_1990_b3.lean +++ b/lean4/src/putnam_1990_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Nat diff --git a/lean4/src/putnam_1990_b4.lean b/lean4/src/putnam_1990_b4.lean index 65e0b0d0..47862816 100644 --- a/lean4/src/putnam_1990_b4.lean +++ b/lean4/src/putnam_1990_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Nat diff --git a/lean4/src/putnam_1990_b5.lean b/lean4/src/putnam_1990_b5.lean index 40afc454..3d78532b 100644 --- a/lean4/src/putnam_1990_b5.lean +++ b/lean4/src/putnam_1990_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Polynomial Topology Nat diff --git a/lean4/src/putnam_1991_a2.lean b/lean4/src/putnam_1991_a2.lean index b3df6ec7..6b941f02 100644 --- a/lean4/src/putnam_1991_a2.lean +++ b/lean4/src/putnam_1991_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_1991_a3.lean b/lean4/src/putnam_1991_a3.lean index 7026e977..50590b6b 100644 --- a/lean4/src/putnam_1991_a3.lean +++ b/lean4/src/putnam_1991_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_1991_a4.lean b/lean4/src/putnam_1991_a4.lean index fbd479bc..5e44ac87 100644 --- a/lean4/src/putnam_1991_a4.lean +++ b/lean4/src/putnam_1991_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter FiniteDimensional Metric Topology diff --git a/lean4/src/putnam_1991_a5.lean b/lean4/src/putnam_1991_a5.lean index 6375b4e5..704e40b5 100644 --- a/lean4/src/putnam_1991_a5.lean +++ b/lean4/src/putnam_1991_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_1991_a6.lean b/lean4/src/putnam_1991_a6.lean index 109d62cb..8f7099e2 100644 --- a/lean4/src/putnam_1991_a6.lean +++ b/lean4/src/putnam_1991_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_1991_b1.lean b/lean4/src/putnam_1991_b1.lean index b08e9e79..2dd2ddeb 100644 --- a/lean4/src/putnam_1991_b1.lean +++ b/lean4/src/putnam_1991_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_1991_b2.lean b/lean4/src/putnam_1991_b2.lean index 6a0edd44..9243453c 100644 --- a/lean4/src/putnam_1991_b2.lean +++ b/lean4/src/putnam_1991_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_1991_b4.lean b/lean4/src/putnam_1991_b4.lean index f7211238..93159870 100644 --- a/lean4/src/putnam_1991_b4.lean +++ b/lean4/src/putnam_1991_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_1991_b5.lean b/lean4/src/putnam_1991_b5.lean index 1c91c689..9eacbef9 100644 --- a/lean4/src/putnam_1991_b5.lean +++ b/lean4/src/putnam_1991_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_1991_b6.lean b/lean4/src/putnam_1991_b6.lean index 81168ca5..1754fa9f 100644 --- a/lean4/src/putnam_1991_b6.lean +++ b/lean4/src/putnam_1991_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_1992_a1.lean b/lean4/src/putnam_1992_a1.lean index dee4bbce..2b72fa84 100644 --- a/lean4/src/putnam_1992_a1.lean +++ b/lean4/src/putnam_1992_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_1992_a2.lean b/lean4/src/putnam_1992_a2.lean index a9dc25b7..8a4874f0 100644 --- a/lean4/src/putnam_1992_a2.lean +++ b/lean4/src/putnam_1992_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_1992_a3.lean b/lean4/src/putnam_1992_a3.lean index f005cd86..c862e65e 100644 --- a/lean4/src/putnam_1992_a3.lean +++ b/lean4/src/putnam_1992_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat diff --git a/lean4/src/putnam_1992_a4.lean b/lean4/src/putnam_1992_a4.lean index 24d2bb18..e4201409 100644 --- a/lean4/src/putnam_1992_a4.lean +++ b/lean4/src/putnam_1992_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat Function diff --git a/lean4/src/putnam_1992_a5.lean b/lean4/src/putnam_1992_a5.lean index f87bb57d..fc0a2db0 100644 --- a/lean4/src/putnam_1992_a5.lean +++ b/lean4/src/putnam_1992_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat Function diff --git a/lean4/src/putnam_1992_b1.lean b/lean4/src/putnam_1992_b1.lean index 3d586807..415c456d 100644 --- a/lean4/src/putnam_1992_b1.lean +++ b/lean4/src/putnam_1992_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat Function diff --git a/lean4/src/putnam_1992_b2.lean b/lean4/src/putnam_1992_b2.lean index 00de2315..9506b67c 100644 --- a/lean4/src/putnam_1992_b2.lean +++ b/lean4/src/putnam_1992_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat Function Polynomial diff --git a/lean4/src/putnam_1992_b3.lean b/lean4/src/putnam_1992_b3.lean index ccb093e7..d3005a4a 100644 --- a/lean4/src/putnam_1992_b3.lean +++ b/lean4/src/putnam_1992_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat Function Polynomial diff --git a/lean4/src/putnam_1992_b4.lean b/lean4/src/putnam_1992_b4.lean index f1f0b387..b42caf9f 100644 --- a/lean4/src/putnam_1992_b4.lean +++ b/lean4/src/putnam_1992_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat Function Polynomial diff --git a/lean4/src/putnam_1992_b5.lean b/lean4/src/putnam_1992_b5.lean index 5b917989..84a37237 100644 --- a/lean4/src/putnam_1992_b5.lean +++ b/lean4/src/putnam_1992_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat Function Polynomial diff --git a/lean4/src/putnam_1992_b6.lean b/lean4/src/putnam_1992_b6.lean index 2752a674..4d181708 100644 --- a/lean4/src/putnam_1992_b6.lean +++ b/lean4/src/putnam_1992_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat Function Polynomial diff --git a/lean4/src/putnam_1993_a1.lean b/lean4/src/putnam_1993_a1.lean index 84705a57..ea69c5f0 100644 --- a/lean4/src/putnam_1993_a1.lean +++ b/lean4/src/putnam_1993_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators noncomputable abbrev putnam_1993_a1_solution : ℝ := sorry -- 4 / 9 diff --git a/lean4/src/putnam_1993_a2.lean b/lean4/src/putnam_1993_a2.lean index ed76be07..fbd93edc 100644 --- a/lean4/src/putnam_1993_a2.lean +++ b/lean4/src/putnam_1993_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Let $(x_n)_{n \geq 0}$ be a sequence of nonzero real numbers such that $x_n^2-x_{n-1}x_{n+1}=1$ for $n=1,2,3,\dots$. Prove there exists a real number $a$ such that $x_{n+1}=ax_n-x_{n-1}$ for all $n \geq 1$. diff --git a/lean4/src/putnam_1993_a3.lean b/lean4/src/putnam_1993_a3.lean index 2e77f2bc..aa762160 100644 --- a/lean4/src/putnam_1993_a3.lean +++ b/lean4/src/putnam_1993_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Let $\mathcal{P}_n$ be the set of subsets of $\{1,2,\dots,n\}$. Let $c(n,m)$ be the number of functions $f:\mathcal{P}_n \to \{1,2,\dots,m\}$ such that $f(A \cap B)=\min\{f(A),f(B)\}$. Prove that $c(n,m)=\sum_{j=1}^m j^n$. diff --git a/lean4/src/putnam_1993_a4.lean b/lean4/src/putnam_1993_a4.lean index d286faa7..ed0fd3e0 100644 --- a/lean4/src/putnam_1993_a4.lean +++ b/lean4/src/putnam_1993_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Let $x_1,x_2,\dots,x_{19}$ be positive integers each of which is less than or equal to $93$. Let $y_1,y_2,\dots,y_{93}$ be positive integers each of which is less than or equal to $19$. Prove that there exists a (nonempty) sum of some $x_i$'s equal to a sum of some $y_j$'s. diff --git a/lean4/src/putnam_1993_a5.lean b/lean4/src/putnam_1993_a5.lean index 15b15d7f..d0c9a381 100644 --- a/lean4/src/putnam_1993_a5.lean +++ b/lean4/src/putnam_1993_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Show that $\int_{-100}^{-10} (\frac{x^2-x}{x^3-3x+1})^2\,dx+\int_{\frac{1}{101}}^{\frac{1}{11}} (\frac{x^2-x}{x^3-3x+1})^2\,dx+\int_{\frac{101}{100}}^{\frac{11}{10}} (\frac{x^2-x}{x^3-3x+1})^2\,dx$ is a rational number. diff --git a/lean4/src/putnam_1993_a6.lean b/lean4/src/putnam_1993_a6.lean index f6a36277..3e0886d8 100644 --- a/lean4/src/putnam_1993_a6.lean +++ b/lean4/src/putnam_1993_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- The infinite sequence of $2$'s and $3$'s $2,3,3,2,3,3,3,2,3,3,3,2,3,3,2,3,3,3,2,3,3,3,2,3,3,3,2,3,3,2,3,3,3,2,\dots$ has the property that, if one forms a second sequence that records the number of $3$'s between successive $2$'s, the result is identical to the given sequence. Show that there exists a real number $r$ such that, for any $n$, the $n$th term of the sequence is $2$ if and only if $n=1+\lfloor rm \rfloor$ for some nonnegative integer $m$. (Note: $\lfloor x \rfloor$ denotes the largest integer less than or equal to $x$.) diff --git a/lean4/src/putnam_1993_b1.lean b/lean4/src/putnam_1993_b1.lean index 81c50b16..8880750c 100644 --- a/lean4/src/putnam_1993_b1.lean +++ b/lean4/src/putnam_1993_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_1993_b1_solution : ℕ := sorry -- 3987 diff --git a/lean4/src/putnam_1993_b3.lean b/lean4/src/putnam_1993_b3.lean index 95fed668..fba4668f 100644 --- a/lean4/src/putnam_1993_b3.lean +++ b/lean4/src/putnam_1993_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_1993_b3_solution : ℚ × ℚ := sorry -- (5 / 4, -1 / 4) diff --git a/lean4/src/putnam_1993_b4.lean b/lean4/src/putnam_1993_b4.lean index 7cdb39f0..20d28090 100644 --- a/lean4/src/putnam_1993_b4.lean +++ b/lean4/src/putnam_1993_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- The function $K(x,y)$ is positive and continuous for $0 \leq x \leq 1,0 \leq y \leq 1$, and the functions $f(x)$ and $g(x)$ are positive and continuous for $0 \leq x \leq 1$. Suppose that for all $x$, $0 \leq x \leq 1$, $\int_0^1 f(y)K(x,y)\,dy=g(x)$ and $\int_0^1 g(y)K(x,y)\,dy=f(x)$. Show that $f(x)=g(x)$ for $0 \leq x \leq 1$. diff --git a/lean4/src/putnam_1993_b5.lean b/lean4/src/putnam_1993_b5.lean index bbc4a71b..72ce9d63 100644 --- a/lean4/src/putnam_1993_b5.lean +++ b/lean4/src/putnam_1993_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Show there do not exist four points in the Euclidean plane such that the pairwise distances between the points are all odd integers. diff --git a/lean4/src/putnam_1993_b6.lean b/lean4/src/putnam_1993_b6.lean index b46c7a59..b8bb6d5f 100644 --- a/lean4/src/putnam_1993_b6.lean +++ b/lean4/src/putnam_1993_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators -- Note: uses (ℕ → (Fin 3 → ℕ)) instead of (Fin (N + 1) → (Fin 3 → ℕ)) /-- diff --git a/lean4/src/putnam_1994_a1.lean b/lean4/src/putnam_1994_a1.lean index 99884791..e2465e97 100644 --- a/lean4/src/putnam_1994_a1.lean +++ b/lean4/src/putnam_1994_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology @@ -7,7 +6,7 @@ open Filter Topology Suppose that a sequence $a_1,a_2,a_3,\dots$ satisfies $0 ∑ n : Set.Icc 1 N, a n) atTop (𝓝 s)) := -sorry + (a : ℕ → ℝ) + (ha : ∀ n ≥ 1, 0 < a n ∧ a n ≤ a (2 * n) + a (2 * n + 1)) : + Tendsto (fun N : ℕ => ∑ n : Set.Icc 1 N, a n) atTop atTop := + sorry diff --git a/lean4/src/putnam_1994_a3.lean b/lean4/src/putnam_1994_a3.lean index b9831608..0b73520e 100644 --- a/lean4/src/putnam_1994_a3.lean +++ b/lean4/src/putnam_1994_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_1994_a4.lean b/lean4/src/putnam_1994_a4.lean index db8c37d0..aa58a316 100644 --- a/lean4/src/putnam_1994_a4.lean +++ b/lean4/src/putnam_1994_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_1994_a5.lean b/lean4/src/putnam_1994_a5.lean index f27164f3..5d6bfde3 100644 --- a/lean4/src/putnam_1994_a5.lean +++ b/lean4/src/putnam_1994_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_1994_a6.lean b/lean4/src/putnam_1994_a6.lean index f1982454..ac50cb17 100644 --- a/lean4/src/putnam_1994_a6.lean +++ b/lean4/src/putnam_1994_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Classical Filter Topology diff --git a/lean4/src/putnam_1994_b1.lean b/lean4/src/putnam_1994_b1.lean index 550c9ffa..48e64fde 100644 --- a/lean4/src/putnam_1994_b1.lean +++ b/lean4/src/putnam_1994_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_1994_b2.lean b/lean4/src/putnam_1994_b2.lean index 75201369..9aad8c07 100644 --- a/lean4/src/putnam_1994_b2.lean +++ b/lean4/src/putnam_1994_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_1994_b3.lean b/lean4/src/putnam_1994_b3.lean index ec69120f..7e71bcd1 100644 --- a/lean4/src/putnam_1994_b3.lean +++ b/lean4/src/putnam_1994_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology @@ -8,9 +7,7 @@ abbrev putnam_1994_b3_solution : Set ℝ := sorry /-- Find the set of all real numbers $k$ with the following property: For any positive, differentiable function $f$ that satisfies $f'(x)>f(x)$ for all $x$, there is some number $N$ such that $f(x)>e^{kx}$ for all $x>N$. -/ -theorem putnam_1994_b3 -(k : ℝ) -(allfexN : Prop) -(hallfexN : allfexN = ∀ f : ℝ → ℝ, (f > 0 ∧ Differentiable ℝ f ∧ ∀ x : ℝ, deriv f x > f x) → (∃ N : ℝ, ∀ x > N, f x > Real.exp (k * x))) -: allfexN ↔ k ∈ putnam_1994_b3_solution := -sorry +theorem putnam_1994_b3 : + {k | ∀ f (hf : (∀ x, 0 < f x ∧ f x < deriv f x) ∧ Differentiable ℝ f), + ∃ N, ∀ x > N, Real.exp (k * x) < f x} = putnam_1994_b3_solution := + sorry diff --git a/lean4/src/putnam_1994_b4.lean b/lean4/src/putnam_1994_b4.lean index 86448a61..5f1f57c3 100644 --- a/lean4/src/putnam_1994_b4.lean +++ b/lean4/src/putnam_1994_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_1994_b5.lean b/lean4/src/putnam_1994_b5.lean index 5b98038d..626b156d 100644 --- a/lean4/src/putnam_1994_b5.lean +++ b/lean4/src/putnam_1994_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_1994_b6.lean b/lean4/src/putnam_1994_b6.lean index ee28f4c3..60663438 100644 --- a/lean4/src/putnam_1994_b6.lean +++ b/lean4/src/putnam_1994_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_1995_a1.lean b/lean4/src/putnam_1995_a1.lean index f3ae5114..58a6f770 100644 --- a/lean4/src/putnam_1995_a1.lean +++ b/lean4/src/putnam_1995_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Let $S$ be a set of real numbers which is closed under multiplication (that is, if $a$ and $b$ are in $S$, then so is $ab$). Let $T$ and $U$ be disjoint subsets of $S$ whose union is $S$. Given that the product of any {\em three} (not necessarily distinct) elements of $T$ is in $T$ and that the product of any three elements of $U$ is in $U$, show that at least one of the two subsets $T,U$ is closed under multiplication. diff --git a/lean4/src/putnam_1995_a2.lean b/lean4/src/putnam_1995_a2.lean index 974af32a..66811580 100644 --- a/lean4/src/putnam_1995_a2.lean +++ b/lean4/src/putnam_1995_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Real diff --git a/lean4/src/putnam_1995_a3.lean b/lean4/src/putnam_1995_a3.lean index dae507d2..1529270a 100644 --- a/lean4/src/putnam_1995_a3.lean +++ b/lean4/src/putnam_1995_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Real diff --git a/lean4/src/putnam_1995_a4.lean b/lean4/src/putnam_1995_a4.lean index 73f28113..f5794c8a 100644 --- a/lean4/src/putnam_1995_a4.lean +++ b/lean4/src/putnam_1995_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Real diff --git a/lean4/src/putnam_1995_a5.lean b/lean4/src/putnam_1995_a5.lean index 05461ff2..c9953696 100644 --- a/lean4/src/putnam_1995_a5.lean +++ b/lean4/src/putnam_1995_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Real diff --git a/lean4/src/putnam_1995_a6.lean b/lean4/src/putnam_1995_a6.lean index 73f181bb..96175b80 100644 --- a/lean4/src/putnam_1995_a6.lean +++ b/lean4/src/putnam_1995_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Real diff --git a/lean4/src/putnam_1995_b1.lean b/lean4/src/putnam_1995_b1.lean index 1cdde8c7..f377d2ea 100644 --- a/lean4/src/putnam_1995_b1.lean +++ b/lean4/src/putnam_1995_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Real Nat diff --git a/lean4/src/putnam_1995_b3.lean b/lean4/src/putnam_1995_b3.lean index f4936ab5..9d8e5d23 100644 --- a/lean4/src/putnam_1995_b3.lean +++ b/lean4/src/putnam_1995_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Real Nat diff --git a/lean4/src/putnam_1995_b4.lean b/lean4/src/putnam_1995_b4.lean index e2405d83..4c3eb646 100644 --- a/lean4/src/putnam_1995_b4.lean +++ b/lean4/src/putnam_1995_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Real Nat diff --git a/lean4/src/putnam_1995_b6.lean b/lean4/src/putnam_1995_b6.lean index 2e6846f7..7e533c96 100644 --- a/lean4/src/putnam_1995_b6.lean +++ b/lean4/src/putnam_1995_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Real Nat diff --git a/lean4/src/putnam_1996_a2.lean b/lean4/src/putnam_1996_a2.lean index d5ec02fc..550de80b 100644 --- a/lean4/src/putnam_1996_a2.lean +++ b/lean4/src/putnam_1996_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Metric diff --git a/lean4/src/putnam_1996_a3.lean b/lean4/src/putnam_1996_a3.lean index b129349d..c0f26df3 100644 --- a/lean4/src/putnam_1996_a3.lean +++ b/lean4/src/putnam_1996_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_1996_a3_solution : Prop := sorry -- False diff --git a/lean4/src/putnam_1996_a4.lean b/lean4/src/putnam_1996_a4.lean index c3771b9e..c3c1cee5 100644 --- a/lean4/src/putnam_1996_a4.lean +++ b/lean4/src/putnam_1996_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Function diff --git a/lean4/src/putnam_1996_a5.lean b/lean4/src/putnam_1996_a5.lean index 78ed5a58..36913d34 100644 --- a/lean4/src/putnam_1996_a5.lean +++ b/lean4/src/putnam_1996_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Function diff --git a/lean4/src/putnam_1996_a6.lean b/lean4/src/putnam_1996_a6.lean index 772254c0..8346210a 100644 --- a/lean4/src/putnam_1996_a6.lean +++ b/lean4/src/putnam_1996_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Function diff --git a/lean4/src/putnam_1996_b1.lean b/lean4/src/putnam_1996_b1.lean index 4625512f..6b03b653 100644 --- a/lean4/src/putnam_1996_b1.lean +++ b/lean4/src/putnam_1996_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Function diff --git a/lean4/src/putnam_1996_b2.lean b/lean4/src/putnam_1996_b2.lean index 68852858..d81441ef 100644 --- a/lean4/src/putnam_1996_b2.lean +++ b/lean4/src/putnam_1996_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Function diff --git a/lean4/src/putnam_1996_b3.lean b/lean4/src/putnam_1996_b3.lean index 0116b7cb..fc067699 100644 --- a/lean4/src/putnam_1996_b3.lean +++ b/lean4/src/putnam_1996_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Function diff --git a/lean4/src/putnam_1996_b4.lean b/lean4/src/putnam_1996_b4.lean index 36d85f58..e97ceedb 100644 --- a/lean4/src/putnam_1996_b4.lean +++ b/lean4/src/putnam_1996_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Function Nat diff --git a/lean4/src/putnam_1996_b5.lean b/lean4/src/putnam_1996_b5.lean index 25216b6e..41a61aef 100644 --- a/lean4/src/putnam_1996_b5.lean +++ b/lean4/src/putnam_1996_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Function Nat diff --git a/lean4/src/putnam_1997_a3.lean b/lean4/src/putnam_1997_a3.lean index f2901160..d27e743e 100644 --- a/lean4/src/putnam_1997_a3.lean +++ b/lean4/src/putnam_1997_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_1997_a4.lean b/lean4/src/putnam_1997_a4.lean index 9cd30859..e2950bf5 100644 --- a/lean4/src/putnam_1997_a4.lean +++ b/lean4/src/putnam_1997_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_1997_a5.lean b/lean4/src/putnam_1997_a5.lean index 2c4a0749..5862a948 100644 --- a/lean4/src/putnam_1997_a5.lean +++ b/lean4/src/putnam_1997_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_1997_a6.lean b/lean4/src/putnam_1997_a6.lean index 40bf7873..03dda8c0 100644 --- a/lean4/src/putnam_1997_a6.lean +++ b/lean4/src/putnam_1997_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_1997_b1.lean b/lean4/src/putnam_1997_b1.lean index ad6e582f..07483850 100644 --- a/lean4/src/putnam_1997_b1.lean +++ b/lean4/src/putnam_1997_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_1997_b2.lean b/lean4/src/putnam_1997_b2.lean index 9645959a..76eadbf7 100644 --- a/lean4/src/putnam_1997_b2.lean +++ b/lean4/src/putnam_1997_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Bornology Set diff --git a/lean4/src/putnam_1997_b3.lean b/lean4/src/putnam_1997_b3.lean index f4e47fd9..01eef1d2 100644 --- a/lean4/src/putnam_1997_b3.lean +++ b/lean4/src/putnam_1997_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Bornology Set diff --git a/lean4/src/putnam_1997_b4.lean b/lean4/src/putnam_1997_b4.lean index 0eac016f..6da26712 100644 --- a/lean4/src/putnam_1997_b4.lean +++ b/lean4/src/putnam_1997_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Bornology Set Polynomial diff --git a/lean4/src/putnam_1997_b5.lean b/lean4/src/putnam_1997_b5.lean index e4ff6421..de0f50b2 100644 --- a/lean4/src/putnam_1997_b5.lean +++ b/lean4/src/putnam_1997_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators def tetration : ℕ → ℕ → ℕ | _, 0 => 1 diff --git a/lean4/src/putnam_1998_a2.lean b/lean4/src/putnam_1998_a2.lean index c0aa8c11..2e32cc39 100644 --- a/lean4/src/putnam_1998_a2.lean +++ b/lean4/src/putnam_1998_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Let $s$ be any arc of the unit circle lying entirely in the first quadrant. Let $A$ be the area of the region lying below $s$ and above the $x$-axis and let $B$ be the area of the region lying to the right of the $y$-axis and to the left of $s$. Prove that $A+B$ depends only on the arc length, and not on the position, of $s$. diff --git a/lean4/src/putnam_1998_a3.lean b/lean4/src/putnam_1998_a3.lean index 0afd9b55..90d7e222 100644 --- a/lean4/src/putnam_1998_a3.lean +++ b/lean4/src/putnam_1998_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Let $f$ be a real function on the real line with continuous third derivative. Prove that there exists a point $a$ such that \[f(a)\cdot f'(a) \cdot f''(a) \cdot f'''(a)\geq 0 .\] diff --git a/lean4/src/putnam_1998_a4.lean b/lean4/src/putnam_1998_a4.lean index cf8a498b..73859754 100644 --- a/lean4/src/putnam_1998_a4.lean +++ b/lean4/src/putnam_1998_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators -- Note: Since 11 divides `x` iff it divides its base-10 reverse, the `reverse` below is optional. abbrev putnam_1998_a4_solution : Set ℕ := sorry diff --git a/lean4/src/putnam_1998_a5.lean b/lean4/src/putnam_1998_a5.lean index 24eaf852..228fd217 100644 --- a/lean4/src/putnam_1998_a5.lean +++ b/lean4/src/putnam_1998_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Function Metric diff --git a/lean4/src/putnam_1998_a6.lean b/lean4/src/putnam_1998_a6.lean index 1f1d90d9..cc4f4bf3 100644 --- a/lean4/src/putnam_1998_a6.lean +++ b/lean4/src/putnam_1998_a6.lean @@ -1,7 +1,7 @@ import Mathlib -open BigOperators open Set Function Metric +open scoped InnerProductSpace /-- Let $A, B, C$ denote distinct points with integer coordinates in $\mathbb R^2$. Prove that if @@ -13,6 +13,7 @@ theorem putnam_1998_a6 (hint : ∀ i : Fin 2, ∃ a b c : ℤ, A i = a ∧ B i = b ∧ C i = c) (htriangle : A ≠ B ∧ A ≠ C ∧ B ≠ C) (harea : (dist A B + dist B C) ^ 2 < 8 * (MeasureTheory.volume (convexHull ℝ {A, B, C})).toReal + 1) -(threesquare : (EuclideanSpace ℝ (Fin 2)) → (EuclideanSpace ℝ (Fin 2)) → (EuclideanSpace ℝ (Fin 2)) → Prop := fun P Q R ↦ dist Q P = dist Q R ∧ Matrix.dotProduct (P - Q) (R - Q) = 0) +(threesquare : (EuclideanSpace ℝ (Fin 2)) → (EuclideanSpace ℝ (Fin 2)) → (EuclideanSpace ℝ (Fin 2)) → Prop) +(threesquare_def : threesquare = fun P Q R ↦ dist Q P = dist Q R ∧ ⟪P - Q, R - Q⟫_ℝ = 0) : (threesquare A B C ∨ threesquare B C A ∨ threesquare C A B) := sorry diff --git a/lean4/src/putnam_1998_b1.lean b/lean4/src/putnam_1998_b1.lean index e96f5fae..5e66d19c 100644 --- a/lean4/src/putnam_1998_b1.lean +++ b/lean4/src/putnam_1998_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Function Metric diff --git a/lean4/src/putnam_1998_b2.lean b/lean4/src/putnam_1998_b2.lean index 47576b28..3a3817c1 100644 --- a/lean4/src/putnam_1998_b2.lean +++ b/lean4/src/putnam_1998_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Function Metric diff --git a/lean4/src/putnam_1998_b4.lean b/lean4/src/putnam_1998_b4.lean index 15ad840b..582f1bde 100644 --- a/lean4/src/putnam_1998_b4.lean +++ b/lean4/src/putnam_1998_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Function Metric diff --git a/lean4/src/putnam_1998_b5.lean b/lean4/src/putnam_1998_b5.lean index eb438bcf..7f3c3caf 100644 --- a/lean4/src/putnam_1998_b5.lean +++ b/lean4/src/putnam_1998_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Function Metric diff --git a/lean4/src/putnam_1998_b6.lean b/lean4/src/putnam_1998_b6.lean index db0b507c..1b1600a1 100644 --- a/lean4/src/putnam_1998_b6.lean +++ b/lean4/src/putnam_1998_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Function Metric diff --git a/lean4/src/putnam_1999_a1.lean b/lean4/src/putnam_1999_a1.lean index f9404aec..e58b6fbf 100644 --- a/lean4/src/putnam_1999_a1.lean +++ b/lean4/src/putnam_1999_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators -- Note: The actual problem asks to "find" such polynomials as well - but the solution does not give a set of all possible solutions. Hence, we would need to do the analysis ourselves, the following formalization should work. abbrev putnam_1999_a1_solution : Prop := sorry diff --git a/lean4/src/putnam_1999_a2.lean b/lean4/src/putnam_1999_a2.lean index 2a31cc8b..87e99c21 100644 --- a/lean4/src/putnam_1999_a2.lean +++ b/lean4/src/putnam_1999_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Let $p(x)$ be a polynomial that is nonnegative for all real $x$. Prove that for some $k$, there are polynomials $f_1(x),\dots,f_k(x$) such that \[p(x) = \sum_{j=1}^k (f_j(x))^2.\] diff --git a/lean4/src/putnam_1999_a3.lean b/lean4/src/putnam_1999_a3.lean index ccaaa488..996eb8e5 100644 --- a/lean4/src/putnam_1999_a3.lean +++ b/lean4/src/putnam_1999_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Metric diff --git a/lean4/src/putnam_1999_a4.lean b/lean4/src/putnam_1999_a4.lean index c67ec123..9b194508 100644 --- a/lean4/src/putnam_1999_a4.lean +++ b/lean4/src/putnam_1999_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Metric diff --git a/lean4/src/putnam_1999_a5.lean b/lean4/src/putnam_1999_a5.lean index 57bf800f..4ff3acfd 100644 --- a/lean4/src/putnam_1999_a5.lean +++ b/lean4/src/putnam_1999_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Metric diff --git a/lean4/src/putnam_1999_a6.lean b/lean4/src/putnam_1999_a6.lean index 178ef021..16ca1550 100644 --- a/lean4/src/putnam_1999_a6.lean +++ b/lean4/src/putnam_1999_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Metric diff --git a/lean4/src/putnam_1999_b2.lean b/lean4/src/putnam_1999_b2.lean index 11ae0b52..6616a8d4 100644 --- a/lean4/src/putnam_1999_b2.lean +++ b/lean4/src/putnam_1999_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Metric diff --git a/lean4/src/putnam_1999_b3.lean b/lean4/src/putnam_1999_b3.lean index f157ad24..3a51656c 100644 --- a/lean4/src/putnam_1999_b3.lean +++ b/lean4/src/putnam_1999_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Metric diff --git a/lean4/src/putnam_1999_b4.lean b/lean4/src/putnam_1999_b4.lean index 67222cc9..985fb477 100644 --- a/lean4/src/putnam_1999_b4.lean +++ b/lean4/src/putnam_1999_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Metric diff --git a/lean4/src/putnam_1999_b5.lean b/lean4/src/putnam_1999_b5.lean index a1f4f888..1f6668ff 100644 --- a/lean4/src/putnam_1999_b5.lean +++ b/lean4/src/putnam_1999_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Metric diff --git a/lean4/src/putnam_1999_b6.lean b/lean4/src/putnam_1999_b6.lean index d8c10f31..4316e537 100644 --- a/lean4/src/putnam_1999_b6.lean +++ b/lean4/src/putnam_1999_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Metric diff --git a/lean4/src/putnam_2000_a1.lean b/lean4/src/putnam_2000_a1.lean index 86df71ae..54262a53 100644 --- a/lean4/src/putnam_2000_a1.lean +++ b/lean4/src/putnam_2000_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_2000_a2.lean b/lean4/src/putnam_2000_a2.lean index 3516eee1..f22022e5 100644 --- a/lean4/src/putnam_2000_a2.lean +++ b/lean4/src/putnam_2000_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_2000_a4.lean b/lean4/src/putnam_2000_a4.lean index 2503722a..fb34c50a 100644 --- a/lean4/src/putnam_2000_a4.lean +++ b/lean4/src/putnam_2000_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_2000_a5.lean b/lean4/src/putnam_2000_a5.lean index 4b8c8a0f..70b1277c 100644 --- a/lean4/src/putnam_2000_a5.lean +++ b/lean4/src/putnam_2000_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_2000_a6.lean b/lean4/src/putnam_2000_a6.lean index 63eb01cb..7d28d393 100644 --- a/lean4/src/putnam_2000_a6.lean +++ b/lean4/src/putnam_2000_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_2000_b1.lean b/lean4/src/putnam_2000_b1.lean index ef16aa34..ae8c194f 100644 --- a/lean4/src/putnam_2000_b1.lean +++ b/lean4/src/putnam_2000_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_2000_b2.lean b/lean4/src/putnam_2000_b2.lean index ea55d24e..065e9733 100644 --- a/lean4/src/putnam_2000_b2.lean +++ b/lean4/src/putnam_2000_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat diff --git a/lean4/src/putnam_2000_b3.lean b/lean4/src/putnam_2000_b3.lean index 9cd743d8..eee42412 100644 --- a/lean4/src/putnam_2000_b3.lean +++ b/lean4/src/putnam_2000_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat Set Function diff --git a/lean4/src/putnam_2000_b4.lean b/lean4/src/putnam_2000_b4.lean index 57f29b7e..c34fed08 100644 --- a/lean4/src/putnam_2000_b4.lean +++ b/lean4/src/putnam_2000_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat Set Function diff --git a/lean4/src/putnam_2000_b5.lean b/lean4/src/putnam_2000_b5.lean index 647389c3..c4c72258 100644 --- a/lean4/src/putnam_2000_b5.lean +++ b/lean4/src/putnam_2000_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat Set Function diff --git a/lean4/src/putnam_2001_a1.lean b/lean4/src/putnam_2001_a1.lean index 69384fb8..bf646f63 100644 --- a/lean4/src/putnam_2001_a1.lean +++ b/lean4/src/putnam_2001_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_2001_a3.lean b/lean4/src/putnam_2001_a3.lean index 9f5afa72..f8b49005 100644 --- a/lean4/src/putnam_2001_a3.lean +++ b/lean4/src/putnam_2001_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Polynomial Set diff --git a/lean4/src/putnam_2001_a5.lean b/lean4/src/putnam_2001_a5.lean index d4ac9a1c..00a2ebc0 100644 --- a/lean4/src/putnam_2001_a5.lean +++ b/lean4/src/putnam_2001_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Polynomial Set diff --git a/lean4/src/putnam_2001_b1.lean b/lean4/src/putnam_2001_b1.lean index 010568d1..add7046f 100644 --- a/lean4/src/putnam_2001_b1.lean +++ b/lean4/src/putnam_2001_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Polynomial Set diff --git a/lean4/src/putnam_2001_b2.lean b/lean4/src/putnam_2001_b2.lean index 23bf1a6a..83352b32 100644 --- a/lean4/src/putnam_2001_b2.lean +++ b/lean4/src/putnam_2001_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Polynomial Set diff --git a/lean4/src/putnam_2001_b3.lean b/lean4/src/putnam_2001_b3.lean index 89f1b339..5a09ea37 100644 --- a/lean4/src/putnam_2001_b3.lean +++ b/lean4/src/putnam_2001_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Polynomial Set diff --git a/lean4/src/putnam_2001_b4.lean b/lean4/src/putnam_2001_b4.lean index e20a5d0c..5f211f56 100644 --- a/lean4/src/putnam_2001_b4.lean +++ b/lean4/src/putnam_2001_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Polynomial Set diff --git a/lean4/src/putnam_2001_b5.lean b/lean4/src/putnam_2001_b5.lean index b89d2e1f..928cb3ec 100644 --- a/lean4/src/putnam_2001_b5.lean +++ b/lean4/src/putnam_2001_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Polynomial Set diff --git a/lean4/src/putnam_2001_b6.lean b/lean4/src/putnam_2001_b6.lean index bf8dd68d..b62cb768 100644 --- a/lean4/src/putnam_2001_b6.lean +++ b/lean4/src/putnam_2001_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Polynomial Set diff --git a/lean4/src/putnam_2002_a1.lean b/lean4/src/putnam_2002_a1.lean index 50cc7d89..876cc094 100644 --- a/lean4/src/putnam_2002_a1.lean +++ b/lean4/src/putnam_2002_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat diff --git a/lean4/src/putnam_2002_a2.lean b/lean4/src/putnam_2002_a2.lean index 8a0a317a..56d0b95c 100644 --- a/lean4/src/putnam_2002_a2.lean +++ b/lean4/src/putnam_2002_a2.lean @@ -1,7 +1,7 @@ import Mathlib -open BigOperators open Nat Metric +open scoped InnerProductSpace /-- Given any five points on a sphere, show that some four of them must lie on a closed hemisphere. @@ -9,7 +9,7 @@ Given any five points on a sphere, show that some four of them must lie on a clo theorem putnam_2002_a2 (unit_sphere : Set (EuclideanSpace ℝ (Fin 3))) (hsphere : unit_sphere = sphere 0 1) -(hemi : (EuclideanSpace ℝ (Fin 3)) → Set (EuclideanSpace ℝ (Fin 3))) -(hhemi : hemi = fun V ↦ {P : EuclideanSpace ℝ (Fin 3) | Matrix.dotProduct P V ≥ 0}) -: (∀ (S : Set (EuclideanSpace ℝ (Fin 3))), S ⊆ unit_sphere ∧ S.encard = 5 → ∃ V : (EuclideanSpace ℝ (Fin 3)), V ≠ 0 ∧ (S ∩ hemi V).encard ≥ 4) := +(hemi : EuclideanSpace ℝ (Fin 3) → Set (EuclideanSpace ℝ (Fin 3))) +(hhemi : hemi = fun V ↦ {P : EuclideanSpace ℝ (Fin 3) | ⟪P, V⟫_ℝ ≥ 0}) +: (∀ (S : Set (EuclideanSpace ℝ (Fin 3))), S ⊆ unit_sphere ∧ S.encard = 5 → ∃ V : EuclideanSpace ℝ (Fin 3), V ≠ 0 ∧ (S ∩ hemi V).encard ≥ 4) := sorry diff --git a/lean4/src/putnam_2002_a3.lean b/lean4/src/putnam_2002_a3.lean index 13728a43..f4ba63fc 100644 --- a/lean4/src/putnam_2002_a3.lean +++ b/lean4/src/putnam_2002_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat diff --git a/lean4/src/putnam_2002_a5.lean b/lean4/src/putnam_2002_a5.lean index cd7f2e79..09052242 100644 --- a/lean4/src/putnam_2002_a5.lean +++ b/lean4/src/putnam_2002_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Set diff --git a/lean4/src/putnam_2002_a6.lean b/lean4/src/putnam_2002_a6.lean index 875e1f23..a5c0bf06 100644 --- a/lean4/src/putnam_2002_a6.lean +++ b/lean4/src/putnam_2002_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Set Topology Filter diff --git a/lean4/src/putnam_2002_b3.lean b/lean4/src/putnam_2002_b3.lean index ca6c9547..f3c13e9f 100644 --- a/lean4/src/putnam_2002_b3.lean +++ b/lean4/src/putnam_2002_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Set Topology Filter diff --git a/lean4/src/putnam_2002_b5.lean b/lean4/src/putnam_2002_b5.lean index 46c196ff..93597241 100644 --- a/lean4/src/putnam_2002_b5.lean +++ b/lean4/src/putnam_2002_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Set Topology Filter diff --git a/lean4/src/putnam_2002_b6.lean b/lean4/src/putnam_2002_b6.lean index 09d84c2c..e6e4049d 100644 --- a/lean4/src/putnam_2002_b6.lean +++ b/lean4/src/putnam_2002_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Set Topology Filter Matrix MvPolynomial diff --git a/lean4/src/putnam_2003_a1.lean b/lean4/src/putnam_2003_a1.lean index 33bea4cb..2ddf5eec 100644 --- a/lean4/src/putnam_2003_a1.lean +++ b/lean4/src/putnam_2003_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MvPolynomial diff --git a/lean4/src/putnam_2003_a2.lean b/lean4/src/putnam_2003_a2.lean index fe66e933..d62d88d4 100644 --- a/lean4/src/putnam_2003_a2.lean +++ b/lean4/src/putnam_2003_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MvPolynomial diff --git a/lean4/src/putnam_2003_a3.lean b/lean4/src/putnam_2003_a3.lean index 13181842..8f7776fa 100644 --- a/lean4/src/putnam_2003_a3.lean +++ b/lean4/src/putnam_2003_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MvPolynomial diff --git a/lean4/src/putnam_2003_a4.lean b/lean4/src/putnam_2003_a4.lean index 6148a806..89aed5b4 100644 --- a/lean4/src/putnam_2003_a4.lean +++ b/lean4/src/putnam_2003_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MvPolynomial diff --git a/lean4/src/putnam_2003_a5.lean b/lean4/src/putnam_2003_a5.lean index a7a5a84a..f2fcef20 100644 --- a/lean4/src/putnam_2003_a5.lean +++ b/lean4/src/putnam_2003_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MvPolynomial Set diff --git a/lean4/src/putnam_2003_a6.lean b/lean4/src/putnam_2003_a6.lean index 2d7d7463..6432fa29 100644 --- a/lean4/src/putnam_2003_a6.lean +++ b/lean4/src/putnam_2003_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MvPolynomial Set diff --git a/lean4/src/putnam_2003_b1.lean b/lean4/src/putnam_2003_b1.lean index 9c75e09a..7b9afd71 100644 --- a/lean4/src/putnam_2003_b1.lean +++ b/lean4/src/putnam_2003_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MvPolynomial Set diff --git a/lean4/src/putnam_2003_b2.lean b/lean4/src/putnam_2003_b2.lean index af76c6f5..5aa07b1b 100644 --- a/lean4/src/putnam_2003_b2.lean +++ b/lean4/src/putnam_2003_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MvPolynomial Set diff --git a/lean4/src/putnam_2003_b3.lean b/lean4/src/putnam_2003_b3.lean index af1ef621..9a8aa86e 100644 --- a/lean4/src/putnam_2003_b3.lean +++ b/lean4/src/putnam_2003_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MvPolynomial Set Nat @@ -7,5 +6,5 @@ open MvPolynomial Set Nat Show that for each positive integer $n$, $n!=\prod_{i=1}^n \text{lcm}\{1,2,\dots,\lfloor n/i \rfloor\}$. (Here lcm denotes the least common multiple, and $\lfloor x \rfloor$ denotes the greatest integer $\leq x$.) -/ theorem putnam_2003_b3 (n : ℕ) : - n ! = ∏ i in Finset.Icc 1 n, ((List.range ⌊n / i⌋₊).map succ).foldl Nat.lcm 1 := by + n ! = ∏ i in Finset.Icc 1 n, ((List.range ⌊n / i⌋₊).map succ).foldl Nat.lcm 1 := sorry diff --git a/lean4/src/putnam_2003_b4.lean b/lean4/src/putnam_2003_b4.lean index 1ec728a0..6caffa2c 100644 --- a/lean4/src/putnam_2003_b4.lean +++ b/lean4/src/putnam_2003_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MvPolynomial Set Nat diff --git a/lean4/src/putnam_2003_b5.lean b/lean4/src/putnam_2003_b5.lean index 5a0c159d..83a122e4 100644 --- a/lean4/src/putnam_2003_b5.lean +++ b/lean4/src/putnam_2003_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MvPolynomial Set Nat diff --git a/lean4/src/putnam_2003_b6.lean b/lean4/src/putnam_2003_b6.lean index 2e9119d4..cd97e0c3 100644 --- a/lean4/src/putnam_2003_b6.lean +++ b/lean4/src/putnam_2003_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MvPolynomial Set Nat diff --git a/lean4/src/putnam_2004_a1.lean b/lean4/src/putnam_2004_a1.lean index f56371ff..9d0fb180 100644 --- a/lean4/src/putnam_2004_a1.lean +++ b/lean4/src/putnam_2004_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Topology Filter diff --git a/lean4/src/putnam_2004_a3.lean b/lean4/src/putnam_2004_a3.lean index 18740e6f..742c5362 100644 --- a/lean4/src/putnam_2004_a3.lean +++ b/lean4/src/putnam_2004_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Topology Filter diff --git a/lean4/src/putnam_2004_a4.lean b/lean4/src/putnam_2004_a4.lean index 6a052716..e389f2b2 100644 --- a/lean4/src/putnam_2004_a4.lean +++ b/lean4/src/putnam_2004_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Topology Filter diff --git a/lean4/src/putnam_2004_a5.lean b/lean4/src/putnam_2004_a5.lean index bcc1c49d..01319309 100644 --- a/lean4/src/putnam_2004_a5.lean +++ b/lean4/src/putnam_2004_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Topology Filter diff --git a/lean4/src/putnam_2004_a6.lean b/lean4/src/putnam_2004_a6.lean index a44f00b6..76bc7154 100644 --- a/lean4/src/putnam_2004_a6.lean +++ b/lean4/src/putnam_2004_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Topology Filter diff --git a/lean4/src/putnam_2004_b1.lean b/lean4/src/putnam_2004_b1.lean index e3e5a544..aa2c88bf 100644 --- a/lean4/src/putnam_2004_b1.lean +++ b/lean4/src/putnam_2004_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Topology Filter diff --git a/lean4/src/putnam_2004_b2.lean b/lean4/src/putnam_2004_b2.lean index 86c1b6a3..49de50cf 100644 --- a/lean4/src/putnam_2004_b2.lean +++ b/lean4/src/putnam_2004_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Topology Filter diff --git a/lean4/src/putnam_2004_b4.lean b/lean4/src/putnam_2004_b4.lean index a0e00859..c22a8656 100644 --- a/lean4/src/putnam_2004_b4.lean +++ b/lean4/src/putnam_2004_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Topology Filter diff --git a/lean4/src/putnam_2004_b5.lean b/lean4/src/putnam_2004_b5.lean index 7ce119cd..cedef415 100644 --- a/lean4/src/putnam_2004_b5.lean +++ b/lean4/src/putnam_2004_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Topology Filter diff --git a/lean4/src/putnam_2004_b6.lean b/lean4/src/putnam_2004_b6.lean index dbf5f9f8..e23032b6 100644 --- a/lean4/src/putnam_2004_b6.lean +++ b/lean4/src/putnam_2004_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Topology Filter diff --git a/lean4/src/putnam_2005_a1.lean b/lean4/src/putnam_2005_a1.lean index ebdee0fd..db848fb0 100644 --- a/lean4/src/putnam_2005_a1.lean +++ b/lean4/src/putnam_2005_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat diff --git a/lean4/src/putnam_2005_a2.lean b/lean4/src/putnam_2005_a2.lean index d34c3a89..328d0216 100644 --- a/lean4/src/putnam_2005_a2.lean +++ b/lean4/src/putnam_2005_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Set diff --git a/lean4/src/putnam_2005_a3.lean b/lean4/src/putnam_2005_a3.lean index 6587a7ef..fe3d46f4 100644 --- a/lean4/src/putnam_2005_a3.lean +++ b/lean4/src/putnam_2005_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Set diff --git a/lean4/src/putnam_2005_a4.lean b/lean4/src/putnam_2005_a4.lean index 092cb8c6..2ed7a878 100644 --- a/lean4/src/putnam_2005_a4.lean +++ b/lean4/src/putnam_2005_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Set diff --git a/lean4/src/putnam_2005_a5.lean b/lean4/src/putnam_2005_a5.lean index f9a7fbb5..64aa9ce0 100644 --- a/lean4/src/putnam_2005_a5.lean +++ b/lean4/src/putnam_2005_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Set diff --git a/lean4/src/putnam_2005_b1.lean b/lean4/src/putnam_2005_b1.lean index 13311edd..f79ddbae 100644 --- a/lean4/src/putnam_2005_b1.lean +++ b/lean4/src/putnam_2005_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Set diff --git a/lean4/src/putnam_2005_b2.lean b/lean4/src/putnam_2005_b2.lean index 6d1f6558..e8c0bcbd 100644 --- a/lean4/src/putnam_2005_b2.lean +++ b/lean4/src/putnam_2005_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Set diff --git a/lean4/src/putnam_2005_b3.lean b/lean4/src/putnam_2005_b3.lean index 6b968603..19cfec9a 100644 --- a/lean4/src/putnam_2005_b3.lean +++ b/lean4/src/putnam_2005_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Set diff --git a/lean4/src/putnam_2005_b4.lean b/lean4/src/putnam_2005_b4.lean index d601748f..58df69bd 100644 --- a/lean4/src/putnam_2005_b4.lean +++ b/lean4/src/putnam_2005_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Set diff --git a/lean4/src/putnam_2005_b5.lean b/lean4/src/putnam_2005_b5.lean index 4e3e86e4..038ea657 100644 --- a/lean4/src/putnam_2005_b5.lean +++ b/lean4/src/putnam_2005_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Set diff --git a/lean4/src/putnam_2005_b6.lean b/lean4/src/putnam_2005_b6.lean index cbfd5e88..f29c8dbf 100644 --- a/lean4/src/putnam_2005_b6.lean +++ b/lean4/src/putnam_2005_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Set diff --git a/lean4/src/putnam_2006_a1.lean b/lean4/src/putnam_2006_a1.lean index 9f1eb76b..d33f9d94 100644 --- a/lean4/src/putnam_2006_a1.lean +++ b/lean4/src/putnam_2006_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators noncomputable abbrev putnam_2006_a1_solution : ℝ := sorry -- 6 * Real.pi ^ 2 diff --git a/lean4/src/putnam_2006_a3.lean b/lean4/src/putnam_2006_a3.lean index 5688da0e..9cce7951 100644 --- a/lean4/src/putnam_2006_a3.lean +++ b/lean4/src/putnam_2006_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Let $1, 2, 3, \dots, 2005, 2006, 2007, 2009, 2012, 2016, \dots$ be a sequence defined by $x_k = k$ for $k=1, 2, \dots, 2006$ and $x_{k+1} = x_k + x_{k-2005}$ for $k \geq 2006$. Show that the sequence has $2005$ consecutive terms each divisible by $2006$. diff --git a/lean4/src/putnam_2006_a4.lean b/lean4/src/putnam_2006_a4.lean index 5fff1d40..b1c6d33c 100644 --- a/lean4/src/putnam_2006_a4.lean +++ b/lean4/src/putnam_2006_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators -- Note: uses (ℕ → ℕ) instead of (Equiv.Perm (Fin n)) noncomputable abbrev putnam_2006_a4_solution : ℕ → ℝ := sorry diff --git a/lean4/src/putnam_2006_a5.lean b/lean4/src/putnam_2006_a5.lean index e1698f64..9b295188 100644 --- a/lean4/src/putnam_2006_a5.lean +++ b/lean4/src/putnam_2006_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_2006_a5_solution : ℕ → ℤ := sorry -- (fun n : ℕ => if (n ≡ 1 [MOD 4]) then n else -n) diff --git a/lean4/src/putnam_2006_b1.lean b/lean4/src/putnam_2006_b1.lean index 5216da35..04fccb5e 100644 --- a/lean4/src/putnam_2006_b1.lean +++ b/lean4/src/putnam_2006_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators noncomputable abbrev putnam_2006_b1_solution : ℝ := sorry -- 3 * Real.sqrt 3 / 2 diff --git a/lean4/src/putnam_2006_b2.lean b/lean4/src/putnam_2006_b2.lean index bdea7615..91b745e3 100644 --- a/lean4/src/putnam_2006_b2.lean +++ b/lean4/src/putnam_2006_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Prove that, for every set $X = \{x_1, x_2, \dots, x_n\}$ of $n$ real numbers, there exists a non-empty subset $S$ of $X$ and an integer $m$ such that diff --git a/lean4/src/putnam_2006_b3.lean b/lean4/src/putnam_2006_b3.lean index 0a083087..d192c362 100644 --- a/lean4/src/putnam_2006_b3.lean +++ b/lean4/src/putnam_2006_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_2006_b3_solution : ℕ → ℕ := sorry -- (fun n : ℕ => (Nat.choose n 2) + 1) diff --git a/lean4/src/putnam_2006_b4.lean b/lean4/src/putnam_2006_b4.lean index dd44dc10..a2c374e6 100644 --- a/lean4/src/putnam_2006_b4.lean +++ b/lean4/src/putnam_2006_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators noncomputable abbrev putnam_2006_b4_solution : ℕ → ℕ := sorry -- fun k ↦ 2 ^ k diff --git a/lean4/src/putnam_2006_b5.lean b/lean4/src/putnam_2006_b5.lean index f117a7ca..06c6a316 100644 --- a/lean4/src/putnam_2006_b5.lean +++ b/lean4/src/putnam_2006_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set diff --git a/lean4/src/putnam_2006_b6.lean b/lean4/src/putnam_2006_b6.lean index 873bbfea..c80a69d8 100644 --- a/lean4/src/putnam_2006_b6.lean +++ b/lean4/src/putnam_2006_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Topology Filter diff --git a/lean4/src/putnam_2007_a1.lean b/lean4/src/putnam_2007_a1.lean index 7a620699..c68657d5 100644 --- a/lean4/src/putnam_2007_a1.lean +++ b/lean4/src/putnam_2007_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_2007_a1_solution : Set ℝ := sorry -- {2 / 3, 3 / 2, (13 + √601) / 12, (13 - √601) / 12} diff --git a/lean4/src/putnam_2007_a2.lean b/lean4/src/putnam_2007_a2.lean index 36813495..77c634f4 100644 --- a/lean4/src/putnam_2007_a2.lean +++ b/lean4/src/putnam_2007_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators noncomputable abbrev putnam_2007_a2_solution : ENNReal := sorry -- 4 diff --git a/lean4/src/putnam_2007_a3.lean b/lean4/src/putnam_2007_a3.lean index 1a494806..1882dee9 100644 --- a/lean4/src/putnam_2007_a3.lean +++ b/lean4/src/putnam_2007_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set open scoped Nat diff --git a/lean4/src/putnam_2007_a4.lean b/lean4/src/putnam_2007_a4.lean index 360451a2..10b77c9f 100644 --- a/lean4/src/putnam_2007_a4.lean +++ b/lean4/src/putnam_2007_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Nat diff --git a/lean4/src/putnam_2007_a5.lean b/lean4/src/putnam_2007_a5.lean index ecf5c3bf..0f56ca56 100644 --- a/lean4/src/putnam_2007_a5.lean +++ b/lean4/src/putnam_2007_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Nat diff --git a/lean4/src/putnam_2007_b1.lean b/lean4/src/putnam_2007_b1.lean index f408626e..79dfa49a 100644 --- a/lean4/src/putnam_2007_b1.lean +++ b/lean4/src/putnam_2007_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Nat diff --git a/lean4/src/putnam_2007_b2.lean b/lean4/src/putnam_2007_b2.lean index 764359c1..0c012fbf 100644 --- a/lean4/src/putnam_2007_b2.lean +++ b/lean4/src/putnam_2007_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Nat Function diff --git a/lean4/src/putnam_2007_b3.lean b/lean4/src/putnam_2007_b3.lean index 9d4efe2b..1b30c259 100644 --- a/lean4/src/putnam_2007_b3.lean +++ b/lean4/src/putnam_2007_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Nat Function diff --git a/lean4/src/putnam_2007_b4.lean b/lean4/src/putnam_2007_b4.lean index 68d4d671..2b6b1604 100644 --- a/lean4/src/putnam_2007_b4.lean +++ b/lean4/src/putnam_2007_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Nat Function diff --git a/lean4/src/putnam_2007_b5.lean b/lean4/src/putnam_2007_b5.lean index 85af96aa..22ce05b4 100644 --- a/lean4/src/putnam_2007_b5.lean +++ b/lean4/src/putnam_2007_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Nat Function diff --git a/lean4/src/putnam_2007_b6.lean b/lean4/src/putnam_2007_b6.lean index 7e00d7c2..b4439de3 100644 --- a/lean4/src/putnam_2007_b6.lean +++ b/lean4/src/putnam_2007_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Set Nat Function diff --git a/lean4/src/putnam_2008_a1.lean b/lean4/src/putnam_2008_a1.lean index a432a71c..f269d23e 100644 --- a/lean4/src/putnam_2008_a1.lean +++ b/lean4/src/putnam_2008_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Let $f:\mathbb{R}^2 \to \mathbb{R}$ be a function such that $f(x,y)+f(y,z)+f(z,x)=0$ for all real numbers $x$, $y$, and $z$. Prove that there exists a function $g:\mathbb{R} \to \mathbb{R}$ such that $f(x,y)=g(x)-g(y)$ for all real numbers $x$ and $y$. diff --git a/lean4/src/putnam_2008_a3.lean b/lean4/src/putnam_2008_a3.lean index 174fe30b..a5a2df78 100644 --- a/lean4/src/putnam_2008_a3.lean +++ b/lean4/src/putnam_2008_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Start with a finite sequence $a_1, a_2, \dots, a_n$ of positive integers. If possible, choose two indices $j < k$ such that $a_j$ does not divide $a_k$, and replace $a_j$ and $a_k$ by $\mathrm{gcd}(a_j, a_k)$ and $\mathrm{lcm}(a_j, a_k)$, respectively. Prove that if this process is repeated, it must eventually stop and the final sequence does not depend on the choices made. diff --git a/lean4/src/putnam_2008_a4.lean b/lean4/src/putnam_2008_a4.lean index c2ce696b..da0f3d2b 100644 --- a/lean4/src/putnam_2008_a4.lean +++ b/lean4/src/putnam_2008_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_2008_a5.lean b/lean4/src/putnam_2008_a5.lean index 6c964a69..d15c3433 100644 --- a/lean4/src/putnam_2008_a5.lean +++ b/lean4/src/putnam_2008_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Set diff --git a/lean4/src/putnam_2008_a6.lean b/lean4/src/putnam_2008_a6.lean index 697a999a..72ea9df1 100644 --- a/lean4/src/putnam_2008_a6.lean +++ b/lean4/src/putnam_2008_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Set diff --git a/lean4/src/putnam_2008_b1.lean b/lean4/src/putnam_2008_b1.lean index 7cbfade5..c7bde71b 100644 --- a/lean4/src/putnam_2008_b1.lean +++ b/lean4/src/putnam_2008_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Set diff --git a/lean4/src/putnam_2008_b2.lean b/lean4/src/putnam_2008_b2.lean index b26ccf7e..e40c1b95 100644 --- a/lean4/src/putnam_2008_b2.lean +++ b/lean4/src/putnam_2008_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Set Nat diff --git a/lean4/src/putnam_2008_b3.lean b/lean4/src/putnam_2008_b3.lean index e89b0ce0..902ac7f4 100644 --- a/lean4/src/putnam_2008_b3.lean +++ b/lean4/src/putnam_2008_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open FiniteDimensional Metric Filter Topology Set Nat diff --git a/lean4/src/putnam_2008_b4.lean b/lean4/src/putnam_2008_b4.lean index d772a3e1..24f29354 100644 --- a/lean4/src/putnam_2008_b4.lean +++ b/lean4/src/putnam_2008_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Set Nat diff --git a/lean4/src/putnam_2008_b5.lean b/lean4/src/putnam_2008_b5.lean index 73683741..edb14275 100644 --- a/lean4/src/putnam_2008_b5.lean +++ b/lean4/src/putnam_2008_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Set Nat diff --git a/lean4/src/putnam_2008_b6.lean b/lean4/src/putnam_2008_b6.lean index 9c241a86..5c29fbf8 100644 --- a/lean4/src/putnam_2008_b6.lean +++ b/lean4/src/putnam_2008_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Set Nat diff --git a/lean4/src/putnam_2009_a1.lean b/lean4/src/putnam_2009_a1.lean index 76c3d107..247d26ad 100644 --- a/lean4/src/putnam_2009_a1.lean +++ b/lean4/src/putnam_2009_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology MvPolynomial Filter diff --git a/lean4/src/putnam_2009_a2.lean b/lean4/src/putnam_2009_a2.lean index 3e5bfb74..40ddd638 100644 --- a/lean4/src/putnam_2009_a2.lean +++ b/lean4/src/putnam_2009_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology MvPolynomial Filter Set diff --git a/lean4/src/putnam_2009_a3.lean b/lean4/src/putnam_2009_a3.lean index dfb80b89..3696a3df 100644 --- a/lean4/src/putnam_2009_a3.lean +++ b/lean4/src/putnam_2009_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology MvPolynomial Filter Set diff --git a/lean4/src/putnam_2009_a4.lean b/lean4/src/putnam_2009_a4.lean index 36581d02..b147901e 100644 --- a/lean4/src/putnam_2009_a4.lean +++ b/lean4/src/putnam_2009_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology MvPolynomial Filter Set diff --git a/lean4/src/putnam_2009_a5.lean b/lean4/src/putnam_2009_a5.lean index b6fb9fee..a5fdaa4d 100644 --- a/lean4/src/putnam_2009_a5.lean +++ b/lean4/src/putnam_2009_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology MvPolynomial Filter Set diff --git a/lean4/src/putnam_2009_b1.lean b/lean4/src/putnam_2009_b1.lean index dd2380de..09a54fb4 100644 --- a/lean4/src/putnam_2009_b1.lean +++ b/lean4/src/putnam_2009_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology MvPolynomial Filter Set diff --git a/lean4/src/putnam_2009_b2.lean b/lean4/src/putnam_2009_b2.lean index 3d58e24b..c72d8a26 100644 --- a/lean4/src/putnam_2009_b2.lean +++ b/lean4/src/putnam_2009_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology MvPolynomial Filter Set diff --git a/lean4/src/putnam_2009_b3.lean b/lean4/src/putnam_2009_b3.lean index 4e2b2499..b7495152 100644 --- a/lean4/src/putnam_2009_b3.lean +++ b/lean4/src/putnam_2009_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology MvPolynomial Filter Set diff --git a/lean4/src/putnam_2009_b4.lean b/lean4/src/putnam_2009_b4.lean index 6cd3149b..4cd7bea2 100644 --- a/lean4/src/putnam_2009_b4.lean +++ b/lean4/src/putnam_2009_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology MvPolynomial Filter Set Metric diff --git a/lean4/src/putnam_2009_b5.lean b/lean4/src/putnam_2009_b5.lean index 7abef72e..e7e743e0 100644 --- a/lean4/src/putnam_2009_b5.lean +++ b/lean4/src/putnam_2009_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology MvPolynomial Filter Set Metric diff --git a/lean4/src/putnam_2009_b6.lean b/lean4/src/putnam_2009_b6.lean index c54c3940..995296d5 100644 --- a/lean4/src/putnam_2009_b6.lean +++ b/lean4/src/putnam_2009_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology MvPolynomial Filter Set Metric diff --git a/lean4/src/putnam_2010_a1.lean b/lean4/src/putnam_2010_a1.lean index 35136472..4576e59d 100644 --- a/lean4/src/putnam_2010_a1.lean +++ b/lean4/src/putnam_2010_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators noncomputable abbrev putnam_2010_a1_solution : ℕ → ℕ := sorry -- (fun n : ℕ => Nat.ceil ((n : ℝ) / 2)) diff --git a/lean4/src/putnam_2010_a2.lean b/lean4/src/putnam_2010_a2.lean index d2b692e1..348e73dd 100644 --- a/lean4/src/putnam_2010_a2.lean +++ b/lean4/src/putnam_2010_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_2010_a2_solution : Set (ℝ → ℝ) := sorry -- {f : ℝ → ℝ | ∃ c d : ℝ, ∀ x : ℝ, f x = c*x + d} diff --git a/lean4/src/putnam_2010_a4.lean b/lean4/src/putnam_2010_a4.lean index c5d54c6d..a508d807 100644 --- a/lean4/src/putnam_2010_a4.lean +++ b/lean4/src/putnam_2010_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Prove that for each positive integer $n$, the number $10^{10^{10^n}} + 10^{10^n} + 10^n - 1$ is not prime. diff --git a/lean4/src/putnam_2010_a5.lean b/lean4/src/putnam_2010_a5.lean index 402aa82b..f7dc38ee 100644 --- a/lean4/src/putnam_2010_a5.lean +++ b/lean4/src/putnam_2010_a5.lean @@ -1,12 +1,14 @@ import Mathlib -open BigOperators + +open scoped Matrix /-- Let $G$ be a group, with operation $*$. Suppose that \begin{enumerate} \item[(i)] $G$ is a subset of $\mathbb{R}^3$ (but $*$ need not be related to addition of vectors); \item[(ii)] For each $\mathbf{a},\mathbf{b} \in G$, either $\mathbf{a}\times \mathbf{b} = \mathbf{a}*\mathbf{b}$ or $\mathbf{a}\times \mathbf{b} = 0$ (or both), where $\times$ is the usual cross product in $\mathbb{R}^3$. \end{enumerate} Prove that $\mathbf{a} \times \mathbf{b} = 0$ for all $\mathbf{a}, \mathbf{b} \in G$. -/ theorem putnam_2010_a5 -(G : Set (Fin 3 → ℝ)) -(hGgrp : Group G) -(hGcross : ∀ a b : G, crossProduct a b = (a * b : Fin 3 → ℝ) ∨ crossProduct (a : Fin 3 → ℝ) b = 0) -: ∀ a b : G, crossProduct (a : Fin 3 → ℝ) b = 0 := -sorry + (G : Type*) [Group G] + (i : G ↪ (Fin 3 → ℝ)) + (h : ∀ a b, (i a) ×₃ (i b) = i (a * b) ∨ (i a) ×₃ (i b) = 0) + (a b : G) : + (i a) ×₃ (i b) = 0 := + sorry diff --git a/lean4/src/putnam_2010_a6.lean b/lean4/src/putnam_2010_a6.lean index fbbcb95e..657b3b23 100644 --- a/lean4/src/putnam_2010_a6.lean +++ b/lean4/src/putnam_2010_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Set diff --git a/lean4/src/putnam_2010_b1.lean b/lean4/src/putnam_2010_b1.lean index 7c374f0e..f74c268f 100644 --- a/lean4/src/putnam_2010_b1.lean +++ b/lean4/src/putnam_2010_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Set diff --git a/lean4/src/putnam_2010_b2.lean b/lean4/src/putnam_2010_b2.lean index cd598cee..c230b92a 100644 --- a/lean4/src/putnam_2010_b2.lean +++ b/lean4/src/putnam_2010_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Set abbrev putnam_2010_b2_solution : ℕ := sorry diff --git a/lean4/src/putnam_2010_b3.lean b/lean4/src/putnam_2010_b3.lean index 870a4918..72158cb2 100644 --- a/lean4/src/putnam_2010_b3.lean +++ b/lean4/src/putnam_2010_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Set diff --git a/lean4/src/putnam_2010_b4.lean b/lean4/src/putnam_2010_b4.lean index 50511cf2..aef4599d 100644 --- a/lean4/src/putnam_2010_b4.lean +++ b/lean4/src/putnam_2010_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Set diff --git a/lean4/src/putnam_2010_b5.lean b/lean4/src/putnam_2010_b5.lean index 15cd70b5..d5d6f266 100644 --- a/lean4/src/putnam_2010_b5.lean +++ b/lean4/src/putnam_2010_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Set diff --git a/lean4/src/putnam_2010_b6.lean b/lean4/src/putnam_2010_b6.lean index fd0395cb..0830566c 100644 --- a/lean4/src/putnam_2010_b6.lean +++ b/lean4/src/putnam_2010_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Set diff --git a/lean4/src/putnam_2011_a1.lean b/lean4/src/putnam_2011_a1.lean index 1e08c572..f7ed031d 100644 --- a/lean4/src/putnam_2011_a1.lean +++ b/lean4/src/putnam_2011_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_2011_a1_solution : ℕ := sorry -- 10053 diff --git a/lean4/src/putnam_2011_a2.lean b/lean4/src/putnam_2011_a2.lean index 57c0056d..fe64865a 100644 --- a/lean4/src/putnam_2011_a2.lean +++ b/lean4/src/putnam_2011_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_2011_a3.lean b/lean4/src/putnam_2011_a3.lean index afa255e7..ac74524b 100644 --- a/lean4/src/putnam_2011_a3.lean +++ b/lean4/src/putnam_2011_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_2011_a4.lean b/lean4/src/putnam_2011_a4.lean index 55efdb59..784c592d 100644 --- a/lean4/src/putnam_2011_a4.lean +++ b/lean4/src/putnam_2011_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Matrix diff --git a/lean4/src/putnam_2011_a5.lean b/lean4/src/putnam_2011_a5.lean index d8f3718c..6151a615 100644 --- a/lean4/src/putnam_2011_a5.lean +++ b/lean4/src/putnam_2011_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Matrix diff --git a/lean4/src/putnam_2011_a6.lean b/lean4/src/putnam_2011_a6.lean index c4081d07..60bf590f 100644 --- a/lean4/src/putnam_2011_a6.lean +++ b/lean4/src/putnam_2011_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Matrix diff --git a/lean4/src/putnam_2011_b1.lean b/lean4/src/putnam_2011_b1.lean index 5b797cdd..081c5fd1 100644 --- a/lean4/src/putnam_2011_b1.lean +++ b/lean4/src/putnam_2011_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Matrix diff --git a/lean4/src/putnam_2011_b2.lean b/lean4/src/putnam_2011_b2.lean index 50ae281e..711bfa70 100644 --- a/lean4/src/putnam_2011_b2.lean +++ b/lean4/src/putnam_2011_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Matrix diff --git a/lean4/src/putnam_2011_b3.lean b/lean4/src/putnam_2011_b3.lean index 2e0be997..22e94b52 100644 --- a/lean4/src/putnam_2011_b3.lean +++ b/lean4/src/putnam_2011_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Matrix diff --git a/lean4/src/putnam_2011_b4.lean b/lean4/src/putnam_2011_b4.lean index de848de9..3bfdc222 100644 --- a/lean4/src/putnam_2011_b4.lean +++ b/lean4/src/putnam_2011_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Matrix diff --git a/lean4/src/putnam_2011_b5.lean b/lean4/src/putnam_2011_b5.lean index 25db93e5..6dd47c93 100644 --- a/lean4/src/putnam_2011_b5.lean +++ b/lean4/src/putnam_2011_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Matrix diff --git a/lean4/src/putnam_2011_b6.lean b/lean4/src/putnam_2011_b6.lean index 7c79d24d..fdb4667f 100644 --- a/lean4/src/putnam_2011_b6.lean +++ b/lean4/src/putnam_2011_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Matrix Set diff --git a/lean4/src/putnam_2012_a1.lean b/lean4/src/putnam_2012_a1.lean index e665f276..0c48a46b 100644 --- a/lean4/src/putnam_2012_a1.lean +++ b/lean4/src/putnam_2012_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Matrix diff --git a/lean4/src/putnam_2012_a2.lean b/lean4/src/putnam_2012_a2.lean index e8f68935..7e138c70 100644 --- a/lean4/src/putnam_2012_a2.lean +++ b/lean4/src/putnam_2012_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Matrix diff --git a/lean4/src/putnam_2012_a3.lean b/lean4/src/putnam_2012_a3.lean index 964271fb..59d6cb8d 100644 --- a/lean4/src/putnam_2012_a3.lean +++ b/lean4/src/putnam_2012_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Matrix Function diff --git a/lean4/src/putnam_2012_a4.lean b/lean4/src/putnam_2012_a4.lean index ba80abcc..8a9a6c61 100644 --- a/lean4/src/putnam_2012_a4.lean +++ b/lean4/src/putnam_2012_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Matrix Function diff --git a/lean4/src/putnam_2012_a5.lean b/lean4/src/putnam_2012_a5.lean index 75c1f5d2..8c20607b 100644 --- a/lean4/src/putnam_2012_a5.lean +++ b/lean4/src/putnam_2012_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Matrix Function diff --git a/lean4/src/putnam_2012_a6.lean b/lean4/src/putnam_2012_a6.lean index 3493a95b..ee9cdfe2 100644 --- a/lean4/src/putnam_2012_a6.lean +++ b/lean4/src/putnam_2012_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Matrix Function diff --git a/lean4/src/putnam_2012_b1.lean b/lean4/src/putnam_2012_b1.lean index e683a36e..b874ed3d 100644 --- a/lean4/src/putnam_2012_b1.lean +++ b/lean4/src/putnam_2012_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Matrix Function Real diff --git a/lean4/src/putnam_2012_b3.lean b/lean4/src/putnam_2012_b3.lean index 04236afd..21a610dc 100644 --- a/lean4/src/putnam_2012_b3.lean +++ b/lean4/src/putnam_2012_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Matrix Function Real diff --git a/lean4/src/putnam_2012_b4.lean b/lean4/src/putnam_2012_b4.lean index a9772c8c..e68ead34 100644 --- a/lean4/src/putnam_2012_b4.lean +++ b/lean4/src/putnam_2012_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Matrix Function Real Topology Filter diff --git a/lean4/src/putnam_2012_b5.lean b/lean4/src/putnam_2012_b5.lean index a44011e7..d547115b 100644 --- a/lean4/src/putnam_2012_b5.lean +++ b/lean4/src/putnam_2012_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Matrix Function Real Topology Filter diff --git a/lean4/src/putnam_2012_b6.lean b/lean4/src/putnam_2012_b6.lean index 4f6e66cf..eb49be2b 100644 --- a/lean4/src/putnam_2012_b6.lean +++ b/lean4/src/putnam_2012_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Matrix Function Real Topology Filter diff --git a/lean4/src/putnam_2013_a2.lean b/lean4/src/putnam_2013_a2.lean index 5271955a..66cd8720 100644 --- a/lean4/src/putnam_2013_a2.lean +++ b/lean4/src/putnam_2013_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Function Set @@ -8,7 +7,7 @@ Let $S$ be the set of all positive integers that are \emph{not} perfect squares. $a_1, a_2, \dots, a_r$ such that $n < a_1< a_2 < \cdots < a_r$ and $n \cdot a_1 \cdot a_2 \cdots a_r$ is a perfect square, and let $f(n)$ be the minumum of $a_r$ over all such choices. For example, -$2 \cdot 3 \cdot 6$ is a perfect square, while $2 \cdot 3$, $2 \cdot 4$, +$2 \cdot 3 \cdot 6$ is a perfect square, while $2 \cdot 3$, $2 \cdot 4$, $2 \cdot 5$, $2 \cdot 3 \cdot 4$, $2 \cdot 3 \cdot 5$, $2 \cdot 4 \cdot 5$, and $2 \cdot 3 \cdot 4 \cdot 5$ are not, and so $f(2) = 6$. Show that the function $f$ from $S$ to the integers is one-to-one. -/ diff --git a/lean4/src/putnam_2013_a3.lean b/lean4/src/putnam_2013_a3.lean index 17f5c4a0..2356f362 100644 --- a/lean4/src/putnam_2013_a3.lean +++ b/lean4/src/putnam_2013_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Function Set diff --git a/lean4/src/putnam_2013_a4.lean b/lean4/src/putnam_2013_a4.lean index 2efe99f7..3867ce57 100644 --- a/lean4/src/putnam_2013_a4.lean +++ b/lean4/src/putnam_2013_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Function Set diff --git a/lean4/src/putnam_2013_a5.lean b/lean4/src/putnam_2013_a5.lean index dea90c93..e3d2baad 100644 --- a/lean4/src/putnam_2013_a5.lean +++ b/lean4/src/putnam_2013_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Function Set MeasureTheory diff --git a/lean4/src/putnam_2013_a6.lean b/lean4/src/putnam_2013_a6.lean index b2cfa092..22135108 100644 --- a/lean4/src/putnam_2013_a6.lean +++ b/lean4/src/putnam_2013_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Function Set diff --git a/lean4/src/putnam_2013_b1.lean b/lean4/src/putnam_2013_b1.lean index 2a5baf51..28ccc648 100644 --- a/lean4/src/putnam_2013_b1.lean +++ b/lean4/src/putnam_2013_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Function Set diff --git a/lean4/src/putnam_2013_b2.lean b/lean4/src/putnam_2013_b2.lean index fd8b9146..878e99d9 100644 --- a/lean4/src/putnam_2013_b2.lean +++ b/lean4/src/putnam_2013_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Function Set @@ -17,7 +16,7 @@ $f(x) \geq 0$ for all real $x$, and \item[(ii)] $a_n = 0$ whenever $n$ is a multiple of $3$. \end{enumerate} -Determine the maximum value of $f(0)$ as $f$ ranges through $C$, and +Determine the maximum value of $f(0)$ as $f$ ranges through $C$, and prove that this maximum is attained. -/ theorem putnam_2013_b2 diff --git a/lean4/src/putnam_2013_b3.lean b/lean4/src/putnam_2013_b3.lean index e9825eaa..1c91246a 100644 --- a/lean4/src/putnam_2013_b3.lean +++ b/lean4/src/putnam_2013_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Function Set diff --git a/lean4/src/putnam_2013_b4.lean b/lean4/src/putnam_2013_b4.lean index 962be9d2..a8d09e8e 100644 --- a/lean4/src/putnam_2013_b4.lean +++ b/lean4/src/putnam_2013_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Function Set diff --git a/lean4/src/putnam_2013_b5.lean b/lean4/src/putnam_2013_b5.lean index 3739b787..3b07ae19 100644 --- a/lean4/src/putnam_2013_b5.lean +++ b/lean4/src/putnam_2013_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Function Set diff --git a/lean4/src/putnam_2014_a1.lean b/lean4/src/putnam_2014_a1.lean index b0701ad8..5e5fcf51 100644 --- a/lean4/src/putnam_2014_a1.lean +++ b/lean4/src/putnam_2014_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_2014_a2.lean b/lean4/src/putnam_2014_a2.lean index 3342f703..4e602a3d 100644 --- a/lean4/src/putnam_2014_a2.lean +++ b/lean4/src/putnam_2014_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat diff --git a/lean4/src/putnam_2014_a3.lean b/lean4/src/putnam_2014_a3.lean index b3a9d793..2d75878f 100644 --- a/lean4/src/putnam_2014_a3.lean +++ b/lean4/src/putnam_2014_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat diff --git a/lean4/src/putnam_2014_a4.lean b/lean4/src/putnam_2014_a4.lean index 368ced5e..3b07e1f0 100644 --- a/lean4/src/putnam_2014_a4.lean +++ b/lean4/src/putnam_2014_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat diff --git a/lean4/src/putnam_2014_a5.lean b/lean4/src/putnam_2014_a5.lean index 817a013e..5dfb298a 100644 --- a/lean4/src/putnam_2014_a5.lean +++ b/lean4/src/putnam_2014_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat diff --git a/lean4/src/putnam_2014_a6.lean b/lean4/src/putnam_2014_a6.lean index c93d7857..84936e7e 100644 --- a/lean4/src/putnam_2014_a6.lean +++ b/lean4/src/putnam_2014_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat diff --git a/lean4/src/putnam_2014_b1.lean b/lean4/src/putnam_2014_b1.lean index b702dbab..6fb200a4 100644 --- a/lean4/src/putnam_2014_b1.lean +++ b/lean4/src/putnam_2014_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat diff --git a/lean4/src/putnam_2014_b2.lean b/lean4/src/putnam_2014_b2.lean index 41171b06..4ae0bd72 100644 --- a/lean4/src/putnam_2014_b2.lean +++ b/lean4/src/putnam_2014_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat diff --git a/lean4/src/putnam_2014_b3.lean b/lean4/src/putnam_2014_b3.lean index 11bb2d98..bccddf9e 100644 --- a/lean4/src/putnam_2014_b3.lean +++ b/lean4/src/putnam_2014_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat diff --git a/lean4/src/putnam_2014_b4.lean b/lean4/src/putnam_2014_b4.lean index e8bbd509..e6803f61 100644 --- a/lean4/src/putnam_2014_b4.lean +++ b/lean4/src/putnam_2014_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat diff --git a/lean4/src/putnam_2014_b6.lean b/lean4/src/putnam_2014_b6.lean index 8790f808..96d838eb 100644 --- a/lean4/src/putnam_2014_b6.lean +++ b/lean4/src/putnam_2014_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Nat Set Interval diff --git a/lean4/src/putnam_2015_a1.lean b/lean4/src/putnam_2015_a1.lean index 4ee69f59..039d283c 100644 --- a/lean4/src/putnam_2015_a1.lean +++ b/lean4/src/putnam_2015_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Let $A$ and $B$ be points on the same branch of the hyperbola $xy=1$. Suppose that $P$ is a point lying between $A$ and $B$ on this hyperbola, such that the area of the triangle $APB$ is as large as possible. Show that the region bounded by the hyperbola and the chord $AP$ has the same area as the region bounded by the hyperbola and the chord $PB$. diff --git a/lean4/src/putnam_2015_a2.lean b/lean4/src/putnam_2015_a2.lean index 189b3d8c..4039c655 100644 --- a/lean4/src/putnam_2015_a2.lean +++ b/lean4/src/putnam_2015_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators -- Note: this problem admits several possible correct solutions; this is the one shown on the solutions document abbrev putnam_2015_a2_solution : ℕ := sorry diff --git a/lean4/src/putnam_2015_a3.lean b/lean4/src/putnam_2015_a3.lean index cb8406cc..d0e47392 100644 --- a/lean4/src/putnam_2015_a3.lean +++ b/lean4/src/putnam_2015_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_2015_a3_solution : ℂ := sorry -- 13725 diff --git a/lean4/src/putnam_2015_a4.lean b/lean4/src/putnam_2015_a4.lean index f81dcfbb..939ed0a0 100644 --- a/lean4/src/putnam_2015_a4.lean +++ b/lean4/src/putnam_2015_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators noncomputable abbrev putnam_2015_a4_solution : ℝ := sorry -- 4 / 7 diff --git a/lean4/src/putnam_2015_a5.lean b/lean4/src/putnam_2015_a5.lean index 95187b96..60928dea 100644 --- a/lean4/src/putnam_2015_a5.lean +++ b/lean4/src/putnam_2015_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Let $q$ be an odd positive integer, and let $N_q$ denote the number of integers $a$ such that $0 0 ∧ (x = 1 ∨ 5 ∣ x)} diff --git a/lean4/src/putnam_2017_a2.lean b/lean4/src/putnam_2017_a2.lean index 519eeef8..ec3b697b 100644 --- a/lean4/src/putnam_2017_a2.lean +++ b/lean4/src/putnam_2017_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Let $Q_0(x)=1$, $Q_1(x)=x$, and $Q_n(x)=\frac{(Q_{n-1}(x))^2-1}{Q_{n-2}(x)}$ for all $n \geq 2$. Show that, whenever $n$ is a positive integer, $Q_n(x)$ is equal to a polynomial with integer coefficients. diff --git a/lean4/src/putnam_2017_a3.lean b/lean4/src/putnam_2017_a3.lean index 3f230771..0d1c0260 100644 --- a/lean4/src/putnam_2017_a3.lean +++ b/lean4/src/putnam_2017_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_2017_a4.lean b/lean4/src/putnam_2017_a4.lean index d5e9d426..5118fbb8 100644 --- a/lean4/src/putnam_2017_a4.lean +++ b/lean4/src/putnam_2017_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_2017_b1.lean b/lean4/src/putnam_2017_b1.lean index 5944f47a..f2c7e4b3 100644 --- a/lean4/src/putnam_2017_b1.lean +++ b/lean4/src/putnam_2017_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_2017_b2.lean b/lean4/src/putnam_2017_b2.lean index 4e78d88a..6db27c47 100644 --- a/lean4/src/putnam_2017_b2.lean +++ b/lean4/src/putnam_2017_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_2017_b3.lean b/lean4/src/putnam_2017_b3.lean index 38ad6a48..77d3c104 100644 --- a/lean4/src/putnam_2017_b3.lean +++ b/lean4/src/putnam_2017_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_2017_b4.lean b/lean4/src/putnam_2017_b4.lean index 625cafbf..10b29d31 100644 --- a/lean4/src/putnam_2017_b4.lean +++ b/lean4/src/putnam_2017_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Real diff --git a/lean4/src/putnam_2017_b6.lean b/lean4/src/putnam_2017_b6.lean index 024368fe..5f74de47 100644 --- a/lean4/src/putnam_2017_b6.lean +++ b/lean4/src/putnam_2017_b6.lean @@ -1,12 +1,11 @@ import Mathlib -open BigOperators open Topology Filter Real Function Nat abbrev putnam_2017_b6_solution : ℕ := sorry -- 2016! / 1953! - 63! * 2016 /-- -Find the number of ordered $64$-tuples $(x_0,x_1,\dots,x_{63})$ such that $x_0,x_1,\dots,x_{63}$ are distinct elements of $\{1,2,\dots,2017\}$ and +Find the number of ordered $64$-tuples $(x_0,x_1,\dots,x_{63})$ such that $x_0,x_1,\dots,x_{63}$ are distinct elements of $\{1,2,\dots,2017\}$ and \[ x_0 + x_1 + 2x_2 + 3x_3 + \cdots + 63 x_{63} \] diff --git a/lean4/src/putnam_2018_a1.lean b/lean4/src/putnam_2018_a1.lean index b4e91dfb..109f3b08 100644 --- a/lean4/src/putnam_2018_a1.lean +++ b/lean4/src/putnam_2018_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_2018_a1_solution : Set (ℤ × ℤ) := sorry -- {⟨673, 1358114⟩, ⟨674, 340033⟩, ⟨1009, 2018⟩, ⟨2018, 1009⟩, ⟨340033, 674⟩, ⟨1358114, 673⟩} diff --git a/lean4/src/putnam_2018_a2.lean b/lean4/src/putnam_2018_a2.lean index 42694918..4ca787b9 100644 --- a/lean4/src/putnam_2018_a2.lean +++ b/lean4/src/putnam_2018_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_2018_a2_solution : ℕ → ℝ := sorry -- (fun n : ℕ => if n = 1 then 1 else -1) diff --git a/lean4/src/putnam_2018_a3.lean b/lean4/src/putnam_2018_a3.lean index 526b5df0..0c4f47c8 100644 --- a/lean4/src/putnam_2018_a3.lean +++ b/lean4/src/putnam_2018_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators noncomputable abbrev putnam_2018_a3_solution : ℝ := sorry -- 480/49 @@ -9,5 +8,5 @@ Determine the greatest possible value of $\sum_{i=1}^{10} \cos(3x_i)$ for real n theorem putnam_2018_a3 : IsGreatest {∑ i, Real.cos (3 * x i) | (x : Fin 10 → ℝ) (hx : ∑ i, Real.cos (x i) = 0)} - putnam_2018_a3_solution := by + putnam_2018_a3_solution := sorry diff --git a/lean4/src/putnam_2018_a4.lean b/lean4/src/putnam_2018_a4.lean index c9ea07db..7963a974 100644 --- a/lean4/src/putnam_2018_a4.lean +++ b/lean4/src/putnam_2018_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators -- Note: uses (ℕ → ℕ) instead of (Set.Icc 1 n → ℕ) /-- diff --git a/lean4/src/putnam_2018_a5.lean b/lean4/src/putnam_2018_a5.lean index 88ed079c..c393fcc8 100644 --- a/lean4/src/putnam_2018_a5.lean +++ b/lean4/src/putnam_2018_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Let $f: \mathbb{R} \to \mathbb{R}$ be an infinitely differentiable function satisfying $f(0) = 0$, $f(1)= 1$, and $f(x) \geq 0$ for all $x \in \mathbb{R}$. Show that there exist a positive integer $n$ and a real number $x$ such that $f^{(n)}(x) < 0$. diff --git a/lean4/src/putnam_2018_a6.lean b/lean4/src/putnam_2018_a6.lean index 20891545..b6e228a4 100644 --- a/lean4/src/putnam_2018_a6.lean +++ b/lean4/src/putnam_2018_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Suppose that $A$, $B$, $C$, and $D$ are distinct points, no three of which lie on a line, in the Euclidean plane. Show that if the squares of the lengths of the line segments $AB$, $AC$, $AD$, $BC$, $BD$, and $CD$ are rational numbers, then the quotient $\frac{\text{area}(\triangle ABC)}{\text{area}(\triangle ABD)}$ is a rational number. diff --git a/lean4/src/putnam_2018_b1.lean b/lean4/src/putnam_2018_b1.lean index 37998aa5..e24f5054 100644 --- a/lean4/src/putnam_2018_b1.lean +++ b/lean4/src/putnam_2018_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_2018_b1_solution : Set (Mathlib.Vector ℤ 2) := sorry -- {v : Mathlib.Vector ℤ 2 | ∃ b : ℤ, 0 ≤ b ∧ b ≤ 100 ∧ Even b ∧ v.toList = [1, b]} diff --git a/lean4/src/putnam_2018_b2.lean b/lean4/src/putnam_2018_b2.lean index cf10788f..fcdb4a70 100644 --- a/lean4/src/putnam_2018_b2.lean +++ b/lean4/src/putnam_2018_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Let $n$ be a positive integer, and let $f_n(z) = n + (n-1)z + (n-2)z^2 + \cdots + z^{n-1}$. Prove that $f_n$ has no roots in the closed unit disk $\{z \in \mathbb{C}: |z| \leq 1\}$. diff --git a/lean4/src/putnam_2018_b3.lean b/lean4/src/putnam_2018_b3.lean index 1b198276..c2b3ced8 100644 --- a/lean4/src/putnam_2018_b3.lean +++ b/lean4/src/putnam_2018_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_2018_b3_solution : Set ℕ := sorry -- {2^2, 2^4, 2^16, 2^256} diff --git a/lean4/src/putnam_2018_b4.lean b/lean4/src/putnam_2018_b4.lean index ac973542..0209be39 100644 --- a/lean4/src/putnam_2018_b4.lean +++ b/lean4/src/putnam_2018_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Given a real number $a$, we define a sequence by $x_0 = 1$, $x_1 = x_2 = a$, and $x_{n+1} = 2x_n x_{n-1} - x_{n-2}$ for $n \geq 2$. Prove that if $x_n = 0$ for some $n$, then the sequence is periodic. diff --git a/lean4/src/putnam_2018_b5.lean b/lean4/src/putnam_2018_b5.lean index 9fba4279..bfe625c4 100644 --- a/lean4/src/putnam_2018_b5.lean +++ b/lean4/src/putnam_2018_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Function diff --git a/lean4/src/putnam_2018_b6.lean b/lean4/src/putnam_2018_b6.lean index 683c5b9d..c1700881 100644 --- a/lean4/src/putnam_2018_b6.lean +++ b/lean4/src/putnam_2018_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators /-- Let $S$ be the set of sequences of length $2018$ whose terms are in the set $\{1,2,3,4,5,6,10\}$ and sum to $3860$. Prove that the cardinality of $S$ is at most $2^{3860} \cdot \left(\frac{2018}{2048}\right)^{2018}$. diff --git a/lean4/src/putnam_2019_a1.lean b/lean4/src/putnam_2019_a1.lean index 669beed7..784a55ca 100644 --- a/lean4/src/putnam_2019_a1.lean +++ b/lean4/src/putnam_2019_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_2019_a3.lean b/lean4/src/putnam_2019_a3.lean index 7eda1576..bda4c4a2 100644 --- a/lean4/src/putnam_2019_a3.lean +++ b/lean4/src/putnam_2019_a3.lean @@ -1,13 +1,12 @@ import Mathlib -open BigOperators open Topology Filter noncomputable abbrev putnam_2019_a3_solution : ℝ := sorry -- 2019^(-(1:ℝ)/2019) /-- -Given real numbers $b_0, b_1, \dots, b_{2019}$ with $b_{2019} \neq 0$, let $z_1,z_2,\dots,z_{2019}$ be -the roots in the complex plane of the polynomial +Given real numbers $b_0, b_1, \dots, b_{2019}$ with $b_{2019} \neq 0$, let $z_1,z_2,\dots,z_{2019}$ be +the roots in the complex plane of the polynomial \[ P(z) = \sum_{k=0}^{2019} b_k z^k. \] diff --git a/lean4/src/putnam_2019_a4.lean b/lean4/src/putnam_2019_a4.lean index 29af4c3e..dd41785d 100644 --- a/lean4/src/putnam_2019_a4.lean +++ b/lean4/src/putnam_2019_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open MeasureTheory Metric Topology Filter diff --git a/lean4/src/putnam_2019_a5.lean b/lean4/src/putnam_2019_a5.lean index 687f3267..7513289a 100644 --- a/lean4/src/putnam_2019_a5.lean +++ b/lean4/src/putnam_2019_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_2019_a6.lean b/lean4/src/putnam_2019_a6.lean index 02d3a5ef..cad869ad 100644 --- a/lean4/src/putnam_2019_a6.lean +++ b/lean4/src/putnam_2019_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_2019_b1.lean b/lean4/src/putnam_2019_b1.lean index 883139ae..178a6ac7 100644 --- a/lean4/src/putnam_2019_b1.lean +++ b/lean4/src/putnam_2019_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter diff --git a/lean4/src/putnam_2019_b2.lean b/lean4/src/putnam_2019_b2.lean index 4d63712c..e5bf975d 100644 --- a/lean4/src/putnam_2019_b2.lean +++ b/lean4/src/putnam_2019_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Set diff --git a/lean4/src/putnam_2019_b3.lean b/lean4/src/putnam_2019_b3.lean index 4192d6ae..cc848f23 100644 --- a/lean4/src/putnam_2019_b3.lean +++ b/lean4/src/putnam_2019_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Set Matrix diff --git a/lean4/src/putnam_2019_b4.lean b/lean4/src/putnam_2019_b4.lean index 25243fe6..ebf76456 100644 --- a/lean4/src/putnam_2019_b4.lean +++ b/lean4/src/putnam_2019_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Set Matrix diff --git a/lean4/src/putnam_2019_b5.lean b/lean4/src/putnam_2019_b5.lean index fe24f2dc..3f22c963 100644 --- a/lean4/src/putnam_2019_b5.lean +++ b/lean4/src/putnam_2019_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Set Matrix diff --git a/lean4/src/putnam_2019_b6.lean b/lean4/src/putnam_2019_b6.lean index b453899d..a68377a6 100644 --- a/lean4/src/putnam_2019_b6.lean +++ b/lean4/src/putnam_2019_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Topology Filter Set Matrix diff --git a/lean4/src/putnam_2020_a1.lean b/lean4/src/putnam_2020_a1.lean index c99bdc8a..05d8eced 100644 --- a/lean4/src/putnam_2020_a1.lean +++ b/lean4/src/putnam_2020_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_2020_a1_solution : ℕ := sorry -- 508536 diff --git a/lean4/src/putnam_2020_a2.lean b/lean4/src/putnam_2020_a2.lean index 13f0cf0a..3ac5855f 100644 --- a/lean4/src/putnam_2020_a2.lean +++ b/lean4/src/putnam_2020_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators abbrev putnam_2020_a2_solution : ℕ → ℕ := sorry -- fun k ↦ 4 ^ k diff --git a/lean4/src/putnam_2020_a3.lean b/lean4/src/putnam_2020_a3.lean index c14b2399..4f1dea64 100644 --- a/lean4/src/putnam_2020_a3.lean +++ b/lean4/src/putnam_2020_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Set diff --git a/lean4/src/putnam_2020_a5.lean b/lean4/src/putnam_2020_a5.lean index 18c05bfa..7fcef864 100644 --- a/lean4/src/putnam_2020_a5.lean +++ b/lean4/src/putnam_2020_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Set diff --git a/lean4/src/putnam_2020_a6.lean b/lean4/src/putnam_2020_a6.lean index 6200b1c3..a5e2a8fc 100644 --- a/lean4/src/putnam_2020_a6.lean +++ b/lean4/src/putnam_2020_a6.lean @@ -1,12 +1,11 @@ import Mathlib -open BigOperators open Filter Topology Set noncomputable abbrev putnam_2020_a6_solution : ℝ := sorry -- Real.pi / 4 /-- -For a positive integer $N$, let $f_N$ be the function defined by +For a positive integer $N$, let $f_N$ be the function defined by \[ f_N(x) = \sum_{n=0}^N \frac{N+1/2-n}{(N+1)(2n+1)} \sin((2n+1)x). \] diff --git a/lean4/src/putnam_2020_b1.lean b/lean4/src/putnam_2020_b1.lean index 98ed0164..46977c1a 100644 --- a/lean4/src/putnam_2020_b1.lean +++ b/lean4/src/putnam_2020_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Set diff --git a/lean4/src/putnam_2020_b4.lean b/lean4/src/putnam_2020_b4.lean index 54bf70ad..b196ce6d 100644 --- a/lean4/src/putnam_2020_b4.lean +++ b/lean4/src/putnam_2020_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Set diff --git a/lean4/src/putnam_2020_b5.lean b/lean4/src/putnam_2020_b5.lean index 3c8123b4..355ea92f 100644 --- a/lean4/src/putnam_2020_b5.lean +++ b/lean4/src/putnam_2020_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Set @@ -8,7 +7,7 @@ For $j \in \{1, 2, 3, 4\}$, let $z_j$ be a complex number with $|z_j| = 1$ and $ -/ theorem putnam_2020_b5 (z : Fin 4 → ℂ) -(hzle1 : ∀ n, ‖z n‖ < 1) +(hzle1 : ∀ n, ‖z n‖ = 1) (hzne1 : ∀ n, z n ≠ 1) : 3 - z 0 - z 1 - z 2 - z 3 + (z 0) * (z 1) * (z 2) * (z 3) ≠ 0:= sorry diff --git a/lean4/src/putnam_2020_b6.lean b/lean4/src/putnam_2020_b6.lean index 8f079169..2cf8d07c 100644 --- a/lean4/src/putnam_2020_b6.lean +++ b/lean4/src/putnam_2020_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Set diff --git a/lean4/src/putnam_2021_a1.lean b/lean4/src/putnam_2021_a1.lean index 9f90d042..5878df2a 100644 --- a/lean4/src/putnam_2021_a1.lean +++ b/lean4/src/putnam_2021_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_2021_a2.lean b/lean4/src/putnam_2021_a2.lean index 87bf3faa..9a6d394f 100644 --- a/lean4/src/putnam_2021_a2.lean +++ b/lean4/src/putnam_2021_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_2021_a3.lean b/lean4/src/putnam_2021_a3.lean index 66cbed28..f7edc72a 100644 --- a/lean4/src/putnam_2021_a3.lean +++ b/lean4/src/putnam_2021_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_2021_a4.lean b/lean4/src/putnam_2021_a4.lean index 322f4832..39b49c0a 100644 --- a/lean4/src/putnam_2021_a4.lean +++ b/lean4/src/putnam_2021_a4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Metric diff --git a/lean4/src/putnam_2021_a5.lean b/lean4/src/putnam_2021_a5.lean index 1cf6fe80..ce8db942 100644 --- a/lean4/src/putnam_2021_a5.lean +++ b/lean4/src/putnam_2021_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_2021_a6.lean b/lean4/src/putnam_2021_a6.lean index 7e3a27c0..3163a59b 100644 --- a/lean4/src/putnam_2021_a6.lean +++ b/lean4/src/putnam_2021_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_2021_b2.lean b/lean4/src/putnam_2021_b2.lean index 520a067b..c191fbc7 100644 --- a/lean4/src/putnam_2021_b2.lean +++ b/lean4/src/putnam_2021_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_2021_b3.lean b/lean4/src/putnam_2021_b3.lean index 345e2e51..4d64f85e 100644 --- a/lean4/src/putnam_2021_b3.lean +++ b/lean4/src/putnam_2021_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology Metric diff --git a/lean4/src/putnam_2021_b4.lean b/lean4/src/putnam_2021_b4.lean index 7d2730f0..f3f4e843 100644 --- a/lean4/src/putnam_2021_b4.lean +++ b/lean4/src/putnam_2021_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_2021_b5.lean b/lean4/src/putnam_2021_b5.lean index 818e0508..26fcd540 100644 --- a/lean4/src/putnam_2021_b5.lean +++ b/lean4/src/putnam_2021_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Filter Topology diff --git a/lean4/src/putnam_2022_a1.lean b/lean4/src/putnam_2022_a1.lean index a8bd7e00..c2553ed7 100644 --- a/lean4/src/putnam_2022_a1.lean +++ b/lean4/src/putnam_2022_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial diff --git a/lean4/src/putnam_2022_a2.lean b/lean4/src/putnam_2022_a2.lean index 40ee6613..901320b7 100644 --- a/lean4/src/putnam_2022_a2.lean +++ b/lean4/src/putnam_2022_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial diff --git a/lean4/src/putnam_2022_a3.lean b/lean4/src/putnam_2022_a3.lean index c8f42112..3755c3a6 100644 --- a/lean4/src/putnam_2022_a3.lean +++ b/lean4/src/putnam_2022_a3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial diff --git a/lean4/src/putnam_2022_a6.lean b/lean4/src/putnam_2022_a6.lean index 7304b010..c3a522c6 100644 --- a/lean4/src/putnam_2022_a6.lean +++ b/lean4/src/putnam_2022_a6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial diff --git a/lean4/src/putnam_2022_b1.lean b/lean4/src/putnam_2022_b1.lean index a100e653..75e9c315 100644 --- a/lean4/src/putnam_2022_b1.lean +++ b/lean4/src/putnam_2022_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial @@ -12,5 +11,5 @@ theorem putnam_2022_b1 (Pconst : P.coeff 0 = 0) (Podd : Odd (P.coeff 1)) (hB : ∀ x : ℝ, HasSum (fun i => b i * x ^ i) (Real.exp (aeval x P))) : - ∀ k : ℕ, b k ≠ 0 := by + ∀ k : ℕ, b k ≠ 0 := sorry diff --git a/lean4/src/putnam_2022_b2.lean b/lean4/src/putnam_2022_b2.lean index ce5e68c8..dd108fd5 100644 --- a/lean4/src/putnam_2022_b2.lean +++ b/lean4/src/putnam_2022_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial diff --git a/lean4/src/putnam_2022_b3.lean b/lean4/src/putnam_2022_b3.lean index f173fd01..6932f61e 100644 --- a/lean4/src/putnam_2022_b3.lean +++ b/lean4/src/putnam_2022_b3.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial diff --git a/lean4/src/putnam_2022_b4.lean b/lean4/src/putnam_2022_b4.lean index 3915954f..fd53d102 100644 --- a/lean4/src/putnam_2022_b4.lean +++ b/lean4/src/putnam_2022_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial diff --git a/lean4/src/putnam_2022_b5.lean b/lean4/src/putnam_2022_b5.lean index 392f2b52..880379ba 100644 --- a/lean4/src/putnam_2022_b5.lean +++ b/lean4/src/putnam_2022_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial diff --git a/lean4/src/putnam_2022_b6.lean b/lean4/src/putnam_2022_b6.lean index a7848d4a..0c142355 100644 --- a/lean4/src/putnam_2022_b6.lean +++ b/lean4/src/putnam_2022_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Polynomial diff --git a/lean4/src/putnam_2023_a1.lean b/lean4/src/putnam_2023_a1.lean index 06777ee8..724bceb8 100644 --- a/lean4/src/putnam_2023_a1.lean +++ b/lean4/src/putnam_2023_a1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat diff --git a/lean4/src/putnam_2023_a2.lean b/lean4/src/putnam_2023_a2.lean index eb0272d6..107e8a81 100644 --- a/lean4/src/putnam_2023_a2.lean +++ b/lean4/src/putnam_2023_a2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat diff --git a/lean4/src/putnam_2023_a3.lean b/lean4/src/putnam_2023_a3.lean index 8b52da28..266ad2f6 100644 --- a/lean4/src/putnam_2023_a3.lean +++ b/lean4/src/putnam_2023_a3.lean @@ -1,17 +1,16 @@ import Mathlib -open BigOperators open Nat noncomputable abbrev putnam_2023_a3_solution : ℝ := sorry -- Real.pi / 2 /-- -Determine the smallest positive real number $r$ such that there exist differentiable functions $f\colon \mathbb{R} \to \mathbb{R}$ and $g\colon \mathbb{R} \to \mathbb{R}$ satisfying +Determine the smallest positive real number $r$ such that there exist differentiable functions $f\colon \mathbb{R} \to \mathbb{R}$ and $g\colon \mathbb{R} \to \mathbb{R}$ satisfying \begin{enumerate} - \item[(a)] $f(0) > 0$, - \item[(b)] $g(0) = 0$, - \item[(c)] $|f'(x)| \leq |g(x)|$ for all $x$, - \item[(d)] $|g'(x)| \leq |f(x)|$ for all $x$, and + \item[(a)] $f(0) > 0$, + \item[(b)] $g(0) = 0$, + \item[(c)] $|f'(x)| \leq |g(x)|$ for all $x$, + \item[(d)] $|g'(x)| \leq |f(x)|$ for all $x$, and \item[(e)] $f(r) = 0$. \end{enumerate} -/ theorem putnam_2023_a3 diff --git a/lean4/src/putnam_2023_a5.lean b/lean4/src/putnam_2023_a5.lean index d1fa298e..3fce458f 100644 --- a/lean4/src/putnam_2023_a5.lean +++ b/lean4/src/putnam_2023_a5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat diff --git a/lean4/src/putnam_2023_b1.lean b/lean4/src/putnam_2023_b1.lean index 949d4e47..f2dc2cb7 100644 --- a/lean4/src/putnam_2023_b1.lean +++ b/lean4/src/putnam_2023_b1.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat diff --git a/lean4/src/putnam_2023_b2.lean b/lean4/src/putnam_2023_b2.lean index f3cbff51..7919457e 100644 --- a/lean4/src/putnam_2023_b2.lean +++ b/lean4/src/putnam_2023_b2.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat diff --git a/lean4/src/putnam_2023_b3.lean b/lean4/src/putnam_2023_b3.lean index 4cc7e8e4..e5d46331 100644 --- a/lean4/src/putnam_2023_b3.lean +++ b/lean4/src/putnam_2023_b3.lean @@ -16,5 +16,5 @@ theorem putnam_2023_b3 (hn : 2 ≤ n) (a : (Fin n → Icc (0 : ℝ) 1) → ℕ) (ha : ∀ x, IsGreatest {k | ∃ i : Fin k ↪o Fin n, IsZigZag ((↑) ∘ x ∘ i)} (a x)) : - 𝔼[(↑) ∘ a] = putnam_2023_b3_solution n := by + 𝔼[(↑) ∘ a] = putnam_2023_b3_solution n := sorry diff --git a/lean4/src/putnam_2023_b4.lean b/lean4/src/putnam_2023_b4.lean index 15a5d3b4..5ac2a1a8 100644 --- a/lean4/src/putnam_2023_b4.lean +++ b/lean4/src/putnam_2023_b4.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Topology Filter diff --git a/lean4/src/putnam_2023_b5.lean b/lean4/src/putnam_2023_b5.lean index b485ea42..49b51980 100644 --- a/lean4/src/putnam_2023_b5.lean +++ b/lean4/src/putnam_2023_b5.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Topology Filter diff --git a/lean4/src/putnam_2023_b6.lean b/lean4/src/putnam_2023_b6.lean index 951078ac..106d633d 100644 --- a/lean4/src/putnam_2023_b6.lean +++ b/lean4/src/putnam_2023_b6.lean @@ -1,5 +1,4 @@ import Mathlib -open BigOperators open Nat Topology Filter