├── .github └── workflows │ └── lean.yml ├── .gitignore ├── .vscode └── extensions.json ├── README.md ├── coq ├── LICENSE ├── README.md ├── setup.sh └── src │ ├── putnam_1962_a2.v │ ├── putnam_1962_a4.v │ ├── putnam_1962_a5.v │ ├── putnam_1962_a6.v │ ├── putnam_1962_b2.v │ ├── putnam_1962_b5.v │ ├── putnam_1962_b6.v │ ├── putnam_1963_a2.v │ ├── putnam_1963_a4.v │ ├── putnam_1963_b1.v │ ├── putnam_1963_b2.v │ ├── putnam_1963_b3.v │ ├── putnam_1963_b5.v │ ├── putnam_1963_b6.v │ ├── putnam_1964_a1.v │ ├── putnam_1964_a2.v │ ├── putnam_1964_a4.v │ ├── putnam_1964_a5.v │ ├── putnam_1964_a6.v │ ├── putnam_1964_b1.v │ ├── putnam_1964_b2.v │ ├── putnam_1964_b3.v │ ├── putnam_1964_b5.v │ ├── putnam_1964_b6.v │ ├── putnam_1965_a2.v │ ├── putnam_1965_a3.v │ ├── putnam_1965_a4.v │ ├── putnam_1965_a5.v │ ├── putnam_1965_a6.v │ ├── putnam_1965_b2.v │ ├── putnam_1965_b3.v │ ├── putnam_1965_b4.v │ ├── putnam_1965_b5.v │ ├── putnam_1965_b6.v │ ├── putnam_1966_a1.v │ ├── putnam_1966_a3.v │ ├── putnam_1966_a4.v │ ├── putnam_1966_a5.v │ ├── putnam_1966_a6.v │ ├── putnam_1966_b2.v │ ├── putnam_1966_b3.v │ ├── putnam_1966_b4.v │ ├── putnam_1966_b6.v │ ├── putnam_1967_a1.v │ ├── putnam_1967_a2.v │ ├── putnam_1967_a3.v │ ├── putnam_1967_a4.v │ ├── putnam_1967_a6.v │ ├── putnam_1967_b2.v │ ├── putnam_1967_b3.v │ ├── putnam_1967_b4.v │ ├── putnam_1967_b5.v │ ├── putnam_1967_b6.v │ ├── putnam_1968_a1.v │ ├── putnam_1968_a2.v │ ├── putnam_1968_a3.v │ ├── putnam_1968_a4.v │ ├── putnam_1968_a5.v │ ├── putnam_1968_b2.v │ ├── putnam_1968_b4.v │ ├── putnam_1969_a4.v │ ├── putnam_1969_a5.v │ ├── putnam_1969_a6.v │ ├── putnam_1969_b3.v │ ├── putnam_1969_b5.v │ ├── putnam_1970_a1.v │ ├── putnam_1970_a2.v │ ├── putnam_1970_a4.v │ ├── putnam_1970_b1.v │ ├── putnam_1970_b2.v │ ├── putnam_1970_b3.v │ ├── putnam_1970_b4.v │ ├── putnam_1970_b5.v │ ├── putnam_1971_a1.v │ ├── putnam_1971_a2.v │ ├── putnam_1971_a3.v │ ├── putnam_1971_a4.v │ ├── putnam_1971_a6.v │ ├── putnam_1971_b1.v │ ├── putnam_1971_b2.v │ ├── putnam_1971_b6.v │ ├── putnam_1972_a1.v │ ├── putnam_1972_a2.v │ ├── putnam_1972_a3.v │ ├── putnam_1972_a5.v │ ├── putnam_1972_b1.v │ ├── putnam_1972_b2.v │ ├── putnam_1972_b3.v │ ├── putnam_1972_b5.v │ ├── putnam_1972_b6.v │ ├── putnam_1973_a3.v │ ├── putnam_1973_a4.v │ ├── putnam_1973_b1.v │ ├── putnam_1973_b2.v │ ├── putnam_1973_b3.v │ ├── putnam_1973_b4.v │ ├── putnam_1974_a1.v │ ├── putnam_1974_a3.v │ ├── putnam_1974_a4.v │ ├── putnam_1974_a6.v │ ├── putnam_1974_b3.v │ ├── putnam_1974_b5.v │ ├── putnam_1974_b6.v │ ├── putnam_1975_a1.v │ ├── putnam_1975_a2.v │ ├── putnam_1975_a3.v │ ├── putnam_1975_a5.v │ ├── putnam_1975_b5.v │ ├── putnam_1975_b6.v │ ├── putnam_1976_a3.v │ ├── putnam_1976_a6.v │ ├── putnam_1976_b5.v │ ├── putnam_1976_b6.v │ ├── putnam_1977_a1.v │ ├── putnam_1977_a2.v │ ├── putnam_1977_a3.v │ ├── putnam_1977_a4.v │ ├── putnam_1977_a5.v │ ├── putnam_1977_b1.v │ ├── putnam_1977_b5.v │ ├── putnam_1978_a1.v │ ├── putnam_1978_a3.v │ ├── putnam_1978_a5.v │ ├── putnam_1978_a6.v │ ├── putnam_1978_b2.v │ ├── putnam_1978_b3.v │ ├── putnam_1978_b4.v │ ├── putnam_1978_b5.v │ ├── putnam_1978_b6.v │ ├── putnam_1979_a1.v │ ├── putnam_1979_a2.v │ ├── putnam_1979_a3.v │ ├── putnam_1979_a5.v │ ├── putnam_1979_a6.v │ ├── putnam_1979_b2.v │ ├── putnam_1979_b6.v │ ├── putnam_1980_a2.v │ ├── putnam_1980_a3.v │ ├── putnam_1980_a4.v │ ├── putnam_1980_a5.v │ ├── putnam_1980_b1.v │ ├── putnam_1980_b3.v │ ├── putnam_1980_b6.v │ ├── putnam_1981_a1.v │ ├── putnam_1981_a3.v │ ├── putnam_1981_b1.v │ ├── putnam_1981_b2.v │ ├── putnam_1981_b3.v │ ├── putnam_1981_b5.v │ ├── putnam_1982_a2.v │ ├── putnam_1982_a3.v │ ├── putnam_1982_a5.v │ ├── putnam_1982_a6.v │ ├── putnam_1982_b5.v │ ├── putnam_1983_a1.v │ ├── putnam_1983_a3.v │ ├── putnam_1983_a4.v │ ├── putnam_1983_a5.v │ ├── putnam_1983_a6.v │ ├── putnam_1983_b4.v │ ├── putnam_1983_b5.v │ ├── putnam_1984_a2.v │ ├── putnam_1984_a5.v │ ├── putnam_1984_b1.v │ ├── putnam_1984_b2.v │ ├── putnam_1984_b5.v │ ├── putnam_1985_a1.v │ ├── putnam_1985_a3.v │ ├── putnam_1985_a4.v │ ├── putnam_1985_a5.v │ ├── putnam_1985_a6.v │ ├── putnam_1985_b2.v │ ├── putnam_1985_b3.v │ ├── putnam_1985_b5.v │ ├── putnam_1986_a1.v │ ├── putnam_1986_a2.v │ ├── putnam_1986_a3.v │ ├── putnam_1986_a6.v │ ├── putnam_1986_b2.v │ ├── putnam_1986_b4.v │ ├── putnam_1987_a3.v │ ├── putnam_1987_b1.v │ ├── putnam_1987_b2.v │ ├── putnam_1987_b4.v │ ├── putnam_1988_a2.v │ ├── putnam_1988_a3.v │ ├── putnam_1988_a4.v │ ├── putnam_1988_a5.v │ ├── putnam_1988_b1.v │ ├── putnam_1988_b2.v │ ├── putnam_1988_b3.v │ ├── putnam_1988_b4.v │ ├── putnam_1988_b6.v │ ├── putnam_1989_a2.v │ ├── putnam_1989_a3.v │ ├── putnam_1990_a1.v │ ├── putnam_1990_a2.v │ ├── putnam_1990_a5.v │ ├── putnam_1990_b1.v │ ├── putnam_1990_b2.v │ ├── putnam_1990_b3.v │ ├── putnam_1990_b5.v │ ├── putnam_1991_a3.v │ ├── putnam_1991_a5.v │ ├── putnam_1991_b1.v │ ├── putnam_1991_b2.v │ ├── putnam_1991_b4.v │ ├── putnam_1991_b5.v │ ├── putnam_1991_b6.v │ ├── putnam_1992_a1.v │ ├── putnam_1992_a2.v │ ├── putnam_1992_a3.v │ ├── putnam_1992_a4.v │ ├── putnam_1992_a5.v │ ├── putnam_1992_b1.v │ ├── putnam_1993_a2.v │ ├── putnam_1993_a4.v │ ├── putnam_1993_a5.v │ ├── putnam_1993_b1.v │ ├── putnam_1993_b4.v │ ├── putnam_1993_b5.v │ ├── putnam_1994_a1.v │ ├── putnam_1994_b1.v │ ├── putnam_1994_b2.v │ ├── putnam_1994_b3.v │ ├── putnam_1994_b4.v │ ├── putnam_1994_b5.v │ ├── putnam_1994_b6.v │ ├── putnam_1995_a1.v │ ├── putnam_1995_a2.v │ ├── putnam_1995_a4.v │ ├── putnam_1995_a5.v │ ├── putnam_1995_b4.v │ ├── putnam_1995_b6.v │ ├── putnam_1996_a1.v │ ├── putnam_1996_a3.v │ ├── putnam_1996_a4.v │ ├── putnam_1996_a5.v │ ├── putnam_1996_a6.v │ ├── putnam_1996_b2.v │ ├── putnam_1996_b3.v │ ├── putnam_1996_b4.v │ ├── putnam_1997_a3.v │ ├── putnam_1997_a4.v │ ├── putnam_1997_a5.v │ ├── putnam_1997_a6.v │ ├── putnam_1997_b1.v │ ├── putnam_1997_b2.v │ ├── putnam_1997_b3.v │ ├── putnam_1997_b5.v │ ├── putnam_1998_a3.v │ ├── putnam_1998_a4.v │ ├── putnam_1998_b1.v │ ├── putnam_1998_b4.v │ ├── putnam_1998_b5.v │ ├── putnam_1998_b6.v │ ├── putnam_1999_a2.v │ ├── putnam_1999_a3.v │ ├── putnam_1999_a4.v │ ├── putnam_1999_a5.v │ ├── putnam_1999_a6.v │ ├── putnam_1999_b2.v │ ├── putnam_1999_b4.v │ ├── putnam_1999_b6.v │ ├── putnam_2000_a1.v │ ├── putnam_2000_a2.v │ ├── putnam_2000_a4.v │ ├── putnam_2000_a6.v │ ├── putnam_2000_b1.v │ ├── putnam_2000_b2.v │ ├── putnam_2000_b4.v │ ├── putnam_2000_b5.v │ ├── putnam_2001_a1.v │ ├── putnam_2001_a3.v │ ├── putnam_2001_a5.v │ ├── putnam_2001_b2.v │ ├── putnam_2001_b3.v │ ├── putnam_2001_b4.v │ ├── putnam_2001_b5.v │ ├── putnam_2001_b6.v │ ├── putnam_2002_a1.v │ ├── putnam_2002_b3.v │ ├── putnam_2003_a1.v │ ├── putnam_2003_a2.v │ ├── putnam_2003_a3.v │ ├── putnam_2003_a4.v │ ├── putnam_2003_b1.v │ ├── putnam_2003_b3.v │ ├── putnam_2003_b4.v │ ├── putnam_2003_b6.v │ ├── putnam_2004_a3.v │ ├── putnam_2004_a4.v │ ├── putnam_2004_a6.v │ ├── putnam_2004_b1.v │ ├── putnam_2004_b2.v │ ├── putnam_2004_b5.v │ ├── putnam_2005_a1.v │ ├── putnam_2005_a3.v │ ├── putnam_2005_a5.v │ ├── putnam_2005_b1.v │ ├── putnam_2005_b2.v │ ├── putnam_2005_b3.v │ ├── putnam_2005_b4.v │ ├── putnam_2006_a5.v │ ├── putnam_2006_b2.v │ ├── putnam_2006_b5.v │ ├── putnam_2006_b6.v │ ├── putnam_2007_a4.v │ ├── putnam_2007_b1.v │ ├── putnam_2007_b2.v │ ├── putnam_2007_b3.v │ ├── putnam_2008_a1.v │ ├── putnam_2008_a4.v │ ├── putnam_2008_b2.v │ ├── putnam_2008_b4.v │ ├── putnam_2008_b5.v │ ├── putnam_2008_b6.v │ ├── putnam_2009_a1.v │ ├── putnam_2009_a2.v │ ├── putnam_2009_a4.v │ ├── putnam_2009_b1.v │ ├── putnam_2009_b5.v │ ├── putnam_2009_b6.v │ ├── putnam_2010_a2.v │ ├── putnam_2010_a4.v │ ├── putnam_2010_a6.v │ ├── putnam_2010_b1.v │ ├── putnam_2010_b2.v │ ├── putnam_2010_b4.v │ ├── putnam_2010_b5.v │ ├── putnam_2011_a2.v │ ├── putnam_2011_a3.v │ ├── putnam_2011_b1.v │ ├── putnam_2011_b3.v │ ├── putnam_2011_b5.v │ ├── putnam_2011_b6.v │ ├── putnam_2012_a2.v │ ├── putnam_2012_a3.v │ ├── putnam_2012_a6.v │ ├── putnam_2012_b1.v │ ├── putnam_2012_b4.v │ ├── putnam_2013_a3.v │ ├── putnam_2013_a6.v │ ├── putnam_2013_b1.v │ ├── putnam_2013_b2.v │ ├── putnam_2013_b4.v │ ├── putnam_2013_b5.v │ ├── putnam_2014_a1.v │ ├── putnam_2014_a3.v │ ├── putnam_2014_a4.v │ ├── putnam_2014_a5.v │ ├── putnam_2014_b2.v │ ├── putnam_2014_b4.v │ ├── putnam_2015_a2.v │ ├── putnam_2015_a3.v │ ├── putnam_2015_a4.v │ ├── putnam_2015_a5.v │ ├── putnam_2015_b1.v │ ├── putnam_2015_b4.v │ ├── putnam_2015_b5.v │ ├── putnam_2016_a2.v │ ├── putnam_2016_a3.v │ ├── putnam_2016_a6.v │ ├── putnam_2016_b1.v │ ├── putnam_2016_b2.v │ ├── putnam_2016_b5.v │ ├── putnam_2016_b6.v │ ├── putnam_2017_a1.v │ ├── putnam_2017_a2.v │ ├── putnam_2017_a3.v │ ├── putnam_2017_a4.v │ ├── putnam_2017_b2.v │ ├── putnam_2017_b3.v │ ├── putnam_2017_b4.v │ ├── putnam_2017_b6.v │ ├── putnam_2018_a1.v │ ├── putnam_2018_a3.v │ ├── putnam_2018_a5.v │ ├── putnam_2018_b1.v │ ├── putnam_2018_b2.v │ ├── putnam_2018_b3.v │ ├── putnam_2018_b4.v │ ├── putnam_2018_b6.v │ ├── putnam_2019_a1.v │ ├── putnam_2019_a6.v │ ├── putnam_2019_b2.v │ ├── putnam_2019_b5.v │ ├── putnam_2020_a1.v │ ├── putnam_2020_a2.v │ ├── putnam_2020_a3.v │ ├── putnam_2020_a6.v │ ├── putnam_2020_b1.v │ ├── putnam_2020_b5.v │ ├── putnam_2020_b6.v │ ├── putnam_2021_a2.v │ ├── putnam_2021_a4.v │ ├── putnam_2021_a5.v │ ├── putnam_2021_a6.v │ ├── putnam_2021_b2.v │ ├── putnam_2021_b4.v │ ├── putnam_2022_a1.v │ ├── putnam_2022_a2.v │ ├── putnam_2022_a6.v │ ├── putnam_2022_b1.v │ ├── putnam_2022_b2.v │ ├── putnam_2022_b4.v │ ├── putnam_2022_b6.v │ ├── putnam_2023_a1.v │ ├── putnam_2023_a2.v │ ├── putnam_2023_a3.v │ ├── putnam_2023_b2.v │ └── putnam_2023_b5.v ├── docs ├── .gitignore ├── README.md ├── index.html ├── leaderboard.html ├── results.json └── static │ ├── css │ ├── bulma-carousel.min.css │ ├── bulma-slider.min.css │ ├── bulma.css.map.txt │ ├── bulma.min.css │ ├── fontawesome.all.min.css │ └── index.css │ ├── images │ └── icon.svg │ └── js │ ├── bulma-carousel.js │ ├── bulma-carousel.min.js │ ├── bulma-slider.js │ ├── bulma-slider.min.js │ ├── fontawesome.all.min.js │ └── index.js ├── informal ├── README.md └── putnam.json ├── isabelle ├── LICENSE ├── README.md ├── putnam_1962_a1.thy ├── putnam_1962_a2.thy ├── putnam_1962_a3.thy ├── putnam_1962_a4.thy ├── putnam_1962_a5.thy ├── putnam_1962_a6.thy ├── putnam_1962_b1.thy ├── putnam_1962_b2.thy ├── putnam_1962_b3.thy ├── putnam_1962_b5.thy ├── putnam_1962_b6.thy ├── putnam_1963_a2.thy ├── putnam_1963_a3.thy ├── putnam_1963_a4.thy ├── putnam_1963_a6.thy ├── putnam_1963_b1.thy ├── putnam_1963_b2.thy ├── putnam_1963_b3.thy ├── putnam_1963_b5.thy ├── putnam_1963_b6.thy ├── putnam_1964_a1.thy ├── putnam_1964_a2.thy ├── putnam_1964_a3.thy ├── putnam_1964_a4.thy ├── putnam_1964_a5.thy ├── putnam_1964_a6.thy ├── putnam_1964_b1.thy ├── putnam_1964_b2.thy ├── putnam_1964_b3.thy ├── putnam_1964_b5.thy ├── putnam_1964_b6.thy ├── putnam_1965_a1.thy ├── putnam_1965_a2.thy ├── putnam_1965_a3.thy ├── putnam_1965_a4.thy ├── putnam_1965_a5.thy ├── putnam_1965_a6.thy ├── putnam_1965_b1.thy ├── putnam_1965_b2.thy ├── putnam_1965_b3.thy ├── putnam_1965_b4.thy ├── putnam_1965_b5.thy ├── putnam_1965_b6.thy ├── putnam_1966_a1.thy ├── putnam_1966_a2.thy ├── putnam_1966_a3.thy ├── putnam_1966_a4.thy ├── putnam_1966_a5.thy ├── putnam_1966_a6.thy ├── putnam_1966_b1.thy ├── putnam_1966_b2.thy ├── putnam_1966_b3.thy ├── putnam_1966_b4.thy ├── putnam_1966_b5.thy ├── putnam_1966_b6.thy ├── putnam_1967_a1.thy ├── putnam_1967_a2.thy ├── putnam_1967_a3.thy ├── putnam_1967_a4.thy ├── putnam_1967_a5.thy ├── putnam_1967_a6.thy ├── putnam_1967_b1.thy ├── putnam_1967_b2.thy ├── putnam_1967_b3.thy ├── putnam_1967_b4.thy ├── putnam_1967_b5.thy ├── putnam_1967_b6.thy ├── putnam_1968_a1.thy ├── putnam_1968_a2.thy ├── putnam_1968_a3.thy ├── putnam_1968_a4.thy ├── putnam_1968_a5.thy ├── putnam_1968_a6.thy ├── putnam_1968_b2.thy ├── putnam_1968_b4.thy ├── putnam_1968_b5.thy ├── putnam_1968_b6.thy ├── putnam_1969_a1.thy ├── putnam_1969_a2.thy ├── putnam_1969_a4.thy ├── putnam_1969_a5.thy ├── putnam_1969_a6.thy ├── putnam_1969_b1.thy ├── putnam_1969_b2.thy ├── putnam_1969_b3.thy ├── putnam_1969_b5.thy ├── putnam_1969_b6.thy ├── putnam_1970_a1.thy ├── putnam_1970_a2.thy ├── putnam_1970_a3.thy ├── putnam_1970_a4.thy ├── putnam_1970_b1.thy ├── putnam_1970_b2.thy ├── putnam_1970_b3.thy ├── putnam_1970_b4.thy ├── putnam_1970_b5.thy ├── putnam_1970_b6.thy ├── putnam_1971_a1.thy ├── putnam_1971_a2.thy ├── putnam_1971_a3.thy ├── putnam_1971_a4.thy ├── putnam_1971_a5.thy ├── putnam_1971_a6.thy ├── putnam_1971_b1.thy ├── putnam_1971_b2.thy ├── putnam_1971_b3.thy ├── putnam_1971_b6.thy ├── putnam_1972_a1.thy ├── putnam_1972_a2.thy ├── putnam_1972_a3.thy ├── putnam_1972_a5.thy ├── putnam_1972_a6.thy ├── putnam_1972_b1.thy ├── putnam_1972_b2.thy ├── putnam_1972_b3.thy ├── putnam_1972_b4.thy ├── putnam_1972_b5.thy ├── putnam_1972_b6.thy ├── putnam_1973_a1.thy ├── putnam_1973_a2.thy ├── putnam_1973_a3.thy ├── putnam_1973_a4.thy ├── putnam_1973_a6.thy ├── putnam_1973_b1.thy ├── putnam_1973_b2.thy ├── putnam_1973_b3.thy ├── putnam_1973_b4.thy ├── putnam_1974_a1.thy ├── putnam_1974_a3.thy ├── putnam_1974_a4.thy ├── putnam_1974_a6.thy ├── putnam_1974_b1.thy ├── putnam_1974_b2.thy ├── putnam_1974_b3.thy ├── putnam_1974_b4.thy ├── putnam_1974_b5.thy ├── putnam_1974_b6.thy ├── putnam_1975_a1.thy ├── putnam_1975_a2.thy ├── putnam_1975_a3.thy ├── putnam_1975_a4.thy ├── putnam_1975_a5.thy ├── putnam_1975_b1.thy ├── putnam_1975_b2.thy ├── putnam_1975_b3.thy ├── putnam_1975_b4.thy ├── putnam_1975_b5.thy ├── putnam_1975_b6.thy ├── putnam_1976_a2.thy ├── putnam_1976_a3.thy ├── putnam_1976_a4.thy ├── putnam_1976_a6.thy ├── putnam_1976_b1.thy ├── putnam_1976_b2.thy ├── putnam_1976_b3.thy ├── putnam_1976_b5.thy ├── putnam_1976_b6.thy ├── putnam_1977_a1.thy ├── putnam_1977_a2.thy ├── putnam_1977_a3.thy ├── putnam_1977_a4.thy ├── putnam_1977_a5.thy ├── putnam_1977_a6.thy ├── putnam_1977_b1.thy ├── putnam_1977_b3.thy ├── putnam_1977_b5.thy ├── putnam_1977_b6.thy ├── putnam_1978_a1.thy ├── putnam_1978_a2.thy ├── putnam_1978_a3.thy ├── putnam_1978_a4.thy ├── putnam_1978_a5.thy ├── putnam_1978_a6.thy ├── putnam_1978_b2.thy ├── putnam_1978_b3.thy ├── putnam_1978_b4.thy ├── putnam_1978_b5.thy ├── putnam_1978_b6.thy ├── putnam_1979_a1.thy ├── putnam_1979_a2.thy ├── putnam_1979_a3.thy ├── putnam_1979_a4.thy ├── putnam_1979_a5.thy ├── putnam_1979_a6.thy ├── putnam_1979_b2.thy ├── putnam_1979_b3.thy ├── putnam_1979_b5.thy ├── putnam_1979_b6.thy ├── putnam_1980_a2.thy ├── putnam_1980_a3.thy ├── putnam_1980_a4.thy ├── putnam_1980_a5.thy ├── putnam_1980_a6.thy ├── putnam_1980_b1.thy ├── putnam_1980_b3.thy ├── putnam_1980_b4.thy ├── putnam_1980_b5.thy ├── putnam_1980_b6.thy ├── putnam_1981_a1.thy ├── putnam_1981_a3.thy ├── putnam_1981_a5.thy ├── putnam_1981_b1.thy ├── putnam_1981_b2.thy ├── putnam_1981_b3.thy ├── putnam_1981_b4.thy ├── putnam_1981_b5.thy ├── putnam_1982_a2.thy ├── putnam_1982_a3.thy ├── putnam_1982_a4.thy ├── putnam_1982_a5.thy ├── putnam_1982_a6.thy ├── putnam_1982_b2.thy ├── putnam_1982_b3.thy ├── putnam_1982_b4.thy ├── putnam_1982_b5.thy ├── putnam_1983_a1.thy ├── putnam_1983_a3.thy ├── putnam_1983_a4.thy ├── putnam_1983_a5.thy ├── putnam_1983_a6.thy ├── putnam_1983_b2.thy ├── putnam_1983_b4.thy ├── putnam_1983_b5.thy ├── putnam_1983_b6.thy ├── putnam_1984_a2.thy ├── putnam_1984_a3.thy ├── putnam_1984_a5.thy ├── putnam_1984_a6.thy ├── putnam_1984_b1.thy ├── putnam_1984_b2.thy ├── putnam_1984_b3.thy ├── putnam_1984_b5.thy ├── putnam_1985_a1.thy ├── putnam_1985_a3.thy ├── putnam_1985_a4.thy ├── putnam_1985_a5.thy ├── putnam_1985_a6.thy ├── putnam_1985_b1.thy ├── putnam_1985_b2.thy ├── putnam_1985_b3.thy ├── putnam_1985_b5.thy ├── putnam_1985_b6.thy ├── putnam_1986_a1.thy ├── putnam_1986_a2.thy ├── putnam_1986_a3.thy ├── putnam_1986_a4.thy ├── putnam_1986_a5.thy ├── putnam_1986_a6.thy ├── putnam_1986_b1.thy ├── putnam_1986_b2.thy ├── putnam_1986_b3.thy ├── putnam_1986_b4.thy ├── putnam_1986_b5.thy ├── putnam_1986_b6.thy ├── putnam_1987_a1.thy ├── putnam_1987_a2.thy ├── putnam_1987_a4.thy ├── putnam_1987_a5.thy ├── putnam_1987_a6.thy ├── putnam_1987_b1.thy ├── putnam_1987_b2.thy ├── putnam_1987_b3.thy ├── putnam_1987_b4.thy ├── putnam_1987_b5.thy ├── putnam_1987_b6.thy ├── putnam_1988_a1.thy ├── putnam_1988_a2.thy ├── putnam_1988_a3.thy ├── putnam_1988_a4.thy ├── putnam_1988_a5.thy ├── putnam_1988_a6.thy ├── putnam_1988_b1.thy ├── putnam_1988_b2.thy ├── putnam_1988_b3.thy ├── putnam_1988_b4.thy ├── putnam_1988_b5.thy ├── putnam_1988_b6.thy ├── putnam_1989_a1.thy ├── putnam_1989_a2.thy ├── putnam_1989_a3.thy ├── putnam_1989_a6.thy ├── putnam_1989_b1.thy ├── putnam_1989_b2.thy ├── putnam_1989_b3.thy ├── putnam_1989_b4.thy ├── putnam_1989_b6.thy ├── putnam_1990_a1.thy ├── putnam_1990_a2.thy ├── putnam_1990_a4.thy ├── putnam_1990_a5.thy ├── putnam_1990_a6.thy ├── putnam_1990_b1.thy ├── putnam_1990_b2.thy ├── putnam_1990_b3.thy ├── putnam_1990_b4.thy ├── putnam_1990_b5.thy ├── putnam_1991_a2.thy ├── putnam_1991_a3.thy ├── putnam_1991_a4.thy ├── putnam_1991_a5.thy ├── putnam_1991_a6.thy ├── putnam_1991_b1.thy ├── putnam_1991_b2.thy ├── putnam_1991_b4.thy ├── putnam_1991_b5.thy ├── putnam_1991_b6.thy ├── putnam_1992_a1.thy ├── putnam_1992_a2.thy ├── putnam_1992_a3.thy ├── putnam_1992_a4.thy ├── putnam_1992_a5.thy ├── putnam_1992_b1.thy ├── putnam_1992_b2.thy ├── putnam_1992_b3.thy ├── putnam_1992_b4.thy ├── putnam_1992_b5.thy ├── putnam_1992_b6.thy ├── putnam_1993_a1.thy ├── putnam_1993_a2.thy ├── putnam_1993_a3.thy ├── putnam_1993_a4.thy ├── putnam_1993_a5.thy ├── putnam_1993_a6.thy ├── putnam_1993_b1.thy ├── putnam_1993_b3.thy ├── putnam_1993_b4.thy ├── putnam_1993_b5.thy ├── putnam_1993_b6.thy ├── putnam_1994_a1.thy ├── putnam_1994_a3.thy ├── putnam_1994_a4.thy ├── putnam_1994_a5.thy ├── putnam_1994_a6.thy ├── putnam_1994_b1.thy ├── putnam_1994_b2.thy ├── putnam_1994_b3.thy ├── putnam_1994_b4.thy ├── putnam_1994_b5.thy ├── putnam_1994_b6.thy ├── putnam_1995_a1.thy ├── putnam_1995_a2.thy ├── putnam_1995_a3.thy ├── putnam_1995_a4.thy ├── putnam_1995_a5.thy ├── putnam_1995_a6.thy ├── putnam_1995_b1.thy ├── putnam_1995_b3.thy ├── putnam_1995_b4.thy ├── putnam_1995_b6.thy ├── putnam_1996_a2.thy ├── putnam_1996_a3.thy ├── putnam_1996_a4.thy ├── putnam_1996_a5.thy ├── putnam_1996_a6.thy ├── putnam_1996_b1.thy ├── putnam_1996_b2.thy ├── putnam_1996_b3.thy ├── putnam_1996_b4.thy ├── putnam_1996_b5.thy ├── putnam_1997_a3.thy ├── putnam_1997_a4.thy ├── putnam_1997_a5.thy ├── putnam_1997_a6.thy ├── putnam_1997_b1.thy ├── putnam_1997_b2.thy ├── putnam_1997_b3.thy ├── putnam_1997_b4.thy ├── putnam_1997_b5.thy ├── putnam_1998_a2.thy ├── putnam_1998_a3.thy ├── putnam_1998_a4.thy ├── putnam_1998_a5.thy ├── putnam_1998_a6.thy ├── putnam_1998_b1.thy ├── putnam_1998_b2.thy ├── putnam_1998_b4.thy ├── putnam_1998_b5.thy ├── putnam_1998_b6.thy ├── putnam_1999_a1.thy ├── putnam_1999_a2.thy ├── putnam_1999_a3.thy ├── putnam_1999_a4.thy ├── putnam_1999_a5.thy ├── putnam_1999_a6.thy ├── putnam_1999_b2.thy ├── putnam_1999_b3.thy ├── putnam_1999_b4.thy ├── putnam_1999_b5.thy ├── putnam_1999_b6.thy ├── putnam_2000_a1.thy ├── putnam_2000_a2.thy ├── putnam_2000_a4.thy ├── putnam_2000_a5.thy ├── putnam_2000_a6.thy ├── putnam_2000_b1.thy ├── putnam_2000_b2.thy ├── putnam_2000_b3.thy ├── putnam_2000_b4.thy ├── putnam_2000_b5.thy ├── putnam_2001_a1.thy ├── putnam_2001_a3.thy ├── putnam_2001_a5.thy ├── putnam_2001_b1.thy ├── putnam_2001_b2.thy ├── putnam_2001_b3.thy ├── putnam_2001_b4.thy ├── putnam_2001_b5.thy ├── putnam_2001_b6.thy ├── putnam_2002_a1.thy ├── putnam_2002_a2.thy ├── putnam_2002_a3.thy ├── putnam_2002_a5.thy ├── putnam_2002_a6.thy ├── putnam_2002_b3.thy ├── putnam_2002_b5.thy ├── putnam_2002_b6.thy ├── putnam_2003_a1.thy ├── putnam_2003_a2.thy ├── putnam_2003_a3.thy ├── putnam_2003_a4.thy ├── putnam_2003_a5.thy ├── putnam_2003_a6.thy ├── putnam_2003_b1.thy ├── putnam_2003_b2.thy ├── putnam_2003_b3.thy ├── putnam_2003_b4.thy ├── putnam_2003_b5.thy ├── putnam_2003_b6.thy ├── putnam_2004_a1.thy ├── putnam_2004_a3.thy ├── putnam_2004_a4.thy ├── putnam_2004_a5.thy ├── putnam_2004_a6.thy ├── putnam_2004_b1.thy ├── putnam_2004_b2.thy ├── putnam_2004_b4.thy ├── putnam_2004_b5.thy ├── putnam_2004_b6.thy ├── putnam_2005_a1.thy ├── putnam_2005_a2.thy ├── putnam_2005_a3.thy ├── putnam_2005_a4.thy ├── putnam_2005_a5.thy ├── putnam_2005_b1.thy ├── putnam_2005_b2.thy ├── putnam_2005_b3.thy ├── putnam_2005_b4.thy ├── putnam_2005_b5.thy ├── putnam_2005_b6.thy ├── putnam_2006_a1.thy ├── putnam_2006_a3.thy ├── putnam_2006_a4.thy ├── putnam_2006_a5.thy ├── putnam_2006_b1.thy ├── putnam_2006_b2.thy ├── putnam_2006_b3.thy ├── putnam_2006_b4.thy ├── putnam_2006_b5.thy ├── putnam_2006_b6.thy ├── putnam_2007_a1.thy ├── putnam_2007_a2.thy ├── putnam_2007_a3.thy ├── putnam_2007_a4.thy ├── putnam_2007_a5.thy ├── putnam_2007_b1.thy ├── putnam_2007_b2.thy ├── putnam_2007_b3.thy ├── putnam_2007_b4.thy ├── putnam_2007_b5.thy ├── putnam_2007_b6.thy ├── putnam_2008_a1.thy ├── putnam_2008_a3.thy ├── putnam_2008_a4.thy ├── putnam_2008_a5.thy ├── putnam_2008_a6.thy ├── putnam_2008_b1.thy ├── putnam_2008_b2.thy ├── putnam_2008_b3.thy ├── putnam_2008_b4.thy ├── putnam_2008_b5.thy ├── putnam_2008_b6.thy ├── putnam_2009_a1.thy ├── putnam_2009_a2.thy ├── putnam_2009_a3.thy ├── putnam_2009_a4.thy ├── putnam_2009_a5.thy ├── putnam_2009_b1.thy ├── putnam_2009_b2.thy ├── putnam_2009_b3.thy ├── putnam_2009_b4.thy ├── putnam_2009_b5.thy ├── putnam_2009_b6.thy ├── putnam_2010_a1.thy ├── putnam_2010_a2.thy ├── putnam_2010_a4.thy ├── putnam_2010_a5.thy ├── putnam_2010_a6.thy ├── putnam_2010_b1.thy ├── putnam_2010_b2.thy ├── putnam_2010_b3.thy ├── putnam_2010_b4.thy ├── putnam_2010_b5.thy ├── putnam_2010_b6.thy ├── putnam_2011_a1.thy ├── putnam_2011_a2.thy ├── putnam_2011_a3.thy ├── putnam_2011_a4.thy ├── putnam_2011_a5.thy ├── putnam_2011_a6.thy ├── putnam_2011_b1.thy ├── putnam_2011_b2.thy ├── putnam_2011_b3.thy ├── putnam_2011_b4.thy ├── putnam_2011_b5.thy ├── putnam_2011_b6.thy ├── putnam_2012_a1.thy ├── putnam_2012_a2.thy ├── putnam_2012_a3.thy ├── putnam_2012_a4.thy ├── putnam_2012_a5.thy ├── putnam_2012_a6.thy ├── putnam_2012_b1.thy ├── putnam_2012_b3.thy ├── putnam_2012_b4.thy ├── putnam_2012_b5.thy ├── putnam_2012_b6.thy ├── putnam_2013_a2.thy ├── putnam_2013_a3.thy ├── putnam_2013_a4.thy ├── putnam_2013_a5.thy ├── putnam_2013_a6.thy ├── putnam_2013_b1.thy ├── putnam_2013_b2.thy ├── putnam_2013_b3.thy ├── putnam_2013_b4.thy ├── putnam_2013_b5.thy ├── putnam_2014_a1.thy ├── putnam_2014_a2.thy ├── putnam_2014_a3.thy ├── putnam_2014_a4.thy ├── putnam_2014_a5.thy ├── putnam_2014_a6.thy ├── putnam_2014_b1.thy ├── putnam_2014_b2.thy ├── putnam_2014_b3.thy ├── putnam_2014_b4.thy ├── putnam_2014_b6.thy ├── putnam_2015_a1.thy ├── putnam_2015_a2.thy ├── putnam_2015_a3.thy ├── putnam_2015_a4.thy ├── putnam_2015_a5.thy ├── putnam_2015_a6.thy ├── putnam_2015_b1.thy ├── putnam_2015_b2.thy ├── putnam_2015_b3.thy ├── putnam_2015_b4.thy ├── putnam_2015_b5.thy ├── putnam_2015_b6.thy ├── putnam_2016_a1.thy ├── putnam_2016_a2.thy ├── putnam_2016_a3.thy ├── putnam_2016_a5.thy ├── putnam_2016_a6.thy ├── putnam_2016_b1.thy ├── putnam_2016_b2.thy ├── putnam_2016_b3.thy ├── putnam_2016_b4.thy ├── putnam_2016_b5.thy ├── putnam_2016_b6.thy ├── putnam_2017_a1.thy ├── putnam_2017_a2.thy ├── putnam_2017_a3.thy ├── putnam_2017_a4.thy ├── putnam_2017_b1.thy ├── putnam_2017_b2.thy ├── putnam_2017_b3.thy ├── putnam_2017_b4.thy ├── putnam_2017_b6.thy ├── putnam_2018_a1.thy ├── putnam_2018_a2.thy ├── putnam_2018_a3.thy ├── putnam_2018_a4.thy ├── putnam_2018_a5.thy ├── putnam_2018_a6.thy ├── putnam_2018_b1.thy ├── putnam_2018_b2.thy ├── putnam_2018_b3.thy ├── putnam_2018_b4.thy ├── putnam_2018_b5.thy ├── putnam_2018_b6.thy ├── putnam_2019_a1.thy ├── putnam_2019_a3.thy ├── putnam_2019_a5.thy ├── putnam_2019_a6.thy ├── putnam_2019_b1.thy ├── putnam_2019_b2.thy ├── putnam_2019_b3.thy ├── putnam_2019_b4.thy ├── putnam_2019_b5.thy ├── putnam_2019_b6.thy ├── putnam_2020_a1.thy ├── putnam_2020_a2.thy ├── putnam_2020_a3.thy ├── putnam_2020_a5.thy ├── putnam_2020_a6.thy ├── putnam_2020_b1.thy ├── putnam_2020_b4.thy ├── putnam_2020_b5.thy ├── putnam_2020_b6.thy ├── putnam_2021_a1.thy ├── putnam_2021_a2.thy ├── putnam_2021_a3.thy ├── putnam_2021_a4.thy ├── putnam_2021_a5.thy ├── putnam_2021_a6.thy ├── putnam_2021_b2.thy ├── putnam_2021_b3.thy ├── putnam_2021_b4.thy ├── putnam_2021_b5.thy ├── putnam_2022_a1.thy ├── putnam_2022_a2.thy ├── putnam_2022_a3.thy ├── putnam_2022_a6.thy ├── putnam_2022_b1.thy ├── putnam_2022_b2.thy ├── putnam_2022_b3.thy ├── putnam_2022_b4.thy ├── putnam_2022_b5.thy ├── putnam_2022_b6.thy ├── putnam_2023_a1.thy ├── putnam_2023_a2.thy ├── putnam_2023_a3.thy ├── putnam_2023_a5.thy ├── putnam_2023_a6.thy ├── putnam_2023_b1.thy ├── putnam_2023_b2.thy ├── putnam_2023_b4.thy ├── putnam_2023_b5.thy ├── putnam_2023_b6.thy └── scripts │ ├── convert_to_json.py │ └── rewrite_solutions.py └── lean4 ├── LICENSE ├── README.md ├── check_docstrings.lean ├── lake-manifest.json ├── lakefile.lean ├── lean-toolchain ├── scripts ├── extract_to_json.py ├── generate_files_by_year.py └── rewrite_solutions.py └── src ├── putnam_1962_a1.lean ├── putnam_1962_a2.lean ├── putnam_1962_a3.lean ├── putnam_1962_a4.lean ├── putnam_1962_a5.lean ├── putnam_1962_a6.lean ├── putnam_1962_b1.lean ├── putnam_1962_b2.lean ├── putnam_1962_b3.lean ├── putnam_1962_b5.lean ├── putnam_1962_b6.lean ├── putnam_1963_a2.lean ├── putnam_1963_a3.lean ├── putnam_1963_a4.lean ├── putnam_1963_a6.lean ├── putnam_1963_b1.lean ├── putnam_1963_b2.lean ├── putnam_1963_b3.lean ├── putnam_1963_b5.lean ├── putnam_1963_b6.lean ├── putnam_1964_a1.lean ├── putnam_1964_a2.lean ├── putnam_1964_a3.lean ├── putnam_1964_a4.lean ├── putnam_1964_a5.lean ├── putnam_1964_a6.lean ├── putnam_1964_b1.lean ├── putnam_1964_b2.lean ├── putnam_1964_b3.lean ├── putnam_1964_b4.lean ├── putnam_1964_b5.lean ├── putnam_1964_b6.lean ├── putnam_1965_a1.lean ├── putnam_1965_a2.lean ├── putnam_1965_a3.lean ├── putnam_1965_a4.lean ├── putnam_1965_a5.lean ├── putnam_1965_a6.lean ├── putnam_1965_b1.lean ├── putnam_1965_b2.lean ├── putnam_1965_b3.lean ├── putnam_1965_b4.lean ├── putnam_1965_b5.lean ├── putnam_1965_b6.lean ├── putnam_1966_a1.lean ├── putnam_1966_a2.lean ├── putnam_1966_a3.lean ├── putnam_1966_a4.lean ├── putnam_1966_a5.lean ├── putnam_1966_a6.lean ├── putnam_1966_b1.lean ├── putnam_1966_b2.lean ├── putnam_1966_b3.lean ├── putnam_1966_b4.lean ├── putnam_1966_b5.lean ├── putnam_1966_b6.lean ├── putnam_1967_a1.lean ├── putnam_1967_a2.lean ├── putnam_1967_a3.lean ├── putnam_1967_a4.lean ├── putnam_1967_a5.lean ├── putnam_1967_a6.lean ├── putnam_1967_b1.lean ├── putnam_1967_b2.lean ├── putnam_1967_b3.lean ├── putnam_1967_b4.lean ├── putnam_1967_b5.lean ├── putnam_1967_b6.lean ├── putnam_1968_a1.lean ├── putnam_1968_a2.lean ├── putnam_1968_a3.lean ├── putnam_1968_a4.lean ├── putnam_1968_a5.lean ├── putnam_1968_a6.lean ├── putnam_1968_b1.lean ├── putnam_1968_b2.lean ├── putnam_1968_b4.lean ├── putnam_1968_b5.lean ├── putnam_1968_b6.lean ├── putnam_1969_a1.lean ├── putnam_1969_a2.lean ├── putnam_1969_a4.lean ├── putnam_1969_a5.lean ├── putnam_1969_a6.lean ├── putnam_1969_b1.lean ├── putnam_1969_b2.lean ├── putnam_1969_b3.lean ├── putnam_1969_b4.lean ├── putnam_1969_b5.lean ├── putnam_1969_b6.lean ├── putnam_1970_a1.lean ├── putnam_1970_a2.lean ├── putnam_1970_a3.lean ├── putnam_1970_a4.lean ├── putnam_1970_b1.lean ├── putnam_1970_b2.lean ├── putnam_1970_b3.lean ├── putnam_1970_b4.lean ├── putnam_1970_b5.lean ├── putnam_1970_b6.lean ├── putnam_1971_a1.lean ├── putnam_1971_a2.lean ├── putnam_1971_a3.lean ├── putnam_1971_a4.lean ├── putnam_1971_a5.lean ├── putnam_1971_a6.lean ├── putnam_1971_b1.lean ├── putnam_1971_b2.lean ├── putnam_1971_b3.lean ├── putnam_1971_b6.lean ├── putnam_1972_a1.lean ├── putnam_1972_a2.lean ├── putnam_1972_a3.lean ├── putnam_1972_a5.lean ├── putnam_1972_a6.lean ├── putnam_1972_b1.lean ├── putnam_1972_b2.lean ├── putnam_1972_b3.lean ├── putnam_1972_b4.lean ├── putnam_1972_b5.lean ├── putnam_1972_b6.lean ├── putnam_1973_a1.lean ├── putnam_1973_a2.lean ├── putnam_1973_a3.lean ├── putnam_1973_a4.lean ├── putnam_1973_a6.lean ├── putnam_1973_b1.lean ├── putnam_1973_b2.lean ├── putnam_1973_b3.lean ├── putnam_1973_b4.lean ├── putnam_1974_a1.lean ├── putnam_1974_a3.lean ├── putnam_1974_a4.lean ├── putnam_1974_a6.lean ├── putnam_1974_b1.lean ├── putnam_1974_b2.lean ├── putnam_1974_b3.lean ├── putnam_1974_b4.lean ├── putnam_1974_b5.lean ├── putnam_1974_b6.lean ├── putnam_1975_a1.lean ├── putnam_1975_a2.lean ├── putnam_1975_a3.lean ├── putnam_1975_a4.lean ├── putnam_1975_a5.lean ├── putnam_1975_b1.lean ├── putnam_1975_b2.lean ├── putnam_1975_b3.lean ├── putnam_1975_b4.lean ├── putnam_1975_b5.lean ├── putnam_1975_b6.lean ├── putnam_1976_a2.lean ├── putnam_1976_a3.lean ├── putnam_1976_a4.lean ├── putnam_1976_a6.lean ├── putnam_1976_b1.lean ├── putnam_1976_b2.lean ├── putnam_1976_b3.lean ├── putnam_1976_b5.lean ├── putnam_1976_b6.lean ├── putnam_1977_a1.lean ├── putnam_1977_a2.lean ├── putnam_1977_a3.lean ├── putnam_1977_a4.lean ├── putnam_1977_a5.lean ├── putnam_1977_a6.lean ├── putnam_1977_b1.lean ├── putnam_1977_b3.lean ├── putnam_1977_b5.lean ├── putnam_1977_b6.lean ├── putnam_1978_a1.lean ├── putnam_1978_a2.lean ├── putnam_1978_a3.lean ├── putnam_1978_a4.lean ├── putnam_1978_a5.lean ├── putnam_1978_a6.lean ├── putnam_1978_b2.lean ├── putnam_1978_b3.lean ├── putnam_1978_b4.lean ├── putnam_1978_b5.lean ├── putnam_1978_b6.lean ├── putnam_1979_a1.lean ├── putnam_1979_a2.lean ├── putnam_1979_a3.lean ├── putnam_1979_a4.lean ├── putnam_1979_a5.lean ├── putnam_1979_a6.lean ├── putnam_1979_b2.lean ├── putnam_1979_b3.lean ├── putnam_1979_b5.lean ├── putnam_1979_b6.lean ├── putnam_1980_a2.lean ├── putnam_1980_a3.lean ├── putnam_1980_a4.lean ├── putnam_1980_a5.lean ├── putnam_1980_a6.lean ├── putnam_1980_b1.lean ├── putnam_1980_b3.lean ├── putnam_1980_b4.lean ├── putnam_1980_b5.lean ├── putnam_1980_b6.lean ├── putnam_1981_a1.lean ├── putnam_1981_a3.lean ├── putnam_1981_a5.lean ├── putnam_1981_b1.lean ├── putnam_1981_b2.lean ├── putnam_1981_b3.lean ├── putnam_1981_b4.lean ├── putnam_1981_b5.lean ├── putnam_1982_a2.lean ├── putnam_1982_a3.lean ├── putnam_1982_a4.lean ├── putnam_1982_a5.lean ├── putnam_1982_a6.lean ├── putnam_1982_b2.lean ├── putnam_1982_b3.lean ├── putnam_1982_b4.lean ├── putnam_1982_b5.lean ├── putnam_1983_a1.lean ├── putnam_1983_a3.lean ├── putnam_1983_a4.lean ├── putnam_1983_a5.lean ├── putnam_1983_a6.lean ├── putnam_1983_b2.lean ├── putnam_1983_b4.lean ├── putnam_1983_b5.lean ├── putnam_1983_b6.lean ├── putnam_1984_a2.lean ├── putnam_1984_a3.lean ├── putnam_1984_a5.lean ├── putnam_1984_a6.lean ├── putnam_1984_b1.lean ├── putnam_1984_b2.lean ├── putnam_1984_b3.lean ├── putnam_1984_b5.lean ├── putnam_1985_a1.lean ├── putnam_1985_a3.lean ├── putnam_1985_a4.lean ├── putnam_1985_a5.lean ├── putnam_1985_a6.lean ├── putnam_1985_b1.lean ├── putnam_1985_b2.lean ├── putnam_1985_b3.lean ├── putnam_1985_b5.lean ├── putnam_1985_b6.lean ├── putnam_1986_a1.lean ├── putnam_1986_a2.lean ├── putnam_1986_a3.lean ├── putnam_1986_a4.lean ├── putnam_1986_a5.lean ├── putnam_1986_a6.lean ├── putnam_1986_b1.lean ├── putnam_1986_b2.lean ├── putnam_1986_b3.lean ├── putnam_1986_b4.lean ├── putnam_1986_b5.lean ├── putnam_1986_b6.lean ├── putnam_1987_a1.lean ├── putnam_1987_a2.lean ├── putnam_1987_a4.lean ├── putnam_1987_a5.lean ├── putnam_1987_a6.lean ├── putnam_1987_b1.lean ├── putnam_1987_b2.lean ├── putnam_1987_b3.lean ├── putnam_1987_b4.lean ├── putnam_1987_b5.lean ├── putnam_1987_b6.lean ├── putnam_1988_a1.lean ├── putnam_1988_a2.lean ├── putnam_1988_a3.lean ├── putnam_1988_a4.lean ├── putnam_1988_a5.lean ├── putnam_1988_a6.lean ├── putnam_1988_b1.lean ├── putnam_1988_b2.lean ├── putnam_1988_b3.lean ├── putnam_1988_b4.lean ├── putnam_1988_b5.lean ├── putnam_1988_b6.lean ├── putnam_1989_a1.lean ├── putnam_1989_a2.lean ├── putnam_1989_a3.lean ├── putnam_1989_a6.lean ├── putnam_1989_b1.lean ├── putnam_1989_b2.lean ├── putnam_1989_b3.lean ├── putnam_1989_b4.lean ├── putnam_1989_b6.lean ├── putnam_1990_a1.lean ├── putnam_1990_a2.lean ├── putnam_1990_a4.lean ├── putnam_1990_a5.lean ├── putnam_1990_a6.lean ├── putnam_1990_b1.lean ├── putnam_1990_b2.lean ├── putnam_1990_b3.lean ├── putnam_1990_b4.lean ├── putnam_1990_b5.lean ├── putnam_1991_a2.lean ├── putnam_1991_a3.lean ├── putnam_1991_a4.lean ├── putnam_1991_a5.lean ├── putnam_1991_a6.lean ├── putnam_1991_b1.lean ├── putnam_1991_b2.lean ├── putnam_1991_b4.lean ├── putnam_1991_b5.lean ├── putnam_1991_b6.lean ├── putnam_1992_a1.lean ├── putnam_1992_a2.lean ├── putnam_1992_a3.lean ├── putnam_1992_a4.lean ├── putnam_1992_a5.lean ├── putnam_1992_b1.lean ├── putnam_1992_b2.lean ├── putnam_1992_b3.lean ├── putnam_1992_b4.lean ├── putnam_1992_b5.lean ├── putnam_1992_b6.lean ├── putnam_1993_a1.lean ├── putnam_1993_a2.lean ├── putnam_1993_a3.lean ├── putnam_1993_a4.lean ├── putnam_1993_a5.lean ├── putnam_1993_a6.lean ├── putnam_1993_b1.lean ├── putnam_1993_b3.lean ├── putnam_1993_b4.lean ├── putnam_1993_b5.lean ├── putnam_1993_b6.lean ├── putnam_1994_a1.lean ├── putnam_1994_a3.lean ├── putnam_1994_a4.lean ├── putnam_1994_a5.lean ├── putnam_1994_a6.lean ├── putnam_1994_b1.lean ├── putnam_1994_b2.lean ├── putnam_1994_b3.lean ├── putnam_1994_b4.lean ├── putnam_1994_b5.lean ├── putnam_1994_b6.lean ├── putnam_1995_a1.lean ├── putnam_1995_a2.lean ├── putnam_1995_a3.lean ├── putnam_1995_a4.lean ├── putnam_1995_a5.lean ├── putnam_1995_a6.lean ├── putnam_1995_b1.lean ├── putnam_1995_b3.lean ├── putnam_1995_b4.lean ├── putnam_1995_b6.lean ├── putnam_1996_a2.lean ├── putnam_1996_a3.lean ├── putnam_1996_a4.lean ├── putnam_1996_a5.lean ├── putnam_1996_a6.lean ├── putnam_1996_b1.lean ├── putnam_1996_b2.lean ├── putnam_1996_b3.lean ├── putnam_1996_b4.lean ├── putnam_1996_b5.lean ├── putnam_1997_a3.lean ├── putnam_1997_a4.lean ├── putnam_1997_a5.lean ├── putnam_1997_a6.lean ├── putnam_1997_b1.lean ├── putnam_1997_b2.lean ├── putnam_1997_b3.lean ├── putnam_1997_b4.lean ├── putnam_1997_b5.lean ├── putnam_1998_a2.lean ├── putnam_1998_a3.lean ├── putnam_1998_a4.lean ├── putnam_1998_a5.lean ├── putnam_1998_a6.lean ├── putnam_1998_b1.lean ├── putnam_1998_b2.lean ├── putnam_1998_b4.lean ├── putnam_1998_b5.lean ├── putnam_1998_b6.lean ├── putnam_1999_a1.lean ├── putnam_1999_a2.lean ├── putnam_1999_a3.lean ├── putnam_1999_a4.lean ├── putnam_1999_a5.lean ├── putnam_1999_a6.lean ├── putnam_1999_b2.lean ├── putnam_1999_b3.lean ├── putnam_1999_b4.lean ├── putnam_1999_b5.lean ├── putnam_1999_b6.lean ├── putnam_2000_a1.lean ├── putnam_2000_a2.lean ├── putnam_2000_a4.lean ├── putnam_2000_a5.lean ├── putnam_2000_a6.lean ├── putnam_2000_b1.lean ├── putnam_2000_b2.lean ├── putnam_2000_b3.lean ├── putnam_2000_b4.lean ├── putnam_2000_b5.lean ├── putnam_2001_a1.lean ├── putnam_2001_a3.lean ├── putnam_2001_a5.lean ├── putnam_2001_b1.lean ├── putnam_2001_b2.lean ├── putnam_2001_b3.lean ├── putnam_2001_b4.lean ├── putnam_2001_b5.lean ├── putnam_2001_b6.lean ├── putnam_2002_a1.lean ├── putnam_2002_a2.lean ├── putnam_2002_a3.lean ├── putnam_2002_a5.lean ├── putnam_2002_a6.lean ├── putnam_2002_b3.lean ├── putnam_2002_b5.lean ├── putnam_2002_b6.lean ├── putnam_2003_a1.lean ├── putnam_2003_a2.lean ├── putnam_2003_a3.lean ├── putnam_2003_a4.lean ├── putnam_2003_a5.lean ├── putnam_2003_a6.lean ├── putnam_2003_b1.lean ├── putnam_2003_b2.lean ├── putnam_2003_b3.lean ├── putnam_2003_b4.lean ├── putnam_2003_b5.lean ├── putnam_2003_b6.lean ├── putnam_2004_a1.lean ├── putnam_2004_a3.lean ├── putnam_2004_a4.lean ├── putnam_2004_a5.lean ├── putnam_2004_a6.lean ├── putnam_2004_b1.lean ├── putnam_2004_b2.lean ├── putnam_2004_b4.lean ├── putnam_2004_b5.lean ├── putnam_2004_b6.lean ├── putnam_2005_a1.lean ├── putnam_2005_a2.lean ├── putnam_2005_a3.lean ├── putnam_2005_a4.lean ├── putnam_2005_a5.lean ├── putnam_2005_b1.lean ├── putnam_2005_b2.lean ├── putnam_2005_b3.lean ├── putnam_2005_b4.lean ├── putnam_2005_b5.lean ├── putnam_2005_b6.lean ├── putnam_2006_a1.lean ├── putnam_2006_a3.lean ├── putnam_2006_a4.lean ├── putnam_2006_a5.lean ├── putnam_2006_b1.lean ├── putnam_2006_b2.lean ├── putnam_2006_b3.lean ├── putnam_2006_b4.lean ├── putnam_2006_b5.lean ├── putnam_2006_b6.lean ├── putnam_2007_a1.lean ├── putnam_2007_a2.lean ├── putnam_2007_a3.lean ├── putnam_2007_a4.lean ├── putnam_2007_a5.lean ├── putnam_2007_b1.lean ├── putnam_2007_b2.lean ├── putnam_2007_b3.lean ├── putnam_2007_b4.lean ├── putnam_2007_b5.lean ├── putnam_2007_b6.lean ├── putnam_2008_a1.lean ├── putnam_2008_a3.lean ├── putnam_2008_a4.lean ├── putnam_2008_a5.lean ├── putnam_2008_a6.lean ├── putnam_2008_b1.lean ├── putnam_2008_b2.lean ├── putnam_2008_b3.lean ├── putnam_2008_b4.lean ├── putnam_2008_b5.lean ├── putnam_2008_b6.lean ├── putnam_2009_a1.lean ├── putnam_2009_a2.lean ├── putnam_2009_a3.lean ├── putnam_2009_a4.lean ├── putnam_2009_a5.lean ├── putnam_2009_b1.lean ├── putnam_2009_b2.lean ├── putnam_2009_b3.lean ├── putnam_2009_b4.lean ├── putnam_2009_b5.lean ├── putnam_2009_b6.lean ├── putnam_2010_a1.lean ├── putnam_2010_a2.lean ├── putnam_2010_a3.lean ├── putnam_2010_a4.lean ├── putnam_2010_a5.lean ├── putnam_2010_a6.lean ├── putnam_2010_b1.lean ├── putnam_2010_b2.lean ├── putnam_2010_b3.lean ├── putnam_2010_b4.lean ├── putnam_2010_b5.lean ├── putnam_2010_b6.lean ├── putnam_2011_a1.lean ├── putnam_2011_a2.lean ├── putnam_2011_a3.lean ├── putnam_2011_a4.lean ├── putnam_2011_a5.lean ├── putnam_2011_a6.lean ├── putnam_2011_b1.lean ├── putnam_2011_b2.lean ├── putnam_2011_b3.lean ├── putnam_2011_b4.lean ├── putnam_2011_b5.lean ├── putnam_2011_b6.lean ├── putnam_2012_a1.lean ├── putnam_2012_a2.lean ├── putnam_2012_a3.lean ├── putnam_2012_a4.lean ├── putnam_2012_a5.lean ├── putnam_2012_a6.lean ├── putnam_2012_b1.lean ├── putnam_2012_b3.lean ├── putnam_2012_b4.lean ├── putnam_2012_b5.lean ├── putnam_2012_b6.lean ├── putnam_2013_a2.lean ├── putnam_2013_a3.lean ├── putnam_2013_a4.lean ├── putnam_2013_a5.lean ├── putnam_2013_a6.lean ├── putnam_2013_b1.lean ├── putnam_2013_b2.lean ├── putnam_2013_b3.lean ├── putnam_2013_b4.lean ├── putnam_2013_b5.lean ├── putnam_2014_a1.lean ├── putnam_2014_a2.lean ├── putnam_2014_a3.lean ├── putnam_2014_a4.lean ├── putnam_2014_a5.lean ├── putnam_2014_a6.lean ├── putnam_2014_b1.lean ├── putnam_2014_b2.lean ├── putnam_2014_b3.lean ├── putnam_2014_b4.lean ├── putnam_2014_b6.lean ├── putnam_2015_a1.lean ├── putnam_2015_a2.lean ├── putnam_2015_a3.lean ├── putnam_2015_a4.lean ├── putnam_2015_a5.lean ├── putnam_2015_a6.lean ├── putnam_2015_b1.lean ├── putnam_2015_b2.lean ├── putnam_2015_b3.lean ├── putnam_2015_b4.lean ├── putnam_2015_b5.lean ├── putnam_2015_b6.lean ├── putnam_2016_a1.lean ├── putnam_2016_a2.lean ├── putnam_2016_a3.lean ├── putnam_2016_a5.lean ├── putnam_2016_a6.lean ├── putnam_2016_b1.lean ├── putnam_2016_b2.lean ├── putnam_2016_b3.lean ├── putnam_2016_b4.lean ├── putnam_2016_b5.lean ├── putnam_2016_b6.lean ├── putnam_2017_a1.lean ├── putnam_2017_a2.lean ├── putnam_2017_a3.lean ├── putnam_2017_a4.lean ├── putnam_2017_b1.lean ├── putnam_2017_b2.lean ├── putnam_2017_b3.lean ├── putnam_2017_b4.lean ├── putnam_2017_b6.lean ├── putnam_2018_a1.lean ├── putnam_2018_a2.lean ├── putnam_2018_a3.lean ├── putnam_2018_a4.lean ├── putnam_2018_a5.lean ├── putnam_2018_a6.lean ├── putnam_2018_b1.lean ├── putnam_2018_b2.lean ├── putnam_2018_b3.lean ├── putnam_2018_b4.lean ├── putnam_2018_b5.lean ├── putnam_2018_b6.lean ├── putnam_2019_a1.lean ├── putnam_2019_a3.lean ├── putnam_2019_a4.lean ├── putnam_2019_a5.lean ├── putnam_2019_a6.lean ├── putnam_2019_b1.lean ├── putnam_2019_b2.lean ├── putnam_2019_b3.lean ├── putnam_2019_b4.lean ├── putnam_2019_b5.lean ├── putnam_2019_b6.lean ├── putnam_2020_a1.lean ├── putnam_2020_a2.lean ├── putnam_2020_a3.lean ├── putnam_2020_a5.lean ├── putnam_2020_a6.lean ├── putnam_2020_b1.lean ├── putnam_2020_b4.lean ├── putnam_2020_b5.lean ├── putnam_2020_b6.lean ├── putnam_2021_a1.lean ├── putnam_2021_a2.lean ├── putnam_2021_a3.lean ├── putnam_2021_a4.lean ├── putnam_2021_a5.lean ├── putnam_2021_a6.lean ├── putnam_2021_b2.lean ├── putnam_2021_b3.lean ├── putnam_2021_b4.lean ├── putnam_2021_b5.lean ├── putnam_2022_a1.lean ├── putnam_2022_a2.lean ├── putnam_2022_a3.lean ├── putnam_2022_a4.lean ├── putnam_2022_a5.lean ├── putnam_2022_a6.lean ├── putnam_2022_b1.lean ├── putnam_2022_b2.lean ├── putnam_2022_b3.lean ├── putnam_2022_b4.lean ├── putnam_2022_b5.lean ├── putnam_2022_b6.lean ├── putnam_2023_a1.lean ├── putnam_2023_a2.lean ├── putnam_2023_a3.lean ├── putnam_2023_a4.lean ├── putnam_2023_a5.lean ├── putnam_2023_a6.lean ├── putnam_2023_b1.lean ├── putnam_2023_b2.lean ├── putnam_2023_b3.lean ├── putnam_2023_b4.lean ├── putnam_2023_b5.lean ├── putnam_2023_b6.lean ├── putnam_2024_a1.lean ├── putnam_2024_a2.lean ├── putnam_2024_a3.lean ├── putnam_2024_a4.lean ├── putnam_2024_a5.lean ├── putnam_2024_a6.lean ├── putnam_2024_b1.lean ├── putnam_2024_b3.lean ├── putnam_2024_b4.lean ├── putnam_2024_b5.lean └── putnam_2024_b6.lean /.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore the lake file 2 | .lake/ 3 | *.olean 4 | *.olean.* 5 | 6 | lean4/putnam_all* 7 | lean4/solutions_replaced/* 8 | lean4/solutions_replaced_new/ 9 | 10 | informal/join_all_jsons* 11 | 12 | isabelle_archive/ 13 | lean4_archive/ 14 | 15 | split_into_files.py -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "leanprover.lean4" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /coq/src/putnam_1962_a5.v: -------------------------------------------------------------------------------- 1 | From mathcomp Require Import all_algebra all_ssreflect. 2 | 3 | Set Implicit Arguments. 4 | Unset Strict Implicit. 5 | Unset Printing Implicit Defensive. 6 | 7 | Open Scope nat_scope. 8 | 9 | Definition putnam_1962_a5_solution : nat -> nat := fun n : nat => n * (n + 1) * 2 ^ (n - 2). 10 | Theorem putnam_1962_a5 11 | : forall n : nat, n >= 2 -> 12 | putnam_1962_a5_solution n = \sum_(1 <= k < n.+1) (binomial n k * k ^ 2). 13 | Proof. Admitted. 14 | -------------------------------------------------------------------------------- /coq/src/putnam_1962_a6.v: -------------------------------------------------------------------------------- 1 | Require Import Ensembles QArith. 2 | Theorem putnam_1962_a6 3 | (A : Ensemble Q) 4 | (hSSadd : forall a b : Q, (A a /\ A b) -> A (a + b)) 5 | (hSSprod : forall a b : Q, (A a /\ A b) -> A (a * b)) 6 | (hSScond : forall r : Q, (A r \/ A (-r) \/ r = 0) /\ ~(A r \/ A (-r)) /\ ~(A r /\ r = 0) /\ ~(A (-r) /\ r = 0)) 7 | : A = (fun r : Q => r > 0). 8 | Proof. Admitted. -------------------------------------------------------------------------------- /coq/src/putnam_1962_b2.v: -------------------------------------------------------------------------------- 1 | From mathcomp Require Import all_algebra all_ssreflect. 2 | From mathcomp Require Import reals. 3 | From mathcomp Require Import classical_sets. 4 | 5 | Set Implicit Arguments. 6 | Unset Strict Implicit. 7 | Unset Printing Implicit Defensive. 8 | 9 | Open Scope ring_scope. 10 | Open Scope classical_set_scope. 11 | 12 | Variable R : realType. 13 | Theorem putnam_1962_b2 14 | : exists f : R -> set nat, forall a b : R, a < b -> f a `<` f b. 15 | Proof. Admitted. -------------------------------------------------------------------------------- /coq/src/putnam_1965_a2.v: -------------------------------------------------------------------------------- 1 | Require Import Coquelicot.Hierarchy Reals. 2 | 3 | Local Coercion INR : nat >-> R. 4 | 5 | Theorem putnam_1965_a2 6 | : forall n : nat, gt n 0 -> sum_n (fun r : nat => ((n - 2 * r) * (C n r) / n) ^ 2) ((n - 1) / 2) = (C (2 * n - 2) (n - 1)) / n. 7 | Proof. Admitted. -------------------------------------------------------------------------------- /coq/src/putnam_1965_a4.v: -------------------------------------------------------------------------------- 1 | From mathcomp Require Import ssrbool ssreflect ssrfun fintype. 2 | Variables G B : finType. 3 | Theorem putnam_1965_a4 4 | (dances : G -> B -> Prop) 5 | (h : ~(exists b : B, forall g : G, dances g b) /\ (forall g : G, exists b : B, dances g b)) 6 | (nonempty : inhabited G /\ inhabited B) 7 | : exists (g h : G) (b c : B), dances g b /\ dances h c /\ ~dances h b /\ ~dances g c. 8 | Proof. Admitted. 9 | -------------------------------------------------------------------------------- /coq/src/putnam_1965_a5.v: -------------------------------------------------------------------------------- 1 | Require Import Nat Finite_sets. From mathcomp Require Import fintype perm. 2 | Definition putnam_1965_a5_solution : nat -> nat := (fun n : nat => 2 ^ (n - 1)). 3 | Theorem putnam_1965_a5 4 | : forall n : nat, n > 0 -> cardinal {perm 'I_n} (fun p : {perm 'I_n} => forall m : 'I_n, m > 0 -> exists k : 'I_n, k < m /\ (nat_of_ord (p m) = (p k) + 1 \/ nat_of_ord (p m) = (p k) - 1)) (putnam_1965_a5_solution n). 5 | Proof. Admitted. -------------------------------------------------------------------------------- /coq/src/putnam_1965_b3.v: -------------------------------------------------------------------------------- 1 | Require Import Finite_sets Reals Coquelicot.Coquelicot. 2 | Theorem putnam_1965_b3 3 | : cardinal (R * R * R) (fun abc : R * R * R => let '(a, b, c) := abc in (IZR (floor a) = a /\ IZR (floor b) = b /\ IZR (floor c) = c /\ a > 0 /\ a <= b /\ c > 0 /\ a ^ 2 + b ^ 2 = c ^ 2 /\ a * b / 2 = 2 * (a + b + c))) 3. 4 | Proof. Admitted. -------------------------------------------------------------------------------- /coq/src/putnam_1966_a1.v: -------------------------------------------------------------------------------- 1 | From mathcomp Require Import all_ssreflect ssrnum ssralg ssrint. 2 | 3 | Set Implicit Arguments. 4 | Unset Strict Implicit. 5 | Unset Printing Implicit Defensive. 6 | 7 | Local Open Scope ring_scope. 8 | 9 | Theorem putnam_1966_a1 10 | (f : nat -> int := fun n => \sum_(0 <= m < n + 1) (if (~~odd m) then (m%:Z)/2 else (m%:Z-1)/2)) 11 | : forall x y : nat, (gt x 0) -> (gt y 0) -> gt x y -> (x * y)%:Z = f (Nat.add x y) - f (Nat.sub x y). 12 | Proof. Admitted. -------------------------------------------------------------------------------- /coq/src/putnam_1967_b5.v: -------------------------------------------------------------------------------- 1 | From mathcomp Require Import all_ssreflect all_algebra. 2 | From mathcomp Require Import reals. 3 | 4 | Set Implicit Arguments. 5 | Unset Strict Implicit. 6 | Unset Printing Implicit Defensive. 7 | 8 | Local Open Scope ring_scope. 9 | 10 | Variable R : realType. 11 | Theorem putnam_1967_b5 12 | (f : nat -> R := fun n => \sum_(0 <= i < n) ((binomial (n + i - 1) i)%:R / (2 ^+ (n + i)))) 13 | : forall n, gt n 0 -> 1%R/2 = f n. 14 | Proof. Admitted. -------------------------------------------------------------------------------- /coq/src/putnam_1968_a2.v: -------------------------------------------------------------------------------- 1 | Require Import ZArith Reals QArith Qabs. 2 | 3 | Local Coercion inject_Z : Z >-> Q. 4 | Local Coercion Q2R : Q >-> R. 5 | 6 | Theorem putnam_1968_a2 7 | (a b c d e f : Z) 8 | (eps : R) 9 | (hne : Z.mul a d <> Z.mul b c) 10 | (heps : Rgt eps 0) 11 | : exists r s : Q, 0 < Qabs (r * a + s * b - e) /\ Rlt (Qabs (r * a + s * b - e)) eps /\ 0 < Qabs (r * c + s * d - f) /\ Rlt (Qabs (r * c + s * d - f)) eps. 12 | Proof. Admitted. 13 | -------------------------------------------------------------------------------- /coq/src/putnam_1971_b1.v: -------------------------------------------------------------------------------- 1 | Require Import Ensembles RelationClasses. 2 | Theorem putnam_1971_b1 3 | (S : Type) 4 | (op : S -> S -> S) 5 | (hself : forall x : S, op x x = x) 6 | (h2 : forall x y z : S, op (op x y) z = op (op y z) x) 7 | : (forall x y z : S, op (op x y) z = op x (op y z)) /\ (forall x y : S, op x y = op y x). 8 | Proof. Admitted. 9 | -------------------------------------------------------------------------------- /coq/src/putnam_1972_a2.v: -------------------------------------------------------------------------------- 1 | Require Import Ensembles Reals FinFun. 2 | Theorem putnam_1972_a2 3 | : (forall (S : Type) (Smul : S -> S -> S), (forall x y : S, (Smul x (Smul x y) = y /\ Smul (Smul y x) x = y)) -> (forall x y : S, Smul x y = Smul y x)) /\ 4 | (exists (S : Type) (Smul : S -> S -> S), (forall x y : S, (Smul x (Smul x y) = y /\ Smul (Smul y x) x = y)) /\ ~(forall x y z : S, Smul x (Smul y z) = Smul (Smul x y) z)). 5 | Proof. Admitted. -------------------------------------------------------------------------------- /coq/src/putnam_1972_a5.v: -------------------------------------------------------------------------------- 1 | From mathcomp Require Import all_algebra all_ssreflect. 2 | 3 | Set Implicit Arguments. 4 | Unset Strict Implicit. 5 | Unset Printing Implicit Defensive. 6 | 7 | Local Open Scope ring_scope. 8 | 9 | Theorem putnam_1972_a5 10 | (n : nat) 11 | (hn : gt n 1) 12 | : ~~(n%:Z %| 2 ^+ n - 1)%Z. 13 | Proof. Admitted. 14 | -------------------------------------------------------------------------------- /coq/src/putnam_1972_b3.v: -------------------------------------------------------------------------------- 1 | From mathcomp Require Import fingroup. 2 | Open Scope group_scope. 3 | (* Note: This formalization is only for finite groups (due to mathcomp), but this is sufficiently general since the group generated by A and B is finite. *) 4 | Variable T : finGroupType. 5 | Theorem putnam_1972_b3 6 | (G : {group T}) 7 | (A B : T) 8 | (hab : A * B * A = B * A ^+ 2 * B /\ A ^+ 3 = 1 /\ exists n : nat, n > 0 /\ B ^+ (2*n - 1) = 1) 9 | : (B = 1). 10 | Proof. Admitted. -------------------------------------------------------------------------------- /coq/src/putnam_1972_b5.v: -------------------------------------------------------------------------------- 1 | From GeoCoq Require Import Main.Tarski_dev.Ch16_coordinates_with_functions. 2 | Context `{T3D:Tarski_3D}. 3 | Theorem putnam_1972_b5 4 | (A B C D : Tpoint) 5 | (hnonplanar : ~Coplanar A B C D) 6 | (hangles : Ang A B C = Ang C D A /\ Ang B C D = Ang D A B) 7 | : (Cong A B C D /\ Cong B C D A). 8 | Proof. Admitted. -------------------------------------------------------------------------------- /coq/src/putnam_1973_b2.v: -------------------------------------------------------------------------------- 1 | Require Import Reals QArith Coquelicot.Complex. From Coqtail Require Import Cpow. 2 | Theorem putnam_1973_b2 3 | (z : C) 4 | (hzrat : exists q1 q2 : Q, Re z = Q2R q1 /\ Im z = Q2R q2) 5 | (hznorm : Cmod z = 1%R) 6 | : forall n : nat, exists q1 q2 : Q, Cmod (Cpow z (2 * n) - 1) = Q2R q1 /\ Cmod (1 / (Cpow z (2 * n) - 1)) = Q2R q2. 7 | Proof. Admitted. -------------------------------------------------------------------------------- /coq/src/putnam_1976_b6.v: -------------------------------------------------------------------------------- 1 | From mathcomp Require Import all_algebra all_ssreflect. 2 | 3 | Set Implicit Arguments. 4 | Unset Strict Implicit. 5 | Unset Printing Implicit Defensive. 6 | 7 | Local Open Scope nat_scope. 8 | 9 | Theorem putnam_1976_b6 10 | (sigma : nat -> int := fun N => \sum_(d <- divisors N) d) 11 | : forall N : nat, sigma N = (N.*2 + 1) -> (exists m : nat, odd m = true /\ N = m ^ 2). 12 | Proof. Admitted. -------------------------------------------------------------------------------- /coq/src/putnam_1977_a5.v: -------------------------------------------------------------------------------- 1 | From mathcomp Require Import all_algebra all_ssreflect. 2 | 3 | Set Implicit Arguments. 4 | Unset Strict Implicit. 5 | Unset Printing Implicit Defensive. 6 | 7 | Local Open Scope nat_scope. 8 | 9 | Theorem putnam_1977_a5 10 | (p n m : nat) 11 | (hp : prime p) 12 | (hmgen : ge m n) 13 | : 'C(mult p m, mult p n) = 'C(m, n) %[mod p]. 14 | Proof. Admitted. -------------------------------------------------------------------------------- /coq/src/putnam_1979_b6.v: -------------------------------------------------------------------------------- 1 | From mathcomp Require Import all_algebra all_ssreflect. 2 | From mathcomp Require Import reals complex. 3 | 4 | Set Implicit Arguments. 5 | Unset Strict Implicit. 6 | Unset Printing Implicit Defensive. 7 | 8 | Local Open Scope ring_scope. 9 | 10 | Variable R : realType. 11 | Theorem putnam_1979_b6 12 | (l : seq R[i]) 13 | : `|Re (sqrtc (\sum_(z <- l) (z ^+ 2)))| <= \sum_(z <- l) `|Re z|. 14 | Proof. Admitted. -------------------------------------------------------------------------------- /coq/src/putnam_1981_a3.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Definition putnam_1981_a3_solution := False. 3 | Theorem putnam_1981_a3 4 | : (exists r : R, Lim (fun k => exp (-1*k) * (RInt (fun x => (RInt (fun y => (exp x - exp y) / (x - y)) 0 k)) 0 k)) p_infty = r) <-> putnam_1981_a3_solution. 5 | Proof. Admitted. 6 | -------------------------------------------------------------------------------- /coq/src/putnam_1981_b1.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Definition putnam_1981_b1_solution := -1. 3 | Theorem putnam_1981_b1 4 | : Lim_seq (fun n => 1/(pow (INR n) 5) * (sum_n (fun r => (sum_n (fun s => 5 * pow (INR r) 4 - 18 * pow (INR r) 2 * pow (INR s) 2 + 5 * pow (INR s) 4) n)) n)) = putnam_1981_b1_solution. 5 | Proof. Admitted. 6 | -------------------------------------------------------------------------------- /coq/src/putnam_1981_b2.v: -------------------------------------------------------------------------------- 1 | Require Import Reals. 2 | Open Scope R. 3 | Definition putnam_1981_b2_solution := 12 - 8 * sqrt 2. 4 | Theorem putnam_1981_b2 5 | (f : R -> R -> R -> R := fun a b c => pow (a-1) 2 + pow (b / a - 1) 2 + pow (c / b - 1) 2 + pow (4 / c - 1) 2) 6 | : (forall (a b c: R), 1 <= a /\ a <= b /\ b <= c /\ c <= 4 -> putnam_1981_b2_solution <= f a b c) /\ 7 | (exists (a b c: R), 1 <= a /\ a <= b /\ b <= c /\ c <= 4 -> putnam_1981_b2_solution = f a b c). 8 | Proof. Admitted. 9 | -------------------------------------------------------------------------------- /coq/src/putnam_1981_b3.v: -------------------------------------------------------------------------------- 1 | Require Import Nat ZArith Znumtheory. From mathcomp Require Import div. 2 | Open Scope nat_scope. 3 | Theorem putnam_1981_b3 4 | : ~ exists (N: nat), 5 | forall (n: nat), 6 | (forall (p: nat), prime (Z.of_nat p) /\ p %| pow n 2 + 3 = true -> exists (m: nat), p %| pow m 2 + 3 = true /\ pow m 2 < n) -> 7 | n < N. 8 | Proof. Admitted. 9 | -------------------------------------------------------------------------------- /coq/src/putnam_1982_a2.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Definition putnam_1982_a2_solution := True. 4 | Theorem putnam_1982_a2 5 | (B : nat -> R -> R := fun n x => sum_n (fun m => Rpower (INR m) x) n) 6 | (f : nat -> R := fun n => B n (ln 2 / ln (INR n)) / ((INR n) * Rpower (ln 2 / ln (INR n)) 2)) 7 | : ex_series (fun n => if (lt_dec n 2) then 0 else f n) <-> putnam_1982_a2_solution. 8 | Proof. Admitted. 9 | -------------------------------------------------------------------------------- /coq/src/putnam_1982_a3.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Definition putnam_1982_a3_solution := PI / 2 * ln PI. 4 | Theorem putnam_1982_a3 5 | (f : R -> R := fun x => (atan (PI * x) - atan x) / x) 6 | : Lim (fun n => RInt f 0 n) p_infty = putnam_1982_a3_solution. 7 | Proof. Admitted. 8 | -------------------------------------------------------------------------------- /coq/src/putnam_1982_a5.v: -------------------------------------------------------------------------------- 1 | Require Import Reals. 2 | Open Scope R. 3 | Theorem putnam_1982_a5 4 | (a b c d: nat) 5 | (hpos : Nat.lt 0 a /\ Nat.lt 0 b /\ Nat.lt 0 c /\ Nat.lt 0 d) 6 | (habcd : Nat.le (Nat.add a c) 1982 /\ INR a / INR b + INR c / INR d < 1) 7 | : 1 - INR a / INR b - INR c / INR d > 1/pow 1983 3. 8 | Proof. Admitted. 9 | -------------------------------------------------------------------------------- /coq/src/putnam_1982_b5.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Theorem putnam_1982_b5 4 | (F := fix f (n: nat) (x: R) := 5 | match n with 6 | | O => exp 1 7 | | S n' => ln x / ln (f n' x) 8 | end) 9 | : forall (x: R), x > Rpower (exp 1) (exp 1) -> 10 | ex_finite_lim_seq (fun n => F n x) /\ 11 | let g (x: R) := Lim_seq (fun n => F n x) in 12 | continuity_pt g x. 13 | Proof. Admitted. 14 | -------------------------------------------------------------------------------- /coq/src/putnam_1983_a1.v: -------------------------------------------------------------------------------- 1 | Require Import Nat Ensembles Finite_sets. From mathcomp Require Import div. 2 | Definition putnam_1983_a1_solution := 2301. 3 | Theorem putnam_1983_a1 4 | (E: Ensemble nat := fun n => n %| 10^(40) = true \/ n %| 20^(30) = true) 5 | : cardinal nat E putnam_1983_a1_solution. 6 | Proof. Admitted. 7 | -------------------------------------------------------------------------------- /coq/src/putnam_1983_a4.v: -------------------------------------------------------------------------------- 1 | Require Import Binomial Reals Coquelicot.Coquelicot. 2 | Open Scope nat_scope. 3 | Theorem putnam_1983_a4 4 | (k : nat) 5 | (kpos : k > 0) 6 | (m : nat := 6 * k - 1) 7 | (s : R := sum_n_m (fun j => Rmult ((-1) ^ (j + 1)) (Binomial.C m (3 * j - 1))) 1 (2*k - 1)) 8 | : s <> R0. 9 | Proof. Admitted. 10 | -------------------------------------------------------------------------------- /coq/src/putnam_1983_a5.v: -------------------------------------------------------------------------------- 1 | Require Import Nat ZArith Reals Coquelicot.Coquelicot. 2 | Definition putnam_1983_a5_solution := True. 3 | Theorem putnam_1983_a5 4 | : (exists a : R, a > 0 /\ forall n : nat, gt n 0 -> Z.Even (floor (a^n) - Z.of_nat n)) <-> putnam_1983_a5_solution. 5 | Proof. Admitted. 6 | -------------------------------------------------------------------------------- /coq/src/putnam_1983_a6.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Definition putnam_1983_a6_solution := 2 / 9. 3 | Theorem putnam_1983_a6 4 | (F : R -> R := fun a => (a ^ 4 / exp (a ^ 3)) * RInt (fun x => RInt (fun y => exp (x ^ 3 + y ^ 3)) 0 (a - x)) 0 a) 5 | : filterlim F (Rbar_locally p_infty) (locally putnam_1983_a6_solution). 6 | Proof. Admitted. 7 | -------------------------------------------------------------------------------- /coq/src/putnam_1983_b4.v: -------------------------------------------------------------------------------- 1 | Require Import ZArith Reals Coquelicot.Coquelicot. 2 | Open Scope Z_scope. 3 | Theorem putnam_1983_b4 4 | (m : Z) 5 | (hm : m > 0) 6 | (f : Z -> Z := fun n => n + floor (sqrt (IZR n))) 7 | (A := fix a (n: nat) := 8 | match n with 9 | | O => m 10 | | S n' => f (a n') 11 | end) 12 | : exists (i : nat) (s : Z), A i = s^2. 13 | Proof. Admitted. 14 | -------------------------------------------------------------------------------- /coq/src/putnam_1983_b5.v: -------------------------------------------------------------------------------- 1 | Require Import Nat Reals Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Definition putnam_1983_b5_solution := ln (4/PI). 4 | Theorem putnam_1983_b5 5 | (mindist : R -> R := fun x => Rmin (x - IZR (floor x)) (IZR (floor (x+1)) - x)) 6 | : Lim_seq (fun n => (1/INR n) * (RInt (fun x => mindist (INR n/x)) 1 (INR n))) = putnam_1983_b5_solution. 7 | Proof. Admitted. 8 | -------------------------------------------------------------------------------- /coq/src/putnam_1984_a2.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Open Scope nat_scope. 3 | (* Uses division by 0 in the first term of the series. *) 4 | Definition putnam_1984_a2_solution := 2%R. 5 | Theorem putnam_1984_a2 6 | (f : nat -> R := fun n => Rdiv (pow 6 n) ((pow 3 (n+1) - pow 2 (n+1)) * (pow 3 n - pow 2 n))) 7 | : Series f = putnam_1984_a2_solution. 8 | Proof. Admitted. 9 | -------------------------------------------------------------------------------- /coq/src/putnam_1984_a5.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Factorial Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Definition putnam_1984_a5_solution := INR (fact 9 * fact 8 * fact 4) / INR (fact 25). 4 | Theorem putnam_1984_a5 5 | : RInt (fun z => RInt (fun y => RInt (fun x => x * pow y 9 * pow z 8 * pow (1 - x - y - z) 4) 0 (1 - y - z)) 0 (1 - z)) 0 1 = putnam_1984_a5_solution. 6 | Proof. Admitted. 7 | -------------------------------------------------------------------------------- /coq/src/putnam_1984_b2.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Definition putnam_1984_b2_solution := 8. 4 | Theorem putnam_1984_b2 5 | (f : R -> R -> R := fun x y => pow (x - y) 2 + pow (sqrt (2 - pow x 2) - 9 / y) 2) 6 | : (forall x y : R, 0 < x < sqrt 2 /\ y > 0 -> f x y >= putnam_1984_b2_solution) /\ 7 | (exists x y : R, 0 < x < sqrt 2 /\ y > 0 /\ f x y = putnam_1984_b2_solution). 8 | Proof. Admitted. 9 | -------------------------------------------------------------------------------- /coq/src/putnam_1985_a3.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Definition putnam_1985_a3_solution (x: R) := exp x - 1. 4 | Theorem putnam_1985_a3 5 | (x: R) 6 | (A := fix a (i j: nat) := 7 | match (i,j) with 8 | | (i, 0) => x/pow 2 i 9 | | (i, S j') => pow (a i j') 2 + 2 * a i j' 10 | end) 11 | : Lim_seq (fun n => A n n) = putnam_1985_a3_solution x. 12 | Proof. Admitted. 13 | -------------------------------------------------------------------------------- /coq/src/putnam_1985_a4.v: -------------------------------------------------------------------------------- 1 | Require Import Ensembles Nat Coquelicot.Coquelicot. 2 | Definition putnam_1985_a4_solution := fun k => k = 87. 3 | Theorem putnam_1985_a4 4 | (a : nat -> nat := fix a (n: nat) := 5 | match n with 6 | | O => 3 7 | | S n' => 3 ^ (a n') 8 | end) 9 | : let E: Ensemble nat := fun k => k < 100 /\ forall (n: nat), exists (i: nat), ge i n /\ (a i) mod 100 = k in 10 | E = putnam_1985_a4_solution. 11 | Proof. Admitted. 12 | -------------------------------------------------------------------------------- /coq/src/putnam_1985_a5.v: -------------------------------------------------------------------------------- 1 | Require Import Nat Reals List Coquelicot.Coquelicot. 2 | Open Scope nat_scope. 3 | Definition putnam_1985_a5_solution (n : nat) := n = 3 \/ n = 4 \/ n = 7 \/ n = 8. 4 | Theorem putnam_1985_a5 5 | (F : nat -> R -> R := fun n x => fold_right Rmult 1%R (map (fun i : nat => cos (INR i * x)) (seq 1 n))) 6 | : forall (n: nat), 1 <= n <= 10 -> (RInt (F n) 0 (2*PI) <> 0%R <-> putnam_1985_a5_solution n). 7 | Proof. Admitted. -------------------------------------------------------------------------------- /coq/src/putnam_1985_b3.v: -------------------------------------------------------------------------------- 1 | Require Import Nat Ensembles Finite_sets. 2 | Theorem putnam_1985_b3 3 | (a : nat -> nat -> nat) 4 | (apos : forall m n : nat, a m n > 0) 5 | (ha : forall k : nat, k > 0 -> cardinal (nat * nat) (fun t => let (m, n) := t in m > 0 /\ n > 0 /\ a m n = k) 8) 6 | : exists m n : nat, m > 0 /\ n > 0 /\ a m n > m * n. 7 | Proof. Admitted. 8 | -------------------------------------------------------------------------------- /coq/src/putnam_1985_b5.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Definition putnam_1985_b5_solution := sqrt (PI / 1985) * exp (-3970). 4 | Theorem putnam_1985_b5 5 | : filterlim (fun n : R => RInt (fun x => Rpower x (-1/2) * exp (-1985 * (x + 1/x))) 0 n) (Rbar_locally p_infty) (locally putnam_1985_b5_solution). 6 | Proof. Admitted. 7 | -------------------------------------------------------------------------------- /coq/src/putnam_1986_a1.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Ensembles Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Definition putnam_1986_a1_solution := 18. 4 | Theorem putnam_1986_a1 5 | (f : R -> R := fun x => pow x 3 - 3 * x) 6 | (T : Ensemble R := fun x => pow x 4 + 36 <= 13 * pow x 2) 7 | : (forall x : R, In R T x -> putnam_1986_a1_solution >= f x) /\ 8 | (exists x : R, In R T x /\ putnam_1986_a1_solution = f x). 9 | Proof. Admitted. 10 | -------------------------------------------------------------------------------- /coq/src/putnam_1986_a2.v: -------------------------------------------------------------------------------- 1 | Require Import Nat. 2 | Definition putnam_1986_a2_solution := 3. 3 | Theorem putnam_1986_a2 4 | : (10 ^ (20000) / (10 ^ (100) + 3)) mod 10 = putnam_1986_a2_solution. 5 | Proof. Admitted. 6 | -------------------------------------------------------------------------------- /coq/src/putnam_1986_a3.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Definition putnam_1986_a3_solution := PI / 2. 4 | Theorem putnam_1986_a3 5 | (cot : R -> R) 6 | (fcot : cot = fun t => cos t / sin t) 7 | (arccot : R -> R) 8 | (harccot : forall t : R, t >= 0 -> 0 < arccot t <= PI / 2 /\ cot (arccot t) = t) 9 | : Series (fun n => arccot (pow (INR n) 2 + INR n + 1)) = putnam_1986_a3_solution. 10 | Proof. Admitted. 11 | -------------------------------------------------------------------------------- /coq/src/putnam_1986_b4.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Ranalysis Coquelicot.Coquelicot. 2 | Definition putnam_1986_b4_solution := True. 3 | Theorem putnam_1986_b4 4 | (G : R -> R) 5 | (hGeq : forall (r: R), exists (m n: Z), G r = Rabs (r - sqrt (IZR (m ^ 2 + 2 * n ^ 2)))) 6 | (hGlb : forall (r: R), forall (m n: Z), G r <= Rabs (r - sqrt (IZR (m ^ 2 + 2 * n ^ 2)))) 7 | : filterlim G (Rbar_locally p_infty) (locally 0) <-> putnam_1986_b4_solution. 8 | Proof. Admitted. 9 | -------------------------------------------------------------------------------- /coq/src/putnam_1987_b1.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Definition putnam_1987_b1_solution := 1. 3 | Theorem putnam_1987_b1 4 | : RInt (fun x => ln (9 - x) ^ (1/2) / ( ln (9 - x) ^ (1/2) + ln (x + 3) ^ (1/2))) 2 4 = putnam_1987_b1_solution. 5 | Proof. Admitted. 6 | -------------------------------------------------------------------------------- /coq/src/putnam_1987_b2.v: -------------------------------------------------------------------------------- 1 | Require Import Binomial Reals Coquelicot.Coquelicot. 2 | Theorem putnam_1987_b2 3 | : forall (n r s: nat), ge n (r + s) -> 4 | sum_n (fun i => Binomial.C s i / Binomial.C n (r + i)) s = (INR n + 1)/((INR n + 1 - INR s) * Binomial.C (n - s) r). 5 | Proof. Admitted. 6 | -------------------------------------------------------------------------------- /coq/src/putnam_1988_a3.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Definition putnam_1988_a3_solution (a: R) := a > 1/2. 4 | Theorem putnam_1988_a3 5 | : forall (a: R), ex_finite_lim_seq (fun m => sum_n_m (fun n => Rpower (1/INR n * (1 / sin (1/INR n)) - 1) a) 1 m) <-> putnam_1988_a3_solution a. 6 | Proof. Admitted. 7 | -------------------------------------------------------------------------------- /coq/src/putnam_1988_a4.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. From mathcomp Require Import fintype. 2 | Definition putnam_1988_a4_solution : Prop * Prop := (True, False). 3 | Theorem putnam_1988_a4 4 | (p : nat -> Prop := fun n : nat => (forall color : (R * R) -> 'I_n, exists p q : R * R, color p = color q /\ norm (fst p - fst q, snd p - snd q) = 1)) 5 | : let (a, b) := putnam_1988_a4_solution in ((p 3%nat) <-> a) /\ ((p 9%nat) <-> b). 6 | Proof. Admitted. 7 | -------------------------------------------------------------------------------- /coq/src/putnam_1988_a5.v: -------------------------------------------------------------------------------- 1 | Require Import Basics Reals. 2 | Open Scope R. 3 | Theorem putnam_1988_a5 4 | : exists! (f: R -> R), 5 | (forall (x: R), x <= 0 -> f x = 0) /\ 6 | forall (x: R), x > 0 -> 7 | (f x > 0 /\ (compose f f) x = 6 * x - f x). 8 | Proof. Admitted. 9 | -------------------------------------------------------------------------------- /coq/src/putnam_1988_b1.v: -------------------------------------------------------------------------------- 1 | Require Import ZArith Znumtheory. 2 | Open Scope Z. 3 | Theorem putnam_1988_b1 4 | : forall (n: Z), n > 3 /\ ~ prime n -> exists (a b c: Z), a > 0 /\ b > 0 /\ c > 0 /\ n = a * b + b * c + c * a + 1. 5 | Proof. Admitted. 6 | -------------------------------------------------------------------------------- /coq/src/putnam_1988_b2.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Definition putnam_1988_b2_solution := True. 4 | Theorem putnam_1988_b2 5 | : (forall (a: R), a >= 0 -> forall (x: R), pow (x + 1) 2 >= a * (a + 1) -> 6 | pow x 2 >= a * (a - 1)) <-> putnam_1988_b2_solution. 7 | Proof. Admitted. 8 | -------------------------------------------------------------------------------- /coq/src/putnam_1988_b6.v: -------------------------------------------------------------------------------- 1 | Require Import Ensembles Finite_sets ZArith. 2 | Open Scope Z. 3 | Theorem putnam_1988_b6 4 | (triangular : Z -> Prop := fun n => exists (m: Z), m >= 0 /\ n = (m * (m + 1)) / 2) 5 | (E: Ensemble (Z*Z) := fun '(a, b) => forall (m: Z), m > 0 -> (triangular m <-> triangular (Z.mul a m + b))) 6 | : ~ exists (n: nat), cardinal (Z*Z) E n. 7 | Proof. Admitted. 8 | -------------------------------------------------------------------------------- /coq/src/putnam_1989_a2.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Definition putnam_1989_a2_solution (a b: R) := (exp (pow (a*b) 2) - 1)/(a * b). 4 | Theorem putnam_1989_a2 5 | (a b: R) 6 | (abpos : a > 0 /\ b > 0) 7 | (f : R -> R -> R := fun x y => Rmax (pow (b*x) 2) (pow (a*y) 2)) 8 | : RInt (fun x => (RInt (fun y => exp (f x y)) 0 b)) 0 a = putnam_1989_a2_solution a b. 9 | Proof. Admitted. 10 | -------------------------------------------------------------------------------- /coq/src/putnam_1989_a3.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. From Coqtail Require Import Cpow. 2 | Open Scope C. 3 | Theorem putnam_1989_a3 4 | (f : C -> C := fun z => 11 * Cpow z 10 + 10 * Ci * Cpow z 9 + 10 * Ci * z - 11) 5 | : forall (x: C), f x = 0 -> Cmod x = R1. 6 | Proof. Admitted. 7 | -------------------------------------------------------------------------------- /coq/src/putnam_1990_a2.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Definition putnam_1990_a2_solution := True. 4 | Theorem putnam_1990_a2 5 | (numform : R -> Prop := fun x => exists (n m: nat), x = Rpower (INR n) (1/3) - Rpower (INR m) (1/3)) 6 | : (exists (s: nat -> R), (forall (i: nat), numform (s i)) /\ is_lim_seq s (sqrt 2)) <-> putnam_1990_a2_solution. 7 | Proof. Admitted. 8 | -------------------------------------------------------------------------------- /coq/src/putnam_1990_a5.v: -------------------------------------------------------------------------------- 1 | From mathcomp Require Import matrix ssralg. 2 | Open Scope ring_scope. 3 | Definition putnam_1990_a5_solution := False. 4 | Theorem putnam_1990_a5 5 | : (forall (R : ringType) (n: nat) (A B : 'M[R]_n), n >= 1 -> mulmx (mulmx (mulmx A B) A) B = 0 -> mulmx (mulmx (mulmx B A) B) A = 0) <-> putnam_1990_a5_solution. 6 | Proof. Admitted. 7 | -------------------------------------------------------------------------------- /coq/src/putnam_1990_b1.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Definition putnam_1990_b1_solution (f: R -> R) := f = (fun x => sqrt 1990 * exp x) \/ f = (fun x => -sqrt 1990 * exp x). 4 | Theorem putnam_1990_b1 5 | (f : R -> R) 6 | (fderiv : (forall x : R, ex_derive f x) /\ continuity (Derive f)) 7 | : (forall x, pow (f x) 2 = RInt (fun t => pow (f t) 2 + pow ((Derive f) t) 2) 0 x + 1990) <-> 8 | putnam_1990_b1_solution f. 9 | Proof. Admitted. 10 | -------------------------------------------------------------------------------- /coq/src/putnam_1991_a5.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Definition putnam_1991_a5_solution := 1/3. 4 | Theorem putnam_1991_a5 5 | (f : R -> R := fun y : R => RInt (fun x => sqrt (pow x 4 + pow (y - pow y 2) 2)) 0 y) 6 | : (exists (y : R), 0 <= y <= 1 /\ putnam_1991_a5_solution = f y) /\ (forall (y : R), 0 <= y <= 1 -> putnam_1991_a5_solution >= f y). 7 | Proof. Admitted. 8 | -------------------------------------------------------------------------------- /coq/src/putnam_1991_b4.v: -------------------------------------------------------------------------------- 1 | Require Import Nat Reals ZArith Znumtheory Binomial Coquelicot.Coquelicot. 2 | Theorem putnam_1991_b4 3 | (p: nat) 4 | (hp : odd p = true /\ prime (Z.of_nat p)) 5 | (expr : R := sum_n (fun j => Binomial.C p j * Binomial.C (p + j) j) p) 6 | : (floor expr) mod (Z.pow (Z.of_nat p) 2) = Z.add (Z.pow 2 (Z.of_nat p)) 1. 7 | Proof. Admitted. 8 | -------------------------------------------------------------------------------- /coq/src/putnam_1992_a1.v: -------------------------------------------------------------------------------- 1 | Require Import Basics ZArith. 2 | Open Scope Z_scope. 3 | Theorem putnam_1992_a1 4 | (f : Z -> Z) 5 | : f = (fun n => 1 - n) <-> ((forall n : Z, f (f n) = n) /\ (forall n : Z, f (f (n + 2) + 2) = n) /\ f 0 = 1). 6 | Proof. Admitted. 7 | -------------------------------------------------------------------------------- /coq/src/putnam_1992_a2.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Binomial Factorial Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Definition putnam_1992_a2_solution := 1992. 4 | Theorem putnam_1992_a2 5 | (C : R -> R := fun a => (Derive_n (fun x => Rpower (1 + x) a) 1992) 0 / INR (fact 1992)) 6 | : RInt (fun y => C (-y - 1) * sum_n_m (fun k => 1 / (y + INR k)) 1 1992) 0 1 = putnam_1992_a2_solution. 7 | Proof. Admitted. 8 | -------------------------------------------------------------------------------- /coq/src/putnam_1993_a2.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Theorem putnam_1993_a2 4 | (x : nat -> R) 5 | (xnonzero : forall n : nat, x n <> 0) 6 | (hx : forall n : nat, ge n 1 -> pow (x n) 2 - x (pred n) * x (S n) = 1) 7 | : exists a : R, forall n : nat, ge n 1 -> x (S n) = a * x n - x (pred n). 8 | Proof. Admitted. 9 | -------------------------------------------------------------------------------- /coq/src/putnam_1993_a5.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Theorem putnam_1993_a5 4 | (f : R -> R := fun x => (pow x 2 - x) / (pow x 3 - 3 * x + 1)) 5 | : exists p q : Z, 6 | RInt (fun x => pow (f x) 2) (-100) (-10) + 7 | RInt (fun x => pow (f x) 2) (1/101) (1/11) + 8 | RInt (fun x => pow (f x) 2) (101/100) (11/10) = 9 | IZR p /IZR q. 10 | Proof. Admitted. 11 | -------------------------------------------------------------------------------- /coq/src/putnam_1993_b1.v: -------------------------------------------------------------------------------- 1 | Require Import Reals. 2 | Open Scope R. 3 | Definition putnam_1993_b1_solution : nat := 3987. 4 | Theorem putnam_1993_b1 5 | (cond : nat -> Prop := fun n => gt n 0 /\ forall (m: nat), and (lt 0 m) (lt m 1993) -> exists (k: nat), INR m / 1993 < INR k / INR n < INR (m + 1) / 1994) 6 | : cond putnam_1993_b1_solution /\ forall (n: nat), cond n -> ge n putnam_1993_b1_solution. 7 | Proof. Admitted. 8 | -------------------------------------------------------------------------------- /coq/src/putnam_1993_b5.v: -------------------------------------------------------------------------------- 1 | Require Import ZArith Reals Coquelicot.Coquelicot. From mathcomp Require Import fintype. 2 | Theorem putnam_1993_b5 3 | (pdists : ('I_4 -> (R * R)) -> Prop) 4 | (hpdists : forall p : 'I_4 -> (R * R), pdists p = (forall i j : 'I_4, i <> j -> (exists k : Z, IZR k = norm (fst (p i) - fst (p j), (snd (p i) - snd (p j))) /\ Z.odd k = true))) 5 | : ~ (exists p : 'I_4 -> (R * R), pdists p). 6 | Proof. Admitted. 7 | -------------------------------------------------------------------------------- /coq/src/putnam_1994_a1.v: -------------------------------------------------------------------------------- 1 | Require Import Nat Reals Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Theorem putnam_1994_a1 4 | (a : nat -> R) 5 | (ha : forall n : nat, gt n 0 -> 0 < a n <= a (mul 2 n) + a (add (mul 2 n) 1)) 6 | : ~ ex_finite_lim_seq (fun n => sum_n (fun m => a m) n). 7 | Proof. Admitted. 8 | -------------------------------------------------------------------------------- /coq/src/putnam_1994_b1.v: -------------------------------------------------------------------------------- 1 | Require Import Ensembles Finite_sets ZArith. 2 | Open Scope Z. 3 | Definition putnam_1994_b1_solution (n: Z) := 315 <= n <= 325 \/ 332 <= n <= 350. 4 | Theorem putnam_1994_b1 5 | (n : Z) 6 | (nwithin : Prop := cardinal nat (fun m => Z.abs (n - (Z.of_nat m) ^ 2) <= 250) 15) 7 | : (n > 0 /\ nwithin) <-> putnam_1994_b1_solution n. 8 | Proof. Admitted. -------------------------------------------------------------------------------- /coq/src/putnam_1994_b2.v: -------------------------------------------------------------------------------- 1 | Require Import Ensembles Reals Finite_sets Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Definition putnam_1994_b2_solution (c: R) := c < 243 / 8. 4 | Theorem putnam_1994_b2 5 | (hintersect : R -> Prop := fun c => exists(m b: R), cardinal R (fun x => m * x + b = pow x 4 + 9 * pow x 3 + c * pow x 2 + 9 * x + 4) 4) 6 | : forall (c: R), hintersect c <-> putnam_1994_b2_solution c. 7 | Proof. Admitted. 8 | -------------------------------------------------------------------------------- /coq/src/putnam_1994_b6.v: -------------------------------------------------------------------------------- 1 | Require Import ZArith. 2 | Open Scope Z_scope. 3 | Theorem putnam_1994_b6 4 | (n : Z -> Z := fun a => 101 * a - 100 * 2^a) 5 | : forall a b c d : Z, 0 <= a <= 99 /\ 0 <= b <= 99 /\ 0 <= c <= 99 /\ 0 <= d <= 99 /\ 6 | (n a + n b) mod 10100 = (n c + n d) mod 10100 -> (a = c /\ b = d) \/ (a = d /\ b = c). 7 | Proof. Admitted. 8 | -------------------------------------------------------------------------------- /coq/src/putnam_1995_a2.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Definition putnam_1995_a2_solution : R -> R -> Prop := fun (a b: R) => a = b. 4 | Theorem putnam_1995_a2 5 | : forall (a b: R), a > 0 /\ b > 0 -> ((exists limit : R, filterlim (fun n : R => RInt (fun x => sqrt (sqrt (x + a) - sqrt x) - sqrt (sqrt x - (x - b))) b n) (Rbar_locally p_infty) (locally limit)) <-> putnam_1995_a2_solution a b). 6 | Proof. Admitted. 7 | -------------------------------------------------------------------------------- /coq/src/putnam_1995_b4.v: -------------------------------------------------------------------------------- 1 | Require Import Reals ZArith Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Definition putnam_1995_b4_solution : Z * Z * Z * Z := (3%Z,1%Z,5%Z,2%Z). 4 | Theorem putnam_1995_b4 5 | (contfrac : R) 6 | (hcontfrac : contfrac = 2207 - 1/contfrac) 7 | (hcontfrac' : 1 < contfrac) 8 | : let (abc, d) := putnam_1995_b4_solution in let (ab, c) := abc in let (a, b) := ab in 9 | pow contfrac (1 / 8) = (IZR a + IZR b * sqrt (IZR c))/IZR d. 10 | Proof. Admitted. 11 | -------------------------------------------------------------------------------- /coq/src/putnam_1996_a5.v: -------------------------------------------------------------------------------- 1 | Require Import Binomial Reals Znumtheory Coquelicot.Coquelicot. From mathcomp Require Import div. 2 | Open Scope R. 3 | Theorem putnam_1996_a5 4 | (p : nat) 5 | (hp : prime (Z.of_nat p) /\ gt p 3) 6 | (k : nat := Z.to_nat (floor (2 * INR p / 3))) 7 | : exists (m : nat), sum_n_m (fun i => Binomial.C p i) 1 k = INR m * pow (INR p) 2. 8 | Proof. Admitted. 9 | -------------------------------------------------------------------------------- /coq/src/putnam_1996_b2.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. From mathcomp Require Import bigop. 2 | Open Scope R. 3 | Theorem putnam_1996_b2 4 | (n : nat) 5 | (prododd : R := INR (\prod_(1 <= i < (n + 1)) (2 * i - 1))) 6 | (npos : gt n 0) 7 | : Rpower ((2 * INR n - 1) / exp 1) ((2 * INR n - 1) / 2) < prododd < Rpower ((2 * INR n + 1) / exp 1) ((2 * INR n + 1) / 2). 8 | Proof. Admitted. 9 | -------------------------------------------------------------------------------- /coq/src/putnam_1997_a5.v: -------------------------------------------------------------------------------- 1 | Require Import Nat Ensembles Finite_sets List Reals Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Definition putnam_1997_a5_solution := True. 4 | Theorem putnam_1997_a5 5 | (E: Ensemble (list nat) := fun l => length l = 10%nat /\ (forall i : nat, lt i 10 -> gt (nth i l 0%nat) 0) /\ sum_n (fun i => 1/ INR (nth i l 0%nat)) 9 = 1) 6 | (m: nat) 7 | : cardinal (list nat) E m -> (odd m = true <-> putnam_1997_a5_solution). 8 | Proof. Admitted. 9 | -------------------------------------------------------------------------------- /coq/src/putnam_1997_b1.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Definition putnam_1997_b1_solution : nat -> R := (fun n : nat => INR n). 4 | Theorem putnam_1997_b1 5 | (rnd : R -> R := fun x => Rmin (Rabs (IZR (floor x) - x)) (Rabs (IZR (floor (x + 1)) - x))) 6 | : forall (n: nat), gt n 0 -> sum_n_m (fun m => Rmin (rnd (INR m / (6 * INR n))) (rnd (INR m / (3 * INR n)))) 1 (6 * n - 1) = putnam_1997_b1_solution n. 7 | Proof. Admitted. 8 | -------------------------------------------------------------------------------- /coq/src/putnam_1997_b2.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Theorem putnam_1997_b2 4 | (f g : R -> R) 5 | (hg : forall x : R, g x >= 0) 6 | (hfdiff : forall x : R, ex_derive f x /\ ex_derive_n f 2 x) 7 | (hfg : forall x : R, f x + Derive_n f 2 x = -x * g x * Derive f x) 8 | : exists M : R, (forall x : R, -M <= abs (f x) <= M). 9 | Proof. Admitted. 10 | -------------------------------------------------------------------------------- /coq/src/putnam_1997_b5.v: -------------------------------------------------------------------------------- 1 | Require Import Nat. 2 | Theorem putnam_1997_b5 3 | (tetration := fix tetration' (b m: nat) : nat := 4 | match m with 5 | | O => 1 6 | | S m' => b ^ (tetration' b m') 7 | end) 8 | (n : nat) 9 | (hn : n >= 2) 10 | : (tetration 2 n) mod n = (tetration 2 (n-1)) mod n. 11 | Proof. Admitted. 12 | -------------------------------------------------------------------------------- /coq/src/putnam_1998_a3.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Theorem putnam_1998_a3 4 | (f : R -> R) 5 | (hf : (forall x : R, ex_derive f x /\ ex_derive_n f 2 x /\ ex_derive_n f 3 x) /\ continuity (Derive_n f 3)) 6 | : exists (a: R), (Derive_n f 0) a * (Derive_n f 1) a * (Derive_n f 2) a * (Derive_n f 3) a >= 0. 7 | Proof. Admitted. 8 | -------------------------------------------------------------------------------- /coq/src/putnam_1998_b1.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Definition putnam_1998_b1_solution : R := 6. 4 | Theorem putnam_1998_b1 5 | (f : R -> R := fun x => ((x + 1 / x) ^ 6 - (x ^ 6 + 1 / (x ^ 6)) - 2) / ((x + 1 / x) ^ 3 + (x ^ 3 + 1 / (x ^ 3)))) 6 | (m : R) 7 | (hm : exists (x: R), x > 0 /\ f x = m) 8 | (hmub : forall (x: R), x > 0 -> f x >= m) 9 | : m = putnam_1998_b1_solution. 10 | Proof. Admitted. 11 | -------------------------------------------------------------------------------- /coq/src/putnam_1998_b5.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Definition putnam_1998_b5_solution : nat := 1. 4 | Theorem putnam_1998_b5 5 | (N : R := sum_n (fun i => 10^i) 1997) 6 | : Z.to_nat (floor (10^1000 * sqrt N)) mod 10 = putnam_1998_b5_solution. 7 | Proof. Admitted. 8 | -------------------------------------------------------------------------------- /coq/src/putnam_1998_b6.v: -------------------------------------------------------------------------------- 1 | Require Import Reals. 2 | Open Scope Z. 3 | Theorem putnam_1998_b6 4 | (a b c : Z) 5 | : exists (n: Z), n > 0 /\ (forall (m : Z), n * n * n + a * n * n + b * n + c <> m * m). 6 | Proof. Admitted. 7 | -------------------------------------------------------------------------------- /coq/src/putnam_1999_a2.v: -------------------------------------------------------------------------------- 1 | From mathcomp.analysis Require Import reals. From mathcomp Require Import ssrnat ssrnum ssralg fintype poly. 2 | Open Scope ring_scope. 3 | Theorem putnam_1999_a2 4 | (R : realType) 5 | (p : {poly R}) 6 | (hpos : forall x, (p.[x] >= 0) = true) 7 | : exists (k : nat) (f : nat -> {poly R}), p = \sum_(i < k) ((f i)*(f i)). 8 | Proof. Admitted. 9 | -------------------------------------------------------------------------------- /coq/src/putnam_1999_a3.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Theorem putnam_1999_a3 3 | (f : R -> R := fun x => 1/(1 - 2 * x - x^2)) 4 | (a : nat -> R) 5 | (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)))) 6 | : forall n : nat, exists m : nat, (a n)^2 + (a (S n))^2 = a m. 7 | Proof. Admitted. 8 | -------------------------------------------------------------------------------- /coq/src/putnam_1999_a4.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Definition putnam_1999_a4_solution : R := 9/32. 3 | Theorem putnam_1999_a4: 4 | Series (fun m => Series (fun n => (INR (m + 1) ^ 2 * INR (n + 1)) / (3 ^ (m + 1) * (INR (n + 1) * 3 ^ (m + 1) + INR (m + 1) * 3 ^ (n + 1))))) = putnam_1999_a4_solution. 5 | Proof. Admitted. -------------------------------------------------------------------------------- /coq/src/putnam_1999_a5.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Theorem putnam_1999_a5 3 | (p : (nat -> R) -> R -> R := fun a x => sum_n (fun i => a i * x ^ i) 1999) 4 | : exists (c: R), forall (a: nat -> R), Rabs (p a 0) <= c * RInt (fun x => Rabs (p a x)) (-1) 1. 5 | Proof. Admitted. 6 | -------------------------------------------------------------------------------- /coq/src/putnam_1999_a6.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Theorem putnam_1999_a6 3 | (A : nat -> R := fix a (n: nat) := 4 | match n with 5 | | O => 1 6 | | S O => 2 7 | | S (S O) => 24 8 | | S (S ((S n'') as n') as n) => (6 * (a n) ^ 2 * a n'' - 8 * a n * (a n') ^ 2) / (a n' * a n'') 9 | end) 10 | : forall (n: nat), exists (k: Z), A n = INR (n + 1) * IZR k. 11 | Proof. Admitted. 12 | -------------------------------------------------------------------------------- /coq/src/putnam_1999_b4.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Derive. 2 | Open Scope R_scope. 3 | Theorem putnam_1999_b4 4 | (f: R -> R) 5 | (f_cont : (forall n : nat, (le 1 n /\ le n 3) -> (forall x : R, ex_derive_n f n x)) /\ continuity (Derive_n f 3)) 6 | (f_pos : forall (x: R), f x > 0 /\ (Derive_n f 1) x > 0 /\ (Derive_n f 2) x > 0 /\ (Derive_n f 3) x > 0) 7 | (hf : forall (x: R), (Derive_n f 3) x <= f x) 8 | : forall (x: R), (Derive_n f 1) x < 2 * f x. 9 | Proof. Admitted. 10 | -------------------------------------------------------------------------------- /coq/src/putnam_1999_b6.v: -------------------------------------------------------------------------------- 1 | Require Import Reals List Znumtheory. 2 | Theorem putnam_1999_b6 3 | (A : list Z) 4 | (Age1 : forall (x: Z), In x A -> x > 1) 5 | (hgcd : forall (n: Z), exists (s: Z), In s A /\ (Zis_gcd s n 1 \/ Zis_gcd s n s)) 6 | : exists (s: Z) (t: Z) (p: Z), In s A /\ In t A /\ Zis_gcd s t p /\ prime p. 7 | Proof. Admitted. 8 | -------------------------------------------------------------------------------- /coq/src/putnam_2000_a1.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Definition putnam_2000_a1_solution : R -> (R -> Prop) := (fun A : R => (fun x : R => 0 < x < A ^ 2)). 3 | Theorem putnam_2000_a1 4 | (A: R) 5 | (hA : A > 0) 6 | : forall SS : R, ((exists x : nat -> R, (forall j : nat, x j > 0) /\ Series x = A /\ Series (fun j => (x j) ^ 2) = SS) <-> (putnam_2000_a1_solution A) SS). 7 | Proof. Admitted. 8 | -------------------------------------------------------------------------------- /coq/src/putnam_2000_a2.v: -------------------------------------------------------------------------------- 1 | Require Import Reals. 2 | Open Scope Z. 3 | Theorem putnam_2000_a2 4 | : forall (m: Z), exists (n: Z), n >= m /\ 5 | exists (a1 a2 b1 b2 c1 c2: Z), n = a1*a1 + a2*a2 /\ n+1 = b1*b1 + b2*b2 /\ n+2 = c1*c1 + c2*c2. 6 | Proof. Admitted. 7 | -------------------------------------------------------------------------------- /coq/src/putnam_2000_a4.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Theorem putnam_2000_a4 3 | : ex_finite_lim_seq (fun B : nat => RInt (fun x : R => sin x * sin (x ^ 2)) 0 (INR B)). 4 | Proof. Admitted. 5 | -------------------------------------------------------------------------------- /coq/src/putnam_2000_a6.v: -------------------------------------------------------------------------------- 1 | From mathcomp Require Import all_algebra all_ssreflect. 2 | 3 | Set Implicit Arguments. 4 | Unset Strict Implicit. 5 | Unset Printing Implicit Defensive. 6 | 7 | Local Open Scope ring_scope. 8 | 9 | Theorem putnam_2000_a6 10 | (f : {poly int}) 11 | (a : nat -> int) 12 | (ha0 : a 0%nat = 0) 13 | (ha : forall n : nat, a (n.+1) = f.[a n]) 14 | : (exists m : nat, gt m 0 /\ a m = 0) -> (a 1%nat = 0 \/ a 2%nat = 0). 15 | Proof. Admitted. -------------------------------------------------------------------------------- /coq/src/putnam_2000_b2.v: -------------------------------------------------------------------------------- 1 | Require Import Nat Reals. 2 | Open Scope R. 3 | Theorem putnam_2000_b2 4 | : forall (n m: nat), and (ge n m) (ge m 1) -> exists (c: Z), (INR (gcd m n) / INR n) * Binomial.C n m = IZR c. 5 | Proof. Admitted. 6 | -------------------------------------------------------------------------------- /coq/src/putnam_2000_b4.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Theorem putnam_2000_b4 3 | (f : R -> R) 4 | (hf : forall x : R, f (2*x*x-1) = 2*x*(f x)) 5 | (f_cont : continuity f) 6 | : forall x : R, -1 <= x <= 1 -> f x = 0. 7 | Proof. Admitted. 8 | -------------------------------------------------------------------------------- /coq/src/putnam_2001_a1.v: -------------------------------------------------------------------------------- 1 | Require Import Ensembles RelationClasses. 2 | Theorem putnam_2001_a1 3 | (A : Type) 4 | (op : A->A->A) 5 | (hop : forall (a b: A), op (op a b) a = b) 6 | : forall (a b: A), op a (op b a) = b. 7 | Proof. Admitted. 8 | -------------------------------------------------------------------------------- /coq/src/putnam_2001_a5.v: -------------------------------------------------------------------------------- 1 | Require Import Nat. 2 | Theorem putnam_2001_a5 3 | : exists! (a n: nat), a > 0 /\ n > 0 /\ a ^ (n + 1) - (a + 1) ^ n = 2001. 4 | Proof. Admitted. 5 | -------------------------------------------------------------------------------- /coq/src/putnam_2001_b2.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Definition putnam_2001_b2_solution : R -> R -> Prop := (fun x y : R => x = (3 ^ (1 / 5) + 1) / 2 /\ y = (3 ^ (1 / 5) - 1) / 2). 3 | Theorem putnam_2001_b2 4 | (x y : R) 5 | (hx : x <> 0) 6 | (hy : y <> 0) 7 | : (1 / x + 1 / (2 * y) = (x ^ 2 + 3 * y ^ 2) * (3 * x ^ 2 + y ^ 2) /\ 8 | 1 / x - 1 / (2 * y) = 2 * (y ^ 4 - x ^ 4)) <-> putnam_2001_b2_solution x y. 9 | Proof. Admitted. 10 | 11 | -------------------------------------------------------------------------------- /coq/src/putnam_2001_b3.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Definition putnam_2001_b3_solution : R := 3. 3 | Theorem putnam_2001_b3 4 | (closest : nat -> R := (fun n : nat => IZR (floor (sqrt (INR n) + 0.5)))) 5 | : Series (fun n : nat => sum_n_m (fun n' : nat => (Rpower 2 (closest n') + Rpower 2 (-closest n')) / (2 ^ n')) 1 n) = putnam_2001_b3_solution. 6 | Proof. Admitted. 7 | -------------------------------------------------------------------------------- /coq/src/putnam_2001_b5.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Theorem putnam_2001_b5 3 | (a b: R) 4 | (g: R -> R) 5 | (hab : 0 < a < 1/2 /\ 0 < b < 1/2) 6 | (gcont : continuity g) 7 | (hg : forall (x: R), g (g x) = a * g x + b * x) 8 | : exists c : R, forall x : R, g x = c * x. 9 | Proof. Admitted. 10 | -------------------------------------------------------------------------------- /coq/src/putnam_2002_b3.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Open Scope R. 3 | Theorem putnam_2002_b3 4 | : forall (n: nat), gt n 1 -> let n := INR n in 1 / (2 * n * exp 1) < 1 / (exp 1) - Rpower (1 - 1 / n) n < 1 / (n * (exp 1)). 5 | Proof. Admitted. 6 | -------------------------------------------------------------------------------- /coq/src/putnam_2003_a3.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Definition putnam_2003_a3_solution := 2 * sqrt 2 - 1. 3 | Theorem putnam_2003_a3 4 | (f : R -> R := fun x => Rabs (sin x + cos x + tan x + 1 / tan x + 1 / cos x + 1 / sin x)) 5 | : (exists x : R, f x = putnam_2003_a3_solution) /\ (forall x : R, f x >= putnam_2003_a3_solution). 6 | Proof. Admitted. 7 | -------------------------------------------------------------------------------- /coq/src/putnam_2003_a4.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Theorem putnam_2003_a4 3 | (a b c A B C: R) 4 | (ha : a <> 0) 5 | (hA : A <> 0) 6 | (hp : forall (x: R), Rabs (a * x ^ 2 + b * x + c) <= Rabs (A * x ^ 2 + B * x + C)) 7 | : Rabs (b ^ 2 - 4 * a * c) <= Rabs (B ^ 2 - 4 * A * C). 8 | Proof. Admitted. 9 | -------------------------------------------------------------------------------- /coq/src/putnam_2003_b3.v: -------------------------------------------------------------------------------- 1 | From mathcomp Require Import all_algebra all_ssreflect. 2 | 3 | Set Implicit Arguments. 4 | Unset Strict Implicit. 5 | Unset Printing Implicit Defensive. 6 | 7 | Local Open Scope nat_scope. 8 | 9 | Theorem putnam_2003_b3 10 | (n : nat) 11 | : n `! = \prod_(1 <= i < n.+1) (foldl (fun x y => lcmn x y) 1%nat (iota 1 (n%/i))). 12 | Proof. Admitted. -------------------------------------------------------------------------------- /coq/src/putnam_2003_b6.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Theorem putnam_2003_b6 3 | (f : R -> R) 4 | (hf : continuity f) 5 | : RInt (fun x => RInt (fun y => Rabs (f x + f y)) 0 1) 0 1 >= RInt (fun x => Rabs (f x)) 0 1. 6 | Proof. Admitted. 7 | -------------------------------------------------------------------------------- /coq/src/putnam_2004_a3.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Theorem putnam_2004_a3 3 | (u : nat -> R) 4 | (hubase : u O = 1 /\ u (S O) = 1 /\ u (S (S O)) = 1) 5 | (hudet : forall n : nat, u n * u (Nat.add n 3) - u (Nat.add n 1) * u (Nat.add n 2) = INR (fact n)) 6 | : forall n : nat, exists m : Z, u n = IZR m. 7 | Proof. Admitted. 8 | -------------------------------------------------------------------------------- /coq/src/putnam_2004_a6.v: -------------------------------------------------------------------------------- 1 | Require Import Basics Reals Coquelicot.Coquelicot. 2 | Theorem putnam_2004_a6 3 | (f: R -> R -> R) 4 | (hf : forall x y : R, (0 <= x <= 1 /\ 0 <= y <= 1) -> continuity_2d_pt f x y) 5 | : RInt (fun y => (RInt (fun x => f x y) 0 1)^2) 0 1 + RInt (fun x => (RInt (fun y => f x y) 0 1)^2) 0 1 <= 6 | (RInt (fun x => RInt (fun y => f x y) 0 1) 0 1) ^ 2 + RInt (fun x => RInt (fun y => (f x y) ^ 2) 0 1) 0 1. 7 | Proof. Admitted. 8 | -------------------------------------------------------------------------------- /coq/src/putnam_2004_b1.v: -------------------------------------------------------------------------------- 1 | Require Import Nat Reals QArith Coquelicot.Coquelicot. 2 | Theorem putnam_2004_b1 3 | (c : nat -> Z) 4 | (n : nat) 5 | (r : Q) 6 | (Preq0 : sum_n (fun i => IZR (c i) * (Q2R r) ^ i) n = 0) 7 | : forall i : nat, lt i n -> exists m : Z, IZR m = sum_n (fun j => IZR (c (sub n j)) * (Q2R r) ^ (i + 1 - j)) i. 8 | Proof. Admitted. 9 | -------------------------------------------------------------------------------- /coq/src/putnam_2004_b2.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Theorem putnam_2004_b2 3 | (m n : nat) 4 | (mnpos : gt m 0 /\ gt n 0) 5 | : INR (fact (m + n)) / INR (m + n) ^ (m + n) < INR (fact m) / INR m ^ m * INR (fact n) / INR n ^ n. 6 | Proof. Admitted. 7 | -------------------------------------------------------------------------------- /coq/src/putnam_2005_a5.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Definition putnam_2005_a5_solution := PI * ln 2 / 8. 3 | Theorem putnam_2005_a5 4 | : RInt (fun x => ln (x + 1) / (x ^ 2 + 1)) 0 1 = putnam_2005_a5_solution. 5 | Proof. Admitted. 6 | -------------------------------------------------------------------------------- /coq/src/putnam_2005_b3.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | 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. 3 | Theorem putnam_2005_b3 4 | (f : R -> R) 5 | (hf : forall x : R, x > 0 -> f x > 0) 6 | (hf' : forall x : R, x > 0 -> ex_derive f x) 7 | : (exists a : R, a > 0 /\ forall x : R, x > 0 -> Derive f (a / x) = x / f x) <-> putnam_2005_b3_solution f. 8 | Proof. Admitted. 9 | -------------------------------------------------------------------------------- /coq/src/putnam_2007_b1.v: -------------------------------------------------------------------------------- 1 | Require Import Nat Reals Coquelicot.Coquelicot. From mathcomp Require Import div. 2 | Theorem putnam_2007_b1 3 | (c: nat -> nat) 4 | (n: nat) 5 | (hn : gt n 0) 6 | (k: nat) 7 | (f : nat -> R := fun x => sum_n (fun i => INR (mul (c i) (x ^ i))) (k + 1)) 8 | : forall (x: nat), gt (c x) 0 -> 9 | Z.to_nat (floor (f n)) %| Z.to_nat (floor (f (Z.to_nat (floor (f n + 1))))) = true <-> n = 1%nat. 10 | Proof. Admitted. 11 | -------------------------------------------------------------------------------- /coq/src/putnam_2007_b3.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Definition putnam_2007_b3_solution := let a := (1 + sqrt 5) / 2 in (2 ^ 2006 / sqrt 5) * (a ^ 3997 - Rpower a (-3997)). 3 | Theorem putnam_2007_b3 4 | (X := fix x (n: nat) := 5 | match n with 6 | | O => 1 7 | | S n' => 3 * x n' + IZR (floor (x n' * sqrt 5)) 8 | end) 9 | : X 2007%nat = putnam_2007_b3_solution. 10 | Proof. Admitted. 11 | -------------------------------------------------------------------------------- /coq/src/putnam_2008_a1.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Theorem putnam_2008_a1 3 | (f : R -> R -> R) 4 | (hf : forall (x y z: R), f x y + f y z + f z x = 0) 5 | : exists (g: R -> R), forall (x y: R), f x y = g x - g y. 6 | Proof. Admitted. 7 | -------------------------------------------------------------------------------- /coq/src/putnam_2008_a4.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Definition putnam_2008_a4_solution := False. 3 | Theorem putnam_2008_a4 4 | (f : R -> R) 5 | (hf : forall (x : R), f x = (if (Rle_dec x (exp 1)) then x else x * f (ln x))) 6 | : ex_lim_seq (fun nInc => sum_n_m (fun n => 1 / f (INR n)) 1 nInc) <-> putnam_2008_a4_solution. 7 | Proof. Admitted. 8 | -------------------------------------------------------------------------------- /coq/src/putnam_2008_b2.v: -------------------------------------------------------------------------------- 1 | Require Import Factorial Reals Coquelicot.Coquelicot. 2 | Definition putnam_2008_b2_solution := -1. 3 | Theorem putnam_2008_b2 4 | (f := fix F (n: nat) (x: R) := 5 | match n with 6 | | O => ln x 7 | | S n' => RInt (fun t => F n' t) 0 x 8 | end) 9 | : Lim_seq (fun n => INR (fact n) * f n 1 / ln (INR n)) = putnam_2008_b2_solution. 10 | Proof. Admitted. 11 | -------------------------------------------------------------------------------- /coq/src/putnam_2009_a1.v: -------------------------------------------------------------------------------- 1 | Require Import Reals GeoCoq.Main.Tarski_dev.Ch16_coordinates_with_functions. 2 | Context `{T2D:Tarski_2D} `{TE:@Tarski_euclidean Tn TnEQD}. 3 | Open Scope R. 4 | Definition putnam_2009_a1_solution := True. 5 | Theorem putnam_2009_a1 6 | : (forall f: Tpoint -> R, 7 | (forall (A B C D: Tpoint), Square A B C D -> 8 | f A + f B + f C + f D = 0) -> 9 | forall (P : Tpoint), f P = 0) <-> 10 | putnam_2009_a1_solution. 11 | Proof. Admitted. 12 | -------------------------------------------------------------------------------- /coq/src/putnam_2009_a4.v: -------------------------------------------------------------------------------- 1 | Require Import Ensembles QArith. 2 | Definition putnam_2009_a4_solution := False. 3 | Theorem putnam_2009_a4 4 | : (forall (E: Ensemble Q), (E 0 /\ forall (q: Q), (E q -> E (q + 1) /\ E (q - 1)) /\ (E q /\ q <> 0 /\ q <> 1 -> E (1 / (q * (q - 1))))) -> forall (q: Q), E q) <-> putnam_2009_a4_solution. 5 | Proof. Admitted. 6 | -------------------------------------------------------------------------------- /coq/src/putnam_2009_b1.v: -------------------------------------------------------------------------------- 1 | From mathcomp Require Import ssrbool seq ssrnat prime rat ssralg ssrnum ssrint. 2 | 3 | Local Open Scope ring_scope. 4 | 5 | Theorem putnam_2009_b1 : 6 | let fact_prod (ls : seq nat) : rat := \prod_(i <- ls) (i`!)%:Q in 7 | forall q : rat, q > 0 -> exists n d : seq nat, 8 | all prime (n ++ d) /\ fact_prod n / fact_prod d = q. 9 | Proof. Admitted. -------------------------------------------------------------------------------- /coq/src/putnam_2009_b5.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Theorem putnam_2009_b5 3 | (f: R -> R) 4 | (hf : forall (x: R), 1 < x -> (ex_derive f x /\ Derive f x = (x ^ 2 - (f x) ^ 2) / (x ^ 2 * ((f x) ^ 2 + 1)))) 5 | : is_lim f p_infty p_infty. 6 | Proof. Admitted. 7 | -------------------------------------------------------------------------------- /coq/src/putnam_2010_a2.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Definition putnam_2010_a2_solution (f: R -> R) := exists (c d: R), f = (fun x => c * x + d). 3 | Theorem putnam_2010_a2 4 | (f: R -> R) 5 | : (forall (x: R) (n: nat), gt n 0 -> ex_derive f x /\ Derive f x = (f (x + (INR n)) - f x) / (INR n)) <-> putnam_2010_a2_solution f. 6 | Proof. Admitted. 7 | -------------------------------------------------------------------------------- /coq/src/putnam_2010_a4.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Znumtheory. 2 | Open Scope Z. 3 | Theorem putnam_2010_a4 4 | : forall (n: Z), n > 0 -> ~ prime (10^(10^(10^n)) + 10^(10^n) + 10^n - 1). 5 | Proof. Admitted. 6 | -------------------------------------------------------------------------------- /coq/src/putnam_2010_a6.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Theorem putnam_2010_a6 3 | (f: R -> R) 4 | (hf : (forall (x: R), x >= 0 -> (forall (y: R), x < y -> f x > f y) /\ continuity_pt f x) /\ is_lim f p_infty 0) 5 | : ~ ex_finite_lim (fun nInc => RInt (fun x => (f x - f (x + 1)) / f x) 0 nInc) p_infty. 6 | Proof. Admitted. 7 | -------------------------------------------------------------------------------- /coq/src/putnam_2010_b1.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Definition putnam_2010_b1_solution := False. 3 | Theorem putnam_2010_b1 4 | : (exists (a: nat -> R), forall (m: nat), gt m 0 -> Series (fun i => (a i) ^ m) = (INR m)) <-> putnam_2010_b1_solution. 5 | Proof. Admitted. 6 | -------------------------------------------------------------------------------- /coq/src/putnam_2010_b5.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Definition putnam_2010_b5_solution := False. 3 | Theorem putnam_2010_b5 4 | : (exists (f: R -> R), forall (x y: R), (x < y -> f x < f y) /\ ex_derive f x /\ Derive f x = f (f x)) <-> putnam_2010_b5_solution. 5 | Proof. Admitted. 6 | -------------------------------------------------------------------------------- /coq/src/putnam_2011_a3.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | (* Note: There may be multiple possible correct answers. *) 3 | Definition putnam_2011_a3_solution := (-1, 2 / PI). 4 | Theorem putnam_2011_a3 5 | : let (c, L) := putnam_2011_a3_solution in L > 0 /\ is_lim_seq (fun r => (Rpower (INR r) c * RInt (fun x => x ^ r * sin x) 0 (PI / 2)) / (RInt (fun x => x ^ r * cos x) 0 (PI / 2))) L. 6 | Proof. Admitted. 7 | -------------------------------------------------------------------------------- /coq/src/putnam_2011_b1.v: -------------------------------------------------------------------------------- 1 | Require Import Reals ZArith Coquelicot.Coquelicot. 2 | Theorem putnam_2011_b1 3 | : forall (h k: Z), Z.gt h 0 /\ Z.gt k 0 -> forall (ep: R), ep > 0 -> exists (m n: Z), Z.gt m 0 /\ Z.gt n 0 /\ ep < Rabs (IZR h * sqrt (IZR m) - IZR k * sqrt (IZR n)) < 2 * ep. 4 | Proof. Admitted. 5 | -------------------------------------------------------------------------------- /coq/src/putnam_2011_b3.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Definition putnam_2011_b3_solution := True. 3 | Theorem putnam_2011_b3 4 | : (forall (f g : R -> R), g 0 <> 0 /\ continuity_pt g 0 /\ ex_derive (fun x : R => f x * g x) 0 /\ ex_derive (fun x : R => f x / g x) 0 -> ex_derive f 0) <-> putnam_2011_b3_solution. 5 | Proof. Admitted. 6 | -------------------------------------------------------------------------------- /coq/src/putnam_2011_b5.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Theorem putnam_2011_b5 3 | (a: nat -> R) 4 | (ha : exists (A: R), forall (n: nat), exists (L : R), is_lim_seq (fun nInc => (RInt (fun x => (sum_n_m (fun i => 1 / (1 + (x - a i) ^ 2)) 1 n) ^ 2) (-1 * INR nInc) (INR nInc))) L /\ L <= A * INR n) 5 | : exists (B: R), B > 0 /\ forall (n: nat), sum_n_m (fun i => (sum_n_m (fun j => 1 + (a i - a j) ^ 2)) 1 n) 1 n >= B * INR n ^ 3. 6 | Proof. Admitted. 7 | -------------------------------------------------------------------------------- /coq/src/putnam_2011_b6.v: -------------------------------------------------------------------------------- 1 | Require Import Nat List Factorial Ensembles Finite_sets Reals Znumtheory ZArith Coquelicot.Coquelicot. 2 | Open Scope nat_scope. 3 | Theorem putnam_2011_b6 4 | (p: nat) 5 | (hp : prime (Z.of_nat p) /\ odd p = true) 6 | : exists (E: Ensemble nat), (forall (n: nat), E n -> lt n p) /\ cardinal nat E ((p + 1) / 2) /\ 7 | forall (n: nat), E n -> Z.to_nat (floor (sum_n (fun k => INR (fact k * n ^ k)) (p - 1))) mod p <> 0. 8 | Proof. Admitted. 9 | -------------------------------------------------------------------------------- /coq/src/putnam_2012_b4.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Lim_seq. 2 | Open Scope R. 3 | Definition putnam_2012_b4_solution := True. 4 | Theorem putnam_2012_b4 5 | (A := fix a (n: nat) : R := 6 | match n with 7 | | O => 1 8 | | S n' => a n' + Rpower (exp 1) ((-1) * a n') 9 | end) 10 | (B : nat -> R := fun n => A n - ln (INR n)) 11 | : ex_finite_lim_seq B <-> putnam_2012_b4_solution. 12 | Proof. Admitted. -------------------------------------------------------------------------------- /coq/src/putnam_2013_a3.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Theorem putnam_2013_a3 3 | (a: nat -> R) 4 | (x: R) 5 | (n: nat) 6 | (hx : 0 < x < 1) 7 | (ha : sum_n (fun i => a i / (1 - x ^ (i + 1))) n = 0) 8 | : exists (y: R), 0 < y < 1 /\ sum_n (fun i => a i * y ^ i) n = 0. 9 | Proof. Admitted. 10 | -------------------------------------------------------------------------------- /coq/src/putnam_2014_a1.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Factorial Znumtheory Coquelicot.Derive. 2 | Theorem putnam_2014_a1 3 | (f : R -> R := fun x => (1 - x + x^2) * (exp x)) 4 | (hf : forall x : R, forall n : nat, ex_derive_n f n x) 5 | (coeff : nat -> R := fun i => Derive_n f i 0 / INR (fact i)) 6 | (n : nat) 7 | (hcoeff : coeff n <> 0) 8 | : exists a b: Z, b <> 0%Z /\ coeff n = IZR a / IZR b /\ Zis_gcd a b 1 /\ (a = 1%Z \/ prime a). 9 | Proof. Admitted. 10 | -------------------------------------------------------------------------------- /coq/src/putnam_2014_b4.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Open Scope C. 3 | Theorem putnam_2014_b4 4 | (n : nat) 5 | (npos : ge n 0) 6 | (P : C -> C := fun r => sum_n (fun k => (2 * ((INR k) * (INR n - INR k)) * r ^ k)) n) 7 | : forall r : C, P r = 0 -> (exists (t : R), r = RtoC t). 8 | Proof. Admitted. 9 | -------------------------------------------------------------------------------- /coq/src/putnam_2016_a3.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.RInt Coquelicot.Hierarchy. 2 | Definition putnam_2016_a3_solution := 3 * PI / 8. 3 | Theorem putnam_2016_a3 4 | (f: R -> R) 5 | (hf : forall x : R, x <> 0 -> f x + f (1 - 1/x) = atan x) 6 | : RInt f 0 1 = putnam_2016_a3_solution. 7 | Proof. Admitted. 8 | -------------------------------------------------------------------------------- /coq/src/putnam_2016_b1.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Definition putnam_2016_b1_solution := 1. 3 | Theorem putnam_2016_b1 4 | (x : nat -> R := fix x (n: nat) := 5 | match n with 6 | | O => 1 7 | | S n' => ln (exp (x n') - x n') 8 | end) 9 | : Series x = putnam_2016_b1_solution. 10 | Proof. Admitted. 11 | -------------------------------------------------------------------------------- /coq/src/putnam_2016_b5.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Rpower. 2 | Open Scope R. 3 | Definition putnam_2016_b5_solution : (R -> R) -> Prop := fun f => exists (c: R), c > 0 /\ forall (x: R), x > 1 -> f x = Rpower x c . 4 | Theorem putnam_2016_b5 5 | (f : R -> R) 6 | (fle : Prop := (forall x : R, x > 1 -> f x > 1) /\ (forall x y : R, (x > 1 /\ y > 1 /\ x*x <= y <= x*x*x) -> ((f x) * (f x) <= f y <= (f x) * (f x) * (f x)))) 7 | : fle <-> putnam_2016_b5_solution f. 8 | Proof. Admitted. -------------------------------------------------------------------------------- /coq/src/putnam_2016_b6.v: -------------------------------------------------------------------------------- 1 | Require Import List Reals Coquelicot.Hierarchy Coquelicot.Series. 2 | Definition putnam_2016_b6_solution := 1. 3 | Theorem putnam_2016_b6: 4 | Series (fun k => (-1)^k/(INR k+1) * Series (fun n => 1/(INR k*(2^n)+1))) = putnam_2016_b6_solution. 5 | Proof. Admitted. 6 | -------------------------------------------------------------------------------- /coq/src/putnam_2017_b3.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Series. 2 | Open Scope R_scope. 3 | Theorem putnam_2017_b3 4 | (c : nat -> R) 5 | (hc : forall n, c n = 0 \/ c n = 1) 6 | : Series (fun n => c n * (2/3)^n) = 3/2 -> (~ exists a b: Z, b <> 0%Z /\ (Series (fun n => c n * (1/2)^n)) = IZR a / IZR b). 7 | Proof. Admitted. 8 | -------------------------------------------------------------------------------- /coq/src/putnam_2017_b4.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Definition putnam_2017_b4_solution := (ln 2 / ln 10) ^ 2. 3 | Theorem putnam_2017_b4 4 | : Lim_seq (fun n => sum_n (fun k => let k := INR k in (3 * ln (4 * k + 2) / (4 * k + 2) - ln (4 * k + 3) / (4 * k + 3) - ln (4 * k + 4) / (4 * k + 4) - ln (4 * k + 5) / (4 * k + 5))) n) = putnam_2017_b4_solution . 5 | Proof. Admitted. 6 | -------------------------------------------------------------------------------- /coq/src/putnam_2018_a5.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Derive. 2 | Open Scope R_scope. 3 | Theorem putnam_2018_a5 4 | (f: R -> R) 5 | (h0 : f 0 = 0) 6 | (h1 : f 1 = 1) 7 | (hpos : forall x : R, f x >= 0) 8 | (hf : forall x : R, forall n : nat, ex_derive_n f n x) 9 | : exists (n : nat) (x : R), gt n 0 /\ Derive_n f n x < 0. 10 | Proof. Admitted. 11 | -------------------------------------------------------------------------------- /coq/src/putnam_2018_b2.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. From Coqtail Require Import Cpow. 2 | Open Scope C_scope. 3 | Theorem putnam_2018_b2 4 | (n : nat) 5 | (hn : gt n 0) 6 | (f : nat -> C -> C) 7 | (hf : forall z : C, f n z = sum_n_m (fun i => (((RtoC (INR n)) - (RtoC (INR i))) * z ^ i)) 0 (n-1)) 8 | : forall (z : C), Cnorm z <= 1 -> f n z <> 0. 9 | Proof. Admitted. 10 | -------------------------------------------------------------------------------- /coq/src/putnam_2018_b3.v: -------------------------------------------------------------------------------- 1 | Require Import Nat Ensembles. From mathcomp Require Import div seq ssrnat ssrbool. 2 | Definition putnam_2018_b3_solution := fun n => n = 2^2 \/ n = 2^4 \/ n = 2^16 \/ n = 2^(256). 3 | Theorem putnam_2018_b3 4 | (E : Ensemble nat := fun n => n > 0 /\ (n < 10^(100)) /\ (n %| 2^n) /\ ((n-1) %| (2^n-1)) /\ ((n-2) %| (2^n-2))) 5 | : E = putnam_2018_b3_solution. 6 | Proof. Admitted. 7 | -------------------------------------------------------------------------------- /coq/src/putnam_2018_b6.v: -------------------------------------------------------------------------------- 1 | Require Import Nat List Ensembles Finite_sets Reals. 2 | Theorem putnam_2018_b6 3 | (E: Ensemble (list nat) := fun l => length l = 2018 /\ 4 | forall (n: nat), (List.In n l) -> (n = 1 \/ n = 2 \/ n = 3 \/ n = 4 \/ n = 5 \/ n = 6 \/ n = 10) /\ 5 | fold_left Nat.add l 0 = 3860 6 | ) 7 | (n : nat) 8 | : cardinal (list nat) E n -> Rle (INR n) (Rmult (Rpower 2 3860) (Rpower (Rdiv (INR 2018) (INR 2048)) 2018)). 9 | Proof. Admitted. 10 | -------------------------------------------------------------------------------- /coq/src/putnam_2019_a1.v: -------------------------------------------------------------------------------- 1 | Require Import ZArith Ensembles Coquelicot.Coquelicot. 2 | Open Scope Z. 3 | Definition putnam_2019_a1_solution : Ensemble Z := fun n => Z.ge n 0 /\ n mod 9 <> 3 /\ n mod 9 <> 6. 4 | Theorem putnam_2019_a1 5 | (A : Ensemble Z) 6 | (hA : forall (n: Z), A n <-> exists (A B C: Z), A >= 0 /\ B >= 0 /\ C >= 0 /\ A ^ 3 + B ^ 3 + C ^ 3 - 3 * A * B * C = n) 7 | : A = putnam_2019_a1_solution. 8 | Proof. Admitted. 9 | -------------------------------------------------------------------------------- /coq/src/putnam_2019_b2.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Definition putnam_2019_b2_solution := 8 / PI ^ 3. 3 | Theorem putnam_2019_b2 4 | (a : nat -> R := fun n => sum_n_m (fun k => let k := INR k in let n := INR n in (sin (2 * (k + 1) * PI / (2 * n))) / ((cos ((k - 1) * PI / (2 * n))) ^ 2 * (cos ((k * PI) / (2 * n))) ^ 2)) 1 (n - 1)) 5 | : Lim_seq (fun n => a n / INR n ^ 3) = putnam_2019_b2_solution. 6 | Proof. Admitted. 7 | -------------------------------------------------------------------------------- /coq/src/putnam_2020_a2.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Definition putnam_2020_a2_solution := fun k => 4 ^ k. 3 | Theorem putnam_2020_a2 4 | : (fun k => sum_n (fun j => 2 ^ (k - j) * Binomial.C (k + j) j) k) = putnam_2020_a2_solution. 5 | Proof. Admitted. 6 | -------------------------------------------------------------------------------- /coq/src/putnam_2020_a3.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Definition putnam_2020_a3_solution := False. 3 | Theorem putnam_2020_a3 4 | (a : nat -> R := fix a (n: nat) := 5 | match n with 6 | | O => PI / 2 7 | | S n' => sin (a n') 8 | end) 9 | : ex_lim_seq (fun n => (a n) ^ 2) <-> putnam_2020_a3_solution. 10 | Proof. Admitted. 11 | -------------------------------------------------------------------------------- /coq/src/putnam_2020_b5.v: -------------------------------------------------------------------------------- 1 | From mathcomp Require Import fintype seq ssrbool. Require Import Reals Coquelicot.Complex. 2 | Open Scope C. 3 | Theorem putnam_2020_b5 4 | (z1 z2 z3 z4 : C) 5 | (hznorm : Cmod z1 = 1%R /\ Cmod z2 = 1%R /\ Cmod z3 = 1%R /\ Cmod z4 = 1%R) 6 | (hzne : z1 <> RtoC 1 /\ z2 <> RtoC 1 /\ z3 <> RtoC 1 /\ z4 <> RtoC 1) 7 | : RtoC 3 - z1 - z2 - z3 - z4 + z1 * z2 * z3 * z4 <> RtoC 0. 8 | Proof. Admitted. 9 | -------------------------------------------------------------------------------- /coq/src/putnam_2020_b6.v: -------------------------------------------------------------------------------- 1 | Require Import Reals. From Coquelicot Require Import Coquelicot Hierarchy Rcomplements. 2 | Open Scope R. 3 | Theorem putnam_2020_b6 4 | (A : nat -> R := fun k => (-1)^(Z.to_nat (floor (INR k * (sqrt 2 - 1))))) 5 | (B : nat -> R := fun n => sum_n_m A 1 n) 6 | : forall (n: nat), B n >= 0. 7 | Proof. Admitted. -------------------------------------------------------------------------------- /coq/src/putnam_2021_a4.v: -------------------------------------------------------------------------------- 1 | Require Import Reals Coquelicot.Coquelicot. 2 | Definition putnam_2021_a4_solution := (sqrt 2 / 2) * PI * ln 2 / ln 10. 3 | Theorem putnam_2021_a4 4 | (I : nat -> R := fun r => RInt (fun x => RInt (fun y => (1 + 2 * x ^ 2) / (1 + x ^ 4 + 6 * x ^ 2 * y ^ 2 + y ^ 4) - (1 + y ^ 2) / (2 + x ^ 4 + y ^ 4)) 0 (sqrt (INR r ^ 2 - x ^ 2))) 0 r) 5 | : Lim_seq I = putnam_2021_a4_solution. 6 | Proof. Admitted. 7 | -------------------------------------------------------------------------------- /coq/src/putnam_2023_b5.v: -------------------------------------------------------------------------------- 1 | Require Import PeanoNat. From mathcomp Require Import div fintype perm ssrbool. 2 | Definition putnam_2023_b5_solution (n : nat) := n = 1 \/ n mod 4 = 2. 3 | Theorem putnam_2023_b5 4 | (p : nat -> Prop := fun n => forall m : nat, coprime m n -> exists (π: {perm 'I_n}), forall (k: 'I_n), nat_of_ord (π (π k)) = (m*(nat_of_ord k))%%n) 5 | : forall n : nat, (n > 0 /\ p n) <-> putnam_2023_b5_solution n. 6 | Proof. Admitted. -------------------------------------------------------------------------------- /docs/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_store 2 | .idea 3 | -------------------------------------------------------------------------------- /isabelle/README.md: -------------------------------------------------------------------------------- 1 | The Isabelle formalizations largely rely on the HOL Library, and are present in a problem-per-file format by default. 2 | 3 | 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 Isabelle to write a proof. We do not believe this will be the case for many problems, but please do let us know if you have particular feedback on this or with any other concerns. 4 | -------------------------------------------------------------------------------- /isabelle/putnam_1962_a1.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1962_a1 imports Complex_Main 2 | "HOL-Analysis.Finite_Cartesian_Product" 3 | "HOL-Analysis.Convex" 4 | begin 5 | 6 | theorem putnam_1962_a1: 7 | fixes S :: "(real^2) set" 8 | assumes hS : "card S = 5" 9 | and hnoncol : "\ s \ S. card s = 3 \ \collinear s" 10 | shows "\ T \ S. card T = 4 \ \(\ t \ T. t \ convex hull (T - {t}))" 11 | sorry 12 | 13 | end -------------------------------------------------------------------------------- /isabelle/putnam_1962_a5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1962_a5 imports Complex_Main 2 | begin 3 | 4 | definition putnam_1962_a5_solution :: "nat \ nat" where "putnam_1962_a5_solution \ undefined" 5 | (* \ n :: nat. n * (n + 1) * 2^(n - 2) *) 6 | theorem putnam_1962_a5: 7 | shows "\ n \ 2. putnam_1962_a5_solution n = (\ k \ {1..n}. (n choose k) * k^2)" 8 | sorry 9 | 10 | end -------------------------------------------------------------------------------- /isabelle/putnam_1962_b1.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1962_b1 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1962_b1: 5 | fixes p :: "nat \ real \ real" 6 | and x y :: real 7 | and n :: nat 8 | assumes h0 : "p 0 = (\ x :: real. 1)" 9 | and hp : "\ n > 0. p n = (\ x :: real. \ i \ {0..n-1}. (x - i))" 10 | shows "p n (x + y) = (\ k \ {0..n}. (n choose k) * (p k x) * (p (n - k) y))" 11 | sorry 12 | 13 | end -------------------------------------------------------------------------------- /isabelle/putnam_1962_b2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1962_b2 imports Complex_Main 2 | begin 3 | 4 | (* Note: Uses nat set instead of set of positive integers, the problem is the same *) 5 | theorem putnam_1962_b2: 6 | shows "\ f :: real \ nat set. \ a b :: real. (a < b \ (f a \ f b))" 7 | sorry 8 | 9 | end -------------------------------------------------------------------------------- /isabelle/putnam_1962_b5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1962_b5 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1962_b5: 5 | fixes n :: "int" 6 | assumes ng1 : "n > 1" 7 | shows "(3 * (real_of_int n) + 1) / (2 * n + 2) < (\ i \ {1..n}. (((real_of_int i) / n) powr (real_of_int n))) \ 8 | (\ i \ {1..n}. (((real_of_int i) / n) powr (real_of_int n))) < 2" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_1963_a2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1963_a2 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1963_a2: 5 | fixes f::"nat\nat" 6 | assumes hfpos : "\n. f n > 0" 7 | and hfinc : "strict_mono_on {1..} f" 8 | and hf2 : "f 2 = 2" 9 | and hfmn : "\m n. m > 0 \ n > 0 \ coprime m n \ f (m * n) = f m * f n" 10 | shows "\n > 0. f n = n" 11 | sorry 12 | 13 | end -------------------------------------------------------------------------------- /isabelle/putnam_1963_b1.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1963_b1 imports Complex_Main "HOL-Computational_Algebra.Polynomial" 2 | begin 3 | 4 | definition putnam_1963_b1_solution::int where "putnam_1963_b1_solution \ undefined" 5 | (* 2 *) 6 | theorem putnam_1963_b1: 7 | shows "\a::int. ([: (real_of_int a), -1, 1 :] dvd ([: 90, 1 :] + monom 1 13)) \ a = putnam_1963_b1_solution" 8 | sorry 9 | 10 | end -------------------------------------------------------------------------------- /isabelle/putnam_1963_b5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1963_b5 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1963_b5: 5 | fixes a::"int\real" 6 | assumes haineq : "\n \ 1. \k::int. (n \ k \ k \ 2 * n) \ (0 \ a k \ a k \ 100 * a n)" 7 | and haseries : "summable a" 8 | shows "(\n. n * a n) \ 0" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_1964_b3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1964_b3 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1964_b3: 5 | fixes f :: "real \ real" 6 | assumes hf: "continuous_on UNIV f \ (\\::real>0. filterlim (\n::nat. f (n*\)) (nhds 0) at_top)" 7 | shows "filterlim f (nhds 0) at_top" 8 | sorry 9 | 10 | end 11 | -------------------------------------------------------------------------------- /isabelle/putnam_1964_b5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1964_b5 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1964_b5: 5 | fixes a :: "nat \ nat" 6 | and b :: "nat \ nat" 7 | assumes ha: "strict_mono a \ (\n::nat. a n > 0)" 8 | and hb: "b 0 = a 0 \ (\n::nat. b (n+1) = lcm (b n) (a (n+1)))" 9 | shows "summable (\n::nat. 1 / b n)" 10 | sorry 11 | 12 | end 13 | -------------------------------------------------------------------------------- /isabelle/putnam_1965_a2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1965_a2 imports 2 | Complex_Main 3 | begin 4 | 5 | theorem putnam_1965_a2: 6 | shows "\ n > 0. (\ r = 0 .. (n - 1) div 2. ((n - 2 * r) * (n choose r) / n) ^ 2) = ((2 * n - 2) choose (n - 1)) / n" 7 | sorry 8 | 9 | end -------------------------------------------------------------------------------- /isabelle/putnam_1965_b3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1965_b3 imports 2 | Complex_Main 3 | begin 4 | 5 | theorem putnam_1965_b3: 6 | shows "card {(a :: int, b :: int, c :: int). a > 0 \ a \ b \ c > 0 \ a ^ 2 + b ^ 2 = c ^ 2 \ a * b / 2 = 2 * (a + b + c)} = 3" 7 | sorry 8 | 9 | end -------------------------------------------------------------------------------- /isabelle/putnam_1966_a1.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1966_a1 imports 2 | Complex_Main 3 | begin 4 | 5 | theorem putnam_1966_a1: 6 | fixes f :: "int \ int" 7 | defines "f \ \ n :: int. \ m = 0..n. (if even m then m div 2 else (m - 1) div 2)" 8 | shows "\ x y :: int. (x > 0 \ y > 0 \ x > y) \ x * y = f (x + y) - f (x - y)" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_1966_a3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1966_a3 imports 2 | Complex_Main 3 | begin 4 | 5 | theorem putnam_1966_a3: 6 | fixes x :: "nat \ real" 7 | assumes hx1: "0 < x 1 \ x 1 < 1" 8 | and hxi: "\ n \ 1. x (n + 1) = x n * (1 - x n)" 9 | shows "(\ n. n * x n) \ 1" 10 | sorry 11 | 12 | end -------------------------------------------------------------------------------- /isabelle/putnam_1966_a4.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1966_a4 imports 2 | Complex_Main 3 | begin 4 | 5 | theorem putnam_1966_a4: 6 | fixes a :: "nat \ int" 7 | assumes ha1: "a 1 = 2" 8 | and hai: "\ n \ 1. a (n + 1) = (if (\ m :: int. m ^ 2 = a n + 1) then a n + 2 else a n + 1)" 9 | shows "\ n \ 1. a n = n + round (sqrt n)" 10 | sorry 11 | 12 | end -------------------------------------------------------------------------------- /isabelle/putnam_1966_a6.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1966_a6 imports 2 | Complex_Main 3 | begin 4 | 5 | theorem putnam_1966_a6: 6 | fixes a :: "nat \ nat \ real" 7 | assumes ha: "\ n \ 1. a n n = n \ (\ m \ 1. m < n \ a n m = m * sqrt (1 + a n (m + 1)))" 8 | shows "(\ n. a n 1) \ 3" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_1966_b2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1966_b2 imports 2 | Complex_Main 3 | begin 4 | 5 | theorem putnam_1966_b2: 6 | fixes S :: "int \ int set" 7 | defines "S \ \ n :: int. {n, n + 1, n + 2, n + 3, n + 4, n + 5, n + 6, n + 7, n + 8, n + 9}" 8 | shows "\ n :: int. n > 0 \ (\ k \ S n. \ m \ S n. k \ m \ coprime m k)" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_1966_b3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1966_b3 imports 2 | Complex_Main 3 | begin 4 | 5 | theorem putnam_1966_b3: 6 | fixes p :: "nat \ real" 7 | assumes hpos: "\ n :: nat. p n > 0" 8 | and hconv: "convergent (\ m. \ n = 1..m. 1 / p n)" 9 | shows "convergent (\ m. \ n = 1..m. (p n) * n ^ 2 / (\ i = 1..n. p i) ^ 2)" 10 | sorry 11 | 12 | end -------------------------------------------------------------------------------- /isabelle/putnam_1966_b6.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1966_b6 imports 2 | Complex_Main 3 | "HOL-Analysis.Derivative" 4 | begin 5 | 6 | theorem putnam_1966_b6: 7 | fixes y :: "real \ real" 8 | assumes hy: "y differentiable_on UNIV \ (deriv y) differentiable_on UNIV" 9 | and diffeq: "\ x :: real. (deriv (deriv y)) x + (exp x) * (y x) = 0" 10 | shows "\ r s N :: real. \ x > N. r \ y x \ y x \ s" 11 | sorry 12 | 13 | end -------------------------------------------------------------------------------- /isabelle/putnam_1967_a4.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1967_a4 imports Complex_Main 2 | "HOL-Analysis.Interval_Integral" 3 | begin 4 | 5 | theorem putnam_1967_a4: 6 | fixes lambda :: real 7 | assumes hlambda: "lambda > 1/2" 8 | shows "\(\u::real\real. \x::real\{0..1}. u x = 1 + lambda * (interval_lebesgue_integral lebesgue x 1 (\y::real. u y * u (y - x))))" 9 | sorry 10 | 11 | end 12 | -------------------------------------------------------------------------------- /isabelle/putnam_1967_a5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1967_a5 imports Complex_Main 2 | "HOL-Analysis.Lebesgue_Measure" 3 | begin 4 | 5 | theorem putnam_1967_a5: 6 | fixes R :: "(real^2) set" 7 | assumes hR : "convex R \ emeasure lebesgue R > pi / 4" 8 | shows "\ P \ R. \ Q \ R. dist P Q = 1" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_1967_b5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1967_b5 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1967_b5: 5 | fixes n :: "nat" 6 | assumes hn : "n > 0" 7 | shows "1/(2 :: real) = (\ i \ {0::nat.. x. x ^ 4 * (1 - x) ^ 4 / (1 + x ^ 2))" 8 | sorry 9 | 10 | end -------------------------------------------------------------------------------- /isabelle/putnam_1968_a3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1968_a3 imports 2 | Complex_Main 3 | begin 4 | 5 | theorem putnam_1968_a3: 6 | shows "\ l :: ('a::finite) set list. l!0 = {} \ (\ S :: 'a set. \! i \ {0 ..< length l}. l!i = S) \ 7 | (\ i \ {0 ..< length l - 1}. \ a :: 'a. (a \ l!i \ l!(i+1) = insert a (l!i)) \ (a \ l!(i+1) \ l!i = insert a (l!(i+1))))" 8 | sorry 9 | 10 | end -------------------------------------------------------------------------------- /isabelle/putnam_1969_a4.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1969_a4 imports Complex_Main 2 | "HOL-Analysis.Interval_Integral" 3 | begin 4 | 5 | theorem putnam_1969_a4: 6 | shows "filterlim (\n::int. (\i::int=1..n. (-1) powi (i+1) * i powi (-i))) (nhds (interval_lebesgue_integral lebesgue 0 1 (\x::real. x powr x))) at_top" 7 | sorry 8 | 9 | end 10 | -------------------------------------------------------------------------------- /isabelle/putnam_1969_a6.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1969_a6 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1969_a6: 5 | fixes x :: "nat \ real" 6 | and y :: "nat \ real" 7 | assumes hy1: "\n::nat\2. y n = x (n-1) + 2*(x n)" 8 | and hy2: "\c::real. filterlim y (nhds c) at_top" 9 | shows "\C::real. filterlim x (nhds C) at_top" 10 | sorry 11 | 12 | end 13 | -------------------------------------------------------------------------------- /isabelle/putnam_1969_b1.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1969_b1 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1969_b1: 5 | fixes n :: nat 6 | assumes hnpos: "n > 0" 7 | and hn: "24 dvd (n + 1)" 8 | shows "24 dvd (\ {d::nat. d dvd n})" 9 | sorry 10 | 11 | end 12 | -------------------------------------------------------------------------------- /isabelle/putnam_1969_b3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1969_b3 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1969_b3: 5 | fixes T :: "nat \ real" 6 | assumes hT1: "\n::nat. (n \ 1 \ (T n) * (T (n+1)) = n)" 7 | and hT2: "filterlim (\n::nat. (T n) / (T (n+1))) (nhds 1) at_top" 8 | shows "pi*(T 1)^2 = 2" 9 | sorry 10 | 11 | end 12 | -------------------------------------------------------------------------------- /isabelle/putnam_1970_a2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1970_a2 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1970_a2: 5 | fixes A B C D E F G :: "real" 6 | assumes hle : "B^2 - 4*A*C < 0" 7 | shows "\ \ > 0. \ (\ x y :: real. x^2 + y^2 \ 0 \ x^2 + y^2 < \^2 \ 8 | A*x^2 + B*x*y + C*y^2 + D*x^3 + E*x^2*y+ F*x*y^2 + G*y^3 = 0)" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_1970_a4.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1970_a4 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1970_a4: 5 | fixes x :: "nat \ real" 6 | assumes hxlim: "filterlim (\n::nat. x n - x (n-2)) (nhds 0) at_top" 7 | shows "filterlim (\n::nat. (x n - x (n-1)) / n) (nhds 0) at_top" 8 | sorry 9 | 10 | end 11 | -------------------------------------------------------------------------------- /isabelle/putnam_1970_b1.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1970_b1 imports Complex_Main 2 | begin 3 | 4 | definition putnam_1970_b1_solution :: real where "putnam_1970_b1_solution \ undefined" 5 | (* exp (2*ln 5 - 4 + 2*arctan 2) *) 6 | theorem putnam_1970_b1: 7 | shows "filterlim (\n::nat. 1/(n^4) * (\i::nat=1..(2*n). (n^2 + i^2) powr (1/n))) (nhds putnam_1970_b1_solution) at_top" 8 | sorry 9 | 10 | end 11 | -------------------------------------------------------------------------------- /isabelle/putnam_1970_b2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1970_b2 imports Complex_Main 2 | "HOL-Analysis.Derivative" 3 | "HOL-Computational_Algebra.Polynomial" 4 | begin 5 | 6 | theorem putnam_1970_b2: 7 | fixes T :: "real" 8 | and H :: "real poly" 9 | assumes hT : "T > 0" 10 | and hH : "degree H \ 3" 11 | shows "(poly H (-T/sqrt 3) + poly H (T/sqrt 3))/2 = 1/(2*T) * (interval_lebesgue_integral lebesgue (-T) T (poly H))" 12 | sorry 13 | 14 | end -------------------------------------------------------------------------------- /isabelle/putnam_1970_b3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1970_b3 imports Complex_Main 2 | "HOL-Analysis.Finite_Cartesian_Product" 3 | begin 4 | 5 | theorem putnam_1970_b3: 6 | fixes S :: "(real^2) set" 7 | and a b :: real 8 | assumes hab: "a < b" 9 | and hS: "\s\S. s$1 \ {a<..s\S. y = s$2)}" 12 | sorry 13 | 14 | end 15 | -------------------------------------------------------------------------------- /isabelle/putnam_1971_a2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1971_a2 imports Complex_Main 2 | "HOL-Computational_Algebra.Polynomial" 3 | begin 4 | 5 | definition putnam_1971_a2_solution :: "(real poly) set" where "putnam_1971_a2_solution \ undefined" 6 | (* {monom 1 1} *) 7 | theorem putnam_1971_a2: 8 | shows "\P::real poly. ((poly P 0 = 0 \ (\x::real. poly P (x^2 + 1) = (poly P x)^2 + 1)) \ P \ putnam_1971_a2_solution)" 9 | sorry 10 | 11 | end 12 | -------------------------------------------------------------------------------- /isabelle/putnam_1971_a6.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1971_a6 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1971_a6: 5 | fixes c :: real 6 | assumes hc: "\n::nat. (n > 0 \ (\m::int. n powr c = m))" 7 | shows "\m::int. c = m" 8 | sorry 9 | 10 | end 11 | -------------------------------------------------------------------------------- /isabelle/putnam_1971_b3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1971_b3 imports Complex_Main 2 | "HOL-Analysis.Lebesgue_Measure" 3 | begin 4 | 5 | theorem putnam_1971_b3: 6 | fixes T :: "real" 7 | assumes hT : "T > 0" 8 | shows "emeasure lebesgue {t :: real. t \ T \ \t\ = 2 * \t - T\} = 1" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_1971_b6.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1971_b6 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1971_b6: 5 | fixes \ :: "nat \ nat" 6 | defines "\ \ (\n::nat. (GREATEST t::nat. odd t \ t dvd n))" 7 | shows "\x::nat. (x > 0 \ \(\i::nat=1..x. (\ i)/(i :: real)) - 2*x/3\ < 1)" 8 | sorry 9 | 10 | end 11 | -------------------------------------------------------------------------------- /isabelle/putnam_1972_a5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1972_a5 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1972_a5: 5 | fixes n :: nat 6 | assumes hn: "n > 1" 7 | shows "\(n dvd (2^n - 1))" 8 | sorry 9 | 10 | end 11 | -------------------------------------------------------------------------------- /isabelle/putnam_1972_b3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1972_b3 imports Complex_Main 2 | "HOL-Algebra.Group" 3 | begin 4 | 5 | theorem putnam_1972_b3: 6 | fixes G (structure) 7 | and A B :: 'a 8 | assumes Ggroup: "group G" 9 | and abinG: "A \ carrier G \ B \ carrier G" 10 | and hab: "A\B\A = B\A[^]2\B \ A[^]3 = \ \ (\n::nat. n > 0 \ B[^](2*n-1) = \)" 11 | shows "B = \" 12 | sorry 13 | 14 | end 15 | -------------------------------------------------------------------------------- /isabelle/putnam_1972_b4.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1972_b4 imports Complex_Main 2 | "HOL-Computational_Algebra.Polynomial" 3 | begin 4 | 5 | theorem putnam_1972_b4: 6 | fixes n :: nat 7 | assumes hn: "n > 1" 8 | shows "\P::int poly poly poly. \x::int. x = poly (poly (poly P (monom (monom (x + x^(n+2)) 0) 0)) (monom (x^(n+1)) 0)) (x^n)" 9 | sorry 10 | 11 | end 12 | -------------------------------------------------------------------------------- /isabelle/putnam_1973_a3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1973_a3 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1973_a3: 5 | fixes b :: "nat \ real" 6 | defines "b \ (\n::nat. (LEAST knk::real. (\k::int>0. knk = k + n/k)))" 7 | shows "\n::nat. (n > 0 \ \b n\ = \sqrt (4*n + 1)\)" 8 | sorry 9 | 10 | end 11 | -------------------------------------------------------------------------------- /isabelle/putnam_1973_a4.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1973_a4 imports Complex_Main 2 | begin 3 | 4 | definition putnam_1973_a4_solution :: nat where "putnam_1973_a4_solution \ undefined" 5 | (* 3 *) 6 | theorem putnam_1973_a4: 7 | fixes f :: "real \ real" 8 | defines "f \ (\x::real. 2 powr x - 1 - x^2)" 9 | shows "putnam_1973_a4_solution = card {x::real. (f x = 0)}" 10 | sorry 11 | 12 | end 13 | -------------------------------------------------------------------------------- /isabelle/putnam_1973_b2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1973_b2 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1973_b2: 5 | fixes z :: complex 6 | assumes hzrat: "\q1 q2::rat. Re z = q1 \ Im z = q2" 7 | and hznorm: "norm z = 1" 8 | shows "\n::int. (\q::rat. norm (z powi (2*n) - 1) = q)" 9 | sorry 10 | 11 | end 12 | -------------------------------------------------------------------------------- /isabelle/putnam_1973_b3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1973_b3 imports Complex_Main 2 | "HOL-Computational_Algebra.Primes" 3 | begin 4 | 5 | theorem putnam_1973_b3: 6 | fixes p :: nat 7 | assumes pgt1: "p > 1" 8 | and hprime: "\x::int\{0..!triple::int\int\int. let (a,b,c) = triple in (b^2 - 4*a*c = 1 - 4*p \ 0 < a \ a \ c \ -a \ b \ b < a)" 10 | sorry 11 | 12 | end 13 | -------------------------------------------------------------------------------- /isabelle/putnam_1974_b2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1974_b2 imports 2 | Complex_Main 3 | "HOL-Analysis.Derivative" 4 | begin 5 | 6 | theorem putnam_1974_b2: 7 | fixes y :: "real \ real" 8 | assumes ycontdiff: "y C1_differentiable_on UNIV" 9 | and limy: "((\ x :: real. (deriv y x) ^ 2 + (y x) ^ 3) \ 0) at_top" 10 | shows "(y \ 0) at_top \ ((deriv y) \ 0) at_top" 11 | sorry 12 | 13 | end -------------------------------------------------------------------------------- /isabelle/putnam_1974_b3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1974_b3 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1974_b3: 5 | fixes \ :: real 6 | assumes ha: "cos (pi*\) = 1/3" 7 | shows "\ \ \" 8 | sorry 9 | 10 | end 11 | -------------------------------------------------------------------------------- /isabelle/putnam_1974_b5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1974_b5 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1974_b5: 5 | shows "\n::nat\0. (\i::nat=0..n. (n^i)/(fact i)) > (exp n)/2" 6 | sorry 7 | 8 | end 9 | -------------------------------------------------------------------------------- /isabelle/putnam_1975_b5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1975_b5 imports Complex_Main "HOL-Analysis.Derivative" 2 | begin 3 | 4 | theorem putnam_1975_b5: 5 | fixes f::"nat\real\real" 6 | assumes h0 : "\x::real. f 0 x = exp x" 7 | and hf : "\n::nat. \x::real. f (n+1) x = x * (deriv (f n) x)" 8 | shows "(\n::nat. (f n 1) / (fact n)) = exp (exp 1)" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_1975_b6.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1975_b6 imports 2 | Complex_Main 3 | begin 4 | 5 | theorem putnam_1975_b6: 6 | fixes s :: "nat \ real" 7 | defines "s \ \ n. \ i = 1 .. n. 1 / i" 8 | shows "(\ n :: nat. n > 1 \ n * (n + 1) powr (1 / n) < n + s n) \ (\ n :: nat. n > 2 \ (n - 1) * n powr (-1 / n - 1) < n - s n)" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_1976_b5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1976_b5 imports Complex_Main 2 | begin 3 | 4 | definition putnam_1976_b5_solution::"nat\(real \ real)" where "putnam_1976_b5_solution \ undefined" 5 | (* \n. \x. fact n *) 6 | theorem putnam_1976_b5: 7 | shows "\n::nat. (\x. (\k=0..n. ((-1)^k * (n choose k)) * (x - k)^n)) = putnam_1976_b5_solution n" 8 | sorry 9 | 10 | end -------------------------------------------------------------------------------- /isabelle/putnam_1977_a5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1977_a5 imports Complex_Main "HOL-Number_Theory.Cong" 2 | begin 3 | 4 | theorem putnam_1977_a5: 5 | fixes p m n::nat 6 | assumes hp : "prime p" 7 | and hmgen : "m \ n" 8 | shows "[(p*m) choose (p * n) = m choose n] (mod p)" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_1977_b1.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1977_b1 imports Complex_Main 2 | begin 3 | 4 | definition putnam_1977_b1_solution::real where "putnam_1977_b1_solution \ undefined" 5 | (* 2/3 *) 6 | theorem putnam_1977_b1: 7 | shows "(\N. \n=2..N. (n^3 - 1) / (n^3 + 1)) \ putnam_1977_b1_solution" 8 | sorry 9 | 10 | end -------------------------------------------------------------------------------- /isabelle/putnam_1977_b5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1977_b5 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1977_b5: 5 | fixes n :: "nat" 6 | and a :: "nat \ real" 7 | and A :: "real" 8 | assumes hn : "n > 1" 9 | and hA : "A + (\ i \ {1..n}. (a i)^2) < 1/(real n - 1) * (\ i \ {1..n}. a i)^2" 10 | shows "\ i \ {1 :: nat..n}. \ j \ {1 :: nat..n}. i < j \ A < 2 * (a i) * (a j)" 11 | sorry 12 | 13 | end -------------------------------------------------------------------------------- /isabelle/putnam_1978_a1.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1978_a1 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1978_a1: 5 | fixes S T :: "nat set" 6 | defines "S \ {k :: nat. \ j :: nat \ 33. k = 3 * j + 1}" 7 | assumes hT : "T \ S \ card T = 20" 8 | shows "\ m \ T. \ n \ T. m \ n \ m + n = 104" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_1978_a5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1978_a5 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1978_a5: 5 | fixes n :: "nat" 6 | and \ :: "real" 7 | and a :: "nat \ real" 8 | defines "\ \ (\ i \ {1..n}. a i)/(real n)" 9 | assumes npos : "n > 0" 10 | and ha : "\ i :: nat. a i \ {0 :: real<.. i \ {1..n}. sin (a i) / (a i)) \ (sin \ / \)^n" 12 | sorry 13 | 14 | end -------------------------------------------------------------------------------- /isabelle/putnam_1978_b2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1978_b2 imports Complex_Main 2 | begin 3 | 4 | definition putnam_1978_b2_solution :: "rat" where 5 | "putnam_1978_b2_solution \ undefined" 6 | (* (rat_of_nat 7)/4 *) 7 | theorem putnam_1978_b2: 8 | shows "(\ i \ {1 :: nat..}. (\ j \ {1 :: nat..}. (rat_of_nat 1)/(rat_of_nat (i^2 * j + 2 * i * j + i * j^2)))) = putnam_1978_b2_solution" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_1978_b4.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1978_b4 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1978_b4: 5 | shows "\N::real. \ a b c d::int. a > N \ b > N \ c > N \ d > N \ a^2 + b^2 + c^2 + d^2 = a*b*c + a*b*d + a*c*d + b*c*d" 6 | sorry 7 | 8 | end -------------------------------------------------------------------------------- /isabelle/putnam_1978_b6.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1978_b6 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1978_b6: 5 | fixes a::"nat\nat\real" and m n::nat 6 | assumes ha : "\i j. a i j \ {0..1::real}" 7 | and mnpos : "m > 0 \ n > 0" 8 | shows "(\i=1..n. (\j=1..m*i. a i j / i))^2 \ 2 * m * (\i=1..n. (\j=1..m*i. a i j))" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_1979_a6.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1979_a6 imports 2 | Complex_Main 3 | begin 4 | 5 | theorem putnam_1979_a6: 6 | fixes n :: nat 7 | and p :: "nat \ real" 8 | assumes hp: "\ i \ {1..n}. p i \ {0..1}" 9 | shows "\ x \ {0..1}. (\ i \ {1..n}. x \ p i) \ (\ i = 1..n. 1 / \x - p i\) \ 8 * n * (\ i = 1..n. 1 / (2 * i - 1))" 10 | sorry 11 | 12 | end -------------------------------------------------------------------------------- /isabelle/putnam_1979_b6.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1979_b6 imports Complex_Main 2 | begin 3 | 4 | (* Note: Problem dimension boosted from Fin n *) 5 | theorem putnam_1979_b6: 6 | fixes n :: "nat" 7 | and z :: "nat \ complex" 8 | shows "\Re (csqrt (\ i \ {1::nat..n}. (z i)^2))\ \ (\ i \ {1..n}. \Re (z i)\)" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_1980_a3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1980_a3 imports 2 | Complex_Main 3 | "HOL-Analysis.Interval_Integral" 4 | begin 5 | 6 | definition putnam_1980_a3_solution :: real where "putnam_1980_a3_solution \ undefined" 7 | (* pi / 4 *) 8 | theorem putnam_1980_a3: 9 | shows "interval_lebesgue_integral lebesgue 0 (pi / 2) (\ x :: real. 1 / (1 + (tan x) powr (sqrt 2))) = putnam_1980_a3_solution" 10 | sorry 11 | 12 | end -------------------------------------------------------------------------------- /isabelle/putnam_1980_b1.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1980_b1 imports 2 | Complex_Main 3 | begin 4 | 5 | definition putnam_1980_b1_solution :: "real set" where "putnam_1980_b1_solution \ undefined" 6 | (* {c :: real. c \ 1 / 2} *) 7 | theorem putnam_1980_b1: 8 | fixes c :: real 9 | shows "(\ x :: real. (exp x + exp (-x)) / 2 \ exp (c * x ^ 2)) \ c \ putnam_1980_b1_solution" 10 | sorry 11 | 12 | end -------------------------------------------------------------------------------- /isabelle/putnam_1981_b1.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1981_b1 imports Complex_Main 2 | begin 3 | 4 | definition putnam_1981_b1_solution::real where "putnam_1981_b1_solution \ undefined" 5 | (* -1 *) 6 | theorem putnam_1981_b1: 7 | fixes f::"nat\real" 8 | defines "f \ \n. 1/n^5 * (\h=1..n. (\k=1..n. (5*h^4 -18*h^2*k^2 + 5*k^4)))" 9 | shows "f \ putnam_1981_b1_solution" 10 | sorry 11 | 12 | end -------------------------------------------------------------------------------- /isabelle/putnam_1981_b3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1981_b3 imports Complex_Main "HOL-Computational_Algebra.Primes" 2 | begin 3 | 4 | theorem putnam_1981_b3: 5 | fixes P::"nat\bool" 6 | defines "P \ \n. \p::nat. (prime p \ p dvd (n^2 + 3)) \ (\k::nat. k^2 < n \ p dvd (k^2 + 3))" 7 | shows "\n::nat. \m::nat. m > n \ P m" 8 | sorry 9 | 10 | end -------------------------------------------------------------------------------- /isabelle/putnam_1982_a3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1982_a3 imports Complex_Main 2 | "HOL-Analysis.Interval_Integral" 3 | 4 | begin 5 | 6 | definition putnam_1982_a3_solution :: "real" where 7 | "putnam_1982_a3_solution \ undefined" 8 | (* (pi / 2) * ln pi *) 9 | theorem putnam_1982_a3: 10 | shows "filterlim (\ t :: real. (interval_lebesgue_integral lebesgue 0 t (\ x. (arctan (pi * x) - arctan x)/x))) (nhds putnam_1982_a3_solution) at_top" 11 | sorry 12 | 13 | end -------------------------------------------------------------------------------- /isabelle/putnam_1982_a5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1982_a5 imports Complex_Main 2 | 3 | begin 4 | 5 | theorem putnam_1982_a5: 6 | fixes a b c d :: "nat" 7 | assumes hpos : "a > 0 \ b > 0 \ c > 0 \ d > 0" 8 | and hac : "a + c \ 1982" 9 | and hfrac : "(real a) / b + (real c) / d < 1" 10 | shows "(1 - (real a)/b - (real c)/d) > 1 / 1983^3" 11 | sorry 12 | 13 | end -------------------------------------------------------------------------------- /isabelle/putnam_1983_a1.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1983_a1 imports Complex_Main 2 | begin 3 | 4 | definition putnam_1983_a1_solution :: "nat" where "putnam_1983_a1_solution \ undefined" 5 | (* 2301 *) 6 | theorem putnam_1983_a1: 7 | shows "card {n :: nat. n > 0 \ (n dvd 10^40 \ n dvd 20^30)} = putnam_1983_a1_solution" 8 | sorry 9 | end -------------------------------------------------------------------------------- /isabelle/putnam_1983_a3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1983_a3 imports Complex_Main 2 | "HOL-Number_Theory.Cong" 3 | begin 4 | 5 | theorem putnam_1983_a3: 6 | fixes p :: "nat" 7 | and F :: "nat \ nat" 8 | defines "F \ \ n::nat. (\ i=0..(p-2). ((i + 1) * n^i))" 9 | assumes hp : "odd p \ prime p" 10 | shows "\ a b :: nat. ((a < p \ b < p \ a \ b) \ \([F a = F b] (mod p)))" 11 | sorry 12 | 13 | end -------------------------------------------------------------------------------- /isabelle/putnam_1983_a4.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1983_a4 imports Complex_Main 2 | 3 | begin 4 | 5 | theorem putnam_1983_a4: 6 | fixes k m :: "nat" 7 | and S :: "int" 8 | defines "m \ 6*k-1" 9 | and "S \ \ j::nat \ {1..2*k-1}. (-1)^(j+1) * (m choose (3 * j -1))" 10 | assumes kpos : "k > 0" 11 | shows "S \ 0" 12 | sorry 13 | 14 | end -------------------------------------------------------------------------------- /isabelle/putnam_1983_a5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1983_a5 imports Complex_Main 2 | 3 | begin 4 | 5 | definition putnam_1983_a5_solution :: "bool" where 6 | "putnam_1983_a5_solution \ undefined" 7 | (* True *) 8 | theorem putnam_1983_a5: 9 | shows "putnam_1983_a5_solution \ (\ \ :: real. \ > 0 \ (\ n :: nat. n > 0 \ even (\\^n\ - n)))" 10 | sorry 11 | 12 | end -------------------------------------------------------------------------------- /isabelle/putnam_1983_b4.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1983_b4 imports Complex_Main 2 | 3 | begin 4 | 5 | theorem putnam_1983_b4: 6 | fixes a f :: "nat \ nat" 7 | defines "f \ \ n :: nat. n + (nat \sqrt (real n)\)" 8 | assumes ha0 : "a 0 > 0" 9 | and han : "\ n :: nat. a (n + 1) = f (a n)" 10 | shows "\ i :: nat. \ s :: nat. a i = s^2" 11 | sorry 12 | 13 | end -------------------------------------------------------------------------------- /isabelle/putnam_1984_a2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1984_a2 imports Complex_Main 2 | begin 3 | 4 | definition putnam_1984_a2_solution :: "rat" where "putnam_1984_a2_solution \ undefined" 5 | (* 2 *) 6 | theorem putnam_1984_a2: 7 | shows "(\ (k :: nat) \ {1..}. 6^k/((3^(k+1) - 2^(k+1))*(3^k - 2^k))) = putnam_1984_a2_solution" 8 | sorry 9 | 10 | end -------------------------------------------------------------------------------- /isabelle/putnam_1985_b3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1985_b3 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1985_b3: 5 | fixes a::"nat\nat\nat" 6 | assumes apos : "\m n::nat. a m n > 0" 7 | and ha : "\k::nat. k > 0 \ card {(m::nat, n::nat). m > 0 \ n > 0 \ a m n = k} = 8" 8 | shows "\m n::nat. m > 0 \ n > 0 \ a m n > m * n" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_1986_a1.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1986_a1 imports Complex_Main 2 | begin 3 | 4 | definition putnam_1986_a1_solution::real where "putnam_1986_a1_solution \ undefined" 5 | (* 18 *) 6 | theorem putnam_1986_a1: 7 | fixes f::"real\real" 8 | defines "f \ \x. x^3 - 3 * x" 9 | shows "putnam_1986_a1_solution = (GREATEST y. (\x. y = f x \ x^4 + 36 \ 13 * x^2))" 10 | sorry 11 | 12 | end 13 | -------------------------------------------------------------------------------- /isabelle/putnam_1986_a2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1986_a2 imports Complex_Main 2 | begin 3 | 4 | definition putnam_1986_a2_solution::nat where "putnam_1986_a2_solution \ undefined" 5 | (* 3 *) 6 | theorem putnam_1986_a2: 7 | shows "putnam_1986_a2_solution = \(10^20000) / (10^100 + 3)\ mod 10" 8 | sorry 9 | 10 | end 11 | -------------------------------------------------------------------------------- /isabelle/putnam_1986_a3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1986_a3 imports Complex_Main 2 | begin 3 | 4 | definition putnam_1986_a3_solution::real where "putnam_1986_a3_solution \ undefined" 5 | (* pi / 2 *) 6 | theorem putnam_1986_a3: 7 | fixes arccot::"real\real" 8 | defines "arccot \ \y. (THE x. 0 < x \ x \ pi/2 \ cot x = y)" 9 | shows "(\n::nat. arccot (n^2 + n + 1)) = putnam_1986_a3_solution" 10 | sorry 11 | 12 | end 13 | -------------------------------------------------------------------------------- /isabelle/putnam_1986_b1.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1986_b1 imports Complex_Main 2 | begin 3 | 4 | definition putnam_1986_b1_solution :: "real" where "putnam_1986_b1_solution \ undefined" 5 | (* 2 / 5 *) 6 | theorem putnam_1986_b1: 7 | fixes b h :: "real" 8 | assumes hbh : "b > 0 \ h > 0 \ b^2 + h^2 = 2^2" 9 | and areaeq : "b*h = 0.5 * b * (1 - h/2)" 10 | shows "h = putnam_1986_b1_solution" 11 | sorry 12 | 13 | end -------------------------------------------------------------------------------- /isabelle/putnam_1987_b1.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1987_b1 imports Complex_Main "HOL-Analysis.Interval_Integral" 2 | begin 3 | 4 | definition putnam_1987_b1_solution::real where "putnam_1987_b1_solution \ undefined" 5 | (* 1 *) 6 | theorem putnam_1987_b1: 7 | shows "putnam_1987_b1_solution = 8 | interval_lebesgue_integral lebesgue 2 4 (\x. sqrt (ln (9-x)) / (sqrt (ln (9-x)) + sqrt (ln (x+3))))" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_1987_b2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1987_b2 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1987_b2: 5 | fixes r s t::nat 6 | assumes hsum : "r + s \ t" 7 | shows "(\i=0..s. (s choose i) / (t choose (r+i))) = (t+1) / ((t+1-s) * ((t-s) choose r))" 8 | sorry 9 | 10 | end -------------------------------------------------------------------------------- /isabelle/putnam_1987_b3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1987_b3 imports Complex_Main 2 | "HOL-Algebra.Ring" 3 | begin 4 | 5 | theorem putnam_1987_b3: 6 | fixes F :: "'f :: field" 7 | assumes hF : "(1 :: 'f) + 1 \ 0" 8 | shows "{(x :: 'f, y :: 'f). x^2 + y^2 = 1} = {(1, 0)} \ {s :: 'f \ 'f. \ r \ {r' :: 'f. r' ^ 2 \ -1}. s = ((r ^ 2 - 1) / (r ^ 2 + 1), (2 * r) / (r ^ 2 + 1))}" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_1988_a3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1988_a3 imports 2 | Complex_Main 3 | begin 4 | 5 | definition putnam_1988_a3_solution :: "real set" where "putnam_1988_a3_solution \ undefined" 6 | (* {x :: real. x > 1 / 2} *) 7 | theorem putnam_1988_a3: 8 | shows "{x :: real. convergent (\ t :: nat. (\ n = 1..t. (1 / n) / sin (1 / n) - 1) powr x)} = putnam_1988_a3_solution" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_1988_a5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1988_a5 imports 2 | Complex_Main 3 | begin 4 | 5 | theorem putnam_1988_a5: 6 | shows "\ f :: real \ real. (\ x > 0. f (f x) = 6 * x - f x \ f x > 0) \ (\ g :: real \ real. (\ x > 0. g (g x) = 6 * x - g x \ g x > 0) \ (\ x > 0. f x = g x))" 7 | sorry 8 | 9 | end -------------------------------------------------------------------------------- /isabelle/putnam_1988_b1.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1988_b1 imports 2 | Complex_Main 3 | begin 4 | 5 | theorem putnam_1988_b1: 6 | shows "\ (a :: int) \ 2. \ (b :: int) \ 2. \ x y z:: int. x > 0 \ y > 0 \ z > 0 \ a * b = x * y + x * z + y * z + 1" 7 | sorry 8 | 9 | end -------------------------------------------------------------------------------- /isabelle/putnam_1988_b2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1988_b2 imports 2 | Complex_Main 3 | begin 4 | 5 | definition putnam_1988_b2_solution :: bool where "putnam_1988_b2_solution \ undefined" 6 | (* True *) 7 | theorem putnam_1988_b2: 8 | shows "(\ x y :: real. (y \ 0 \ y * (y + 1) \ (x + 1) ^ 2) \ y * (y - 1) \ x ^ 2) \ putnam_1988_b2_solution" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_1988_b6.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1988_b6 imports 2 | Complex_Main 3 | begin 4 | 5 | theorem putnam_1988_b6: 6 | fixes trinums :: "int set" 7 | defines "trinums \ {t :: int. \ n :: nat. t = (n * (n + 1)) / 2}" 8 | shows "infinite {(a :: int, b :: int). \ t > 0. (a * t + b) \ trinums \ t \ trinums}" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_1989_a3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1989_a3 imports 2 | Complex_Main 3 | begin 4 | 5 | theorem putnam_1989_a3: 6 | fixes z :: complex 7 | assumes hz: "11 * z ^ 10 + 10 * \ * z ^ 9 + 10 * \ * z - 11 = 0" 8 | shows "norm z = 1" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_1990_b2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1990_b2 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1990_b2: 5 | fixes x z::real and P::"nat\real" 6 | defines "P \ \j. (\i=0..i=1..j. (z - x^i))" 7 | assumes xlt1 : "abs(x) < 1" 8 | and zgt1 : "abs(z) > 1" 9 | shows "1 + (\j::nat. (1 + x^(j+1)) * P (j+1)) = 0" 10 | sorry 11 | 12 | end -------------------------------------------------------------------------------- /isabelle/putnam_1990_b3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1990_b3 imports Complex_Main "HOL-Analysis.Finite_Cartesian_Product" 2 | begin 3 | 4 | theorem putnam_1990_b3: 5 | fixes S::"(nat^2^2) set" 6 | assumes hS : "\A \ S. (\i j :: 2. ((\x::nat. A$i$j = x^2) \ A$i$j \ 200))" 7 | shows "card S > 50387 \ (\A \ S. \B \ S. A \ B \ A ** B = B ** A)" 8 | sorry 9 | 10 | end -------------------------------------------------------------------------------- /isabelle/putnam_1991_b4.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1991_b4 imports 2 | Complex_Main 3 | "HOL-Computational_Algebra.Primes" 4 | "HOL-Number_Theory.Cong" 5 | begin 6 | 7 | theorem putnam_1991_b4: 8 | fixes p :: nat 9 | assumes podd: "odd p" 10 | and pprime: "prime p" 11 | shows "[(\ j = 0 .. p. (p choose j) * ((p + j) choose j)) = 2 ^ p + 1] (mod p ^ 2)" 12 | sorry 13 | 14 | end -------------------------------------------------------------------------------- /isabelle/putnam_1992_a1.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1992_a1 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1992_a1: 5 | fixes f :: "int \ int" 6 | shows "(f = (\n::int. 1 - n)) \ ((\n::int. f (f n) = n) \ (\n::int. f (f (n+2) + 2) = n) \ f 0 = 1)" 7 | sorry 8 | 9 | end 10 | -------------------------------------------------------------------------------- /isabelle/putnam_1992_b2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1992_b2 imports Complex_Main 2 | "HOL-Computational_Algebra.Polynomial" 3 | begin 4 | 5 | theorem putnam_1992_b2: 6 | fixes Q :: "nat \ nat \ nat" 7 | defines "Q \ (\n k::nat. coeff ((monom 1 0 + monom 1 1 + monom 1 2 + monom 1 3)^n) k)" 8 | shows "\n k::nat. Q n k = (\j::nat=0..k. (n choose j) * (if 2 * j \ k then n choose (k - 2*j) else 0))" 9 | sorry 10 | 11 | end 12 | -------------------------------------------------------------------------------- /isabelle/putnam_1993_a2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1993_a2 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1993_a2: 5 | fixes x::"nat\real" 6 | assumes xn0 : "\n::nat. x n \ 0" 7 | and hx : "\n \ 1. (x n)^2 - x (n-1) * x (n+1) = 1" 8 | shows "\a::real. \n \ 1. x (n+1) = a * x n - x (n-1)" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_1994_a1.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1994_a1 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1994_a1: 5 | fixes a :: "nat \ real" 6 | assumes ha: "\n::nat\1. 0 < a n \ a n \ a (2*n) + a (2*n+1)" 7 | shows "filterlim (\N::nat. (\n::nat=1..N. a n)) at_top at_top" 8 | sorry 9 | 10 | end 11 | -------------------------------------------------------------------------------- /isabelle/putnam_1994_a4.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1994_a4 imports Complex_Main 2 | "HOL-Analysis.Finite_Cartesian_Product" 3 | begin 4 | 5 | theorem putnam_1994_a4: 6 | fixes A B :: "int^2^2" 7 | assumes ABinv: "invertible A \ invertible (A + B) \ invertible (A + 2*B) \ invertible (A + 3*B) \ invertible (A + 4*B)" 8 | shows "invertible (A + 5*B)" 9 | sorry 10 | 11 | end 12 | -------------------------------------------------------------------------------- /isabelle/putnam_1994_b5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1994_b5 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1994_b5: 5 | fixes f :: "real \ int \ int" 6 | and n :: nat 7 | assumes hf: "\(\::real)(x::int). f \ x = \\*x\" 8 | and npos: "n > 0" 9 | shows "\\::real. \k::nat\{1..n}. (((f \)^^k) (n^2) = n^2 - k) \ (f (\^k) (n^2) = n^2 - k)" 10 | sorry 11 | 12 | end 13 | -------------------------------------------------------------------------------- /isabelle/putnam_1994_b6.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1994_b6 imports Complex_Main 2 | "HOL-Number_Theory.Cong" 3 | begin 4 | 5 | theorem putnam_1994_b6: 6 | fixes n :: "nat \ int" 7 | assumes hn: "\a::nat. n a = 101*a - 100 * 2^a" 8 | shows "\a::nat\{0..99}. \b::nat\{0..99}. \c::nat\{0..99}. \d::nat\{0..99}. (([n a + n b = n c + n d] (mod 10100)) \ {a, b} = {c, d})" 9 | sorry 10 | 11 | end 12 | -------------------------------------------------------------------------------- /isabelle/putnam_1996_a5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1996_a5 imports Complex_Main 2 | "HOL-Computational_Algebra.Primes" 3 | begin 4 | 5 | theorem putnam_1996_a5: 6 | fixes p k :: "nat" 7 | defines "k \ nat \2 * p / 3\" 8 | assumes hpprime : "prime p" 9 | and hpge3 : "p > 3" 10 | shows "(p^2) dvd (\ i \ {1 :: nat..k}. p choose i)" 11 | sorry 12 | 13 | end -------------------------------------------------------------------------------- /isabelle/putnam_1996_b2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1996_b2 imports 2 | Complex_Main 3 | begin 4 | 5 | theorem putnam_1996_b2: 6 | fixes n :: nat 7 | and prododd :: real 8 | defines "prododd \ \ i \ {1 .. 2 * n - 1}. if odd i then i else 1" 9 | assumes npos: "n > 0" 10 | shows "((2 * n - 1) / exp 1) powr ((2 * n - 1) / 2) < prododd \ prododd < ((2 * n + 1) / exp 1) powr ((2 * n + 1) / 2)" 11 | sorry 12 | 13 | end -------------------------------------------------------------------------------- /isabelle/putnam_1998_a3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1998_a3 imports Complex_Main 2 | "HOL-Analysis.Derivative" 3 | begin 4 | 5 | theorem putnam_1998_a3: 6 | fixes f :: "real \ real" 7 | assumes hf : "\n::nat\{0..2}. ((deriv^^n) f) C1_differentiable_on UNIV" 8 | shows "\ a :: real. f a * deriv f a * (deriv^^2) f a * (deriv^^3) f a \ 0" 9 | sorry 10 | 11 | end 12 | -------------------------------------------------------------------------------- /isabelle/putnam_1998_b1.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1998_b1 imports Complex_Main 2 | begin 3 | 4 | definition putnam_1998_b1_solution::real where "putnam_1998_b1_solution \ undefined" 5 | (* 6 *) 6 | theorem putnam_1998_b1: 7 | shows "putnam_1998_b1_solution = (LEAST y. (\x::real > 0. y = ((x+1/x)^6 - (x^6 + 1/x^6) - 2) / ((x+1/x)^3 + (x^3 + 1/x^3))))" 8 | sorry 9 | 10 | end -------------------------------------------------------------------------------- /isabelle/putnam_1998_b5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1998_b5 imports Complex_Main 2 | begin 3 | 4 | definition putnam_1998_b5_solution::nat where "putnam_1998_b5_solution \ undefined" 5 | (* 1 *) 6 | theorem putnam_1998_b5: 7 | fixes N::nat 8 | defines "N \ (\i=0..<1998. 10^i)" 9 | shows "putnam_1998_b5_solution = (\10^1000 * sqrt N\ mod 10)" 10 | sorry 11 | 12 | end -------------------------------------------------------------------------------- /isabelle/putnam_1998_b6.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1998_b6 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_1998_b6: 5 | fixes a b c :: int 6 | shows "\ n:: int > 0 . sqrt (n^3 + a * n^2 + b * n + c) \ \" 7 | sorry 8 | 9 | end 10 | -------------------------------------------------------------------------------- /isabelle/putnam_1999_a2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1999_a2 imports Complex_Main 2 | "HOL-Computational_Algebra.Polynomial" 3 | begin 4 | 5 | theorem putnam_1999_a2: 6 | fixes p :: "real poly" 7 | assumes hpos : "\x. poly p x \ 0" 8 | shows "\S :: real poly set . finite S \ (\x. poly p x = (\s \ S. (poly s x)^2))" 9 | sorry 10 | 11 | end 12 | -------------------------------------------------------------------------------- /isabelle/putnam_1999_a4.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1999_a4 imports 2 | Complex_Main 3 | begin 4 | 5 | definition putnam_1999_a4_solution :: real where "putnam_1999_a4_solution \ undefined" 6 | (* 9 / 32 *) 7 | theorem putnam_1999_a4: 8 | shows "(\ m :: nat. \ n :: nat. ((m + 1) ^ 2 * (n + 1)) / (3 ^ (m + 1) * ((n + 1) * 3 ^ (m + 1) + (m + 1) * 3 ^ (n + 1)))) = putnam_1999_a4_solution" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_1999_a5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1999_a5 imports 2 | Complex_Main 3 | "HOL-Computational_Algebra.Polynomial" 4 | "HOL-Analysis.Interval_Integral" 5 | begin 6 | 7 | theorem putnam_1999_a5: 8 | shows "\ C :: real. \ p :: real poly. degree p = 1999 \ \poly p 0\ \ C * (interval_lebesgue_integral lebesgue (-1) 1 (\ x. \poly p x\))" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_1999_b6.thy: -------------------------------------------------------------------------------- 1 | theory putnam_1999_b6 imports Complex_Main 2 | "HOL-Computational_Algebra.Primes" 3 | begin 4 | 5 | theorem putnam_1999_b6: 6 | fixes S::"int set" 7 | assumes S_fin: "finite S" 8 | and Sge1: "\s \ S. s > 1" 9 | and hgcd: "\n::int. \s \ S. (gcd s n) = 1 \ (gcd s n) = s" 10 | shows "\ s \ S. \ t \ S. prime (gcd s t)" 11 | sorry 12 | 13 | end 14 | -------------------------------------------------------------------------------- /isabelle/putnam_2000_a2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2000_a2 imports Complex_Main 2 | begin 3 | 4 | definition sum_of_squares:: "int \ bool" where 5 | "sum_of_squares n \ \a b::int. n = a^2 + b^2" 6 | 7 | theorem putnam_2000_a2: 8 | shows "\n :: int. \m::int. m > n \ 9 | sum_of_squares m \ sum_of_squares (m+1) \ sum_of_squares (m+2)" 10 | sorry 11 | 12 | end 13 | -------------------------------------------------------------------------------- /isabelle/putnam_2000_a4.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2000_a4 imports 2 | Complex_Main 3 | "HOL-Analysis.Interval_Integral" 4 | begin 5 | 6 | theorem putnam_2000_a4: 7 | shows "\ y :: real. ((\ B. interval_lebesgue_integral lebesgue 0 B (\ x. sin x * sin (x ^ 2))) \ y) at_top" 8 | sorry 9 | 10 | end -------------------------------------------------------------------------------- /isabelle/putnam_2000_a6.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2000_a6 imports Complex_Main 2 | "HOL-Computational_Algebra.Polynomial" 3 | begin 4 | 5 | theorem putnam_2000_a6: 6 | fixes f :: "int poly" 7 | and a :: "nat \ int" 8 | assumes ha0: "a 0 = 0" 9 | and ha: "\n::nat. a (n + 1) = poly f (a n)" 10 | shows "(\m::nat>0. a m = 0) \ (a 1 = 0 \ a 2 = 0)" 11 | sorry 12 | 13 | end 14 | -------------------------------------------------------------------------------- /isabelle/putnam_2000_b2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2000_b2 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_2000_b2: 5 | shows "\m n::nat. (m \ 1 \ n \ m \ n dvd ((gcd m n) * (n choose m)))" 6 | sorry 7 | 8 | end 9 | -------------------------------------------------------------------------------- /isabelle/putnam_2000_b4.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2000_b4 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_2000_b4: 5 | fixes f :: "real \ real" 6 | assumes hf : "\x::real. f (2 * x^2 - 1) = 2 * x * f x" 7 | and f_cont : "continuous_on UNIV f" 8 | shows "\x::real. x \ -1 \ x \ 1 \ f x = 0" 9 | sorry 10 | 11 | end 12 | -------------------------------------------------------------------------------- /isabelle/putnam_2001_a1.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2001_a1 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_2001_a1: 5 | fixes op :: "'a => 'a => 'a" 6 | assumes hop : "\a b :: 'a. op (op a b) a = b" 7 | shows "\a b :: 'a. op a (op b a) = b" 8 | sorry 9 | 10 | end 11 | -------------------------------------------------------------------------------- /isabelle/putnam_2001_a5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2001_a5 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_2001_a5: 5 | shows "\! (a :: int). \! (n :: nat). a > 0 \ n > 0 \ a^(n+1) - (a+1)^n = 2001" 6 | sorry 7 | 8 | end -------------------------------------------------------------------------------- /isabelle/putnam_2001_b3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2001_b3 imports 2 | Complex_Main 3 | begin 4 | 5 | definition putnam_2001_b3_solution :: real where "putnam_2001_b3_solution \ undefined" 6 | (* 3 *) 7 | theorem putnam_2001_b3: 8 | shows "(\ n :: nat. (2 powr (round (sqrt (n + 1))) + 2 powr (- round (sqrt (n + 1)))) / 2 powr (n + 1)) = putnam_2001_b3_solution" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_2001_b5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2001_b5 imports 2 | Complex_Main 3 | begin 4 | 5 | theorem putnam_2001_b5: 6 | fixes a b :: real 7 | and g :: "real \ real" 8 | assumes abint: "a \ {0 <..< 1 / 2} \ b \ {0 <..< 1 / 2}" 9 | and gcont: "continuous_on UNIV g" 10 | and hg : "\ x :: real. g (g x) = a * g x + b * x" 11 | shows "\ c :: real. \ x :: real. g x = c * x" 12 | sorry 13 | 14 | end -------------------------------------------------------------------------------- /isabelle/putnam_2002_a3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2002_a3 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_2002_a3: 5 | fixes n Tn :: "int" 6 | defines "Tn \ card {S :: int set. S \ {1..n} \ S \ {} \ (\ k :: int. k = (real 1)/(card S) * (\ s \ S. s))}" 7 | assumes hn : "n \ 2" 8 | shows "even (Tn - n)" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_2002_a5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2002_a5 imports 2 | Complex_Main 3 | begin 4 | 5 | theorem putnam_2002_a5: 6 | fixes a :: "nat \ rat" 7 | assumes ha: "a 0 = 1 \ (\ n :: nat. a (2 * n + 1) = a n \ a (2 * n + 2) = a n + a (n + 1))" 8 | shows "\ q :: rat. q > 0 \ q \ {a (n - 1) / a n | n :: nat. n \ 1}" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_2002_b3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2002_b3 imports 2 | Complex_Main 3 | begin 4 | 5 | theorem putnam_2002_b3: 6 | fixes e :: real 7 | and f :: "int \ real" 8 | defines "e \ exp 1" 9 | and "f \ \ n :: int. 1 / e - (1 - 1 / n) powi n" 10 | shows "\ n :: int. n > 1 \ 1 / (2 * n * e) < f n \ f n < 1 / (n * e)" 11 | sorry 12 | 13 | end -------------------------------------------------------------------------------- /isabelle/putnam_2002_b5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2002_b5 imports 2 | Complex_Main 3 | begin 4 | 5 | fun digits :: "nat \ nat \ nat list" where 6 | "digits b n = (if b < 2 then (replicate n 1) else (if n < b then [n] else [n mod b] @ digits b (n div b)))" 7 | theorem putnam_2002_b5: 8 | shows "\ n :: nat. card {b :: nat. b \ 1 \ length (digits b n) = 3 \ digits b n = rev (digits b n)} \ 2002" 9 | sorry 10 | 11 | end 12 | -------------------------------------------------------------------------------- /isabelle/putnam_2003_a2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2003_a2 imports Complex_Main 2 | begin 3 | 4 | (* Note: Boosted domain to infinite set *) 5 | theorem putnam_2003_a2: 6 | fixes n::nat and a b::"nat\real" 7 | assumes npos: "n \ 1" 8 | and abnneg: "\i \ {0.. 0 \ b i \ 0" 9 | shows "((\i=0..i=0.. ((\i=0.. undefined" 5 | (* 2 * sqrt 2 - 1 *) 6 | theorem putnam_2003_a3: 7 | fixes f::"real\real" 8 | defines "f \ \x::real. abs(sin x + cos x + tan x + 1 / tan x + 1 / cos x + 1 / sin x)" 9 | shows "putnam_2003_a3_solution = (LEAST y. \x::real. f x = y)" 10 | sorry 11 | 12 | end -------------------------------------------------------------------------------- /isabelle/putnam_2003_a4.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2003_a4 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_2003_a4: 5 | fixes a b c A B C::real 6 | assumes aAne0 : "a \ 0 \ A \ 0" 7 | and hle : "\x::real. abs(a * x^2 + b * x + c) \ abs(A * x^2 + B * x + C)" 8 | shows "abs(b^2 - 4 * a * c) \ abs(B^2 - 4 * A * C)" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_2003_b1.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2003_b1 imports Complex_Main 2 | "HOL-Computational_Algebra.Polynomial" 3 | begin 4 | 5 | definition putnam_2003_b1_solution :: bool where "putnam_2003_b1_solution \ undefined" 6 | (* False *) 7 | theorem putnam_2003_b1: 8 | shows "(\a b c d::real poly. (\x y::real. 1 + x*y + x^2*y^2 = poly a x * poly c y + poly b x * poly d y)) \ putnam_2003_b1_solution" 9 | sorry 10 | 11 | end 12 | -------------------------------------------------------------------------------- /isabelle/putnam_2003_b3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2003_b3 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_2003_b3: 5 | fixes n::nat 6 | assumes npos : "n > 0" 7 | shows "fact n = (\i=1..n. Lcm {1..\n / i\})" 8 | sorry 9 | 10 | end -------------------------------------------------------------------------------- /isabelle/putnam_2004_a3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2004_a3 imports Complex_Main 2 | "HOL-Analysis.Determinants" 3 | begin 4 | 5 | theorem putnam_2004_a3: 6 | fixes u::"nat\real" 7 | assumes hubase : "u 0 = 1 \ u 1 = 1 \ u 2 = 1" 8 | and hudet : "\n::nat. det (vector[vector[u n, u (n+1)], vector[u (n+2), u (n+3)]]) = fact n" 9 | shows "\n::nat. u n \ \" 10 | sorry 11 | 12 | end 13 | -------------------------------------------------------------------------------- /isabelle/putnam_2004_b2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2004_b2 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_2004_b2: 5 | fixes m n::nat 6 | assumes mnpos : "m > 0 \ n > 0" 7 | shows "fact (m+n) / (m+n)^(m+n) < (fact m / m^m) * (fact n / n^n)" 8 | sorry 9 | 10 | end 11 | -------------------------------------------------------------------------------- /isabelle/putnam_2005_a5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2005_a5 imports Complex_Main 2 | "HOL-Analysis.Lebesgue_Measure" 3 | "HOL-Analysis.Interval_Integral" 4 | begin 5 | 6 | definition putnam_2005_a5_solution :: "real" where "putnam_2005_a5_solution \ undefined" 7 | (* pi * (ln 2) / 8 *) 8 | theorem putnam_2005_a5: 9 | shows "interval_lebesgue_integral lebesgue 0 1 (\ x :: real. (ln (x + 1))/(x^2 + 1)) = putnam_2005_a5_solution" 10 | sorry 11 | 12 | end 13 | -------------------------------------------------------------------------------- /isabelle/putnam_2005_b4.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2005_b4 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_2005_b4: 5 | fixes m n::nat 6 | and f::"nat\nat\nat" 7 | assumes mnpos : "m > 0 \ n > 0" 8 | and hf : "\m' > 0. \n' > 0. f m' n' = card {x::int list. size x = n' \ (\i=0.. m'}" 9 | shows "f m n = f n m" 10 | sorry 11 | 12 | end 13 | -------------------------------------------------------------------------------- /isabelle/putnam_2006_a3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2006_a3 imports 2 | Complex_Main 3 | begin 4 | 5 | theorem putnam_2006_a3: 6 | fixes x :: "nat \ nat" 7 | assumes hxlo: "\ k \ {1 .. 2006}. x k = k" 8 | and hxhi: "\ k \ 2006. x (k + 1) = x k + x (k - 2005)" 9 | shows "\ i :: nat. i > 0 \ (\ j \ {0 ..< 2005}. 2006 dvd x (i + j))" 10 | sorry 11 | 12 | end -------------------------------------------------------------------------------- /isabelle/putnam_2006_b2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2006_b2 imports 2 | Complex_Main 3 | begin 4 | 5 | theorem putnam_2006_b2: 6 | fixes n :: nat 7 | and X :: "real set" 8 | assumes npos: "n > 0" 9 | and hXcard: "finite X \ card X = n" 10 | shows "\ S \ X. (S \ {}) \ (\ m :: int. \m + (\ s \ S. s)\ \ 1 / (n + 1))" 11 | sorry 12 | 13 | end -------------------------------------------------------------------------------- /isabelle/putnam_2007_a5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2007_a5 imports Complex_Main 2 | "HOL-Algebra.Multiplicative_Group" 3 | "HOL-Computational_Algebra.Primes" 4 | begin 5 | 6 | theorem putnam_2007_a5: 7 | fixes G (structure) 8 | and p :: nat 9 | and n :: nat 10 | assumes hG: "group G \ finite (carrier G)" 11 | and hp: "prime p" 12 | and hn: "n \ card {g::'a. g \ carrier G \ (group.ord G) g = p}" 13 | shows "n = 0 \ p dvd (n+1)" 14 | sorry 15 | 16 | end 17 | -------------------------------------------------------------------------------- /isabelle/putnam_2007_b5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2007_b5 imports 2 | Complex_Main 3 | "HOL-Computational_Algebra.Polynomial" 4 | begin 5 | 6 | theorem putnam_2007_b5: 7 | fixes k :: nat 8 | assumes kpos: "k > 0" 9 | shows "\ P :: real poly list. length P = k \ (\ n :: int. \n / k\ ^ k = (\ i = 0..(k - 1). poly (P!i) n * \n / k\ ^ i))" 10 | sorry 11 | 12 | end -------------------------------------------------------------------------------- /isabelle/putnam_2008_a1.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2008_a1 imports Complex_Main 2 | 3 | begin 4 | 5 | theorem putnam_2008_a1: 6 | fixes f :: "real \ real \ real" 7 | assumes hf : "\ x y z :: real. f x y + f y z + f z x = 0" 8 | shows "\ g :: real \ real. \ x y :: real. f x y = g x - g y" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_2009_b5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2009_b5 imports Complex_Main 2 | "HOL-Analysis.Derivative" 3 | begin 4 | 5 | (* uses (real \ real) instead of ({1<..} \ real) *) 6 | theorem putnam_2009_b5: 7 | fixes f :: "real \ real" 8 | assumes hfdiff: "f differentiable_on {1<..}" 9 | and f: "\x::real>1. deriv f x = (x^2 - (f x)^2) / (x^2 * ((f x)^2 + 1))" 10 | shows "filterlim f at_top at_top" 11 | sorry 12 | 13 | end 14 | -------------------------------------------------------------------------------- /isabelle/putnam_2010_a4.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2010_a4 imports Complex_Main 2 | "HOL-Computational_Algebra.Primes" 3 | begin 4 | 5 | theorem putnam_2010_a4: 6 | fixes n :: nat 7 | assumes n_pos : "n > 0" 8 | shows "\ prime (10^(10^(10^n)) + 10^(10^n) + 10^n - 1)" 9 | sorry 10 | 11 | end 12 | -------------------------------------------------------------------------------- /isabelle/putnam_2010_a5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2010_a5 imports Complex_Main 2 | "HOL-Analysis.Cross3" 3 | "HOL-Algebra.Group" 4 | begin 5 | 6 | theorem putnam_2010_a5: 7 | fixes S :: "(real^3) monoid" 8 | assumes hgroup : "Group.group S" 9 | and hcross: "\a \ carrier S. \b \ carrier S. cross3 a b = a \\ b \ cross3 a b = 0" 10 | shows "\a \ carrier S. \b \ carrier S. cross3 a b = 0" 11 | sorry 12 | 13 | end 14 | -------------------------------------------------------------------------------- /isabelle/putnam_2010_b1.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2010_b1 imports Complex_Main 2 | begin 3 | 4 | definition putnam_2010_b1_solution :: bool where "putnam_2010_b1_solution \ undefined" 5 | (* False *) 6 | theorem putnam_2010_b1: 7 | shows "(\a::nat\real. \m::nat>0. (\i::nat. (a i)^m) = m) \ putnam_2010_b1_solution" 8 | sorry 9 | 10 | end 11 | -------------------------------------------------------------------------------- /isabelle/putnam_2010_b5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2010_b5 imports Complex_Main 2 | "HOL-Analysis.Derivative" 3 | begin 4 | 5 | definition putnam_2010_b5_solution :: bool where "putnam_2010_b5_solution \ undefined" 6 | (* False *) 7 | theorem putnam_2010_b5: 8 | shows "(\f::real\real. strict_mono_on UNIV f \ f differentiable_on UNIV \ (\x::real. deriv f x = f (f x))) \ putnam_2010_b5_solution" 9 | sorry 10 | 11 | end 12 | -------------------------------------------------------------------------------- /isabelle/putnam_2011_b1.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2011_b1 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_2011_b1: 5 | fixes h k :: nat 6 | assumes hkpos: "h > 0 \ k > 0" 7 | shows "\\>0. \m n::nat. m > 0 \ n > 0 \ \ < \h * sqrt m - k * sqrt n\ \ \h * sqrt m - k * sqrt n\ < 2*\" 8 | sorry 9 | 10 | end 11 | -------------------------------------------------------------------------------- /isabelle/putnam_2011_b6.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2011_b6 imports Complex_Main 2 | "HOL-Computational_Algebra.Primes" 3 | begin 4 | 5 | theorem putnam_2011_b6: 6 | fixes p :: nat 7 | assumes hp: "odd p \ prime p" 8 | shows "card {n::nat\{0..(p-1)}. \(p dvd (\k::nat=0..(p-1). fact k * n^k))} \ (p + 1)/2" 9 | sorry 10 | 11 | end 12 | -------------------------------------------------------------------------------- /isabelle/putnam_2012_a2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2012_a2 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_2012_a2: 5 | fixes Smul :: "'S \ 'S \ 'S" (infixl "\<^bold>*" 70) 6 | and a b c :: 'S 7 | assumes Smulasg: "abel_semigroup Smul" 8 | and hS: "\x y::'S. \z::'S. x \<^bold>* z = y" 9 | and habc: "a \<^bold>* c = b \<^bold>* c" 10 | shows "a = b" 11 | sorry 12 | 13 | end 14 | -------------------------------------------------------------------------------- /isabelle/putnam_2012_b4.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2012_b4 imports Complex_Main 2 | begin 3 | 4 | definition putnam_2012_b4_solution::bool where "putnam_2012_b4_solution \ undefined" 5 | (* True *) 6 | theorem putnam_2012_b4: 7 | fixes a::"nat\real" 8 | assumes ha0 : "a 0 = 1" 9 | and han : "\n::nat. a (n+1) = a n + exp (-a n)" 10 | shows "(convergent (\n. a n - ln n)) \ putnam_2012_b4_solution" 11 | sorry 12 | 13 | end 14 | -------------------------------------------------------------------------------- /isabelle/putnam_2014_b4.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2014_b4 imports Complex_Main 2 | "HOL-Computational_Algebra.Polynomial" 3 | begin 4 | 5 | theorem putnam_2014_b4: 6 | fixes n :: nat 7 | and P :: "complex poly" 8 | assumes npos: "n > 0" 9 | and Px: "degree P = n \ (\k::nat\{0..n}. coeff P k = 2 ^ (k*(n-k)))" 10 | shows "\r::complex. (poly P r = 0 \ Im r = 0)" 11 | sorry 12 | 13 | end 14 | -------------------------------------------------------------------------------- /isabelle/putnam_2015_a3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2015_a3 imports Complex_Main 2 | begin 3 | 4 | definition putnam_2015_a3_solution :: complex where "putnam_2015_a3_solution \ undefined" 5 | (* 13725 *) 6 | theorem putnam_2015_a3: 7 | shows "log 2 (Re (\a::nat=1..2015. \b::nat=1..2015. (1 + exp (2*pi*\*a*b/2015)))) = putnam_2015_a3_solution" 8 | sorry 9 | 10 | end 11 | -------------------------------------------------------------------------------- /isabelle/putnam_2016_a1.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2016_a1 imports 2 | Complex_Main 3 | "HOL-Computational_Algebra.Polynomial" 4 | begin 5 | 6 | definition putnam_2016_a1_solution :: nat where "putnam_2016_a1_solution \ undefined" 7 | (* 8 *) 8 | theorem putnam_2016_a1: 9 | shows "putnam_2016_a1_solution = (LEAST j :: nat. j > 0 \ (\ P :: int poly. \ k :: int. 2016 dvd poly ((pderiv ^^ j) P) k))" 10 | sorry 11 | 12 | end -------------------------------------------------------------------------------- /isabelle/putnam_2016_b1.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2016_b1 imports 2 | Complex_Main 3 | begin 4 | 5 | definition putnam_2016_b1_solution :: real where "putnam_2016_b1_solution \ undefined" 6 | (* exp 1 - 1 *) 7 | theorem putnam_2016_b1: 8 | fixes x :: "nat \ real" 9 | assumes hx0: "x 0 = 1" 10 | and hxn: "\ n :: nat. x (n + 1) = ln (exp (x n) - x n)" 11 | shows "(\ n :: nat. x n) = putnam_2016_b1_solution" 12 | sorry 13 | 14 | end -------------------------------------------------------------------------------- /isabelle/putnam_2016_b6.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2016_b6 imports Complex_Main 2 | "HOL-Analysis.Infinite_Sum" 3 | begin 4 | 5 | definition putnam_2016_b6_solution :: real where "putnam_2016_b6_solution \ undefined" 6 | (* 1 *) 7 | theorem putnam_2016_b6: 8 | shows "(\\<^sub>\k::nat\{1..}. ((-1)^(k-1) / k) * (\n::nat. 1 / (k*2^n + 1))) = putnam_2016_b6_solution" 9 | sorry 10 | 11 | end 12 | -------------------------------------------------------------------------------- /isabelle/putnam_2017_a2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2017_a2 imports Complex_Main 2 | "HOL-Computational_Algebra.Polynomial" 3 | begin 4 | 5 | theorem putnam_2017_a2: 6 | fixes Q :: "nat \ real poly" 7 | assumes hQbase: "\x::real. Q 0 = monom 1 0 \ Q 1 = monom 1 1" 8 | and hQn: "\n::nat. Q (n + 2) * Q n = (Q (n-1))^2 - 1" 9 | shows "\n::nat>0. \P::int poly. Q n = map_poly real_of_int P" 10 | sorry 11 | 12 | end -------------------------------------------------------------------------------- /isabelle/putnam_2017_b3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2017_b3 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_2017_b3: 5 | fixes f :: "real \ real" and c :: "nat \ real" 6 | defines hf: "f \ \x. \i::nat. c (i) * x^i" 7 | assumes hc: "\n. c n = 0 \ c n = 1" 8 | and "f (2/3) = 3/2" 9 | shows "f (1/2) \ \" 10 | sorry 11 | 12 | end 13 | -------------------------------------------------------------------------------- /isabelle/putnam_2017_b4.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2017_b4 imports 2 | Complex_Main 3 | begin 4 | 5 | definition putnam_2017_b4_solution :: real where "putnam_2017_b4_solution \ undefined" 6 | (* (ln 2) ^ 2 *) 7 | theorem putnam_2017_b4: 8 | shows "(\ k :: nat. 3 * ln (4 * k + 2) / (4 * k + 2) - ln (4 * k + 3) / (4 * k + 3) - ln (4 * k + 4) / (4 * k - 4) - ln (4 * k + 5) / (4 * k + 5)) = putnam_2017_b4_solution" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_2018_a5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2018_a5 imports Complex_Main 2 | "HOL-Analysis.Derivative" 3 | begin 4 | 5 | theorem putnam_2018_a5: 6 | fixes f :: "real\real" 7 | assumes f_diff : "\n. (deriv^^n) f differentiable_on UNIV" 8 | and f0 : "f 0 = 0" 9 | and f1 : "f 1 = 1" 10 | and fpos : "\x. f x \ 0" 11 | shows "\n > 0. \x::real. (deriv^^n) f x < 0" 12 | sorry 13 | 14 | end 15 | -------------------------------------------------------------------------------- /isabelle/putnam_2018_b2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2018_b2 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_2018_b2: 5 | fixes n :: nat and f_n :: "complex \ complex" and z :: complex 6 | defines "f_n \ \x::complex. \i=0..(n-1). (n - i) * x^i" 7 | assumes npos: "n > 0" and zunit: "norm(z) \ 1" 8 | shows "f_n(z) \ 0" 9 | sorry 10 | 11 | end 12 | -------------------------------------------------------------------------------- /isabelle/putnam_2018_b3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2018_b3 imports Complex_Main 2 | begin 3 | 4 | definition putnam_2018_b3_solution::"int set" where "putnam_2018_b3_solution \ undefined" 5 | (* {2^2, 2^4, 2^16, 2^256} *) 6 | theorem putnam_2018_b3: 7 | shows "putnam_2018_b3_solution \ {n::int. n > 3 \ n < 10^100 \ 8 | n dvd 2^(nat n) \ (n-1) dvd (2^(nat n) - 1) \ (n-2) dvd (2^(nat n) - 2)}" 9 | sorry 10 | 11 | end -------------------------------------------------------------------------------- /isabelle/putnam_2018_b4.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2018_b4 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_2018_b4: 5 | fixes a::real and f::"nat \ real" 6 | assumes f0 : "f 0 = 1" 7 | and f1 : "f 1 = a" 8 | and f2 : "f 2 = a" 9 | and fn : "\n \ 2. f (n+1) = 2 * f n * f (n-1) - f (n-2)" 10 | and fex0 : "\n. f n = 0" 11 | shows "\T>0. \n. f (n + T) = f n" 12 | sorry 13 | 14 | end 15 | -------------------------------------------------------------------------------- /isabelle/putnam_2020_a2.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2020_a2 imports 2 | Complex_Main 3 | begin 4 | 5 | definition putnam_2020_a2_solution :: "nat \ nat" where "putnam_2020_a2_solution \ undefined" 6 | (* \ k. 4 ^ k *) 7 | theorem putnam_2020_a2: 8 | fixes k :: nat 9 | shows "(\ j = 0..k. 2 ^ (k - j) * (k + j choose j)) = putnam_2020_a2_solution k" 10 | sorry 11 | 12 | end -------------------------------------------------------------------------------- /isabelle/putnam_2020_b5.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2020_b5 imports Complex_Main 2 | begin 3 | 4 | (* Note: Boosted domain to infinite set *) 5 | theorem putnam_2020_b5: 6 | fixes z :: "nat \ complex" 7 | assumes hz: "\n \ {1..4}. norm (z n) = 1" 8 | and hzne1: "\n \ {1..4}. z n \ 1" 9 | shows "3 - z 1 - z 2 - z 3 - z 4 + z 1 * z 2 * z 3 * z 4 \ 0" 10 | sorry 11 | 12 | end 13 | -------------------------------------------------------------------------------- /isabelle/putnam_2020_b6.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2020_b6 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_2020_b6: 5 | fixes n :: nat 6 | assumes npos: "n > 0" 7 | shows "(\k::nat=1..n. (-1) ^ (nat \k * (sqrt 2 - 1)\)) \ 0" 8 | sorry 9 | 10 | end 11 | -------------------------------------------------------------------------------- /isabelle/putnam_2021_b4.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2021_b4 imports Complex_Main 2 | begin 3 | 4 | theorem putnam_2021_b4: 5 | fixes f :: "nat\nat" 6 | assumes hf : "\x\2. f x = f (x-1) + f (x-2)" 7 | and f01 : "f 0 = 0 \ f 1 = 1" 8 | shows "\m > 2. \p. (\k=1..(f m - 1). k^k) mod f m = f p" 9 | sorry 10 | 11 | end 12 | -------------------------------------------------------------------------------- /isabelle/putnam_2022_a3.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2022_a3 imports Complex_Main 2 | "HOL-Number_Theory.Cong" 3 | begin 4 | 5 | theorem putnam_2022_a3: 6 | fixes p f::int 7 | defines "f \ card {a :: nat \ int. \ n :: nat. a n \ {1..(p-1)} \ [a n * a (n + 2) = 1 + a (n + 1)] (mod p)}" 8 | assumes hp : "prime p \ p > 5" 9 | shows "[f = 0] (mod 5) \ [f = 2] (mod 5)" 10 | sorry 11 | 12 | end -------------------------------------------------------------------------------- /isabelle/putnam_2022_b1.thy: -------------------------------------------------------------------------------- 1 | theory putnam_2022_b1 imports Complex_Main "HOL-Computational_Algebra.Polynomial" 2 | begin 3 | 4 | theorem putnam_2022_b1: 5 | fixes P :: "int poly" 6 | and b :: "nat \ real" 7 | assumes Pconst: "coeff P 0 = 0" 8 | and podd: "odd (coeff P 1)" 9 | and hb: "\x::real. exp (poly (map_poly real_of_int P) x) = (\ n :: nat. ((b n) * x^n))" 10 | shows "\k::nat. b k \ 0" 11 | sorry 12 | 13 | end -------------------------------------------------------------------------------- /lean4/lean-toolchain: -------------------------------------------------------------------------------- 1 | leanprover/lean4:v4.17.0 -------------------------------------------------------------------------------- /lean4/src/putnam_1962_a1.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open MeasureTheory 4 | 5 | /-- 6 | Given five points in a plane, no three of which lie on a straight line, show that some four of these points form the vertices of a convex quadrilateral. 7 | -/ 8 | theorem putnam_1962_a1 9 | (S : Set (ℝ × ℝ)) 10 | (hS : S.ncard = 5) 11 | (hnoncol : ∀ s ⊆ S, s.ncard = 3 → ¬Collinear ℝ s) 12 | : ∃ T ⊆ S, T.ncard = 4 ∧ ¬∃ t ∈ T, t ∈ convexHull ℝ (T \ {t}) := 13 | sorry 14 | -------------------------------------------------------------------------------- /lean4/src/putnam_1962_a5.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | abbrev putnam_1962_a5_solution : ℕ → ℕ := sorry 4 | -- fun n : ℕ => n * (n + 1) * 2^(n - 2) 5 | /-- 6 | Evaluate in closed form \[ \sum_{k=1}^n {n \choose k} k^2. \] 7 | -/ 8 | theorem putnam_1962_a5 9 | : ∀ n ≥ 2, putnam_1962_a5_solution n = ∑ k ∈ Finset.Icc 1 n, Nat.choose n k * k^2 := 10 | sorry 11 | -------------------------------------------------------------------------------- /lean4/src/putnam_1962_b5.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open MeasureTheory 4 | 5 | /-- 6 | Prove that for every integer $n$ greater than 1: \[ \frac{3n+1}{2n+2} < \left( \frac{1}{n} \right)^n + \left(\frac{2}{n} \right)^n + \cdots + \left(\frac{n}{n} \right)^n < 2. \] 7 | -/ 8 | theorem putnam_1962_b5 9 | (n : ℤ) 10 | (ng1 : n > 1) 11 | : (3 * (n : ℝ) + 1) / (2 * n + 2) < ∑ i : Finset.Icc 1 n, ((i : ℝ) / n) ^ (n : ℝ) ∧ ∑ i : Finset.Icc 1 n, ((i : ℝ) / n) ^ (n : ℝ) < 2 := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_1963_b1.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Topology Filter Polynomial 4 | 5 | abbrev putnam_1963_b1_solution : ℤ := sorry 6 | -- 2 7 | /-- 8 | For what integer $a$ does $x^2-x+a$ divide $x^{13}+x+90$? 9 | -/ 10 | theorem putnam_1963_b1 11 | : ∀ a : ℤ, (X^2 - X + (C a)) ∣ (X ^ 13 + X + (C 90)) ↔ a = putnam_1963_b1_solution := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_1964_b3.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Set Function Filter Topology 4 | 5 | /-- 6 | Suppose $f : \mathbb{R} \to \mathbb{R}$ is continuous and for every $\alpha > 0$, $\lim_{n \to \infty} f(n\alpha) = 0$. Prove that $\lim_{x \to \infty} f(x) = 0$. 7 | -/ 8 | theorem putnam_1964_b3 9 | (f : ℝ → ℝ) 10 | (hf : Continuous f ∧ ∀ α > 0, Tendsto (fun n : ℕ ↦ f (n * α)) atTop (𝓝 0)) 11 | : (Tendsto f atTop (𝓝 0)) := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_1965_a2.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open EuclideanGeometry 4 | 5 | /-- 6 | Prove that $$\sum_{r=0}^{\lfloor\frac{n-1}{2}\rfloor} \left(\frac{n - 2r}{n} {n \choose r}\right)^2 = \frac{1}{n} {{2n - 2} \choose {n - 1}}$$ for every positive integer $n$. 7 | -/ 8 | theorem putnam_1965_a2 9 | : ∀ n > 0, ∑ r ∈ Finset.Icc 0 ((n - 1)/2), ((n - 2*r) * Nat.choose n r / (n : ℚ))^2 = (Nat.choose (2*n - 2) (n - 1))/(n : ℚ) := 10 | sorry 11 | -------------------------------------------------------------------------------- /lean4/src/putnam_1965_b3.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open EuclideanGeometry Topology Filter Complex 4 | 5 | /-- 6 | Prove that there are exactly three right triangles (up to orientation and translation) with integer side lengths and area equal to twice their perimeter. 7 | -/ 8 | theorem putnam_1965_b3 9 | : {(a, b, c) : ℤ × ℤ × ℤ | a > 0 ∧ a ≤ b ∧ c > 0 ∧ a^2 + b^2 = c^2 ∧ a*b/(2 : ℚ) = 2*(a + b + c)}.ncard = 3 := 10 | sorry 11 | -------------------------------------------------------------------------------- /lean4/src/putnam_1965_b5.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open EuclideanGeometry Topology Filter Complex SimpleGraph.Walk 4 | 5 | /-- 6 | Prove that, if $4E \le V^2$, there exists a graph with $E$ edges and $V$ vertices with no triangles (cycles of length $3$). 7 | -/ 8 | theorem putnam_1965_b5 9 | {K : Type*} 10 | [Fintype K] 11 | (V E : ℕ) 12 | (hV : V = Nat.card K) 13 | (hE: 4*E ≤ V^2) 14 | : ∃ G : SimpleGraph K, G.edgeSet.ncard = E ∧ ∀ a : K, ∀ w : G.Walk a a, w.length ≠ 3 := 15 | sorry 16 | -------------------------------------------------------------------------------- /lean4/src/putnam_1966_a3.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Topology Filter 4 | 5 | /-- 6 | If $0 < x_1 < 1$ and $x_{n+1} = x_n(1 - x_n)$ for all $n \ge 1$, prove that $\lim_{n \to \infty} nx_n = 1$. 7 | -/ 8 | theorem putnam_1966_a3 9 | (x : ℕ → ℝ) 10 | (hx1 : 0 < x 1 ∧ x 1 < 1) 11 | (hxi : ∀ n ≥ 1, x (n + 1) = (x n) * (1 - (x n))) 12 | : Tendsto (fun n : ℕ => n * (x n)) atTop (𝓝 1) := 13 | sorry 14 | -------------------------------------------------------------------------------- /lean4/src/putnam_1966_a4.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Topology Filter 4 | 5 | /-- 6 | Prove that the $n$th item in the ascending list of non-perfect-square positive integers equals $n + \{\sqrt{n}\}$, where $\{m\}$ denotes the closest integer to $m$. 7 | -/ 8 | theorem putnam_1966_a4 9 | (a : ℕ → ℤ) 10 | (ha1 : a 1 = 2) 11 | (hai : ∀ n ≥ 1, a (n + 1) = (if ∃ m : ℤ, m^2 = a n + 1 = True then a n + 2 else a n + 1)) 12 | : ∀ n ≥ 1, a n = n + round (Real.sqrt n) := 13 | sorry 14 | -------------------------------------------------------------------------------- /lean4/src/putnam_1966_a6.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Topology Filter 4 | 5 | /-- 6 | Prove that $$\sqrt {1 + 2 \sqrt {1 + 3 \sqrt {1 + 4 \sqrt {1 + 5 \sqrt {\dots}}}}} = 3.$$ 7 | -/ 8 | theorem putnam_1966_a6 9 | (a : ℕ → (ℕ → ℝ)) 10 | (ha : ∀ n ≥ 1, a n n = n ∧ ∀ m ≥ 1, m < n → a n m = m * Real.sqrt (1 + a n (m + 1))) 11 | : Tendsto (fun n => a n 1) atTop (𝓝 3) := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_1966_b2.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | /-- 4 | Prove that, for any ten consecutive integers, at least one is relatively prime to all of the others. 5 | -/ 6 | theorem putnam_1966_b2 7 | (S : ℤ → Set ℤ) 8 | (hS : S = fun n : ℤ => {n, n + 1, n + 2, n + 3, n + 4, n + 5, n + 6, n + 7, n + 8, n + 9}) 9 | : ∀ n : ℤ, n > 0 → (∃ k ∈ S n, ∀ m ∈ S n, k ≠ m → IsCoprime m k) := 10 | sorry 11 | -------------------------------------------------------------------------------- /lean4/src/putnam_1966_b6.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Topology Filter 4 | 5 | /-- 6 | Prove that any solution $y(x)$ to the differential equation $y'' + e^{x}y = 0$ remains bounded as $x$ goes to $+\infty$. 7 | -/ 8 | theorem putnam_1966_b6 9 | (y : ℝ → ℝ) 10 | (hy : Differentiable ℝ y ∧ Differentiable ℝ (deriv y)) 11 | (diffeq : deriv (deriv y) + Real.exp * y = 0) 12 | : ∃ r s N : ℝ, ∀ x > N, r ≤ y x ∧ y x ≤ s := 13 | sorry 14 | -------------------------------------------------------------------------------- /lean4/src/putnam_1967_a4.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Nat Topology Filter 4 | 5 | /-- 6 | Show that if $\lambda > \frac{1}{2}$ there does not exist a real-valued function $u$ such that for all $x$ in the closed interval $0 \leq x \leq 1$, $u(x)=1+\lambda\int_x^1 u(y)u(y-x)\,dy$. 7 | -/ 8 | theorem putnam_1967_a4 9 | (lambda : ℝ) 10 | (hlambda : lambda > 1 / 2) 11 | : ¬∃ u : ℝ → ℝ, ∀ x ∈ Set.Icc 0 1, u x = 1 + lambda * (∫ y in Set.Ioo x 1, u y * u (y - x)) := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_1967_a5.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Nat Topology Filter 4 | 5 | /-- 6 | Prove that any convex region in the Euclidean plane with area greater than $\pi/4$ contains a pair of points exactly $1$ unit apart. 7 | -/ 8 | theorem putnam_1967_a5 9 | (R : Set (EuclideanSpace ℝ (Fin 2))) 10 | (hR : Convex ℝ R ∧ (MeasureTheory.volume R).toReal > Real.pi / 4) 11 | : ∃ P ∈ R, ∃ Q ∈ R, dist P Q = 1 := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_1967_b5.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Nat Topology Filter 4 | 5 | /-- 6 | For any positive integer $n$, prove that the sum of the first $n$ terms of the bimonial expansion of $(2 - 1)^{-n}$ (starting with the maximal exponent of $2$) is $\frac{1}{2}.$ 7 | -/ 8 | theorem putnam_1967_b5 9 | (n : ℕ) 10 | (hn : n > 0) 11 | : (1 : ℚ)/2 = ∑ i ∈ Finset.range n, (Nat.choose (n + i - 1) i) * (2 : ℚ)^(-(n : ℤ) - i) := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_1968_a1.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | /-- 4 | Prove that $$\frac{22}{7} - \pi = \int_{0}^{1} \frac{x^4(1 - x)^4}{1 + x^2} dx$$. 5 | -/ 6 | theorem putnam_1968_a1 7 | : 22/7 - Real.pi = ∫ x in (0)..1, x^4 * (1 - x)^4 / (1 + x^2) := 8 | sorry 9 | -------------------------------------------------------------------------------- /lean4/src/putnam_1968_a4.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Finset 4 | 5 | /-- 6 | Prove that the sum of the squares of the distances between any $n$ points on the unit sphere $\{(x, y, z) \mid x^2 + y^2 + z^2 = 1\}$ is at most $n^2$. 7 | -/ 8 | theorem putnam_1968_a4 9 | (n : ℕ) 10 | (S : Fin n → (EuclideanSpace ℝ (Fin 3))) 11 | (hS : ∀ i : Fin n, dist 0 (S i) = 1) 12 | : ∑ i : Fin n, ∑ j : Fin n, (if i < j then (dist (S i) (S j))^2 else (0 : ℝ)) ≤ n^2 := 13 | sorry 14 | -------------------------------------------------------------------------------- /lean4/src/putnam_1968_b6.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Finset Polynomial Topology Filter Metric 4 | 5 | /-- 6 | Prove that no sequence $\{K_n\}_{n=0}^{\infty}$ of compact (closed and bounded) sets of rational numbers has the property that every compact set of rational numbers is contained by at least one $K_n$. 7 | -/ 8 | theorem putnam_1968_b6 9 | : ¬∃ K : ℕ → Set ℚ, (∀ n : ℕ, IsCompact (K n)) ∧ (∀ S : Set ℚ, IsCompact S → ∃ n : ℕ, S ⊆ K n) := 10 | sorry 11 | -------------------------------------------------------------------------------- /lean4/src/putnam_1969_a4.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Matrix Filter Topology Set Nat 4 | 5 | /-- 6 | Show that $\int_0^1 x^x dx = \sum_{n=1}^{\infty} (-1)^{n+1}n^{-n}$. 7 | -/ 8 | theorem putnam_1969_a4 9 | : Tendsto (fun n => ∑ i ∈ Finset.Icc (1 : ℤ) n, (-1)^(i+1)*(i : ℝ)^(-i)) atTop (𝓝 (∫ x in Ioo (0 : ℝ) 1, x^x)) := 10 | sorry 11 | -------------------------------------------------------------------------------- /lean4/src/putnam_1969_a6.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Matrix Filter Topology Set Nat 4 | 5 | /-- 6 | Let $(x_n)$ be a sequence, and let $y_n = x_{n-1} + 2*x_n$ for $n \geq 2$. Suppose that $(y_n)$ converges, then prove that $(x_n)$ converges. 7 | -/ 8 | theorem putnam_1969_a6 9 | (x : ℕ → ℝ) 10 | (y : ℕ → ℝ) 11 | (hy1 : ∀ n ≥ 2, y n = x (n-1) + 2 * (x n)) 12 | (hy2 : ∃ c : ℝ, Tendsto y atTop (𝓝 c)) 13 | : ∃ C : ℝ, Tendsto x atTop (𝓝 C) := 14 | sorry 15 | -------------------------------------------------------------------------------- /lean4/src/putnam_1969_b1.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Matrix Filter Topology Set Nat 4 | 5 | /-- 6 | Let $n$ be a positive integer such that $n+1$ is divisible by $24$. Prove that the sum of all the divisors of $n$ is divisible by $24$. 7 | -/ 8 | theorem putnam_1969_b1 9 | (n : ℕ) 10 | (hnpos : n > 0) 11 | (hn : 24 ∣ n + 1) 12 | : 24 ∣ ∑ d ∈ divisors n, d := 13 | sorry 14 | -------------------------------------------------------------------------------- /lean4/src/putnam_1969_b3.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Matrix Filter Topology Set Nat 4 | 5 | /-- 6 | Suppose $T$ is a sequence which satisfies $T_n * T_{n+1} = n$ whenever $n \geq 1$, and also $\lim_{n \to \infty} \frac{T_n}{T_{n+1}} = 1. Show that $\pi * T_1^2 = 2$. 7 | -/ 8 | theorem putnam_1969_b3 9 | (T : ℕ → ℝ) 10 | (hT1 : ∀ n : ℕ, n ≥ 1 → (T n) * (T (n + 1)) = n) 11 | (hT2 : Tendsto (fun n => (T n)/(T (n + 1))) atTop (𝓝 1)) 12 | : Real.pi * (T 1)^2 = 2 := 13 | sorry 14 | -------------------------------------------------------------------------------- /lean4/src/putnam_1970_a4.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Metric Set EuclideanGeometry Filter Topology 4 | 5 | /-- 6 | Suppose $(x_n)$ is a sequence such that $\lim_{n \to \infty} (x_n - x_{n-2} = 0$. Prove that $\lim_{n \to \infty} \frac{x_n - x_{n-1}}{n} = 0$. 7 | -/ 8 | theorem putnam_1970_a4 9 | (x : ℕ → ℝ) 10 | (hxlim : Tendsto (fun n => x (n+2) - x n) atTop (𝓝 0)) 11 | : Tendsto (fun n => (x (n+1) - x (n))/(n+1)) atTop (𝓝 0) := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_1970_b3.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Metric Set EuclideanGeometry Filter Topology 4 | 5 | /-- 6 | A closed subset $S$ of $\mathbb{R}^2$ lies in $a < x < b$. Show that its projection on the y-axis is closed. 7 | -/ 8 | theorem putnam_1970_b3 9 | (S : Set (ℝ × ℝ)) 10 | (a b : ℝ) 11 | (hab : a < b) 12 | (hS : ∀ s ∈ S, s.1 ∈ Ioo a b) 13 | (hSclosed : IsClosed S) 14 | : IsClosed {y | ∃ x : ℝ, ⟨x,y⟩ ∈ S} := 15 | sorry 16 | -------------------------------------------------------------------------------- /lean4/src/putnam_1971_a2.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Set 4 | 5 | abbrev putnam_1971_a2_solution : Set (Polynomial ℝ) := sorry 6 | -- {Polynomial.X} 7 | /-- 8 | Determine all polynomials $P(x)$ such that $P(x^2 + 1) = (P(x))^2 + 1$ and $P(0) = 0$. 9 | -/ 10 | theorem putnam_1971_a2 11 | (P : Polynomial ℝ) : 12 | (P.eval 0 = 0 ∧ (∀ x : ℝ, P.eval (x^2 + 1) = (P.eval x)^2 + 1)) ↔ P ∈ putnam_1971_a2_solution := 13 | sorry 14 | -------------------------------------------------------------------------------- /lean4/src/putnam_1971_a6.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Set MvPolynomial 4 | 5 | /-- 6 | Let $c$ be a real number such that $n^c$ is an integer for every positive integer $n$. Show that $c$ is a non-negative integer. 7 | -/ 8 | theorem putnam_1971_a6 9 | (c : ℝ) 10 | (hc : ∀ n : ℤ, n > 0 → ∃ m : ℤ, (n : ℝ)^c = m) 11 | : ∃ m : ℤ, m ≥ 0 ∧ c = m := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_1971_b6.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Set MvPolynomial 4 | 5 | /-- 6 | Let $\delta(x) be the greatest odd divisor of the positive integer $x$. Show that $|\sum_{n = 1}^x \delta(n)/n - 2x/3| < 1$ for all positive integers $x$. 7 | -/ 8 | theorem putnam_1971_b6 9 | (δ : ℤ → ℤ) 10 | (hδ : δ = fun n => sSup {t | Odd t ∧ t ∣ n}) 11 | : ∀ x : ℤ, x > 0 → |∑ i ∈ Finset.Icc 1 x, (δ i)/(i : ℚ) - 2*x/3| < 1 := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_1972_a5.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open EuclideanGeometry Filter Topology Set 4 | 5 | /-- 6 | Show that if $n$ is an integer greater than $1$, then $n$ does not divide $2^n - 1$. 7 | -/ 8 | theorem putnam_1972_a5 9 | (n : ℕ) 10 | (hn : n > 1) 11 | : ¬((n : ℤ) ∣ 2^n - 1) := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_1972_b3.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open EuclideanGeometry Filter Topology Set MeasureTheory Metric 4 | 5 | /-- 6 | Let $A$ and $B$ be two elements in a group such that $ABA = BA^2B$, $A^3 = 1$, and $B^{2n-1} = 1$ for some positive integer $n$. Prove that $B = 1$. 7 | -/ 8 | theorem putnam_1972_b3 9 | (G : Type*) [Group G] 10 | (A B : G) 11 | (hab : A * B * A = B * A^2 * B ∧ A^3 = 1 ∧ (∃ n : ℤ, n > 0 ∧ B^(2*n - 1) = 1)) 12 | : B = 1 := 13 | sorry 14 | -------------------------------------------------------------------------------- /lean4/src/putnam_1972_b5.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open EuclideanGeometry Set Metric 4 | 5 | /-- 6 | Let $ABCD$ be a skew (non-planar) quadrilateral. Prove that if $\angle ABC = \angle CDA$ and $\angle BCD = \angle DAB$, then $AB = CD$ and $AD = BC$. 7 | -/ 8 | theorem putnam_1972_b5 9 | (A B C D : EuclideanSpace ℝ (Fin 3)) 10 | (hnonplanar : ¬Coplanar ℝ {A, B, C, D}) 11 | (hangles : ∠ A B C = ∠ C D A ∧ ∠ B C D = ∠ D A B) 12 | : dist A B = dist C D ∧ dist B C = dist D A := 13 | sorry 14 | -------------------------------------------------------------------------------- /lean4/src/putnam_1973_a4.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Nat Set MeasureTheory Topology Filter 4 | 5 | abbrev putnam_1973_a4_solution : ℕ := sorry 6 | -- 3 7 | /-- 8 | How many zeros does the function $f(x) = 2^x - 1 - x^2$ have on the real line? 9 | -/ 10 | theorem putnam_1973_a4 11 | (f : ℝ → ℝ) 12 | (hf : f = fun x => 2^x - 1 - x^2) 13 | : putnam_1973_a4_solution = {x : ℝ | f x = 0}.ncard := 14 | sorry 15 | -------------------------------------------------------------------------------- /lean4/src/putnam_1973_b2.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Nat Set MeasureTheory Topology Filter 4 | 5 | /-- 6 | Let $z = x+iy$ be a complex number with $x$ and $y$ rational and with $\| z \| = 1$. Show thaat the number $\| z^{2n} - 1 \|$ is rational for every integer $n$. 7 | -/ 8 | theorem putnam_1973_b2 9 | (z : ℂ) 10 | (hzrat : ∃ q1 q2 : ℚ, z.re = q1 ∧ z.im = q2) 11 | (hznorm : ‖z‖ = 1) 12 | : ∀ n : ℤ, ∃ q : ℚ, ‖z^(2*n) - 1‖ = q := 13 | sorry 14 | -------------------------------------------------------------------------------- /lean4/src/putnam_1974_b3.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Set Nat Polynomial Filter Topology 4 | 5 | /-- 6 | Prove that if $\alpha$ is a real number such that $\cos (\pi \alpha) = 1/3$, the $\alpha$ is irrational. 7 | -/ 8 | theorem putnam_1974_b3 9 | (α : ℝ) 10 | (ha : Real.cos (Real.pi * α) = (1 : ℝ)/3) 11 | : Irrational α := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_1974_b5.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Set Nat Polynomial Filter Topology 4 | 5 | /-- 6 | Show that $1 + (n/1!) + (n^2/2!) + \dots + (n^n/n!) > e^n/2$ for every integer $n \geq 0$. 7 | -/ 8 | theorem putnam_1974_b5 9 | : ∀ n ≥ 0, ∑ i ∈ Finset.Icc (0 : ℕ) n, (n^i : ℝ)/(Nat.factorial i) > (Real.exp n)/2 := 10 | sorry 11 | -------------------------------------------------------------------------------- /lean4/src/putnam_1976_a3.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | abbrev putnam_1976_a3_solution : Set (ℕ × ℕ × ℕ × ℕ) := sorry 4 | -- {(3, 2, 2, 3), (2, 3, 3, 2)} 5 | /-- 6 | Find all integer solutions $(p, r, q, s)$ of the equation $|p^r - q^s| = 1$, where $p$ and $q$ are prime and $r$ and $s$ are greater than $1$. 7 | -/ 8 | theorem putnam_1976_a3 9 | : {(p, r, q, s) : ℕ × ℕ × ℕ × ℕ | Nat.Prime p ∧ Nat.Prime q ∧ r > 1 ∧ s > 1 ∧ |(p^r : ℤ) - q^s| = 1} = putnam_1976_a3_solution := 10 | sorry 11 | -------------------------------------------------------------------------------- /lean4/src/putnam_1976_b5.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Polynomial Filter Topology ProbabilityTheory MeasureTheory 4 | 5 | noncomputable abbrev putnam_1976_b5_solution : ℕ → Polynomial ℤ := sorry 6 | -- fun n => C (Nat.factorial n) 7 | /-- 8 | Find $$\sum_{k=0}^{n} (-1)^k {n \choose k} (x - k)^n.$$ 9 | -/ 10 | theorem putnam_1976_b5 11 | : ∀ n : ℕ, ∑ k ∈ Finset.range (n + 1), C ((-(1 : ℤ))^k * Nat.choose n k) * (X - (C (k : ℤ)))^n = putnam_1976_b5_solution n := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_1977_a4.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open RingHom Set 4 | 5 | noncomputable abbrev putnam_1977_a4_solution : RatFunc ℝ := sorry 6 | -- RatFunc.X / (1 - RatFunc.X) 7 | /-- 8 | Find $\sum_{n=0}^{\infty} \frac{x^{2^n}}{1 - x^{2^{n+1}}}$ as a rational function of $x$ for $x \in (0, 1)$. 9 | -/ 10 | theorem putnam_1977_a4 : 11 | ∀ x ∈ Ioo 0 1, 12 | putnam_1977_a4_solution.eval (id ℝ) x = ∑' n : ℕ, x ^ 2 ^ n / (1 - x ^ 2 ^ (n + 1)) := 13 | sorry 14 | -------------------------------------------------------------------------------- /lean4/src/putnam_1977_a5.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open RingHom Set Nat 4 | 5 | /-- 6 | Let $p$ be a prime and $m \geq n$ be non-negative integers. Show that $\binom{pm}{pn} = \binom{m}{n} \pmod p$, where $\binom{m}{n}$ is the binomial coefficient. 7 | -/ 8 | theorem putnam_1977_a5 9 | (p m n : ℕ) 10 | (hp : Nat.Prime p) 11 | (hmgen : m ≥ n) 12 | : (choose (p * m) (p * n) ≡ choose m n [MOD p]) := 13 | sorry 14 | -------------------------------------------------------------------------------- /lean4/src/putnam_1977_b1.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open RingHom Set Nat Filter Topology 4 | 5 | noncomputable abbrev putnam_1977_b1_solution : ℝ := sorry 6 | -- 2 / 3 7 | /-- 8 | Find $\prod_{n=2}^{\infty} \frac{(n^3 - 1)}{(n^3 + 1)}$. 9 | -/ 10 | theorem putnam_1977_b1 11 | : Tendsto (fun N ↦ ∏ n ∈ Finset.Icc (2 : ℤ) N, ((n : ℝ) ^ 3 - 1) / (n ^ 3 + 1)) atTop (𝓝 putnam_1977_b1_solution) := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_1978_a1.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | /-- 4 | 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$. 5 | -/ 6 | theorem putnam_1978_a1 7 | (S T : Set ℤ) 8 | (hS : S = {k | ∃ j : ℤ, 0 ≤ j ∧ j ≤ 33 ∧ k = 3 * j + 1}) 9 | (hT : T ⊆ S ∧ T.ncard = 20) 10 | : (∃ m ∈ T, ∃ n ∈ T, m ≠ n ∧ m + n = 104) := 11 | sorry 12 | -------------------------------------------------------------------------------- /lean4/src/putnam_1978_a6.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Set Real 4 | 5 | /-- 6 | Given $n$ distinct points in the plane, prove that fewer than $2n^{3/2}$ pairs of these points are a distance of $1$ apart. 7 | -/ 8 | theorem putnam_1978_a6 9 | (S : Finset (EuclideanSpace ℝ (Fin 2))) 10 | (n : ℕ) 11 | (hn : n = S.card) 12 | (npos : n > 0) 13 | : ({pair : Set (EuclideanSpace ℝ (Fin 2)) | ∃ P ∈ S, ∃ Q ∈ S, pair = {P, Q} ∧ dist P Q = 1}.ncard < 2 * (n : ℝ) ^ ((3 : ℝ) / 2)) := 14 | sorry 15 | -------------------------------------------------------------------------------- /lean4/src/putnam_1978_b2.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Set Real 4 | 5 | abbrev putnam_1978_b2_solution : ℚ := sorry 6 | -- 7 / 4 7 | /-- 8 | Find 9 | \[ 10 | \sum_{i=1}^{\infty} \sum_{j=1}^{\infty} \frac{1}{i^2j + 2ij + ij^2}. 11 | \] 12 | -/ 13 | theorem putnam_1978_b2 14 | : (∑' i : ℕ+, ∑' j : ℕ+, (1 : ℚ) / (i ^ 2 * j + 2 * i * j + i * j ^ 2) = putnam_1978_b2_solution) := 15 | sorry 16 | -------------------------------------------------------------------------------- /lean4/src/putnam_1978_b4.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Set Real Filter Topology Polynomial 4 | 5 | /-- 6 | Show that we can find integers $a, b, c, d$ such that $a^2 + b^2 + c^2 + d^2 = abc + abd + acd + bcd$, and the smallest of $a, b, c, d$ is arbitrarily large. 7 | -/ 8 | theorem putnam_1978_b4 : 9 | ∀ N : ℝ, 10 | ∃ a b c d : ℤ, 11 | a > N ∧ b > N ∧ c > N ∧ d > N ∧ 12 | a ^ 2 + b ^ 2 + c ^ 2 + d ^ 2 = a * b * c + a * b * d + a * c * d + b * c * d := 13 | sorry 14 | -------------------------------------------------------------------------------- /lean4/src/putnam_1979_a2.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | abbrev putnam_1979_a2_solution : ℝ → Prop := sorry 4 | -- fun k : ℝ => k ≥ 0 5 | /-- 6 | For which real numbers $k$ does there exist a continuous function $f : \mathbb{R} \to \mathbb{R}$ such that $f(f(x)) = kx^9$ for all real $x$? 7 | -/ 8 | theorem putnam_1979_a2 9 | : ∀ k : ℝ, (∃ f : ℝ → ℝ, Continuous f ∧ ∀ x : ℝ, f (f x) = k*x^9) ↔ putnam_1979_a2_solution k := 10 | sorry 11 | -------------------------------------------------------------------------------- /lean4/src/putnam_1980_a3.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | noncomputable abbrev putnam_1980_a3_solution : ℝ := sorry 4 | -- Real.pi / 4 5 | /-- 6 | Evaluate $\int_0^{\pi/2}\frac{dx}{1+(\tan x)^{\sqrt{2}}}$. 7 | -/ 8 | theorem putnam_1980_a3 9 | : ∫ x in Set.Ioo 0 (Real.pi / 2), 1 / (1 + (Real.tan x) ^ (Real.sqrt 2)) = putnam_1980_a3_solution := 10 | sorry 11 | -------------------------------------------------------------------------------- /lean4/src/putnam_1980_b1.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Real 4 | 5 | abbrev putnam_1980_b1_solution : Set ℝ := sorry 6 | -- {c : ℝ | c ≥ 1 / 2} 7 | /-- 8 | For which real numbers $c$ is $(e^x+e^{-x})/2 \leq e^{cx^2}$ for all real $x$? 9 | -/ 10 | theorem putnam_1980_b1 11 | (c : ℝ) 12 | : (∀ x : ℝ, (exp x + exp (-x)) / 2 ≤ exp (c * x ^ 2)) ↔ c ∈ putnam_1980_b1_solution := 13 | sorry 14 | -------------------------------------------------------------------------------- /lean4/src/putnam_1982_a3.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Set Function Filter Topology Polynomial Real 4 | 5 | noncomputable abbrev putnam_1982_a3_solution : ℝ := sorry 6 | -- (Real.pi / 2) * log Real.pi 7 | /-- 8 | Evaluate $\int_0^{\infty} \frac{\tan^{-1}(\pi x) - \tan^{-1} x}{x} \, dx$. 9 | -/ 10 | theorem putnam_1982_a3 : 11 | Tendsto (fun t ↦ ∫ x in (0)..t, (arctan (Real.pi * x) - arctan x) / x) atTop (𝓝 putnam_1982_a3_solution) := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_1982_a5.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | /-- 4 | 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}$. 5 | -/ 6 | theorem putnam_1982_a5 7 | (a b c d : ℤ) 8 | (hpos : a > 0 ∧ b > 0 ∧ c > 0 ∧ d > 0) 9 | (hac : a + c ≤ 1982) 10 | (hfrac : (a : ℝ) / b + (c : ℝ) / d < 1) 11 | : (1 - (a : ℝ) / b - (c : ℝ) / d > 1 / 1983 ^ 3) := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_1983_a1.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | abbrev putnam_1983_a1_solution : ℕ := sorry 4 | -- 2301 5 | /-- 6 | How many positive integers $n$ are there such that $n$ is an exact divisor of at least one of the numbers $10^{40},20^{30}$? 7 | -/ 8 | theorem putnam_1983_a1 9 | : {n : ℤ | n > 0 ∧ (n ∣ 10 ^ 40 ∨ n ∣ 20 ^ 30)}.encard = putnam_1983_a1_solution := 10 | sorry 11 | -------------------------------------------------------------------------------- /lean4/src/putnam_1983_a4.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Nat 4 | 5 | /-- 6 | Prove that for $m = 5 \pmod 6$, 7 | \[ 8 | \binom{m}{2} - \binom{m}{5} + \binom{m}{8} - \binom{m}{11} + ... - \binom{m}{m-6} + \binom{m}{m-3} \neq 0. 9 | \] 10 | -/ 11 | theorem putnam_1983_a4 12 | (k m : ℕ) 13 | (S : ℤ) 14 | (kpos : k > 0) 15 | (hm : m = 6 * k - 1) 16 | (hS : S = ∑ j ∈ Finset.Icc 1 (2 * k - 1), (-1 : ℤ) ^ (j + 1) * choose m (3 * j - 1)) 17 | : (S ≠ 0) := 18 | sorry 19 | -------------------------------------------------------------------------------- /lean4/src/putnam_1983_a5.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Nat 4 | 5 | abbrev putnam_1983_a5_solution : Prop := sorry 6 | -- True 7 | /-- 8 | Prove or disprove that there exists a positive real number $\alpha$ such that $[\alpha_n] - n$ is even for all integers $n > 0$. (Here $[x]$ denotes the greatest integer less than or equal to $x$.) 9 | -/ 10 | theorem putnam_1983_a5 : 11 | (∃ α : ℝ, α > 0 ∧ ∀ n : ℕ, n > 0 → Even (⌊α ^ n⌋ - n)) ↔ putnam_1983_a5_solution := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_1984_a2.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | abbrev putnam_1984_a2_solution : ℚ := sorry 4 | -- 2 5 | /-- 6 | Express $\sum_{k=1}^\infty (6^k/(3^{k+1}-2^{k+1})(3^k-2^k))$ as a rational number. 7 | -/ 8 | theorem putnam_1984_a2 9 | : ∑' k : Set.Ici 1, (6 ^ (k : ℕ) / ((3 ^ ((k : ℕ) + 1) - 2 ^ ((k : ℕ) + 1)) * (3 ^ (k : ℕ) - 2 ^ (k : ℕ)))) = putnam_1984_a2_solution := 10 | sorry 11 | -------------------------------------------------------------------------------- /lean4/src/putnam_1986_a2.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | abbrev putnam_1986_a2_solution : ℕ := sorry 4 | -- 3 5 | /-- 6 | What is the units (i.e., rightmost) digit of 7 | \[ 8 | \left\lfloor \frac{10^{20000}}{10^{100}+3}\right\rfloor ? 9 | \] 10 | -/ 11 | theorem putnam_1986_a2 12 | : (Nat.floor ((10 ^ 20000 : ℝ) / (10 ^ 100 + 3)) % 10 = putnam_1986_a2_solution) := 13 | sorry 14 | -------------------------------------------------------------------------------- /lean4/src/putnam_1987_b1.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open MvPolynomial Real Nat 4 | 5 | abbrev putnam_1987_b1_solution : ℝ := sorry 6 | -- 1 7 | /-- 8 | Evaluate 9 | \[ 10 | \int_2^4 \frac{\sqrt{\ln(9-x)}\,dx}{\sqrt{\ln(9-x)}+\sqrt{\ln(x+3)}}. 11 | \] 12 | -/ 13 | theorem putnam_1987_b1 14 | : (∫ x in (2)..4, sqrt (log (9 - x)) / (sqrt (log (9 - x)) + sqrt (log (x + 3))) = putnam_1987_b1_solution) := 15 | sorry 16 | -------------------------------------------------------------------------------- /lean4/src/putnam_1988_a1.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open MeasureTheory 4 | 5 | abbrev putnam_1988_a1_solution : ℝ := sorry 6 | -- 6 7 | /-- 8 | Let $R$ be the region consisting of the points $(x,y)$ of the cartesian plane satisfying both $|x|-|y| \leq 1$ and $|y| \leq 1$. Find the area of $R$. 9 | -/ 10 | theorem putnam_1988_a1 11 | (R : Set (Fin 2 → ℝ)) 12 | (hR : R = {p | |p 0| - |p 1| ≤ 1 ∧ |p 1| ≤ 1}) : 13 | (volume R).toReal = putnam_1988_a1_solution := 14 | sorry 15 | -------------------------------------------------------------------------------- /lean4/src/putnam_1988_b1.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Set Filter Topology 4 | 5 | /-- 6 | A \emph{composite} (positive integer) is a product $ab$ with $a$ and $b$ not necessarily distinct integers in $\{2,3,4,\dots\}$. Show that every composite is expressible as $xy+xz+yz+1$, with $x,y,z$ positive integers. 7 | -/ 8 | theorem putnam_1988_b1 9 | : ∀ a ≥ 2, ∀ b ≥ 2, ∃ x y z : ℤ, x > 0 ∧ y > 0 ∧ z > 0 ∧ a * b = x * y + x * z + y * z + 1 := 10 | sorry 11 | -------------------------------------------------------------------------------- /lean4/src/putnam_1988_b2.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Set Filter Topology 4 | 5 | abbrev putnam_1988_b2_solution : Prop := sorry 6 | -- True 7 | /-- 8 | Prove or disprove: If $x$ and $y$ are real numbers with $y \geq 0$ and $y(y+1) \leq (x+1)^2$, then $y(y-1) \leq x^2$. 9 | -/ 10 | theorem putnam_1988_b2 11 | : (∀ x y : ℝ, (y ≥ 0 ∧ y * (y + 1) ≤ (x + 1) ^ 2) → (y * (y - 1) ≤ x ^ 2)) ↔ putnam_1988_b2_solution := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_1989_a3.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | open Complex 3 | 4 | /-- 5 | Prove that if 6 | \[ 7 | 11z^{10}+10iz^9+10iz-11=0, 8 | \] 9 | then $|z|=1.$ (Here $z$ is a complex number and $i^2=-1$.) 10 | -/ 11 | theorem putnam_1989_a3 12 | (z : ℂ) 13 | (hz : 11 * z ^ 10 + 10 * I * z ^ 9 + 10 * I * z - 11 = 0) 14 | : (‖z‖ = 1) := 15 | sorry 16 | -------------------------------------------------------------------------------- /lean4/src/putnam_1991_b4.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Filter Topology 4 | 5 | /-- 6 | Suppose $p$ is an odd prime. Prove that $\sum_{j=0}^p \binom{p}{j}\binom{p+j}{j} \equiv 2^p+1 \pmod{p^2}$. 7 | -/ 8 | theorem putnam_1991_b4 9 | (p : ℕ) 10 | (podd : Odd p) 11 | (pprime : Prime p) 12 | : (∑ j : Fin (p + 1), (p.choose j) * ((p + j).choose j)) ≡ (2 ^ p + 1) [MOD (p ^ 2)] := 13 | sorry 14 | -------------------------------------------------------------------------------- /lean4/src/putnam_1993_a2.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | /-- 4 | 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$. 5 | -/ 6 | theorem putnam_1993_a2 7 | (x : ℕ → ℝ) 8 | (xnonzero : ∀ n : ℕ, x n ≠ 0) 9 | (hx : ∀ n ≥ 1, (x n) ^ 2 - x (n - 1) * x (n + 1) = 1) 10 | : ∃ a : ℝ, ∀ n ≥ 1, x (n + 1) = a * x n - x (n - 1) := 11 | sorry 12 | -------------------------------------------------------------------------------- /lean4/src/putnam_1993_b5.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | /-- 4 | Show there do not exist four points in the Euclidean plane such that the pairwise distances between the points are all odd integers. 5 | -/ 6 | theorem putnam_1993_b5: 7 | ¬∃ p : Fin 4 → (EuclideanSpace ℝ (Fin 2)), 8 | ∀ i j, i ≠ j → 9 | (∃ n : ℤ, dist (p i) (p j) = n ∧ Odd n) := 10 | sorry 11 | -------------------------------------------------------------------------------- /lean4/src/putnam_1994_a1.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Filter Topology 4 | 5 | /-- 6 | Suppose that a sequence $a_1,a_2,a_3,\dots$ satisfies $0< a_n \leq a_{2n}+a_{2n+1}$ for all $n \geq 1$. Prove that the series $\sum_{n=1}^\infty a_n$ diverges. 7 | -/ 8 | theorem putnam_1994_a1 9 | (a : ℕ → ℝ) 10 | (ha : ∀ n ≥ 1, 0 < a n ∧ a n ≤ a (2 * n) + a (2 * n + 1)) : 11 | Tendsto (fun N : ℕ => ∑ n : Set.Icc 1 N, a n) atTop atTop := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_1994_b1.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Filter Topology 4 | 5 | abbrev putnam_1994_b1_solution : Set ℤ := sorry 6 | -- {n : ℤ | (315 ≤ n ∧ n ≤ 325) ∨ (332 ≤ n ∧ n ≤ 350)} 7 | /-- 8 | Find all positive integers $n$ that are within $250$ of exactly $15$ perfect squares. 9 | -/ 10 | theorem putnam_1994_b1 11 | (n : ℤ) : 12 | n ∈ putnam_1994_b1_solution ↔ 13 | (0 < n ∧ {m : ℕ | |n - m ^ 2| ≤ 250}.encard = 15) := 14 | sorry 15 | -------------------------------------------------------------------------------- /lean4/src/putnam_1994_b6.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Filter Topology 4 | 5 | /-- 6 | For any integer $a$, set $n_a=101a-100 \cdot 2^a$. Show that for $0 \leq a,b,c,d \leq 99$, $n_a+n_b \equiv n_c+n_d \pmod{10100}$ implies $\{a,b\}=\{c,d\}$. 7 | -/ 8 | theorem putnam_1994_b6 9 | (n : ℕ → ℤ) 10 | (hn : ∀ a : ℕ, n a = 101 * a - 100 * 2 ^ a) 11 | : ∀ a b c d : Set.Icc 0 99, (n a + n b ≡ n c + n d [ZMOD 10100]) → (({a, b} : Set (Set.Icc 0 99)) = {c, d}) := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_1996_a5.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Function 4 | 5 | /-- 6 | If $p$ is a prime number greater than 3 and $k = \lfloor 2p/3 \rfloor$, prove that the sum \[\binom p1 + \binom p2 + \cdots + \binom pk \] of binomial coefficients is divisible by $p^2$. 7 | -/ 8 | theorem putnam_1996_a5 9 | (p : ℕ) 10 | (hpprime : Prime p) 11 | (hpge3 : p > 3) 12 | (k : ℕ) 13 | (hk : k = Nat.floor (2*p/(3 : ℚ))) 14 | : p^2 ∣ ∑ i ∈ Finset.Icc 1 k, Nat.choose p i := 15 | sorry 16 | -------------------------------------------------------------------------------- /lean4/src/putnam_1997_b5.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | def tetration : ℕ → ℕ → ℕ 4 | | _, 0 => 1 5 | | b, (m + 1) => b^(tetration b m) 6 | /-- 7 | Prove that for $n\geq 2$, \[\overbrace{2^{2^{\cdots^{2}}}}^{\mbox{$n$ terms}} \equiv \overbrace{2^{2^{\cdots^{2}}}}^{\mbox{$n-1$ terms}} \quad \pmod{n}.\] 8 | -/ 9 | theorem putnam_1997_b5 10 | (n : ℕ) 11 | (hn : n ≥ 2) 12 | : tetration 2 n ≡ tetration 2 (n-1) [MOD n] := 13 | sorry 14 | -------------------------------------------------------------------------------- /lean4/src/putnam_1998_a3.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | /-- 4 | 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 .\] 5 | -/ 6 | theorem putnam_1998_a3 7 | (f : ℝ → ℝ) 8 | (hf : ContDiff ℝ 3 f) 9 | : ∃ a : ℝ, (f a) * (deriv f a) * (iteratedDeriv 2 f a) * (iteratedDeriv 3 f a) ≥ 0 := 10 | sorry 11 | -------------------------------------------------------------------------------- /lean4/src/putnam_1998_b1.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Set Function Metric 4 | 5 | abbrev putnam_1998_b1_solution : ℝ := sorry 6 | -- 6 7 | /-- 8 | Find the minimum value of \[\frac{(x+1/x)^6-(x^6+1/x^6)-2}{(x+1/x)^3+(x^3+1/x^3)}\] for $x>0$. 9 | -/ 10 | theorem putnam_1998_b1 11 | : sInf {((x + 1/x)^6 - (x^6 + 1/x^6) - 2)/((x + 1/x)^3 + (x^3 + 1/x^3)) | x > (0 : ℝ)} = putnam_1998_b1_solution := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_1998_b6.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Set Function Metric 4 | 5 | /-- 6 | Prove that, for any integers $a, b, c$, there exists a positive integer $n$ such that $\sqrt{n^3+an^2+bn+c}$ is not an integer. 7 | -/ 8 | theorem putnam_1998_b6 9 | : ∀ a b c : ℤ, ∃ n : ℤ, n > 0 ∧ ¬(∃ k : ℤ, k = Real.sqrt (n^3 + a * n^2 + b * n + c)) := 10 | sorry 11 | -------------------------------------------------------------------------------- /lean4/src/putnam_1999_a2.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | /-- 4 | 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.\] 5 | -/ 6 | theorem putnam_1999_a2 7 | (p : Polynomial ℝ) 8 | (hp : ∀ x, p.eval x ≥ 0) 9 | : ∃ᵉ (k) (f : Fin k → Polynomial ℝ), 10 | k > 0 ∧ 11 | ∀ x : ℝ, p.eval x = ∑ j : Fin k, ((f j).eval x) ^ 2 := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_1999_a5.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Filter Topology Metric 4 | 5 | /-- 6 | Prove that there is a constant $C$ such that, if $p(x)$ is a polynomial of degree 1999, then \[|p(0)|\leq C \int_{-1}^1 |p(x)|\,dx.\] 7 | -/ 8 | theorem putnam_1999_a5 9 | : ∃ C : ℝ, ∀ p : Polynomial ℝ, p.degree = 1999 → ‖p.eval 0‖ ≤ C * ∫ x in (-1)..1, ‖p.eval x‖ := 10 | sorry 11 | -------------------------------------------------------------------------------- /lean4/src/putnam_2000_a2.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Topology Filter 4 | 5 | /-- 6 | Prove that there exist infinitely many integers $n$ such that $n,n+1,n+2$ are each the sum of the squares of two integers. 7 | -/ 8 | theorem putnam_2000_a2 : 9 | ∀ n : ℕ, 10 | ∃ N : ℤ, 11 | ∃ i : Fin 6 → ℕ, 12 | N > n ∧ 13 | N = (i 0)^2 + (i 1)^2 ∧ 14 | N + 1 = (i 2)^2 + (i 3)^2 ∧ 15 | N + 2 = (i 4)^2 + (i 5)^2 := 16 | sorry 17 | -------------------------------------------------------------------------------- /lean4/src/putnam_2000_a4.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Topology Filter 4 | 5 | /-- 6 | Show that the improper integral $\lim_{B \to \infty} \int_0^B \sin(x)\sin(x^2)\,dx$ converges. 7 | -/ 8 | theorem putnam_2000_a4 9 | : ∃ y : ℝ, Tendsto (fun B : ℝ => ∫ x in Set.Ioo 0 B, Real.sin x * Real.sin (x ^ 2)) atTop (𝓝 y) := 10 | sorry 11 | -------------------------------------------------------------------------------- /lean4/src/putnam_2000_b2.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Topology Filter Nat 4 | 5 | /-- 6 | Prove that the expression 7 | \[ 8 | \frac{gcd(m,n)}{n}\binom{n}{m} 9 | \] 10 | is an integer for all pairs of integers $n\geq m\geq 1$. 11 | -/ 12 | theorem putnam_2000_b2 13 | : (∀ m n : ℕ, m ≥ 1 → n ≥ m → n ∣ Nat.gcd m n * Nat.choose n m) := 14 | sorry 15 | -------------------------------------------------------------------------------- /lean4/src/putnam_2000_b4.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Topology Filter Nat Set Function 4 | 5 | /-- 6 | Let $f(x)$ be a continuous function such that $f(2x^2-1)=2xf(x)$ for all $x$. Show that $f(x)=0$ for $-1\leq x\leq 1$. 7 | -/ 8 | theorem putnam_2000_b4 9 | (f : ℝ → ℝ) 10 | (hfcont : Continuous f) 11 | (hf : ∀ x, f (2 * x ^ 2 - 1) = 2 * x * f x) 12 | : ∀ x, x ∈ Icc (-1) 1 → f x = 0 := 13 | sorry 14 | -------------------------------------------------------------------------------- /lean4/src/putnam_2001_a1.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Topology Filter 4 | 5 | /-- 6 | Consider a set $S$ and a binary operation $*$, i.e., for each $a,b\in S$, $a*b\in S$. Assume $(a*b)*a=b$ for all $a,b\in S$. Prove that $a*(b*a)=b$ for all $a,b\in S$. 7 | -/ 8 | theorem putnam_2001_a1 9 | (S : Type*) 10 | [Mul S] 11 | (hS : ∀ a b : S, (a * b) * a = b) 12 | : ∀ a b : S, a * (b * a) = b := 13 | sorry 14 | -------------------------------------------------------------------------------- /lean4/src/putnam_2001_a5.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Topology Filter Polynomial Set 4 | 5 | /-- 6 | Prove that there are unique positive integers $a$, $n$ such that $a^{n+1}-(a+1)^n=2001$. 7 | -/ 8 | theorem putnam_2001_a5 9 | : ∃! an : ℤ × ℕ, let (a, n) := an; a > 0 ∧ n > 0 ∧ a^(n+1) - (a+1)^n = 2001 := 10 | sorry 11 | -------------------------------------------------------------------------------- /lean4/src/putnam_2002_b3.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Nat Set Topology Filter 4 | 5 | /-- 6 | Show that, for all integers $n > 1$, 7 | \[ 8 | \frac{1}{2ne} < \frac{1}{e} - \left( 1 - \frac{1}{n} \right)^n 9 | < \frac{1}{ne}. 10 | \] 11 | -/ 12 | theorem putnam_2002_b3 13 | (e : ℝ) 14 | (he : e = Real.exp 1) 15 | (f : ℤ → ℝ) 16 | (hf : f = fun n : ℤ => 1/e - (1 - 1/n)^n) 17 | : ∀ n : ℤ, n > 1 → 1/(2*n*e) < f n ∧ f n < 1/(n*e) := 18 | sorry 19 | -------------------------------------------------------------------------------- /lean4/src/putnam_2003_a4.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open MvPolynomial 4 | 5 | /-- 6 | Suppose that $a,b,c,A,B,C$ are real numbers, $a \ne 0$ and $A \ne 0$, such that $|ax^2+bx+c| \leq |Ax^2+Bx+C|$ for all real numbers $x$. Show that $|b^2-4ac| \leq |B^2-4AC|$. 7 | -/ 8 | theorem putnam_2003_a4 9 | (a b c A B C : ℝ) 10 | (aAne0 : a ≠ 0 ∧ A ≠ 0) 11 | (hle : ∀ x : ℝ, |a * x ^ 2 + b * x + c| ≤ |A * x ^ 2 + B * x + C|) 12 | : |b ^ 2 - 4 * a * c| ≤ |B ^ 2 - 4 * A * C| := 13 | sorry 14 | -------------------------------------------------------------------------------- /lean4/src/putnam_2003_b1.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open MvPolynomial Set 4 | 5 | abbrev putnam_2003_b1_solution : Prop := sorry 6 | -- False 7 | /-- 8 | Do there exist polynomials $a(x), b(x), c(y), d(y)$ such that \[ 1 + xy + x^2y^2 = a(x)c(y) + b(x)d(y)\] holds identically? 9 | -/ 10 | theorem putnam_2003_b1 11 | : (∃ a b c d : Polynomial ℝ, (∀ x y : ℝ, 1 + x * y + x ^ 2 * y ^ 2 = a.eval x * c.eval y + b.eval x * d.eval y)) ↔ putnam_2003_b1_solution := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_2003_b3.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open MvPolynomial Set Nat 4 | 5 | /-- 6 | 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$.) 7 | -/ 8 | theorem putnam_2003_b3 (n : ℕ) : 9 | n ! = ∏ i ∈ Finset.Icc 1 n, ((List.range ⌊n / i⌋₊).map succ).foldl Nat.lcm 1 := 10 | sorry 11 | -------------------------------------------------------------------------------- /lean4/src/putnam_2003_b6.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open MvPolynomial Set Nat 4 | 5 | /-- 6 | Let $f(x)$ be a continuous real-valued function defined on the interval $[0,1]$. Show that \[ \int_0^1 \int_0^1 | f(x) + f(y) |\,dx\,dy \geq \int_0^1 |f(x)|\,dx. \] 7 | -/ 8 | theorem putnam_2003_b6 9 | (f : ℝ → ℝ) 10 | (hf : Continuous f) 11 | : (∫ x in (0 : ℝ)..1, (∫ y in (0 : ℝ)..1, |f x + f y|)) ≥ (∫ x in (0 : ℝ)..1, |f x|) := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_2004_b2.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Nat Topology Filter 4 | 5 | /-- 6 | Let $m$ and $n$ be positive integers. Show that $\frac{(m+n)!}{(m+n)^{m+n}}<\frac{m!}{m^m}\frac{n!}{n^n}$. 7 | -/ 8 | theorem putnam_2004_b2 9 | (m n : ℕ) 10 | (mnpos : m > 0 ∧ n > 0) 11 | : ((m + n)! / ((m + n) ^ (m + n) : ℚ)) < (((m)! / (m ^ m : ℚ)) * ((n)! / (n ^ n : ℚ))) := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_2005_a1.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Nat 4 | 5 | /-- 6 | Show that every positive integer is a sum of one or more numbers of the form $2^r 3^s$, where $r$ and $s$ are nonnegative integers and no summand divides another. 7 | -/ 8 | theorem putnam_2005_a1 9 | : ∀ n : ℤ, n > 0 → (∃ k : ℕ, ∃ a : Fin k → Fin 2 → ℕ, n = ∑ i : Fin k, 2^(a i 0)*3^(a i 1) ∧ 10 | (∀ i j : Fin k, i ≠ j → ¬(2^(a i 0)*3^(a i 1) ∣ 2^(a j 0)*3^(a j 1)))) := 11 | sorry 12 | -------------------------------------------------------------------------------- /lean4/src/putnam_2005_a5.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Nat Set 4 | 5 | noncomputable abbrev putnam_2005_a5_solution : ℝ := sorry 6 | -- Real.pi * (Real.log 2) / 8 7 | /-- 8 | Evaluate $\int_0^1 \frac{\ln(x+1)}{x^2+1}\,dx$. 9 | -/ 10 | theorem putnam_2005_a5 : 11 | ∫ x in (0:ℝ)..1, (Real.log (x+1))/(x^2 + 1) = putnam_2005_a5_solution := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_2006_a1.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | noncomputable abbrev putnam_2006_a1_solution : ℝ := sorry 4 | -- 6 * Real.pi ^ 2 5 | /-- 6 | Find the volume of the region of points $(x,y,z)$ such that 7 | \[ 8 | (x^2 + y^2 + z^2 + 8)^2 \leq 36(x^2 + y^2). 9 | \] 10 | -/ 11 | theorem putnam_2006_a1 12 | : ((MeasureTheory.volume {(x, y, z) : ℝ × ℝ × ℝ | (x ^ 2 + y ^ 2 + z ^ 2 + 8) ^ 2 ≤ 36 * (x ^ 2 + y ^ 2)}).toReal = putnam_2006_a1_solution) := 13 | sorry 14 | -------------------------------------------------------------------------------- /lean4/src/putnam_2006_b2.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | /-- 4 | 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 5 | \[ 6 | \left| m + \sum_{s \in S} s \right| \leq \frac{1}{n+1}. 7 | \] 8 | -/ 9 | theorem putnam_2006_b2 10 | (n : ℕ) 11 | (npos : n > 0) 12 | (X : Finset ℝ) 13 | (hXcard : X.card = n) 14 | : (∃ S ⊆ X, S ≠ ∅ ∧ ∃ m : ℤ, |m + ∑ s ∈ S, s| ≤ 1 / (n + 1)) := 15 | sorry 16 | -------------------------------------------------------------------------------- /lean4/src/putnam_2007_a5.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Set Nat 4 | 5 | /-- 6 | Suppose that a finite group has exactly $n$ elements of order $p$, where $p$ is a prime. Prove that either $n = 0$ or $p$ divides $n+1$. 7 | -/ 8 | theorem putnam_2007_a5 9 | (G : Type*) [Group G] [Fintype G] 10 | (p n : ℕ) 11 | (hp : Nat.Prime p) 12 | (hn : n = {g : G | orderOf g = p}.encard) 13 | : n = 0 ∨ p ∣ (n + 1) := 14 | sorry 15 | -------------------------------------------------------------------------------- /lean4/src/putnam_2007_b1.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Set Nat 4 | 5 | /-- 6 | Let $f$ be a nonconstant polynomial with positive integer coefficients. Prove that if $n$ is a positive integer, then $f(n)$ divides $f(f(n) + 1)$ if and only if $n = 1$ 7 | -/ 8 | theorem putnam_2007_b1 9 | (f : Polynomial ℤ) 10 | (hf : ∀ n : ℕ, f.coeff n ≥ 0) 11 | (hfnconst : ∃ n : ℕ, n > 0 ∧ f.coeff n > 0) 12 | (n : ℤ) 13 | (hn : n > 0) 14 | : f.eval n ∣ f.eval (f.eval n + 1) ↔ n = 1 := 15 | sorry 16 | -------------------------------------------------------------------------------- /lean4/src/putnam_2008_a1.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | /-- 4 | 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$. 5 | -/ 6 | theorem putnam_2008_a1 7 | (f : ℝ → ℝ → ℝ) 8 | (hf : ∀ x y z : ℝ, f x y + f y z + f z x = 0) 9 | : ∃ g : ℝ → ℝ, ∀ x y : ℝ, f x y = g x - g y := 10 | sorry 11 | -------------------------------------------------------------------------------- /lean4/src/putnam_2009_a5.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Topology MvPolynomial Filter Set 4 | 5 | abbrev putnam_2009_a5_solution : Prop := sorry 6 | -- False 7 | /-- 8 | Is there a finite abelian group $G$ such that the product of the orders of all its elements is 2^{2009}? 9 | -/ 10 | theorem putnam_2009_a5 11 | : (∃ (G : Type*) (_ : CommGroup G) (_ : Fintype G), ∏ g : G, orderOf g = 2^2009) ↔ putnam_2009_a5_solution := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_2010_a4.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | /-- 4 | Prove that for each positive integer $n$, the number $10^{10^{10^n}} + 10^{10^n} + 10^n - 1$ is not prime. 5 | -/ 6 | theorem putnam_2010_a4 7 | : ∀ n : ℕ, n > 0 → ¬Nat.Prime (10^10^10^n + 10^10^n + 10^n - 1) := 8 | sorry 9 | -------------------------------------------------------------------------------- /lean4/src/putnam_2010_b1.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Filter Topology Set 4 | 5 | abbrev putnam_2010_b1_solution : Prop := sorry 6 | -- False 7 | /-- 8 | Is there an infinite sequence of real numbers $a_1, a_2, a_3, \dots$ such that \[ a_1^m + a_2^m + a_3^m + \cdots = m \] for every positive integer $m$? 9 | -/ 10 | theorem putnam_2010_b1 11 | : (∃ a : ℕ → ℝ, ∀ m : ℕ, m > 0 → ∑' i : ℕ, (a i)^m = m) ↔ putnam_2010_b1_solution := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_2010_b5.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Filter Topology Set 4 | 5 | abbrev putnam_2010_b5_solution : Prop := sorry 6 | -- False 7 | /-- 8 | Is there a strictly increasing function $f: \mathbb{R} \to \mathbb{R}$ such that $f'(x) = f(f(x))$ for all $x$? 9 | -/ 10 | theorem putnam_2010_b5 : 11 | (∃ f : ℝ → ℝ, StrictMono f ∧ Differentiable ℝ f ∧ (∀ x : ℝ, deriv f x = f (f x))) ↔ putnam_2010_b5_solution := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_2011_b1.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Topology Filter Matrix 4 | 5 | /-- 6 | Let $h$ and $k$ be positive integers. Prove that for every $\epsilon>0$, there are positive integers $m$ and $n$ such that $\epsilon<|h\sqrt{m}-k\sqrt{n}|<2\epsilon$. 7 | -/ 8 | theorem putnam_2011_b1 9 | (h k : ℤ) 10 | (hkpos : h > 0 ∧ k > 0) 11 | : ∀ ε > 0, ∃ m n : ℤ, m > 0 ∧ n > 0 ∧ ε < |h * Real.sqrt m - k * Real.sqrt n| ∧ |h * Real.sqrt m - k * Real.sqrt n| < 2 * ε := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_2011_b6.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Topology Filter Matrix Set 4 | 5 | /-- 6 | Let $p$ be an odd prime. Show that for at least $(p+1)/2$ values of $n$ in $\{0,1,2,\dots,p-1\}$, 7 | \[ 8 | \sum_{k=0}^{p-1} k! n^k \qquad \mbox{is not divisible by $p$.} 9 | \] 10 | -/ 11 | theorem putnam_2011_b6 12 | (p : ℕ) 13 | (hp : Odd p ∧ Nat.Prime p) 14 | : {n ∈ Finset.range p | ¬ p ∣ ∑ k : Finset.range p, Nat.factorial k * n^(k : ℕ)}.card ≥ (p + 1)/2 := 15 | sorry 16 | -------------------------------------------------------------------------------- /lean4/src/putnam_2014_a5.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Topology Filter Nat 4 | 5 | /-- 6 | Let \[ P_n(x) = 1 + 2 x + 3 x^2 + \cdots + n x^{n-1}.\] Prove that the polynomials $P_j(x)$ and $P_k(x)$ are relatively prime for all positive integers $j$ and $k$ with $j \neq k$. 7 | -/ 8 | theorem putnam_2014_a5 9 | (P : ℕ → Polynomial ℂ) 10 | (hP : ∀ n, P n = ∑ i ∈ Finset.Icc 1 n, i * Polynomial.X ^ (i - 1)) 11 | : ∀ (j k : ℕ), (j > 0 ∧ k > 0) → j ≠ k → IsCoprime (P j) (P k) := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_2014_b4.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Topology Filter Nat 4 | 5 | /-- 6 | Show that for each positive integer \( n \), all the roots of the polynomial $ \sum_{k=0}^{n} 2^k(n-k)x^k $ are real numbers. 7 | -/ 8 | theorem putnam_2014_b4 9 | (n : ℕ) 10 | (P: Polynomial ℂ) 11 | (npos : n > 0) 12 | (Px : P.degree = n ∧ ∀ k ∈ Set.Icc 0 n, P.coeff k = 2 ^ (k * (n - k))) 13 | : ∀ r ∈ P.roots, r.im = 0 := 14 | sorry 15 | -------------------------------------------------------------------------------- /lean4/src/putnam_2015_a3.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | abbrev putnam_2015_a3_solution : ℂ := sorry 4 | -- 13725 5 | /-- 6 | Compute $\log_2 \left( \prod_{a=1}^{2015}\prod_{b=1}^{2015}(1+e^{2\pi iab/2015}) \right)$. Here $i$ is the imaginary unit (that is, $i^2=-1$). 7 | -/ 8 | theorem putnam_2015_a3 : 9 | Complex.log (∏ a : Fin 2015, ∏ b : Fin 2015, (1 + Complex.exp (2 * Real.pi * Complex.I * (a.1 + 1) * (b.1 + 1) / 2015))) / Complex.log 2 = putnam_2015_a3_solution := 10 | sorry 11 | -------------------------------------------------------------------------------- /lean4/src/putnam_2016_b6.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Polynomial Filter Topology Real Set Nat List 4 | 5 | abbrev putnam_2016_b6_solution : ℝ := sorry 6 | -- 1 7 | /-- 8 | Evaluate $\sum_{k=1}^\infty \frac{(-1)^{k-1}}{k} \sum_{n=0}^\infty \frac{1}{k2^n+1}$. 9 | -/ 10 | theorem putnam_2016_b6 : 11 | ∑' k : ℕ, ((-1 : ℝ) ^ ((k + 1 : ℤ) - 1) / (k + 1 : ℝ)) * ∑' n : ℕ, (1 : ℝ) / ((k + 1) * (2 ^ n) + 1) = putnam_2016_b6_solution := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_2017_b3.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Topology Filter 4 | 5 | /-- 6 | Suppose that $f(x) = \sum_{i=0}^\infty c_i x^i$ is a power series for which each coefficient $c_i$ is $0$ or $1$. Show that if $f(2/3) = 3/2$, then $f(1/2)$ must be irrational. 7 | -/ 8 | theorem putnam_2017_b3 9 | (f : ℝ → ℝ) 10 | (c : ℕ → ℝ) 11 | (hc : ∀ n, c n = 0 ∨ c n = 1) 12 | (hf : ∀ x, f x = ∑' n : ℕ, (c n) * x^n) 13 | : f (2/3) = 3/2 → Irrational (f 1/2) := 14 | sorry 15 | -------------------------------------------------------------------------------- /lean4/src/putnam_2018_a3.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | noncomputable abbrev putnam_2018_a3_solution : ℝ := sorry 4 | -- 480/49 5 | /-- 6 | Determine the greatest possible value of $\sum_{i=1}^{10} \cos(3x_i)$ for real numbers $x_1, x_2, \ldots, x_{10}$ satisfying $\sum_{i=1}^{10} \cos(x_i) = 0$. 7 | -/ 8 | theorem putnam_2018_a3 : 9 | IsGreatest 10 | {∑ i, Real.cos (3 * x i) | (x : Fin 10 → ℝ) (hx : ∑ i, Real.cos (x i) = 0)} 11 | putnam_2018_a3_solution := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_2018_b2.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | /-- 4 | 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\}$. 5 | -/ 6 | theorem putnam_2018_b2 7 | (n : ℕ) 8 | (hn : n > 0) 9 | (f : ℕ → ℂ → ℂ) 10 | (hf : ∀ z : ℂ, f n z = ∑ i ∈ Finset.range n, (n - i) * z^i) 11 | : ∀ z : ℂ, ‖z‖ ≤ 1 → f n z ≠ 0 := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_2018_b3.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | abbrev putnam_2018_b3_solution : Set ℕ := sorry 4 | -- {2^2, 2^4, 2^16, 2^256} 5 | /-- 6 | Find all positive integers $n < 10^{100}$ for which simultaneously $n$ divides $2^n$, $n-1$ divides $2^n-1$, and $n-2$ divides $2^n - 2$. 7 | -/ 8 | theorem putnam_2018_b3 9 | (n : ℕ) (hn : 0 < n) : 10 | (n < 10^100 ∧ ((n : ℤ) ∣ (2^n : ℤ) ∧ (n - 1 : ℤ) ∣ (2^n - 1 : ℤ) ∧ (n - 2 : ℤ) ∣ (2^n - 2 : ℤ))) ↔ n ∈ putnam_2018_b3_solution := 11 | sorry 12 | -------------------------------------------------------------------------------- /lean4/src/putnam_2020_a2.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | abbrev putnam_2020_a2_solution : ℕ → ℕ := sorry 4 | -- fun k ↦ 4 ^ k 5 | /-- 6 | Let $k$ be a nonnegative integer. Evaluate 7 | \[ 8 | \sum_{j=0}^k 2^{k-j} \binom{k+j}{j}. 9 | \] 10 | -/ 11 | theorem putnam_2020_a2 12 | (k : ℕ) 13 | : (∑ j ∈ Finset.Icc 0 k, 2 ^ (k - j) * Nat.choose (k + j) j = putnam_2020_a2_solution k) := 14 | sorry 15 | -------------------------------------------------------------------------------- /lean4/src/putnam_2020_b5.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Filter Topology Set 4 | 5 | /-- 6 | For $j \in \{1, 2, 3, 4\}$, let $z_j$ be a complex number with $|z_j| = 1$ and $z_j \neq 1$. Prove that \[ 3 - z_1 - z_2 - z_3 - z_4 + z_1 z_2 z_3 z_4 \neq 0. \] 7 | -/ 8 | theorem putnam_2020_b5 9 | (z : Fin 4 → ℂ) 10 | (hzle1 : ∀ n, ‖z n‖ = 1) 11 | (hzne1 : ∀ n, z n ≠ 1) 12 | : 3 - z 0 - z 1 - z 2 - z 3 + (z 0) * (z 1) * (z 2) * (z 3) ≠ 0:= 13 | sorry 14 | -------------------------------------------------------------------------------- /lean4/src/putnam_2020_b6.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Filter Topology Set 4 | 5 | /-- 6 | Let $n$ be a positive integer. Prove that $\sum_{k=1}^n(-1)^{\lfloor k(\sqrt{2}-1) \rfloor} \geq 0$. 7 | -/ 8 | theorem putnam_2020_b6 9 | (n : ℕ) 10 | (npos : n > 0) 11 | : ∑ k ∈ Finset.Icc 1 n, ((-1) ^ Int.floor (k * (Real.sqrt 2 - 1)) : ℝ) ≥ 0 := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_2023_b2.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | open Nat 4 | 5 | abbrev putnam_2023_b2_solution : ℕ := sorry 6 | -- 3 7 | /-- 8 | For each positive integer $n$, let $k(n)$ be the number of ones in the binary representation of $2023 * n$. What is the minimum value of $k(n)$? 9 | -/ 10 | theorem putnam_2023_b2 11 | : sInf {(digits 2 (2023*n)).sum | n > 0} = putnam_2023_b2_solution := 12 | sorry 13 | -------------------------------------------------------------------------------- /lean4/src/putnam_2024_a1.lean: -------------------------------------------------------------------------------- 1 | import Mathlib 2 | 3 | noncomputable abbrev putnam_2024_a1_solution : Set ℕ := sorry 4 | --{1} 5 | /-- 6 | Determine all positive integers $n$ for which there exist positive integers $a$, $b$ and $c$ satisfying $2a^n + 3b^n = 4c^n$. 7 | -/ 8 | theorem putnam_2024_a1 : 9 | {n : ℕ | 0 < n ∧ ∃ (a b c : ℕ), 0 < a ∧ 0 < b ∧ 0 < c ∧ 2*a^n + 3*b^n = 4*c^n} 10 | = putnam_2024_a1_solution := 11 | sorry 12 | --------------------------------------------------------------------------------