Skip to content

Commit b68dc7a

Browse files
committed
update game files
1 parent 7e44e31 commit b68dc7a

52 files changed

Lines changed: 292 additions & 203 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.i18n/en/Game.pot

Lines changed: 113 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ msgstr "Project-Id-Version: Game v4.23.0\n"
1212
msgid "add_le_add_iff_left"
1313
msgstr ""
1414

15+
#: Game.Levels.LogicForall
16+
msgid "Logic (2): universal quantifiers"
17+
msgstr ""
18+
1519
#: Game.Levels.Analysis.L03_SqueezeTheorem
1620
msgid "Squeeze Theorem"
1721
msgstr ""
@@ -34,6 +38,10 @@ msgstr ""
3438
msgid "intermediate goal solved! 🎉"
3539
msgstr ""
3640

41+
#: Game.Levels.RewritingBasic
42+
msgid "Computing (1): ring & rw"
43+
msgstr ""
44+
3745
#. §0: `h : P ∧ Q`
3846
#. §1: `rcases h with ⟨hP, hQ⟩`
3947
#. §2: `hP : P`
@@ -67,6 +75,17 @@ msgstr ""
6775
msgid "Use §0 to replace §1 in the goal with §2."
6876
msgstr ""
6977

78+
#. §0: `rw [← h]`
79+
#. §1: `rw [...] at h`
80+
#. §2: `calc`
81+
#: Game.Levels.RewritingAdvanced
82+
msgid "# Computing — Part 2\n"
83+
"\n"
84+
"## Reverse rewriting and calc\n"
85+
"\n"
86+
"Learn §0 for right-to-left rewriting, §1 for rewriting in assumptions, and the §2 tactic for chain-of-equalities proofs."
87+
msgstr ""
88+
7089
#. §0: `rw [← sub_nonneg]`
7190
#: Game.Levels.Logic.L08_EquivRw
7291
msgid "Start with §0 to transform the left side."
@@ -96,6 +115,12 @@ msgid "The §0 tactic simplifies goals using a set of lemmas. For sets, it knows
96115
"that §1 when §2."
97116
msgstr ""
98117

118+
#. §0: `exact`
119+
#. §1: `apply`
120+
#: Game.Levels.Logic.L01_Implications
121+
msgid "You can use §0 to provide the proof term directly, or §1 to reduce the goal."
122+
msgstr ""
123+
99124
#. §0: `h'`
100125
#: Game.Levels.Rewriting.L08_RwReverse
101126
msgid "Now use §0 to finish."
@@ -117,20 +142,6 @@ msgstr ""
117142
msgid "Start by introducing §0 and §1."
118143
msgstr ""
119144

120-
#. §0: `→`
121-
#. §1: `↔`
122-
#. §2: `∀`
123-
#. §3: `∃`
124-
#. §4: `∧`
125-
#: Game.Levels.Logic
126-
msgid "# Logic\n"
127-
"\n"
128-
"## Implications and Quantifiers\n"
129-
"\n"
130-
"In this world, we will learn how to handle logical implications (§0), equivalences (§1),\n"
131-
"quantifiers (§2, §3) and conjunctions (§4)."
132-
msgstr ""
133-
134145
#: Game
135146
msgid "Glimpse of Lean tutorial gamified"
136147
msgstr ""
@@ -342,11 +353,6 @@ msgid "Use §0 and §1.\n"
342353
"right-hand side."
343354
msgstr ""
344355

345-
#. §0: `exact`
346-
#: Game.Levels.Logic.L01_Implications
347-
msgid "You can use §0 to provide the proof term directly."
348-
msgstr ""
349-
350356
#. §0: `apply hg`
351357
#. §1: `f x₁ ≤ f x₂`
352358
#. §2: `apply hf`
@@ -357,6 +363,22 @@ msgid "You can also use backward reasoning: §0 reduces the goal to §1,\n"
357363
"then §2 reduces it to §3, and §4 finishes."
358364
msgstr ""
359365

