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_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