Glossary
Every word this site uses, in one place: what this project defines, the words its explanations and readings use, and Lean's own words. Type in the box to filter.
Defined in this project
Every definition in this project, under its own name: the first paragraph of its description, or how it is declared when it has none. Theorems are not listed here: they are results, not words.
A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z · Other
A
- A def
def A (m : ℕ) (hm : 0 < m) : ℕ → ℤ· Canada1998P5.A- A def
def A : ℕ· Imo1975P4.A- A abbrev
abbrev A : Fin 8· Imo1979P6.A- A def
def A (i : Fin n) : Finset ℕ· Imo1989P1.A- A def
def A· Imo1989P6.A- A def
def A (n : ℕ) [NeZero n] : Prop· Imo1993P6.A- A def
- All incidences of agreement. · Imo1998P2.A
- a def
def a (href : String) (attrs : List Attr· Html.a- a def
def a (n : ℕ) : ℕ· Imo1971P3.a- a def
- The lower Wythoff sequence
⌊n·φ⌋, which is the functionfin the problem. · Imo1978P3.a - a def
def a (n : ℕ)· Imo1979P6.a- a def
def a (n : ℕ) : ℤ· Imo2005P4.a- a def
def a (x : Finset.Icc 1 2023 → ℝ) (n : Finset.Icc 1 2023) : ℝ· Imo2023P4.a- a def
def a : ℕ → ℕ· Poland1998P4.a- a def
- reindexed to start at 0 · Usa1973P2.a
- a def
- The sequence of the problem, with indices shifted by one so that
a n 0 = n: fork ≥ 1,a n kis the unique integer in[0, k]for whichk + 1dividess n k = a n 0 + ... + a n k. · Usa2007P1.a - a def
- The number of ways to advance around the circle exactly twice without repeating a move: sequences starting with
u = 0end inv = 1, and sequences starting withw = 2end inw = 2. · Usa2013P2.a - a' def
def a' (n : ℕ) : ZMod 7· Poland1998P4.a'- a1 def
- First circle when
13 ∤ n. · Usa1990P3.a1 - a2 def
- First circle when
13 ∣ n. · Usa1990P3.a2 - a_avg def
a_avg x nis the average of the termsx 0, x 1, ..., x n. · Usa1993P5.a_avg- A_equiv_B def
def A_equiv_B [NeZero n] : Equiv (A n) (B n)· Imo1989P6.A_equiv_B- aa def
def aa (m : ℕ) (x : Finset.Icc 1 (2 * m + 1) → ℝ) (n : Finset.Icc 1 (2 * m + 1)) : ℝ· Imo2023P4.aa- aang def
- The angle
a(X)from the problem statement: the measure in radians, counterclockwise fromOA, of the angle betweenOAandOX, taking values in[0, 2 * π). (The problem only uses this forX ≠ O; we define it for allX.) · Imo1984P3.aang - ABC def
def ABC : Affine.Triangle ℝ (EuclideanSpace ℝ (Fin 2))· Imo2001P1.Imo2001q1Cfg.ABC- ABC def
def ABC : Affine.Triangle ℝ (EuclideanSpace ℝ (Fin 2))· Imo2014P4.Imo2014q4Cfg.ABC- ABC def
def ABC : Affine.Triangle ℝ Pt· Imo2023P2.Imo2023q2Cfg.ABC- ACanWin def
Acan win the game with parameterkin finitely many moves. · Usa2014P4.ACanWin- aceSets def
- The sample space: the 3-element subsets of the positions
{1, ..., n}; each such subset records the positions of the three aces in the pack. · Usa1975P5.aceSets - aChoice def
- We define $a_{choice}(b) := 4*(2+b)^4$, so that we can take $m = 2+b$ in
polynomial_not_prime. · Imo1969P1.aChoice - AcuteSet def
- The predicate from the problem statement: the 3-element subset
wof indices spans an acute-angled triangle. · Imo1970P6.AcuteSet - add def
- Addition of two forms of the same degree. · Imo2017P6.HForm.add
- addColoring def
def addColoring (f g : coloring) : coloring· Usa1998P4.addColoring- Adj def
- Two cells are adjacent if their squares share a vertex (Chebyshev distance at most 1). · Usa2004P4.Adj
- Adj def
- Two lattice points are adjacent when their (Manhattan) distance is 1. · Usa2008P3.Adj
- Adj def
- Two cells are adjacent when their difference is one of the six unit steps. · Usa2014P4.Adj
- Adjacent def
- Definition of adjacency: Two squares are adjacent if they share a common side. · Imo1999P3.Adjacent
- Adjacent def
- Whether two cells are adjacent. · Imo2022P6.Adjacent
- Adjacent def
- Whether two cells are adjacent. · Imo2024P5.Adjacent
- adjacent def
def adjacent {n : ℕ} : checkerboard n → checkerboard n → Prop· Usa1999P1.adjacent- AdjDistinct abbrev
- Adjacent columns are distinct. · Usa2013P2.AdjDistinct
- Admissible def
- A configuration is admissible if it can be obtained from the initial configuration by a finite number of operations. Since the operations commute and are involutions, every sequence of operations is described by a
Moves. · Usa2013P3.Admissible - AdmissibleMark def
- The set of admissible markings for a player: a finite subset of
(0,1)of size at mostn. We encode it as aFinset ℝsubject to the side conditions. · Imo2026P3.AdmissibleMark - aE def
- the "a" side representative: if the negative loop
(-k,-k)appears, we take-kas the representative (making all loops "positive"); otherwisek. · Usa2010P6.aE - AffSubOfPlane abbrev
- Affine subspaces of the plane (i.e. ∅, point, line, plane) · Imo2025P1.AffSubOfPlane
- AForce inductive
AForce k smeans that from the boards, withAto move,Acan force a win in finitely many moves regardless of howBplays. Since the witness is an inductive tree covering all ofB's responses, every play following the strategy … · Usa2014P4.AForce- Agree abbrev
- The proposition that the judges in an ordered pair agree about a contestant's rating. · Imo1998P2.JudgePair.Agree
- agreedContestants def
- The set of contestants on which two judges agree. · Imo1998P2.agreedContestants
- AgreedTriple abbrev
- A triple consisting of contestant together with an ordered pair of judges. · Imo1998P2.AgreedTriple
- ainvCount def
- The number of
A-inversions of the permutationσ. · Usa2017P2.ainvCount - aliceAns def
- The
t-th answer of A's counterplay. · Imo2012P3.aliceAns - aliceHist def
- The answer history of A's counterplay after
tsteps. · Imo2012P3.aliceHist - alicePlay def
- A's counterplay against
σ: after each answer she records, for every candidate, the length of its current run of consecutive lies. Given a question, she chooses the side with smaller total weight as the "bad set" and answers thatxlies … · Imo2012P3.alicePlay - aliceStreak def
- The streak (length of the current run of consecutive lies) of each candidate after
tanswers of A's counterplay. · Imo2012P3.aliceStreak - aliceWeight def
- The total weight after
tanswers. · Imo2012P3.aliceWeight - AliceWins def
- Alice wins a finished board: there is a chain of black cells, consecutive cells sharing a vertex, from the top row to the bottom row. · Usa2004P4.AliceWins
- all_black_k def
def all_black_k : Finset (Point n)· Imo2025P6.all_black_k- all_colorings_are_good abbrev
abbrev all_colorings_are_good (m : ℕ) : Prop· Bulgaria1998P1.all_colorings_are_good- all_one_or_two abbrev
abbrev all_one_or_two (l : List ℕ) : Prop· ZerosOnesAndTwos.all_one_or_two- all_prefixes def
def all_prefixes (p : List α → Prop) (a : Stream' α) : Prop· KolmogorovStreams.all_prefixes- all_same_class def
def all_same_class (is_decent : List α → Prop) (b : Stream' (List α)) : Prop· KolmogorovStreams.all_same_class- all_same_color def
def all_same_color (f : coloring) : Prop· Usa1998P4.all_same_color- AllCutsDistinct def
- The property from the problem statement: no matter how the necklace is cut into
mblocks ofnconsecutive beads (the cut is determined by the starting positionsof the first block), the numbers of red beads in themblocks are … · Usa2024P4.AllCutsDistinct - allImoUrls def
def allImoUrls (year : Nat) (idx : Nat) : List WriteupLink· allImoUrls- AllRightOf def
- The property of
lamin the problem: starting from any initial configuration in which the fleas are not all at the same point, for every pointMon the line there is a finite sequence of moves taking all the fleas strictly to the right … · Imo2000P3.AllRightOf - allUsamoUrls def
def allUsamoUrls (year : Nat) (idx : Nat) : List WriteupLink· allUsamoUrls- alternateSum def
def List.alternateSum {α : Type u} [Add α] [Zero α] (l : List α) (head : Bool) : α· Imo2022P1.List.alternateSum- Alternating abbrev
abbrev Alternating (n : Nat) : Prop· Imo2004P6.Alternating- altFormula def
- The key to solving this problem simply is that we can rewrite the equation as a product of terms, shown in `alt_formula`, being equal to zero. · Imo1962P4.altFormula
- AltPath structure
- An alternating path in
S: a list of at least two distinct points ofSsuch that the step from positionito positioni + 1is horizontal (the two points agree on their second coordinate) wheniis even and vertical (the two … · Imo1986P6.AltPath - altSeq def
- The alternating sequence
0, 1, 0, 1, .... · Usa1987P5.altSeq - altSum def
- The alternating sum
∑_{U ⊆ s} (-1)^{|U|} (m - σ(U)).choose k, viewed as an integer. · Usa1994P5.altSum - AMove def
- A legal move of player A: from the number
njust chosen by B (or the initial numbern₀), A may choose anymwithn ≤ m ≤ n ^ 2(A wins by choosing 1990). · Imo1990P5.AMove - AMove def
- A move of player
A: place counters on two empty adjacent cells. · Usa2014P4.AMove - AmyEnsures def
- Amy can ensure that she places at least
Kstones. (400 rounds of fuel exceeds any possible length of play, since every round occupies two new sites of the 400.) · Imo2018P4.AmyEnsures - amyMoves def
- The sites on which Amy may place a stone: the unoccupied sites at distance different from
√5from every red stone. · Imo2018P4.amyMoves - ang def
- The angle of the
j-th vertex of a regular 4027-gon. · Imo2013P2.ang - answers def
- The number of answers given so far in the current round. · Imo2012P3.BobPhase.answers
- antipascal_triangle structure
- antipascal triangle with n rows · Imo2018P3.antipascal_triangle
- antipode def
def Sphere.antipode (s : Sphere Pt) (p : Pt) : Pt· Imo2023P2.Sphere.antipode- aopsImoUrl def
def aopsImoUrl (year : Nat) (idx : Nat) : String· aopsImoUrl- aopsUsamoUrl def
def aopsUsamoUrl (year : Nat) (idx : Nat) : String· aopsUsamoUrl- apCount def
- The number of three-term arithmetic progressions among the first
nterms ofa, counted by their middle index. · Usa1980P2.apCount - apeb def
- The lighter pebble of pair
k. · Imo2020P3.apeb - apPairs def
- For a sequence
a : ℕ → ℝand an indexj, the finset of pairs(i, k)withi < j < k < nsuch thata i, a j, a kforms a three-term arithmetic progression. Every three-term arithmetic progression with indices belowncorresponds … · Usa1980P2.apPairs - append def
- Append two closed trails that both start at the same vertex
v. · Imo2020P3.CTrail.append - appendToLast def
def appendToLast {n : ℕ} (b : Fin (n + 1) → List ℝ) (extra : List ℝ) : Fin (n + 1) → List ℝ· Imo2026P3.appendToLast- appleTouchIconPng def
def appleTouchIconPng : Asset· Assets.appleTouchIconPng- apply def
- Evaluate a trigonometric map at a real number. · Usa1995P2.TrigMap.apply
- applyMoves def
- The configuration reached from the initial (all-white) configuration by performing the moves
v: token(a, b)ends up black iff an odd number of the three lines through it were flipped. · Usa2013P3.applyMoves - apPoly def
- The polynomial
P(x) = ∏_{i=1}^{k} (x + i·d)attached to an arithmetic progression with common differenced. · Imo2023P3.apPoly - Aquaesulian def
def Aquaesulian (f : ℚ → ℚ) : Prop· Imo2024P6.Aquaesulian- Aquaesulian def
- The condition on functions in the problem (for a general
AddCommGroupand in symmetric form). · Imo2024P6.General.Aquaesulian - arcDist def
- The arc distance between two of the 432 points: the number of unit arcs in the shorter of the two arcs joining them. The chord through
xandyhas length2R sin(π·d/432)withd = arcDist x y, which is strictly increasing in `d ∈ … · Usa2012P2.arcDist - arcOf def
- The
i-th arc as a finset. · Usa2025P6.CirclePartition.arcOf - arcSet def
- An arc of length
lstarting atcon the circleZMod m. · Usa2025P6.arcSet - arith_mean def
def arith_mean (ms : Multiset ℕ) : ℚ· Imo1981P2.arith_mean- Arrangement abbrev
- An arrangement of the
2ncards: the label shown at each position. · Usa2016P6.Arrangement - Asleep def
- Each professor
p : Fin 5takes two naps, and napk : Fin 2of professorpis the closed interval[s p k, e p k]. Professorpis asleep at timetiftbelongs to one of these two nap intervals. · Usa1986P2.Asleep - assembleSelectedBlocks def
def assembleSelectedBlocks (p : List ℝ) (I : Finset (Fin p.length)) (b : Fin (selectedList p I).length → List ℝ) : Fin p.length → List ℝ· Imo2026P3.assembleSelectedBlocks- assembleTwoSelectedBlocks def
def assembleTwoSelectedBlocks (p : List ℝ) (I J : Finset (Fin p.length)) (bI : Fin (selectedList p I).length → List ℝ) (bJ : Fin (selectedList p J).length → List ℝ) : Fin p.length → List ℝ· Imo2026P3.assembleTwoSelectedBlocks- Asset inductive
- A static asset to be copied · Asset
- assocB def
- The association map from red lines to blue points, for a choice of witnesses. · Imo2014P6.assocB
- Attr abbrev
- A single HTML attribute · Attr
- auxColor def
- The extremal coloring on 32 edges (Wöginger's construction): vertices
0,…,3form the red square,4,…,7the blue square, and8is the apex. The diagonals of the two squares are the four uncolored edges. · Imo1992P3.auxColor - auxColoring def
- The extremal coloring, packaged as an
EdgeColoring. · Imo1992P3.auxColoring - auxPoly def
- The polynomial
1 + X^k + (-1 - X)^koverℝ. It arises from substitutingx = 1,y = t,z = -1 - tintox^k + y^k + z^k(note1 + t + (-1 - t) = 0). · Usa1982P2.auxPoly - avail def
- The set of blue points that have not been used yet. · Usa2017P4.avail
- AWins inductive
AWins n: it is A's turn and the current number isn(the initial position hasn = n₀), and A has a winning strategy. A either wins immediately by choosing 1990 (a legal move fromn), or chooses a legal movemfrom which B cannot … · Imo1990P5.AWins- A₂ def
A₂is the second point of intersection of the rayAA₁with the circumcircle ofABC. · Imo2019P2.Imo2019q2Cfg.A₂
B
- B def
def B : ℕ· Imo1975P4.B- B def
def B· Imo1989P6.B- B def
def B (n : ℕ) [NeZero n] : Prop· Imo1993P6.B- B def
- The elements
ioutsideX csuch thatX c ∪ {i}is blue. · Usa2015P3.B - b def
def b (attrs : List Attr· Html.b- b def
def b (n : ℕ)· Imo1979P6.b- b def
- The blue point associated to
ℓ: the next vertex of the region afterrin clockwise order. · Imo2014P6.Witness.b - b def
def b : ℕ → ℕ· Usa1973P2.b- b def
b n: the smallest number of blocks one can tear out of an n×n sheet of stamps (tearing out whole blocks of three adjacent stamps in a single row or column) making it impossible to tear out any more blocks. · Usa2002P6.b- b def
- The average
b n k = (a n 0 + ... + a n k) / (k + 1), a nonnegative integer. · Usa2007P1.b - b0 def
- The number of blue points on the axis
y = 0in a list. · Usa2008P3.b0 - b1a def
- Second circle when
13 ∤ nandn ≢ 2 [MOD 17]. · Usa1990P3.b1a - b1b def
- Second circle when
13 ∤ nandn ≡ 2 [MOD 17]. · Usa1990P3.b1b - b2a def
- Second circle when
13 ∣ nandn ≢ 16 [MOD 17]. · Usa1990P3.b2a - b2b def
- Second circle when
13 ∣ nandn ≡ 16 [MOD 17]. · Usa1990P3.b2b - b_avg def
b_avg x nis the average of the termsx 1, x 2, ..., x n. · Usa1993P5.b_avg- b_seq def
- The b_n sequence defined in terms of the a sequence · Imo1970P3.b_seq
- b_st_coords def
def b_st_coords (s t : Int) : Int × Int· Imo2025P6.b_st_coords- Bad def
- The triple of points
X,Y,Zhas an angle of at leastπ / 2(atX, atY, or atZrespectively). · Imo1970P6.Bad - badPair def
- The "bad" vertices for a pair
p: the remaining vertices that are joined to exactly one of the two endpoints ofp. · Usa1985P4.badPair - badSet def
- The elements of
{1, ..., 280}divisible by2,3,5or7. Among any five of them, two share a common prime factor. · Imo1991P3.badSet - Balance def
- The imbalance (left pan minus right pan) after a sequence of placements. A pair
(i, b)denotes one placement of the weight2^i; the boolean istrueif the weight is placed on the left pan andfalseif it is placed on the right pan. · Imo2011P4.Balance - Balanced def
- A signing of a set of points of the plane:
ε p = 1means thatpis colored white andε p = -1means thatpis colored red. The difference between the numbers of white and red points ofSlying on a line then equals the sum of … · Imo1986P6.Balanced - Balanced def
- A finite set of cells is balanced under the coloring
fif each of the three letters occurs on exactly one third of its cells. · Imo2016P2.Balanced - base def
def base (title : String) (config : SConfig) (currentPage : NavbarState) (includeHljs : Bool· base- base def
- A distinguished point on the line: the foot of the perpendicular from the origin. · Imo2014P6.Line.base
- base_two_to_base_three def
def base_two_to_base_three (n : ℕ)· Imo1983P5.base_two_to_base_three- baseMonsterData def
- An arbitrary choice of monster positions, which is modified to put selected monsters in desired places. · Imo2024P5.baseMonsterData
- BaseSetup structure
structure BaseSetup (n : ℕ) [NeZero n]· Imo2025P6.BaseSetup- bazzaStrategy def
- Bazza's greedy strategy: spend the entire quadratic budget. · Imo2025P5.bazzaStrategy
- BddCond def
- The condition that the sequence
p(f(n²)) − 2nis bounded above (and defined for everyn). · Usa2006P3.BddCond - Beam inductive
- A beam in an
n × n × ncube, given by its orientation and the two coordinates of its cross-section: *xBeam j koccupiesy = j,z = kand spans thex-direction; *yBeam i koccupiesx = i,z = kand spans they-direction; … · Usa2020P2.Beam - BenInv def
- Ben's invariant: every 4-cycle contains at most one red stone, and the blue stones are exactly the opposite sites of the red stones. · Imo2018P4.BenInv
- benMoves def
- The sites on which Ben may place a stone: all unoccupied sites. · Imo2018P4.benMoves
- Big def
- Big numbers are those greater than
l(thus, appear at mostktimes). · Imo2024P3.Condition.Big - BigBound def
BigBound m c x ssholds when every jump ofss(performed starting from positionx) that ends at a position greater thanchas length at most2 ^ m. · Usa2006P5.BigBound- bigUnion def
- The union of the six pairwise coprime families, all inside
{1, ..., 280}. · Imo1991P3.bigUnion - BinaryPalindrome def
- Binary palindromes. · Imo1988P3.BinaryPalindrome
- binaryReverse def
- Reverse the base-two digits, dropping leading zeroes. · Imo1988P3.binaryReverse
- bisectLengths def
def bisectLengths (l : List ℝ) : List ℝ· Imo2026P3.bisectLengths- bitQuestion def
- The set of candidates whose
i-th bit is1. · Imo2012P3.bitQuestion - Blackboard abbrev
abbrev Blackboard (n : ℕ)· Usa2023P4.Blackboard- blackCount def
- The number of black squares of a rectangle. · Imo1974P4.Rect.blackCount
- blackPairs def
- The number (mod 2) of adjacent pairs of holes that are both black. · Imo2021P5.blackPairs
- blackPerm def
def blackPerm [NeZero n] : Fin n → Fin n· Imo2025P6.blackPerm- BlackPointProps structure
structure BlackPointProps (s t : Int) (p : Point n) : Prop· Imo2025P6.BlackPointProps- blacks def
- The black squares of the checkerboard coloring. · Imo2018P4.blacks
- blockCount def
- The number of red beads in the block of
nconsecutive beads starting at positions + i * n(positions are taken modulom * n). · Usa2024P4.blockCount - blockIndex def
def List.blockIndex {α : Type u} [DecidableEq α] (l : List α) (k : Fin l.length)· Imo2022P1.List.blockIndex- blockIndices def
def blockIndices (f : ℕ → ℕ) (N : ℕ) : List ℕ· Imo2026P3.blockIndices- blockMatrix def
def blockMatrix {n : ℕ} (A B C D : Fin n → Fin n → ℕ) : Fin (n + n) → Fin (n + n) → ℕ· Imo1997P4.blockMatrix- blocks def
def List.blocks {α : Type u} [DecidableEq α] : List α → List ℕ· Imo2022P1.List.blocks- blocks def
def Row.blocks {n : ℕ} (c : Row n) : List ℕ· Imo2022P1.Row.blocks- blue def
- The blue predicate. · Usa2008P3.blue
- blueCard def
blueCard c Tis the number of subsets ofTthat are colored blue byc; this is the functionfof the problem statement. · Usa2015P3.blueCard- blueCol def
- The blue points in column
x. · Imo2002P1.blueCol - bluePts def
- The blue points: vertices with even indices. · Imo2013P2.bluePts
- bluePts def
- The blue points: the intersection points of pairs of distinct blue lines. · Imo2014P6.bluePts
- BMove def
- A legal move of player B: from the number
mjust chosen by A, B may choose anym'such thatm / m'is a prime powerp ^ rwithr ≥ 1(B wins by choosing 1). · Imo1990P5.BMove - BMove def
- A move of player
B: remove one counter from the board. · Usa2014P4.BMove - Bnd def
- A constant dominating all values and all consecutive differences of
xe. · Usa2022P5.Bnd - Board abbrev
- A board is a finite multiset of natural numbers. The full board discipline (entries
≥ 1, cardinality2026) is captured by the predicateIsInitial. · Imo2026P1.Board - Board abbrev
- The board: square
icontainsb ifori < 2000; anything outside is irrelevant. · Usa1999P5.Board - Board abbrev
- A board state: the set of cells that currently hold a stone. · Usa2021P3.Board
- board def
- The 8 × 8 chessboard. · Imo1974P4.board
- BobCanForceEnd inductive
inductive BobCanForceEnd (a : ℕ+) (n : ℕ) : State n → Prop· Usa2023P4.BobCanForceEnd- bobCell2 def
- The cell Bob plays in when Alice plays in rows 3 to 6: some empty cell of rows 3 to 6 (one always exists at that point by a parity argument, see
inv_prefBoard). · Usa2004P4.bobCell2 - bobEmbedding def
- An embedding of the
2 ^ kbit patterns into the pool. · Imo2012P3.bobEmbedding - bobFreshValue def
- A rational number not appearing on the board. · Usa2004P4.bobFreshValue
- bobMateValue def
- The number Bob writes in the mate of Alice's cell when he answers in the first two rows. · Usa2004P4.bobMateValue
- bobMove def
- Bob's strategy: if Alice just played in the first two rows, answer in the mate of her cell with a number preserving the order-isomorphism; otherwise play in any empty cell of rows 3 to 6 with a fresh number. · Usa2004P4.bobMove
- BobPhase inductive
- Bob's phase within the current elimination round: either probing with the singleton question (
jconsecutive "no" answers so far), or asking the bit questions after a "yes" (the probe phase tookjanswers, andbsare the bit answers … · Imo2012P3.BobPhase - bobQuestion def
- Bob's question in a given phase: the singleton
{special}when probing, the|bs|-th bit question in the bit phase. · Imo2012P3.bobQuestion - bobSpecial def
- The distinguished candidate asked about in the probe phase: an element of the pool outside the image of the bit patterns. · Imo2012P3.bobSpecial
- BobState structure
- Bob's state: his current candidate pool together with the progress in the current elimination round. · Imo2012P3.BobState
- bobStateOf def
- Bob's state after processing the first
tanswers. · Imo2012P3.bobStateOf - bobStep def
- One step of Bob's state machine. If the pool is already small enough, the state is frozen. · Imo2012P3.bobStep
- bobStepPhase def
- One round-step of Bob's state machine, in the case
2 ^ k < P.card. · Imo2012P3.bobStepPhase - bobStrategy def
- Bob's winning strategy for part (a). · Imo2012P3.bobStrategy
- BobWins def
- Player B can guarantee a win with parameters
k, nwhen player A's bound isN. · Imo2012P3.BobWins - body def
def body (attrs : List Attr· Html.body- BOK def
- Well-formed board: nothing written outside the 2000 squares. · Usa1999P5.BOK
- Bonza def
def Bonza (f : ℕ+ → ℕ+) : Prop· Bonza- boundaryNeighbors def
def boundaryNeighbors {n : ℕ} (c : Finset (checkerboard n)) (x : c) : Finset (checkerboard n)· Usa1999P1.boundaryNeighbors- boundaryPoints def
def boundaryPoints (S : Finset ℝ) : List ℝ· Imo2026P3.boundaryPoints- Bounded abbrev
abbrev Bounded (x : ℕ → ℝ) : Prop· Imo1991P6.Bounded- bpeb def
- The heavier pebble of pair
k. · Imo2020P3.bpeb - br def
def br· Html.br- break_into_words def
def break_into_words : (Stream' ℕ) → -- word lengths (Stream' α) → -- original sequence (Stream' (List α)) -- sequence of words· KolmogorovStreams.break_into_words- bResponses def
- The legal responses available to B after A chooses
m. Keeping only divisors whose complementary factor is a prime power avoids reasoning about impossible moves. · Imo1990P5.bResponses - bSeq def
bSeq p nis the number obtained by writingnin basep - 1and reading the result in basep. · Usa1995P1.bSeq- bT def
- The parameter of the blue point
bin the parametrization ofg₁: the other endpoint of theg₁-edge. · Imo2014P6.Witness.bT - build def
- The sequence of length
n + 1with first termcwhose successive differences are given byx. · Usa1996P4.build - build def
- Runs the extraction algorithm for at most
fuelsteps, returning the list of extracted digits if the pair(0, 0)is reached in time. · Usa1997P3.build - build def
def build : ℕ → solution_set· Usa2017P1.build- buildAux def
- Auxiliary for
build: thek-th term of the sequence with first termcand successive differences given byx. · Usa1996P4.buildAux - buildSite def
- Build the entire site · buildSite
- bv def
- The contribution of one direction to the weight of
v ^^ sp ε: the number of flipped lines of that direction, as a function of the "full flip" bitδand the "theta flip" bitτ. · Usa2013P3.bv - BWins inductive
BWins m: it is B's turn and the current number ism, and B has a winning strategy. B either wins immediately by choosing 1, or chooses a legal movem' ≠ 1from which A cannot win (A wins by choosing 1990) and such that every legal … · Imo1990P5.BWins- BWinsStart def
BWinsStart n: B has a winning strategy from the initial position withn₀ = n(it is A's turn): whatever legal first movemA makes, it is not 1990 and B wins fromm. · Imo1990P5.BWinsStart- B₂ def
B₂is the second point of intersection of the rayBB₁with the circumcircle ofABC. · Imo2019P2.Imo2019q2Cfg.B₂
C
- C abbrev
abbrev C : Fin 8· Imo1979P6.C- C def
def C (n : ℕ) [NeZero n] : Prop· Imo1993P6.C- c abbrev
- The first index
i(0-based) such thatn ≤ a i. This exists becauseais unbounded. The problem'sbₙisc a hu n + 1(the 1-based index). · Usa1985P5.c - C' def
- The reflection of
Cin lineAB. · Imo2012P5.Imo2012P5Cfg.C' - C_G_symm def
def C_G_symm (n : ℕ) : {w : Octagon.Walk C E // isTerminalWalk w ∧ w.length = n} ≃ {w : Octagon.Walk G E // isTerminalWalk w ∧ w.length = n}· Imo1979P6.C_G_symm- c_seq def
- Helper: c_k = √(a_k) · Imo1970P3.c_seq
- calc_s def
def calc_s (p : Point n) : Int· Imo2025P6.calc_s- calc_t def
def calc_t (p : Point n) : Int· Imo2025P6.calc_t- CanAdd structure
- A new friendship may be formed between
uandv: they are distinct, not yet friends, and have at least two common friends. · Usa2022P6.CanAdd - cands def
- Candidate "first moments" for a set
Aof professors: nap-start times of members ofAat which every member ofAis asleep. · Usa1986P2.cands - cands def
- The candidate move sequences used to reach a configuration with exactly one odd entry. Which one applies depends on the parity pattern of the starting configuration. · Usa2003P6.cands
- CanEnsure inductive
- With
fuelrounds left to play, Amy can ensure from the position(red, blue)(with Amy to move) that she places at leastKstones in total. (An inductive predicate so that definitions and proofs do not have to unfold a recursion on … · Imo2018P4.CanEnsure - canon def
- Canonical orientation of a nonzero lattice point: exactly one of
s,-ssatisfiescanon s. · Imo2017P6.canon - canonicalHighCount def
- Canonical high-rank counts used by the construction. · Usa2024P2.canonicalHighCount
- canonicalPlay def
- The canonical play: all blue cards, then all red cards, then all white cards. Every play with the same card counts is a permutation of this one. · Usa2000P3.canonicalPlay
- cap def
- The capacity bound: any collection of total value at most
cap kcan be split intokor fewer groups each of value at most1. · Imo2014P5.cap - Car structure
- A cable car's starting and finishing points. · Imo2020P4.Car
- Card inductive
- The three colors of cards. · Usa2000P3.Card
- cast def
- Reindexing a circular partition along an equality of the number of arcs. · Usa2025P6.CirclePartition.cast
- cat def
- Concatenation of two lamp vectors. · Imo1993P6.cat
- cdist def
- The cyclic (counterclockwise) distance from
atob; it is0iffa = b. · Usa2017P4.cdist - Cell def
- The cell of a sign vector
σ: the set of points lying on the prescribed side of every line ofL. The nonempty cells are exactly the regions into which the lines ofLcut the plane, and the bounded nonempty cells are its finite … · Imo2014P6.Cell - Cell abbrev
- A cell of the board. · Imo2022P6.Cell
- Cell abbrev
- A cell on the board for the game. · Imo2024P5.Cell
- Cell abbrev
- A cell of the 6×6 grid:
(row, column), both inFin 6. Row0is the top row of the grid and row5the bottom row. · Usa2004P4.Cell - Cell abbrev
- A cell of the hexagonal grid, given in axial coordinates. · Usa2014P4.Cell
- Cell abbrev
- The grid cells indexing the sets
Sᵢⱼ. · Usa2019P4.Cell - Cell abbrev
abbrev Cell (N : ℕ)· Usa2022P1.Cell- cellDegree def
- The degree of a cell: the number of cells adjacent to it. · Imo2022P6.cellDegree
- cellOrder def
- The linear order on cells induced by the key function. · Imo2022P6.cellOrder
- cells def
- The unit squares making up a rectangle. · Imo1974P4.Rect.cells
- cellValue def
- Extend a coloring by zero outside the board. · Usa1998P4.cellValue
- centerCells def
def centerCells (k : ℕ) : Finset (Fin (3 * k) × Fin (3 * k))· Imo2016P2.centerCells- cfun def
- The coefficient function assigning
xtop,ytoq, and1to everything else. · Usa2012P3.cfun - chain def
- The greedy "always go to the larger child" path starting at the apex. · Imo2018P3.chain
- chainInv def
- The chain
arctan, sin, arccos, tanof trigonometric maps. We show inrun_chainInvthat it sends any positivexto1 / x. · Usa1995P2.chainInv - chainLeft def
def List.chainLeft {α : Type u} [DecidableEq α] (l : List α) (k : Fin l.length) : Fin l.length· Imo2022P1.List.chainLeft- chainLeft def
- The first coin in the chain containing coin
k(zero-based). · Imo2022P1.Row.chainLeft - chainRight def
def List.chainRight {α : Type u} [DecidableEq α] (l : List α) (k : Fin l.length) : Fin l.length· Imo2022P1.List.chainRight- chainRight def
- The last coin in the chain containing coin
k(zero-based). · Imo2022P1.Row.chainRight - chainSqrt def
- The chain
arctan, cos, arctan, sin, arccos, tanof trigonometric maps. We show inrun_chainSqrtthat it sends any realxto√(1 + x²). · Usa1995P2.chainSqrt - check9 def
def check9 (f : Fin 9 → Fin 2) : Bool· Bulgaria1998P1.check9- checkerboard def
def checkerboard (n : ℕ)· Usa1999P1.checkerboard- checkerGraph def
def checkerGraph {n : ℕ} (c : Finset (checkerboard n)) : SimpleGraph c· Usa1999P1.checkerGraph- chenImoUrl def
def chenImoUrl (year : Nat) (_idx : Nat) : String· chenImoUrl- chenUsamoUrl def
def chenUsamoUrl (year : Nat) (_idx : Nat) : String· chenUsamoUrl- chessboard def
def chessboard : Type· Usa1998P4.chessboard- chi def
- The additive character
ZMod p → ℂgiven byj ↦ ζ ^ j.val. · Usa1999P3.chi - chi def
- The colour of a point as
±1(+1for blue,-1for red). · Usa2008P3.chi - children def
- The children of
v: cells ofDwhose parent isv. · Usa2007P4.children - ChinesePair structure
structure ChinesePair· Imo1989P5.ChinesePair- ChoiceCount def
- The sets of n blue points in T whose coordinates are distinct in the dimension selected by
coord. · Imo2002P1.ChoiceCount - Circle abbrev
abbrev Circle· Usa2000P5.Circle- circleCenter abbrev
abbrev circleCenter (ω : Fin 7 → Circle) (i : Fin 7) : Point· Usa2000P5.circleCenter- CircleEmb structure
- A circular embedding: an enumeration of the complement of
Dthat respects the successor structure of the circle. · Usa2025P6.CirclePartition.CircleEmb - CirclePartition structure
- A partition of the circle
ZMod mintokconsecutive nonempty arcs, described by a basepoint and the list of arc lengths. · Usa2025P6.CirclePartition - Classification def
- The classification:
fis a nonzero constant times a (possibly empty) product of factors4X − a²withaan odd integer. · Usa2006P3.Classification - clearCoeff def
- The (integer) coefficients of
denomProd q N • q. · Usa1995P4.clearCoeff - clearPoly def
- The integer polynomial obtained from
q : ℚ[X]by clearing denominators: its coefficients areclearCoeff q N, so it agrees withdenomProd q N • qon all evaluations. · Usa1995P4.clearPoly - clip def
def clip (n : ℕ) : Fin 99· Usa1998P4.clip- clipped_rect def
def clipped_rect [NeZero k] (hk : 2 ≤ k) (s t : Int) : Option (Matilda (k * k) (all_black_k k))· Imo2025P6.clipped_rect- clippedEmbedding def
def clippedEmbedding {N M : ℕ} (e : Fin (N + 1) ↪o Fin (M + 1)) (j : ℕ) : ℕ· Imo2026P3.clippedEmbedding- cls def
def cls (c : String) : Attr· Html.cls- cmax def
- The maximum entry of a configuration. · Usa2003P6.cmax
- cmul def
- Scalar multiplication of a form by an integer. · Imo2017P6.HForm.cmul
- cnt def
- The number of entries of
ahaving residuexmodulo3. · Usa1979P3.cnt - cntP def
- The number of entries satisfying
p. · Usa2017P2.cntP - code def
def code (attrs : List Attr· Html.code- codexDenom def
def codexDenom (n : ℕ) : ℝ· Imo2026P3.codexDenom- codexDyadicWeights def
def codexDyadicWeights (n : ℕ) : List ℝ· Imo2026P3.codexDyadicWeights- codexLowerCuts def
def codexLowerCuts (n : ℕ) : Finset ℝ· Imo2026P3.codexLowerCuts- coef def
- The choice of integer coefficients: take the differences
bᵢ - b'ᵢ, flipping the sign whereverx i < 0. · Imo1987P3.coef - coeFunctionInt2Real def
def coeFunctionInt2Real {α : Type*} (f : α → ℤ) : (α → ℝ)· Imo1977P2.coeFunctionInt2Real- Coin inductive
- The two types of coins. · Imo2022P1.Coin
- col def
def col {n : ℕ} (i : Fin n) : Finset (Fin n × Fin n)· Imo1997P4.col- col def
- The cells of column
k. · Imo2016P2.col - col_valid def
def col_valid {n : ℕ} (hn : 0 < n) (a : Fin n → Fin n → Fin (n ^ 2)) (ha : a.Injective2) : Prop· Usa2023P5.col_valid- colFiber def
- The squares of
Slying in columnc. · Usa2000P4.colFiber - collectProblemMeta def
def collectProblemMeta (env : Lean.Environment) (problems : Lean.NameMap String) (solutions : Lean.NameMap String) (metadatas : Lean.NameMap ProblemExtraction.ProblemFileMetadata) : Lean.Core.CoreM …· collectProblemMeta- colMate def
- The pairing of columns: each column is paired with the column three places away. · Usa2004P4.colMate
- ColombianConfiguration structure
- A configuration of 2013 red points and 2014 blue points in the plane, all distinct, such that no three points of the configuration are collinear. · Imo2013P2.ColombianConfiguration
- Color inductive
inductive Color : Type· Imo2002P1.Color- Color inductive
inductive Color : Type· Usa2002P1.Color- colorCount def
def colorCount {n : ℕ} (f : Fin n → Fin n → Letter) (cells : Finset (Fin n × Fin n)) (c : Letter) : ℕ· Imo2016P2.colorCount- colorCount def
def colorCount (color : Cell N → Fin 2) (c : Fin 2) (p : Equiv.Perm (Fin N)) : ℕ· Usa2022P1.colorCount- coloredEdges def
- The colored edges of an edge coloring, represented as the set of edges that received a color. (Diagonal "edges"
s(i, i)are never colored, so this is exactly the set of colored segments joining two distinct points.) · Imo1992P3.EdgeColoring.coloredEdges - Coloring abbrev
- A coloring of the subsets of
Fin n;truemeans blue,falsemeans red. · Usa2015P3.Coloring - coloring def
- After
jmoves, color holexred iff the walnut in it has number< j; otherwise the hole is black. · Imo2021P5.coloring - coloring def
def coloring· Usa1998P4.coloring- coloring_is_good abbrev
abbrev coloring_is_good {m : ℕ} (color : Set.Icc 1 m → Fin 2) : Prop· Bulgaria1998P1.coloring_is_good- coloring_of_eight def
def coloring_of_eight {n : ℕ} : Set.Icc 1 n → Fin 2· Bulgaria1998P1.coloring_of_eight- colorOf def
- The coloring whose blue sets are exactly the sets
TwithX₀ ⊆ T ⊆ X₀ ∪ B₀. · Usa2015P3.colorOf - colorsAt abbrev
- The set of link types that town
vhas to other towns. · Usa1981P2.colorsAt - colour def
- Colour an edge
e = {p, q}of the complete graph onFin (K + 1)with0iff the difference of its endpoints, in one of the two directions, lies in[1, m]. · Imo1988P2.colour - colPart def
- The interior cells of column
kin rowsn - r .. n - 1. · Usa2019P4.colPart - colRect def
def colRect (k : ℕ) : Rectangle· Usa1998P4.colRect- ColSeq abbrev
- A sequence of
n+1columns, each column one of the three symbols ofFin 3(0 = u,1 = v,2 = w). · Usa2013P2.ColSeq - colSum def
def colSum (j : Fin n) : ℕ· Imo1971P6.colSum- colZero def
- The cells of column
0in rows≤ j. · Usa2019P4.colZero - commonAtoms def
def commonAtoms : List ℝ → List ℝ → List ℝ· Imo2026P3.commonAtoms- compAnchor def
def compAnchor (config : SConfig) (text : String) (rel : List String) : Html· compAnchor- Company structure
- The cable cars of a company. · Imo2020P4.Company
- Completable def
- The graph
Gcan be completed so that every user becomes friends with every other user. · Usa2022P6.Completable - complete def
def complete (n : ℕ+) : Prop· Imo1992P6.complete- completeOn def
- The complete graph on the finite set
Sof vertices, seen as a graph onV. · Usa2022P6.completeOn - compRow def
def compRow {idxType subIdxType : Type} [Ord idxType] [Ord subIdxType] (config : SConfig) (contest : Contest idxType subIdxType) (filePath : List String) (mds : Lean.NameMap ProblemMeta) : Html· Contest.compRow- compTable def
def compTable (rows : List <| Html) : Html· compTable- compute_k def
def compute_k (n: ℕ) : ℕ· Imo1978P6.compute_k- Condition def
- The conditions on
ain the problem. We reindexato start from 0 rather than 1;Nthen only has to be nonnegative rather than positive, and the sum in the problem statement is overIco m nrather thanIoc m n. · Condition - Condition def
- The conditions on the problem's coloring
C. Although its domain is all ofℕ, we only care about its values inSet.Ico 1 n. · Imo1985P2.Condition - Condition def
- The condition of the problem on a placement of numbers round a circle. · Imo2022P3.Condition
- Condition def
def Condition (α : ℝ) : Prop· Imo2024P1.Condition- Condition def
- The condition of the problem. · Imo2024P2.Condition
- Condition def
def Condition (a : ℕ → ℕ) (N : ℕ) : Prop· Imo2024P3.Condition- condition def
def condition (a b : ℕ) : Prop· Usa2017P1.condition- Conditions def
def Conditions (x : Fin 4 → ℝ) : Prop· Usa2014P1.Conditions- Conditions def
def Conditions (x : Fin 4 → ℝ) : Prop· Usa2017P6.Conditions- Conf abbrev
- A configuration of six integers at the vertices of a hexagon. · Usa2003P6.Conf
- Config structure
structure Config· Config- Config abbrev
- A configuration of the sequence, indexed by
ZMod 99(indices are interpreted modulo 99, as in the problem statement). Indexicorresponds to the problem's aᵢ₊₁. · Usa1994P2.Config - Config abbrev
- A configuration of the game: an integer at each vertex of the pentagon. The vertices are indexed by
ZMod 5, so that the neighbors of vertexiarei - 1andi + 1. · Usa2011P2.Config - conjPerm def
- The conjugating permutation: the product of the swaps
(σ x, φ x)over the representatives. · Usa2018P6.conjPerm - conn def
- In a pseudograph with endpoint functions
a b : E → V, the edgeeconnectsvandw. · Imo2020P3.conn - ConnectedP def
- Connectivity of a permutation of
S: it is a single cycle. · Imo2022P3.ConnectedP - ConsecutiveFactors abbrev
abbrev ConsecutiveFactors (n a b : ℕ)· Imo2023P1.ConsecutiveFactors- ConsistentUpTo def
- The play is consistent with the secret
xup to timeT: among anyk + 1consecutive answers within the firstT, at least one is truthful. · Imo2012P3.ConsistentUpTo - const def
- The constant form. · Imo2017P6.HForm.const
- constAddStart def
def constAddStart (c : ZMod 2) : coloring· Usa1998P4.constAddStart- constr def
- The extremal sequence (zero-based): at index
2kthe value is(4k+3) / (2 * √(k+1)), and at index2k+1it is2 * √(k+1). · Usa2010P3.constr - constr def
- The necklace constructed for the
m ≤ n + 1direction: writingp = q * n + jwithj < n, beadpis red iffn + 1 - m ≤ j < n - q. · Usa2024P4.constr - constr_b' def
- The flipped choice function: keep
b iexactly when thei-th prime dividesd. · Usa2021P4.constr_b' - constr_r def
- The
2kprimes used in the construction: in sloti, the "true" choice is the(2 * i)-th prime and the "false" choice is the(2 * i + 1)-th prime. · Usa2021P4.constr_r - constrEdges def
- The edge set of the construction: the edge
0-1together with, for eachi < 1010, the three further edges1-xᵢ,xᵢ-yᵢ,yᵢ-0of a 4-cycle0-1-xᵢ-yᵢ-0sharing the edge0-1. · Usa2022P6.constrEdges - constrGraph def
- The graph of the construction. · Usa2022P6.constrGraph
- constrSet def
- The extremal construction: the points
(1, 1)and(i, 2)for2 ≤ i ≤ n. · Usa2020P5.constrSet - construct_partition def
def construct_partition (k : ℕ) (hk : 2 ≤ k) [NeZero k] [DecidableEq (Matilda (k * k) (all_black_k k))] : Finset (Matilda (k * k) (all_black_k k))· Imo2025P6.construct_partition- constructCompanyA def
def constructCompanyA (n : Set.Ioi 1) : Company ↑n (↑n * ↑n - ↑n)· Imo2020P4.constructCompanyA- constructCompanyB def
def constructCompanyB (n : Set.Ioi 1) : Company ↑n (↑n * ↑n - ↑n)· Imo2020P4.constructCompanyB- construction def
- The extremal configuration: every square of row
0or of column0, except the corner square(0, 0). · Usa2000P4.construction - Contest structure
structure Contest (idxType subIdxType : Type· Contest- contestant abbrev
- The contestant from the triple consisting of a contestant and an ordered pair of judges. · Imo1998P2.AgreedTriple.contestant
- ContestIndex abbrev
- Index for identifying individual problems within a contest. Currently
Nat × Natcovers (year, problemNum) and (day, problemNum). · ContestIndex - Coords structure
structure Coords· Imo2018P3.Coords- coordSet def
def coordSet (n : ℕ) : Finset ℝ· Imo2007P6.coordSet- coprimeSet def
- The set of integers in
[0, n)that are coprime ton. Forn ≥ 2this is the set{a₁, ..., aₘ}of the problem statement. · Usa2018P3.coprimeSet - coprimeSet1 def
1together with all primes in{1, ..., 280}; pairwise coprime. · Imo1991P3.coprimeSet1- coprimeSet2 def
{2·41, 3·37, 5·31, 7·29, 11·23, 13·19}; pairwise coprime. · Imo1991P3.coprimeSet2- coprimeSet3 def
{2·37, 3·31, 5·29, 7·23, 11·19, 13·17}; pairwise coprime. · Imo1991P3.coprimeSet3- coprimeSet4 def
{2·31, 3·29, 5·23, 7·19, 11·17, 13·13}; pairwise coprime. · Imo1991P3.coprimeSet4- coprimeSet5 def
{2·29, 3·23, 5·19, 7·17, 11·13}; pairwise coprime. · Imo1991P3.coprimeSet5- coprimeSet6 def
{2·23, 3·19, 5·17, 7·13, 11·11}; pairwise coprime. · Imo1991P3.coprimeSet6- copyAsset def
- Copy a single asset · copyAsset
- Corner abbrev
abbrev Corner : Type· Usa1998P4.Corner- corner_set def
- The image set of
findLineCorner. · Imo2025P1.coverGridNoEdgeConfig.corner_set - cornerCell def
- The second cell used in the corner propagation argument for the
5 × ncase: it is the cell just next to a tile placed in the corner which cannot be covered by any other tile. · Imo2004P3.cornerCell - cornerDelta def
- The sum of the values of the four cells touching a grid-line corner. · Usa1998P4.cornerDelta
- cornerMax def
cornerMax h k r s nis the maximum, over all ways of choosing each ofnfurther variables to be eitherhork, of(r + sum of the choices) * (s + sum of the reciprocals of the choices). It is defined recursively; the leaves of … · Usa1977P5.cornerMax- cornerPoint def
- The points on the three corners of
grid n· Imo2025P1.coverGridNoEdgeConfig.cornerPoint - cornerSupport def
def cornerSupport (f : coloring) : Finset Corner· Usa1998P4.cornerSupport- correction abbrev
abbrev correction (m k : ℕ)· Usa2026P4.correction- countCol def
- The number of column sequences of length
n+1with distinct adjacent columns starting withsand ending witht. · Usa2013P2.countCol - counterexSeq def
- The counterexample for
n ≤ 12: the numbers√F₁, √F₂, ...whereFis the Fibonacci sequence. · Usa2012P1.counterexSeq - cov def
cov n i jmeans that cell(i, j)is torn out by the efficient pattern. · Usa2002P6.cov- Cover structure
- A cover of
G'relative to the original graphG: a finite collectionCof cliques ofG'together with a labelingℓassigning to every edge ofG'a clique containing its endpoints, such that every cliqueK"owns" at least … · Usa2022P6.Cover - coverConfig structure
- The configuration of a finise set of lines going through a set of points in the plane. · Imo2025P1.coverConfig
- coverGridConfig structure
- A
coverConfigwith the additional requirement that the set of points to be covered isgrid n· Imo2025P1.coverGridConfig - coverGridNoEdgeConfig structure
- A
coverGridConfigwith the additional requirements thatn > 1andlinesdoesn't contain an edge. Note: we needn > 1to have three corners in the grid. · Imo2025P1.coverGridNoEdgeConfig - covers def
def covers (m : Matilda n all_black) (l : Label n) : Prop· Imo2025P6.covers- covers def
covers b x y zmeans that beambcontains the unit cube at coordinates(x, y, z). · Usa2020P2.Beam.covers- cross def
def cross {n : ℕ} (i : Fin n) : Finset (Fin n × Fin n)· Imo1997P4.cross- cross def
- The cross with center
(0,0)and four arms of length2006. · Usa2007P4.cross - crossAux def
- The body of
cross, kept reducible so that membership and cardinality can be unfolded in the auxiliary lemmasmem_auxandcard_aux. (In this environment,Finset.Icconℤrecords aPreorder ℤinstance whose term contains the … · Usa2007P4.crossAux - CrossingPoints structure
structure CrossingPoints· Imo2025P6.DisjointSetup.CrossingPoints- crossT def
- The parameter value where the standard parametrization of
ℓcrossesm. · Imo2014P6.Line.crossT - cspos def
- The position of column-in-strip
cswithin its row in the strip order. · Imo2022P6.cspos - cStateVec def
- State of the
n'+1-lamp process of "shifted" form: lamp 0 off, lamp 1 on, and lamps2..n'given by the vectorxonFin n'. · Imo1993P6.cStateVec - Csum def
Csum P k = Σ_{j<k} P.coeff j, the total mass of the lower coefficients. · Imo2023P3.Csum- CTrail structure
- A closed trail in a pseudograph: a closed walk with no repeated edges. · Imo2020P3.CTrail
- cubeCode def
- The code of a cube position: the integer parts of its coordinates divided by
k. Two positions sharing all three codes have left faces strictly withinkof each other along every axis, so their interiors overlap; hence the code is … · Imo1976P3.cubeCode - CubeInBox abbrev
- A placement of a cube of side
kin thea × b × cbox: the cube is the closed box[p.1, p.1 + k] × [p.2.1, p.2.1 + k] × [p.2.2, p.2.2 + k], and it must be contained in[0, a] × [0, b] × [0, c]. · Imo1976P3.CubeInBox - cutsOfLengths def
def cutsOfLengths (l : List ℝ) : Finset ℝ· Imo2026P3.cutsOfLengths- cval def
- The complement of
ninside its level. · Usa2022P5.cval - cyc def
- The 4-cycle (one of 100) that a site belongs to: its
4×4block together with its label within the block. · Imo2018P4.cyc - cycSign def
- The sign function attached to an even-length cycle: `+1` at even positions, `-1` at odd positions. · Imo1986P6.cycSign
D
- D def
- Lamp
n-2is off at every positive roundm ≤ n-1. · Imo1993P6.D - d def
def d : ℕ → ℕ· CIIM2022P6.d- d def
- Define
d(n), the function counting the number of positive divisors ofn. · Imo1998P3.d - d abbrev
abbrev d {n : ℕ} (a : Fin n → ℝ) (i : Fin n)· Imo2007P1.d- D_set def
def D_set· Imo2014P4.Imo2014q4Cfg.D_set- decomp₁ def
- A decomposition realising the white-square counts {1, 2, 3, 4, 5, 7, 10} (rectangle sizes 2, 4, 6, 8, 10, 14, 20). · Imo1974P4.decomp₁
- decomp₂ def
- A decomposition realising the white-square counts {1, 2, 3, 4, 5, 8, 9} (rectangle sizes 2, 4, 6, 8, 10, 16, 18). · Imo1974P4.decomp₂
- decomp₃ def
- A decomposition realising the white-square counts {1, 2, 3, 4, 6, 7, 9} (rectangle sizes 2, 4, 6, 8, 12, 14, 18). · Imo1974P4.decomp₃
- decomp₄ def
- A decomposition realising the white-square counts {1, 2, 3, 5, 6, 7, 8} (rectangle sizes 2, 4, 6, 10, 12, 14, 16). · Imo1974P4.decomp₄
- decPairEquivGaps def
- The decreasing-adjacent-pairs are equivalent to the gaps. · Imo2022P6.decPairEquivGaps
- decPairOfGap def
- The decreasing orientation of the cells of a gap. · Imo2022P6.decPairOfGap
- decSequencesTo def
def decSequencesTo (f : α → β) (i : α) : Finset ℕ· Imo2025P6.decSequencesTo- decSubsets def
def decSubsets (f : Fin n → Fin n) : Finset (Finset (Fin n))· Imo2025P6.decSubsets- degVec def
- The degree vector, modulo 2. · Usa2008P6.degVec
- delPerm def
- Deleting
Mfrom a permutation: the short-circuited permutation onS.erase M, sending the predecessor ofMto the successor ofM. · Imo2022P3.delPerm - denomProd def
- The product of the denominators of the coefficients of
qof degree at mostN. Scalingqby this natural number clears the denominators. · Usa1995P4.denomProd - denoms def
def denoms (x : ℝ) (n : ℕ) : Finset ℕ· Usa1983P5.denoms- descend def
- The decreasing list
b, b-1, ..., 1, 0. · Usa1990P4.descend - det def
- The determinant of the two normals; nonzero iff the lines are not parallel. · Imo2014P6.Line.det
- det def
- The determinant
aᵢ bⱼ − aⱼ bᵢof two ordered pairs of nonnegative integers, viewed as an integer. · Usa2020P4.det - DetermineDeclsExtension abbrev
abbrev DetermineDeclsExtension· ProblemExtraction.DetermineDeclsExtension- diag_inter_set def
def diag_inter_set (P₁ P₂ P₃ P₄ : Pt)· Imo2023P2.diag_inter_set- diagDiff def
- A diagonal of the second type: the cells
(i, j)withi - j = d. · Imo2016P2.diagDiff - diagSum def
- A diagonal of the first type: the cells
(i, j)withi + j = s. · Imo2016P2.diagSum - Dif def
- The consecutive difference
Dif A j = A (j+1) - A jas an integer. · Imo2023P3.Dif - diff def
- The sequence of successive differences (XORs) of
y. · Usa1996P4.diff - DiffByOne def
- Condition (2) of the problem, phrased for the list of base-
ndigits of a number as produced byNat.digits(least significant digit first, so the "first" digit of the number is the last entry of the list): every digit except the most … · Usa1990P4.DiffByOne - Digit abbrev
abbrev Digit· Usa1972P3.Digit- digit def
- The unique digit in
{0, …, 9}congruent toumodulo 2 and tovmodulo 5 (which exist and are unique by the Chinese remainder theorem). · Usa1997P3.digit - digitCount def
digitCount t x dcounts the occurrences of the digitdamong the firsttdecimal digits ofx(least significant first), i.e. the digits ofxpadded with leading zeros to lengtht. · Usa2013P5.digitCount- DigitFree def
- A natural number is
(p)-digit-free if no digit of its base-pexpansion equalsp - 1. · Usa1995P1.DigitFree - DigitSeq abbrev
abbrev DigitSeq (n : ℕ)· Usa1972P3.DigitSeq- digitsPadded def
def digitsPadded (b m n : ℕ) : List ℕ· Usa1992P1.digitsPadded- Dir inductive
- The three possible orientations of a beam. · Usa2020P2.Dir
- dir def
- A direction vector of the line: the normal
(a, b)rotated by 90 degrees. · Imo2014P6.Line.dir - dir def
- The orientation of a beam. · Usa2020P2.Beam.dir
- Dirs def
- The three (undirected) line directions of the grid. · Usa2014P4.Dirs
- dirs abbrev
- The four unit directions in which a jump is allowed. · Imo1993P3.dirs
- DisjointBeams def
- The non-intersection condition: two distinct beams do not share a unit cube. · Usa2020P2.DisjointBeams
- disjointPairEquiv def
- Disjoint pairs of finsets of
Fin ncorrespond to ternary functions: each element is inX₀, inB₀, or in neither. · Usa2015P3.disjointPairEquiv - DisjointPairs def
- The type of disjoint pairs
(X₀, B₀)of finsets ofFin n; these parametrize the nontrivial valid colorings. · Usa2015P3.DisjointPairs - DisjointSetup structure
structure DisjointSetup (n : ℕ) [NeZero n] extends BaseSetup n· Imo2025P6.DisjointSetup- dist def
def dist : ℤ × ℤ → ℤ × ℤ → ℝ· Usa2017P5.dist- Distinct abbrev
- The proposition that the judges in an ordered pair are distinct. · Imo1998P2.JudgePair.Distinct
- Distinguished def
- The condition that
xis the "distinguished" coordinate of a solution (the coordinate at which the minimum of the left-hand side is attained): the other two shifted coordinatesy - 1,z - 1multiply to1, andx - 1is the … · Usa2013P4.Distinguished - div def
def div (attrs : List Attr· Html.div- Dividable abbrev
abbrev Dividable (n : ℕ)· Imo2023P1.Dividable- doccoCss def
def doccoCss : Asset· Assets.doccoCss- dropLast def
- The dropLast of an uphill path of length at least 2 is an uphill path. · Imo2022P6.NordicSquare.UphillPath.dropLast
- dropLastEquiv def
- Deleting the last column: sequences of length
n+2ending intcorrespond to sequences of lengthn+1ending in somer ≠ t. · Usa2013P2.dropLastEquiv - dropTrailingZeros def
- Remove the trailing (i.e. most significant) zeros of a digit list. · Usa2019P3.dropTrailingZeros
- dst def
def dst (asset : Asset) : String· Asset.dst- dummyCols def
- The dummy columns used to turn "at least
kreal matches" into a full matching. · Usa2022P1.dummyCols - dw def
- The depth of a cell: length of a shortest walk from the root
rinsideD(defined to be0outsideD). · Usa2007P4.dw - dynamic def
- Helper: create a page from IO action · Page.dynamic
E
- E def
def E {n : ℕ} (a : Fin n → ℝ) : ℝ· Imo1971P1.E- E abbrev
abbrev E : Fin 8· Imo1979P6.E- e def
- The "even-length line" indicator: the
i-th line of any direction containsn - itokens, which is even iffi ≡ n (mod 2). · Usa2013P3.e - Easy def
- A problem is easy for a cohort (boys or girls) if at least three of its members solved it. · Imo2001P3.Easy
- Ecard def
- Number of even-length lines in one direction. · Usa2013P3.Ecard
- eCnt def
- The multiplicity of the value
vamong the entries. · Usa2017P2.eCnt - ectx def
- The edge context of the red line
ℓ. · Imo2014P6.Witness.ectx - edgeCoeffs def
def edgeCoeffs (n : ℕ) (d : Fin 3) : LineCoeffs· Imo2025P1.edgeCoeffs- EdgeColoring structure
- An edge coloring of the complete graph on 9 vertices by two colors (encoded as
Fin 2), where some edges may be left uncolored (none). The vertices are indexed byFin 9and the edges by unordered pairsSym2 (Fin 9); the geometric … · Imo1992P3.EdgeColoring - EdgeCtx structure
- A bounded cell of an arrangement in general position, together with a distinguished boundary line
ℓ. · Imo2014P6.EdgeCtx - edgeEndpointCornerId def
def edgeEndpointCornerId (d : Fin 3) (r : Fin 2) : Fin 3· Imo2025P1.edgeEndpointCornerId- edgeEndpointIndex def
def coverGridNoEdgeConfig.edgeEndpointIndex (C : coverGridNoEdgeConfig) (r : Fin 2) : Fin C.n· Imo2025P1.coverGridNoEdgeConfig.edgeEndpointIndex- edgeIdx def
- The position of the unordered pair
{i, j}in the listpair. · Usa1981P2.edgeIdx - edgeLine def
- The three edge lines of a the grid point to be covered in a
coverGridConfig· Imo2025P1.coverGridConfig.edgeLine - edgeLine def
- The three lines on the edges of the triangular integer grid, each side having n points:
x - 1 = 0;y - 1 = 0;x + y - (n + 1) = 0. These lines are namededgeLine n 0,edgeLine n 1,edgeLine n 2, resp. · Imo2025P1.edgeLine - edgePoint def
- The points on the three edges of a
coverGridConfig· Imo2025P1.coverGridConfig.edgePoint - Edges abbrev
- The edges of the complete graph on
Fin N: two-element subsets. · Imo1988P2.Edges - edgeSets def
- The set of edges incident to the vertex
i. · Imo1988P2.edgeSets - eFn def
- The vector with only the last lamp on. · Imo1993P6.eFn
- elabProblemFile def
def elabProblemFile (tk : Syntax) (md : Option (TSyntax `term)) : Command.CommandElabM Unit· ProblemExtraction.elabProblemFile- emb def
def Label.emb (t : LabelType) : Point n ↪ Label n· Imo2025P6.Label.emb- embed_B def
def embed_B : (B n) ↪ {x | T n x}· Imo1989P6.embed_B- embedFinLE def
def embedFinLE {m n : ℕ} (hmn : m ≤ n) : Fin m ↪ Fin n· Imo2009P6.embedFinLE- empties def
- The empty squares of the board. · Usa1999P5.empties
- emptySquares def
def emptySquares {n : ℕ} (c : Finset (checkerboard n)) : Finset (checkerboard n)· Usa1999P1.emptySquares- encodePoint def
def encodePoint (f : Signature → ℕ) : RealizedPoint f ↪ ℤ· Usa2024P2.encodePoint- EndInevitable inductive
inductive EndInevitable (a : ℕ+) (n : ℕ) : State n → Prop· Usa2023P4.EndInevitable- EndInevitableIn inductive
- end is inevitable in M moves · Usa2023P4.EndInevitableIn
- Ends def
- The "ends" placements: cards
1andnare alone in two boxes and all cards2, ..., n - 1are in the third box. · Imo2000P4.Ends - endsfun def
- The "ends" placements of the 100 cards. · Imo2000P4.endsfun
- entries def
- The number of times the visitor enters junction
vduring her walk, from the initial stateσ₀until she gets back to the starting junction (the final re-entry into the starting junction counts, the departure from it does not). · Usa2021P2.Park.entries - Entry structure
- An entry in the state of the Problem Extraction environment extension · ProblemExtraction.Entry
- EntryVariant inductive
inductive EntryVariant· ProblemExtraction.EntryVariant- eqAffSubOfPlane def
- The decidable equality predicate
L = L'for(L L' : AffSubOfPlane). · Imo2025P1.eqAffSubOfPlane - eqBefore def
- The set of positions
j < iwitha j = a i. · Usa1987P5.eqBefore - EquivPilings inductive
- Two pilings are equivalent if they are related by a sequence of stone moves. · Usa2015P4.EquivPilings
- eraseMin def
def eraseMin (s : Finset ℕ)· Imo1981P2.eraseMin- escPath def
- The rabbit's path during an escape phase when it chooses the point
a + t • u + w. · Imo2017P3.escPath - escPathY def
- The rabbit's path during an escape phase when it chooses the point
a + t • u - w. · Imo2017P3.escPathY - escReps def
- The reports made during an escape phase: the device reports the point on the line through the previous positions, at the same fractional distance as the rabbit. · Imo2017P3.escReps
- escStep def
- One escape phase with frame
{u, w}: the rabbit runs to one of the two pointsa + t • u ± w(choosing the one farther from where the hunter ends up), while the device reports points on the line. · Imo2017P3.escStep - EssentiallyIncreasing def
- A function
f : ℝ → ℝis essentially increasing iff s ≤ f twhenevers ≤ tare real numbers such thatf s ≠ 0andf t ≠ 0. · Usa2022P5.EssentiallyIncreasing - eval def
- Evaluation of a homogeneous form at a point. · Imo2017P6.HForm.eval
- evasiveHist def
- The history after
jrounds against the evasive wizard. · Usa2016P6.evasiveHist - evasiveWizard def
- The wizard that evades the player forever when
k = n. · Usa2016P6.evasiveWizard - evenSum def
- The sum of entries at even (0-indexed) positions. · Imo2026P3.evenSum
- EventuallyPeriodic def
def EventuallyPeriodic (b : ℕ → ℕ) : Prop· Imo2024P3.EventuallyPeriodic- evPairs def
- The sequence of pairs of students that switch places: each entry is
(student in front, student behind), with front rank<behind rank. · Usa2010P2.evPairs - example_16 def
def example_16 : Fin 16 → ℝ· Imo1977P2.example_16- example_16_int def
def example_16_int : Fin 16 → ℤ· Imo1977P2.example_16_int- examplePlanes def
def examplePlanes (n : ℕ) : Finset Plane· Imo2007P6.examplePlanes- exists_desired_triangle def
def exists_desired_triangle : Prop· Imo2018P3.exists_desired_triangle- ExistsDecreaseOn def
def ExistsDecreaseOn (s : Finset ℝ) (f : ℝ → ℝ)· Imo2021P2.ExistsDecreaseOn- Expressible def
- A natural number
nis expressible if it can be written as a sum of positive integers whose reciprocals sum to1. · Usa1978P3.Expressible - extend def
- Add a diagonal line
x + y = n + 2to acountAndStrongCover· Imo2025P1.strongCoverGridConfig.extend - extend def
- The checksum construction: given five digits
f : Fin 5 → ZMod 10, build a six-digit plate whose last digit makes the total digit sum congruent to zero modulo ten. · Usa1990P1.extend - extendPerm abbrev
abbrev extendPerm {m n : ℕ} (f : Equiv.Perm (Fin m)) (h : m ≤ n) : Equiv.Perm (Fin n)· Imo2009P6.extendPerm- extendPerm def
- Extension of a permutation of
Fin ntoFin (n + 1)fixingj, via the identificationFin n ≃ {x // x ≠ j}. · Usa2018P6.usa2018p6_aux.extendPerm - ExternallyTangent def
def ExternallyTangent (c1 c2 : Circle) : Prop· Usa2000P5.ExternallyTangent- extractFromExt def
def extractFromExt {m : Type → Type} [Monad m] [MonadEnv m] [MonadError m] (ext : ExtractionExtension) : m (NameMap String)· ProblemExtraction.extractFromExt- ExtractionExtension abbrev
abbrev ExtractionExtension· ProblemExtraction.ExtractionExtension- extractMetadata def
- Using the data in the solution extraction environment extension, constructs a map from module name to problem metadata · ProblemExtraction.extractMetadata
- extractModuleDoc def
def extractModuleDoc (env : Lean.Environment) (m : Lean.Name) : String· extractModuleDoc- extractProblems def
- Using the data in the problem extraction environment extension, constructs a map from module name to problem source code. · ProblemExtraction.extractProblems
- extractSolutions def
- Using the data in the solution extraction environment extension, constructs a map from module name to solution source code. · ProblemExtraction.extractSolutions
- extremal def
- The extremal triangle: red dot of row
iat position2 ^ (clog₂ (i+1)) - 1 - i. · Imo2023P5.extremal - extremalAdj def
- Adjacency in the extremal graph: all pairs of distinct vertices except
0—1and0—2. · Usa1982P1.extremalAdj - extremalGraph def
- The extremal graph: the complete graph on
Fin 1982with the two edges0—1and0—2removed. · Usa1982P1.extremalGraph - e₁ def
- The first standard basis vector. · Imo2013P2.e₁
F
- F def
def F : ℚ· Imo1981P2.F- F def
def F· Imo2023P2.Imo2023q2Cfg.F- F def
- The first moment when both members of a pair
Aare asleep. · Usa1986P2.F - F def
- Ordered pairs of distinct indices whose values collide for the shift
k. · Usa2018P4.F - f def
def f (x y z A B C : ℝ) : Fin 3 → ℂ· f- f def
def f (a b c : ℝ) : ℝ → ℝ· Imo1968P3.f- f abbrev
abbrev f (x: ℝ)· Imo1988P4.f- f def
def f (n : ℕ) : ℤ[X]· Imo1993P1.f- f def
- The function
fof the problem: the number of elements of{k+1, ..., 2k}whose binary representation has exactly three1s. · Imo1994P3.f - f def
f nis the number of ways of representingnas a sum of powers of two with non-negative integer exponents, where representations that differ only in the order of their summands are considered the same. Rather than definingfas a … · Imo1997P6.f- f def
f j i pis the maximum number of red dots on a ninja path from the top row to positionpof rowi(and0if the position is invalid). · Imo2023P5.f- f def
def f (p : Point (k * k)) : ℤ × ℤ· Imo2025P6.f- f def
def f (g : Equiv.Perm (Fin (k + 2))) (hg : g ∈ (S' k m))· UK2024R1P1.f- f def
- The function whose zeros are the real roots of the quartic. · Usa1985P2.f
- f def
- The first moment at which all members of
Aare simultaneously asleep. · Usa1986P2.f - f def
- The quantity
f(i)from the problem statement. · Usa1987P5.f - f def
def f : ℕ → ℝ → ℝ· Usa1990P2.f- f def
- The tower-of-exponents function of the problem, with the index shifted by one:
f 0 = 2andf (n + 1) = 2 ^ f n, so that the problem'sf nis ourf (n - 1). · Usa1991P3.f - f def
def f (a b c : ℝ) : ℝ· Usa2001P3.f- f def
f nis the minimalkfor which there exists ak-stable set withnintegers. (That the defining set is nonempty is proved instable_exists. · Usa2005P6.f- f def
- The auxiliary potential: blue points are those with
f p ≡ 2n - 1 (mod 4). · Usa2008P3.f - f def
f Cis the smallest number of operations required to obtainC. · Usa2013P3.f- f def
- Our construction (valid for x ∈ ℝ) is P_x := (x-2014/3, (x-2014/3)^3). · Usa2014P3.f
- f def
def f (x : Fin 4 → ℝ) : ℝ· Usa2017P6.f- f def
- The values
aᵢ + ik(computed inZMod p) produced by the shiftk. · Usa2018P4.f - f def
def f (n : ℕ) (x : ℝ) : ℝ· Usa2026P1.f- f' def
def f' (m : Fin (k + 2)) (g : Equiv.Perm (Fin (k + 1)))· UK2024R1P1.f'- f'_invFun def
def f'_invFun (g : Equiv.Perm (Fin (k + 1))) (m : Fin (k + 2)) (n : Fin (k + 2)) : Fin (k + 2)· UK2024R1P1.f'_invFun- f'_toFun def
def f'_toFun (g : Equiv.Perm (Fin (k + 1))) (m : Fin (k + 2)) (n : Fin (k + 2)) : Fin (k + 2)· UK2024R1P1.f'_toFun- f_good def
def f_good (f : ℝ → ℝ) : Prop· Usa2016P4.f_good- f_invFun def
def f_invFun (g : Equiv.Perm (Fin (k + 2))) (hg : g ∈ (S' k m)) (n : Fin (k + 1)) : Fin (k + 1)· UK2024R1P1.f_invFun- f_toFun def
def f_toFun (g : Equiv.Perm (Fin (k + 2))) (hg : g ∈ (S' k m)) (n : Fin (k + 1)) : Fin (k + 1)· UK2024R1P1.f_toFun- Fantastic def
- An involution is fantastic if its edges have pairwise distinct labels. · Usa2018P6.Fantastic
- faq def
def faq (config : SConfig) : List Html· faq- faviconIco def
def faviconIco : Asset· Assets.faviconIco- Favorable def
- The event that the triangle formed by the first three points is disjoint from the triangle formed by the last three points. With six points on a circle, the two triangles are disjoint iff the two vertex sets do not interleave around the … · Usa1983P1.Favorable
- fcard def
- The number of fixed-point-free involutions of
Fin n. · Usa2018P6.usa2018p6_aux.fcard - fdef def
- The defect
f x - xof a function on the positive reals. · Imo2026P5.fdef - FE def
def FE (f : ℝ → ℝ) : Prop· Usa2002P4.FE- fExample def
- An example of a function achieving the maximum number of values of
f(r)+f(-r). · Imo2024P6.fExample - ffun def
- The
j-th constructed function on the real line; it is nonzero only at the integers1, …, 2047. · Usa2022P5.ffun - fib def
- The fiber over
vof the value map of the shiftk. · Usa2018P4.fib - Fiber abbrev
- The possible values of a filling at a fresh cell
s, given the valuesA fandC fforced by the neighbors ofs. · Usa2019P4.Fiber - fiber def
- Given
α : Type*andk : ℕ,fiber α kis the set of permutations ofαwith exactlykfixed points. · Imo1987P1.fiber - FibPair def
- The classification of solutions of
a^2 + b^2 + 1 = 3 * a * b: eithera = b = 1, or{a, b} = {F_{2k-1}, F_{2k+1}}for somek ≥ 1. · Usa2026P6.FibPair - filled def
- The set of cells filled after the first
nmoves of a play. · Usa2004P4.filled - Fillings def
- Partial configurations on a set
Dof cells: the cardinality and monotonicity conditions hold onD, and the value is∅offD(the latter condition keeps the ambient function type finite). · Usa2019P4.Fillings - fillRank def
- Fill one rank with the least residue making divisibility hold. · Usa2024P2.fillRank
- filt def
filt e c y ssprocesses the list of jumpsssstarting at positiony, deleting every jump whose length is divisible by2 ^ (e + 1)and which lands at a position greater thanc. This is the deletion operation of the official … · Usa2006P5.filt- filterProblemCount def
def filterProblemCount (c : Contest idx subIdx) (f : idx → subIdx → Bool) : Nat· Contest.filterProblemCount- fin_equiv def
def fin_equiv : Finset.Icc 1 (2*n) ≃ Fin (2*n)· Imo1989P6.fin_equiv- finalBoard def
- The final board of a play: after 36 moves every cell is filled (see
prefBoard_finalBoard), and this is the number written in each cell. · Usa2004P4.finalBoard - finBlocks def
def finBlocks (b : Fin m → List ℝ) : List (List ℝ)· Imo2026P3.finBlocks- findFstEq def
- The first path element whose row is at least
r. Since rows change by at most one on each move and the path starts in row0, this is in fact on rowr: seePath.findFstEq_fst. · Imo2024P5.Path.findFstEq - findLine def
coverGridConfig.findLinechooses a line inlinesthat goes throughx· Imo2025P1.coverGridConfig.findLine- findLineCorner def
coverGridNoEdgeConfig.findLineCorner C cchooses a line inlinesthat goes throughC.cornerPoint cusing the functionfindLine. · Imo2025P1.coverGridNoEdgeConfig.findLineCorner- findLineEdge def
coverGridConfig.findLineEdgechooses a line inlinesthat goes throughC.edgePoint d iusing the functioncoverGridConfig.findLine. · Imo2025P1.coverGridConfig.findLineEdge- findModuleImports def
- Helper function for
extractFromExt. · ProblemExtraction.findModuleImports - finish def
- The last station in a linkage. · Imo2020P4.Company.linkage.finish
- firstMonster def
- The first monster on a path, or
none. · Imo2024P5.Path.firstMonster - firstPlayerShare def
- The sum of the entries of a list
Lat the (0-indexed) even positions, after sortingLin non-increasing order. These are the entries in the1st,3rd,5th, … positions of the sorted (decreasing) list, i.e. the pieces claimed by … · Imo2026P3.firstPlayerShare - fixedDecompEquiv def
- The fixed points of the conjugation involution decompose as a choice on
{a, b}(identity or swap) times a switching involution of the reduced vertex. · Usa2018P6.fixedDecompEquiv - fixedPointsEquiv def
- The set of pairs
(x : α, σ : Perm α)such thatσ x = xis equivalent to the set of pairs(x : α, σ : Perm {x}ᶜ). · Imo1987P1.fixedPointsEquiv - fixedPointsEquiv' def
- The set of triples
(k ≤ card α, σ ∈ fiber α k, x ∈ fixedPoints σ)is equivalent to the set of pairs(x : α, σ : Perm α)such thatσ x = x. The equivalence sends(k, σ, x)to(x, σ)and(x, σ)to(card (fixedPoints σ), σ, x). · Imo1987P1.fixedPointsEquiv' - flattenFinBlocks def
def flattenFinBlocks (b : Fin m → List ℝ) : List ℝ· Imo2026P3.flattenFinBlocks- flip def
def Coin.flip : Coin → Coin· Imo2022P1.Coin.flip- flip abbrev
abbrev flip (n : ℕ) {c : ℝ} (l : labelling c) : labelling c· Usa2017P5.flip- flipIx def
- The index of the coin that Harry flips in configuration
c: thek-th coin from the left, wherekis the number of heads. · Imo2019P5.flipIx - flipPair def
- The flip on pairs
(σ, φ). · Usa2018P6.flipPair - fn0 def
- The first attempt in a winning strategy, as a function: first pass along the second row to locate the monster there. · Imo2024P5.fn0
- fn1OfEdge0 def
- The second attempt in a winning strategy, as a function, if the monster in the second row is at the left edge: zigzag across the board so that, if we encounter a monster, we have a third path we know will not encounter a monster. · Imo2024P5.fn1OfEdge0
- fn1OfNotEdge def
- The second attempt in a winning strategy, as a function, if the monster in the second row is not at an edge: pass to the left of that monster then along its column. · Imo2024P5.fn1OfNotEdge
- fn2OfEdge0 def
- The third attempt in a winning strategy, as a function, if the monster in the second row is at the left edge and the second (zigzag) attempt encountered a monster: on the row before the monster was encountered, move to the following row … · Imo2024P5.fn2OfEdge0
- fn2OfNotEdge def
- The third attempt in a winning strategy, as a function, if the monster in the second row is not at an edge: pass to the right of that monster then along its column. · Imo2024P5.fn2OfNotEdge
- FollowsStrategy def
- A play follows Bob's strategy
σif each of Bob's moves (the odd-numbered moves) is the move prescribed byσon the current board. · Usa2004P4.FollowsStrategy - footer def
def footer (attrs : List Attr· Html.footer- footerComp def
def footerComp (config : SConfig) : List Html· footerComp- ForcesWinIn def
- Whether a strategy forces a win within the given number of attempts. · Imo2024P5.Strategy.ForcesWinIn
- formalizedCount def
def formalizedCount (c : Contest idxType subIdxType) (mds : Lean.NameMap ProblemMeta) : Nat· Contest.formalizedCount- formedQuadraticEval def
- The formed quadratic evaluated at
t, i.e. the quadratic with coefficientsformedQuadratic a b capplied tot. · Imo1959P3.formedQuadraticEval - FourPointProperty def
- The hypothesis of the problem: among any four vertices of the graph, some vertex is adjacent to the other three. · Usa1982P1.FourPointProperty
- fpfDecomposeEquiv def
- Fixed-point-free involutions of
Fin (n + 2)are in bijection with pairs of an elementj : Fin (n + 1)(the partner of0) and a fixed-point-free involution ofFin n. · Usa2018P6.usa2018p6_aux.fpfDecomposeEquiv - fpfSubtype def
- Fixed-point-free involutions of
Fin n. · Usa2018P6.usa2018p6_aux.fpfSubtype - Fpoly def
Fpoly P A k m := ∏_{i=1}^{k} (X + C (A (m+i) - A m)) - P; it vanishes atA m. · Imo2023P3.Fpoly- fracs def
- Rationals in the interval with reduced denominator at most `n`. · Usa1983P5.fracs
- Fragrant abbrev
abbrev Fragrant (s : Set ℕ+) : Prop· Imo2016P4.Fragrant- fromColoring def
- The map from a valid coloring to its parametrizing data:
nonefor the all-red coloring, and the disjoint pair(X c, B c)otherwise. · Usa2015P3.fromColoring - fromCounts def
def fromCounts (counts : List (Nat × Nat)) : List (Nat × Nat)· fromCounts- frontContrib def
- The number of inversions contributed by the first position when it has entry
xand thresholdc, over the remaining entriesw. · Usa2017P2.frontContrib - Fs def
- The integer-valued function
Fs f t = 4^d · f(t²/4), whered = f.natDegree; the powers of4clear the denominators. · Usa2006P3.Fs - fsucc def
- The student of rank one higher than
a(well-defined whenais not the tallest student). Defined as a literal so that(fsucc a h).valis definitionallya.val + 1. · Usa2010P2.fsucc - fwdDiff def
- The forward difference operator on real sequences. · Usa1984P5.fwdDiff
G
- G abbrev
abbrev G : Fin 8· Imo1979P6.G- G def
def G : SimpleGraph (V n r)· Imo1981P2.G- g def
- Cumulative count: the number of elements of
{1, ..., n}with exactly three1s. · Imo1994P3.g - g def
def g (n : ℕ) : ℕ· Imo1998P6.g- g def
- The value of
gin the problem (determined byaandb). · Imo2024P2.Condition.g - g def
def g (a b c : ℝ) : ℝ· Usa2001P3.g- g def
- The residue of
1 + k * tmodulop. · Usa2006P1.g - g def
- The normalized function $g(s) = f(1/s - 1)$, mapping $(0, 1)$ to $(0, 1)$. · Usa2018P2.g
- g1 def
- Weight functions on the exponents: cells with
(i + j) % 3 = rget weight1for the two classes in question and0for the remaining one. · Imo1993P3.g1 - g1 def
- The other line through
r(a blue line). · Imo2014P6.Witness.g1 - g1ctx def
- The edge context of the blue line
g₁. · Imo2014P6.Witness.g1ctx - g2 def
def g2 (k : ℤ) : ZMod 2· Imo1993P3.g2- g2 def
- The other line through
b(another blue line). · Imo2014P6.Witness.g2 - g2ctx def
- The edge context of the blue line
g₂. · Imo2014P6.Witness.g2ctx - gains def
gains a n r ccounts how many times cell(r, c)receives a stone, given that a tromino was placed with anchor(i, j)exactlya i jtimes. The cell(r, c)is covered by the trominoes anchored at(r, c),(r - 1, c)and `(r - 1, … · Usa2021P3.gains- gapCells def
- Cells of a gap on an
n × nboard (ordered by position). · Imo2022P6.gapCells - GapDir inductive
- A direction for a gap between two adjacent cells. · Imo2022P6.GapDir
- gapDirEquivFin2 def
GapDiris equivalent toFin 2. · Imo2022P6.gapDirEquivFin2- gapOfPair def
- The gap determined by an ordered pair of adjacent cells. · Imo2022P6.gapOfPair
- gapPair def
- The ordered pair of cells of a gap: for
horiz,(i, j), (i, j+1); forvert,(j, i), (j+1, i). · Imo2022P6.gapPair - gapPath def
- Given adjacent cells a, b, the uphill path ending with the edge {a,b} (obtained by extending the path to the smaller-valued cell by the larger one). · Imo2022P6.NordicSquare.gapPath
- gapPathInj def
- The injection from gaps (plus a point for the trivial path) to uphill paths. · Imo2022P6.gapPathInj
- gapSize def
- The distance to the next point outside
D(a positive number of steps). · Usa2025P6.CirclePartition.gapSize - gc def
- The contribution of the first position, as a function of its value. · Usa2017P2.gc
- GeneralPosition def
- A set of lines is in general position if no two are parallel and no three pass through the same point. · Imo2014P6.GeneralPosition
- generate def
def All.generate (config : SConfig) (numProved : Nat) (mdsArray : Array <| Lean.Name × ProblemMeta) : IO Page· All.generate- generate def
def generate (c : Contest idxType subIdxType) (config : SConfig) (filePath : String) (navbarState : NavbarState) (mds : Lean.NameMap ProblemMeta) (fmtIdx : idxType → String) (fmtSubIdx : subIdxType → …· Contest.generate- generate def
def Index.generate (config : SConfig) (tagFormalizedCounts : Array Nat) (tagSolvedCounts : Array Nat) (numProved : Nat) (mds : Lean.NameMap ProblemMeta) : IO Page· Index.generate- generate def
def Problem.generate (config : SConfig) (p : ProblemInfo C) : IO (List Page)· Problem.generate- generateAll def
- TODO: split this into collect ⇒ Data ⇒ generate maybe serialize and reuse when no content change · generateAll
- generateFormalized def
def Problem.generateFormalized (config : SConfig) (name : Lean.Name) (detail : ProblemMeta) (writeupLinks : List WriteupLink) : IO (List Page)· Problem.generateFormalized- generateProblems def
def generateProblems {idxType subIdxType : Type} [Ord idxType] [Ord subIdxType] (c : Contest idxType subIdxType) (config : SConfig) (mds : Lean.NameMap ProblemMeta) : IO <| List Page· Contest.generateProblems- generateStub def
def Problem.generateStub (p : ProblemInfo C) : List Html· Problem.generateStub- genFun def
- The generating function
∑ σ, X ^ (ainvCount m A σ)of theA-inversion statistic. · Usa2017P2.genFun - geometric_mean def
def geometric_mean {n : ℕ} (f : Fin n → ℕ+) (s : Finset (Fin n)) : ℝ· Imo2020P5.geometric_mean- geomSum def
def geomSum (m : ℕ+) : ℤ[X]· Usa1977P1.geomSum- geomSumStep def
def geomSumStep (m n : ℕ+) : ℤ[X]· Usa1977P1.geomSumStep- getCrossingPoints def
def getCrossingPoints (ha_pos : 0 < c.a) (hb_pos : 0 < c.b) : CrossingPoints c· Imo2025P6.DisjointSetup.getCrossingPoints- getDeclsInPackage def
- Gets the declarations that originate in modules beneath
package. · ProblemExtraction.getDeclsInPackage - gExp def
- The exponent
g_pfor a primepand boardB: thegcdof thep-adic valuations of the entries ofB. Sincegcd(a, 0) = a, valuations equal to0(entries not divisible byp) do not affect this gcd, sogExp p Bis the gcd of … · Imo2026P1.gExp - gf def
def gf (n : ℕ+) : ℕ· Imo1998P6.gf- Gform def
- The local form used modulo the prime
p:x² + xy + y²forp = 2andx^(p-1) + y^(p-1)for oddp. · Imo2017P6.Gform - GH def
- The "good head" condition on a list: either the head is red, or it lies in
B₀(blue,y = 0) and the second point (if any) is red. For such lists the colour sum is at most the number ofB₀-points. · Usa2008P3.GH - Good abbrev
abbrev Good (f : ℕ → ℕ) : Prop· Imo1993P5.Good- Good def
- A placement of the cards
1, ..., ninto three boxes (labeled byZMod 3) is good if every box is nonempty and whenever two pairs of cards from two different pairs of boxes have the same sum, the pairs of boxes coincide. · Imo2000P4.Good - Good structure
- The properties of a Nordic square implying the minimal number of uphill paths. · Imo2022P6.NordicSquare.Good
- Good def
Good p c mexpressesp = 1 + c * X + O(X^(m+1)). · Usa1988P5.Good- Good def
- Formalization of "a set of 11 distinct positive integers such that every integer between 1 and 1500 is the sum of a subset", with the elements listed in increasing order as
a 0 < a 1 < … < a 10. · Usa1992P3.Good - Good def
- The specification of the problem:
Qhas coefficients in{0, …, 9}and takes the valuesuat-2andvat-5. · Usa1997P3.Good - Good def
- A set
Sof squares on anm × nboard contains no forbidden triangle: one cannot find three (distinct) chosen squares whose centers form a right triangle with sides parallel to the edges of the board, that is, with two of them in the … · Usa2000P4.Good - Good def
- The property of the natural number
koccurring in the problem: every2022-tuple(x₁, …, x₂₀₂₂)of real numbers is the pointwise sum ofkessentially increasing functions at the points1, …, 2022. · Usa2022P5.Good - Good def
- The property required of
n: writing the divisors ofn !in increasing order as1 = d₁ < d₂ < ⋯ < dₖ = n !, the consecutive gaps are non-decreasing. We phrase this using consecutive triples: whenevera < b < care divisors ofn !… · Usa2024P1.Good - Good structure
structure Good (S : Fin 100 → Set ℤ) : Prop· Usa2024P2.Good- good def
def good [Ring R] (f : R → R)· Imo2017P2.good- good def
- Auxiliary condition:
m * nis of the formx ^ 2 + x + kfor a nonnegative integerx. The problem uses positivex, but uniqueness of placements for the weaker (nonnegative) condition implies uniqueness for the stronger one. · Imo2022P3.good - good_seqs def
def good_seqs {n : ℕ}· Usa1972P3.good_seqs- GoodA abbrev
- A binary sequence of length
n(encoded asx : Fin n → Bool, withfalsestanding for0andtruefor1) isA-good if it contains no three consecutive terms equal to0, 1, 0in that order. · Usa1996P4.GoodA - GoodArrangement def
- An arrangement of lines (one-dimensional affine subspaces of the plane) is good for a configuration if no line passes through a point of the configuration and every red point is strictly separated from every blue point by at least one of … · Imo2013P2.GoodArrangement
- GoodB abbrev
- A binary sequence of length
nisB-good if it contains no four consecutive terms equal to0, 0, 1, 1or1, 1, 0, 0in that order. · Usa1996P4.GoodB - GoodCircle def
GoodCircle nsays that all divisors ofnthat are greater than1can be arranged in a circle so that no two adjacent divisors are relatively prime. The circle is represented by a listlcontaining each such divisor exactly once; … · Usa2005P1.GoodCircle- GoodMateValue def
GoodMateValue b x vx wsays that the numberwis a legal and good answer for Bob in the mate of the cellx(which containsvx): it does not yet appear on the board, and it occupies the same position relative to the entries of the … · Usa2004P4.GoodMateValue- goodNats def
goodNatsis the set of natural numbers satisfying the condition in the problem statement, namely thea : ℕsuch thatn^4 + ais not prime for anyn : ℕ. · Imo1969P1.goodNats- goodPairs def
- The good index pairs of a choice
vof 100 points. · Usa2020P4.goodPairs - GoodPlacement def
- Combinatorial form of validity: whenever two pairs of cards from two different pairs of boxes have the same sum of indices, the pairs of boxes coincide. Equivalent to
ValidPlacement(valid_iff_good); this is the form used in the … · Imo2000P4.GoodPlacement - GoodRect def
- The predicate characterising the rectangles that can be tiled by hooks. · Imo2004P3.GoodRect
- goodSets def
- The good two-element subsets of a set of points: those
{P, Q}with|det P Q| = 1. · Usa2020P4.goodSets - gpd def
- The greatest prime divisor of an integer
m, with the conventiongpd (±1) = 1. (The value at0is irrelevant for the problem, which requiresf(n²) ≠ 0anyway.) · Usa2006P3.gpd - gPNat def
def gPNat (n : ℕ+) : ℕ+· Imo1998P6.gPNat- graph def
def Company.graph {n k : ℕ} (c : Company n k) : SimpleGraph (Fin (n ^ 2))· Imo2020P4.Company.graph- grid def
- The integer grid consisting of (a, b), where a, b are positive integers and a + b ≤ n + 1. · Imo2025P1.grid
- gridAdj def
- Two cells of the integer lattice are adjacent when they share an edge, i.e. their Manhattan distance is
1. · Usa2007P4.gridAdj - gridGraph def
- Use the full grid graph and the subgraph induced by the checkers. · Usa1999P1.gridGraph
- gridGraph def
- The infinite grid graph on
ℤ × ℤ: vertices are cells, edges join edge-adjacent cells. · Usa2007P4.gridGraph - gridPos abbrev
- The grid arrangement of cube positions: cubes at
(i * k, j * k, l * k)fori < ⌊a / k⌋₊,j < ⌊b / k⌋₊,l < ⌊c / k⌋₊. · Imo1976P3.gridPos - gridShift def
def gridShift (d : Fin 3) : Plane· Imo2025P1.gridShift- groupedIndices def
def groupedIndices (I J : Finset (Fin m)) : List (Fin m)· Imo2026P3.groupedIndices- GuaranteesWin def
- Player B's strategy
σguarantees a win if 1. against any answer sequence that stays consistent withxforever, B eventually stops and guesses, and 2. whenever B guessesXat timeTand the answers given so far are consistent with … · Imo2012P3.GuaranteesWin - gval def
- The value of the
j-th constructed function at the integer pointn: zero outside[1, 2047]; on its own level (j = lvl n - 1) it is the correctorxe x n - cval n * Bnd x, and on higher levels it is the bit contribution `2^j * Bnd … · Usa2022P5.gval
H
- H def
def H : Pt· Imo2023P2.Imo2023q2Cfg.H- h1 def
def h1 (attrs : List Attr· Html.h1- h2 def
def h2 (attrs : List Attr· Html.h2- h3 def
def h3 (attrs : List Attr· Html.h3- h4 def
def h4 (attrs : List Attr· Html.h4- halfBeams def
- The construction: 3030 beams forming a staircase. · Usa2020P2.halfBeams
- halfBlockAt def
def halfBlockAt (p : List ℝ) (i : Fin p.length) : List ℝ· Imo2026P3.halfBlockAt- hallTargets def
- Hall targets for row
r: good real columns, plus all dummy columns. · Usa2022P1.hallTargets - has_digit_one def
def has_digit_one (n : ℕ) : Prop· Usa2026P4.has_digit_one- HasAngle def
- A triangle
shas an interior angle equal toθ. · Imo2026P4.HasAngle - HasAp def
HasAp a p n mmeans that the firstn + 1termsa 0, a 1, …, a (n-1), m(where the candidatemis then-th term) contain an arithmetic progression of lengthp: there are strictly increasing indicesv 0 < v 1 < … < v (p-1), all … · Usa1995P1.HasAp- HasChain def
HasChain nmeans that ann-element set (which we may take to beFin n) admits a sequence of 100 mutually distinct nonempty subsets in which any two consecutive sets are disjoint and do not cover the whole set. · Usa2016P1.HasChain- HasEmptySquare def
- A peaceful configuration of
nrooks is a permutationσ: the rook in rowisits in columnσ i. Such a configuration has a rook-freek × ksquare if there is a block ofkconsecutive rows andkconsecutive columns (fitting on … · Imo2014P2.HasEmptySquare - HasEven abbrev
abbrev HasEven {n : ℕ} (s : DigitSeq n) : Prop· Usa1972P3.HasEven- HasFive abbrev
abbrev HasFive {n : ℕ} (s : DigitSeq n) : Prop· Usa1972P3.HasFive- HasMonoRectangle def
- A coloring (true = red, false = blue) of an
m × nboard has a monochromatic rectangle if there are two distinct rows and two distinct columns whose four intersection squares all have the same color. · Usa1976P1.HasMonoRectangle - HasMonoTriangle def
- A coloring has a monochromatic triangle if there are three distinct vertices whose three connecting edges all have the same color. · Imo1992P3.EdgeColoring.HasMonoTriangle
- hasProblemName def
def hasProblemName (c : Contest idx subIdx) (name : Lean.Name) : Bool· Contest.hasProblemName- HasRook def
σplaces a rook in every axis-alignedK × Ksquare — exactly the negation ofHasEmptySquare. · Imo2014P2.HasRook- HasSOS def
- The board contains three consecutive squares spelling S O S. · Usa1999P5.HasSOS
- HasThreat def
- The player to move can win immediately: some legal move produces SOS. · Usa1999P5.HasThreat
- HasTrap def
- The board contains a trap. · Usa1999P5.HasTrap
- HasUniqueLarge def
- A board has a unique large entry when exactly one entry is
> 1. · Imo2026P1.HasUniqueLarge - hblock def
- A horizontal block: three adjacent stamps in a single row. · Usa2002P6.hblock
- head def
def head (c : List Html)· Html.head- headBit def
def headBit : List (Fin 2) → Fin 2· Usa1996P6.headBit- header def
def header (attrs : List Attr· Html.header- hfn def
- The discrepancy between
gand its linear interpolant on[1/8, 3/8], rescaled to parameters in[0, 1]. · Usa2018P2.hfn - HForm structure
- A homogeneous polynomial in two variables with integer coefficients, represented by its degree and coefficient function. Evaluation is
∑ i ∈ range (deg + 1), coeff i * x^i * y^(deg - i). · Imo2017P6.HForm - highBit def
def highBit (d : Fin 4) : Fin 2· Usa1996P6.highBit- highlightMinJs def
def highlightMinJs : Asset· Assets.highlightMinJs- Hill def
- A "hill" in a Nordic square: a cell adjacent only to cells with smaller values. · Imo2022P6.NordicSquare.Hill
- hillFiberEquiv def
- The fiber of uphill paths ending at a hill is equivalent to its set of neighbors. · Imo2022P6.NordicSquare.hillFiberEquiv
- hist def
- The answer history after
tquestions, when player A answers according toans. · Imo2012P3.hist - hole def
- The "hole" (notch) of a hook: the centre cell of its bounding box. · Imo2004P3.hole
- hookShapes def
- The eight orientations of the hook (rotations and reflections of the figure in the problem statement). Each orientation is a
3 × 3square with three cells removed: the centre cell, the middle cell of one side, and a corner cell adjacent … · Imo2004P3.hookShapes - hr def
def hr· Html.hr- Html inductive
- HTML document tree. Structural correctness by construction. · Html
- html def
def html (attrs : List Attr· Html.html- htmlEscape def
- Escape for HTML text content · htmlEscape
- htmlEscapeAttr def
- Escape for HTML attribute values (superset of text escaping) · htmlEscapeAttr
- hunterPos def
- The hunter's position after round
nwhen using strategyσagainst the reported pointsp 1, ..., p n. · Imo2017P3.hunterPos
I
- I def
- the endpoints don't matter in the volume, so we don't need to know if they are in the solution or not · Imo1988P4.I
- I abbrev
abbrev I (A B C : P) (hABC : AffineIndependent ℝ ![A, B, C]) : P· Usa1988P4.I- id_ def
def id_ (i : String) : Attr· Html.id_- IData abbrev
- The insertion data: where and on which pan the weight
2^0is inserted.Sum.inl k(withk : Fin (n + 1)) inserts it on the left pan at positionk;Sum.inr k(withk : Fin n) inserts it on the right pan at positionk + 1(the … · Imo2011P4.IData - im def
- The set of values attained by the shift
k. · Usa2018P4.im - img def
def img (src : String) (alt : String) (attrs : List Attr· Html.img- Imo2001q1Cfg structure
structure Imo2001q1Cfg· Imo2001P1.Imo2001q1Cfg- Imo2012P5Cfg structure
- A configuration satisfying the conditions of the problem. · Imo2012P5.Imo2012P5Cfg
- Imo2014q4Cfg structure
structure Imo2014q4Cfg· Imo2014P4.Imo2014q4Cfg- Imo2019q2Cfg structure
- A configuration satisfying the conditions of the problem. We define this structure to avoid passing many hypotheses around as we build up information about the configuration; the final result for a statement of the problem not using this … · Imo2019P2.Imo2019q2Cfg
- Imo2023q2Cfg structure
structure Imo2023q2Cfg· Imo2023P2.Imo2023q2Cfg- imoProblemCounts def
def imoProblemCounts· imoProblemCounts- in_white_rect def
def in_white_rect (s t : Int) (p : Point n) : Prop· Imo2025P6.in_white_rect- InAtLeastKSubsets abbrev
- z is in at least k of the sets S. · Usa2024P2.InAtLeastKSubsets
- incidence def
def incidence {V E : Type*} [Fintype V] [Fintype E] (src dst : E → V) : (V → ZMod 3) →ₗ[ZMod 3] (E → ZMod 3)· Imo2026P3.CodexMod3.incidence- incidence_count def
def incidence_count (u v all_black : Finset (Point n)) (p : Point n) : ℕ· Imo2025P6.incidence_count- incidenceCoeff def
def incidenceCoeff (B : Fin m → Finset ℤ) (a : ℤ) (k : Fin m) : ℤ· Imo2021P6.incidenceCoeff- IncreasingSequenceFromOne structure
- A sequence of real numbers satisfying the given conditions · Imo1970P3.IncreasingSequenceFromOne
- incSequencesTo def
def incSequencesTo (f : α → β) (i : α) : Finset ℕ· Imo2025P6.incSequencesTo- incSubsets def
def incSubsets (f : Fin n → Fin n) : Finset (Finset (Fin n))· Imo2025P6.incSubsets- Indecomposable def
mis indecomposable inVₙif it belongs toVₙbut cannot be written as a product of two members ofVₙ. · Imo1977P3.Indecomposable- indexedDiffs def
def indexedDiffs (q : List ℝ) : List ℝ· Imo2026P3.indexedDiffs- indexInBlock def
def indexInBlock (l : List ℕ) (k : ℕ)· Imo2022P1.indexInBlock- initArr def
- The wizard's initial arrangement: a bijection of each of
σ []and its complement onto the labels. · Usa2016P6.initArr - initEquiv₁ def
- The equivalence between the first query and the labels. · Usa2016P6.initEquiv₁
- initEquiv₂ def
- The equivalence between the complement of the first query and the labels. · Usa2016P6.initEquiv₂
- initial abbrev
- The initial state: all lamps on, and the next step happens at lamp
0. · Imo1993P6.initial - initial def
- The initial configuration: 1, 2, 1, 2, ..., 1, 2, 3. · Usa1994P2.initial
- initialCover def
- The initial cover of
G: oneK₂per edge. · Usa2022P6.initialCover - initPos def
- The initial position: an n × n block of occupied squares. · Imo1993P3.initPos
- inner def
def inner : Finset (Fin 99)· Usa1998P4.inner- innerSum def
- For
l = [b₁, ..., bₘ],innerSum lis4 * b₁ + 4 * b₂ + ... + 4 * b_{m-1} + 2 * bₘ(and0for the empty list): the "tail" ofSafter the first entry. · Usa2026P2.innerSum - InSameArm def
blies in the same arm of the cross asa(meaningful whenais not the center). · Usa2007P4.InSameArm- insertList abbrev
- Inserting a fresh
2^0weight at positionkon panbinto a list of placements whose weights are all doubled. · Imo2011P4.insertList - insertZeroWays def
- The valid sequence obtained by inserting the weight
2^0according to the given insertion data. · Imo2011P4.insertZeroWays - inSub def
- Membership in the downward sub-triangle with apex
(p, q). · Imo2018P3.inSub - intCols def
- The interior cells (rows
< n) in columns1..i. · Usa2019P4.intCols - interiorPartialSums def
def interiorPartialSums (l : List ℝ) : List ℝ· Imo2026P3.interiorPartialSums- InteriorRow abbrev
- A row that is neither the first nor the last (and thus contains a monster). · Imo2024P5.InteriorRow
- interiorVerts def
- The vertices that a walk visits at an interior position: all
w.getVert (i + 1)withi + 1 < w.length. At each such vertex two consecutive edges of the walk meet. · Imo1991P4.interiorVerts - interPt def
- The intersection point of two non-parallel lines. · Imo2014P6.Line.interPt
- IntersectionSetup structure
structure IntersectionSetup (n : ℕ) [NeZero n] extends BaseSetup n· Imo2025P6.IntersectionSetup- intervalBlock def
def intervalBlock {N : ℕ} (r : ℕ → ℝ) (f : ℕ → ℕ) (i : Fin N) : List ℝ· Imo2026P3.intervalBlock- Inv def
- The invariant maintained after each move of the second player: a threat-free board with a trap and no SOS, with the right parity of empty squares (
t = true: first player to move). · Usa1999P5.Inv - Inv def
- The invariant Bob maintains after each of his moves. · Usa2004P4.Inv
- invariant def
- The invariant of the game: the weighted sum of the values, where the value at vertex
ihas weighti. A turn changes it by a multiple of 5. · Usa2011P2.invariant - invPair def
- The
A-inversion relation on a pair of entries:xis the left entry (at positioni, with thresholdc = a_i) andyis the right entry. · Usa2017P2.invPair - InX inductive
- The set
Xof the problem, as an inductive predicate: it is the smallest set of polynomials that contains the identity polynomialXand is closed under the two operationsr ↦ X * randr ↦ X + (1 - X) * r. · Usa1987P3.InX - is_good_seq def
def is_good_seq {n : ℕ} (s : DigitSeq n)· Usa1972P3.is_good_seq- is_power_of_two def
def is_power_of_two (n : ℤ) : Prop· Imo2015P2.is_power_of_two- is_solitary def
def is_solitary (n : ℕ) : Prop· Usa2026P4.is_solitary- is_sum_of_pos_squares def
- $z$ can be written as the sum of $k$ positive squares. · Imo1992P6.is_sum_of_pos_squares
- is_valid abbrev
abbrev is_valid (x : ℕ → ℤ) (y z : ℤ) : Prop· Usa1985P1.is_valid- is_valid_c def
def is_valid_c (c : ℝ) : Prop· is_valid_c- IsAcuteTriple def
- Three real numbers are the side lengths of an acute triangle iff the strict triangle inequalities hold and the sum of the squares of any two of them is strictly greater than the square of the third one. · Usa2012P1.IsAcuteTriple
- IsAdmissible def
def IsAdmissible (n : ℕ) (T : Finset Plane) : Prop· Imo2007P6.IsAdmissible- IsAdmissible def
- The two-sided inequality defining admissible functions on positive real numbers. · Imo2026P5.IsAdmissible
- IsAnimal structure
- An animal is a nonempty finite set of cells whose induced subgraph of the grid graph is connected. · Usa2007P4.IsAnimal
- IsAntiChain def
def IsAntiChain (s : Finset (Point n)) : Prop· Imo2025P6.IsAntiChain- IsArithProg def
- A sequence
f : ℕ → ℕis an arithmetic progression. · Imo2009P3.IsArithProg - IsBlack def
- A cell is black if it contains the greatest number in its row. · Usa2004P4.IsBlack
- IsBlock def
- A block that can be torn out of the n×n sheet. · Usa2002P6.IsBlock
- IsChain def
def IsChain (s : Finset (Point n)) : Prop· Imo2025P6.IsChain- isConstant def
def isConstant {R : Type*} [Semiring R] (p : R[X]) : Prop· Imo1993P1.isConstant- IsCut def
- One admissible cut of the triangle
s, producing childrenLandR. · Imo2026P4.IsCut - IsDinoPartition def
partsis a partition of the animaldinto two or more dinosaurs: at least two pairwise disjoint dinosaurs whose union isd. · Usa2007P4.IsDinoPartition- IsDinosaur def
- A dinosaur is an animal with at least
2007cells. · Usa2007P4.IsDinosaur - IsGood def
def IsGood (x A : ℝ) : Prop· Imo1959P2.IsGood- IsGood structure
- The predicate says that
xsatisfies the inequality · Imo1960Q2.IsGood - IsGood structure
structure IsGood (f : ℝ≥0 → ℝ≥0) : Prop· Imo1986P5.IsGood- IsGood def
- Label the points by
ZMod (2 * n - 1). A setBof black points is good if it contains two pointsxandywithy - x = n + 1orx - y = n + 1, which is exactly the condition that one of the two arcs between them containsn… · Imo1990P2.IsGood - IsGood abbrev
abbrev IsGood (a b c d e : ℝ) : Prop· Usa1978P1.IsGood- IsGood abbrev
- A set of integers is called good if it does not contain three elements
a,b,c(not necessarily distinct) satisfyinga + b + c = 0. · Usa2009P2.IsGood - IsGood def
- The property of
nthat the problem asks to characterize: among anynpositive real numbers whose maximum is at mostntimes their minimum (here expressed asa i ≤ n * a jfor all indicesi j), some three are the side lengths of … · Usa2012P1.IsGood - IsHook def
- A hook is a translate of one of the eight orientations. · Imo2004P3.IsHook
- IsIndependentPoint def
- Condition for a set of points to be "independent" (pairwise distance > 2). This matches the
swcondition. · Imo1999P3.IsIndependentPoint - IsInitial def
- An initial board: exactly
2026entries, each strictly greater than1. · Imo2026P1.IsInitial - IsInt def
- The predicate that a rational number is an integer. · Usa2009P6.IsInt
- IsLosing def
- A losing square: an empty square such that playing either letter there allows the opponent to win on the following move. · Usa1999P5.IsLosing
- IsMaximalTearing def
- A tearing-out of pairwise disjoint blocks from the n×n sheet which makes it impossible to tear out any more blocks. · Usa2002P6.IsMaximalTearing
- IsMaxProd def
def IsMaxProd (n₀ : ℕ)· Imo1976P4.IsMaxProd- IsMaxProdSet def
def IsMaxProdSet (s : Multiset ℕ)· Imo1976P4.IsMaxProdSet- IsMinMatildaCount def
def IsMinMatildaCount (n : ℕ) [NeZero n] (m : ℕ) : Prop· Imo2025P6.IsMinMatildaCount- IsMove def
- A single move: the piece at
cjumps over the adjacent piece atc + donto the empty squarec + d + d; the jumped-over piece is removed. · Imo1993P3.IsMove - IsPacking structure
- A packing of the
a × b × cbox by cubes of volume 2 (sidek = ∛2), with edges parallel to the edges of the box: a finite set of cube positions inside the box, pairwise non-overlapping. · Imo1976P3.IsPacking - IsPow2 def
- A positive integer which is a power of two (in particular
1 = 2 ^ 0counts). · Usa2026P2.IsPow2 - IsPrimitive def
- A dinosaur is primitive if its cells cannot be partitioned into two or more dinosaurs. · Usa2007P4.IsPrimitive
- IsProductOfkDistinctMembers def
def IsProductOfkDistinctMembers (x : ℕ) (k : ℕ) (S : Set ℕ) : Prop· Imo1994P6.IsProductOfkDistinctMembers- IsSolution abbrev
abbrev IsSolution (a b x y z : ℝ) : Prop· Imo1961P1.IsSolution- IsSolution def
def IsSolution (n : ℕ) : Prop· Imo2012P6.IsSolution- IsSolution abbrev
- The property that the integers
A, B, C, a, b, csolve the problem for the real cube rootkof2: the rational function(Ax² + Bx + C)/(ax² + bx + c)approximateskstrictly better thanxdoes, for every non-negative rational … · Usa1972P4.IsSolution - IsSolution def
- The conditions of the problem on a function
f : ℕ → ℕ. Since the problem is about functions on the positive integers, we require positivity offon positive inputs explicitly; the valuef 0is irrelevant. · Usa2012P4.IsSolution - IsStable def
- A set
Sof positive integers isk-stable if the sum of the elements of any nonempty subsetX ⊆ Shas digit sum equal tok. · Usa2005P6.IsStable - isSw def
- Helper predicate for the internal logic of the construction. We divide the grid based on parity and modulo 4 conditions. · Imo1999P3.isSw
- IsSwitch def
- A switching involution on a vertex
σ: an involutionφsupported on the numerators ofσwhich preserves labels. · Usa2018P6.IsSwitch - IsTerminal def
- A board is terminal when at most one entry is
> 1, so no move is possible. · Imo2026P1.IsTerminal - isTerminalWalk def
def isTerminalWalk {V : Type} {G : SimpleGraph V} {u v : V} (w : G.Walk u v)· Imo1979P6.isTerminalWalk- isTerminalWalk_length_cons_equiv def
def isTerminalWalk_length_cons_equiv {V : Type} {G : SimpleGraph V} {u t : V} (m n : ℕ) (npos : 0 < n) : {w : G.Walk u t // isTerminalWalk w ∧ w.length = m+n} ≃ Σ (v:V), {w : G.Walk u v // t ∉ …· Imo1979P6.isTerminalWalk_length_cons_equiv- IsTile def
- A tile is a translate of one of the six tile shapes. · Imo2004P3.IsTile
- isTree def
- Whether a cell of the board is a tree cell of the construction. · Imo2022P6.isTree
- isTreeJ def
- Whether a cell with pattern-column residue
jm6 = j % 6and rowris a tree cell of the construction (its complement are the hills). · Imo2022P6.isTreeJ - IsTriangle def
- A triangle, viewed as the multiset of its three interior angles (in degrees): positive reals summing to
180. · Imo2026P4.IsTriangle - IsUniversal def
- A vertex is universal if it is joined to all 1981 other vertices. · Usa1982P1.IsUniversal
- IsValid def
- A collection of plates is valid if any two distinct plates in it differ in at least two places. · Usa1990P1.IsValid
- IsValid def
- A coloring is valid if it satisfies the multiplicative condition of the problem. · Usa2015P3.IsValid
- IsValid def
- The property from the problem statement:
Sis a finite set of positive integers such that for everys ∈ Sand every positive divisordofsthere exists a uniquet ∈ SwithNat.gcd s t = d. · Usa2021P4.IsValid - IsValidConfiguration def
def IsValidConfiguration (n : ℕ) [NeZero n] (all_black : Finset (Point n)) (partition : Finset (Matilda n all_black)) : Prop· Imo2025P6.IsValidConfiguration- IsValidMarking def
- A set s is a valid marking if every square in the grid is adjacent to some square in s. · Imo1999P3.IsValidMarking
- isValidRow def
def isValidRow (l : List Coin)· Imo2022P1.isValidRow- IsValidSeq def
- The predicate stating that
a : ℕ → ℕ(0-indexed) is a sequence satisfying Definition 1: each term exceeds1, and each subsequent term is the smallest integer strictly larger than the previous one that shares a common factor with every … · Imo2026P6.IsValidSeq - IsVertex def
- A vertex is an involution with at most one fixed point (equivalently, a maximal matching of the complete graph). · Usa2018P6.IsVertex
- IsWalk inductive
- A walk in a pseudograph: the vertex list has one more entry than the edge list. · Imo2020P3.IsWalk
- isWhite def
- The white squares of the chessboard are those whose coordinates have even sum. · Imo1974P4.isWhite
- iterFac def
- Iterated factorials starting at
3:iterFac 0 = 3anditerFac (r + 1) = (iterFac r)!. These are used to produce arbitrarily large fixed points off(Shankar Padmanabhan's argument). · Usa2012P4.iterFac - IV inductive
IV a b lholds whenlis a list of natural numbers whose set of entries is exactly the interval[a, b], built by starting from a single digit and repeatedly prepending a new minimum or a new maximum. These are essentially the valid … · Usa1990P4.IV- IVSet def
- Lists whose digits form exactly the interval
[a, b]. · Usa1990P4.IVSet
J
- JapaneseTriangle structure
structure JapaneseTriangle (n : ℕ)· Imo2023P5.JapaneseTriangle- JudgePair abbrev
- An ordered pair of judges. · Imo1998P2.JudgePair
- judgePair abbrev
- The ordered pair of judges from the triple consisting of a contestant and an ordered pair of judges. · Imo1998P2.AgreedTriple.judgePair
- judge₁ abbrev
- The first judge from an ordered pair of judges. · Imo1998P2.JudgePair.judge₁
- judge₂ abbrev
- The second judge from an ordered pair of judges. · Imo1998P2.JudgePair.judge₂
K
- K def
- The set of positive integers whose decimal representation does not contain the digit 7. · Usa2019P3.K
- k def
- The side length of a cube of volume 2: the real cube root of 2. · Imo1976P3.k
- k def
- The largest number to appear infinitely often. · Imo2024P3.Condition.k
- K' def
- The second point on line
AXwithBC = BK'. · Imo2012P5.Imo2012P5Cfg.K' - K'_set def
def K'_set· Imo2023P2.Imo2023q2Cfg.K'_set- K_set def
def K_set· Imo2023P2.Imo2023q2Cfg.K_set- kE def
- enumeration of the absolute values · Usa2010P6.kE
- keyFn def
- The key function of the construction: tree cells come first (in strip order), then the hills (in column-major order). · Imo2022P6.keyFn
- KnightAdj def
- Two sites are at distance
√5iff they are a knight's move apart, i.e. their coordinate differences are(±1, ±2)or(±2, ±1). · Imo2018P4.KnightAdj - kseq def
- Define the two main sequences · Usa2008P1.kseq
L
- L def
- One full round of the process:
L x p = x last + ∑_{i ≤ p} x iinZMod 2. · Imo1993P6.L - L def
def L· Imo2014P4.Imo2014q4Cfg.L- L def
L(A,B): Liu Bang's total length, given Liu Bang's marksAand Xiang Yu's marksB. · Imo2026P3.L- l def
- The largest number to appear more than
ktimes. · Imo2024P3.Condition.l - L' def
- The second point on line
BXwithAC = AL'. · Imo2012P5.Imo2012P5Cfg.L' - L0 def
- The extremal board: five loops
(i,i)for eachi ∈ {1,…,8}and one negative edge(-i,-j)for each1 ≤ j < i ≤ 8(aK₈on the negative side). · Usa2010P6.L0 - lab def
- The label (
0–3) of a cell within its4×4block, from the pattern1 2 3 4 3 4 1 2 2 1 4 3 4 3 2 1(read with 1-indexed labels in the official solution). · Imo2018P4.lab - Label structure
structure Label (n : ℕ)· Imo2025P6.Label- label def
def label : ℕ → ℤ × ℤ → ℕ· Usa2017P5.label- label def
- The label of the edge
{k, σ k}as seen from its smaller endpointk: the rational(k+1)/(σ k + 1). · Usa2018P6.label - label_pos def
def label_pos (l : Label n) : Point n × Point n· Imo2025P6.label_pos- labelAt def
- The label the player can deduce at position
i, computed from observationsiandi + 1(junk value0when those observations are not available). · Usa2016P6.labelAt - labelling def
def labelling (c : ℝ)· Usa2017P5.labelling- LabelType inductive
inductive LabelType· Imo2025P6.LabelType- labelWeight def
def labelWeight [DecidableEq ι] (l : List (ℝ × ι)) (v : ι) : ℝ· Imo2026P3.labelWeight- lampsAfter abbrev
- The lamp states after
tsteps of the process. · Imo1993P6.lampsAfter - lap def
- The Laplacian of the friendship graph as a
ZMod 2-linear map:(lap G x) v = deg(v) * x v + ∑_{u ∼ v} x u. · Usa2008P6.lap - large_n def
- A sufficiently large value of n, congruent to
-1modφ (a * b + 1). · Imo2024P2.Condition.large_n - large_n_0 def
- A sufficiently large value of n, congruent to
0modφ (a * b + 1). · Imo2024P2.Condition.large_n_0 - last abbrev
abbrev last : singularities· Imo1988P4.last- last_divides_lcm_remaining def
def last_divides_lcm_remaining (n k : ℕ) : Prop· Imo1981P4.last_divides_lcm_remaining- lasti def
- The last index of
Fin n. · Imo1993P6.lasti - lastTwo def
- The last two cells of an uphill path, as a pair (second-to-last, last), with junk value for the second-to-last cell if the path has length 1. · Imo2022P6.UphillPath.lastTwo
- latinSquare def
def latinSquare {n : ℕ} (v : Fin n → ℕ) : Fin n → Fin n → ℕ· Imo1997P4.latinSquare- ldsLength def
def ldsLength (f : Fin n → Fin n) : ℕ· Imo2025P6.ldsLength- leanJs def
def leanJs : Asset· Assets.leanJs- leanName def
def leanName (p : ProblemInfo C) : Lean.Name· ProblemInfo.leanName- left_child def
def left_child (c : Coords) : Coords· Imo2018P3.left_child- leftmost def
- The position of the leftmost flea. · Imo2000P3.leftmost
- leftmostNSame def
- The property of a row having leftmost
ncoin with the same type. · Imo2022P1.Row.leftmostNSame - leftVertex abbrev
abbrev leftVertex (A : ZMod 3 → Point) (i : Fin 7) : Point· Usa2000P5.leftVertex- Legal def
- A sequence of permitted switches starting from configuration
e. · Usa2010P2.Legal - Letter abbrev
- The three letters
I,M,O. · Imo2016P2.Letter - letters def
- The occupied squares of the board. · Usa1999P5.letters
- lhs def
- The tuple of left-hand sides of the equations, as a function of the tuple of unknowns. · Imo1976P5.lhs
- lhsFinset def
- The possible values of the tuple of left-hand sides: each coordinate is an integer between
-2n²and2n². · Imo1976P5.lhsFinset - li def
def li (attrs : List Attr· Html.li- lift def
- Extend a placement
g : Fin 100 → ZMod 3to all ofℕ(by0outside[1, 100]); cardacorresponds to indexa - 1. · Imo2000P4.lift - Line structure
- A line in the plane
ℝ × ℝ, given by the equationa * x + b * y + c = 0with(a, b) ≠ (0, 0). · Imo2014P6.Line - line def
- The "line"
ax + by + c = 0. ("line" means except for the degenerate casea = 0 ∧ b = 0) Note: We don't enforcea ≠ 0 ∨ b ≠ 0. · Imo2025P1.line - line' def
- Build a line from a
LineCoeffs· Imo2025P1.line' - linear def
- The linear form
α * x + β * y. · Imo2017P6.HForm.linear - LineCoeffs structure
- The coeffecients of a line a * x + b * y + c = 0 · Imo2025P1.LineCoeffs
- linexy0 def
- The line `x+y=0`, as an affine subspace. · Imo2025P1.linexy0
- Link inductive
- The three possible link types between two towns. · Usa1981P2.Link
- link def
def link (attrs : List Attr)· Html.link- linkage structure
- A linkage between two stations. · Imo2020P4.Company.linkage
- Linked inductive
Linked a bmeans thatacan be connected tobby a finite chain of positive integers in which any two consecutive termsx, ysatisfyx + y ∣ x * y. · Usa2002P5.Linked- linked def
- The property of two stations being linked (in the given order). · Imo2020P4.Company.linked
- lisLength def
def lisLength (f : Fin n → Fin n) : ℕ· Imo2025P6.lisLength- listOfBlocks def
def listOfBlocks (l : List ℕ) (head : Coin) : List Coin· Imo2022P1.listOfBlocks- liveLean def
def liveLean (config : SConfig) (p : ProblemInfo C) (proved : Bool) : List Html· liveLean- liveLeanForName def
def liveLeanForName (config : SConfig) (name : Lean.Name) (proved : Bool) : List Html· liveLeanForName- lo def
- The lower-left corner of the bounding box of a set of cells. · Imo2004P3.lo
- loser def
- The child of
xholding the smaller value. · Imo2018P3.loser - losers def
- The smaller children dropped along the apex path (the "losers"). · Imo2018P3.losers
- losing def
- The losing squares of the board. · Usa1999P5.losing
- lowBit def
def lowBit (d : Fin 4) : Fin 2· Usa1996P6.lowBit- lower_intervals def
def lower_intervals : Set (Set ℝ)· UpperLowerContinuous.lower_intervals- lowerCfg def
- The Colombian configuration witnessing the lower bound: the vertices of a regular 4027-gon, colored red at odd indices and blue at even indices. · Imo2013P2.lowerCfg
- lowerFill def
def lowerFill : ℕ → Signature → ℕ· Usa2024P2.lowerFill- lows def
- The lines whose constraint is a lower bound on the parameter along
ℓ. · Imo2014P6.lows - lvl def
- The level of
n: forn ≥ 1this is the uniqueℓ ≥ 1with2^(ℓ-1) ≤ n < 2^ℓ. · Usa2022P5.lvl
M
- M abbrev
abbrev M : Polynomial ℝ· Imo1988P4.M- M def
def M· Imo2023P2.Imo2023q2Cfg.M- M def
- A number greater than any of the initial terms
a 0througha N(otherwise arbitrary). · Imo2024P3.M - m def
def m (_:ℕ) : ℕ → ℕ· Imo1973P6.m- M' abbrev
abbrev M' (n : singularities) : Polynomial ℝ· Imo1988P4.M'- M_st def
def M_st (s t : Int) : Finset (Point n)· Imo2025P6.M_st- main_ def
def main_ (attrs : List Attr· Html.main_- mainCss def
def mainCss : Asset· Assets.mainCss- mainEquiv def
- The valid colorings are in bijection with the parameters. · Usa2015P3.mainEquiv
- maintSeq def
- Running one maintenance round: the rabbit runs directly away from the hunter and the device reports the rabbit's position honestly. · Imo2017P3.maintSeq
- make_b_point def
def make_b_point (s t : Int) (h_bounds : let b· Imo2025P6.make_b_point- makePlot def
def makePlot (n : ℕ) (npos : 0 < n) : NicePlotOfP n npos· Imo1976P2.makePlot- map_mod def
def map_mod (n : ℕ) (hn : 0 < n) (f : ℕ → ℕ) : ℕ → Fin n· ZerosOnesAndTwos.map_mod- maskedCell def
def maskedCell (p : Prop) [Decidable p] (f : coloring) (x y : ℕ) : ZMod 2· Usa1998P4.maskedCell- mate def
- The pairing of the cells of the first two rows: the cell
(0, j)is paired with(1, colMate j)and vice versa; all other cells are paired with themselves. Paired cells are in different rows and three columns apart, so they do not even … · Usa2004P4.mate - Matilda structure
structure Matilda (n : ℕ) [NeZero n] (all_black : Finset (Point n))· Imo2025P6.Matilda- maxCliqueCard def
- The largest size of a clique of the graph
Gall of whose vertices lie inA. · Imo2007P3.maxCliqueCard - maxD def
- The maximum of a set of naturals, defaulting to
0for the empty set. · Usa1975P5.maxD - maxDecSequencesTo def
def maxDecSequencesTo (f : α → β) (i : α) : ℕ· Imo2025P6.maxDecSequencesTo- maxIncSequencesTo def
def maxIncSequencesTo (f : α → β) (i : α) : ℕ· Imo2025P6.maxIncSequencesTo- maxNumCubes def
- The maximal number of cubes of volume 2 that can be placed in the
a × b × cbox with edges parallel to the edges of the box: along an edge of integer lengthnexactly⌊n / k⌋₊cubes fit. That this is indeed the maximum is proved in … · Imo1976P3.maxNumCubes - Mc def
def Mc (A H C : EuclideanSpace ℝ (Fin 2)) : EuclideanSpace ℝ (Fin 2)· Usamo2025P4.Mc- meas def
- The measure of a configuration: twice the sum of the 1-based positions of the heads minus the square of the number of heads. We will show that this is a nonnegative integer (see
meas_nonneg) which drops by exactly one at each step (see … · Imo2019P5.meas - MedalsProcess abbrev
- The process described in the problem, from the point of view of the medals remaining:
r kis the number of medals left at the start of dayk + 1(sor 0 = m). On dayk(for1 ≤ k ≤ n - 1),kmedals and one seventh of the rest … · Imo1967P6.MedalsProcess - Medium def
- Medium numbers are those that are more than
kbut at mostl(and include all numbers appearing finitely often but more thanktimes). · Imo2024P3.Condition.Medium - mem def
def Matilda.mem (m : Matilda n all_black) (p : Point n) : Prop· Imo2025P6.Matilda.mem- members_of abbrev
abbrev members_of (i : Fin N) : Finset (@Name M)· Imo1978P6.members_of- mergeNeighbors def
def mergeNeighbors (c : Contest idx subIdx) : List <| idx × List subIdx· Contest.mergeNeighbors- meta_ def
def meta_ (attrs : List Attr)· Html.meta_- mid def
- The middle element of a 3-element set of natural numbers, computed as the sum minus the minimum minus the maximum. When
Sis the set of ace positions, this is the number of cards turned over to reach the second ace. · Usa1975P5.mid - midWindow def
- The
k - 1positions strictly betweeniandi + k(the empty set if they do not fit). · Usa2016P6.midWindow - minCell def
- The cell with value 1. · Imo2022P6.NordicSquare.minCell
- minD def
- The minimum of a set of naturals, defaulting to
0for the empty set. · Usa1975P5.minD - minEndpoint def
- The smaller endpoint of an edge, well-defined since
minis symmetric. · Imo1992P3.minEndpoint - minJumps def
- The minimum number of jumps the frog needs to reach position
m. · Usa2006P5.minJumps - mirror def
def Octagon.mirror : Octagon ≃g Octagon· Imo1979P6.Octagon.mirror- mirror def
- The point reflection swapping the two distinguished cells
x₀ = (1, 0)andy₀ = (4, 0)of the strategy below. · Usa2014P4.mirror - mixedRel def
mixedRel n G X psays that the vertexXis distinct from the two endpoints of the pairpand is adjacent to exactly one of them. · Usa1985P4.mixedRel- mk def
def msos.mk (L : List (ℕ × ℕ+)) : Multiset ℕ+· Imo1992P6.msos.mk- mk_mul_hom_fun def
def PNat.mk_mul_hom_fun {R : Type} [CommMonoid R] (g : ℕ → R) : ℕ+ →ₙ* R· Imo1990P4.PNat.mk_mul_hom_fun- mk_mul_hom_fun def
def PRat.mk_mul_hom_fun (g : ℕ → ℚ+) : ℚ+ →* ℚ+· Imo1990P4.PRat.mk_mul_hom_fun- mkColor def
- A symmetric link assignment on five towns, reconstructed from its restriction to the ten unordered pairs. · Usa1981P2.mkColor
- mkU def
- Bundle ten link types into a function
Fin 10 → Link. · Usa1981P2.mkU - Mod3 def
- The mod-3 placements: the box of card
adepends only ona % 3. · Imo2000P4.Mod3 - mod3fun def
- The mod-3 placements of the 100 cards. · Imo2000P4.mod3fun
- mod4_cycle def
def mod4_cycle : Set (ℤ → ℤ)· Imo2012P4.mod4_cycle- mod_base abbrev
abbrev mod_base : ℤ· Imo2025P6.mod_base- MODTable def
- The coloring
fof then × ntable satisfies all the required conditions: every row and column is balanced, and every diagonal whose length is a multiple of three is balanced. · Imo2016P2.MODTable - monoE def
- Boolean check: is the triangle with these three link types monochromatic? · Usa1981P2.monoE
- monoTriples def
- The monochromatic pairs of rows in column
j, tagged with their color:(r1, r2, b)meansr1 < r2and both squares(r1, j)and(r2, j)have colorb. · Usa1976P1.monoTriples - monsterCells def
- The cells with monsters as a Set, given an injection from rows to columns. · Imo2024P5.MonsterData.monsterCells
- MonsterData abbrev
- Data for valid positions of the monsters. · Imo2024P5.MonsterData
- monsterData12 def
- Positions for monsters with specified columns in the second and third rows (rows 1 and 2). · Imo2024P5.monsterData12
- motive def
def motive (Cdone : Finset (Fin N)) (k : ℕ) : Prop· Imo1978P6.motive- motive' def
def motive' (n : ℕ) (k : ℕ) : Prop· Imo1978P6.motive'- Move abbrev
- A permitted move between two squares: both lie on the board and the squared distance between their centers equals
r. · Imo1996P1.Move - Move def
- A single move with jump ratio
lam: fleai, sitting at some pointA = x i, jumps over fleajatB = x j(withAto the left ofB) and lands at the pointC = B + lam * (B - A), so thatBC / AB = lam. All other fleas stay … · Imo2000P3.Move - Move inductive
- A move of player B: either stop and guess a set
X, or ask whetherx ∈ S. · Imo2012P3.Move - Move def
- A single move: pick two entries
m, n(from two distinct positions, modelled as two separate elements of the multiset) both> 1, remove them and insertgcd(m, n)andlcm(m, n) / gcd(m, n). Usingm ::ₘ n ::ₘ sfor the source … · Imo2026P1.Move - Move def
- An allowed move: change the value at some index
nto another valuevthat differs from both neighbors. · Usa1994P2.Move - Move inductive
- One legal turn of the game: the two adjacent entries
xandyare erased and replaced by a power of twozwhich is strictly larger than both of them. · Usa2026P2.Move - move def
- The operation performed at vertex
iwhens i < 0. · Imo1986P3.move - move def
- A single move, on a pair of position and move number. · Imo2021P5.move
- move def
def List.move {α : Type u} (a b : ℕ): List α → List α· Imo2022P1.List.move- move def
- Move coins
athroughbto the left of the row. · Imo2022P1.Row.move - Moves def
Moves f gmeans that configurationgcan be reached fromfby a sequence of moves. · Usa2003P6.Moves- Moves structure
- A choice of lines to flip: for each of the three directions and each
i < n, whether thei-th line in that direction is flipped. The three lines through the token(a, b, c)are thea-th,b-th andc-th lines of the three … · Usa2013P3.Moves - MSequence abbrev
abbrev MSequence (n k : ℕ) (f : Sequence n k) : Prop· Imo2008P5.MSequence- mul def
- Multiplication of homogeneous forms (degrees add). · Imo2017P6.HForm.mul
- MulanCanGuarantee def
- Mulan can guarantee victory for the value
θ: from every valid starting triangle she wins in finitely many steps regardless of Shan-Yu's play. · Imo2026P4.MulanCanGuarantee - MulanWins inductive
- The set of triangles from which Mulan can force, in finitely many steps, a triangle with an interior angle equal to
θ, no matter how Shan-Yu discards. · Imo2026P4.MulanWins - mulSeq def
- A completely multiplicative sequence built from values assigned on a finite set of primes:
mulSeq P c j = ∏ r ∈ P, c r ^ (Nat.factorization j r). · Usa2012P3.mulSeq - mult def
- The multiplicity of vertex
xas an endpoint of edgee. · Imo2020P3.mult - MultisetNatOfLen14 structure
- A type representing assignments to the variables $n_1$, $n_2$, ..., $n_{14}$, quotiented by permutations of indices. · Usa1979P1.MultisetNatOfLen14
- Mval def
- The claimed invariant terminal value
M = ∏_{p ∣ ∏ B} p ^ gExp p B, the product over all primes dividing some entry ofBofpraised to the gcd of thep-adic valuations. · Imo2026P1.Mval
N
- N def
- The value of
Nin the problem (any sufficiently large value). · Imo2024P2.Condition.N - n def
def n : ℕ· Imo1989P1.n- N' def
N'is such that, by positionN', every medium number has made all its appearances and every small number has appeared more than max(k, N+1) times; furthermore,a N'is small (which means that every subsequent big number is preceded … · Imo2024P3.Condition.N'- N'aux def
N'auxis such that, by positionN'aux, every medium number has made all its appearances and every small number has appeared more than max(k, N+1) times. · Imo2024P3.Condition.N'aux- Name abbrev
abbrev Name : Type· Imo1978P6.Name- NatPredicate def
- It will be convenient to have the lemmas above in their natural number form. Most of these can be proved with the `norm_cast` family of tactics. · Imo1981P3.NatPredicate
- nav def
def nav (attrs : List Attr· Html.nav- navbar def
def navbar (config : SConfig) (currentPage : NavbarState) : List Html· navbar- NavbarState inductive
inductive NavbarState· NavbarState- nb def
- The nearest available blue point to
r, going counterclockwise fromr(if one exists; otherwise, arbitrarily,ritself). · Usa2017P4.nb - NC def
- Abbreviation for the noncollinearity hypothesis on a triple of points. · Imo1970P6.NC
- Necklace abbrev
- A circular necklace with
m * nbeads, each red (true) or blue (false). The beads are indexed by their position on the circle, i.e. byZMod (m * n). · Usa2024P4.Necklace - neg def
- Negation of a form. · Imo2017P6.HForm.neg
- negFourValue def
def negFourValue {b : ℕ} (digits : List (Fin b)) : ℤ· Usa1996P6.negFourValue- neighborCols def
- Columns containing a good cell in one of the rows in
R. · Usa2022P1.neighborCols - neighbors4 def
- The explicit four-element finset of neighbours of a cell. · Usa2007P4.neighbors4
- neqAfter def
- The set of positions
j > iwitha j ≠ a i. · Usa1987P5.neqAfter - newSwitch def
- The new switching involution: the product of the swaps
(x, σ x)over the representatives. · Usa2018P6.newSwitch - next_row def
def next_row {n} (i : Finset.Icc 1 n) (h : i.val + 1 ≤ n) : Finset.Icc 1 n· Imo2023P5.next_row- nextA def
- The effect of one doubling step
p(x) ↦ p(x) p(-x)on the exponents: ifp = ∏ (1 - X^i) ^ (a i)thenp(x) p(-x) = q(x²)whereq = ∏ (1 - X^i) ^ (nextA a i). · Usa1988P5.nextA - nextD def
- The successor of
xin the circle withDdeleted. · Usa2025P6.CirclePartition.nextD - Nice def
- Digit lists (little-endian) whose entry at each position has the parity of the position, so that consecutive digits have different parity. · Imo2004P6.Nice
- NicePlotOfP structure
structure NicePlotOfP (n : ℕ) (npos : 0 < n)· Imo1976P2.NicePlotOfP- NinjaPath structure
structure NinjaPath (n : ℕ)· Imo2023P5.NinjaPath- No3Col def
def No3Col (S : Finset Pt) : Prop· Imo2013P2.No3Col- no_eval def
- Wrapper to prevent the Lean kernel from eagerly trying to normalize the solution value, which happens to be way too large to normalize. · Imo1981P6.no_eval
- NoEven abbrev
abbrev NoEven {n : ℕ} (s : DigitSeq n) : Prop· Usa1972P3.NoEven- NoFive abbrev
abbrev NoFive {n : ℕ} (s : DigitSeq n) : Prop· Usa1972P3.NoFive- NonOverlapping abbrev
- Two cubes of side
kplaced atpandqdo not overlap: their interiors are disjoint, i.e. they are separated along at least one axis. · Imo1976P3.NonOverlapping - NordicSquare abbrev
- A Nordic square. · Imo2022P6.NordicSquare
- normalizeSignature def
- Push
vdown to its canonical high-rank residue. · Usa2024P2.normalizeSignature - NR def
- Number of rows. · Imo2018P3.NR
- NSequence abbrev
abbrev NSequence (n k : ℕ) (f : Sequence n k) : Prop· Imo2008P5.NSequence- nsOf def
- The constructed Nordic square: values are positions in the key order plus one. · Imo2022P6.nsOf
- nsOfIso def
- The order isomorphism between all cells (with the key order) and
Fin (m ^ 2). · Imo2022P6.nsOfIso - nth def
- The position after
nmoves. · Imo2021P5.Position.nth - nth_smallest def
def nth_smallest {n : ℕ} {a : Fin n → ℝ} (ha : Function.Injective a) : Fin n → ℝ· Imo1966P5.nth_smallest- nth_smallest_index def
def nth_smallest_index {n : ℕ} {a : Fin n → ℝ} (ha : Function.Injective a) : Fin n → Fin n· Imo1966P5.nth_smallest_index- nthDiv def
- The
i-th smallest positive divisor ofn(meaningful fori < n.divisors.card). · Imo2002P4.nthDiv - nu def
- The exponent of the largest power of
2dividing the integerx(the 2-adic valuation ofx). · Usa2006P5.nu - numberOfEntries def
- The set of all possible numbers of times the visitor could have entered a junction during her walk, over all parks and all choices of starting junction and first trail. · Usa2021P2.numberOfEntries
- numGoodTriples def
- The quantity
Tfrom the problem statement: the number of triples of indicesi < j < kwhose values are not(0, 1, 0)or(1, 0, 1). · Usa1987P5.numGoodTriples - numHeads def
- The number of coins showing heads in a configuration of
ncoins. A configuration is a functionFin n → Bool, wherec i = truemeans that thei-th coin from the left (starting the count at0) shows heads. · Imo2019P5.numHeads - numPartitions abbrev
- The number of partitions of
n. · Usa1986P5.numPartitions - nums def
- The numerators of an involution: positions sent to a strictly larger value. · Usa2018P6.nums
- nV def
- number of distinct absolute values · Usa2010P6.nV
O
- O def
def O :EuclideanSpace ℝ (Fin 2)· Imo2001P1.Imo2001q1Cfg.O- O abbrev
abbrev O (A B C : P) (hABC : AffineIndependent ℝ ![A, B, C]) : P· Usa1988P4.O- o def
o Pis the number of nonzero coefficients of a polynomialPoverZMod 2. · Imo1985P3.o- Objective def
def Objective (x : Fin 4 → ℝ) : ℝ· Usa2014P1.Objective- Observation abbrev
- An observation made by the player: the set of queried positions, together with the labels that were revealed (
noneoutside the queried set). · Usa2016P6.Observation - obsValues def
- The labels revealed in an observation on a given set of positions. · Usa2016P6.obsValues
- Ocard def
- Number of odd-length lines in one direction. · Usa2013P3.Ocard
- OccursDen def
def OccursDen (x : ℝ) (n d : ℕ) : Prop· Usa1983P5.OccursDen- Octagon abbrev
abbrev Octagon· Imo1979P6.Octagon- odd_const def
def odd_const : Set (ℤ → ℤ)· Imo2012P4.odd_const- oddCount def
- The number of odd coefficients of a polynomial with integer coefficients. · Imo1985P3.oddCount
- oddPart def
def oddPart (a : ℕ) : ℕ· Usa1983P5.oddPart- of def
- The identity map from cells to ordered cells. · Imo2022P6.OrderedCell.of
- ofBlocks def
def Row.ofBlocks {n : ℕ} (l : List ℕ) (head : Coin) (hl : l.sum = 2 * n) : Row n· Imo2022P1.Row.ofBlocks- off def
- The offset of arc
i: total length of the preceding arcs. · Usa2025P6.CirclePartition.off - offA1 def
- Offsets of the first circle when
13 ∤ n:[n, n+1, …, n+13]. · Usa1990P3.offA1 - offA2 def
- Offsets of the first circle when
13 ∣ n:[n+19, n+20, …, n+32]. · Usa1990P3.offA2 - offB1a def
- Offsets of the second circle when
13 ∤ nandn ≢ 2 [MOD 17]:[n+15, n+14, n+16, n+17, …, n+32]. · Usa1990P3.offB1a - offB1b def
- Offsets of the second circle when
13 ∤ nandn ≡ 2 [MOD 17]:[n+14, n+15, …, n+30, n+32, n+31]. · Usa1990P3.offB1b - offB2a def
- Offsets of the second circle when
13 ∣ nandn ≢ 16 [MOD 17]:[n+1, n, n+2, n+3, …, n+18]. · Usa1990P3.offB2a - offB2b def
- Offsets of the second circle when
13 ∣ nandn ≡ 16 [MOD 17]:[n, n+1, …, n+16, n+18, n+17]. · Usa1990P3.offB2b - offExt def
- Periodic extension of the offsets: the total length of the first
aarcs (going around the circle repeatedly). · Usa2025P6.CirclePartition.offExt - officialImoUrl def
def officialImoUrl (year : Nat) (_idx : Nat) : String· officialImoUrl- ofFn def
- Convert a function giving the cells of a path to a
Path. · Imo2024P5.Path.ofFn - offsets def
- The six unit steps between adjacent cells of the grid. · Usa2014P4.offsets
- ogPreviewPng def
def ogPreviewPng : Asset· Assets.ogPreviewPng- OnBoard abbrev
- The predicate that
pis a square of the 20 × 12 board. · Imo1996P1.OnBoard - ones def
- The number of
1s in the binary representation ofn. · Imo1994P3.ones - ones def
def ones (b : ℕ) : ℕ → ℕ· ZerosOnesAndTwos.ones- oneSunny def
- A
strongCoverGridConfigwithn = 1andnS = 1· Imo2025P1.oneSunny - op abbrev
abbrev op (f : S → S) (a b : S) : S· Imo1994P5.op- open_intervals def
def open_intervals : Set (Set ℝ)· UpperLowerContinuous.open_intervals- operation def
def List.operation {α : Type u} [DecidableEq α] (l : List α) (k : Fin l.length) : List α· Imo2022P1.List.operation- operation def
- The operation moving the chain containing coin
k(zero-based). · Imo2022P1.Row.operation - operationOneBased def
def List.operationOneBased {α : Type u} [DecidableEq α] (l : List α) {k : ℕ} (hk1 : 1 ≤ k) (hkn : k ≤ l.length): List α· Imo2022P1.List.operationOneBased- operationOneBased def
- The operation moving the chain containing coin
k(one-based). · Imo2022P1.Row.operationOneBased - opp def
- The opposite site of a site in its 4-cycle: the two sites of the cycle that are not a knight's move apart. · Imo2018P4.opp
- oppCoord def
- The opposite coordinate within a
4×4block:i ↦ 3 − iwithin the block. · Imo2018P4.oppCoord - optPlays def
- The set of plays that achieve the lowest score. · Usa2000P3.optPlays
- order def
def order {n : ℕ} (a : Fin n → ℝ) : Fin n → Fin n· Imo1966P5.order- OrderedCell def
- The cell type equipped with the key order (a synonym to avoid instance clashes). · Imo2022P6.OrderedCell
- Ordering abbrev
- The cyclic order in which the six chosen points appear around the circle:
σ iis the position of thei-th chosen point among the six positions0, …, 5listed in clockwise order. Only the cyclic order of the six points matters for … · Usa1983P1.Ordering - Others def
def Others· Imo2025P6.IntersectionSetup.Others- Outcome inductive
- The outcome of a game: first player wins, second player wins, or draw. · Usa1999P5.Outcome
- outsideIndices def
def outsideIndices (I J : Finset (Fin m)) : Finset (Fin m)· Imo2026P3.outsideIndices- Overdetermined def
- A finite set of points in the coordinate plane is overdetermined if it has at least two elements and some nonzero real polynomial of degree at most
|S| - 2passes through every point ofS. · Usa2020P5.Overdetermined
P
- P def
def P : ℕ → R → R → R· Bulgaria1998P8.P- P abbrev
abbrev P (a : ℝ) (f : ℝ → ℝ) : Prop· Imo1968P5.P- P def
def P (n : ℕ) : Prop· Imo1971P1.P- P def
def P (n : ℕ) : Circle· Imo1975P5.P- P def
def P (j : ℕ) : ℝ[X]· Imo1976P2.P- P def
def P : Finpartition S· Imo1989P1.P- P def
def P : EuclideanSpace ℝ (Fin 2)· Imo2001P1.Imo2001q1Cfg.P- P abbrev
abbrev P (n : ℕ) : ℕ· Imo2016P4.P- P abbrev
abbrev P {n : ℕ} (a : ZMod n → ℝ)· Imo2018P2.P- P abbrev
abbrev P (k: ℕ) : MvPolynomial (Fin 3) ℂ· P- P abbrev
abbrev P (n : ℕ) : Prop· Usa2011P4.P- P def
def P (f : ℤ → ℤ)· Usa2014P2.P- p def
def p (attrs : List Attr· Html.p- p def
p α kis the number of permutations ofαwith exactlykfixed points. · Imo1987P1.p- p abbrev
abbrev p : Polynomial ℝ· Imo1988P4.p- p def
- The index, minus
n, of the second appearance of the first small number to appear twice at or aftera n. This is only used for smalla nwithN' a N + 2 < n. · Imo2024P3.Condition.p - P01 def
- Indices
0or1modulo4. · Usa2013P3.P01 - P03 def
- Indices
0or3modulo4. · Usa2013P3.P03 - P12 def
- The four line-flipping patterns used for the extremal configuration: flip the lines whose index is
1or2modulo4. · Usa2013P3.P12 - P23 def
- Indices
2or3modulo4. · Usa2013P3.P23 - p2strat def
- The second player's strategy. · Usa1999P5.p2strat
- padList def
def padList (l : List ℕ) (n : ℕ) : List ℕ· Usa1992P1.padList- Page structure
- A page to be generated · Page
- PageGenerator abbrev
- Page generator: takes data and produces pages · PageGenerator
- pair def
- The ten unordered pairs of towns of
Fin 5, in a fixed order. · Usa1981P2.pair - pairCount def
- The number of contestants who solved both problems of the pair
P. · Imo2005P6.pairCount - pairCount def
- The number of two-element subsets of
Awhose sum divides the sum ofA. · Imo2011P1.pairCount - pairCount def
pairCount n rcounts pairs(a, b)of natural numbers witha, b ≤ nanda + b = r. · Usa2005P4.pairCount- pairDup def
def pairDup (xs : List ℝ) : List ℝ· Imo2026P3.pairDup- paired def
def paired (f : α → β) (i : α) : ℕ × ℕ· Imo2025P6.paired- pairOf def
- The pair (one of the
2ncomplementary pairs) that pebblejbelongs to. · Imo2020P3.pairOf - pairs def
- The ten pairs of professors, as the 2-element subsets of
Fin 5. · Usa1986P2.pairs - PairSet abbrev
- The type of pairs of professors. · Usa1986P2.PairSet
- pairSet def
- A set of
kpositions containing the two given (distinct) positions. · Usa2016P6.pairSet - pairSum def
- The sum
d₁d₂ + d₂d₃ + ... + dₖ₋₁dₖover the ordered positive divisors ofn. · Imo2002P4.pairSum - pairUp def
def pairUp : List α → List (α × α)· Imo2026P3.pairUp- pairWeight def
- The weight of a pair of consecutive values:
0if they are equal,+1if the second is the cyclic successor of the first (i.e. the pairs (1,2), (2,3), (3,1) of the problem statement), and-1otherwise. · Usa1994P2.pairWeight - pairwise_coprime_f def
def pairwise_coprime_f (s : Set ℕ) : Prop· Imo1971P3.pairwise_coprime_f- param def
- The standard parametrization of the line by
ℝ. · Imo2014P6.Line.param - parent def
- The parent map: for
c ∈ D,c ≠ ra chosen neighbour ofcof smaller depth; anything else is mapped to itself. · Usa2007P4.parent - parityTransform def
- Helper: A parity-dependent transformation. If target_parity is 0, it keeps points as is. Otherwise (assumed to be 1), it reflects the x-coordinate (n - 1 - x). · Imo1999P3.parityTransform
- Park structure
- A park: the combinatorial data of the Planar National Park, namely a finite simple graph (the junctions and trails) that is 3-regular (each junction is the endpoint of exactly three trails), together with a rotation system
rotgiving … · Usa2021P2.Park - parseAuthors def
def parseAuthors (src : String) : List String· ProblemExtraction.parseAuthors- parseCopyrightHeader def
def parseCopyrightHeader (src : String) : String· ProblemExtraction.parseCopyrightHeader- partial_cycle def
def partial_cycle (k : Finset.Icc 1 (2 * n)) : Perm $ Perm $ Finset.Icc 1 (2 * n)· Imo1989P6.partial_cycle- partner def
- The partner of
0under a permutation that moves0, seen as an element ofFin (n + 1)viaFin.pred. · Usa2018P6.usa2018p6_aux.partner - Path structure
- A valid path from the first to the last row. · Imo2024P5.Path
- path0 def
- The first attempt in a winning strategy, as a
Path. · Imo2024P5.path0 - path1 def
- The second attempt in a winning strategy, given the column of the monster in the second row, as a
Path. · Imo2024P5.path1 - path1OfEdge0 def
- The second attempt in a winning strategy, as a
Path, if the monster in the second row is at the left edge. · Imo2024P5.path1OfEdge0 - path1OfEdgeN def
- The second attempt in a winning strategy, as a
Path, if the monster in the second row is at the right edge. · Imo2024P5.path1OfEdgeN - path1OfNotEdge def
- The second attempt in a winning strategy, as a function, if the monster in the second row is not at an edge. · Imo2024P5.path1OfNotEdge
- path2 def
- The third attempt in a winning strategy, given the column of the monster in the second row and the row of the monster (if any) found in the second attempt, as a
Path. · Imo2024P5.path2 - path2OfEdge0 def
- The third attempt in a winning strategy, as a
Path, if the monster in the second row is at the left edge and the second (zigzag) attempt encountered a monster. · Imo2024P5.path2OfEdge0 - path2OfEdge0Def def
- The third attempt in a winning strategy, as a
Path, if the monster in the second row is at the left edge and the second (zigzag) attempt encountered a monster, version that works with junk values ofrfor convenience in defining the … · Imo2024P5.path2OfEdge0Def - path2OfEdgeNDef def
- The third attempt in a winning strategy, as a
Path, if the monster in the second row is at the right edge and the second (zigzag) attempt encountered a monster. · Imo2024P5.path2OfEdgeNDef - path2OfNotEdge def
- The third attempt in a winning strategy, as a function, if the monster in the second row is not at an edge. · Imo2024P5.path2OfNotEdge
- pathPos def
- Position of a ninja path in row
m, as a natural number (0if out of range). · Imo2023P5.pathPos - Paths def
- The rabbit's positions during phase
j(offsets0, ..., phaseLen j). · Imo2017P3.Paths - pathTo def
- The path from a valley to a given cell, following decreasing values. This is defined by well-founded recursion on the value of the cell. · Imo2022P6.NordicSquare.pathTo
- patRowTearing def
- The blocks torn out of row
iin the efficient tearing pattern. · Usa2002P6.patRowTearing - patTearing def
- The efficient maximal tearing, with asymptotic density n²/5. · Usa2002P6.patTearing
- patterns def
- The "good" residue patterns: triples of residues that sum to
0. · Usa1979P3.patterns - Pbound def
- An auxiliary formulation of boundedness: every prime divisor of
f(n²)is at most2n + B. · Usa2006P3.Pbound - period def
- The (minimal) period of the walk from
σ₀. · Usa2021P2.Park.period - periodicColor def
def periodicColor {n : ℕ} (i j : Fin n) : Letter· Imo2016P2.periodicColor- perm_fin_equiv def
def perm_fin_equiv : Perm (Finset.Icc 1 (2*n)) ≃ Perm (Fin (2*n))· Imo1989P6.perm_fin_equiv- permEquiv def
- Relabeling columns by a permutation of
Fin 3does not change the counts. · Usa2013P2.permEquiv - permOf def
- The permutation the wizard uses in response to the query
σ l: it keeps the next query free of matches. · Usa2016P6.permOf - permOfInvolutive def
- Package an involutive function as a permutation. · Usa2018P6.permOfInvolutive
- PermutedArithSeq def
def PermutedArithSeq {n : ℕ} (hn : 0 < n) (a : Fin n ↪ Fin (n ^ 2)) : Prop· Usa2023P5.PermutedArithSeq- perp def
- The line
{x | ⟪n, x⟫ = c}. · Imo2013P2.perp - perW def
- The periodic weight function on
ℕassociated to a score function. · Usa2025P6.CirclePartition.perW - pgA def
- The pseudograph on colors whose edges are the complementary pairs. · Imo2020P3.pgA
- pgB def
def pgB : Fin (2 * n) → Fin n· Imo2020P3.pgB- phase def
- The phase of row
iin the efficient tearing pattern: in rowi, the torn blocks start at columns congruent tophase imodulo 5. · Usa2002P6.phase - phaseLen def
- The length of phase
j. · Imo2017P3.phaseLen - phaseOf def
- The phase containing round
n. · Imo2017P3.phaseOf - phaseStep def
- One phase of the construction. Given the state at the start of the phase, produce the state at its end, the rabbit's positions during the phase (as a function of the offset
k = 0, ..., phaseLen j), and the reports made (as a function of … · Imo2017P3.phaseStep - phi def
phi p mreads the base-pdigits ofmin basep - 1. On digit-free numbers it is the inverse ofbSeq p. · Usa1995P1.phi- phi def
- The unique residue
kmodpfor which the pair(i, j)collides (this is well-defined wheni ≠ jandpis prime). · Usa2018P4.phi - PhiPoly def
- The "cleared denominator" polynomial: for
n = P.natDegree, the rational function(x, y) ↦ (2xy−1)^(n+1) * Qfun P x y ((x+y)/(2xy−1))is actually a polynomial function, and this is the corresponding polynomial, written as a polynomial … · Usa2019P6.PhiPoly - Piece inductive
- The two letters that can be written in a square. · Usa1999P5.Piece
- pieceLengths def
- The multiset of piece lengths obtained by cutting
[0,1]at the points of a finite setS ⊆ (0,1). We sortSascending, prepend0and append1, and take consecutive differences. The result is a list of|S| + 1positive reals … · Imo2026P3.pieceLengths - PiecewiseConcaveOn def
def PiecewiseConcaveOn (s : Finset ℝ) (f : ℝ → ℝ)· Imo2021P2.PiecewiseConcaveOn- PiecewiseConcavePlusOn def
def PiecewiseConcavePlusOn (s : Finset ℝ) (f : ℝ → ℝ)· Imo2021P2.PiecewiseConcavePlusOn- Piling abbrev
- A way of piling stones on the
n × ngrid is a multiset of(row, column)pairs, one pair per stone. · Usa2015P4.Piling - pilingOf def
- Every signature is realized by at least one piling: sort the rows and the columns and pair them up. · Usa2015P4.pilingOf
- Pivot def
def Pivot : Finset (Point n)· Imo2025P6.DisjointSetup.Pivot- Plane structure
structure Plane· Imo2007P6.Plane- Plane abbrev
- The 2-dimensional plane · Imo2025P1.Plane
- planeProduct def
def planeProduct (T : Finset Plane) : MvPolynomial (Fin 3) ℝ· Imo2007P6.planeProduct- Plate abbrev
- A license plate: six digits, each from 0 to 9 (leading zeros allowed). We model digits as elements of
ZMod 10so that digit sums modulo ten are available for the checksum argument. · Usa1990P1.Plate - Play structure
- A play of the game: the sequence of 36 moves, each a cell together with the rational number written in it. Alice makes the moves
0, 2, ..., 34and Bob the moves1, 3, ..., 35. The legality conditions are that all cells played are … · Usa2004P4.Play - play def
- Playing a strategy, k attempts. · Imo2024P5.Strategy.play
- play def
- Playing a strategy, k turns, against a given sequence of opponent moves (possibly not valid). · Imo2025P5.Strategy.play
- play def
- Playing out the game with two strategies;
fuelbounds the number of moves (2001 always suffices).truemeans it is the first player's turn. An illegal move (off the board or onto an occupied square) loses immediately. · Usa1999P5.play - play def
- The state after
mrounds of play. · Usa2016P6.play - Player abbrev
abbrev Player· Imo1974P1.Player- Player inductive
- The three players of the series. · Usa1974P4.Player
- Player inductive
inductive Player· Usa2023P4.Player- plays def
- The finite set of all plays with
Ablue,Bred andCwhite cards. · Usa2000P3.plays - playSeq def
- The infinite sequence of moves of a play. · Imo2025P5.Strategy.playSeq
- PlayState structure
- The state of play: the current arrangement, the past observations, and whether the player has already won. · Usa2016P6.PlayState
- pnatBinaryReverse def
- Binary reversal on positive naturals. · Imo1988P3.pnatBinaryReverse
- pOffset def
- The column offset of the construction (handles the case
m % 3 = 1). · Imo2022P6.pOffset - Point abbrev
abbrev Point· Imo2007P6.Point- Point abbrev
abbrev Point (n : ℕ)· Imo2025P6.Point- Point abbrev
abbrev Point· Usa2000P5.Point- PolyFromRoots def
def PolyFromRoots (S : Fin 3 → Finset ℝ)· Imo2007P6.PolyFromRoots- polyOfDigits def
- The polynomial whose coefficients are the given list of digits, in little-endian order. · Usa1997P3.polyOfDigits
- pon def
- Number of ones of
αon odd-length lines. · Usa2013P3.pon - pool def
- The collection of ball heights in the solution. · pool
- pos def
- The position of a point relative to the basepoint. · Usa2025P6.CirclePartition.pos
- PosInt abbrev
abbrev PosInt : Type· Imo2010P3.PosInt- Position abbrev
- The arrangement of walnuts, as an equiv from holes to walnuts (0-based). · Imo2021P5.Position
- positiveCoordSet def
def positiveCoordSet (n : ℕ) : Finset ℝ· Imo2007P6.positiveCoordSet- PositivePrefixData structure
structure PositivePrefixData (xs ys : List ℝ)· Imo2026P3.PositivePrefixData- PositiveReal abbrev
- The subtype of positive real numbers, representing
\mathbb{R}_{>0}. · Imo2026P5.PositiveReal - posOf def
- The position in the row corresponding to a deduced-label index. · Usa2016P6.posOf
- PosReal abbrev
abbrev PosReal : Type· Imo1983P1.PosReal- PosReal abbrev
abbrev PosReal : Type· Imo2008P4.PosReal- PosReal abbrev
abbrev PosReal : Type· Imo2022P2.PosReal- PosReal abbrev
abbrev PosReal : Type· Usa2022P3.PosReal- PosReal abbrev
abbrev PosReal : Type· Usa2023P2.PosReal- possible_num_clicks def
def possible_num_clicks : Set ℕ· Usa1998P4.possible_num_clicks- possible_num_colors def
def possible_num_colors : Set ℕ· Usa2001P1.possible_num_colors- potential def
- The potential function $V(s) = \sum (s_i - s_{i+2})^2$. · Imo1986P3.potential
- potential def
- Gerhard Woeginger's potential function: the sum of the distances of the fleas from the rightmost flea. · Imo2000P3.potential
- pow def
- Powers of a homogeneous form. · Imo2017P6.HForm.pow
- pow_of_first_k_prime_mod_two def
def pow_of_first_k_prime_mod_two (k : ℕ) (n : ℕ)· Imo1985P4.pow_of_first_k_prime_mod_two- pow_of_kth_prime_mod_two def
def pow_of_kth_prime_mod_two (k : ℕ) (n : ℕ) : ℕ· Imo1985P4.pow_of_kth_prime_mod_two- powChain def
- The list
[d, d*q, d*q^2, ..., d*q^e]. · Usa2005P1.powChain - powSum def
- The sum of the
k-th powers of the elements ofcoprimeSet n. · Usa2018P3.powSum - PRat abbrev
abbrev PRat· Imo1990P4.PRat- pre def
def pre (attrs : List Attr· Html.pre- prefBoard def
- The board after the first
nmoves of a play. · Usa2004P4.prefBoard - prefixFlattenBlocks def
def prefixFlattenBlocks (pre : List ℝ) (x : ℝ) (post : List ℝ) (_t rho : ℝ) (bm : Fin (pre.length + 1) → List ℝ) : Fin (pre ++ x :: post).length → List ℝ· Imo2026P3.prefixFlattenBlocks- prefixRefinementBlocks def
def prefixRefinementBlocks (pre : List ℝ) (x : ℝ) (post : List ℝ) (t rho : ℝ) (bm : Fin (pre ++ [t]).length → List ℝ) : Fin (pre ++ x :: post).length → List ℝ· Imo2026P3.prefixRefinementBlocks- prefixSum def
- The sum of the
msmallest elements ofS, taken in increasing order. · Usa1996P2.prefixSum - prepend def
- Prepend the kept pair
s₀ < t₀in front of the inductively chosen subsequenceg. · Imo2017P5.prepend - prepend_one def
def prepend_one (n : ℕ)· ZerosOnesAndTwos.prepend_one- prepend_two def
def prepend_two (n : ℕ)· ZerosOnesAndTwos.prepend_two- Primes def
def Primes· Imo1994P6.Primes- primes_iso def
def primes_iso : ℕ ≃o ↑Primes· Imo1994P6.primes_iso- primeSwap def
def primeSwap : ℕ → ℕ· Imo1998P6.primeSwap- probFirstAB def
- The probability that A wins the series when the first game is A against B. · Usa1974P4.probFirstAB
- probFirstAC def
- The probability that A wins the series when the first game is A against C. · Usa1974P4.probFirstAC
- probFirstBC def
- The probability that A wins the series when the first game is B against C. · Usa1974P4.probFirstBC
- probLeanRel def
def probLeanRel (p : ProblemInfo C) : String· probLeanRel- probLeanRelName def
def probLeanRelName (name : Lean.Name) : String· probLeanRelName- problemCount def
- All problems listed (including not yet formalized ones) · Contest.problemCount
- ProblemEquation def
def ProblemEquation (x : ℝ) : Prop· Imo1962P4.ProblemEquation- ProblemFileMetadata structure
structure ProblemFileMetadata· ProblemExtraction.ProblemFileMetadata- problemHtmlRel def
def problemHtmlRel (name : Lean.Name) : String· problemHtmlRel- problemHtmlUrl def
def problemHtmlUrl (config : SConfig) (name : Lean.Name) : String· problemHtmlUrl- problemId def
def problemId (name : Lean.Name) : String· problemId- problemImports def
def problemImports (m : ProblemExtraction.ProblemFileMetadata) : List Html· problemImports- ProblemInfo structure
structure ProblemInfo {idxType subIdxType : Type} [Ord idxType] [Ord subIdxType] (contest : Contest idxType subIdxType)· ProblemInfo- ProblemMeta structure
structure ProblemMeta· ProblemMeta- ProblemMetadataEntry structure
structure ProblemMetadataEntry· ProblemExtraction.ProblemMetadataEntry- ProblemMetadataExtension abbrev
abbrev ProblemMetadataExtension· ProblemExtraction.ProblemMetadataExtension- problemPath def
def problemPath (name : Lean.Name) (extension : String) : List String· problemPath- ProblemPredicate def
def ProblemPredicate (n : ℕ) : Prop· Imo1960P1.ProblemPredicate- ProblemPredicate def
def ProblemPredicate (n : ℕ) : Prop· Imo1962P1.ProblemPredicate- ProblemPredicate structure
- N = 1981 · Imo1981P3.ProblemPredicate
- ProblemPredicate' abbrev
abbrev ProblemPredicate' (c n : ℕ) : Prop· Imo1962P1.ProblemPredicate'- problemRel def
def problemRel (name : Lean.Name) (extension : String) : String· problemRel- problemTable def
def problemTable (c : Contest idxType subIdxType) (config : SConfig) (mds : Lean.NameMap ProblemMeta) (fmtIdx : idxType → String) (fmtSubIdx : subIdxType → String) : Html· Contest.problemTable- problemTable def
def problemTable (config : SConfig) (mdsArray : Array <| Lean.Name × ProblemMeta) : Html· problemTable- ProblemTag inductive
inductive ProblemTag· ProblemExtraction.ProblemTag- problemTagClass def
def problemTagClass (tag : ProblemExtraction.ProblemTag) : String· problemTagClass- problemUrl def
def problemUrl (config : SConfig) (name : Lean.Name) (extension : String) : String· problemUrl- probWinA def
- The probability that player
Awins the series, where · Usa1974P4.probWinA - prodForm def
- The polynomial
p(x) = ∏_{i = 1}^{32} (1 - X^i) ^ (a i). The exponenta 32of the last factor is thekof the problem. (We take the exponents to be natural numbers; the coefficient conditions force every exponent to be positive … · Usa1988P5.prodForm - project def
- Computes "how far along" the segment from
atobthe pointplies. · Imo2020P6.project - propEqs abbrev
abbrev propEqs (x : Fin 3 → ℝ) (a : Fin 3 → Fin 3 → ℝ) : Prop· Imo1965P2.propEqs- propsAB abbrev
abbrev propsAB (a : Fin 3 → Fin 3 → ℝ) : Prop· Imo1965P2.propsAB- pseq def
- The iterated polynomial sequence of the problem:
pseq [z₁, …, zₙ]is the polynomialpₙ, wherep₁(z) = z - z₁andpₖ(z) = pₖ₋₁(z)² - zₖ. · Usa1992P5.pseq - pSet def
- The indices, minus
n, of small numbers appearing for the second or subsequent time at or aftera n. · Imo2024P3.Condition.pSet - PState structure
- The state of the adversary's construction at the start of a phase: the rabbit's position
a, the listLof reports made so far, and the phase indexj. · Imo2017P3.PState - Pt abbrev
abbrev Pt· Imo1970P6.Pt- Pt abbrev
abbrev Pt· Imo1971P5.Pt- Pt abbrev
abbrev Pt· Imo1989P3.Pt- Pt abbrev
abbrev Pt· Imo2013P2.Pt- Pt abbrev
- Points of the Euclidean plane. · Imo2017P3.Pt
- pt def
- The
j-th vertex of a regular 4027-gon inscribed in the unit circle. · Imo2013P2.pt - pushDown def
- Move one full block from
vto its immediate sub-signatures. · Usa2024P2.pushDown - px abbrev
- Project onto yz-plane (zero out x) · Imo1992P5.px
- px abbrev
abbrev px (p : Point n) : ℕ· Imo2025P6.px- py abbrev
- Project onto xz-plane (zero out y) · Imo1992P5.py
- py abbrev
abbrev py (p : Point n) : ℕ· Imo2025P6.py- pz abbrev
- Project onto xy-plane (zero out z) · Imo1992P5.pz
Q
- Q def
def Q : Fin n → Fin n → ℝ· Imo1973P6.Q- Qfun def
- The polynomial equation, multiplied through by
xyz. This is the form of the hypothesis that we use below: it says thatQ(x, y, z)vanishes, whereQ(x, y, z) = xP(x) + yP(y) + zP(z) − xyz (P(x−y) + P(y−z) + P(z−x)). · Usa2019P6.Qfun - qon def
- Number of ones of
αon even-length lines. · Usa2013P3.qon - qProb def
- The probability weight: rational
309/500approximating(√5-1)/2, satisfyingq² + q ≤ 1and68 * q > 42. · Usa2010P6.qProb - qq def
- The geometric sum
1 + X + ⋯ + X^(t-1). · Usa2017P2.qq - quietCorners def
- The two board corners where the corner delta of
constAddStart cvanishes. · Usa1998P4.quietCorners - quotientEquivSignatures def
- The non-equivalent pilings of
mstones are in bijection with the pairs(X, Y)of multisets of rows and columns of sizem. · Usa2015P4.quotientEquivSignatures
R
- R def
- The adjacency condition required of neighboring divisors in the circle: they must not be relatively prime. · Usa2005P1.R
- r def
def r (n: singularities): NNReal· Imo1988P4.r- r def
- The red point associated to
ℓ. · Imo2014P6.Witness.r - rabbit def
- The rabbit's position after round
n. · Imo2017P3.rabbit - rankSignatures def
- Signatures of rank
k. · Usa2024P2.rankSignatures - ratio def
- The ratio
x_k / kattached to positionkof a permutation of{1, ..., n}, with positions and values encoded byFin nvia·.val + 1. · Usa2018P6.ratio - rationalSolutions def
def rationalSolutions· Imo2008P2.rationalSolutions- raw_order def
def raw_order {n : ℕ} (a : Fin n → ℝ) : Fin n → ℕ· Imo1966P5.raw_order- Reach inductive
- A sequence of legal moves. · Usa2021P3.Reach
- Reachable def
Reachable lam x ymeans that configurationycan be reached from configurationxby a finite sequence of moves with jump ratiolam. · Imo2000P3.Reachable- Reachable inductive
- The predicate defining states of boxes reachable by the given moves. · Imo2010P5.Reachable
- Reachable def
Reachable B B':B'can be obtained fromBby a finite sequence of moves (the reflexive–transitive closure ofMove). A finite play fromBto a terminal boardB'is precisely a witness ofReachable B B'withIsTerminal B'. · Imo2026P1.Reachable- Reachable def
- The frog can reach position
min exactlyjjumps starting from1. · Usa2006P5.Reachable - Reachable def
- Reachability of configurations. A turn at the edge
i, i + 1with amountmsubtractsmfrom the values at the verticesiandi + 1and adds2 * mto the value at the opposite vertexi + 3(the unique vertex adjacent to neither … · Usa2011P2.Reachable - Reachable inductive
Reachable G Hmeans that the graphHcan be obtained fromGby a sequence of legal moves (each adding one friendship between users with two common friends). · Usa2022P6.Reachable- realizedFamily def
def realizedFamily (f : Signature → ℕ) (i : Fin 100) : Set ℤ· Usa2024P2.realizedFamily- RealizedPoint abbrev
abbrev RealizedPoint (f : Signature → ℕ)· Usa2024P2.RealizedPoint- Rec def
def Rec (s : ℕ+) (f : ℕ+ → ℝ)· Imo2010P6.Rec- rec_max def
def rec_max {n : ℕ+} (f : ℕ+ → ℝ) (h : 1 < n)· Imo2010P6.rec_max- recolor_rect def
def recolor_rect (f : coloring) (r : Rectangle) : coloring· Usa1998P4.recolor_rect- Rect structure
- A rectangle on the chessboard, given by the coordinates
(r, c)of its top-left unit square, its heighth(number of rows) and its widthw(number of columns). · Imo1974P4.Rect - rect def
- The cells of an
m × nrectangle, as a finite subset ofℤ × ℤ. · Imo2004P3.rect - rect def
def rect (n : ℕ) (x_min x_max y_min y_max : ℕ) : Finset (Point n)· Imo2025P6.rect- rect_finset def
def rect_finset (s t : Int) : Finset (Point n)· Imo2025P6.rect_finset- Rectangle structure
structure Rectangle· Usa1998P4.Rectangle- rectColor def
- The indicator coloring of a rectangle. · Usa1998P4.rectColor
- redCol def
- The number of red points in column
x. · Imo2002P1.redCol - redPos def
- Position of the red dot in row
m, as a natural number (0if out of range). · Imo2023P5.redPos - redPts def
- The red points: vertices with odd indices. · Imo2013P2.redPts
- redsUpto def
- Number of red dots of the path
Pin rows1, ..., i. · Imo2023P5.redsUpto - reduce def
- If a
coverGridConfigcontains a line on the edge, remove the edge and shift it to a smallercoverGridConfig· Imo2025P1.reduce - Reduces inductive
Reduces a mmeans that the rowacan be reduced to the single numbermby a sequence of legal moves. A derivation is a full binary tree whose leaves are the entries ofaand whose internal nodes are powers of two larger than their … · Usa2026P2.Reduces- redWitness def
- The choice of a witness region for every red line. · Imo2014P6.redWitness
- reflect def
- Reflecting a cell of the board (swapping left and right sides of the board). · Imo2024P5.Cell.reflect
- reflect def
- Reflecting monster data. · Imo2024P5.MonsterData.reflect
- reflect def
- Reflecting a path. · Imo2024P5.Path.reflect
- reflect def
- Reflection of the pack about its middle: the card in position
xof a pack ofncards moves to positionn + 1 - x. · Usa1975P5.reflect - regionEExtend def
def regionEExtend (u v : Finset (Point n)): Finset (Point n)· Imo2025P6.regionEExtend- regionNExtend def
def regionNExtend (u v : Finset (Point n)): Finset (Point n)· Imo2025P6.regionNExtend- regionSExtend def
def regionSExtend (u v : Finset (Point n)): Finset (Point n)· Imo2025P6.regionSExtend- regionWExtend def
def regionWExtend (u v : Finset (Point n)): Finset (Point n)· Imo2025P6.regionWExtend- removeIdx abbrev
- The position of the weight
2^0in a valid sequence. · Imo2011P4.removeIdx - removeLine def
- Remove a line
Lfrom acoverConfig. · Imo2025P1.coverConfig.removeLine - removeList abbrev
- The list of placements with the
2^0weight removed and the remaining weights halved. · Imo2011P4.removeList - removePan abbrev
- The pan on which the weight
2^0was placed. · Imo2011P4.removePan - removeZeroData def
- The insertion data describing where the weight
2^0sits in a valid sequence. · Imo2011P4.removeZeroData - removeZeroWays def
- The valid sequence obtained by removing the weight
2^0and halving. · Imo2011P4.removeZeroWays - render def
- Render to string · Html.render
- renderDoc def
- Render a full HTML5 document with doctype · Html.renderDoc
- renderTab def
def renderTab (txt : String) (href : String) (pred : Bool) : Html· renderTab- rep def
- Representative of the antipodal class of
s, chosen insideSwhenever possible. · Imo2017P6.rep - repeat_shift def
def msos.repeat_shift (C:Multiset ℕ+) : Multiset ℕ+· Imo1992P6.msos.repeat_shift- Replacement structure
structure Replacement· ProblemExtraction.Replacement- reportList def
- The reports made in rounds
1, ..., n, as a list in chronological order. · Imo2017P3.reportList - reports def
- The point reported in round
n. · Imo2017P3.reports - repr def
- A chosen representative index for a value. · Usa2017P2.repr
- Reps def
- The reports made during phase
j(offsets1, ..., phaseLen j). · Imo2017P3.Reps - reps def
- The representatives of the pairs switched by
φ: the smaller element of each transposed pair of numerators. · Usa2018P6.reps - res def
def res (a : ℕ+ → ℝ) (l n : ℕ+) : ℝ· Imo2010P6.res- res def
- The residue of
a imodulo3. · Usa1979P3.res - residualList def
def residualList (rho : ℝ) : List ℝ· Imo2026P3.residualList- resolveAbs def
def resolveAbs (config : SiteConfig Custom) (path : List String) : String· SiteConfig.resolveAbs- resolveAsset def
def resolveAsset (config : SiteConfig Custom) (asset : Asset) : String· SiteConfig.resolveAsset- resolveRel def
def resolveRel (config : SiteConfig Custom) (path : List String) : String· SiteConfig.resolveRel- respSeq def
- The sequence of moves arising when the player with parity
pplays the strategysand the opponent always responds according tor. · Imo2025P5.respSeq - restrictAb def
- The restriction of an involution to a preserved pair
{a, b}. · Usa2018P6.restrictAb - restrictCompl def
- The restriction of an involution to the complement of a preserved pair
{a, b}. · Usa2018P6.restrictCompl - restrictPerm def
- Restriction of a permutation fixing
jto the complement ofj, transported toFin nalongfinSuccAboveEquiv. · Usa2018P6.usa2018p6_aux.restrictPerm - result def
def result : ℕ → ℕ· Imo1976P4.result- retTime def
- The first time (
> 0) at which the walk re-enters the starting junction. · Usa2021P2.Park.retTime - reveal def
- The revealed labels, hidden (
none) outside the queried set. · Usa2016P6.reveal - rho def
- The involution obtained from
σby removing the two edges throughaandb. · Usa2018P6.rho - right_child def
def right_child (c : Coords) : Coords· Imo2018P3.right_child- rightmost def
- The position of the rightmost flea. · Imo2000P3.rightmost
- rightVertex abbrev
abbrev rightVertex (A : ZMod 3 → Point) (i : Fin 7) : Point· Usa2000P5.rightVertex- rootCell def
- The root cell of the construction (its global key minimum). · Imo2022P6.rootCell
- rootFactor def
def rootFactor (i : Fin 3) (x : ℝ) : MvPolynomial (Fin 3) ℝ· Imo2007P6.rootFactor- rootPlane def
def rootPlane {n : ℕ} (i : Fin 3) (k : Fin n) : Plane· Imo2007P6.rootPlane- rootsInCoord def
def rootsInCoord (S : Fin 3 → Finset ℝ) (i : Fin 3)· Imo2007P6.rootsInCoord- rot def
- Rotation by 60 degrees about the origin. · Usa2014P4.rot
- rot90 def
- Rotation by 90 degrees. · Imo2013P2.rot90
- rotate def
- Rotate a closed trail at position
k(an index of a vertex occurrence). · Imo2020P3.CTrail.rotate - Row abbrev
- A row of coins. · Imo2022P1.Row
- row def
def row (j : ℕ) (i : Fin n) : ℕ· Imo1989P1.row- row def
def row {n : ℕ} (i : Fin n) : Finset (Fin n × Fin n)· Imo1997P4.row- row def
- The cells of row
r. · Imo2016P2.row - row1 def
- The row 1, in the form required for MonsterData. · Imo2024P5.row1
- row2 def
- The row 2, in the form required for MonsterData. · Imo2024P5.row2
- row_valid def
def row_valid {n : ℕ} (hn : 0 < n) (a : Fin n → Fin n → Fin (n ^ 2)) (ha : a.Injective2) : Prop· Usa2023P5.row_valid- rowFiber def
- The squares of
Slying in rowr. · Usa2000P4.rowFiber - rowK def
- The half-width of the row of
S nat heighty: the row consists of the points(x, y)with|x| ≤ rowK n y. · Usa2008P3.rowK - rowRect def
def rowRect (k : ℕ) : Rectangle· Usa1998P4.rowRect- rowRed def
- The red indicator of the unfolded construction: writing
p = q * n + jwithj < n(soqis the row andjthe column of beadp), the bead is red iffn + 1 - m ≤ j < n - q. · Usa2024P4.rowRed - Rows01Closed def
- The board is closed under the pairing on the first two rows: a cell of the first two rows is filled iff its mate is filled. · Usa2004P4.Rows01Closed
- rowsToCells def
def rowsToCells (p : Equiv.Perm (Fin N)) (s : Finset (Fin N)) : Finset (Cell N)· Usa2022P1.rowsToCells- rowSum def
- Definitions of row sum, column sum, and total sum · Imo1971P6.rowSum
- rset abbrev
abbrev rset : Finset ℝ· Imo1988P4.rset- rT def
- The parameter of the red point
r: the endpoint of the red edge at which the clockwise traversal of the boundary leaves the red line. · Imo2014P6.Witness.rT - rt def
- The primitive
p-th root of unity used throughout the proof. · Usa1999P3.rt - Rule abbrev
- The recurrence rule defining the sequence. · Imo2017P1.Rule
- run def
- Apply a finite sequence of trigonometric maps to a starting value. · Usa1995P2.run
S
- S def
- helper function Sₙ₋₁(x,y) = [(x + y)² - 1](y + 1)(x + 1)Pₙ₋₁(y+2, x+2). · Bulgaria1998P8.S
- S def
def S (a b c d : ℝ) : ℝ· Imo1974P5.S- S def
- The sum
∑ i, bᵢ * |x i|attached to a tupleb : Fin n → Fin kof coefficients. · Imo1987P3.S - S abbrev
abbrev S· Imo1988P4.S- S abbrev
abbrev S· Imo1989P1.S- S def
def S (n : ℕ+)· Imo1992P6.S- S def
def S· Imo1994P5.S- S def
def S· Imo1996P4.S- S def
def S {n : ℕ} (x : Fin n → ℝ) (p : Equiv.Perm (Fin n)) : ℝ· Imo1997P3.S- S def
- The function
Sin the problem. As implemented here it accepts a permutation ofFin nrather thanIcc 1 n, and as such contains+ 1to compensate. · Imo2001Q4.S - S abbrev
abbrev S· Imo2003P1.S- S def
def S (n : ℕ) : Set Point· Imo2007P6.S- S def
- The sum `a₀/a₁ + a₁/a₂ + ... + aₙ₋₁/a₀` of the problem statement. · Imo2018P5.S
- S def
def S : Set ℕ· Imo2025P4.S- S abbrev
abbrev S (k : ℕ) : MvPolynomial (Fin 3) ℂ· S- S def
def S (k : ℕ)· UK2024R1P1.S- S def
- The set
Sₙof the problem, namely the integer points(x, y)with|x| + |y + 1/2| < n. Multiplying by two, this is2|x| + |2y + 1| < 2n, and we build the set row by row. · Usa2008P3.S - S def
- All ordered pairs of distinct indices. · Usa2018P4.S
- S def
- The target bound for a row
a = [a₁, ..., aₙ]:a₁ifn = 1, and2 * a₁ + 4 * a₂ + ... + 4 * a_{n-1} + 2 * aₙifn ≥ 2(and0ifn = 0). · Usa2026P2.S - s def
def s (n : ℕ) : ℚ· Usa1989P1.s- s def
- The sum of the decimal digits of
m. · Usa2005P6.s - s def
- The partial sums
s n k = a n 0 + a n 1 + ... + a n kof the sequence of the problem, defined directly:s n 0 = n, ands n (k + 1)is the smallest multiple ofk + 2which is≥ s n k. · Usa2007P1.s - S' def
def S' (k : ℕ) (m : Fin (k + 2))· UK2024R1P1.S'- s_b def
- The parameter of
bin the parametrization ofg₁. · Imo2014P6.Witness.s_b - s_r def
- The parameter of
rin the parametrization ofg₁. · Imo2014P6.Witness.s_r - S_set def
- Auxiliary definition: S(n) will be defined as the greatest integer of the set S_set(n). · Imo1992P6.S_set
- SafeMove def
- A safe move: a legal move that is not on a losing square and that creates neither SOS nor an immediate winning opportunity for the opponent. · Usa1999P5.SafeMove
- SameRowIso def
- The entries of each of the first two rows are ordered in the same way as the entries of the paired cells. · Usa2004P4.SameRowIso
- SatisfiesRecurrence structure
- The five recurrence clauses from the problem. · Imo1988P3.SatisfiesRecurrence
- sb def
- The set "sb" (Marked squares with odd coordinate sum, symmetric to sw). · Imo1999P3.sb
- scannedPaperUrl def
def scannedPaperUrl (year : Nat) (idx : Nat) : Option String· scannedPaperUrl- ScanRefines def
def ScanRefines (coarse fine : List ℝ) : Prop· Imo2026P3.ScanRefines- scholesImoUrl def
def scholesImoUrl (year : Nat) (idx : Nat) : String· scholesImoUrl- scholesUsamoUrl def
def scholesUsamoUrl (year : Nat) (idx : Nat) : String· scholesUsamoUrl- SConfig abbrev
abbrev SConfig· SConfig- score def
- The score accumulated when playing the sequence of cards
l, listed in the order they are played. When a blue card is played, the score gained is the number of white cards remaining; for a red card it is three times the number of blue … · Usa2000P3.score - score def
- The score obtained by erasing the set
Tfrom the boardL: one point for each ordered pair with at least one erased entry. · Usa2010P6.score - script def
def script (attrs : List Attr) (c : List Html)· Html.script- SearchUpTo def
- We do an exhaustive search to show that all results are covered by `SolutionPredicate`. · Imo1960P1.SearchUpTo
- secondPrediction def
- The second prediction "D, A, E, C, B", given as the function sending each student to the place in which it was predicted to finish. · Imo1963P6.secondPrediction
- SecondSetupOk def
- A good second setup move: playing an S at
tcreates a trap without giving the opponent an immediate win. · Usa1999P5.SecondSetupOk - section_ def
def section_ (attrs : List Attr· Html.section_- seesAll3 def
- Boolean check: does a town whose four links have these types see all three link types? (The
||and&&chains are explicitly right-nested so thatsimpnormal forms match anonymous-constructor patterns.) · Usa1981P2.seesAll3 - segments def
def List.segments {α : Type u} [DecidableEq α] : List α → List (List α)· Imo2022P1.List.segments- segsH def
- The set of all horizontal
1 × 3block positions on then × nsheet. · Usa2002P6.segsH - segsV def
- The set of all vertical
3 × 1block positions on then × nsheet. · Usa2002P6.segsV - selectedBlockAt def
def selectedBlockAt (p : List ℝ) (I : Finset (Fin p.length)) (b : Fin (selectedList p I).length → List ℝ) (i : Fin p.length) : List ℝ· Imo2026P3.selectedBlockAt- selectedIndex def
def selectedIndex (p : List ℝ) (I : Finset (Fin p.length)) (i : Fin p.length) (hi : i ∈ I) : Fin (selectedList p I).length· Imo2026P3.selectedIndex- selectedList def
def selectedList (p : List ℝ) (I : Finset (Fin p.length)) : List ℝ· Imo2026P3.selectedList- seq def
- The recursion from the problem, parametrized by the sequence
p : ℕ → ℕof positive integers used as numerators, wherep kis used at stepk + 1. The problem instantiatesptoNat.nth Nat.Prime, the increasing enumeration of the … · Usa1997P1.seq - seqA def
- The sequence reindexed by
ℕ:seqA a m = a_{m+1}. · Imo2023P3.seqA - seqEquiv def
- The 2-to-1 correspondence: a
B-good sequence of lengthn + 1is determined by its first term (two choices) and its difference sequence, which is anA-good sequence of lengthn. · Usa1996P4.seqEquiv - seqGcd def
- The gcd of
|T 0|, |T 1|, ..., |T k|. · Usa2009P6.seqGcd - Sequence abbrev
abbrev Sequence (n k : ℕ)· Imo2008P5.Sequence- set def
- The line as a set of points. · Imo2014P6.Line.set
- setA' abbrev
abbrev setA' : Finset (ZMod p)· Usamo2020P3.setA'- setB' abbrev
abbrev setB' : Finset (ZMod p)· Usamo2020P3.setB'- setC' abbrev
abbrev setC' : Finset (ZMod p)· Usamo2020P3.setC'- Setup structure
- The problem's configuration. · Imo2001P5.Setup
- sget def
- The
i-th term of a binary sequencex : Fin n → Bool, orfalseifiis out of range. · Usa1996P4.sget - sgn def
- The sign
±1attached to a side of a line. · Imo2014P6.sgn - shaded def
- The shading of the grid used in
B's defense strategy fork = 6: every third cell is shaded. · Usa2014P4.shaded - Share abbrev
- Delegate
aand delegatebspeak a common language. · Usa1978P5.Share - SharedWith abbrev
- The delegates other than
dthat share a language withd. · Usa1978P5.SharedWith - shift def
def msos.shift (C: Multiset ℕ+) (i : ℕ+) (a : ℕ)· Imo1992P6.msos.shift- shift def
- The cyclic shift
x ↦ x + 1on{1, ..., p}(sendingpback to1), extended by the identity on all other natural numbers. · Imo1995P6.shift - shift def
- Shift a
coverConfigby the vectorv. · Imo2025P1.coverConfig.shift - shift def
- Shift
pforward (counterclockwise) bydpositions, cyclically. · Usa2017P4.shift - shiftLine def
shiftLineMap vis the injective mapAffSubOfPlane ↪ AffSubOfPlanethat shifts by the vectorv. · Imo2025P1.shiftLine- shiftLineMap def
shiftLineMap v Lshifts the line L by the vectorv. · Imo2025P1.shiftLineMap- shiftLines def
shiftLines v linesis the collection ofshiftLine v LforL ∈ lines. · Imo2025P1.shiftLines- shiftSet def
- The action of
shift pon sets of naturals: the elements ofAlying in{1, ..., p}are cyclically shifted and all other elements stay fixed. · Imo1995P6.shiftSet - shiftSet def
shiftSet v gis the result of shifting every point ingby the vectorv. · Imo2025P1.shiftSet- Shifty def
- An integer
dis shifty for a setSif shifting byddoes not change membership inS. The shifty integers form a subgroup ofℤ, and the proof below shows that1is shifty, which forcesS = ℤ. · Usa2001P5.Shifty - shrinkColor def
- Uncoloring the edges of
Pin the extremal coloring. · Imo1992P3.shrinkColor - shrinkColoring def
- The shrunk coloring, packaged as an
EdgeColoring. · Imo1992P3.shrinkColoring - sideAngle abbrev
abbrev sideAngle (A : ZMod 3 → Point) (ω : Fin 7 → Circle) (i : Fin 7) : Real.Angle· Usa2000P5.sideAngle- sig def
- The sum of colours along a list of points. · Usa2008P3.sig
- sign3 def
def sign3 (z : ZMod 3) : ℝ· Imo2026P3.CodexMod3.sign3- Signature abbrev
abbrev Signature· Usa2024P2.Signature- signatureCount def
- Exact signature counts extracted from an actual family. · Usa2024P2.signatureCount
- SignatureCountCondition def
- Divisibility condition in signature-count form. · Usa2024P2.SignatureCountCondition
- SignatureIntersectionCount def
- Counts elements whose signature contains
u. · Usa2024P2.SignatureIntersectionCount - SignatureObjective def
- Number of realized points lying in at least
50sets. · Usa2024P2.SignatureObjective - signatureOf def
- The membership signature of an integer with respect to the family
S. · Usa2024P2.signatureOf - SilverMatrix def
- An
n × nmatrixMis a silver matrix if its entries come fromS = {1, …, 2n - 1}and, for eachi, thei-th row and thei-th column together contain all ofS. · Imo1997P4.SilverMatrix - singularities abbrev
abbrev singularities· Imo1988P4.singularities- Site abbrev
- A site on the board: the 0-indexed version of
{1, ..., 20}². · Imo2018P4.Site - SiteConfig structure
- Site-wide configuration · SiteConfig
- skipEmb def
- The embedding
Fin n ↪ Fin (n+1)whose range is everything exceptp, as used inEquiv.Perm.decomposeFin. · Usa2017P2.skipEmb - skipMap def
- The enumeration of the complement of an arc, starting right after the arc. · Usa2025P6.CirclePartition.skipMap
- slideStrat abbrev
- The winning strategy specialized to
k < n. · Usa2016P6.slideStrat - slotCount def
- Total number of edge-slots of a list of edges at vertex
x. · Imo2020P3.slotCount - Small def
- Small numbers are those that are at most
k(that is, those that appear infinitely often). · Imo2024P3.Condition.Small - smallCells def
- All cells holding a value
≤ NR: the apex together with the losers. · Imo2018P3.smallCells - smallDivisors def
def smallDivisors (n : ℕ) : List ℕ· Imo2025P4.smallDivisors- smallPrimeFactor def
- A prime in
{2, 3, 5, 7}dividingx, whenever one exists. · Imo1991P3.smallPrimeFactor - solLeanRel def
def solLeanRel (p : ProblemInfo C) : String· solLeanRel- solLeanRelName def
def solLeanRelName (name : Lean.Name) : String· solLeanRelName- solution abbrev
abbrev solution : ℝ· Imo1973P3.solution- solution_set def
def solution_set (n : ℕ) (a b c : ℝ) : Set (ℕ → ℝ)· Imo1968P3.solution_set- solution_set def
def solution_set : Set (ℕ × ℕ)· Usa2017P1.solution_set- solution_set_generalized def
def solution_set_generalized {n : ℕ} (hn : 2 ≤ n) {a : Fin n → ℝ} (ha : Function.Injective a) : Set ((Fin n → ℝ))· Imo1966P5.solution_set_generalized- SolutionData inductive
inductive SolutionData· Usa2011P4.SolutionData- solutionEquiv def
- The valid assignments form a coset of the kernel of
lap G. · Usa2008P6.solutionEquiv - solutionImports def
def solutionImports (m : ProblemExtraction.ProblemFileMetadata) : List Html· solutionImports- solutionSet def
- The definition of the solution set based on the construction logic. Defined as the union of sw and sb. · Imo1999P3.solutionSet
- solutionUrl def
def solutionUrl (id : String) : String· solutionUrl- Solvable def
- The game is solvable for
nif the n × n block can be reduced to a single piece, i.e. a one-piece position is reachable from the initial position by a sequence of moves. · Imo1993P3.Solvable - Solvable def
- The goal of the game: the board can be emptied after a non-zero number of moves. · Usa2021P3.Solvable
- solvedCount def
def solvedCount (c : Contest idxType subIdxType) (mds : Lean.NameMap ProblemMeta) : Nat· Contest.solvedCount- someOrientation def
- A default choice of orientation, for lemmas that need to pick one. · Imo2019P2.someOrientation
- sp def
- The element of the move-span indexed by three bits. With
g₁ = (1,1,0),g₂ = (0,1,1)andθ = (e,e,e), this isε₁ • g₁ ^^ ε₂ • g₂ ^^ ε₃ • θ. · Usa2013P3.sp - span def
def span (attrs : List Attr· Html.span- specifiedSet def
def specifiedSet : Set ℤ· Imo1981P3.specifiedSet- SphereOrder structure
structure SphereOrder (P₁ P₂ P₃ P₄ : Pt)· Imo2023P2.SphereOrder- SphereWithKK'LL' structure
- A sphere containing
K,K',L,L'. · Imo2012P5.Imo2012P5Cfg.SphereWithKK'LL' - splicePath def
- A path that follows
Pup to rowi(wherePis at positionq) and then moves to positionp(withq = porq + 1 = p) and stays there. · Imo2023P5.splicePath - spliceSteps def
- The steps of a path that follows
Pup to rowiand then stays atp. · Imo2023P5.spliceSteps - splitZeroEquiv def
- Split involutions of
Fin (n + 2)according to whether0is a fixed point. · Usa2018P6.usa2018p6_aux.splitZeroEquiv - sq_sum def
def msos.sq_sum (C : Multiset ℕ+) : ℕ· Imo1992P6.msos.sq_sum- SqA abbrev
- The square with vertex
A. · Imo1996P1.SqA - SqB abbrev
- The square with vertex
B. · Imo1996P1.SqB - Square abbrev
abbrev Square (n : ℕ)· Imo1999P3.Square- square_set def
def square_set : Set (ℤ → ℤ)· Imo2012P4.square_set- squaresEvenSum def
- Set of all squares where the sum of coordinates is even. · Imo1999P3.squaresEvenSum
- squaresOddSum def
- Set of all squares where the sum of coordinates is odd. · Imo1999P3.squaresOddSum
- src def
def src (asset : Asset) : String· Asset.src- start def
- The first station in a linkage. · Imo2020P4.Company.linkage.start
- start def
- The starting point of arc
i. · Usa2025P6.CirclePartition.start - start_coloring def
def start_coloring : coloring· Usa1998P4.start_coloring- startRound def
- The first round of phase
j. · Imo2017P3.startRound - State def
- State of the pentagon: an integer assigned to each vertex. · Imo1986P3.State
- State abbrev
- The state of the system: the on/off states of the lamps (
true= on), together with the position of the lamp that may be switched at the next step. Positions are taken modulon, i.e. inFin n. · Imo1993P6.State - State structure
structure State (n : ℕ)· Usa2023P4.State- StateA def
- The cyclic-order state of a triple of students: going backwards from
awe meetbbefore meetingc. · Usa2010P2.StateA - stateA def
- After clearing
kcolumns of the top strip: the board below rownplus columnsk, k+1, ...of the whole square. · Imo1993P3.stateA - stateB def
- After clearing
krows of the right strip. · Imo1993P3.stateB - stateC def
- After clearing the bottom of column
n + 2as well. · Imo1993P3.stateC - stateD def
- After clearing the bottom of columns
n + 1, n + 2. · Imo1993P3.stateD - States def
- The state at the start of phase
j. · Imo2017P3.States - static def
- Helper: create a page from static content · Page.static
- Step def
- The transition relation
Step next currentasserts thatnextis obtained fromcurrentby applying the move operation at some vertexiwheres i < 0. The order of arguments(next current)is chosen to match the convention of … · Imo1986P3.Step - Step abbrev
- One legal operation of the game: choose two distinct positions
iandjwithr j ≤ r i, erase the numberr iand writer i - r jin its place. · Usa2008P5.Step - Step inductive
- One legal move of the game: either place a stone on each cell of an empty L-tromino, or clear a full row, or clear a full column. · Usa2021P3.Step
- step def
- One step of the process, performed at the current position
s.2: if lamps.2 - 1is on then lamps.2is switched, otherwise nothing happens to the lamps; in any case the position advances by one (modulon). · Imo1993P6.step - step def
- One step of Harry's process: if there are
k > 0heads, flip thek-th coin from the left; otherwise (all coins show tails) do nothing. · Imo2019P5.step - step def
- One move at vertex
j: replace the number atjby the absolute value of the difference of the numbers at the two neighboring vertices. · Usa2003P6.step - step def
- The cell reached from
pby makingisteps in directiond. · Usa2014P4.step - step def
- One round of the game. · Usa2016P6.step
- step def
- One step of the walk: turn at the current junction and traverse the chosen trail; the next turn has the opposite direction. · Usa2021P2.Park.step
- step2 def
- The move on parity vectors: in
ZMod 2the absolute difference becomes a sum. · Usa2003P6.step2 - stepEquiv def
- The key bijection: valid sequences for
n + 1weights correspond to valid sequences fornweights together with insertion data for the weight2^0. · Imo2011P4.stepEquiv - stepInv def
- The inverse step: the process is deterministic in both directions. · Usa2021P2.Park.stepInv
- stepN def
- One move at vertex
j, phrased on natural numbers. · Usa2003P6.stepN - StoneMove def
- A single stone move: two stones lying in distinct rows and distinct columns swap their columns. (The two kinds of moves described in the problem statement — picking either pair of diagonally opposite corners of a rectangle — are both of … · Usa2015P4.StoneMove
- Strategy structure
- A strategy for player B: from the list of answers so far (in chronological order), decide the next move. · Imo2012P3.Strategy
- Strategy abbrev
- A hunter strategy: given the list of points reported by the tracking device in rounds
1, ..., n(in chronological order), choose the hunter's positionBₙ. The hunter's move may depend only on the reported points, not on the rabbit's … · Imo2017P3.Strategy - Strategy abbrev
- A strategy, given the results of initial attempts, returns a path for the next attempt. · Imo2024P5.Strategy
- Strategy abbrev
- A strategy for a given player gives a choice of number in every position, with the convention that invalid moves lose and the strategy's choices are ignored in cases where it is not that player's turn, a previous move was invalid or the … · Imo2025P5.Strategy
- Strategy abbrev
- A strategy chooses a square and a letter given a board. · Usa1999P5.Strategy
- Strategy abbrev
- A player strategy: from the list of past observations, choose the next set of positions to query. · Usa2016P6.Strategy
- strictSupersetContribution def
- Strict-superset part of an intersection count. · Usa2024P2.strictSupersetContribution
- stringifyPercent def
def stringifyPercent (num : Nat) (denom : Nat) : String· stringifyPercent- strongCoverGridConfig structure
- A
coverGridConfigwith the additional requirements every line inlinesgoes through at least one point ing. This is used to inductively construct covers ofgrid nwith exactly0,1, or3sunny lines. · Imo2025P1.strongCoverGridConfig - sub def
- Subtraction of two forms of the same degree. · Imo2017P6.HForm.sub
- subCompany def
def Company.subCompany {n k : ℕ} (c : Company n k) {k' : ℕ} (hk' : k' ≤ k) : Company n k'· Imo2020P4.Company.subCompany- subKey def
- The within-strip order key of a cell (pattern column
j, rowr). · Imo2022P6.subKey - SubsetSums def
- The set of all sums of one or more distinct elements of
S. · Usa1996P2.SubsetSums - subtree def
- The subtree rooted at
v: all cells ofDwhose parent chain hitsv. · Usa2007P4.subtree - succPerm def
- The successor permutation of a placement: sends each element to its clockwise neighbor. · Imo2022P3.succPerm
- sum def
- The sum of all integers on the pentagon. · Imo1986P3.State.sum
- sum def
- Sum of a family of forms of the same degree. · Imo2017P6.HForm.sum
- sum_successive_terms def
def sum_successive_terms {α : Type} [AddCommMonoid α] {n : ℕ} (s : Fin n → α) (start : Fin n) (count : ℕ) [NeZero count] (h : start+count-1 < n) : α· Imo1977P2.sum_successive_terms- sumOfSquares def
def sumOfSquares (L : List ℕ) : ℕ· Imo1960P1.sumOfSquares- SumSqrtDist def
def Finset.SumSqrtDist {α : Type u} (s : Finset α) (x : α → ℝ) (t : ℝ)· Imo2021P2.Finset.SumSqrtDist- Sunny def
- The condition on lines in the problem. · Imo2025P1.Sunny
- sunnyPred def
- The decidable predicate
Sunny. · Imo2025P1.sunnyPred - supersetLayer def
def supersetLayer (u : Signature) (j : ℕ) : Finset Signature· Usa2024P2.supersetLayer- Supp def
- The face-support condition for every beam in
S. · Usa2020P2.Supp - Support def
- Trominoes may only be placed at anchors
(i, j)withi + 1 < nandj + 1 < n; counts at other anchors vanish. · Usa2021P3.Support - surplus def
- The "greedy surplus" of a list: sum of adjacent pair differences, plus the last entry if the length is odd. For a decreasing list this equals
2 * (even-position sum) - (total sum). · Imo2026P3.surplus - Sw def
- The weighted character sum
∑ k, k.val * χ (j * k). · Usa1999P3.Sw - sw def
- The set "sw" (Marked squares with even coordinate sum). · Imo1999P3.sw
- swapped def
- The numbers of the walnuts swapped in move
k(0-based), given the position. · Imo2021P5.Position.swapped - symm def
- The symmetry of the configuration. · Imo2012P5.Imo2012P5Cfg.symm
- symm def
def symm : Imo2014q4Cfg· Imo2014P4.Imo2014q4Cfg.symm- symm def
- The configuration has symmetry, allowing results proved for one point to be applied for another (where the informal solution says "similarly"). · Imo2019P2.Imo2019q2Cfg.symm
T
- T def
- helper function Tₙ₋₁(x,y) = (y - y²)(x - x²)Pₙ₋₁(y, x). · Bulgaria1998P8.T
- T def
def T (t : ℝ) : ℝ· Imo1974P5.T- T def
def T (x : Perm (Finset.Icc 1 (2*n)))· Imo1989P6.T- T def
- The box of card
iin an "ends" placement. · Imo2000P4.T - T def
- The points (x, y) with nonnegative integer coordinates and x + y < n. · Imo2002P1.T
- T def
- The set of antipodal class representatives of
S. · Imo2017P6.T - T def
def T (n : ℕ) (y : ℝ) : ℝ· Usa2026P1.T- t def
def t (n : ℕ) : ℚ· Usa1989P1.t- t def
- The transformation
t:t a iis the number of terms ofathat precede thei-th term and are different from it. · Usa2003P3.t - table def
def table (attrs : List Attr· Html.table- taggedBlocks def
def taggedBlocks {N : ℕ} (b : Fin N → List ℝ) : List (ℝ × Fin N)· Imo2026P3.taggedBlocks- tagTable def
def tagTable (tagFormalizedCounts : Array Nat) (tagSolvedCounts : Array Nat) : Html· tagTable- tail def
- The "tail" of the extremal construction: the points
(i, 2)for2 ≤ i ≤ n. · Usa2020P5.tail - target def
- The target configuration with base index
m: the value at indexidepends only on the offseti - m, exactly as in the problem statement where indexm + kcarries thek-th value of the pattern. · Usa1994P2.target - target def
- The cardinality required at cell
(i, j). · Usa2019P4.target - targetPat def
- The alternating pattern underlying the target configurations:
targetPat kis the value at offsetk(with0 ≤ k ≤ 98) from the base index, namely 1 at even offsets≤ 96, 2 at odd offsets≤ 95, 3 at offset 97 and 2 at offset 98. · Usa1994P2.targetPat - targetsE def
def targetsE (u v all_black : Finset (Point n)) : Finset (Point n)· Imo2025P6.targetsE- targetsEin def
def targetsEin : Finset (Point n)· Imo2025P6.targetsEin- targetsN def
def targetsN (u v all_black : Finset (Point n)) : Finset (Point n)· Imo2025P6.targetsN- targetsNin def
def targetsNin : Finset (Point n)· Imo2025P6.targetsNin- targetsS def
def targetsS (u v all_black : Finset (Point n)) : Finset (Point n)· Imo2025P6.targetsS- targetsSin def
def targetsSin : Finset (Point n)· Imo2025P6.targetsSin- targetsW def
def targetsW (u v all_black : Finset (Point n)) : Finset (Point n)· Imo2025P6.targetsW- targetsWin def
def targetsWin : Finset (Point n)· Imo2025P6.targetsWin- tbody def
def tbody (attrs : List Attr· Html.tbody- td def
def td (attrs : List Attr· Html.td- th def
def th (attrs : List Attr· Html.th- thead def
def thead (attrs : List Attr· Html.thead- third def
- The player who sits out a game between
xandy. Only meaningful forx ≠ y; returnsAon the diagonal. · Usa1974P4.third - ThreatFree def
- No immediate winning move is available. · Usa1999P5.ThreatFree
- ThreeMinDivisors structure
structure ThreeMinDivisors (x d₁ d₂ d₃ : ℕ) : Prop· Imo2025P4.ThreeMinDivisors- threeSmallestDivisors def
def threeSmallestDivisors (n : ℕ) : List ℕ· Imo2025P4.threeSmallestDivisors- threeSunny def
- A
strongCoverGridConfigwithn = 3andnS = 3· Imo2025P1.threeSunny - threeSunnyLine def
- The lines of a 3 sunny solution · Imo2025P1.threeSunnyLine
- threeSunnyLineCoeffs def
- The
LineCoeffsof a 3 sunny solution · Imo2025P1.threeSunnyLineCoeffs - threeSunnyLines def
- The set of lines of a 3 sunny solution · Imo2025P1.threeSunnyLines
- Tileable def
Rcan be tiled by hooks: there is a finite family of pairwise disjoint hooks whose union isR. · Imo2004P3.Tileable- tileShapes def
- The six orientations of the two-hook "tiles" (pairs of interlocking hooks): the
3 × 4rectangle, the4 × 3rectangle, and the four orientations of the zigzag shape. · Imo2004P3.tileShapes - title def
def title (attrs : List Attr· Html.title- Tmap def
- Pairing with
d, restricted to the kernel oflap G, as a linear map into the dual of the kernel. · Usa2008P6.Tmap - Tmax def
- The upper endpoint of the edge, in parameter form. · Imo2014P6.EdgeCtx.Tmax
- Tmin def
- The lower endpoint of the edge, in parameter form. · Imo2014P6.EdgeCtx.Tmin
- TN def
- The total
1 + 2 + ⋯ + 2018. · Imo2018P3.TN - to_nat_digit def
def to_nat_digit : Digit → ℕ· Usa1972P3.to_nat_digit- toColoring def
- The valid coloring associated to a parameter: the all-red coloring for
none, and the interval coloringcolorOf X₀ B₀for a disjoint pair(X₀, B₀). · Usa2015P3.toColoring - Tof def
- the erased set for strategy
t· Usa2010P6.Tof - toFin9 def
def toFin9 (color : Set.Icc 1 9 → Fin 2) : Fin 9 → Fin 2· Bulgaria1998P1.toFin9- toFinsetV def
- The vertex set of an element of
Sym2 V, as aFinset. · Usa2022P6.Sym2.toFinsetV - Toggle def
- The operation of the problem: if
ais friends with bothbandc, butbandcare not friends, then the friendshipsabandacare deleted and the friendshipbcis created.Toggle G G'says thatG'is obtained fromGby … · Imo2019P3.Toggle - toGridSubset def
def toGridSubset (f : Fin n → Fin n) (t : Finset (Fin n)) : Finset (Point n)· Imo2025P6.toGridSubset- Token def
- The tokens are indexed by pairs
(a, b)of natural numbers witha + b < n. One should think of barycentric coordinates(a, b, c)witha + b + c = n - 1, so thatc = n - 1 - a - bis determined. · Usa2013P3.Token - toNat def
def ProblemTag.toNat (t : ProblemTag) : Nat· ProblemExtraction.ProblemTag.toNat- topRow def
- The cells of row
nin columns1..i. · Usa2019P4.topRow - topSignature def
def topSignature : Signature· Usa2024P2.topSignature- tot def
- Total parity of a lamp vector. · Imo1993P6.tot
- totalPhases def
- Total number of phases:
20000phases of 400 rounds, one phase of 3600 rounds, then maintenance phases of 400 rounds; in total exactly10^9rounds. · Imo2017P3.totalPhases - totalRounds def
- The number of rounds in the game. · Imo2017P3.totalRounds
- totalSum def
def totalSum : ℕ· Imo1971P6.totalSum- totalWeight def
- The invariant: the total weight around the cycle. · Usa1994P2.totalWeight
- tr def
def tr (attrs : List Attr· Html.tr- trailLabel def
- The edge labeling given by a trail
w(whose edges get the labelsn + 1, …, n + w.length, in order) together with a labelingΦ'of the remaining edges. · Imo1991P4.trailLabel - transform def
- The transformation used to map the set
swto a triangular region inFin k × Fin k. · Imo1999P3.transform - transform_A_to_B def
def transform_A_to_B [NeZero n] : (A n) → (B n)· Imo1989P6.transform_A_to_B- transform_B_to_A def
def transform_B_to_A [NeZero n] : (B n) → (A n)· Imo1989P6.transform_B_to_A- transl def
- Translation by a fixed cell. · Usa2014P4.transl
- transpose abbrev
abbrev transpose (p : ℤ × ℤ) {c : ℝ} (l : labelling c) : labelling c· Usa2017P5.transpose- trap def
- The finite trap used for the drawn starting positions. · Imo1990P5.trap
- TrapAt def
- A "trap": the pattern S _ _ S with both middle squares empty. Its two middle squares will turn out to be exactly the losing squares. · Usa1999P5.TrapAt
- trapEnds def
- The left ends of traps on the board. · Usa1999P5.trapEnds
- tri def
- The set of cells of an
NR-row triangle: row< NR, column≤ row. · Imo2018P3.tri - triangleABC def
ABCas aTriangle. · Imo2019P2.Imo2019q2Cfg.triangleABC- trianglePQB₂ def
PQB₂as aTriangle. · Imo2019P2.Imo2019q2Cfg.trianglePQB₂- triangleQPA₂ def
QPA₂as aTriangle. · Imo2019P2.Imo2019q2Cfg.triangleQPA₂- TrigMap inductive
- The six trigonometric maps allowed by the problem. · Usa1995P2.TrigMap
- tripsA def
- Triples
i < j < kwitha i = a j = a k. · Usa1987P5.tripsA - tripsB def
- Triples
i < j < kwitha i = a j ≠ a k. · Usa1987P5.tripsB - tripsC def
- Triples
i < j < kwitha i ≠ a j = a k. · Usa1987P5.tripsC - trivialPath def
- The trivial uphill path consisting of just the minimum cell. · Imo2022P6.NordicSquare.trivialPath
- trivialTearing def
- A wasteful maximal tearing: fill the sheet with vertical blocks, column by column, and fill the leftover bottom rows with horizontal blocks. Used to show that a maximal tearing always exists (and for the upper bound at small
n). · Usa2002P6.trivialTearing - trominoCells def
- The three cells of the L-tromino with anchor
(i, j), as in the figure of the problem statement:(i, j),(i + 1, j)and(i + 1, j + 1). · Usa2021P3.trominoCells - trunc def
- Coefficient function truncated above the degree. · Imo2017P6.HForm.trunc
- trunCeil def
def trunCeil (x : ℝ)· trunCeil- TruthfulAt def
- The
i-th answer is truthful for the secretx: it matches the truth value ofx ∈ S, whereSis the question B asked at that point. (If B guessed instead of asking, the answer is vacuously truthful.) · Imo2012P3.TruthfulAt - trygub def
- The Anton Trygub counterexample construction for composite
nwith prime divisorq, at the level of natural number values. Row0is0, …, n-1; rows1 ≤ r ≤ qare arithmetic progressions with differenceqfillingn, …, n*q+n-1; … · Usa2023P5.trygub - trygubArr def
- The Trygub arrangement, packaged as a grid of elements of
Fin (n^2). · Usa2023P5.trygubArr - tuples def
- The admissible 4-tuples, as a
Finset. · Usa2005P4.tuples - turn def
- Leaving junction
v(having arrived fromu) by the trail on the left (p = true) or on the right (p = false). · Usa2021P2.Park.turn - turnAngle abbrev
abbrev turnAngle (A : ZMod 3 → Point) (i : Fin 7) : Real.Angle· Usa2000P5.turnAngle- two_pow_k_finset def
def two_pow_k_finset (k : ℕ)· Imo1985P4.two_pow_k_finset- twoPart def
- Decompose `a` into its power-of-two factor and the remaining odd factor. For positive `a`, `oddPart a` is the largest odd divisor. · Usa1983P5.twoPart
- tᵤ def
- Generate the toplogy on ℝ by intervals of the form (a, b]. · UpperLowerContinuous.tᵤ
- tₗ def
- Generate the toplogy on ℝ by intervals of the form [a, b). · UpperLowerContinuous.tₗ
- tₛ def
- This should be equivalent to the default instance for
TopologicalSpace ℝ, which goes throughUniformSpace, but for now I don't want to bother with proving that equivalence. · UpperLowerContinuous.tₛ
U
- U def
- helper function Uₙ₋₁(x,y) = (x + y - 1) [(y + 1)(x - x²)Pₙ₋₁(y + 2, x) + (x + 1)(y - y²) Pₙ₋₁(y, x + 2)] · Bulgaria1998P8.U
- u def
def u (n : ℕ) : ℚ· Usa1989P1.u- u_lower def
def u_lower (u : Finset (Point n)): Finset (Point n)· Imo2025P6.u_lower- u_upper def
def u_upper (u : Finset (Point n)): Finset (Point n)· Imo2025P6.u_upper- ul def
def ul (attrs : List Attr· Html.ul- UnboundedAtNegInfinity def
def UnboundedAtNegInfinity (f : ℝ → ℝ)· Imo2021P2.UnboundedAtNegInfinity- UnboundedAtPosInfinity def
def UnboundedAtPosInfinity (f : ℝ → ℝ)· Imo2021P2.UnboundedAtPosInfinity- uncoloredEdges def
- The uncolored edges of an edge coloring, represented as the set of non-diagonal edges that were left uncolored. · Imo1992P3.EdgeColoring.uncoloredEdges
- unifDistN def
def unifDistN (n : ℕ)· Usa1972P3.unifDistN- UniqueRepresentationSet def
def UniqueRepresentationSet (X : Set ℤ) : Prop· Usa1996P6.UniqueRepresentationSet- unpair def
def unpair : List (α × α) → List α· Imo2026P3.unpair- unpaired def
def unpaired : List α → Option α· Imo2026P3.unpaired- UphillPath structure
- The definition of an uphill path from the problem. · Imo2022P6.NordicSquare.UphillPath
- uphillPathTo def
pathTopackaged as an uphill path. · Imo2022P6.NordicSquare.uphillPathTo- upper_intervals def
def upper_intervals : Set (Set ℝ)· UpperLowerContinuous.upper_intervals- upperLoopList def
- The loop part of
L0: five loops (i,i) for each i ∈ {1,…,8}. · Usa2010P6.upperLoopList - upperNegList def
- The negative part of
L0: one edge (-i,-j) for each 1 ≤ j < i ≤ 8. · Usa2010P6.upperNegList - upps def
- The lines whose constraint is an upper bound on the parameter along
ℓ. · Imo2014P6.upps - uriEncodeComponent def
- Percent-encode a URI component (RFC 3986 unreserved chars preserved) · uriEncodeComponent
- uriEncodePath def
- Encode a full URI path (preserves / and other structure chars) · uriEncodePath
- usamoProblemCounts def
def usamoProblemCounts· usamoProblemCounts- usesC def
- Boolean check: is link type
xused by the assignmentu? · Usa1981P2.usesC
V
- V abbrev
abbrev V· Imo1981P2.V- V def
- The value Liu Bang can guarantee. · Imo2026P3.V
- V def
- The set of absolute values appearing on the board. · Usa2010P6.V
- v0of def
- Moves built from three periodic patterns. · Usa2013P3.v0of
- v_lower def
def v_lower (v : Finset (Point n)): Finset (Point n)· Imo2025P6.v_lower- v_upper def
def v_upper (v : Finset (Point n)): Finset (Point n)· Imo2025P6.v_upper- Val abbrev
- The three values that may appear in the sequence. We identify the values 1, 2, 3 of the problem statement with 0, 1, 2 in
ZMod 3; the cyclic successor mapx ↦ x + 1then sends 1 → 2 → 3 → 1. · Usa1994P2.Val - val def
- The affine function whose zero set is the line. · Imo2014P6.Line.val
- val_s abbrev
abbrev val_s (p : Point n) : ℤ· Imo2025P6.val_s- val_t abbrev
abbrev val_t (p : Point n) : ℤ· Imo2025P6.val_t- Valid abbrev
- A link assignment on
ntowns satisfying all the criteria of the problem: it is symmetric, all three link types are used, no town has all three link types, and no three towns are pairwise linked by the same type. · Usa1981P2.Valid - Valid def
- An arrangement is valid when each of the
nlabels appears exactly twice. · Usa2016P6.Arrangement.Valid - Valid def
- A strategy is valid for the parameter
kif it always queries exactlykcards. · Usa2016P6.Strategy.Valid - Valid def
- A wizard plays legitimately if the initial arrangement has two cards of each label and each permutation only moves the currently queried cards. · Usa2016P6.Wizard.Valid
- Valid def
- A permutation is valid if all its ratios are distinct. · Usa2018P6.Valid
- Valid def
- The states of the visitor that occur in a walk: the junction she came from and the junction she has just entered are joined by a trail. The last component is the direction of her next turn (
true= left). · Usa2021P2.Park.Valid - valid def
- The property of a row having
nof each kind of coin. · Imo2022P1.Row.valid - valid def
def valid (f : Set.Icc (0 : ℝ) 1 → ℝ) : Prop· Usa1993P3.valid- valid_moves def
def valid_moves (a : ℕ+) (n : ℕ) : State n → Set (State n)· Usa2023P4.valid_moves- ValidAt def
- Validity of the move at (0-based) index
jof the infinite sequencex, as a statement about natural-number-indexed sequences. · Imo2025P5.ValidAt - validB def
- A kernel-efficient Boolean version of
Valid (mkColor u). The ten unordered pairs ofFin 5are hard-coded by their positions inpair: the links at town0areu 0, u 1, u 2, u 3, at town1areu 0, u 4, u 5, u 6, at town2… · Usa1981P2.validB - ValidBlue def
- The working definition of "no finite region has a completely blue boundary": for every nonempty bounded cell, some line meeting the closure of the cell is not blue. · Imo2014P6.ValidBlue
- ValidBoard structure
- A valid board: 68 ordered pairs of nonzero integers such that for no
kdo both(k, k)and(-k, -k)appear. · Usa2010P6.ValidBoard - ValidBounds def
def ValidBounds : Set ℝ· Imo1970P3.ValidBounds- ValidCircle def
- A circular arrangement
a : Fin k → ℕofknumbers is valid if every entry is relatively prime to its cyclically-next neighbour (and hence also to its cyclically previous neighbour, sinceNat.Coprimeis symmetric). · Usa1990P3.ValidCircle - ValidColorings def
- The colorings that the problem asks to count. · Usa2015P3.ValidColorings
- ValidDecomp def
- A valid decomposition of the chessboard: a finite set of nonempty rectangles contained in the board, pairwise disjoint, covering the whole board, each having as many white squares as black squares (condition (i)), and such that no two … · Imo1974P4.ValidDecomp
- ValidErase def
- A choice of integers to erase is valid if no two erased integers sum to zero. (If a value
xis erased at some position, erasing every occurrence ofxis never worse, so the optimal strategies correspond exactly to sets of valuesT… · Usa2010P6.ValidErase - validLabels def
def validLabels (cp : CrossingPoints c) : Finset (Label n)· Imo2025P6.DisjointSetup.validLabels- validLabels def
def validLabels : Finset (Label n)· Imo2025P6.IntersectionSetup.validLabels- ValidLists def
- Digit lists satisfying the conditions of the problem in base
n: distinct digits, condition (2), all digits less thann, and a nonzero leading digit (the last entry of the list, since digits are stored least-significant first). · Usa1990P4.ValidLists - ValidPair abbrev
abbrev ValidPair : ℕ × ℕ → Prop· Imo1978P1.ValidPair- ValidPath def
ValidPath x ssholds when the listssof jump lengths can legally be performed by the frog starting at positionx: each jump has length1or length2 ^ (ν₂ n + 1), wherenis the position the frog jumps from. · Usa2006P5.ValidPath- ValidPerm def
- Validity of a permutation of
S: every element has a good product with its successor. · Imo2022P3.ValidPerm - ValidPlacement def
- A placement of the 100 cards into 3 boxes (labeled by
ZMod 3) is valid if every box is nonempty and whenever two boxes are selected and a card is taken from each, the sum of the two drawn cards always suffices to identify the third … · Imo2000P4.ValidPlacement - ValidRabbit def
- A rabbit path is valid if it starts at the common starting point
0and moves by exactly1in every round. · Imo2017P3.ValidRabbit - ValidReports def
- The reported points are valid for a rabbit path if each report is within distance
1of the rabbit's actual position. · Imo2017P3.ValidReports - ValidSeq def
- A sequence of placements is valid if after every step the right pan is not heavier than the left pan. · Imo2011P4.ValidSeq
- ValidSeq def
- Whether all the numbers chosen are valid. · Imo2025P5.ValidSeq
- ValidSequence def
def ValidSequence (a : ℕ → ℕ)· Imo2025P4.ValidSequence- ValidStrategy def
- A strategy is valid if the hunter starts at the common starting point
0and moves by exactly1in every round, whatever is reported. · Imo2017P3.ValidStrategy - Valley def
- The definition of a valley from the problem. · Imo2022P6.NordicSquare.Valley
- valMul def
- The multiset of values of the entries. · Usa2017P2.valMul
- value def
- The real number whose base-
cdigit string isx m, x (m-1), ..., x 0, i.e.∑ i ≤ m, x i * c ^ i. · Imo1970P2.value - value def
- The total value of a collection of coins, where a coin of denomination
nis worth(n : ℚ)⁻¹. · Imo2014P5.value - valueFinset def
- The candidate values for the tuple of unknowns: integers between
-nandnin each coordinate. · Imo1976P5.valueFinset - vblock def
- A vertical block: three adjacent stamps in a single column. · Usa2002P6.vblock
- vcard def
- The number of involutions of
Fin nwith at most one fixed point. · Usa2018P6.usa2018p6_aux.vcard - videos def
def videos (m : ProblemExtraction.ProblemFileMetadata) : List Html· videos- vitalColCells def
def vitalColCells (k : ℕ) : Finset (Fin (3 * k) × Fin (3 * k))· Imo2016P2.vitalColCells- vitalDiffCells def
def vitalDiffCells (k : ℕ) : Finset (Fin (3 * k) × Fin (3 * k))· Imo2016P2.vitalDiffCells- vitalDiffKeys def
def vitalDiffKeys (k : ℕ) : Finset ℤ· Imo2016P2.vitalDiffKeys- vitalIndices def
def vitalIndices (k : ℕ) : Finset (Fin (3 * k))· Imo2016P2.vitalIndices- vitalRowCells def
def vitalRowCells (k : ℕ) : Finset (Fin (3 * k) × Fin (3 * k))· Imo2016P2.vitalRowCells- vitalSumCells def
def vitalSumCells (k : ℕ) : Finset (Fin (3 * k) × Fin (3 * k))· Imo2016P2.vitalSumCells- vitalSumKeys def
def vitalSumKeys (k : ℕ) : Finset ℕ· Imo2016P2.vitalSumKeys- Vn def
- The set
Vₙof natural numbers of the form1 + k * nwithka positive integer. · Imo1977P3.Vn - vtxDecomposeEquiv def
- The full decomposition for involutions with at most one fixed point. · Usa2018P6.usa2018p6_aux.vtxDecomposeEquiv
- vtxSplitType abbrev
- The two cases of involutions of
Fin (n + 2)with at most one fixed point, according to whether0is fixed. · Usa2018P6.usa2018p6_aux.vtxSplitType - vtxSubtype def
- Involutions of
Fin nwith at most one fixed point. · Usa2018P6.usa2018p6_aux.vtxSubtype - vtxSuccEquiv def
- Involutions of
Fin (n + 2)with at most one fixed point that move0are in bijection with pairs of an elementj : Fin (n + 1)and an involution ofFin nwith at most one fixed point. · Usa2018P6.usa2018p6_aux.vtxSuccEquiv - vtxZeroEquiv def
- Involutions of
Fin (n + 2)with at most one fixed point that fix0are in bijection with fixed-point-free involutions ofFin (n + 1). · Usa2018P6.usa2018p6_aux.vtxZeroEquiv - vvv def
- The quantity
v_{p,q}from the official solution: the total normalized weight of the sets containing bothpandq. · Usa2024P6.vvv - vxor def
- Pointwise xor of two
Moves. · Usa2013P3.Moves.vxor
W
- W def
- Valid digit lists whose digits form exactly the interval
[a, b]. · Usa1990P4.W - w def
- weight of a strategy
t(the set of vertices where we pick the "a" side) · Usa2010P6.w - walk def
- A winner-path starting from an arbitrary cell. · Imo2018P3.walk
- wangAdj def
def wangAdj (a b : Fin 10) : Prop· Usa2021P2.Park.wangAdj- wangEdges def
- The example of Danielle Wang from the official solution: a park with ten junctions
A, B, ..., J(numbered0through9) in which the visitor enters junctionA = 0three times. (This rotation system is planar — it has seven faces, so … · Usa2021P2.Park.wangEdges - wangG def
def wangG : SimpleGraph (Fin 10)· Usa2021P2.Park.wangG- wangPark def
def wangPark : Park· Usa2021P2.Park.wangPark- wangRot def
def wangRot (a b : Fin 10) : Fin 10· Usa2021P2.Park.wangRot- wangRotN def
- The cyclic order of the trails at each junction of
wangPark. · Usa2021P2.Park.wangRotN - Ways def
- The set of ways to carry out the process with the weights
2^0, 2^1, ..., 2^(n-1): sequences of placements in which every weight is used exactly once and the right pan is never heavier than the left pan. · Imo2011P4.Ways - weight abbrev
- The weight of a coefficient vector: the sum of the absolute values. · Usa2008P5.weight
- weight def
- The number of operations in a
Moves: the total number of flipped lines. · Usa2013P3.weight - weightBase def
- The base of the weights used by A's counter-strategy. · Imo2012P3.weightBase
- weightedSum def
- The sum of the 1-based positions of the coins showing heads. · Imo2019P5.weightedSum
- whiteCount def
- The number of white squares of a rectangle. · Imo1974P4.Rect.whiteCount
- WinAt def
- The game is won at vertex
vfrom the configurationaif the configuration with value 2011 atvand 0 at the other four vertices is reachable froma. · Usa2011P2.WinAt - window def
- The window of
kconsecutive positions starting atj(the empty set if it does not fit). · Usa2016P6.window - Winnable def
- The game is winnable if some valid strategy guarantees a win within
mmoves against every legitimate wizard. · Usa2016P6.Winnable - winner def
- The child of
xholding the larger value. · Imo2018P3.winner - Winning def
- Whether a strategy wins for the given player, against all possible opponent moves. · Imo2025P5.Strategy.Winning
- Winning def
Ahas won on the boards: some line ofkconsecutive cells all carry a counter. · Usa2014P4.Winning- winningStrategy def
- A strategy that wins in three attempts. · Imo2024P5.winningStrategy
- Wins def
- Whether a sequence of numbers chosen is a win for the given player (expressed as the 0-based numbers of that player's moves, mod 2): the other player makes the first invalid move. · Imo2025P5.Wins
- WinsIn def
- The predicate for a strategy winning within the given number of attempts. · Imo2024P5.Strategy.WinsIn
- winStrat def
- The winning strategy: slide a window of
kpositions across the row, then query two positions that are known to carry the same label. · Usa2016P6.winStrat - Witness structure
- A witness region for a red line
ℓ: a bounded cell of the arrangement whose boundary lines are all blue, exceptℓ, which does occur on the boundary. · Imo2014P6.Witness - witness def
- An explicit chain of 100 subsets of an 8-element set. (Obtained from the inductive construction of the official solution: start from the chain
34, 1, 23, 4, 12, 3, 14, 2, 13on a 4-element set and repeatedly duplicate the chain, glue the … · Usa2016P1.witness - Wizard structure
- A wizard: an initial arrangement of the cards, and a way to permute the queried cards after each unsuccessful query. · Usa2016P6.Wizard
- wizArr def
- The arrangement after the given history, when the wizard plays
permOf. · Usa2016P6.wizArr - wizArrAux def
- Auxiliary for
wizArr, recursing on the reversed history. · Usa2016P6.wizArrAux - Works def
Works n ℓ csays that the inequality of the problem holds with constantc: for every positive integerk, all nonnegative weightsx₁, ..., xₖand every ℓ-large collectionA₁, ..., Aₖof subsets of{1, ..., n}. · Usa2024P6.Works- WPairs def
- The type of pairs
(σ, φ)withσa vertex andφa switching involution ofσ. · Usa2018P6.WPairs - wrap def
wrap r bis1when the counterclockwise arc fromrtobpasses through the cut point (1, 0), and0otherwise. · Usa2017P4.wrap- wraps def
- The total number of arcs through (1, 0) produced when the red points listed in
lare processed in order, starting from the setusedof already-taken blue points. · Usa2017P4.wraps - Writable inductive
- The rational numbers that Evan can write on the board, starting from
m / nandn / m. · Usa2019P5.Writable - writePage def
- Write a single page · writePage
- WriteupLink structure
- A link to an external resource (solution writeup, official site, etc.). · WriteupLink
- writeupList def
def writeupList (links : List WriteupLink) : List Html· writeupList- writeups def
def writeups (p : ProblemInfo C) : List Html· writeups- Wt def
- The total weight of a position. · Imo1993P3.Wt
- wx def
def wx (cp : CrossingPoints c) : Point n· Imo2025P6.DisjointSetup.wx
X
- X def
- The intersection of all blue sets of a coloring. We show that for a nontrivial valid coloring the blue sets are exactly the sets
TwithX c ⊆ T ⊆ X c ∪ B c. · Usa2015P3.X - x def
x = ∠ABQ = ∠QBC. This is the main angle in the solution and it suffices to show this is2 * π / 9. · Imo2001P5.Setup.x- X_set def
def X_set· Imo2023P2.Imo2023q2Cfg.X_set- xAxis def
- The
x-axis, as an affine subspace. · Imo2025P1.xAxis - xe def
- Extension of the target tuple to all naturals (zero outside
[1, 2022]). · Usa2022P5.xe - Xf def
- The coordinate form
x. · Imo2017P6.Xf - xFull def
- Layer
i(in thex-direction) is completely filled. · Usa2020P2.xFull - xi def
- The
i-th "even" vertex2i + 2of the construction. · Usa2022P6.xi - xLayer def
- The
x-layer of a beam (dummy value forxBeams). · Usa2020P2.xLayer - xPart def
- The
xBeams of the construction:(2t+1, 2t+1)fort = 0, …, 1009. · Usa2020P2.xPart - xseq def
def xseq (n : ℕ) : ℕ· Usa2008P1.xseq- xSlots def
- The neighbor slots of
x₀(other than(0, 0)and the central cell(2, 0)) that the strategy fills one by one. · Usa2014P4.xSlots - xSupp def
- The four side-face support conditions for
xBeam j k: faces aty = j,y = j+1,z = k,z = k+1. · Usa2020P2.xSupp - x₀ def
- The first distinguished cell of the strategy. · Usa2014P4.x₀
Y
- y def
- The telescoping comparison sequence
y i = √(i+1) - √i. · Usa1994P4.y - Y_set def
def Y_set· Imo2023P2.Imo2023q2Cfg.Y_set- yAxis def
- The
y-axis, as an affine subspace. · Imo2025P1.yAxis - Yf def
- The coordinate form
y. · Imo2017P6.Yf - yFull def
- Layer
j(in they-direction) is completely filled. · Usa2020P2.yFull - yi def
- The
i-th "odd" vertex2i + 3of the construction. · Usa2022P6.yi - yLayer def
- The
y-layer of a beam (dummy value foryBeams). · Usa2020P2.yLayer - yPart def
- The
yBeams of the construction:(2t+1, 2t)fort = 0, …, 1009. · Usa2020P2.yPart - ySlots def
- The neighbor slots of
y₀(other than(5, 0)and the central cell(3, 0)) that the strategy fills one by one. · Usa2014P4.ySlots - ySupp def
- The four side-face support conditions for
yBeam i k: faces atx = i,x = i+1,z = k,z = k+1. · Usa2020P2.ySupp - y₀ def
- The second distinguished cell of the strategy. · Usa2014P4.y₀
Z
- z2b def
def z2b (a : ZMod 2) : Bool· Imo1993P6.z2b- Z_set def
def Z_set· Imo2023P2.Imo2023q2Cfg.Z_set- zero_or_one_in_base_three def
def zero_or_one_in_base_three (n : ℕ)· Imo1983P5.zero_or_one_in_base_three- zeroMove def
- The zero move. · Usa2013P3.zeroMove
- zeroPath def
- The path that stays at position
0forever. · Imo2023P5.zeroPath - zeroStrategy def
- The all-zeros strategy. · Imo2025P5.zeroStrategy
- zeroSunny def
- A
strongCoverGridConfigwithn = 0andnS = 0· Imo2025P1.zeroSunny - zFull def
- Layer
k(in thez-direction) is completely filled. · Usa2020P2.zFull - zinit def
def zinit (n : ℕ) [NeZero n] : (Fin n → ZMod 2) × Fin n· Imo1993P6.zinit- zLayer def
- The
z-layer of a beam (dummy value forzBeams, which span all layers). · Usa2020P2.zLayer - zPart def
- The
zBeams of the construction:(2t, 2t)fort = 0, …, 1009. · Usa2020P2.zPart - zslice def
- The slice of S at z-coordinate r · Imo1992P5.zslice
- zstep def
- The same process with lamp values in
ZMod 2: toggling is adding the predecessor. · Imo1993P6.zstep - zSupp def
- The four side-face support conditions for
zBeam i j: faces atx = i,x = i+1,y = j,y = j+1. · Usa2020P2.zSupp
Other
- θ def
def θ : ℝ· Imo1975P5.θ- ψ def
def ψ (n k : ℕ) : { f // NSequence n k f } → { f // MSequence n k f }· Imo2008P5.ψ- ψ def
def ψ (n : ℕ) : ℕ· Imo2025P4.ψ- ω def
- Number of distinct prime factors of x · Imo1994P6.ω
- ω def
ωis the circle containingQ,PandA₂, which will be shown also to containB₂,P₁andQ₁. · Imo2019P2.Imo2019q2Cfg.ω- ω abbrev
- A primitive fifth root of unity in
ℂ. · Usa1976P5.ω - ωA def
def ωA : Sphere P· Imo2012P5.Imo2012P5Cfg.ωA- ωB def
def ωB : Sphere P· Imo2012P5.Imo2012P5Cfg.ωB
Terms from the explanations
Words defined in the explanations on this site (Lean4 Domain Explanation Language term lines). Where they appear, they link here.
- Nat.Coprime
- two natural numbers have no common divisor other than 1, equivalently their gcd is 1. · Imo1959P1.imo1959_p1
- sorry
- the Lean placeholder that lets a declaration compile without a proof; any theorem that uses it is not actually proved. · Imo2021P3.imo2021_p3
- Vieta jumping
- a descent technique for integer solutions of a quadratic equation in two variables: given one solution, the second root of the quadratic (by Vieta's formulas) gives another, smaller solution, until a base case is reached. · Imo1988P6.imo1988_p6
Types
What kind of object something is. The Reading says these in words wherever they appear.
- Bool
- true or false
- Equiv.Perm
Equiv.Perm α— a permutation (reordering) ofα- EReal
- a real number or ±∞
- EuclideanSpace
EuclideanSpace ℝ (Fin n)— a point inn-dimensional space- Fin
Fin n— a number from 0 up ton− 1- Finset
Finset α— a finite set of elements ofα- Ideal
Ideal R— a ideal (Ideal R)- IntermediateField
IntermediateField K L— a intermediate field (IntermediateField K L)- List
List α— a list of elements ofα- Matrix
Matrix m n R— a matrix with rowsm, columnsnand entries inR- Measure
Measure α— a measure onα(a way to give sets a size)- Multiset
Multiset α— a finite collection of elements ofα, repeats allowed- Option
Option α— either nothing or an element ofα- Polynomial, R[X]
Polynomial R— a polynomial with coefficients inR- Prop
- a statement (something true or false)
- Set
Set α— a set of elements ofα- SimpleGraph
SimpleGraph V— a graph whose vertices are the elements ofV- String
- a piece of text
- Subfield
Subfield K— a subfield (Subfield K)- Subgroup
Subgroup G— a subgroup (Subgroup G)- Submodule
Submodule R M— a submodule (Submodule R M)- Subring
Subring R— a subring (Subring R)- Type, Type*, Type _, Type u, Type v, Sort*
- a type (a collection of objects)
- ZMod
ZMod n— an integer modulon- × (pair type)
α × β— a pair (α,β)- ℂ, Complex
- a complex number
- ℕ+
- a positive whole number
- ℕ, Nat
- a natural number (0, 1, 2, …)
- ℚ, Rat
- a rational number (a fraction)
- ℝ, Real
- a real number
- ℝ≥0, NNReal
- a real number that is at least 0
- ℝ≥0∞, ENNReal
- a number from 0 to ∞, ∞ included
- ℤ, Int
- an integer
- → (function type)
α → β— a function that takesαand givesβ
Structures a type can have
Written in square brackets, such as [Field K]. Lean finds them by itself (they are type classes).
- AddCommGroup
[AddCommGroup G]—Gis a commutative group under addition- AddGroup
[AddGroup G]—Gis a group under addition- CharZero
[CharZero α]— inα, 1 + 1 + … + 1 is never 0- CommGroup
[CommGroup G]—Gis a commutative group- CommRing
[CommRing R]—Ris a commutative ring: you can add, subtract and multiply, and order of multiplication does not matter- CommSemiring
[CommSemiring R]—Rhas addition and commutative multiplication- Countable
[Countable α]—αis countable- DecidableEq
[DecidableEq α]— equality between elements ofαcan be checked- DecidablePred
[DecidablePred p]— whetherpholds can be checked- Fact
[Fact (Nat.Prime p)]— it is known thatNat.Prime p- Field
[Field K]—Kis a field: you can add, subtract, multiply and divide (except by 0)- Finite
[Finite α]—αhas finitely many elements- Fintype
[Fintype α]—αhas finitely many elements- Group
[Group G]—Gis a group: you can multiply and undo multiplication- Inhabited
[Inhabited α]—αhas a chosen default element- InnerProductSpace
[InnerProductSpace ℝ E]—Ehas angles and lengths (an inner product)- LinearOrder
[LinearOrder α]— any two elements ofαcan be compared- MeasurableSpace
[MeasurableSpace X]—Xhas measurable sets- MetricSpace
[MetricSpace X]—Xhas a distance between any two points- Module
[Module R M]—Mis a module (a vector space when the scalars form a field)- Monoid
[Monoid M]—Mhas a multiplication with a 1- NeZero
[NeZero n]—nis not 0- Nonempty
[Nonempty α]—αhas at least one element- Nontrivial
[Nontrivial α]—αhas at least two different elements- NormedAddCommGroup
[NormedAddCommGroup E]—Ehas a length (norm) for its elements- NormedSpace
[NormedSpace ℝ E]—Eis a vector space with lengths- PartialOrder
[PartialOrder α]—αhas an order (some pairs may be incomparable)- Ring
[Ring R]—Ris a ring: you can add, subtract and multiply- Semiring
[Semiring R]—Rhas addition and multiplication- TopologicalSpace
[TopologicalSpace X]—Xhas a notion of nearness (open sets)
Properties
Statements about functions, numbers and sets that the Reading puts in words, each shown on a sample use.
- AEMeasurable
AEMeasurable f—fis measurable, apart from a set of measure zero- AEStronglyMeasurable
AEStronglyMeasurable f—fis (strongly) measurable, apart from a set of measure zero- Antitone
Antitone f—fnever increases- BddAbove
BddAbove S—Sis bounded above- BddBelow
BddBelow S—Sis bounded below- Bijective
Bijective f—fis a bijection: a perfect one-to-one pairing- BijOn
BijOn f s t—fpairssone-to-one witht- Collinear
Collinear ℝ S— the pointsSlie on one line- Colorable
Colorable G n— the graph can be colored withncolors so that neighbors get different colors- Commute
Commute a b—aandbcommute: their product is the same in either order- Computable
Computable f—fis computable- ConcaveOn
ConcaveOn ℝ s f—fis concave ons: its graph bends downward- ContDiff
ContDiff ℝ n f—fis smooth: it can be differentiatedntimes, continuously- ContDiffAt
ContDiffAt ℝ n f x—fis smooth atx- Continuous
Continuous f—fis continuous: no jumps or breaks- ContinuousAt
ContinuousAt f x—fis continuous atx- ContinuousOn
ContinuousOn f s—fis continuous ons- ContinuousWithinAt
ContinuousWithinAt f s x—fis continuous atxwithins- Convex
Convex ℝ s—sis convex: it contains the segment between any two of its points- ConvexOn
ConvexOn ℝ s f—fis convex ons: its graph bends upward- Coprime
Coprime a b—aandbare coprime: no common factor bigger than 1- Countable
Countable S—Sis countable- Dense
Dense S—Sis dense: it comes arbitrarily close to every point- Differentiable
Differentiable ℝ f—fis differentiable: it has a derivative everywhere- DifferentiableAt
DifferentiableAt ℝ f x—fhas a derivative atx- DifferentiableOn
DifferentiableOn ℝ f s—fhas a derivative at every point ofs- Disjoint
Disjoint s t—sandthave nothing in common- Even
Even n—nis even- Finite
Finite S—Sis finite- HasDerivAt
HasDerivAt f f' x—fhas derivativef'atx- HasSum
HasSum a s— the termsaadd up tos- IdentDistrib
IdentDistrib X Y—XandYhave the same distribution- iIndepFun
iIndepFun m X μ— the random variablesXare independent- IndepFun
IndepFun X Y— the random variablesXandYare independent- Infinite
Infinite S—Sis infinite- Injective
Injective f—fis injective: different inputs always give different outputs- InjOn
InjOn f s—fis injective ons: different inputs there give different outputs- Integrable
Integrable f—fis integrable (its integral is finite)- IntegrableOn
IntegrableOn f s—fis integrable ons- IntervalIntegrable
IntervalIntegrable f volume a b—fcan be integrated fromatob- Involutive
Involutive f— applyingftwice gives back the input- Irrational
Irrational x—xis irrational: not a fraction of two integers- Irreducible
Irreducible p—pis irreducible: it cannot be factored into smaller non-units- IsAlgebraic
IsAlgebraic ℤ x—xis algebraic: a root of a nonzero polynomial- IsBigO
IsBigO l f g—fis at most a constant timesg(big O)- IsClosed
IsClosed F—Fis a closed set- IsCompact
IsCompact K—Kis compact (closed and bounded, in ℝⁿ)- IsConnected
IsConnected S—Sis connected: it is all in one piece- IsCoprime
IsCoprime a b—aandbare coprime- IsGLB
IsGLB S m—mis the greatest lower bound ofS- IsGreatest
IsGreatest S m—mis the greatest element ofS- IsLeast
IsLeast S m—mis the least element ofS- IsLittleO
IsLittleO l f g—fis negligible compared withg(little o)- IsLUB
IsLUB S m—mis the least upper bound ofS- IsOpen
IsOpen U—Uis an open set- IsProbabilityMeasure
IsProbabilityMeasure μ—μis a probability measure: the whole space has size 1- IsSquare
IsSquare n—nis a perfect square- IsUnit
IsUnit a—ahas a multiplicative inverse- LeftInverse
LeftInverse g f—gundoesf: applyingfthenggives back the input- LinearIndependent
LinearIndependent K v— the vectorsvare linearly independent- LipschitzWith
LipschitzWith K f—fnever stretches distances by more than a factorK- MapsTo
MapsTo f s t—fsends every element ofsintot- Measurable
Measurable f—fis measurable- MeasurableSet
MeasurableSet S—Sis a measurable set (one that has a size)- MeasurePreserving
MeasurePreserving f—fpreserves the measure: sets keep their size- MemLp
MemLp f p—fis in Lᵖ for p =p(the p-th power of |f| has a finite integral)- Monotone
Monotone f—fnever decreases: a bigger input gives an output at least as big- MonotoneOn
MonotoneOn f s—fnever decreases ons- Nonempty
Nonempty S—Sis not empty- Odd
Odd n—nis odd- Pairwise
Pairwise r— every two different elements are related byr- Periodic
Periodic f c—frepeats everyc- Perm
Perm l₁ l₂—l₁is a rearrangement ofl₂- Prime
Prime p—pis a prime number- Primrec
Primrec f—fis primitive recursive (computable by a simple kind of program)- Reachable
Reachable u v— there is a path fromutov- RightInverse
RightInverse g f—gis a right inverse off- Sbtw
Sbtw ℝ x y z—ylies strictly betweenxandz- Squarefree
Squarefree n—nis squarefree: no square bigger than 1 divides it- StrictAnti
StrictAnti f—fis strictly decreasing- StrictMono
StrictMono f—fis strictly increasing: a bigger input gives a bigger output- StronglyMeasurable
StronglyMeasurable f—fis strongly measurable- Summable
Summable a— the series of the termsaadds up to a finite value- Surjective
Surjective f—fis surjective: every possible output is reached- SurjOn
SurjOn f s t—fmapssonto all oft- Tendsto
Tendsto f atTop (𝓝 0)—ftends to0as the input grows without bound- Transcendental
Transcendental ℤ x—xis transcendental: not a root of any nonzero polynomial with integer coefficients- UniformContinuous
UniformContinuous f—fis uniformly continuous- Wbtw
Wbtw ℝ x y z—ylies betweenxandz
Symbols
Notation a newcomer may not know. A Reading lists the ones its statement uses.
- #s, card
- the number of elements
- %
- remainder after division
- .Finite
- the set has finitely many elements
- .Infinite
- the set has infinitely many elements
- /
- division; on ℕ and ℤ it rounds down
- ^
- a power
- A × B
- pairs (a, b) with a from A and b from B
- answer(…)
- marks the answer the problem asks for; answer(sorry) means the answer is not filled in
- atTop
- “as the input goes to infinity”
- choose
- binomial coefficient: the number of ways to pick k things from n
- deriv
- the derivative
- exp
- the exponential function eˣ
- f '' s
- the image: all outputs f gives on s
- f =O[l] g
- big O: f is at most a constant times g, along l
- f =o[l] g
- little o: f is negligible compared with g, along l
- f ⁻¹' s
- the preimage: all inputs that f sends into s
- f ∘ g
- composition: first g, then f
- f ≪ g
- f is at most a constant times g (for large inputs)
- Finset.range n
- the numbers 0, 1, …, n − 1
- fun x ↦ …
- a function: send x to …
- gcd
- greatest common divisor
- lcm
- least common multiple
- log
- the natural logarithm
- n !
- factorial: 1 · 2 · … · n
- Set.Icc a b
- the closed interval [a, b]
- Set.Ioo a b
- the open interval (a, b)
- sᶜ
- the complement: everything not in s
- x⁻¹
- the inverse, 1 / x for numbers
- {x | p x}
- the set of all x with property p
- |x|
- absolute value
- ¬
- “not”
- π
- pi
- ‖x‖
- the norm (length) of x
- ℂ
- the complex numbers
- ℕ
- the natural numbers 0, 1, 2, … (in Lean ℕ starts at 0)
- ℚ
- the rational numbers (fractions)
- ℝ
- the real numbers
- ℤ
- the integers …, −2, −1, 0, 1, 2, …
- ↑x
- x viewed in a bigger number system, such as a natural number as a real number
- →
- “implies”, or for functions “to”
- ↔
- “if and only if”: both directions hold
- ∀
- “for every”
- ∃
- “there exists”
- ∃!
- “there is exactly one”
- ∏
- a product over a range or a finite set
- ∑
- a sum over a range or a finite set
- √
- square root
- ∣
- “divides”: a ∣ b means b is a multiple of a
- ∧
- “and”
- ∨
- “or”
- ∩
- intersection: what both sets have in common
- ∪
- union: everything in either set
- ∫
- an integral
- ≡ [MOD n]
- same remainder when divided by n
- ⌈x⌉
- ceiling: the smallest integer at least x
- ⌊x⌋
- floor: the largest integer at most x
- 𝓝 x
- “near x”: used for limits
Tactics
Steps inside a proof that starts with by. Each says what the tactic does in general; the goal it leaves depends on the proof.
- abel
- Both sides are equal by rearranging sums (abel: algebra in commutative groups).
- absurd
absurd h h'— Two facts contradict each other:h h'.- admit
- Not proved yet: admit is a placeholder, so this proof is unfinished.
- aesop
- Search automatically for a proof using many small rules (aesop).
- all_goals
all_goals simp— On every remaining goal: Simplify with Lean's standard simplification rules.- and_intros
- Split the “and” goal into its parts.
- any_goals
any_goals simp— On every goal where it works: Simplify with Lean's standard simplification rules.- apply
apply h— Work backwards withh: it gives the goal once its own conditions hold, so those conditions become the new goals.- apply_fun
apply_fun f at h— Applyfto both sides inh.- assumption
- The goal is exactly one of the assumptions.
- bound
- Prove the bound by combining standard inequalities.
- by_cases
by_cases h : x = 0— Split into two cases:x = 0is true, or it is false.- by_contra
- Proof by contradiction: assume the opposite and reach something false.
- by_contra!
- Proof by contradiction, with the assumed opposite already simplified.
- calc
- A chain of steps, each one justified on its own line.
- case
case zero => simp— The casezero.- cases
cases h— Split into cases on howhcan be built.- cases'
cases' h with x hx— Split into cases on howhcan be built.- change
change a + 0 = a— Restate the goal asa + 0 = a(the same thing, written differently).- choose
choose f hf using h— From “for every x there is a y”, pick a function giving such a y:f hf using h.- classical
- Allow classical reasoning from here on (every statement is true or false, even if we cannot compute which).
- clear
clear h— Forget the assumptionsh; they are not needed any more.- congr
- Reduce to showing the matching parts of both sides are equal.
- constructor
constructor function Object() { [native code] }— Split the goal into its parts: for “A and B” prove A and B, for “A iff B” prove both directions.- constructorm
- Split every “and”-like assumption or goal into its parts.
- continuity
- Built automatically from the rules for continuous functions.
- contradiction
- Two assumptions contradict each other, so this case is done.
- contrapose
- Prove the contrapositive: if the conclusion fails, then so does the assumption.
- contrapose!
- Prove the contrapositive, with the negations pushed inward.
- conv
- Rewrite inside one chosen part of the goal.
- conv_lhs
- Rewrite inside the left-hand side only.
- conv_rhs
- Rewrite inside the right-hand side only.
- convert
convert h using 1— Close the goal withh, which almost matches; any differences become new goals.- decide
- Lean checks it by direct computation (decide).
- delta
delta f— Expand the definition off.- dsimp
- Simplify by unfolding definitions.
- erw
erw [h]— Rewrite usingh, matching up to unfolding definitions.- exact
exact h— Finish:his exactly what is needed.- exact_mod_cast
exact_mod_cast h— Finish withh, ignoring conversions between number systems.- exacts
exacts [h₁, h₂]— Finish each remaining goal with[h₁, h₂].- exfalso
- Switch to proving False: this case is impossible.
- exists
exists 2— Give2as the example that exists.- existsi
existsi 2— Give2as the example that exists.- ext
- Two functions (or sets) are equal when they agree at every input.
- ext1
- Two functions (or sets) are equal when they agree at every input.
- field
- Both sides are equal by algebra with division (field).
- field_simp
- Clear the denominators.
- filter_upwards
- Reduce a statement about “eventually” or “almost everywhere” to one about each point.
- fin_cases
fin_cases i— Try each of the finitely many values ofi, one case each.- finiteness
- The quantity is finite (not ∞), checked automatically (finiteness).
- first
first | simp | ring— Try these in order until one works:simp,ring- focus
- Work on the first goal only.
- fun_prop
- Built automatically from the rules for continuity, differentiability or measurability (fun_prop).
- funext
- Two functions are equal when they agree at every input.
- gcongr
- Compare the two sides piece by piece: if each part on the left is at most the matching part on the right, so is the whole (gcongr).
- generalize
generalize e : f x = y— Replace a specific expression by a general variable:e : f x = y.- grind
- Automated reasoning that combines equalities, cases and arithmetic (grind).
- group
- Both sides are equal by the rules of a group (group).
- grw
grw [h]— Rewrite with an inequality (or another relation) instead of an equation:h.- have
have h : 0 < 2 := by norm_num— Establish an intermediate facth:0is less than2. Proved by: Do the arithmetic: norm_num proves number facts such as 2 + 2 = 4, 7 ≠ 0 or that 13 is prime.- have'
have' h : 0 < 2 := by norm_num— Establish an intermediate facth:0is less than2. Proved by: Do the arithmetic: norm_num proves number facts such as 2 + 2 = 4, 7 ≠ 0 or that 13 is prime.- haveI
haveI h : 0 < 2 := by norm_num— Establish an intermediate facth:0is less than2. Proved by: Do the arithmetic: norm_num proves number facts such as 2 + 2 = 4, 7 ≠ 0 or that 13 is prime.- if
- Split on a condition, if-then-else.
- induction
induction n with— Prove it by induction onn: first a starting case, then a step from each case to the next.- induction'
induction' n with n ih— Prove it by induction onn: a starting case, then the step to the next case.- infer_instance
- Lean finds this automatically from known structures.
- interval_cases
interval_cases n— Try every possible value ofnin its known range, one case each.- intro
- Move the next variable or assumption of the goal into view.
- intros
- Introduce everything the goal starts with.
- left
- Prove the left side of the “or”.
- let
let y := x + 1— Give a name to a value:y := x + 1.- letI
letI inst := Classical.decEq α— Give a name to a structure for Lean to use:inst := Classical.decEq α.- lia
- Whole-number arithmetic, decided automatically (lia: linear integer arithmetic).
- lift
lift n to ℕ using hn— Treatn to ℕ using hnas a value of a smaller number system, since it is known to fit.- linarith
- It follows by adding up the linear inequalities in the assumptions (linarith).
- linear_combination
linear_combination h₁ - h₂— The goal is exactly this combination of the assumptions:h₁ - h₂.- match
match n with— Split on the shape ofn, one case per pattern.- measurability
- Built automatically from the rules for measurable functions.
- module
- Both sides are equal by algebra with vectors and scalars (module).
- native_decide
- Checked by running compiled code (native_decide). This also trusts the compiler, an extra axiom.
- next
- The next case.
- nlinarith
- Like linarith, but also multiplies assumptions together, which handles squares and products.
- nofun
- No case can occur, so there is nothing to prove.
- nomatch
nomatch h— No case ofhcan occur.- noncomm_ring
- Both sides are equal by algebra where multiplication need not commute (noncomm_ring).
- norm_cast
- Move the statement between number systems (ℕ, ℤ, ℚ, ℝ) to where it is simplest.
- norm_num
- Do the arithmetic: norm_num proves number facts such as 2 + 2 = 4, 7 ≠ 0 or that 13 is prime.
- norm_num1
- Do the arithmetic.
- nth_rewrite
nth_rewrite 2 [h]— Rewrite one chosen occurrence usingh.- nth_rw
nth_rw 2 [h]— Rewrite one chosen occurrence usingh.- obtain
obtain ⟨x, hx⟩ := h— Unpackhinto its pieces⟨x, hx⟩.- omega
- Whole-number arithmetic with +, −, constants and comparisons, decided automatically (omega).
- on_goal
on_goal 2 => simp— On one chosen goal:2 => simp.- order
- It follows from the order facts in the assumptions (order).
- peel
peel h with x hx— Strip matching quantifiers from both sides:h with x hx.- polyrith
- The goal is a combination of the equations in the assumptions (polyrith).
- positivity
- The expression is positive (or at least 0), checked term by term (positivity).
- push
- Push the operation inward.
- push_cast
- Push the number-system conversions (↑) inward.
- push_neg
- Push the “not” inward: not-for-every becomes there-is-a-counterexample, and so on.
- qify
- Move the statement to ℚ, where division behaves normally.
- rcases
rcases h with ⟨x, hx⟩— Unpackhinto its pieces⟨x, hx⟩, one case per alternative.- refine
refine ⟨?_, ?_⟩— Fill in the goal with⟨?_, ?_⟩; every ?_ hole becomes a new goal.- refine'
refine' ⟨_, _⟩— Fill in the goal with⟨_, _⟩; every _ hole becomes a new goal.- rename_i
rename_i x y— Name the unnamed variablesx,y.- repeat
repeat rw [h]— Repeat as long as it works: Rewrite usingh.- replace
replace h : 0 < x := by linarith— Replace an assumption with a stronger form: the facth:0is less thanx. Proved by: It follows by adding up the linear inequalities in the assumptions (linarith).- revert
revert x— Putxback into the goal, so the goal is about every possible value of it.- rewrite
rewrite [h]— Rewrite usingh.- rfl
- Both sides are the same by definition (rfl).
- right
- Prove the right side of the “or”.
- ring
- Both sides are equal by algebra: expand and collect like terms (ring).
- ring_nf
- Put the expressions into a standard algebraic form.
- rintro
rintro ⟨x, hx⟩— Introduce and unpack in one go:⟨x, hx⟩.- rotate_left
- Change the order of the goals.
- rw
rw [h]— Rewrite usingh.- rwa
rwa [h] at h₁— Rewrite usinghinh₁, and then the goal is one of the assumptions.- set
set y := x + 1 with hy— Give a name to an expression and use the name from now on:y := x + 1.- show
show a + 0 = a— Restate the goal asa + 0 = a.- simp
- Simplify with Lean's standard simplification rules.
- simp_all
- Simplify the goal and all the assumptions together.
- simp_arith
- Simplify, including arithmetic on natural numbers.
- simp_rw
simp_rw [h]— Rewrite usingh, also inside “for every” and “there is”.- simpa
- Simplify, and the goal closes.
- sorry
- Not proved yet: sorry is a placeholder, so this proof is unfinished.
- specialize
specialize h 2— Use the assumptionhfor the specific2.- split
- Split into one case for each branch of the if-then-else or match.
- split_ifs
- Split into a case for each branch of every if-then-else.
- subst
subst h— Replacehby what it equals, everywhere.- suffices
suffices h : 0 < x by linarith— It is enough to prove0 < x; that is shown next, then used to finish.- swap
- Work on the second goal first.
- symm
- Swap the two sides.
- tauto
- Pure logic: it follows from the assumptions by the rules of and, or, not and implies (tauto).
- trans
trans b— Go through a middle pointb.- trivial
- This goal is immediate.
- try
try linarith— Try this, and carry on if it fails: It follows by adding up the linear inequalities in the assumptions (linarith).- unfold
unfold f— Expand the definition off.- use
use 2— Give2as the example that exists; what remains is to check it works.- wlog
wlog h : a ≤ b with H— Without loss of generality,h : a ≤ b; the other case follows the same way.- zify
- Move the statement from ℕ to ℤ, where subtraction behaves normally.
Lean words
Words of the Lean language itself, and of how its projects are organized.
- #check, #eval
#eval 2 + 2— Commands that ask Lean a question while you write: the type of a term, or its value.- :=
def two : ℕ := 2— “is defined as” or “is proved by”: what comes after it is the value or the proof.- @[simp] (attribute)
@[simp] theorem add_zero' (n : ℕ) : n + 0 = n := rfl— Attributes add information to a declaration: @[simp] tells the simp tactic to use it.- _ and ?_
refine ⟨?_, ?_⟩— A hole: Lean fills in _ by itself, and ?_ becomes a new goal to prove.- abbrev
abbrev Point := ℝ × ℝ— A definition that Lean unfolds freely, like a shorthand.- anonymous constructor ⟨ ⟩
⟨2, by norm_num⟩— Builds an object from its parts: a pair, a structure, or a proof of “and” or “there exists”.- axiom
axiom my_assumption : 1 = 1— Something assumed without proof. Lean's three standard axioms (propext, Classical.choice, Quot.sound) are normal; anything beyond them is worth a closer look.- by
theorem t : 1 + 1 = 2 := by norm_num— Starts a proof made of tactics.- class
class Zero (α : Type) where zero : α— A structure that Lean finds by itself when it is needed (a type class), such as “this type has an addition”.- class inductive
class inductive Decidable (p : Prop)— A class given by the ways to build it, like inductive.- declaration
- Any named thing in Lean: a theorem, a definition, and so on. Each one has a line on its file page.
- def (definition)
def double (n : ℕ) : ℕ := 2 * n— A name for a precise idea or a computation, such as “continuous” or “double a number”.- dot notation
n.succ— x.foo means Foo.foo x, where Foo is the type of x: n.succ is Nat.succ n.- example
example : 2 + 2 = 4 := rfl— A statement proved without a name, to show that something works.- explicit argument ( )
(n : ℕ)— An argument you write when you use the result.- goal
- What is left to prove at a point in a proof. Each tactic changes the goal.
- h.1, h.2
h.1— The first and second part of h, for example of an “and”.- hypothesis (assumption)
(h : 0 < n)— A named fact you may use in a proof, such as h : 0 < n.- implicit argument { }
{α : Type}— An argument Lean works out by itself from the others.- import
import Mathlib.Data.Real.Basic— Brings in the declarations of another file or library.- inductive
inductive Color | red | green— A new type given by the ways to build its elements. The natural numbers are 0, or one more than a natural number.- instance
instance : Zero ℕ := ⟨0⟩— A proof or construction that a type belongs to a class. Lean then finds it by itself.- instance argument [ ]
[Field K]— An argument Lean finds by itself among the class instances it knows.- kernel
- The small core of Lean that finally accepts or rejects a proof.
- Lake
lake build— Lean's build tool. A project's lakefile says which libraries it has and which it needs.- lemma
lemma helper (n : ℕ) : n ≤ n + 1 := by omega— A theorem, usually a smaller helper for a bigger one.- Mathlib
import Mathlib— The big shared library of formalized mathematics that many Lean projects build on.- namespace
namespace Nat … end Nat— A family name for declarations: inside namespace Nat, succ_le means Nat.succ_le.- noncomputable
noncomputable def half : ℝ := 1 / 2— Marks a definition Lean cannot run as a program, usually because it uses choice or real numbers.- opaque
opaque secret : ℕ— A definition whose value Lean keeps hidden: only its type is known.- open
open Real— Lets you use short names: after open Real, pi means Real.pi.- private, protected
private theorem helper : True := trivial— private: usable only in this file. protected: must always be written with its full name.- proof
- The argument. In Lean, a proof is code, and Lean checks every step of it.
- Prop
(p : Prop)— The type of statements. A statement is true or false; its proofs are its elements.- section
section … end— A part of a file whose variables and open commands end with it.- sorry
theorem later : 1 = 1 := sorry— Lean's “I have not proved this yet”. A result that uses it is not finished, and the site flags it.- structure
structure Point where x : ℝ y : ℝ— A new kind of object made of named parts (its fields).- tactic
by rw [h] ring— One command inside a proof that starts with by, such as “rewrite using this equation”. The Reading explains each one.- termination_by
termination_by n— Says why a recursive definition stops: something gets smaller each time.- theorem
theorem two_pos : 0 < 2 := by norm_num— A statement that has been proved. The proof follows :=.- universe
universe u— The size level of types (Type u). You can usually ignore it.- variable
variable (n : ℕ) (hn : 0 < n)— Names (and assumptions) used by every result below it, until its section ends.- · (focusing dot)
constructor · norm_num · simp— Starts the proof of one goal when there are several.