366+
#. §0: `unfold`
367+
#. §1: `specialize`
368+
#. §2: `apply`
369+
#. §3: `simp`
370+
#. §4: `apply?`
371+
#. §5: `∀ x, P x`
372+
#. §6: `even_fun`
373+
#. §7: `non_decreasing`
374+
#: Game.Levels.LogicForall
375+
msgid "# Logic — Part 2\n"
376+
"\n"
377+
"## Universal quantifiers (∀)\n"
378+
"\n"
379+
"Learn §0, §1, §2, and §3/§4 for working with §5 and predicates like §6, §7."
380+
msgstr ""
381+
360382
#: Game.Levels.Analysis.L04_Uniqueness
361383
msgid "# Uniqueness of Limits\n"
362384
"\n"
@@ -396,12 +418,18 @@ msgstr ""
396418
msgid "First rewrite §0 using §1."
397419
msgstr ""
398420

399-
#: Game.Levels.Analysis.L04_Uniqueness
400-
msgid "Limits are unique in Hausdorff spaces (like ℝ)."
421+
#. §0: `ring`
422+
#. §1: `rw`
423+
#: Game.Levels.RewritingBasic
424+
msgid "# Computing — Part 1\n"
425+
"\n"
426+
"## ring and rw\n"
427+
"\n"
428+
"Learn the §0 tactic for algebraic identities and the §1 tactic for rewriting with equalities and lemmas."
401429
msgstr ""
402430

403-
#: Game.Levels.Logic
404-
msgid "Logic"
431+
#: Game.Levels.Analysis.L04_Uniqueness
432+
msgid "Limits are unique in Hausdorff spaces (like ℝ)."
405433
msgstr ""
406434

407435
#. §0: `ring`
@@ -481,16 +509,16 @@ msgstr ""
481509
msgid "Equivalences allow rewriting in both directions."
482510
msgstr ""
483511

484-
#: Game.Levels.Analysis.L02_SumLimit
485-
msgid "Limit of Sum"
486-
msgstr ""
487-
488512
#: Game.Levels.SetTheory
489513
msgid "# Set Theory\n"
490514
"\n"
491515
"In this world, we explore Galois connections (adjunctions) between complete lattices."
492516
msgstr ""
493517

518+
#: Game.Levels.Analysis.L02_SumLimit
519+
msgid "Limit of Sum"
520+
msgstr ""
521+
494522
#. §0: `add_le_add_iff_right`
495523
#: Game.Levels.Logic.L09_AddLeAddIffRight
496524
msgid "This lemma is in mathlib as §0."
@@ -521,6 +549,23 @@ msgid "The §0 tactic searches the library for lemmas that could solve the goal.
521549
"Use §1 (the additive version of the theorem)."
522550
msgstr ""
523551

552+
#. §0: `exact`
553+
#. §1: `apply`
554+
#. §2: `have`
555+
#. §3: `intro`
556+
#. §4: `constructor`
557+
#. §5: `↔`
558+
#. §6: `rw`
559+
#. §7: `.1`
560+
#. §8: `.2`
561+
#: Game.Levels.LogicImplications
562+
msgid "# Logic — Part 1\n"
563+
"\n"
564+
"## Implications and equivalences\n"
565+
"\n"
566+
"Learn §0, §1, §2, §3, §4, and how to use equivalences (§5) with §6 and §7/§8."
567+
msgstr ""
568+
524569
#. §0: `have h2 : 0 < a^2`
525570
#: Game.Levels.Logic.L02_Forward
526571
msgid "Start by declaring §0."
@@ -595,19 +640,6 @@ msgstr ""
595640
msgid "To prove §0, provide a witness with §1, then prove §2."
596641
msgstr ""
597642

