The IMO Grand Challenge
Daniel Selsam
Microsoft Research
The IMO Grand Challenge Daniel Selsam Microsoft Research September - - PowerPoint PPT Presentation
The IMO Grand Challenge Daniel Selsam Microsoft Research September 16th, 2020 Outline The Great Myth 1 The Grand Challenge 2 High-Level Strategy 3 Preliminary Roadmap 4 The Search Transformer The Universal Oracle Beyond the IMO 5 2
Microsoft Research
1
2
3
4
5
2 / 38
3 / 38
3 / 38
4 / 38
4 / 38
4 / 38
4 / 38
4 / 38
5 / 38
5 / 38
5 / 38
5 / 38
5 / 38
6 / 38
6 / 38
6 / 38
6 / 38
1
2
3
4
5
7 / 38
8 / 38
8 / 38
8 / 38
8 / 38
8 / 38
8 / 38
9 / 38
10 / 38
11 / 38
12 / 38
13 / 38
13 / 38
13 / 38
13 / 38
13 / 38
13 / 38
14 / 38
14 / 38
14 / 38
14 / 38
14 / 38
14 / 38
14 / 38
14 / 38
14 / 38
1
2
3
4
5
15 / 38
16 / 38
1
16 / 38
1
2
16 / 38
1
2
3
16 / 38
1
2
3
4
16 / 38
17 / 38
17 / 38
17 / 38
17 / 38
17 / 38
17 / 38
17 / 38
17 / 38
17 / 38
17 / 38
17 / 38
17 / 38
1
2
3
4
5
18 / 38
19 / 38
19 / 38
19 / 38
19 / 38
19 / 38
20 / 38
20 / 38
20 / 38
20 / 38
20 / 38
20 / 38
21 / 38
21 / 38
2(
a)2(
1 a(a + b) ) = cyc a cyc 2a cyc 1 a(a + b) (group) = cyc a cyc a + b cyc 1 a(a + b) (cycle) ≥ cyc a(a + b) a(a + b) 3 (Holder) = cyc 1 3 (cancel) = 27 (eval) 21 / 38
2(
a)2(
1 a(a + b) ) = cyc a cyc 2a cyc 1 a(a + b) (group) = cyc a cyc a + b cyc 1 a(a + b) (cycle) ≥ cyc a(a + b) a(a + b) 3 (Holder) = cyc 1 3 (cancel) = 27 (eval)
21 / 38
22 / 38
22 / 38
22 / 38
22 / 38
22 / 38
23 / 38
23 / 38
23 / 38
23 / 38
23 / 38
24 / 38
24 / 38
abstractProveGeo := do thm <- choose geoTheorems apply thm when (hasVariables goal) (do points <- chooseFromModel; instantiate points) abstractProveGeo
24 / 38
abstractProveGeo := do thm <- choose geoTheorems apply thm when (hasVariables goal) (do points <- chooseFromModel; instantiate points) abstractProveGeo
24 / 38
abstractProveGeo := do thm <- choose geoTheorems apply thm when (hasVariables goal) (do points <- chooseFromModel; instantiate points) abstractProveGeo
24 / 38
25 / 38
25 / 38
25 / 38
25 / 38
25 / 38
26 / 38
26 / 38
26 / 38
26 / 38
26 / 38
26 / 38
26 / 38
26 / 38
26 / 38
26 / 38
26 / 38
26 / 38
26 / 38
26 / 38
26 / 38
26 / 38
27 / 38
27 / 38
27 / 38
27 / 38
27 / 38
27 / 38
27 / 38
27 / 38
27 / 38
28 / 38
28 / 38
28 / 38
28 / 38
28 / 38
28 / 38
28 / 38
28 / 38
29 / 38
29 / 38
29 / 38
29 / 38
29 / 38
29 / 38
30 / 38
def abstactSolveSpecial = do inThings <- splitInputIntoThings (specialInput, in2outFn) <- synthAlignSpecialThingFn inThings pickSpecialFn <- synthPickSpecialFn specialInput inThings guess (in2outFn (pickSpecialFn inThings.test))
30 / 38
def abstactSolveSpecial = do inThings <- splitInputIntoThings (specialInput, in2outFn) <- synthAlignSpecialThingFn inThings pickSpecialFn <- synthPickSpecialFn specialInput inThings guess (in2outFn (pickSpecialFn inThings.test))
30 / 38
def abstactSolveSpecial = do inThings <- splitInputIntoThings (specialInput, in2outFn) <- synthAlignSpecialThingFn inThings pickSpecialFn <- synthPickSpecialFn specialInput inThings guess (in2outFn (pickSpecialFn inThings.test))
30 / 38
def abstactSolveSpecial = do inThings <- splitInputIntoThings (specialInput, in2outFn) <- synthAlignSpecialThingFn inThings pickSpecialFn <- synthPickSpecialFn specialInput inThings guess (in2outFn (pickSpecialFn inThings.test))
30 / 38
31 / 38
31 / 38
31 / 38
31 / 38
31 / 38
32 / 38
32 / 38
32 / 38
32 / 38
32 / 38
32 / 38
32 / 38
32 / 38
32 / 38
32 / 38
32 / 38
32 / 38
33 / 38
33 / 38
33 / 38
1
2
3
4
5
34 / 38
35 / 38
35 / 38
35 / 38
35 / 38
36 / 38
36 / 38
36 / 38
37 / 38
37 / 38
37 / 38
37 / 38
37 / 38
37 / 38
38 / 38