@@ -12,6 +12,10 @@ msgstr "Project-Id-Version: Game v4.23.0\n"
1212msgid "add_le_add_iff_left"
1313msgstr ""
1414
15+ #: Game.Levels.LogicForall
16+ msgid "Logic (2): universal quantifiers"
17+ msgstr ""
18+
1519#: Game.Levels.Analysis.L03_SqueezeTheorem
1620msgid "Squeeze Theorem"
1721msgstr ""
@@ -34,6 +38,10 @@ msgstr ""
3438msgid "intermediate goal solved! 🎉"
3539msgstr ""
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 ""
6775msgid "Use §0 to replace §1 in the goal with §2."
6876msgstr ""
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
7291msgid "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."
97116msgstr ""
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
101126msgid "Now use §0 to finish."
@@ -117,20 +142,6 @@ msgstr ""
117142msgid "Start by introducing §0 and §1."
118143msgstr ""
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
135146msgid "Glimpse of Lean tutorial gamified"
136147msgstr ""
@@ -342,11 +353,6 @@ msgid "Use §0 and §1.\n"
342353"right-hand side."
343354msgstr ""
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."
358364msgstr ""
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
361383msgid "# Uniqueness of Limits\n"
362384"\n"
@@ -396,12 +418,18 @@ msgstr ""
396418msgid "First rewrite §0 using §1."
397419msgstr ""
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."
401429msgstr ""
402430
403- #: Game.Levels.Logic
404- msgid "Logic "
431+ #: Game.Levels.Analysis.L04_Uniqueness
432+ msgid "Limits are unique in Hausdorff spaces (like ℝ). "
405433msgstr ""
406434
407435#. §0: `ring`
@@ -481,16 +509,16 @@ msgstr ""
481509msgid "Equivalences allow rewriting in both directions."
482510msgstr ""
483511
484- #: Game.Levels.Analysis.L02_SumLimit
485- msgid "Limit of Sum"
486- msgstr ""
487-
488512#: Game.Levels.SetTheory
489513msgid "# Set Theory\n"
490514"\n"
491515"In this world, we explore Galois connections (adjunctions) between complete lattices."
492516msgstr ""
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
496524msgid "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)."
522550msgstr ""
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
526571msgid "Start by declaring §0."
@@ -595,19 +640,6 @@ msgstr ""
595640msgid "To prove §0, provide a witness with §1, then prove §2."
596641msgstr ""
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
613645msgid "You can often chain rewrites: §0 applies both."
@@ -711,6 +743,20 @@ msgstr ""
711743msgid "Reverse rewriting exercise"
712744msgstr ""
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
715761msgid "Surjective"
716762msgstr ""
@@ -751,6 +797,10 @@ msgstr ""
751797msgid "even_fun (g ∘ f)"
752798msgstr ""
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 ""
759809msgid "Combine §0 with §1 to show §2 when §3."
760810msgstr ""
761811
762- #: Game.Levels.Rewriting.L04_RwMultiple
763- msgid "Multiple rewrites"
764- msgstr ""
765-
766812#: Game.Levels.SetTheory.L01_InfSup
767813msgid "The infimum is the greatest lower bound."
768814msgstr ""
769815
816+ #: Game.Levels.Rewriting.L04_RwMultiple
817+ msgid "Multiple rewrites"
818+ msgstr ""
819+
770820#. §0: `intro`
771821#: Game.Levels.Logic.L03_ProvingImplications
772822msgid "Note that, when using §0, you need to give a name to the assumption.\n"
@@ -814,10 +864,6 @@ msgstr ""
814864msgid "a = b ↔ b - a = 0"
815865msgstr ""
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 ""
863909msgid "Use §0 to replace §1 with §2: §3."
864910msgstr ""
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."
881922msgstr ""
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 ""
914960msgid "The §0 accesses the right-to-left implication of the equivalence."
915961msgstr ""
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
919969msgid "Now prove §0."
@@ -982,6 +1032,10 @@ msgstr ""
9821032msgid "We need to provide a natural number §0. Any number will do since the sequence is constant."
9831033msgstr ""
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 ""
12581312msgid "Apply the hypothesis §0 to §1."
12591313msgstr ""
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."
12681328msgstr ""
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
0 commit comments