598-
#. §0: `ring`
599-
#: Game.Levels.Rewriting
600-
msgid "# Computing\n"
601-
"\n"
602-
"## The ring tactic\n"
603-
"\n"
604-
"One of the earliest kind of proofs one encounters while learning mathematics is proving by\n"
605-
"a calculation. It may not sound like a proof, but this is actually using lemmas expressing\n"
606-
"properties of operations on numbers. Of course we usually don't want to invoke those explicitly\n"
607-
"so mathlib has a tactic §0 taking care of proving equalities that follow by applying\n"
608-
"the properties of all commutative rings."
609-
msgstr ""
610-
611643
#. §0: `rw [hf, hg]`
612644
#: Game.Levels.Logic.L15_EvenFunCompressed
613645
msgid "You can often chain rewrites: §0 applies both."
@@ -711,6 +743,20 @@ msgstr ""
711743
msgid "Reverse rewriting exercise"
712744
msgstr ""
713745

746+
#. §0: `use`
747+
#. §1: `rcases`
748+
#. §2: `P ∧ Q`
749+
#. §3: `constructor`
750+
#. §4: `⟨a, b⟩`
751+
#. §5: `Surjective`
752+
#: Game.Levels.LogicExists
753+
msgid "# Logic — Part 3\n"
754+
"\n"
755+
"## Existentials (∃) and conjunctions (∧)\n"
756+
"\n"
757+
"Learn §0, §1, and how to prove §2 with §3 or §4. Apply these to divisibility and §5."
758+
msgstr ""
759+
714760
#: Game.Levels.Logic.L29_Surjective
715761
msgid "Surjective"
716762
msgstr ""
@@ -751,6 +797,10 @@ msgstr ""
751797
msgid "even_fun (g ∘ f)"
752798
msgstr ""
753799

800+
#: Game.Levels.RewritingAdvanced
801+
msgid "Computing (2): reverse rw & calc"
802+
msgstr ""
803+
754804
#. §0: `calc`
755805
#. §1: `exp_add`
756806
#. §2: `exp (2*a) = (exp b)^2 * (exp c)^2`
@@ -759,14 +809,14 @@ msgstr ""
759809
msgid "Combine §0 with §1 to show §2 when §3."
760810
msgstr ""
761811

762-
#: Game.Levels.Rewriting.L04_RwMultiple
763-
msgid "Multiple rewrites"
764-
msgstr ""
765-
766812
#: Game.Levels.SetTheory.L01_InfSup
767813
msgid "The infimum is the greatest lower bound."
768814
msgstr ""
769815

816+
#: Game.Levels.Rewriting.L04_RwMultiple
817+
msgid "Multiple rewrites"
818+
msgstr ""
819+
770820
#. §0: `intro`
771821
#: Game.Levels.Logic.L03_ProvingImplications
772822
msgid "Note that, when using §0, you need to give a name to the assumption.\n"
@@ -814,10 +864,6 @@ msgstr ""
814864
msgid "a = b ↔ b - a = 0"
815865
msgstr ""
816866

817-
#: Game.Levels.Rewriting
818-
msgid "Computing"
819-
msgstr ""
820-
821867
#. §0: `u n`
822868
#. §1: `l`
823869
#. §2: `h`
@@ -863,11 +909,6 @@ msgstr ""
863909
msgid "Use §0 to replace §1 with §2: §3."
864910
msgstr ""
865911

866-
#. §0: `constructor`
867-
#: Game.Levels.Logic.L13_EquivSubZero
868-
msgid "Prove this equivalence using §0 and then each direction."
869-
msgstr ""
870-
871912
#. §0: `R`
872913
#. §1: `S`
873914
#. §2: `R`
@@ -880,6 +921,11 @@ msgid "# Ring Homomorphisms\n"
880921
"It preserves addition, multiplication, zero, and one."
881922
msgstr ""
882923

924+
#. §0: `constructor`
925+
#: Game.Levels.Logic.L13_EquivSubZero
926+
msgid "Prove this equivalence using §0 and then each direction."
927+
msgstr ""
928+
883929
#. §0: `a ∣ b`
884930
#. §1: `∃ k, b = a * k`
885931
#. §2: `rcases`
@@ -914,6 +960,10 @@ msgstr ""
914960
msgid "The §0 accesses the right-to-left implication of the equivalence."
915961
msgstr ""
916962

963+
#: Game.Levels.LogicImplications
964+
msgid "Logic (1): implications & equivalences"
965+
msgstr ""
966+
917967
#. §0: `1 + 1 = 2`
918968
#: Game.Levels.Logic.L06_Exists
919969
msgid "Now prove §0."
@@ -982,6 +1032,10 @@ msgstr ""
9821032
msgid "We need to provide a natural number §0. Any number will do since the sequence is constant."
9831033
msgstr ""
9841034

1035+
#: Game.Levels.LogicExists
1036+
msgid "Logic (3): existentials & conjunctions"
1037+
msgstr ""
1038+
9851039
#. §0: `c = 2*a*d`
9861040
#. §1: `calc`
9871041
#: Game.Levels.Rewriting.L13_CalcEx
@@ -1258,6 +1312,12 @@ msgstr ""
12581312
msgid "Apply the hypothesis §0 to §1."
12591313
msgstr ""
12601314

1315+
#. §0: `isInf`
1316+
#. §1: `x₀`
1317+
#: Game.Levels.SetTheory.L01_InfSup
1318+
msgid "Apply the definition of §0 to §1."
1319+
msgstr ""
1320+
12611321
#. §0: `non_decreasing f`
12621322
#. §1: `∀ x₁ x₂, x₁ ≤ x₂ → f x₁ ≤ f x₂`
12631323
#. §2: `have step₁ : f x₁ ≤ f x₂ := hf x₁ x₂ h`
@@ -1267,12 +1327,6 @@ msgid "§0 means §1.\n"
12671327
"Use forward reasoning: first §2, then §3."
12681328
msgstr ""
12691329

1270-
#. §0: `isInf`
1271-
#. §1: `x₀`
1272-
#: Game.Levels.SetTheory.L01_InfSup
1273-
msgid "Apply the definition of §0 to §1."
1274-
msgstr ""
1275-
12761330
#. §0: `h`
12771331
#. §1: `exact h`
12781332
#: Game.Levels.Rewriting.L10_RwAtExact

Game.lean

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1-
import Game.Levels.Rewriting
2-
import Game.Levels.Logic
1+
import Game.Levels.RewritingBasic
2+
import Game.Levels.RewritingAdvanced
3+
import Game.Levels.LogicImplications
4+
import Game.Levels.LogicForall
5+
import Game.Levels.LogicExists
36
import Game.Levels.Analysis
47
import Game.Levels.SetTheory
58
import Game.Levels.Algebra
@@ -29,11 +32,14 @@ Info "
2932
Based on the [Glimpse of Lean](https://github.com/PatrickMassot/GlimpseOfLean) tutorial.
3033
"
3134

32-
Dependency Rewriting → Logic
33-
Dependency Logic → Analysis
34-
Dependency Logic → SetTheory
35-
Dependency Logic → Algebra
36-
Dependency Logic → Probability
35+
Dependency RewritingBasic → RewritingAdvanced
36+
Dependency RewritingAdvanced → LogicImplications
37+
Dependency LogicImplications → LogicForall
38+
Dependency LogicForall → LogicExists
39+
Dependency LogicExists → Analysis
40+
Dependency LogicExists → SetTheory
41+
Dependency LogicExists → Algebra
42+
Dependency LogicExists → Probability
3743

3844
/-! Information to be displayed on the servers landing page. -/
3945
Languages "en" "zh"

Game/Levels/Analysis/L01_SequenceLimit.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ Statement (u : ℕ → ℝ) (l : ℝ) (h : ∀ n, u n = l) : seq_limit u l := by
3434
linarith
3535

3636
NewDefinition seq_limit
37-
NewTactic linarith use simp
37+
NewTactic linarith
3838

3939
Conclusion "
4040
If a sequence is constant, it tends to its value.

0 commit comments

Comments
 (0)