From 98aeff5b99b239363ce4d5f1f1c9cdddec2cf9d7 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 13 Apr 2026 14:33:57 +0900 Subject: [PATCH 001/147] Add ja (empty) translation --- .i18n/ja/Game.json | 620 ++++++ .i18n/ja/Game.po | 4961 ++++++++++++++++++++++++++++++++++++++++++++ Game.lean | 2 +- 3 files changed, 5582 insertions(+), 1 deletion(-) create mode 100644 .i18n/ja/Game.json create mode 100644 .i18n/ja/Game.po diff --git a/.i18n/ja/Game.json b/.i18n/ja/Game.json new file mode 100644 index 00000000..7c864594 --- /dev/null +++ b/.i18n/ja/Game.json @@ -0,0 +1,620 @@ +{"≤ World": "", + "≠": "", + "§0.": "", + "§0, with notation §1, is the usual\n product of natural numbers. Internally it is\n via two axioms:\n\n * §2\n\n * §3\n\nOther theorems about naturals, such as §4,\nare proved by induction from these two basic theorems.": + "", + "§0, with notation §1, is the usual\n exponentiation of natural numbers. Internally it is\n defined via two axioms:\n\n * §2\n\n * §3\n\nNote in particular that §4.": + "", + "§0, with notation §1, is\nthe usual sum of natural numbers. Internally it is defined\nvia the following two hypotheses:\n\n* §2\n\n* §3\n\nOther theorems about naturals, such as §4, are proved\nby induction using these two basic theorems.": + "", + "§0 will do this.": "", + "§0 will change §1 into §2.": "", + "§0 says that §1.\n\nNote that this is not quite true by definition: §2 is\ndefined to be §3 so it's §4, and to prove\nthat this is equal to §5 you need to use induction somewhere.": + "", + "§0 says that §1.": "", + "§0 practice.": "", + "§0 is the theorem that §1.\nYou can prove it by induction on §2 or you can deduce it from §3.": + "", + "§0 is the theorem that §1\nTwo ways to do it spring to mind; I'll mention them when you've solved it.": + "", + "§0 is the theorem that §1": "", + "§0 is the statement that §1": "", + "§0 is the proof §1.": "", + "§0 is the proof that §1.\n\nNote: §2 is a §3 lemma.": "", + "§0 is the proof that §1.\n\nIt could be deduced from §2 and §3, however this argument\nwould be circular because the proof of §4 uses §5.": + "", + "§0 is the proof that §1.\n\nIn Lean, §2 is *defined to mean* §3. Hence\n§4 is really a proof of §5.\nHere §6 is a generic false statement. This means that\nyou can §7 if §8 is a proof of §9.": + "", + "§0 is the proof that §1.": "", + "§0 is the proof that multiplication is commutative. More precisely,\n§1 is the proof that §2.": + "", + "§0 is the proof of §1.\n\n§2 is a §3 lemma, because replacing §4 by §5\nis almost always what you want to do if you're simplifying an expression.": + "", + "§0 is the proof of §1.": "", + "§0 is the number after the number after §1.": "", + "§0 is the natural numbers, just called \\\\\"numbers\\\\\" in this game. It's\ndefined via two rules:\n\n* §1 (zero is a number)\n* §2 (the successor of a number is a number)\n\n## Game Implementation\n\n*The game uses its own copy of the natural numbers, called §3 with notation §4.\nIt is distinct from the Lean natural numbers §5, which should hopefully\nnever leak into the natural number game.*": + "", + "§0 is one of the two axioms\ndefining exponentiation in this game.": "", + "§0 is one of the\ntwo axioms defining exponentiation in this game.": "", + "§0 is just as fiddly to prove by induction; but there's a trick\nwhich avoids it. Can you spot it?": + "", + "§0 is good enough to solve this goal.": "", + "§0 is an ancient magic spell, believed to be the origin of the\nmodern word §1. The game won't complain - or notice - if you\nprove anything with §2.": + "", + "§0 is a proof that §1. But if your goal\nis §2 then §3 will not\nwork! Because the goal means §4 so there\nis no §5 term *directly* in the goal.\n\nUse associativity and commutativity to prove §6.\nYou don't need induction. §7 moves brackets around,\nand §8 moves variables around.\n\nRemember that you can do more targeted rewrites by\nadding explicit variables as inputs to theorems. For example §9\nwill only do rewrites of the form §10, and §11\nwill only do rewrites of the form §12.": + "", + "§0 is a proof that §1.\n\nNote that when Lean says §2 it means §3.\n\nNote that §4 cannot be proved by \\\\\"pure thought\\\\\":\nfor example subtraction is not associative, as §5 is not\nequal to §6.": + "", + "§0 is a proof that §1.\n\nIt's one way of saying that a divisor of a positive number\nhas to be at most that number.": + "", + "§0 is a proof that §1.\n\n## Summary\n\n§2 is really a function, which\neats a number, and returns a proof of a theorem\nabout that number. For example §3 is\na proof that §4.\n\nThe §5 tactic will accept §6\nand will try to figure out which number you omitted\nto input.\n\n## Details\n\nA mathematician sometimes thinks of §7\nas \\\\\"one thing\\\\\", namely a proof of §8.\nThis is just another way of saying that it's a function which\ncan eat any number n and will return a proof that §9.": + "", + "§0 is a proof that §1.": "", + "§0 is a proof that §1 or §2.": "", + "§0 is a proof that §1\n\nIn Lean, §2 means §3, so this result gets displayed\nas §4.": + "", + "§0 is a proof that §1": "", + "§0 is a proof that if §1 then §2.": "", + "§0 is a proof that if §1 then §2 or §3.": "", + "§0 is a proof that if §1 then §2 or §3 or §4.": "", + "§0 is a proof that if §1 and §2 then §3.\nMore precisely, it is a proof that §4. In words,\nIf §5 then (pause) if §6 then §7.\n\n## A note on associativity\n\nIn Lean, §8 means §9, because §10 is left associative. However\n§11 is right associative. This means that §12 in Lean means\nexactly that §13 is transitive. This is different to how mathematicians use\n§14; for them, this usually means that §15\nand §16.": + "", + "§0 is a proof that if §1 and §2 then §3.": "", + "§0 is a proof of §1.\"": "", + "§0 is a proof of §1.\n\nThe reason for the name is that this lemma is \"reflexivity of §2\"": + "", + "§0 is a proof of §1.": "", + "§0 is a proof of §1 so that was what got rewritten.\nYou can now change §2 to §3 with §4 or §5. You\ncan usually stick to §6 unless you need real precision.": + "", + "§0 is a proof of the implication §1.": "", + "§0 is a proof\nthat §1. Note that in Lean §2 prints\nas §3, because the notation for addition is defined to be left\nassociative.": + "", + "§0 is I think quicker than §1.": "", + "§0 is *notation* for §1. This \"backwards E\"\nmeans \"there exists\". So §2 means that there exists\na number §3 such that §4. This definition works\nbecause there are no negative numbers in this game.\n\nTo *prove* an \"exists\" statement, use the §5 tactic.\nLet's see an example.": + "", + "§0 is *notation* for §1.\n\nThe reason this is mathematically\nvalid is that if §2 is a true-false statement then §3\nis the logical opposite of §4. Indeed §5 is false,\nand §6 is true!\n\nThe upshot of this is that you can treat §7 in exactly\nthe same way as you treat any implication §8. For example,\nif your *goal* is of the form §9 then you can make progress\nwith §10, and if you have a hypothesis §11 of the\nform §12 then you can §13 if §14 is a proof\nof §15.": + "", + "§0 is *notation* for §1.\n\nBecause this game doesn't have negative numbers, this definition\nis mathematically valid.\n\nThis means that if you have a goal of the form §2 you can\nmake progress with the §3 tactic, and if you have a hypothesis\n§4, you can make progress with §5.": + "", + "§0": "", + "zero_pow_zero": "", + "zero_pow_succ": "", + "zero_ne_succ": "", + "zero_mul": "", + "zero_add": "", + "x ≤ y or y ≤ x": "", + "x ≤ y and y ≤ z implies x ≤ z": "", + "x ≤ y and y ≤ x implies x = y": "", + "x ≤ succ x": "", + "x ≤ 1": "", + "x ≤ 0 → x = 0": "", + "two_mul": "", + "try rewriting §0.": "", + "the simplest approach": "", + "the rw tactic": "", + "succ_mul": "", + "succ_inj : the successor function is injective": "", + "succ_add": "", + "succ x ≤ succ y → x ≤ y": "", + "rewriting backwards": "", + "pred": "", + "pow_two": "", + "pow_pow": "", + "pow_one": "", + "pow_add": "", + "one_pow": "", + "one_mul": "", + "one_le_of_ne_zero": "", + "mul_right_eq_self": "", + "mul_right_eq_one": "", + "mul_pow": "", + "mul_one": "", + "mul_ne_zero": "", + "mul_left_ne_zero": "", + "mul_left_cancel": "", + "mul_le_mul_right": "", + "mul_eq_zero": "", + "mul_comm": "", + "mul_assoc": "", + "mul_add": "", + "making life simple": "", + "making life easier": "", + "level completed! 🎉": "", + "level completed with warnings… 🎭": "", + "le_two": "", + "le_mul_right": "", + "is_zero": "", + "intro practice": "", + "intro": "", + "intermediate goal solved! 🎉": "", + "eq_succ_of_ne_zero": "", + "decide again": "", + "decide": "", + "add_succ": "", + "add_sq": "", + "add_right_eq_zero": "", + "add_right_eq_self": "", + "add_right_comm": "", + "add_right_cancel": "", + "add_mul": "", + "add_left_eq_zero": "", + "add_left_eq_self": "", + "add_left_comm": "", + "add_left_cancel": "", + "add_comm (level boss)": "", + "add_assoc (associativity of addition)": "", + "[final boss music]": "", + "[dramatic music]. Now are you ready to face the first boss of the game?": "", + "[boss battle music]\n\nLook in your inventory to see the proofs you have available.\nThese should be enough.": + "", + "You've now seen all the tactics you need to beat the final boss of the game.\nYou can begin the journey towards this boss by entering Multiplication World.\n\nOr you can go off the beaten track and learn some new tactics in Implication\nWorld. These tactics let you prove more facts about addition, such as\nhow to deduce §0 from §1.\n\nClick \"Home\" and make your choice.": + "", + "You want to use §0, which you already\nproved, but you'll have to start with §1 your hypothesis.": + "", + "You still don't know which way to go, so do §0.": "", + "You now know enough tactics to prove §0! Let's begin the journey.": "", + "You might want to think about whether induction\non §0 or §1 is the best idea.": + "", + "You can use §0 to rewrite at §1 instead\nof at the goal.": "", + "You can start a proof by induction on §0 by typing:\n§1.": "", + "You can read more about the §0 tactic by clicking\non it in the top right.": + "", + "You can put a §0 in front of any theorem provided to §1 to rewrite\nthe other way around. Look at the docs for §2 for an explanation. Type §3 with §4.": + "", + "You can prove §0 in at least three ways.\nEither by induction, or by using §1, or\nby using commutativity. Which do you think is quickest?": + "", + "You can probably take it from here.": "", + "You can now §0": "", + "You can now finish with §0.": "", + "You can make your own tactics in Lean.\nThis code here\n§0\nwas used to create a new tactic §1, which runs\n§2.\nTry running §3 to solve this level!": + "", + "You can just mimic the previous proof to do this one -- or you can figure out a way\nof using it.": + "", + "You can do induction on any of the three variables. Some choices\nare harder to push through than others. Can you do the inductive step in\n5 rewrites only?": + "", + "Why did we not just define §0 to be §1? Because we have not\neven *defined* addition yet! We'll do that in the next level.": + "", + "What do you think of this two-liner:\n§0\n\n§1 doesn't just take hypotheses, it will eat any proof which exists\nin the system.": + "", + "Well done! You now have enough tools to tackle the main boss of this level.": + "", + "Well done!": "", + "Welcome to tutorial world! In this world we learn the basics\nof proving theorems. The boss level of this world\nis the theorem §0.\n\nYou prove theorems by solving puzzles using tools called *tactics*.\nThe aim is to prove the theorem by applying tactics\nin the right order.\n\nLet's learn some basic tactics. Click on \"Start\" below\nto begin your quest.": + "", + "Welcome to Addition World! In this world we'll learn the §0 tactic.\nThis will enable us to defeat the boss level of this world, namely §1.\n\nThe tactics §2, §3 and §4 are the only tactics you'll need to\nbeat all the levels in Addition World, Multiplication World, and Power World.\nPower World contains the final boss of the game.\n\nThere are plenty more tactics in this game, but you'll only need to know them if you\nwant to explore the game further (for example if you decide to 100%\nthe game).": + "", + "We've seen §0, the proof that if §1 then §2.\nNow we'll prove that if §3 then §4 or §5.": + "", + "We've proved that §0; in Implication World we'll learn\nhow to prove §1.\n\nIn Addition World we proved *equalities* like §2.\nIn this second tutorial world we'll learn some new tactics,\nenabling us to prove *implications*\nlike §3\n\nWe'll also learn two new fundamental facts about\nnatural numbers, which Peano introduced as axioms.\n\nClick on \"Start\" to proceed.": + "", + "We've proved that §0 implies §1. The last two levels\nin this world will prove which numbers are §2 and §3.\nThis lemma will be helpful for them.": + "", + "We've just seen that §0, but if §1\nis a successor, then §2. We prove that here.": + "", + "We've been adding up two numbers; in this level we will add up three.\n\n What does §0 *mean*? It could either mean §1, or it\n could mean §2. In Lean, §3 means §4.\n\n But why do we care which one it means; §5 and §6 are *equal*!\n\n That's true, but we didn't prove it yet. Let's prove it now by induction.": + "", + "We're going to change that §0 into §1. Start by changing it into\n§2 by executing §3.": + "", + "We'll need this lemma to prove that two is prime!\n\nYou'll need to know that §0 is right associative. This means that\n§1 actually means §2.\nThis affects how §3 and §4 work.": + "", + "We'd like to prove §0 but right now\nwe can't even *state* it\nbecause we haven't yet defined addition.\n\n## Defining addition.\n\nHow are we going to add §1 to an arbitrary number §2? Well,\nthere are only two ways to make numbers in this game: §3\nand successors. So to define §4 we will need\nto know what §5 is and what §6 is.\nLet's start with adding §7.\n\n### Adding 0\n\nTo make addition agree with our intuition, we should *define* §8\nto be §9. More generally, we should define §10 to be §11 for\nany number §12. The name of this proof in Lean is §13.\nFor example §14 is a proof of §15,\n§16 is a proof of §17, and §18 is a proof\nof §19.\n\nWe write §20, so §21.": + "", + "We want to use §0, but we need a hypothesis §1\nwhich we don't have. Yet. Execute §2 (you can type §3 with §4).\nYou'll be asked to\nprove it, and then you'll have a new hypothesis which you can apply\n§5 to.": + "", + "We want to reduce this to a hypothesis §0 and a goal §1,\nwhich is logically equivalent but much easier to prove. Remember that §2\nis notation for §3. Click on §4 if you need hints.": + "", + "We still can't prove §0 because we have not talked about the\ndefinition of §1. In Lean, §2 is *notation* for §3.\nHere §4 is a generic false proposition, and §5 is Lean's notation\nfor \"implies\". In logic we learn\nthat §6 is false, but §7 is true. Hence\n§8 is the logical opposite of §9.\n\nEven though §10 does not look like an implication,\nyou should treat it as an implication. The next two levels will show you how.\n\n§11 is a goal which you cannot deduce from a consistent set of assumptions!\nSo if your goal is §12 then you had better hope that your hypotheses\nare contradictory, which they are in this level.": + "", + "We now start work on an algorithm to do addition more efficiently. Recall that\nwe defined addition by recursion, saying what it did on §0 and successors.\nIt is an axiom of Lean that recursion is a valid\nway to define functions from types such as the naturals.\n\nLet's define a new function §1 from the naturals to the naturals, which\nattempts to subtract 1 from the input. The definition is this:\n\n§2\n\nWe cannot subtract one from 0, so we just return a junk value. As well as this\ndefinition, we also create a new lemma §3, which says that §4.\nLet's use this lemma to prove §5, the theorem which\nPeano assumed as an axiom and which we have already used extensively without justification.": + "", + "We now have enough to state a mathematically accurate, but slightly\nclunky, version of Fermat's Last Theorem.\n\nFermat's Last Theorem states that if §0 and §1 then §2.\nIf you didn't do inequality world yet then we can't talk about §3,\nso we have to resort to the hack of using §4 for §5,\nwhich guarantees it's big enough. Similarly instead of §6 we\nuse §7.\n\nThis level looks superficially like other levels we have seen,\nbut the shortest solution known to humans would translate into\nmany millions of lines of Lean code. The author of this game,\nKevin Buzzard, is working on translating the proof by Wiles\nand Taylor into Lean, although this task will take many years.\n\n## CONGRATULATIONS!\n\nYou've finished the main quest of the natural number game!\nIf you would like to learn more about how to use Lean to\nprove theorems in mathematics, then take a look\nat [Mathematics In Lean](https://leanprover-community.github.io/mathematics_in_lean/),\nan interactive textbook which you can read in your browser,\nand which explains how to work with many more mathematical concepts in Lean.": + "", + "We now have enough to prove that multiplication is associative,\nthe boss level of multiplication world. Good luck!": + "", + "We know §0 is a proof of §1 -- but what\nif we have a hypothesis §2? It's the wrong way around!\n\nThe §3 tactic changes a goal §4 to §5, and a goal §6\nto §7. And §8\ndoes the same for a hypothesis §9. We've proved §10 and called\nthe proof §11; now try proving §12.": + "", + "We have seen how to §0 theorems and assumptions\nof the form §1. But what if our *goal* is of the form §2?\nTo prove this goal, we need to know how to say \"let's assume §3 and deduce §4\"\nin Lean. We do this with the §5 tactic.": + "", + "We gave a pretty unsatisfactory proof of §0 earlier on; now give a nicer one.": + "", + "We don't know whether to go left or right yet. So start with §0.": "", + "We define a function §0 thus:\n\n§1\n\nWe also create two lemmas, §2 and §3, saying that §4\nand §5. Let's use these lemmas to prove §6, Peano's\nLast Axiom. Actually, we have been using §7 before, but it's handy to have\nthis opposite version too, which can be proved in the same way. Note: you can\ncheat here by using §8 but the point of this world is to show\nyou how to *prove* results like that.\n\nIf you can turn your goal into §9, then the §10 tactic will solve it.": + "", + "Very well done.\n\nA passing mathematician remarks that with you've just proved that §0 is totally\nordered.\n\nThe final few levels in this world are much easier.": + "", + "Use §0.": "", + "Use §0 and remember that §1 will solve a goal\nif there are hypotheses §2 and §3.": + "", + "Use the previous lemma with §0.": "", + "Tutorial World": "", + "Try §0.": "", + "Try §0 to change §1 into §2.": "", + "Totality of §0 is the boss level of this world, and it's coming up next. It says that\nif §1 and §2 are naturals then either §3 or §4.\nBut we haven't talked about §5 at all. Here's a run-through.\n\n1) The notation for \"or\" is §6. You won't need to type it, but you can\ntype it with §7.\n\n2) If you have an \"or\" statement in the *goal*, then two tactics make\nprogress: §8 and §9. But don't choose a direction unless your\nhypotheses guarantee that it's the correct one.\n\n3) If you have an \"or\" statement as a *hypothesis* §10, then\n§11 will create two goals, one where you went left,\nand the other where you went right.": + "", + "To solve this level, you need to §0 a number §1 such that §2.": "", + "Those of you interested in speedrunning the game may want to know\nthat §0 will do both rewrites at once.": + "", + "This world introduces exponentiation. If you want to define §0\nthen, as always, you will need to know what §1 is, and\nwhat §2 is, given only §3.\n\nYou can probably guess the names of the general theorems:\n\n * §4\n * §5\n\nUsing only these, can you get past the final boss level?\n\nThe levels in this world were designed by Sian Carey, a UROP student\nat Imperial College London, funded by a Mary Lister McCammon Fellowship\nin the summer of 2019. Thanks to Sian and also thanks to Imperial\nCollege for funding her.": + "", + "This time, use the §0 tactic.": "", + "This level proves §0, the multiplicative analogue of Advanced Addition\nWorld's §1. The strategy is to prove that §2 and then use the\nlemma §3 from §4 world.\n\nWe'll prove it using a new and very useful tactic called §5.": + "", + "This level proves that if §0 then §1 or §2. It is\nlogically equivalent to the last level, so there is a very short proof.": + "", + "This level proves that if §0 and §1 then §2. One strategy\nis to write both §3 and §4 as §5 of something, deduce that §6 is\nalso §7 of something, and then §8.": + "", + "This level is more important than you think; it plays\na useful role when battling a big boss later on.": + "", + "This level asks you to prove *antisymmetry* of §0.\nIn other words, if §1 and §2 then §3.\nIt's the trickiest one so far. Good luck!": + "", + "This lemma would have been easy if we had known that §0. That theorem\n is called §1 and it is *true*, but unfortunately its proof *uses* both\n §2 and §3!\n\n Let's continue on our journey to §4, the proof of §5.": + "", + "This is I think the toughest level yet. Tips: if §0 is a number\nthen §1 will split into cases §2 and §3.\nAnd don't go left or right until your hypotheses guarantee that\nyou can prove the resulting goal!\n\nI've left hidden hints; if you need them, retry from the beginning\nand click on \"Show more help!\"": + "", + "The §0 tactic.": "", + "The §0 tactic": "", + "The way to start this proof is §0.": "", + "The rfl tactic": "", + "The reason §0 is because §1.\nSo you should start this proof with §2.": "", + "The previous lemma can be used to prove this one.": "", + "The next result we'll need in §0 World is that if §1 then §2 and §3.\nLet's prove one of these facts in this level, and the other in the next.\n\n## A new tactic: §4\n\nThe §5 tactic will split an object or hypothesis up into the possible ways\nthat it could have been created.\n\nFor example, sometimes you want to deal with the two cases §6 and §7 separately,\nbut don't need the inductive hypothesis §8 that comes with §9.\nIn this situation you can use §10 instead. There are two ways to make\na number: it's either zero or a successor. So you will end up with two goals, one\nwith §11 and one with §12.\n\nAnother example: if you have a hypothesis §13 then you are done, because a false statement implies\nany statement. Here §14 will close the goal, because there are *no* ways to\nmake a proof of §15! So you will end up with no goals, meaning you have proved everything.": + "", + "The music gets ever more dramatic, as we explore\nthe interplay between exponentiation and multiplication.\n\nIf you're having trouble exchanging the right §0\nbecause §1 swaps the wrong multiplication,\nthen read the documentation of §2 for tips on how to fix this.": + "", + "The music dies down. Is that it?\n\nCourse it isn't, you can\nclearly see that there are two levels left.\n\nA passing mathematician says that mathematicians don't have a name\nfor the structure you just constructed. You feel cheated.\n\nSuddenly the music starts up again. This really is the final boss.": + "", + "The lemma proved in the final level of this world will be helpful\nin Divisibility World.": + "", + "The inductive hypothesis §0 is \"For all natural numbers §1, §2\".\nYou can §3 it §4 any hypothesis of the form §5.": + "", + "The goal in this level is one of our hypotheses. Solve the goal by executing §0.": + "", + "The first sub-boss of Multiplication World is §0.\n\nWhen you've proved this theorem we will have \"spare\" proofs\nsuch as §1, which is now easily deducible from §2.\nBut we'll keep hold of these proofs anyway, because it's convenient\nto have exactly the right tool for a job.": + "", + "The classical introduction game for Lean.": "", + "Start with §0. This will change §1 to §2.": "", + "Start with §0.": "", + "Start with §0, to change the goal into its\ncontrapositive, namely a hypothesis of §1 and a goal of §2.": + "", + "Start with §0 to push all the brackets to the right.": "", + "Start with §0 to do a case split on §1 and §2.": "", + "Start with §0 to begin to break §1 down into its definition.": "", + "Start with §0 to assume the hypothesis.": "", + "Start with §0 to assume the hypothesis and call its proof §1.": "", + "Start with §0 to apply §1 to the *goal*.": "", + "Start with §0 and §1": "", + "Start with §0 and take it from there.": "", + "Start with §0 (remembering that §1 is just notation\nfor §2).": "", + "Start with induction on §0.": "", + "Start by unravelling the §0.": "", + "Split into cases §0 and §1 with §2.": "", + "Solve this level in one line with §0": "", + "So that's the algorithm: now let's use automation to perform it\nautomatically.": + "", + "Similarly we have §0\nbut we're going to need §1 (guess what it says -- maybe you\nare getting the hang of Lean's naming conventions).\n\nThe last level from addition world might help you in this level.\nIf you can't remember what it is, you can go back to the\nhome screen by clicking the house icon and then taking a look.\nYou won't lose any progress.": + "", + "See the new \"*\" tab in your lemmas, containing §0 and §1.\nRight now these are the only facts we know about multiplication.\nLet's prove nine more.\n\nLet's start with a warm-up: no induction needed for this one,\nbecause we know §2 is a successor.": + "", + "See if you can take it from here. Look at the new lemmas and tactic\navailable on the right.": + "", + "Remember, §0 is *notation* for §1.": "", + "Remember that §0 is a proof of §1. Try\n§2ing §3 either §4 or directly to the goal.": + "", + "Remember that when Lean writes §0, it means §1.\nIf you are not sure where the brackets are in an expression, just hover\nyour cursor over it and look at what gets highlighted. For example,\nhover over both §2 symbols on the left hand side of the goal and\nyou'll see where the invisible brackets are.": + "", + "Reduce to the previous lemma with §0": "", + "Ready for the boss level of this world?": "", + "Proofs like §0 and §1 are very tedious to do by hand.\nIn Algorithm World we learn how to get the computer to do them for us.\n\nClick on \"Start\" to proceed.": + "", + "Precision rewriting": "", + "Power World": "", + "Our next goal is \"left and right distributivity\",\nmeaning §0 and §1. Rather than\nthese slightly pompous names, the name of the proofs\nin Lean are descriptive. Let's start with\n§2, the proof of §3.\nNote that the left hand side contains a multiplication\nand then an addition.": + "", + "Our first challenge is §0,\nand we want to prove it by induction. The zero\ncase will need §1 (which we have)\nand §2 (which we don't), so let's\nstart with this.": + "", + "One of the best named levels in the game, a savage §0\nsub-boss appears as the music reaches a frenzy. What\nelse could there be to prove about powers after this?": + "", + "One day this game will have a Prime Number World, with a final boss\nof proving that §0 is prime.\nTo do this, we will have to rule out things like §1\nWe will do this by proving that any factor of §2 is at most §3,\nwhich we will do using this lemma. The proof I have in mind manipulates the hypothesis\nuntil it becomes the goal, using §4, §5 and\n§6.": + "", + "On the set of natural numbers, addition is commutative.\nIn other words, if §0 and §1 are arbitrary natural numbers, then\n§2.": + "", + "On the set of natural numbers, addition is associative.\nIn other words, if §0 and §1 are arbitrary natural numbers, we have\n§2": + "", + "Oh no! On the way to §0, a wild §1 appears. §2\nis the proof that §3 for §4 and §5 numbers.\nThis result is what's standing in the way of §6. Again\nwe have the problem that we are adding §7 to things, so we need\nto use induction to split into the cases where §8 and §9 is a successor.": + "", + "Numbers": "", + "Now §0.": "", + "Now §0 will work.": "", + "Now §0 will change §1 into §2.": "", + "Now §0 to cancel the §1s.": "", + "Now §0 then §1 works, but §2 is quicker.": "", + "Now §0 so you can §1.": "", + "Now §0 is the quickest way to\nchange §1 to §2.": "", + "Now §0 is a proof that §1, and §2 has vanished. Similarly, you can destruct\n§3 into its parts with §4.": + "", + "Now §0 finishes the job.": "", + "Now §0 and you can probably take it from here.": "", + "Now §0 and deal with the two\ncases separately.": "", + "Now you need to figure out which number to §0. See if you can take it from here.": + "", + "Now you have two goals. Once you proved the first, you will jump to the second one.\nThis first goal is the base case §0.\n\nRecall that you can rewrite the proof of any lemma which is visible\nin your inventory, or of any assumption displayed above the goal,\nas long as it is of the form §1.": + "", + "Now you could finish with §0 then §1, but §2\ndoes it in one line.": "", + "Now you can §0.": "", + "Now you can §0": "", + "Now we can prove the §0 statement by proving the statement on the right,\nso use the §1 tactic.": + "", + "Now use §0 to switch §1 and §2 on the left\nhand side.": "", + "Now the goal can be deduced from §0 by pure logic, so use the §1\ntactic.": + "", + "Now take apart the existence statement with §0.": "", + "Now rewrite §0 backwards to make the goal\nequal to the hypothesis.": "", + "Now rewrite §0 backwards at §1\nto get the right hand side.": "", + "Now let's §0 our new theorem. Execute §1\nto change §2 to a proof of §3.": "", + "Now for the second goal. Here you have the induction hypothesis\n§0, and you need to prove that §1.": + "", + "Now finish using the §0 tactic.": "", + "Now finish the job with §0.": "", + "Now finish in one line.": "", + "Now change §0 to §1 in §2.": "", + "Note: this lemma will be useful for the final boss!": "", + "Note that §0 means §1. Put your cursor\non any §2 in the goal or assumptions to see what exactly it's eating.": + "", + "Note that you can do §0\nand then §1 to solve this level in two lines.": "", + "Nice! You've proved §0!\nLet's now prove Peano's other axiom, that successors can't be §1.": + "", + "Nice!\n\nThe next step in the development of order theory is to develop\nthe theory of the interplay between §0 and multiplication.\nIf you've already done Multiplication World, you're now ready for\nAdvanced Multiplication World. Click on \"Home\" to access it.": + "", + "Nice!": "", + "Next turn §0 into §1 with §2.": "", + "Natural Number Game": "", + "My proof:\n§0": "", + "Multiplication usually makes a number bigger, but multiplication by zero can make\nit smaller. Thus many lemmas about inequalities and multiplication need the\nhypothesis §0. Here is a key lemma that enables us to use this hypothesis.\nTo help us with the proof, we can use the §1 tactic. Click on the tactic's name\non the right to see what it does.": + "", + "Multiplication is distributive over addition on the left.\nIn other words, for all natural numbers §0, §1 and §2, we have\n§3.": + "", + "Multiplication is commutative.": "", + "Multiplication is associative.\nIn other words, for all natural numbers §0, §1 and §2, we have\n§3.": + "", + "Multiplication distributes\nover addition on the left.\n\n§0 is the proof that §1.": + "", + "Multiplication World": "", + "Mathematicians sometimes debate what §0 is;\nthe answer depends, of course, on your definitions. In this\ngame, §1. See if you can prove it.\n\nCheck out the *Pow* tab in your list of theorems\nto see the new proofs which are available.": + "", + "Mathematicians sometimes argue that §0 is also\na good convention. But it is not a good convention in this\ngame; all the later levels come out beautifully with the\nconvention that §1.": + "", + "Many people find §0 easy, but some find §1 confusing.\nIf you find it confusing, then just argue forwards.\n\nYou can read more about the §2 tactic in its documentation, which you can view by\nclicking on the tactic in the list on the right.": + "", + "Let's warm up with an easy one, which works even if §0.": "", + "Let's see if you can use the tactics we've learnt to prove §0.\nTry this one by yourself; if you need help then click on \"Show more help!\".": + "", + "Let's now move on to a more efficient approach to questions\ninvolving numerals, such as §0.": + "", + "Let's now make our own tactic to do this.": "", + "Let's now learn about Peano's second axiom for addition, §0.": "", + "Let's now begin our approach to the final boss,\nby proving some more subtle facts about powers.": + "", + "Let's first get §0 into the form §1 so we can\napply §2. First execute §3\nto change the 4 on the right hand side.": + "", + "Lean's simplifier, §0, is \"§1 on steroids\". It will rewrite every lemma\ntagged with §2 and every lemma fed to it by the user, as much as it can.\n\nThis level is not a level which you want to solve by hand.\nGet the simplifier to solve it for you.": + "", + "It's all over! You have proved a theorem which has tripped up\nschoolkids for generations (some of them think §0:\nthis is \"the freshman's dream\").\n\nHow many rewrites did you use? I can do it in 12.\n\nBut wait! This boss is stirring...and mutating into a second more powerful form!": + "", + "It's \"intuitively obvious\" that there are no numbers less than zero,\nbut to prove it you will need a result which you showed in advanced\naddition world.": + "", + "Induction on §0 or §1 -- it's all the same in this one.": "", + "Induction on §0 is the most troublesome, then §1,\nand §2 is the easiest.": + "", + "In this world we'll learn how to prove theorems of the form §0.\nIn other words, how to prove theorems of the form \"if §1 is true, then §2 is true.\"\nTo do that we need to learn some more tactics.\n\nThe §3 tactic can be used to close a goal which is exactly one of\nthe hypotheses. It takes the name of the hypothesis as argument: §4.": + "", + "In this world we define §0 and prove standard facts\nabout it, such as \"if §1 and §2 then §3.\"\n\nThe definition of §4 is \"there exists a number §5\nsuch that §6. \" So we're going to have to learn\na tactic to prove \"exists\" theorems, and another one\nto use \"exists\" hypotheses.\n\nClick on \"Start\" to proceed.": + "", + "In this world I will mostly leave you on your own.\n\n§0 is the theorem that §1.": + "", + "In this level, we see inequalities as *hypotheses*. We have not seen this before.\nThe §0 tactic can be used to take §1 apart.": + "", + "In this level, the hypothesis §0 is an *implication*. It says\nthat *if* §1 *then* §2. We can use this\nhypothesis with the §3 tactic. Remember you can click on\n§4 or any other tactic on the right to see a detailed explanation\nof what it does, with examples.": + "", + "In this level we're going to prove that §0, where §1 is a secret natural number.\n\nWait, don't we already know that? No! We know that §2, but that's §3.\nThis is §4, which is different.\n\nThe difficulty with proving §5 is that we do not have a *formula* for\n§6 in general, we can only use §7 and §8 once\nwe know whether §9 is §10 or a successor. The §11 tactic splits into these two cases.\n\nThe base case will require us to prove §12, and the inductive step\nwill ask us to show that if §13 then §14. Because\n§15 and successor are the only way to make numbers, this will cover all the cases.\n\nSee if you can do your first induction proof in Lean.\n\n(By the way, if you are still in the \"Editor mode\" from the last world, you can swap\nback to \"Typewriter mode\" by clicking the §16 button in the top right.)": + "", + "In this level we prove that if §0 and §1 then §2. It is tricky, for\nseveral reasons. One of these is that\nwe need to introduce a new idea: we will need to understand the concept of\nmathematical induction a little better.\n\nStarting with §3 is too naive, because in the inductive step\nthe hypothesis is §4 but what we know is §5,\nso the induction hypothesis does not apply!\n\nAssume §6 is fixed. The actual statement we want to prove by induction on §7 is\n\"for all §8, if §9 then §10\". This *can* be proved by induction,\nbecause we now have the flexibility to change §11.": + "", + "In this level the *goal* is §0 but to help us we\nhave an *assumption* §1 saying that §2. Check that you can see §3 in\nyour list of assumptions. Lean thinks of §4 as being a secret proof of the\nassumption, rather like §5 is a secret number.\n\nBefore we can use §6, we have to \"substitute in for §7\".\nWe do this in Lean by *rewriting* the goal with §8,\nusing the §9 tactic.": + "", + "In this game you recreate the natural numbers §0 from the Peano axioms,\nlearning the basics about theorem proving in Lean.\n\nThis is a good first introduction to Lean!": + "", + "In the next level, we'll do the same proof but backwards.": "", + "In the last level, we manipulated the hypothesis §0\n until it became the goal §1. In this level we'll manipulate\n the goal until it becomes our hypothesis! In other words, we\n will \"argue backwards\". The §2 tactic can do this too.\n Again I will walk you through this one (assuming you're in\n command line mode).": + "", + "In the \"base case\" we have a hypothesis §0, and you can deduce anything\nfrom a false statement. The §1 tactic will close this goal.": + "", + "In some later worlds, we're going to see some much nastier levels,\nlike §0.\nBrackets need to be moved around, and variables need to be swapped.\n\nIn this level, §1,\nlet's forget about the brackets and just think about\nthe variable order.\nTo turn §2 into §3 we need to swap §4 and §5,\nand then swap §6 and §7. But this is easier than you\nthink with §8.": + "", + "In order to use the tactic §0 you can enter it in the text box\nunder the goal and hit \"Execute\".": + "", + "In Advanced Addition World we will prove some basic\naddition facts such as §0. The theorems\nproved in this world will be used to build\na theory of inequalities in §1 World.\n\nClick on \"Start\" to proceed.": + "", + "Implication World": "", + "Implementing the algorithm for equality of naturals, and the proof that it is correct,\nlooks like this:\n\n§0\n\nThis Lean code is a formally verified algorithm for deciding equality\nbetween two naturals. I've typed it in already, behind the scenes.\nBecause the algorithm is formally verified to be correct, we can\nuse it in Lean proofs. You can run the algorithm with the §1 tactic.": + "", + "If §0, §1 and §2 are numbers, we have\n§3": "", + "If §0, then §1.": "", + "If §0 then §1.": "", + "If §0 then §1 or §2 or §3.": "", + "If §0 then either §1 or §2.": "", + "If §0 or §1, then §2 or §3.": "", + "If §0 is a proof of §1 then §2 will\nturn §3s into §4s. But what if we want to\nturn §5s into §6s? To tell the §7 tactic\nwe want this, we use a left arrow §8. Type\n§9 and then hit the space bar to get this arrow.\n\nLet's prove that §10 is the number after the number\nafter §11 again, this time by changing §12\ninto §13.": + "", + "If §0 is a number, then §1.": "", + "If §0 are numbers, then §1.": "", + "If §0 are arbitrary natural numbers, we have\n§1.": "", + "If §0 and §1, then §2.": "", + "If §0 and §1 then we can deduce a contradiction.": "", + "If §0 and §1 are numbers, then §2 is a proof\nthat §3 implies §4. Click on this theorem in the *Peano*\ntab for more information.\n\nPeano had this theorem as an axiom, but in Algorithm World\nwe will show how to prove it in Lean. Right now let's just assume it,\nand let's prove §5 using it. Again, we will proceed\nby manipulating our hypothesis until it becomes the goal. I will\nwalk you through this level.": + "", + "If §0 and §1 are numbers, then either §2 or §3.": "", + "If §0 and §1 are natural numbers, and §2, then §3.": "", + "If §0 and §1 are arbitrary natural numbers, we have\n§2.": "", + "If §0 and §1 are arbitrary natural numbers, then §2": "", + "If §0 and we know that §1 then we can deduce §2.": "", + "If you §0 the wrong number, you get stuck with a goal you can't prove.\nWhat number will you §1 here?": + "", + "If you have completed Algorithm World then you can use the §0 tactic\nhere. If not then I'll talk you through a manual approach.": + "", + "If the goal is not *exactly* a hypothesis, we can sometimes\nuse rewrites to fix things up.": + "", + "How should we define §0? Just like addition, we need to give definitions\nwhen §1 and when §2 is a successor.\n\nThe zero case is easy: we define §3 to be §4. Now say we know\n§5. What should §6 be? Well, that's §7 §8s,\nso it should be §9.\n\nHere are the definitions in Lean.\n\n * §10\n * §11\n\nIn this world, we must not only prove facts about multiplication like §12,\nwe must also prove facts about how multiplication interacts with addition, like §13.\nLet's get started.": + "", + "How about this for a proof:\n§0": "", + "How about this for a proof:\n\n§0\n\nThat's the end of Advanced Addition World! You'll need these theorems\nfor the next world, §1 World. Click on \"Home\" to access it.": + "", + "Here's what I was thinking of:\n§0": "", + "Here's the short proof:\n§0\nThis works because, given §1,\nthe argument is reduced to pure logic.": + "", + "Here's my solution:\n§0\n\nInducting on §1 or §2 also works, but might take longer.": + "", + "Here's my solution:\n§0": "", + "Here's my proof:\n§0\n\nIf you solved this level then you should be fine with the next level!": + "", + "Here's my proof:\n§0\n\nEven though Lean is a theorem prover, right now it's pretty clear that we have not\ndeveloped enough material to make it an adequate calculator. In Algorithm\nWorld, a more computer-sciency world, we will develop machinery which makes\nquestions like this much easier, and goals like §1 feasible.\nAlternatively you can do more mathematics in Advanced Addition World, where we prove\nthe lemmas needed to get a working theory of inequalities. Click \"Home\" and\ndecide your route.": + "", + "Here's my proof:\n§0\n\nA passing mathematician remarks that with antisymmetry as well,\nyou have proved that §1 is a *partial order* on §2.\n\nThe boss level of this world is to prove\nthat §3 is a total order. Let's learn two more easy tactics\nfirst.": + "", + "Here's my proof:\n§0": "", + "Here's a two-liner:\n§0\n\nThis works because §1 is a proof of §2.": "", + "Here's a two-line proof:\n§0": "", + "Here's a proof using §0:\n§1\n\nand here's an even shorter one using the same idea:\n§2\n\nAlternatively you can just prove it by induction on §3:\n\n§4": + "", + "Here's a completely backwards proof:\n§0": "", + "Here we want to deal with the cases §0 and §1 separately,\nso start with §2.": + "", + "Here we begin to\ndevelop an algorithm which, given two naturals §0 and §1, returns the answer\nto \"does §2?\"\n\nHere is the algorithm. First note that §3 and §4 are numbers, and hence\nare either §5 or successors.\n\n*) If §6 and §7 are both §8, return \"yes\".\n\n*) If one is §9 and the other is §10, return \"no\".\n\n*) If §11 and §12, then return the answer to \"does §13?\"\n\nOur job now is to *prove* that this algorithm always gives the correct answer. The proof that\n§14 is §15. The proof that §16 is §17, and the proof\nthat §18 is §19. The proof that if §20 then\n§21 is §22 and then §23. This level is a proof of the one\nremaining job we have to do: if §24 then §25.": + "", + "Here is an example proof of 2+2=4 showing off various techniques.\n\n§0\n\nOptional extra: you can run this proof yourself. Switch the game into \"Editor mode\" by clicking\non the §1 button in the top right. You can now see your proof\nwritten as several lines of code. Move your cursor between lines to see\nthe goal state at any point. Now cut and paste your code elsewhere if you\nwant to save it, and paste the above proof in instead. Move your cursor\naround to investigate. When you've finished, click the §2 button in the top right to\nmove back into \"Typewriter mode\".\n\nYou have finished tutorial world!\nClick \"Home\" to go back to the\noverworld, and select Addition World, where you will learn\nabout the §3 tactic.": + "", + "Having to rearrange variables manually using commutativity and\nassociativity is very tedious. We start by reminding you of this. §0\nis a key component in the first algorithm which we'll explain, but we need\nto prove it manually.\n\nRemember that you can do precision commutativity rewriting\nwith things like §1. And remember that\n§2 means §3.": + "", + "Good luck!\n\n One last hint. If §0 then §1 will change *all* §2s into §3s.\n If you only want to change one of them, say the 3rd one, then use\n §4.": + "", + "For any natural number §0, we have §1.": "", + "For all numbers §0, §1.": "", + "For all numbers §0 and §1, we have\n§2": "", + "For all naturals §0, §1.": "", + "For all naturals §0, §1, §2, we have §3.": "", + "For all naturals §0 §1 §2 and §3, we have\n§4": "", + "For all natural numbers §0, we have §1.": "", + "For all natural numbers §0, we have\n§1.": "", + "For all natural numbers §0 and §1, we have\n§2.": "", + "First execute §0 to replace the §1 with §2.": "", + "Finally use a targeted §0 to switch §1 and §2.": "", + "Fermat's Last Theorem": "", + "Every number in Lean is either §0 or a successor. We know how to add §1,\nbut we need to figure out how to add successors. Let's say we already know\nthat §2. What should the answer to §3 be? Well,\n§4 is one bigger than §5, so §6 should be §7,\nthe number one bigger than §8. More generally §9 should\nbe §10. Let's add this as a lemma.\n\n* §11\n\nIf you ever see §12 in your goal, §13 is\nnormally a good idea.\n\nLet's now prove that §14. Figure out how to get §15 into\nthe picture, and then §16. Switch between the §17 (addition) and\n§18 (numerals) tabs under \"Theorems\" on the right to\nsee which proofs you can rewrite.": + "", + "Do that again!\n\n§0 tries to fill in\nthe arguments to §1 (finding §2) then it replaces all occurrences of\n§3 it finds. Therefor, it did not rewrite §4, yet.": + "", + "Did you use induction on §0?\nHere's a two-line proof of §1 which uses §2.\nIf you want to inspect it, you can go into editor mode by clicking §3 in the top right\nand then just cut and paste the proof and move your cursor around it\nto see the hypotheses and goal at any given point\n(although you'll lose your own proof this way). Click §4 to get\nback to command line mode.\n§5": + "", + "Dealing with §0": "", + "Congratulations! You've finished Algorithm World. These algorithms\nwill be helpful for you in Even-Odd World (when someone gets around to\nimplementing it).": + "", + "Congratulations! You have proved Fermat's Last Theorem!\n\nEither that, or you used magic...": + "", + "Congratulations! You completed your first verified proof!\n\nRemember that §0 is a *tactic*. If you ever want information about the §1 tactic,\nyou can click on §2 in the list of tactics on the right.\n\nNow click on \"Next\" to learn about the §3 tactic.": + "", + "Concretely: §0.": "", + "Can you take it from here? Click on \"Show more help!\" if you need a hint.": + "", + "Can you take it from here? (note: if you try §0 again, it will\ntake you back to where you started!)": + "", + "Can you take it from here?": "", + "Can you now change the goal into §0?": "", + "At this point you see the term §0, so you can use the\ninduction hypothesis with §1.": + "", + "Assuming §0, we have §1.": "", + "Assuming §0 and §1, we have §2.": "", + "As warm-up for §0 let's prove §1. To do this we need to\nintroduce Peano's last axiom §2, a proof that §3.\nTo learn about this result, click on it in the list of lemmas on the right.": + "", + "Arguing backwards": "", + "Applying a proof of §0 to the *goal* changes §1 to §2.\nNow try §3 to make the goal more like the hypothesis.": + "", + "And now §0": "", + "And now we've deduced what we wanted to prove: the goal is one of our assumptions.\nFinish the level with §0.": + "", + "And finally §0.": "", + "An algorithm for equality": "", + "Although §0 in this game, §1 if §2, i.e., if\n§3 is a successor.": "", + "Algorithm World": "", + "Advanced Multiplication World": "", + "Advanced Addition World": "", + "Advanced *Addition* World proved various implications\ninvolving addition, such as §0 and §1.\nThese lemmas were used to prove basic facts about ≤ in ≤ World.\n\nIn Advanced Multiplication World we prove analogous\nfacts about multiplication, such as §2, and\n§3 (assuming §4 in the latter result). This will prepare\nus for Divisibility World.\n\nMultiplication World is more complex than Addition World. In the same\nway, Advanced Multiplication world is more complex than Advanced Addition\nWorld. One reason for this is that certain intermediate results are only\ntrue under the additional hypothesis that one of the variables is non-zero.\nThis causes some unexpected extra twists.": + "", + "Addition is distributive over multiplication.\nIn other words, for all natural numbers §0, §1 and §2, we have\n§3.": + "", + "Addition World": "", + "Adding zero": "", + "A two-line proof is\n\n§0\n\nWe now have all the tools necessary to set up the basic theory of divisibility of naturals.": + "", + "A proof that §0.": "", + "A passing mathematician remarks that with reflexivity and transitivity out of the way,\nyou have proved that §0 is a *preorder* on §1.": + "", + "A passing mathematician notes that you've proved\nthat the natural numbers are a commutative semiring.\n\nIf you want to begin your journey to the final boss, head for Power World.": + "", + "A passing mathematician congratulates you on proving that naturals\nare an additive commutative monoid.\n\nLet's practice using §0 and §1 in one more level,\nbefore we leave addition world.": + "", + "2+2=4": "", + "2 + 2 ≠ 5 is boring to prove in full, given only the tools we have currently.\nTo make it a bit less painful, I have unfolded all of the numerals for you.\nSee if you can use §0 and §1 to prove this.": + "", + "2 + 2 ≠ 5": "", + "1 ≠ 0": "", + "0 ≤ x": "", + "*Game version: 4.3*\n\n*Recent additions: bug fixes*\n\n## Progress saving\n\nThe game stores your progress in your local browser storage.\nIf you delete it, your progress will be lost!\n\nWarning: In most browsers, deleting cookies will also clear the local storage\n(or \"local site data\"). Make sure to download your game progress first!\n\n## Credits\n\n* **Creators:** Kevin Buzzard, Jon Eugster\n* **Original Lean3-version:** Kevin Buzzard, Mohammad Pedramfar\n* **Game Engine:** Alexander Bentkamp, Jon Eugster, Patrick Massot\n* **Additional levels:** Sian Carey, Ivan Farabella, Archie Browne.\n* **Additional thanks:** All the student beta testers, all the schools\nwho invited Kevin to speak, and all the schoolkids who asked him questions\nabout the material.\n\n## Resources\n\n* The [Lean Zulip chat](https://leanprover.zulipchat.com/) forum\n* [Original Lean3 version](https://github.com/ImperialCollegeLondon/natural_number_game/) (no longer maintained)\n\n## Problems?\n\nPlease ask any questions about this game in the\n[Lean Zulip chat](https://leanprover.zulipchat.com/) forum, for example in\nthe stream \"New Members\". The community will happily help. Note that\nthe Lean Zulip chat is a professional research forum.\nPlease use your full real name there, stay on topic, and be nice. If you're\nlooking for somewhere less formal (e.g. you want to post natural number\ngame memes) then head on over to the [Lean Discord](https://discord.gg/WZ9bs9UCvx).\n\nAlternatively, if you experience issues / bugs you can also open github issues:\n\n* For issues with the game engine, please open an\n[issue at the lean4game](https://github.com/leanprover-community/lean4game/issues) repo.\n* For issues about the game's content, please open an\n[issue at the NNG](https://github.com/hhu-adam/NNG4/issues) repo.": + "", + "## The birth of number.\n\nNumbers in Lean are defined by two rules.\n\n* §0 is a number.\n* If §1 is a number, then the *successor* §2 of §3 is a number.\n\nThe successor of §4 means the number after §5. Let's learn to\ncount, and name a few small numbers.\n\n## Counting to four.\n\n§6 is a number, so §7 is a number. Let's call this new number §8.\nSimilarly let's define §9, §10 and §11.\nThis gives us plenty of numbers to be getting along with.\n\nThe *proof* that §12 is called §13.\nCheck out the \"012\" tab in the list of lemmas on the right\nfor this and other proofs.\n\nLet's prove that §14 is the number after the number after zero.": + "", + "## Summary\n\n§0 repeatedly applies the tactic §1\nto the goal. You don't need to use this\ntactic, it just speeds things up sometimes.\n\n## Example\n\n§2 will turn the goal\n§3\ninto the goal\n§4.\n\"\n\nTacticDoc nth_rewrite \"\n## Summary\n\nIf §5 and there are several §6s in the goal, then\n§7 will just change the third §8 to a §9.\n\n## Example\n\nIf the goal is §10 then §11\nwill change the goal to §12. In contrast, §13\nwill change the goal to §14.": + "", + "## Summary\n\n§0 repeatedly applies the tactic §1\nto the goal. You don't need to use this\ntactic, it just speeds things up sometimes.\n\n## Example\n\n§2 will turn the goal\n§3\ninto the goal\n§4.": + "", + "## Summary\n\n§0 proves goals of the form §1.\n\nIn other words, the §2 tactic will close any goal of the\nform §3 if §4 and §5 are *identical*.\n\n§6 is short for \\\\\"reflexivity (of equality)\\\\\".\n\n## Example:\n\nIf the goal looks like this:\n\n§7\n\nthen §8 will close it. But if it looks like §9 then §10 won't work, because even\nthough §11 and §12 are always equal as *numbers*, they are not equal as *terms*.\nThe only term which is identical to §13 is §14.\n\n## Details\n\n§15 is short for \\\\\"reflexivity of equality\\\\\".\n\n## Game Implementation\n\n*Note that our §16 is weaker than the version used in core Lean and §17,\nfor pedagogical purposes; mathematicians do not distinguish between propositional\nand definitional equality because they think about definitions in a different way\nto type theorists (§18 and §19 are both \\\\\"facts\\\\\" as far\nas mathematicians are concerned, and who cares what the definition of addition is).*": + "", + "## Summary\n\nThe §0 tactic will change a goal or hypothesis of\nthe form §1 to §2. It will also work on §3\nand on §4.\n\n### Example\n\nIf the goal is §5 then §6 will change it to §7.\n\n### Example\n\nIf §8 then §9 will change §10 to §11.": + "", + "## Summary\n\nThe §0 tactic makes progress with goals which claim something *exists*.\nIf the goal claims that some §1 exists with some property, and you know\nthat §2 will work, then §3 will make progress.\n\nBecause §4 is notation for \\\\\"there exists §5 such that §6\\\\\",\nyou can make progress on goals of the form §7 by §8ing the\nnumber which is morally §9 (i.e. §10)\n\nAny of the following examples is possible assuming the type of the argument passed to the §11 function is accurate:\n\n- §12\n- §13\n- §14": + "", + "## Summary\n\nIf §0 is an object, and the goal mentions §1, then §2\nattempts to prove the goal by induction on §3, with the inductive\nvariable in the successor case being §4, and the inductive hypothesis being §5.\n\n### Example:\nIf the goal is\n§6\n\nthen\n\n§7\n\nwill turn it into two goals. The first is §8;\nthe second has an assumption §9 and goal\n§10.\n\nNote that you must prove the first\ngoal before you can access the second one.": + "", + "## Summary\n\nIf §0 is a proof that §1, and §2 is a proof of §3,\nthen §4 will change §5 to a proof of §6. The idea is that if\nyou know §7 is true, then you can deduce from §8 that §9 is true.\n\nIf the *goal* is §10, then §11 will \\\\\"argue backwards\\\\\" and change the\ngoal to §12. The idea here is that if you want to prove §13, then by §14\nit suffices to prove §15, so you can reduce the goal to proving §16.\n\n### Example:\n\n§17 is a proof that §18.\n\nSo if you have a hypothesis §19\nthen §20 will change §21 to §22.\nYou could write §23\nbut Lean is smart enough to figure out the inputs to §24.\n\n### Example\n\nIf the goal is §25, then §26 will turn the\ngoal into §27.": + "", + "## Summary\n\nIf §0 is a proof of an equality §1, then §2 will change\nall §3s in the goal to §4s. It's the way to \\\\\"substitute in\\\\\".\n\n## Variants\n\n* §5 (changes §6s to §7s; get the back arrow by typing §8 or §9.)\n\n* §10 (a sequence of rewrites)\n\n* §11 (changes §12s to §13s in hypothesis §14)\n\n* §15 (changes §16s to §17s in two hypotheses and the goal;\nget the §18 symbol with §19.)\n\n* §20 will keep changing §21 to §22\nuntil there are no more matches for §23.\n\n* §24 will change only the second §25 in the goal to §26.\n\n### Example:\n\nIf you have the assumption §27 and your goal is\n§28\n\nthen\n\n§29\n\nwill change the goal into §30, and then\n\n§31\n\nwill change the goal into §32, which\ncan be solved with §33.\n\n### Example:\n\nYou can use §34 to change a hypothesis as well.\nFor example, if you have two hypotheses\n§35\nthen §36 will turn §37 into §38.\n\n## Common errors\n\n* You need the square brackets. §39 is never correct.\n\n* If §40 is not a *proof* of an *equality* (a statement of the form §41),\nfor example if §42 is a function or an implication,\nthen §43 is not the tactic you want to use. For example,\n§44 is never correct: §45 is the theorem *statement*,\nnot the proof. If §46 is the proof, then §47 will work.\n\n## Details\n\nThe §48 tactic is a way to do \\\\\"substituting in\\\\\". There\nare two distinct situations where you can use this tactic.\n\n1) Basic usage: if §49 is an assumption or\nthe proof of a theorem, and if the goal contains one or more §50s, then §51\nwill change them all to §52s. The tactic will error\nif there are no §53s in the goal.\n\n2) Advanced usage: Assumptions coming from theorem proofs\noften have missing pieces. For example §54\nis a proof that §55 because §56 really is a function,\nand §57 is the input. In this situation §58 will look through the goal\nfor any subterm of the form §59, and the moment it\nfinds one it fixes §60 to be §61 then changes all §62s to §63s.\n\nExercise: think about why §64 changes the term\n§65 to\n§66\n\nIf you can't remember the name of the proof of an equality, look it up in\nthe list of lemmas on the right.\n\n## Targeted usage\n\nIf your goal is §67 and you want to rewrite §68\nto §69, then §70 will not work because Lean finds another\naddition first and swaps those inputs instead. Use §71 to\nguarantee that Lean rewrites §72 to §73. This works because\n§74 is a proof that §75, §76 is a proof\nthat §77, and §78 is a proof that §79.\n\nIf §80 then §81 will turn all §82s into §83s.\nIf you only want to change the 37th occurrence of §84\nto §85 then do §86.": + "", + "## Summary\n\nIf §0 is a number, then §1 will break the goal into two goals,\none with §2 and the other with §3.\n\nIf §4 is a proof (for example a hypothesis), then §5 will break the\nproof up into the pieces used to prove it.\n\n## Example\n\nIf §6 is a number, then §7 will break the goal into two goals,\none with §8 replaced by 0 and the other with §9 replaced by §10. This\ncorresponds to the mathematical idea that every natural number is either §11\nor a successor.\n\n## Example\n\nIf §12 is a hypothesis, then §13 will turn one goal\ninto two goals, one with a hypothesis §14 and the other with a\nhypothesis §15.\n\n## Example\n\nIf §16 is a hypothesis, then §17 will turn one goal into no goals,\nbecause there are no ways to make a proof of §18! And if you have no goals left,\nyou have finished the level.\n\n## Example\n\nIf §19 is a hypothesis, then §20 will create a new number §21\nand a proof §22. This is because the *definition* of §23 is\n§24.": + "", + "## Summary\n\nIf §0 and there are several §1s in the goal, then\n§2 will just change the third §3 to a §4.\n\n## Example\n\nIf the goal is §5 then §6\nwill change the goal to §7. In contrast, §8\nwill change the goal to §9.": + "", + "## Summary\n\nIf the goal is §0, then §1 will introduce §2 as a hypothesis,\nand change the goal to §3. Mathematically, it says that to prove §4,\nwe can assume §5 and then prove §6.\n\n### Example:\n\nIf your goal is §7 (the way Lean writes §8)\nthen §9 will give you a hypothesis §10 named §11, and the goal\nwill change to §12.": + "", + "## Summary\n\nIf the goal is a statement §0, then §1 will close the goal if §2 is a proof of §3.\n\n### Example\n\nIf the goal is §4 and you have a hypothesis §5\nthen §6 will solve the goal.\n\n### Example\n\nIf the goal is §7 then §8 will close the goal.\n\n### Exact needs to be exactly right\n\nNote that §9 will *not work* in the previous example;\nfor §10 to work, §11 has to be *exactly* a proof of the goal.\n§12 is a proof of §13 or, if you like,\na proof of §14 where §15 needs to be supplied by the user.\nThis is in contrast to §16 and §17, which will \\\\\"guess the inputs\\\\\"\nif necessary. If the goal is §18 then §19\nand §20 will both change the goal to §21,\nbecause §22 guesses the input to the function §23.": + "", + "## Precision rewriting\n\nIn the last level, there was §0 and §1,\nand §2 changed the first one it saw,\nwhich was §3. Let's learn how to tell Lean\nto change §4 first by giving §5 an\nexplicit input.": + "", + "# Welcome to the Natural Number Game\n#### An introduction to mathematical proof.\n\nIn this game, we will build the basic theory of the natural\nnumbers §0 from scratch. Our first goal is to prove\nthat §1. Next we'll prove that §2.\nAnd at the end we'll see if we can prove Fermat's Last Theorem.\nWe'll do this by solving levels of a computer puzzle game called Lean.\n\n# Read this.\n\nLearning how to use an interactive theorem prover takes time.\nTests show that the people who get the most out of this game are\nthose who read the help texts like this one.\n\nTo start, click on \"Tutorial World\".\n\nNote: this is a new Lean 4 version of the game containing several\nworlds which were not present in the old Lean 3 version. More new worlds\nsuch as Strong Induction World, Even/Odd World and Prime Number World\nare in development; if you want to see their state or even help out, checkout\nout the [issues in the github repo](https://github.com/leanprover-community/NNG4/issues).\n\n## More\n\nClick on the three lines in the top right and select \"Game Info\" for resources,\nlinks, and ways to interact with the Lean community.": + "", + "# Summary\nThe §0 tactic changes a goal of §1 into a goal of §2.\nUse it when your hypotheses guarantee that the reason that §3\nis true is because in fact §4 is true.\n\nInternally this tactic is just §5ing a theorem\nsaying that §6\n\nNote that this tactic can turn a solvable goal into an unsolvable\none.": + "", + "# Summary\n\n§0 will solve the goal §1.": "", + "# Summary\n\n§0 will attempt to solve a goal if it can find an algorithm which it\ncan run to solve it.\n\n## Example\n\nA term of type §1 is an algorithm to decide whether two naturals\nare equal or different. Hence, once this term is made and made into an §2,\nthe §3 tactic can use it to solve goals of the form §4 or §5.": + "", + "# Summary\n\nThe §0 tactic will solve any goal which can be solved purely by logic (that is, by\ntruth tables).\n\n## Details\n\n§1 *does not do magic*! It doesn't know *anything* about addition or multiplication,\nit doesn't even know §2. The only things that §3 knows about numbers\nare firstly that §4 and secondly that §5, §6, §7 and so on.\nWhat §8's strength is, is *logic*. If you have a hypothesis §9\nand another hypothesis §10 and your goal is §11 then §12 will\nsolve this goal, because to solve that goal you don't need to know any facts\nabout inequalities or addition, all you need to know is the rules of logic.\n\n## Example\n\nIf you have §13 as a hypothesis, then §14 will solve\nthe goal. This is because a false hypothesis implies any hypothesis.\n\n## Example\n\nIf your goal is §15, then §16 will solve the goal.\n\n## Example\n\nIf you have two hypotheses §17 and §18 then §19 will\nsolve the goal because it can prove §20 from your hypotheses, and thus\nprove the goal (as §21 implies anything).\n\n## Example\n\nIf you have one hypothesis §22 then §23 will solve the goal because\n§24 is smart enough to know that §25 is true, which gives the contradiction we seek.\n\n## Example\n\nIf you have a hypothesis §26 then §27 will solve the goal, because\n§28 knows §29 and this is enough to prove §30, which implies any goal.\n\n## Example\n\nIf you have a hypothesis of the form §31 and your goal is §32, then\n§33 will solve the goal, because the goal is logically equivalent to the hypothesis.\nIf you switch the goal and hypothesis in this example, §34 would solve it too.": + "", + "# Summary\n\nThe §0 tactic can be used to add new hypotheses to a level, but of course\nyou have to prove them.\n\n\n## Example\n\nThe simplest usage is like this. If you have §1 in your context and you execute\n\n§2\n\nthen you will get a new goal §3 to prove, and after you've proved\nit you will have a new hypothesis §4 in your original goal.\n\n## Example\n\nIf you already have a proof of what you want to §5, you\ncan just create it immediately. For example, if you have §6 and §7\nnumber objects, then\n\n§8\n\nwill directly add a new hypothesis §9\nto the context, because you just supplied the proof of it (§10).\n\n## Example\n\nIf you have a proof to hand, then you don't even need to state what you\nare proving. For example\n\n§11\n\nwill add §12 as a hypothesis.": + "", + "# Summary\n\nIf you have a hypothesis\n\n§0\n\nand goal\n\n§1\n\nthen §2 replaces the set-up with its so-called \\\\\"contrapositive\\\\\":\na hypothesis\n\n§3\n\nand goal\n\n§4.": + "", + "# Statement\n\nIf §0 and §1 are numbers, then\n§2 is the proof that\n§3.\n\n## More technical details\n\nThere are other ways to think about §4.\n\nYou can think about §5 itself as a function which takes two\nnumbers §6 and §7 as input, and outputs a proof of\n§8.\n\nYou can think of §9 itself as a proof; it is the proof\nthat §10 is an injective function. In other words,\n§11 is a proof of\n§12.\n\n§13 was postulated as an axiom by Peano, but\nin Lean it can be proved using §14, a mathematically\npathological function.": + "", + "# Read this first\n\nEach level in this game involves proving a mathematical theorem (the \"Goal\").\nThe goal will be a statement about *numbers*. Some numbers in this game have known values.\nThose numbers have names like §0. Other numbers will be secret. They're called things\nlike §1 and §2. We know §3 is a number, we just don't know which one.\n\nIn this first level we're going to prove the theorem that §4.\nYou can see §5 in the *Objects* below, which means that §6 and §7\nare numbers.\n\nWe solve goals in Lean using *Tactics*, and the first tactic we're\ngoing to learn is called §8, which proves all theorems of the form §9.\n\nProve that §10 by executing the §11 tactic.": + "", + "# Overview\n\nOur home-made tactic §0 will solve arbitrary goals of\nthe form §1.": + "", + "# Overview\n\nLean's simplifier, §0, will rewrite every lemma\ntagged with §1 and every lemma fed to it by the user, as much as it can.\nFurthermore, it will attempt to order variables into an internal order if fed\nlemmas such as §2, so that it does not go into an infinite loop.": + ""} \ No newline at end of file diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po new file mode 100644 index 00000000..7645207c --- /dev/null +++ b/.i18n/ja/Game.po @@ -0,0 +1,4961 @@ +msgid "" +msgstr "" +"Project-Id-Version: Game v4.23.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-04-13\n" +"Last-Translator: \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"PO-Revision-Date: 2026-04-13 14:32+0900\n" +"MIME-Version: 1.0\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: Game.Levels.LessOrEqual.L10le_one +msgid "x ≤ 1" +msgstr "" + +#. §0: `tauto` +#: Game.Levels.AdvMultiplication.L06mul_right_eq_one +msgid "§0 is good enough to solve this goal." +msgstr "" + +#: Game.Levels.Multiplication.L09mul_assoc +msgid "mul_assoc" +msgstr "" + +#. §0: $a$ +#. §1: $b$ +#. §2: `succ_inj a b` +#. §3: $ (\\operatorname{succ}(a) = \\operatorname{succ}(b)) \\implies a=b$ +#. §4: `succ_inj` +#. §5: `succ_inj` +#. §6: $$a$$ +#. §7: $$b$$ +#. §8: $ ( \\operatorname{succ}(a) = \\operatorname{succ}(b)) \\implies a=b$ +#. §9: `succ_inj` +#. §10: `succ` +#. §11: `succ_inj` +#. §12: $\\forall a, b \\in \\mathbb{N}, ( \\operatorname{succ}(a) = \\operatorname{succ}(b)) \\implies a=b$ +#. §13: `succ_inj` +#. §14: `pred` +#: Game.Levels.Implication.L04succ_inj +msgid "" +"# Statement\n" +"\n" +"If §0 and §1 are numbers, then\n" +"§2 is the proof that\n" +"§3.\n" +"\n" +"## More technical details\n" +"\n" +"There are other ways to think about §4.\n" +"\n" +"You can think about §5 itself as a function which takes two\n" +"numbers §6 and §7 as input, and outputs a proof of\n" +"§8.\n" +"\n" +"You can think of §9 itself as a proof; it is the proof\n" +"that §10 is an injective function. In other words,\n" +"§11 is a proof of\n" +"§12.\n" +"\n" +"§13 was postulated as an axiom by Peano, but\n" +"in Lean it can be proved using §14, a mathematically\n" +"pathological function." +msgstr "" + +#. §0: $a, b$ +#. §1: $ \\operatorname{succ}(a) + b = \\operatorname{succ}(a + b)$ +#: Game.Levels.Addition.L02succ_add +msgid "" +"For all natural numbers §0, we have\n" +"§1." +msgstr "" + +#. §0: `h` +#. §1: `X = Y` +#. §2: `rw [h]` +#. §3: `X` +#. §4: `Y` +#. §5: `Y` +#. §6: `X` +#. §7: `rw` +#. §8: `←` +#. §9: `\\l` +#. §10: $2$ +#. §11: $0$ +#. §12: `succ (succ 0)` +#. §13: `2` +#: Game.Levels.Tutorial.L04rw_backwards +msgid "" +"If §0 is a proof of §1 then §2 will\n" +"turn §3s into §4s. But what if we want to\n" +"turn §5s into §6s? To tell the §7 tactic\n" +"we want this, we use a left arrow §8. Type\n" +"§9 and then hit the space bar to get this arrow.\n" +"\n" +"Let's prove that §10 is the number after the number\n" +"after §11 again, this time by changing §12\n" +"into §13." +msgstr "" + +#. §0: `have` +#. §1: `a` +#. §2: `have ha : a = 0` +#. §3: `a = 0` +#. §4: `ha : a = 0` +#. §5: `have` +#. §6: `a` +#. §7: `b` +#. §8: `have h2 : succ a = succ b → a = b := succ_inj a b` +#. §9: `h2 : succ a = succ b → a = b` +#. §10: `succ_inj a b` +#. §11: `have h2 := succ_inj a b` +#. §12: `h2 : succ a = succ b → a = b` +#: Game.Levels.AdvMultiplication.L06mul_right_eq_one +msgid "" +"# Summary\n" +"\n" +"The §0 tactic can be used to add new hypotheses to a level, but of course\n" +"you have to prove them.\n" +"\n" +"\n" +"## Example\n" +"\n" +"The simplest usage is like this. If you have §1 in your context and you " +"execute\n" +"\n" +"§2\n" +"\n" +"then you will get a new goal §3 to prove, and after you've proved\n" +"it you will have a new hypothesis §4 in your original goal.\n" +"\n" +"## Example\n" +"\n" +"If you already have a proof of what you want to §5, you\n" +"can just create it immediately. For example, if you have §6 and §7\n" +"number objects, then\n" +"\n" +"§8\n" +"\n" +"will directly add a new hypothesis §9\n" +"to the context, because you just supplied the proof of it (§10).\n" +"\n" +"## Example\n" +"\n" +"If you have a proof to hand, then you don't even need to state what you\n" +"are proving. For example\n" +"\n" +"§11\n" +"\n" +"will add §12 as a hypothesis." +msgstr "" + +#. §0: `a + b + c` +#. §1: `(a + b) + c` +#. §2: `+` +#: Game.Levels.Addition.L04add_assoc +msgid "" +"Remember that when Lean writes §0, it means §1.\n" +"If you are not sure where the brackets are in an expression, just hover\n" +"your cursor over it and look at what gets highlighted. For example,\n" +"hover over both §2 symbols on the left hand side of the goal and\n" +"you'll see where the invisible brackets are." +msgstr "" + +#. §0: `rw [← one_eq_succ_zero]` +#. §1: `succ 0` +#. §2: `1` +#: Game.Levels.Tutorial.L04rw_backwards +msgid "Try §0 to change §1 into §2." +msgstr "" + +#. §0: `1` +#: Game.Levels.Tutorial.L07add_succ +msgid "Start by unravelling the §0." +msgstr "" + +#: Game.Levels.Tutorial.L02rw +msgid "the rw tactic" +msgstr "" + +#: Game.Levels.AdvMultiplication.L02mul_left_ne_zero +msgid "mul_left_ne_zero" +msgstr "" + +#: Game.Levels.AdvMultiplication.L07mul_ne_zero +msgid "mul_ne_zero" +msgstr "" + +#. §0: `2 + 2 = 4` +#: Game.Levels.Tutorial +msgid "" +"Welcome to tutorial world! In this world we learn the basics\n" +"of proving theorems. The boss level of this world\n" +"is the theorem §0.\n" +"\n" +"You prove theorems by solving puzzles using tools called *tactics*.\n" +"The aim is to prove the theorem by applying tactics\n" +"in the right order.\n" +"\n" +"Let's learn some basic tactics. Click on \"Start\" below\n" +"to begin your quest." +msgstr "" + +#: Game.Levels.AdvAddition.L02add_left_cancel +msgid "add_left_cancel" +msgstr "" + +#: Game.Levels.LessOrEqual.L01le_refl +msgid "You can probably take it from here." +msgstr "" + +#: Game.Levels.Tutorial.L08twoaddtwo +msgid "2+2=4" +msgstr "" + +#. §0: `x ≠ y` +#. §1: `x = y → False` +#: Game.Levels.Implication.L08ne +msgid "Remember, §0 is *notation* for §1." +msgstr "" + +#. §0: `a * b = 0` +#. §1: `a = 0` +#. §2: `b = 0` +#: Game.Levels.AdvMultiplication.L08mul_eq_zero +msgid "" +"This level proves that if §0 then §1 or §2. It is\n" +"logically equivalent to the last level, so there is a very short proof." +msgstr "" + +#. §0: $0+n=n$ +#. §1: $n$ +#. §2: $n+0=n$ +#. §3: `add_zero` +#. §4: `zero_add` +#. §5: `0 + n = n` +#. §6: `0 + n` +#. §7: `add_zero` +#. §8: `add_succ` +#. §9: `n` +#. §10: `0` +#. §11: `induction` +#. §12: `0 + 0 = 0` +#. §13: `0 + d = d` +#. §14: `0 + succ d = succ d` +#. §15: `0` +#. §16: `>_` +#: Game.Levels.Addition.L01zero_add +msgid "" +"In this level we're going to prove that §0, where §1 is a secret natural " +"number.\n" +"\n" +"Wait, don't we already know that? No! We know that §2, but that's §3.\n" +"This is §4, which is different.\n" +"\n" +"The difficulty with proving §5 is that we do not have a *formula* for\n" +"§6 in general, we can only use §7 and §8 once\n" +"we know whether §9 is §10 or a successor. The §11 tactic splits into these " +"two cases.\n" +"\n" +"The base case will require us to prove §12, and the inductive step\n" +"will ask us to show that if §13 then §14. Because\n" +"§15 and successor are the only way to make numbers, this will cover all the " +"cases.\n" +"\n" +"See if you can do your first induction proof in Lean.\n" +"\n" +"(By the way, if you are still in the \"Editor mode\" from the last world, " +"you can swap\n" +"back to \"Typewriter mode\" by clicking the §16 button in the top right.)" +msgstr "" + +#. §0: `∨` +#. §1: `x = 0 ∨ x = 1 ∨ x = 2` +#. §2: `x = 0 ∨ (x = 1 ∨ x = 2)` +#. §3: `left` +#. §4: `right` +#: Game.Levels.LessOrEqual.L11le_two +msgid "" +"We'll need this lemma to prove that two is prime!\n" +"\n" +"You'll need to know that §0 is right associative. This means that\n" +"§1 actually means §2.\n" +"This affects how §3 and §4 work." +msgstr "" + +#: Game.Levels.Power.L01zero_pow_zero +msgid "zero_pow_zero" +msgstr "" + +#. §0: `a` +#. §1: `b` +#: Game.Levels.Addition.L03add_comm +msgid "Induction on §0 or §1 -- it's all the same in this one." +msgstr "" + +#: Game.Levels.Power.L05pow_two +msgid "Note: this lemma will be useful for the final boss!" +msgstr "" + +#: Game.Levels.Implication.L06intro +msgid "intro" +msgstr "" + +#. §0: `apply eq_succ_of_ne_zero at ha` +#: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero +msgid "Use the previous lemma with §0." +msgstr "" + +#: Game.Levels.Multiplication.L09mul_assoc +msgid "" +"A passing mathematician notes that you've proved\n" +"that the natural numbers are a commutative semiring.\n" +"\n" +"If you want to begin your journey to the final boss, head for Power World." +msgstr "" + +#. §0: `pow_pow` +#: Game.Levels.Power.L08pow_pow +msgid "" +"One of the best named levels in the game, a savage §0\n" +"sub-boss appears as the music reaches a frenzy. What\n" +"else could there be to prove about powers after this?" +msgstr "" + +#. §0: $x \\leq 0$ +#. §1: $x=0$ +#: Game.Levels.LessOrEqual.L05le_zero +msgid "If §0, then §1." +msgstr "" + +#. §0: `apply h` +#: Game.Levels.AdvMultiplication.L02mul_left_ne_zero +msgid "Now §0 and you can probably take it from here." +msgstr "" + +#. §0: `mul_comm x y : x * y = y * x` +#. §1: `zero_mul` +#. §2: `mul_zero` +#: Game.Levels.Multiplication.L04mul_comm +msgid "" +"The first sub-boss of Multiplication World is §0.\n" +"\n" +"When you've proved this theorem we will have \"spare\" proofs\n" +"such as §1, which is now easily deducible from §2.\n" +"But we'll keep hold of these proofs anyway, because it's convenient\n" +"to have exactly the right tool for a job." +msgstr "" + +#. §0: `add_right_comm a b c` +#. §1: `(a + b) + c = (a + c) + b` +#. §2: `a + b + c` +#. §3: `(a + b) + c` +#. §4: `a + b + c = a + c + b` +#: Game.Levels.Addition.L05add_right_comm +msgid "" +"§0 is a proof that §1\n" +"\n" +"In Lean, §2 means §3, so this result gets displayed\n" +"as §4." +msgstr "" + +#: Game.Levels.Algorithm.L08decide +msgid "decide" +msgstr "" + +#. §0: `rw [zero_add] at «{h}»` +#. §1: `«{h}»` +#: Game.Levels.Implication.L02exact2 +msgid "" +"You can use §0 to rewrite at §1 instead\n" +"of at the goal." +msgstr "" + +#. §0: `repeat t` +#. §1: `t` +#. §2: `repeat rw [add_zero]` +#. §3: `a + 0 + (0 + (0 + 0)) = b + 0 + 0` +#. §4: `a = b` +#: Game.Levels.Tutorial.L05add_zero +msgid "" +"## Summary\n" +"\n" +"§0 repeatedly applies the tactic §1\n" +"to the goal. You don't need to use this\n" +"tactic, it just speeds things up sometimes.\n" +"\n" +"## Example\n" +"\n" +"§2 will turn the goal\n" +"§3\n" +"into the goal\n" +"§4." +msgstr "" + +#: Game.Levels.Addition +msgid "Addition World" +msgstr "" + +#. §0: `P` +#. §1: `exact h` +#. §2: `h` +#. §3: `P` +#. §4: `x = 37` +#. §5: `h : x = 37` +#. §6: `exact h` +#. §7: `x + 0 = x` +#. §8: `exact add_zero x` +#. §9: `exact add_zero` +#. §10: `exact h` +#. §11: `h` +#. §12: `add_zero` +#. §13: `∀ n, n + 0 = n` +#. §14: `? + 0 = ?` +#. §15: `?` +#. §16: `rw` +#. §17: `apply` +#. §18: `x + 0 = x` +#. §19: `rw [add_zero]` +#. §20: `rw [add_zero x]` +#. §21: `x = x` +#. §22: `rw` +#. §23: `add_zero` +#: Game.Levels.Implication.L01exact +msgid "" +"## Summary\n" +"\n" +"If the goal is a statement §0, then §1 will close the goal if §2 is a proof " +"of §3.\n" +"\n" +"### Example\n" +"\n" +"If the goal is §4 and you have a hypothesis §5\n" +"then §6 will solve the goal.\n" +"\n" +"### Example\n" +"\n" +"If the goal is §7 then §8 will close the goal.\n" +"\n" +"### Exact needs to be exactly right\n" +"\n" +"Note that §9 will *not work* in the previous example;\n" +"for §10 to work, §11 has to be *exactly* a proof of the goal.\n" +"§12 is a proof of §13 or, if you like,\n" +"a proof of §14 where §15 needs to be supplied by the user.\n" +"This is in contrast to §16 and §17, which will \\\\\"guess the inputs\\\\\"\n" +"if necessary. If the goal is §18 then §19\n" +"and §20 will both change the goal to §21,\n" +"because §22 guesses the input to the function §23." +msgstr "" + +#. §0: `apply succ_inj at h` +#. §1: `succ` +#: Game.Levels.Implication.L07intro2 +msgid "Now §0 to cancel the §1s." +msgstr "" + +#. §0: `induction` +#. §1: `x + y = y + x` +#. §2: `rw` +#. §3: `rfl` +#. §4: `induction` +#: Game.Levels.Addition +msgid "" +"Welcome to Addition World! In this world we'll learn the §0 tactic.\n" +"This will enable us to defeat the boss level of this world, namely §1.\n" +"\n" +"The tactics §2, §3 and §4 are the only tactics you'll need to\n" +"beat all the levels in Addition World, Multiplication World, and Power " +"World.\n" +"Power World contains the final boss of the game.\n" +"\n" +"There are plenty more tactics in this game, but you'll only need to know " +"them if you\n" +"want to explore the game further (for example if you decide to 100%\n" +"the game)." +msgstr "" + +#. §0: `(a + a + 1) + (b + b + 1) = (a + b + 1) + (a + b + 1)` +#. §1: `(a + b) + (c + d) = ((a + c) + d) + b` +#. §2: `a+b+c+d` +#. §3: `a+c+d+b` +#. §4: `b` +#. §5: `c` +#. §6: `b` +#. §7: `d` +#. §8: `add_left_comm` +#: Game.Levels.Algorithm.L02add_algo1 +msgid "" +"In some later worlds, we're going to see some much nastier levels,\n" +"like §0.\n" +"Brackets need to be moved around, and variables need to be swapped.\n" +"\n" +"In this level, §1,\n" +"let's forget about the brackets and just think about\n" +"the variable order.\n" +"To turn §2 into §3 we need to swap §4 and §5,\n" +"and then swap §6 and §7. But this is easier than you\n" +"think with §8." +msgstr "" + +#: Game.Levels.Algorithm.L01add_left_comm +msgid "add_left_comm" +msgstr "" + +#. §0: `symm` +#. §1: `X = Y` +#. §2: `Y = X` +#. §3: `X ≠ Y` +#. §4: `X ↔ Y` +#. §5: `2 + 2 = 4` +#. §6: `symm` +#. §7: `4 = 2 + 2` +#. §8: `h : 2 + 2 ≠ 5` +#. §9: `symm at h` +#. §10: `h` +#. §11: `5 ≠ 2 + 2` +#: Game.Levels.Implication.L10one_ne_zero +msgid "" +"## Summary\n" +"\n" +"The §0 tactic will change a goal or hypothesis of\n" +"the form §1 to §2. It will also work on §3\n" +"and on §4.\n" +"\n" +"### Example\n" +"\n" +"If the goal is §5 then §6 will change it to §7.\n" +"\n" +"### Example\n" +"\n" +"If §8 then §9 will change §10 to §11." +msgstr "" + +#. §0: $a$ +#. §1: $b$ +#. §2: $c$ +#. §3: $a(b + c) = ab + ac$ +#: Game.Levels.Multiplication.L07mul_add +msgid "" +"Multiplication is distributive over addition on the left.\n" +"In other words, for all natural numbers §0, §1 and §2, we have\n" +"§3." +msgstr "" + +#. §0: `apply` +#: Game.Levels.Implication.L03apply +msgid "The §0 tactic." +msgstr "" + +#. §0: `exact h1` +#: Game.Levels.Implication.L01exact +msgid "" +"The goal in this level is one of our hypotheses. Solve the goal by executing " +"§0." +msgstr "" + +#. §0: `≤` +#. §1: `a + b = 0` +#. §2: `a = 0` +#. §3: `b = 0` +#. §4: `cases` +#. §5: `cases` +#. §6: `b = 0` +#. §7: `b = succ d` +#. §8: `hd` +#. §9: `induction b with d hd` +#. §10: `cases b with d` +#. §11: `b = 0` +#. §12: `b = succ d` +#. §13: `h : False` +#. §14: `cases h` +#. §15: `False` +#: Game.Levels.AdvAddition.L05add_right_eq_zero +msgid "" +"The next result we'll need in §0 World is that if §1 then §2 and §3.\n" +"Let's prove one of these facts in this level, and the other in the next.\n" +"\n" +"## A new tactic: §4\n" +"\n" +"The §5 tactic will split an object or hypothesis up into the possible ways\n" +"that it could have been created.\n" +"\n" +"For example, sometimes you want to deal with the two cases §6 and §7 " +"separately,\n" +"but don't need the inductive hypothesis §8 that comes with §9.\n" +"In this situation you can use §10 instead. There are two ways to make\n" +"a number: it's either zero or a successor. So you will end up with two " +"goals, one\n" +"with §11 and one with §12.\n" +"\n" +"Another example: if you have a hypothesis §13 then you are done, because a " +"false statement implies\n" +"any statement. Here §14 will close the goal, because there are *no* ways to\n" +"make a proof of §15! So you will end up with no goals, meaning you have " +"proved everything." +msgstr "" + +#. §0: `rfl` +#: Game.Levels.Tutorial.L01rfl +msgid "" +"In order to use the tactic §0 you can enter it in the text box\n" +"under the goal and hit \"Execute\"." +msgstr "" + +#. §0: $x=37$ +#. §1: $y=42$ +#. §2: $y=42$ +#. §3: $x=37$ +#: Game.Levels.LessOrEqual.L07or_symm +msgid "If §0 or §1, then §2 or §3." +msgstr "" + +#: Game.Levels.Algorithm.L09decide2 +msgid "" +"Congratulations! You've finished Algorithm World. These algorithms\n" +"will be helpful for you in Even-Odd World (when someone gets around to\n" +"implementing it)." +msgstr "" + +#. §0: `h : X = Y` +#. §1: `rw [h]` +#. §2: `X` +#. §3: `Y` +#. §4: `nth_rewrite 3 [h]` +#: Game.Levels.Tutorial.L08twoaddtwo +msgid "" +"Good luck!\n" +"\n" +" One last hint. If §0 then §1 will change *all* §2s into §3s.\n" +" If you only want to change one of them, say the 3rd one, then use\n" +" §4." +msgstr "" + +#. §0: `add_assoc` +#. §1: `add_comm` +#: Game.Levels.Addition.L04add_assoc +msgid "" +"A passing mathematician congratulates you on proving that naturals\n" +"are an additive commutative monoid.\n" +"\n" +"Let's practice using §0 and §1 in one more level,\n" +"before we leave addition world." +msgstr "" + +#: Game.Levels.Implication.L05succ_inj2 +msgid "Arguing backwards" +msgstr "" + +#: Game.Levels.AdvMultiplication.L06mul_right_eq_one +msgid "mul_right_eq_one" +msgstr "" + +#. §0: `add_sq a b` +#. §1: $(a+b)^2=a^2+b^2+2ab.$ +#: Game.Levels.Power.L09add_sq +msgid "§0 is the statement that §1" +msgstr "" + +#. §0: $x=y$ +#. §1: $x \\neq y$ +#: Game.Levels.Implication.L08ne +msgid "If §0 and §1 then we can deduce a contradiction." +msgstr "" + +#. §0: `2 + 2 = 4` +#. §1: $37$ +#. §2: $x$ +#. §3: $0$ +#. §4: `37 + x` +#. §5: `37 + 0` +#. §6: `37 + succ x` +#. §7: `0` +#. §8: `37 + 0` +#. §9: `37` +#. §10: `a + 0` +#. §11: `a` +#. §12: `a` +#. §13: `add_zero a` +#. §14: `add_zero 37` +#. §15: `37 + 0 = 37` +#. §16: `add_zero x` +#. §17: `x + 0 = x` +#. §18: `add_zero` +#. §19: `? + 0 = ?` +#. §20: `add_zero x : x + 0 = x` +#. §21: `proof : statement` +#: Game.Levels.Tutorial.L05add_zero +msgid "" +"We'd like to prove §0 but right now\n" +"we can't even *state* it\n" +"because we haven't yet defined addition.\n" +"\n" +"## Defining addition.\n" +"\n" +"How are we going to add §1 to an arbitrary number §2? Well,\n" +"there are only two ways to make numbers in this game: §3\n" +"and successors. So to define §4 we will need\n" +"to know what §5 is and what §6 is.\n" +"Let's start with adding §7.\n" +"\n" +"### Adding 0\n" +"\n" +"To make addition agree with our intuition, we should *define* §8\n" +"to be §9. More generally, we should define §10 to be §11 for\n" +"any number §12. The name of this proof in Lean is §13.\n" +"For example §14 is a proof of §15,\n" +"§16 is a proof of §17, and §18 is a proof\n" +"of §19.\n" +"\n" +"We write §20, so §21." +msgstr "" + +#. §0: `t = 0` +#: Game.Levels.AdvMultiplication.L01mul_le_mul_right +msgid "Let's warm up with an easy one, which works even if §0." +msgstr "" + +#. §0: $x+1=y+1\\implies x=y$ +#: Game.Levels.Implication.L07intro2 +msgid "" +"Let's see if you can use the tactics we've learnt to prove §0.\n" +"Try this one by yourself; if you need help then click on \"Show more help!\"." +msgstr "" + +#. §0: `apply zero_ne_succ at h` +#: Game.Levels.Implication.L09zero_ne_succ +#: Game.Levels.AdvMultiplication.L06mul_right_eq_one +msgid "Now you can §0." +msgstr "" + +#. §0: `h2` +#. §1: `x = 37` +#. §2: `y = 42` +#. §3: `apply` +#. §4: `apply` +#: Game.Levels.Implication.L03apply +msgid "" +"In this level, the hypothesis §0 is an *implication*. It says\n" +"that *if* §1 *then* §2. We can use this\n" +"hypothesis with the §3 tactic. Remember you can click on\n" +"§4 or any other tactic on the right to see a detailed explanation\n" +"of what it does, with examples." +msgstr "" + +#. §0: $37$ +#. §1: $x$ +#. §2: $q$ +#. §3: $x$ +#. §4: $37x + q = 37x + q$ +#. §5: `x q : ℕ` +#. §6: `x` +#. §7: `q` +#. §8: `rfl` +#. §9: $X = X$ +#. §10: $37x+q=37x+q$ +#. §11: `rfl` +#: Game.Levels.Tutorial.L01rfl +msgid "" +"# Read this first\n" +"\n" +"Each level in this game involves proving a mathematical theorem (the " +"\"Goal\").\n" +"The goal will be a statement about *numbers*. Some numbers in this game have " +"known values.\n" +"Those numbers have names like §0. Other numbers will be secret. They're " +"called things\n" +"like §1 and §2. We know §3 is a number, we just don't know which one.\n" +"\n" +"In this first level we're going to prove the theorem that §4.\n" +"You can see §5 in the *Objects* below, which means that §6 and §7\n" +"are numbers.\n" +"\n" +"We solve goals in Lean using *Tactics*, and the first tactic we're\n" +"going to learn is called §8, which proves all theorems of the form §9.\n" +"\n" +"Prove that §10 by executing the §11 tactic." +msgstr "" + +#. §0: ``` +#. repeat rw [zero_add] at h +#. exact h +#. ``` +#: Game.Levels.Implication.L02exact2 +msgid "" +"Here's a two-line proof:\n" +"§0" +msgstr "" + +#. §0: `zero_add x` +#. §1: `0 + x = x` +#. §2: `zero_add` +#. §3: `simp` +#. §4: `0 + x` +#. §5: `x` +#: Game.Levels.Addition.L01zero_add +msgid "" +"§0 is the proof of §1.\n" +"\n" +"§2 is a §3 lemma, because replacing §4 by §5\n" +"is almost always what you want to do if you're simplifying an expression." +msgstr "" + +#. §0: `a` +#. §1: `b` +#. §2: `succ_inj a b` +#. §3: `succ a = succ b` +#. §4: `a = b` +#. §5: $x+1=4 \\implies x=3$ +#: Game.Levels.Implication.L04succ_inj +msgid "" +"If §0 and §1 are numbers, then §2 is a proof\n" +"that §3 implies §4. Click on this theorem in the *Peano*\n" +"tab for more information.\n" +"\n" +"Peano had this theorem as an axiom, but in Algorithm World\n" +"we will show how to prove it in Lean. Right now let's just assume it,\n" +"and let's prove §5 using it. Again, we will proceed\n" +"by manipulating our hypothesis until it becomes the goal. I will\n" +"walk you through this level." +msgstr "" + +#. §0: `2 + 2 ≠ 5` +#. §1: `0 ≠ 1` +#. §2: `zero_ne_succ n` +#. §3: `0 ≠ succ n` +#: Game.Levels.Implication.L09zero_ne_succ +msgid "" +"As warm-up for §0 let's prove §1. To do this we need to\n" +"introduce Peano's last axiom §2, a proof that §3.\n" +"To learn about this result, click on it in the list of lemmas on the right." +msgstr "" + +#. §0: $x+y=37$ +#. §1: $3x+z=42$ +#. §2: $x+y=37$ +#: Game.Levels.Implication.L01exact +msgid "Assuming §0 and §1, we have §2." +msgstr "" + +#. §0: `a` +#. §1: `b` +#. §2: $a + b = b + a$ +#: Game.Levels.Addition.L03add_comm +msgid "" +"On the set of natural numbers, addition is commutative.\n" +"In other words, if §0 and §1 are arbitrary natural numbers, then\n" +"§2." +msgstr "" + +#. §0: `a * b = a * c` +#. §1: `a ≠ 0` +#. §2: `b = c` +#. §3: `induction b with d hd` +#. §4: `a * d = a * c → d = c` +#. §5: `a * succ d = a * c` +#. §6: `a ≠ 0` +#. §7: `b` +#. §8: `c` +#. §9: `a * b = a * c` +#. §10: `b = c` +#. §11: `c` +#: Game.Levels.AdvMultiplication.L09mul_left_cancel +msgid "" +"In this level we prove that if §0 and §1 then §2. It is tricky, for\n" +"several reasons. One of these is that\n" +"we need to introduce a new idea: we will need to understand the concept of\n" +"mathematical induction a little better.\n" +"\n" +"Starting with §3 is too naive, because in the inductive step\n" +"the hypothesis is §4 but what we know is §5,\n" +"so the induction hypothesis does not apply!\n" +"\n" +"Assume §6 is fixed. The actual statement we want to prove by induction on §7 " +"is\n" +"\"for all §8, if §9 then §10\". This *can* be proved by induction,\n" +"because we now have the flexibility to change §11." +msgstr "" + +#. §0: `h2` +#. §1: `tauto` +#: Game.Levels.AdvMultiplication.L08mul_eq_zero +msgid "" +"Now the goal can be deduced from §0 by pure logic, so use the §1\n" +"tactic." +msgstr "" + +#. §0: `rfl` +#: Game.Levels.Tutorial.L02rw +msgid "Now §0 will work." +msgstr "" + +#. §0: `le_zero x` +#. §1: `x ≤ 0 → x = 0` +#: Game.Levels.LessOrEqual.L05le_zero +msgid "§0 is a proof of the implication §1." +msgstr "" + +#: Game.Levels.Implication.L11two_add_two_ne_five +msgid "2 + 2 ≠ 5" +msgstr "" + +#. §0: `ℕ` +#. §1: `0 : ℕ` +#. §2: `succ (n : ℕ) : ℕ` +#. §3: `MyNat` +#. §4: `ℕ` +#. §5: `Nat` +#: Game.Levels.Tutorial.L03two_eq_ss0 +msgid "" +"§0 is the natural numbers, just called \\\\\"numbers\\\\\" in this game. " +"It's\n" +"defined via two rules:\n" +"\n" +"* §1 (zero is a number)\n" +"* §2 (the successor of a number is a number)\n" +"\n" +"## Game Implementation\n" +"\n" +"*The game uses its own copy of the natural numbers, called §3 with notation " +"§4.\n" +"It is distinct from the Lean natural numbers §5, which should hopefully\n" +"never leak into the natural number game.*" +msgstr "" + +#. §0: `a ≠ 0` +#. §1: `tauto` +#: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero +msgid "" +"Multiplication usually makes a number bigger, but multiplication by zero can " +"make\n" +"it smaller. Thus many lemmas about inequalities and multiplication need the\n" +"hypothesis §0. Here is a key lemma that enables us to use this hypothesis.\n" +"To help us with the proof, we can use the §1 tactic. Click on the tactic's " +"name\n" +"on the right to see what it does." +msgstr "" + +#. §0: `cases` +#. §1: `hxy` +#: Game.Levels.LessOrEqual.L04le_trans +msgid "" +"In this level, we see inequalities as *hypotheses*. We have not seen this " +"before.\n" +"The §0 tactic can be used to take §1 apart." +msgstr "" + +#. §0: `a` +#. §1: `b` +#. §2: `a = b` +#. §3: `a` +#. §4: `b` +#. §5: `0` +#. §6: `a` +#. §7: `b` +#. §8: `0` +#. §9: `0` +#. §10: `succ n` +#. §11: `a = succ m` +#. §12: `b = succ n` +#. §13: `m = n` +#. §14: `0 = 0` +#. §15: `rfl` +#. §16: `0 ≠ succ n` +#. §17: `zero_ne_succ n` +#. §18: `succ m ≠ 0` +#. §19: `succ_ne_zero m` +#. §20: `h : m = n` +#. §21: `succ m = succ n` +#. §22: `rw [h]` +#. §23: `rfl` +#. §24: `a ≠ b` +#. §25: `succ a ≠ succ b` +#: Game.Levels.Algorithm.L07succ_ne_succ +msgid "" +"Here we begin to\n" +"develop an algorithm which, given two naturals §0 and §1, returns the " +"answer\n" +"to \"does §2?\"\n" +"\n" +"Here is the algorithm. First note that §3 and §4 are numbers, and hence\n" +"are either §5 or successors.\n" +"\n" +"*) If §6 and §7 are both §8, return \"yes\".\n" +"\n" +"*) If one is §9 and the other is §10, return \"no\".\n" +"\n" +"*) If §11 and §12, then return the answer to \"does §13?\"\n" +"\n" +"Our job now is to *prove* that this algorithm always gives the correct " +"answer. The proof that\n" +"§14 is §15. The proof that §16 is §17, and the proof\n" +"that §18 is §19. The proof that if §20 then\n" +"§21 is §22 and then §23. This level is a proof of the one\n" +"remaining job we have to do: if §24 then §25." +msgstr "" + +#: Game.Levels.LessOrEqual.L06le_antisymm +msgid "x ≤ y and y ≤ x implies x = y" +msgstr "" + +#. §0: `left` +#. §1: `P ∨ Q` +#. §2: `P` +#. §3: `P ∨ Q` +#. §4: `P` +#. §5: `apply` +#. §6: $P \\implies P \\lor Q.$ +#: Game.Levels.LessOrEqual.L07or_symm +msgid "" +"# Summary\n" +"The §0 tactic changes a goal of §1 into a goal of §2.\n" +"Use it when your hypotheses guarantee that the reason that §3\n" +"is true is because in fact §4 is true.\n" +"\n" +"Internally this tactic is just §5ing a theorem\n" +"saying that §6\n" +"\n" +"Note that this tactic can turn a solvable goal into an unsolvable\n" +"one." +msgstr "" + +#: Game.Levels.Multiplication +msgid "Multiplication World" +msgstr "" + +#. §0: `le_zero` +#. §1: `x ≤ 0` +#. §2: `x = 0` +#. §3: `x ≤ 1` +#. §4: `x = 0` +#. §5: `x = 1` +#: Game.Levels.LessOrEqual.L10le_one +msgid "" +"We've seen §0, the proof that if §1 then §2.\n" +"Now we'll prove that if §3 then §4 or §5." +msgstr "" + +#. §0: $\\mathbb{N}$ +#: Game +msgid "" +"In this game you recreate the natural numbers §0 from the Peano axioms,\n" +"learning the basics about theorem proving in Lean.\n" +"\n" +"This is a good first introduction to Lean!" +msgstr "" + +#. §0: $x+1=4$ +#. §1: $x=3$ +#: Game.Levels.Implication.L04succ_inj Game.Levels.Implication.L05succ_inj2 +#: Game.Levels.Algorithm.L05pred Game.Levels.Algorithm.L07succ_ne_succ +#: Game.Levels.AdvAddition.L05add_right_eq_zero +#: Game.Levels.AdvAddition.L06add_left_eq_zero +#: Game.Levels.LessOrEqual.L09succ_le_succ +msgid "If §0 then §1." +msgstr "" + +#. §0: $x+y+z$ +#. §1: $(x+y)+z$ +#. §2: $x+(y+z)$ +#. §3: $x+y+z$ +#. §4: $(x+y)+z$ +#. §5: $(x+y)+z$ +#. §6: $x+(y+z)$ +#: Game.Levels.Addition.L04add_assoc +msgid "" +"We've been adding up two numbers; in this level we will add up three.\n" +"\n" +" What does §0 *mean*? It could either mean §1, or it\n" +" could mean §2. In Lean, §3 means §4.\n" +"\n" +" But why do we care which one it means; §5 and §6 are *equal*!\n" +"\n" +" That's true, but we didn't prove it yet. Let's prove it now by induction." +msgstr "" + +#. §0: `add_left_eq_self` +#. §1: ``` +#. rw [add_comm] +#. intro h +#. apply add_left_eq_self at h +#. exact h +#. ``` +#. §2: ``` +#. rw [add_comm] +#. exact add_left_eq_self y x +#. ``` +#. §3: `x` +#. §4: ``` +#. induction x with d hd +#. intro h +#. rw [zero_add] at h +#. exact h +#. intro h +#. rw [succ_add] at h +#. apply succ_inj at h +#. apply hd at h +#. exact h +#. ``` +#: Game.Levels.AdvAddition.L04add_right_eq_self +msgid "" +"Here's a proof using §0:\n" +"§1\n" +"\n" +"and here's an even shorter one using the same idea:\n" +"§2\n" +"\n" +"Alternatively you can just prove it by induction on §3:\n" +"\n" +"§4" +msgstr "" + +#. §0: `add_right_eq_zero` +#. §1: `symm at` +#: Game.Levels.LessOrEqual.L05le_zero +msgid "" +"You want to use §0, which you already\n" +"proved, but you'll have to start with §1 your hypothesis." +msgstr "" + +#. §0: `1` +#. §1: `succ 0` +#. §2: `rw [one_eq_succ_zero]` +#: Game.Levels.Tutorial.L03two_eq_ss0 +msgid "Next turn §0 into §1 with §2." +msgstr "" + +#: Game.Levels.Implication.L07intro2 +msgid "intro practice" +msgstr "" + +#. §0: `n : ℕ` +#. §1: `n` +#. §2: `induction n with d hd` +#. §3: `n` +#. §4: `d` +#. §5: `hd` +#. §6: ``` +#. 0 + n = n +#. ``` +#. §7: `induction n with d hd` +#. §8: `0 + 0 = 0` +#. §9: `hd : 0 + d = d` +#. §10: `0 + succ d = succ d` +#: Game.Levels.Addition.L01zero_add +msgid "" +"## Summary\n" +"\n" +"If §0 is an object, and the goal mentions §1, then §2\n" +"attempts to prove the goal by induction on §3, with the inductive\n" +"variable in the successor case being §4, and the inductive hypothesis being " +"§5.\n" +"\n" +"### Example:\n" +"If the goal is\n" +"§6\n" +"\n" +"then\n" +"\n" +"§7\n" +"\n" +"will turn it into two goals. The first is §8;\n" +"the second has an assumption §9 and goal\n" +"§10.\n" +"\n" +"Note that you must prove the first\n" +"goal before you can access the second one." +msgstr "" + +#: Game.Levels.Implication.L09zero_ne_succ +msgid "zero_ne_succ" +msgstr "" + +#. §0: $1\\times m=m$ +#. §1: `succ_mul` +#: Game.Levels.Multiplication.L05one_mul +msgid "" +"You can prove §0 in at least three ways.\n" +"Either by induction, or by using §1, or\n" +"by using commutativity. Which do you think is quickest?" +msgstr "" + +#. §0: `succ a + «{d}»` +#. §1: `(succ a) + «{d}»` +#. §2: `succ` +#: Game.Levels.Addition.L02succ_add +msgid "" +"Note that §0 means §1. Put your cursor\n" +"on any §2 in the goal or assumptions to see what exactly it's eating." +msgstr "" + +#. §0: `cases «{h}» with hx hy` +#: Game.Levels.LessOrEqual.L07or_symm +msgid "We don't know whether to go left or right yet. So start with §0." +msgstr "" + +#. §0: $2$ +#. §1: $2 = 37 × 42.$ +#. §2: $2$ +#. §3: $2$ +#. §4: `mul_left_ne_zero` +#. §5: `one_le_of_ne_zero` +#. §6: `mul_le_mul_right` +#: Game.Levels.AdvMultiplication.L05le_mul_right +msgid "" +"One day this game will have a Prime Number World, with a final boss\n" +"of proving that §0 is prime.\n" +"To do this, we will have to rule out things like §1\n" +"We will do this by proving that any factor of §2 is at most §3,\n" +"which we will do using this lemma. The proof I have in mind manipulates the " +"hypothesis\n" +"until it becomes the goal, using §4, §5 and\n" +"§6." +msgstr "" + +#. §0: `False` +#. §1: `True` +#. §2: `is_zero (succ a)` +#. §3: `rw [← is_zero_succ a]` +#: Game.Levels.Algorithm.L06is_zero +msgid "" +"We're going to change that §0 into §1. Start by changing it into\n" +"§2 by executing §3." +msgstr "" + +#. §0: `contrapose! h` +#: Game.Levels.Algorithm.L07succ_ne_succ +msgid "" +"Can you take it from here? (note: if you try §0 again, it will\n" +"take you back to where you started!)" +msgstr "" + +#. §0: `pow_two a` +#. §1: `a ^ 2 = a * a` +#: Game.Levels.Power.L05pow_two +msgid "§0 says that §1." +msgstr "" + +#: Game.Levels.Implication.L04succ_inj +msgid "In the next level, we'll do the same proof but backwards." +msgstr "" + +#. §0: ``` +#. rw [mul_comm, mul_add] +#. repeat rw [mul_comm c] +#. rfl +#. ``` +#: Game.Levels.Multiplication.L08add_mul +#: Game.Levels.LessOrEqual.L09succ_le_succ +msgid "" +"Here's my proof:\n" +"§0" +msgstr "" + +#. §0: `exact` +#: Game.Levels.Implication.L03apply +msgid "Now finish using the §0 tactic." +msgstr "" + +#. §0: `37 ^ n` +#. §1: `37 ^ 0` +#. §2: `37 ^ (succ d)` +#. §3: `37 ^ d` +#. §4: `pow_zero (a : ℕ) : a ^ 0 = 1` +#. §5: `pow_succ (a b : ℕ) : a ^ succ b = a ^ b * a` +#: Game.Levels.Power +msgid "" +"This world introduces exponentiation. If you want to define §0\n" +"then, as always, you will need to know what §1 is, and\n" +"what §2 is, given only §3.\n" +"\n" +"You can probably guess the names of the general theorems:\n" +"\n" +" * §4\n" +" * §5\n" +"\n" +"Using only these, can you get past the final boss level?\n" +"\n" +"The levels in this world were designed by Sian Carey, a UROP student\n" +"at Imperial College London, funded by a Mary Lister McCammon Fellowship\n" +"in the summer of 2019. Thanks to Sian and also thanks to Imperial\n" +"College for funding her." +msgstr "" + +#. §0: `h` +#. §1: `succ x = succ 3` +#. §2: `succ_inj` +#. §3: `rw [four_eq_succ_three] at h` +#: Game.Levels.Implication.L04succ_inj +msgid "" +"Let's first get §0 into the form §1 so we can\n" +"apply §2. First execute §3\n" +"to change the 4 on the right hand side." +msgstr "" + +#. §0: `rw [← two_eq_succ_one]` +#. §1: `succ 1` +#. §2: `2` +#: Game.Levels.Tutorial.L04rw_backwards Game.Levels.Tutorial.L05add_zero +msgid "Now §0 will change §1 into §2." +msgstr "" + +#. §0: ``` +#. intro h +#. apply succ_inj +#. repeat rw [succ_eq_add_one] +#. exact h +#. ``` +#: Game.Levels.Implication.L07intro2 +msgid "" +"Here's a completely backwards proof:\n" +"§0" +msgstr "" + +#: Game.Levels.LessOrEqual.L05le_zero +msgid "x ≤ 0 → x = 0" +msgstr "" + +#: Game.Levels.AdvAddition +msgid "Advanced Addition World" +msgstr "" + +#. §0: $x$ +#. §1: $q$ +#. §2: $37x+q=37x+q.$ +#: Game.Levels.Tutorial.L01rfl +msgid "If §0 and §1 are arbitrary natural numbers, then §2" +msgstr "" + +#. §0: `left` +#: Game.Levels.LessOrEqual.L07or_symm +msgid "This time, use the §0 tactic." +msgstr "" + +#. §0: $(a+b)^2=a^2+b^2$ +#: Game.Levels.Power.L09add_sq +msgid "" +"It's all over! You have proved a theorem which has tripped up\n" +"schoolkids for generations (some of them think §0:\n" +"this is \"the freshman's dream\").\n" +"\n" +"How many rewrites did you use? I can do it in 12.\n" +"\n" +"But wait! This boss is stirring...and mutating into a second more powerful " +"form!" +msgstr "" + +#. §0: $a$ +#. §1: $b$ +#. §2: $c$ +#. §3: $(a + b) \\times c = ac + bc$ +#: Game.Levels.Multiplication.L08add_mul +msgid "" +"Addition is distributive over multiplication.\n" +"In other words, for all natural numbers §0, §1 and §2, we have\n" +"§3." +msgstr "" + +#. §0: `one_mul m` +#. §1: `1 * m = m` +#: Game.Levels.Multiplication.L05one_mul +msgid "§0 is the proof §1." +msgstr "" + +#: Game.Levels.Algorithm.L03add_algo2 +msgid "making life simple" +msgstr "" + +#. §0: `four_eq_succ_three` +#: Game.Levels.Implication.L05succ_inj2 +msgid "" +"Now rewrite §0 backwards to make the goal\n" +"equal to the hypothesis." +msgstr "" + +#: Game.Levels.Addition.L04add_assoc +msgid "add_assoc (associativity of addition)" +msgstr "" + +#. §0: `add_assoc a b c` +#. §1: `(a + b) + c = a + (b + c)` +#. §2: `(a + b) + c` +#. §3: `a + b + c` +#: Game.Levels.Addition.L04add_assoc +msgid "" +"§0 is a proof\n" +"that §1. Note that in Lean §2 prints\n" +"as §3, because the notation for addition is defined to be left\n" +"associative." +msgstr "" + +#. §0: `intro h` +#: Game.Levels.Implication.L07intro2 +msgid "Start with §0 to assume the hypothesis." +msgstr "" + +#: Game.Levels.Multiplication.L04mul_comm +msgid "mul_comm" +msgstr "" + +#. §0: `2 + 2 ≠ 5` +#: Game.Levels.Algorithm.L09decide2 +msgid "" +"We gave a pretty unsatisfactory proof of §0 earlier on; now give a nicer one." +msgstr "" + +#. §0: $n = 0$ +#. §1: `X = Y` +#: Game.Levels.Addition.L01zero_add +msgid "" +"Now you have two goals. Once you proved the first, you will jump to the " +"second one.\n" +"This first goal is the base case §0.\n" +"\n" +"Recall that you can rewrite the proof of any lemma which is visible\n" +"in your inventory, or of any assumption displayed above the goal,\n" +"as long as it is of the form §1." +msgstr "" + +#. §0: `x + 1 = 4` +#. §1: `x = 3` +#. §2: `apply` +#: Game.Levels.Implication.L05succ_inj2 +msgid "" +"In the last level, we manipulated the hypothesis §0\n" +" until it became the goal §1. In this level we'll manipulate\n" +" the goal until it becomes our hypothesis! In other words, we\n" +" will \"argue backwards\". The §2 tactic can do this too.\n" +" Again I will walk you through this one (assuming you're in\n" +" command line mode)." +msgstr "" + +#. §0: `add_zero c` +#. §1: `c + 0 = c` +#. §2: `b + 0` +#. §3: `b` +#. §4: `rw [add_zero]` +#. §5: `rw [add_zero b]` +#. §6: `rw [add_zero]` +#: Game.Levels.Tutorial.L06add_zero2 +msgid "" +"§0 is a proof of §1 so that was what got rewritten.\n" +"You can now change §2 to §3 with §4 or §5. You\n" +"can usually stick to §6 unless you need real precision." +msgstr "" + +#: Game.Levels.AdvAddition.L01add_right_cancel +msgid "add_right_cancel" +msgstr "" + +#. §0: `succ_eq_add_one` +#. §1: `h` +#: Game.Levels.Implication.L04succ_inj +msgid "" +"Now rewrite §0 backwards at §1\n" +"to get the right hand side." +msgstr "" + +#. §0: `decide` +#: Game.Levels.Algorithm.L08decide +msgid "" +"You can read more about the §0 tactic by clicking\n" +"on it in the top right." +msgstr "" + +#. §0: `a ≠ b` +#. §1: `(a = b) → False` +#. §2: `P` +#. §3: `P → False` +#. §4: `P` +#. §5: `True → False` +#. §6: `False → False` +#. §7: `a ≠ b` +#. §8: `P → Q` +#. §9: `a ≠ b` +#. §10: `intro h` +#. §11: `h` +#. §12: `a ≠ b` +#. §13: `apply h at h1` +#. §14: `h1` +#. §15: `a = b` +#: Game.Levels.Implication.L08ne +msgid "" +"§0 is *notation* for §1.\n" +"\n" +"The reason this is mathematically\n" +"valid is that if §2 is a true-false statement then §3\n" +"is the logical opposite of §4. Indeed §5 is false,\n" +"and §6 is true!\n" +"\n" +"The upshot of this is that you can treat §7 in exactly\n" +"the same way as you treat any implication §8. For example,\n" +"if your *goal* is of the form §9 then you can make progress\n" +"with §10, and if you have a hypothesis §11 of the\n" +"form §12 then you can §13 if §14 is a proof\n" +"of §15." +msgstr "" + +#. §0: `mul_assoc a b c` +#. §1: `(a * b) * c = a * (b * c)` +#. §2: `a * b * c` +#. §3: `(a * b) * c` +#. §4: `(a * b) * c = a * (b * c)` +#. §5: `(6 - 2) - 1` +#. §6: `6 - (2 - 1)` +#: Game.Levels.Multiplication.L09mul_assoc +msgid "" +"§0 is a proof that §1.\n" +"\n" +"Note that when Lean says §2 it means §3.\n" +"\n" +"Note that §4 cannot be proved by \\\\\"pure thought\\\\\":\n" +"for example subtraction is not associative, as §5 is not\n" +"equal to §6." +msgstr "" + +#: Game.Levels.AdvAddition.L03add_left_eq_self +msgid "add_left_eq_self" +msgstr "" + +#: GameServer.RpcHandlers +msgid "level completed with warnings… 🎭" +msgstr "" + +#. §0: `h2` +#. §1: `x = y → False` +#. §2: `apply` +#. §3: `h2` +#. §4: `at h1` +#: Game.Levels.Implication.L08ne +msgid "" +"Remember that §0 is a proof of §1. Try\n" +"§2ing §3 either §4 or directly to the goal." +msgstr "" + +#. §0: `apply mul_left_cancel at h` +#: Game.Levels.AdvMultiplication.L10mul_right_eq_self +msgid "You can now §0" +msgstr "" + +#. §0: `x * y = 1 → x = 1` +#. §1: `x + y = 0 → x = 0` +#. §2: `x ≤ 1` +#. §3: `le_one` +#. §4: `≤` +#. §5: `have` +#: Game.Levels.AdvMultiplication.L06mul_right_eq_one +msgid "" +"This level proves §0, the multiplicative analogue of Advanced Addition\n" +"World's §1. The strategy is to prove that §2 and then use the\n" +"lemma §3 from §4 world.\n" +"\n" +"We'll prove it using a new and very useful tactic called §5." +msgstr "" + +#: Game.Levels.Power.L06pow_add +msgid "pow_add" +msgstr "" + +#. §0: `rw [add_zero c]` +#: Game.Levels.Tutorial.L06add_zero2 Game.Levels.LessOrEqual.L08le_total +msgid "Try §0." +msgstr "" + +#. §0: `{0,1,2,3,4,...}` +#. §1: `2 + 2 = 4` +#. §2: `x + y = y + x` +#: Game +msgid "" +"# Welcome to the Natural Number Game\n" +"#### An introduction to mathematical proof.\n" +"\n" +"In this game, we will build the basic theory of the natural\n" +"numbers §0 from scratch. Our first goal is to prove\n" +"that §1. Next we'll prove that §2.\n" +"And at the end we'll see if we can prove Fermat's Last Theorem.\n" +"We'll do this by solving levels of a computer puzzle game called Lean.\n" +"\n" +"# Read this.\n" +"\n" +"Learning how to use an interactive theorem prover takes time.\n" +"Tests show that the people who get the most out of this game are\n" +"those who read the help texts like this one.\n" +"\n" +"To start, click on \"Tutorial World\".\n" +"\n" +"Note: this is a new Lean 4 version of the game containing several\n" +"worlds which were not present in the old Lean 3 version. More new worlds\n" +"such as Strong Induction World, Even/Odd World and Prime Number World\n" +"are in development; if you want to see their state or even help out, " +"checkout\n" +"out the [issues in the github repo](https://github.com/leanprover-community/" +"NNG4/issues).\n" +"\n" +"## More\n" +"\n" +"Click on the three lines in the top right and select \"Game Info\" for " +"resources,\n" +"links, and ways to interact with the Lean community." +msgstr "" + +#. §0: $a$ +#. §1: $a ^ 1 = a$ +#: Game.Levels.Power.L03pow_one Game.Levels.Power.L04one_pow +#: Game.Levels.Power.L05pow_two +msgid "For all naturals §0, §1." +msgstr "" + +#. §0: `decide` +#. §1: `DecidableEq ℕ` +#. §2: `instance` +#. §3: `decide` +#. §4: `a = b` +#. §5: `a ≠ b` +#: Game.Levels.Algorithm.L08decide +msgid "" +"# Summary\n" +"\n" +"§0 will attempt to solve a goal if it can find an algorithm which it\n" +"can run to solve it.\n" +"\n" +"## Example\n" +"\n" +"A term of type §1 is an algorithm to decide whether two naturals\n" +"are equal or different. Hence, once this term is made and made into an §2,\n" +"the §3 tactic can use it to solve goals of the form §4 or §5." +msgstr "" + +#. §0: `apply` +#. §1: `apply succ_inj at h` +#. §2: `h` +#. §3: `x = 3` +#: Game.Levels.Implication.L04succ_inj +msgid "" +"Now let's §0 our new theorem. Execute §1\n" +"to change §2 to a proof of §3." +msgstr "" + +#. §0: `repeat t` +#. §1: `t` +#. §2: `repeat rw [add_zero]` +#. §3: `a + 0 + (0 + (0 + 0)) = b + 0 + 0` +#. §4: `a = b` +#. §5: `h : X = Y` +#. §6: `X` +#. §7: `nth_rewrite 3 [h]` +#. §8: `X` +#. §9: `Y` +#. §10: `2 + 2 = 4` +#. §11: `nth_rewrite 2 [two_eq_succ_one]` +#. §12: `2 + succ 1 = 4` +#. §13: `rw [two_eq_succ_one]` +#. §14: `succ 1 + succ 1 = 4` +#: Game.Levels.Tutorial.L02rw +msgid "" +"## Summary\n" +"\n" +"§0 repeatedly applies the tactic §1\n" +"to the goal. You don't need to use this\n" +"tactic, it just speeds things up sometimes.\n" +"\n" +"## Example\n" +"\n" +"§2 will turn the goal\n" +"§3\n" +"into the goal\n" +"§4.\n" +"\"\n" +"\n" +"TacticDoc nth_rewrite \"\n" +"## Summary\n" +"\n" +"If §5 and there are several §6s in the goal, then\n" +"§7 will just change the third §8 to a §9.\n" +"\n" +"## Example\n" +"\n" +"If the goal is §10 then §11\n" +"will change the goal to §12. In contrast, §13\n" +"will change the goal to §14." +msgstr "" + +#: Game.Levels.Tutorial.L01rfl +msgid "The rfl tactic" +msgstr "" + +#. §0: ``` +#. macro \"simp_add\" : tactic => `(tactic|( +#. simp only [add_assoc, add_left_comm, add_comm])) +#. ``` +#. §1: `simp_add` +#. §2: `simp only [add_assoc, add_left_comm, add_comm]` +#. §3: `simp_add` +#: Game.Levels.Algorithm.L04add_algo3 +msgid "" +"You can make your own tactics in Lean.\n" +"This code here\n" +"§0\n" +"was used to create a new tactic §1, which runs\n" +"§2.\n" +"Try running §3 to solve this level!" +msgstr "" + +#. §0: $x \\leq 1$ +#. §1: $x = 0$ +#. §2: $x = 1$ +#: Game.Levels.LessOrEqual.L10le_one +msgid "If §0 then either §1 or §2." +msgstr "" + +#: Game.Levels.Addition.L02succ_add +msgid "succ_add" +msgstr "" + +#. §0: `add_comm` +#. §1: `b` +#. §2: `d` +#: Game.Levels.Algorithm.L02add_algo1 +msgid "Finally use a targeted §0 to switch §1 and §2." +msgstr "" + +#. §0: `≤` +#: Game.Levels.LessOrEqual.L11le_two +msgid "" +"Nice!\n" +"\n" +"The next step in the development of order theory is to develop\n" +"the theory of the interplay between §0 and multiplication.\n" +"If you've already done Multiplication World, you're now ready for\n" +"Advanced Multiplication World. Click on \"Home\" to access it." +msgstr "" + +#. §0: `rw [zero_add] at «{h}»` +#. §1: `zero_add` +#. §2: `«{x}»` +#. §3: `0 + «{x}»` +#. §4: `0 + «{y}»` +#: Game.Levels.Implication.L02exact2 +msgid "" +"Do that again!\n" +"\n" +"§0 tries to fill in\n" +"the arguments to §1 (finding §2) then it replaces all occurrences of\n" +"§3 it finds. Therefor, it did not rewrite §4, yet." +msgstr "" + +#. §0: `a` +#. §1: `b` +#. §2: `c` +#: Game.Levels.Multiplication.L07mul_add +msgid "" +"Induction on §0 is the most troublesome, then §1,\n" +"and §2 is the easiest." +msgstr "" + +#. §0: $a+(b+0)+(c+0)=a+b+c.$ +#: Game.Levels.Tutorial.L05add_zero Game.Levels.Tutorial.L06add_zero2 +#: Game.Levels.Power.L01zero_pow_zero Game.Levels.Algorithm.L09decide2 +#: Game.Levels.AdvAddition.L03add_left_eq_self +msgid "§0" +msgstr "" + +#. §0: `zero_ne_succ` +#. §1: `succ_inj` +#: Game.Levels.Implication.L11two_add_two_ne_five +msgid "" +"2 + 2 ≠ 5 is boring to prove in full, given only the tools we have " +"currently.\n" +"To make it a bit less painful, I have unfolded all of the numerals for you.\n" +"See if you can use §0 and §1 to prove this." +msgstr "" + +#. §0: $x$ +#. §1: $y$ +#. §2: $x \\leq y$ +#. §3: $y \\leq x$ +#: Game.Levels.LessOrEqual.L08le_total +msgid "If §0 and §1 are numbers, then either §2 or §3." +msgstr "" + +#. §0: `a ≤ b` +#. §1: `a ≤ b` +#. §2: `b ≤ c` +#. §3: `a ≤ c` +#. §4: `a ≤ b` +#. §5: `c` +#. §6: `b = a + c` +#: Game.Levels.LessOrEqual +msgid "" +"In this world we define §0 and prove standard facts\n" +"about it, such as \"if §1 and §2 then §3.\"\n" +"\n" +"The definition of §4 is \"there exists a number §5\n" +"such that §6. \" So we're going to have to learn\n" +"a tactic to prove \"exists\" theorems, and another one\n" +"to use \"exists\" hypotheses.\n" +"\n" +"Click on \"Start\" to proceed." +msgstr "" + +#. §0: $a$ +#. §1: $m$ +#. §2: $n$ +#. §3: $a^{m + n} = a ^ m a ^ n$ +#: Game.Levels.Power.L06pow_add Game.Levels.Power.L07mul_pow +#: Game.Levels.Power.L08pow_pow +msgid "For all naturals §0, §1, §2, we have §3." +msgstr "" + +#: Game.Levels.AdvMultiplication.L09mul_left_cancel +msgid "mul_left_cancel" +msgstr "" + +#: Game.Levels.AdvAddition.L06add_left_eq_zero +msgid "" +"You can just mimic the previous proof to do this one -- or you can figure " +"out a way\n" +"of using it." +msgstr "" + +#. §0: `0` +#. §1: `n` +#. §2: `succ n` +#. §3: `n` +#. §4: `n` +#. §5: `n` +#. §6: `0` +#. §7: `succ 0` +#. §8: `1` +#. §9: `2 = succ 1` +#. §10: `3 = succ 2` +#. §11: `4 = succ 3` +#. §12: `2 = succ 1` +#. §13: `two_eq_succ_one` +#. §14: $2$ +#: Game.Levels.Tutorial.L03two_eq_ss0 +msgid "" +"## The birth of number.\n" +"\n" +"Numbers in Lean are defined by two rules.\n" +"\n" +"* §0 is a number.\n" +"* If §1 is a number, then the *successor* §2 of §3 is a number.\n" +"\n" +"The successor of §4 means the number after §5. Let's learn to\n" +"count, and name a few small numbers.\n" +"\n" +"## Counting to four.\n" +"\n" +"§6 is a number, so §7 is a number. Let's call this new number §8.\n" +"Similarly let's define §9, §10 and §11.\n" +"This gives us plenty of numbers to be getting along with.\n" +"\n" +"The *proof* that §12 is called §13.\n" +"Check out the \"012\" tab in the list of lemmas on the right\n" +"for this and other proofs.\n" +"\n" +"Let's prove that §14 is the number after the number after zero." +msgstr "" + +#. §0: `rw [← succ_eq_add_one] at h` +#: Game.Levels.Implication.L04succ_inj +msgid "Concretely: §0." +msgstr "" + +#. §0: `pow_zero a : a ^ 0 = 1` +#: Game.Levels.Power.L01zero_pow_zero +msgid "" +"§0 is one of the two axioms\n" +"defining exponentiation in this game." +msgstr "" + +#. §0: $a, b$ +#. §1: $c$ +#. §2: $(a + b) + c = (a + c) + b$ +#: Game.Levels.Addition.L05add_right_comm +msgid "" +"If §0 and §1 are arbitrary natural numbers, we have\n" +"§2." +msgstr "" + +#: Game.Levels.AdvMultiplication.L10mul_right_eq_self +msgid "" +"The lemma proved in the final level of this world will be helpful\n" +"in Divisibility World." +msgstr "" + +#. §0: `pow_one a` +#. §1: `a ^ 1 = a` +#. §2: `a ^ 1` +#. §3: `a ^ 0 * a` +#. §4: `1 * a` +#. §5: `a` +#: Game.Levels.Power.L03pow_one +msgid "" +"§0 says that §1.\n" +"\n" +"Note that this is not quite true by definition: §2 is\n" +"defined to be §3 so it's §4, and to prove\n" +"that this is equal to §5 you need to use induction somewhere." +msgstr "" + +#. §0: `add_right_eq_self x y` +#. §1: $x + y = x\\implies y=0.$ +#: Game.Levels.AdvAddition.L04add_right_eq_self +msgid "" +"§0 is the theorem that §1\n" +"Two ways to do it spring to mind; I'll mention them when you've solved it." +msgstr "" + +#. §0: $2+2=4$ +#. §1: $a+b+c+d+e=e+d+c+b+a$ +#: Game.Levels.Algorithm +msgid "" +"Proofs like §0 and §1 are very tedious to do by hand.\n" +"In Algorithm World we learn how to get the computer to do them for us.\n" +"\n" +"Click on \"Start\" to proceed." +msgstr "" + +#: Game.Levels.Implication.L02exact2 +msgid "" +"If the goal is not *exactly* a hypothesis, we can sometimes\n" +"use rewrites to fix things up." +msgstr "" + +#: Game.Levels.Algorithm.L06is_zero +msgid "" +"See if you can take it from here. Look at the new lemmas and tactic\n" +"available on the right." +msgstr "" + +#. §0: `rw [add_left_comm b c]` +#. §1: `b` +#. §2: `c` +#: Game.Levels.Algorithm.L02add_algo1 +msgid "" +"Now use §0 to switch §1 and §2 on the left\n" +"hand side." +msgstr "" + +#: Game.Levels.Implication +msgid "Implication World" +msgstr "" + +#. §0: `add_succ` +#: Game.Levels.Tutorial.L06add_zero2 +msgid "Let's now learn about Peano's second axiom for addition, §0." +msgstr "" + +#. §0: $a, b,\\ldots h$ +#. §1: $(d + f) + (h + (a + c)) + (g + e + b) = a + b + c + d + e + f + g + h$ +#: Game.Levels.Algorithm.L03add_algo2 Game.Levels.Algorithm.L04add_algo3 +msgid "" +"If §0 are arbitrary natural numbers, we have\n" +"§1." +msgstr "" + +#. §0: ``` +#. instance instDecidableEq : DecidableEq ℕ +#. | 0, 0 => isTrue <| by +#. show 0 = 0 +#. rfl +#. | succ m, 0 => isFalse <| by +#. show succ m ≠ 0 +#. exact succ_ne_zero m +#. | 0, succ n => isFalse <| by +#. show 0 ≠ succ n +#. exact zero_ne_succ n +#. | succ m, succ n => +#. match instDecidableEq m n with +#. | isTrue (h : m = n) => isTrue <| by +#. show succ m = succ n +#. rw [h] +#. rfl +#. | isFalse (h : m ≠ n) => isFalse <| by +#. show succ m ≠ succ n +#. exact succ_ne_succ m n h +#. ``` +#. §1: `decide` +#: Game.Levels.Algorithm.L08decide +msgid "" +"Implementing the algorithm for equality of naturals, and the proof that it " +"is correct,\n" +"looks like this:\n" +"\n" +"§0\n" +"\n" +"This Lean code is a formally verified algorithm for deciding equality\n" +"between two naturals. I've typed it in already, behind the scenes.\n" +"Because the algorithm is formally verified to be correct, we can\n" +"use it in Lean proofs. You can run the algorithm with the §1 tactic." +msgstr "" + +#. §0: `P → Q` +#. §1: `intro h` +#. §2: `h : P` +#. §3: `Q` +#. §4: $P \\implies Q$ +#. §5: $P$ +#. §6: $Q$ +#. §7: `x + 1 = y + 1 → x = y` +#. §8: $x+1=y+1 \\implies x=y$ +#. §9: `intro h` +#. §10: $x+1=y+1$ +#. §11: `h` +#. §12: $x=y$ +#: Game.Levels.Implication.L06intro +msgid "" +"## Summary\n" +"\n" +"If the goal is §0, then §1 will introduce §2 as a hypothesis,\n" +"and change the goal to §3. Mathematically, it says that to prove §4,\n" +"we can assume §5 and then prove §6.\n" +"\n" +"### Example:\n" +"\n" +"If your goal is §7 (the way Lean writes §8)\n" +"then §9 will give you a hypothesis §10 named §11, and the goal\n" +"will change to §12." +msgstr "" + +#. §0: `rw [add_zero]` +#. §1: `b + 0` +#. §2: `b` +#: Game.Levels.Tutorial.L05add_zero +msgid "§0 will change §1 into §2." +msgstr "" + +#. §0: `apply h2 at h1` +#. §1: `h1` +#. §2: `y = 42` +#: Game.Levels.Implication.L03apply +msgid "Start with §0. This will change §1 to §2." +msgstr "" + +#: Game.Levels.Tutorial.L07add_succ +msgid "[dramatic music]. Now are you ready to face the first boss of the game?" +msgstr "" + +#. §0: $x+y=x\\implies y=0$ +#. §1: `≤` +#: Game.Levels.AdvAddition +msgid "" +"In Advanced Addition World we will prove some basic\n" +"addition facts such as §0. The theorems\n" +"proved in this world will be used to build\n" +"a theory of inequalities in §1 World.\n" +"\n" +"Click on \"Start\" to proceed." +msgstr "" + +#. §0: `tauto` +#. §1: `tauto` +#. §2: `add_zero` +#. §3: `tauto` +#. §4: `a = a` +#. §5: `0 ≠ 1` +#. §6: `0 ≠ 2` +#. §7: `1 ≠ 2` +#. §8: `tauto` +#. §9: `x < 37` +#. §10: `x < 37 → y + z = 42` +#. §11: `y + z = 42` +#. §12: `tauto` +#. §13: `False` +#. §14: `tauto` +#. §15: `True` +#. §16: `tauto` +#. §17: `h1 : a = 37` +#. §18: `h2 : a ≠ 37` +#. §19: `tauto` +#. §20: `False` +#. §21: `False` +#. §22: `h : a ≠ a` +#. §23: `tauto` +#. §24: `tauto` +#. §25: `a = a` +#. §26: `h : 0 = 1` +#. §27: `tauto` +#. §28: `tauto` +#. §29: `0 ≠ 1` +#. §30: `False` +#. §31: `a = 0 → a * b = 0` +#. §32: `a * b ≠ 0 → a ≠ 0` +#. §33: `tauto` +#. §34: `tauto` +#: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero +msgid "" +"# Summary\n" +"\n" +"The §0 tactic will solve any goal which can be solved purely by logic (that " +"is, by\n" +"truth tables).\n" +"\n" +"## Details\n" +"\n" +"§1 *does not do magic*! It doesn't know *anything* about addition or " +"multiplication,\n" +"it doesn't even know §2. The only things that §3 knows about numbers\n" +"are firstly that §4 and secondly that §5, §6, §7 and so on.\n" +"What §8's strength is, is *logic*. If you have a hypothesis §9\n" +"and another hypothesis §10 and your goal is §11 then §12 will\n" +"solve this goal, because to solve that goal you don't need to know any " +"facts\n" +"about inequalities or addition, all you need to know is the rules of logic.\n" +"\n" +"## Example\n" +"\n" +"If you have §13 as a hypothesis, then §14 will solve\n" +"the goal. This is because a false hypothesis implies any hypothesis.\n" +"\n" +"## Example\n" +"\n" +"If your goal is §15, then §16 will solve the goal.\n" +"\n" +"## Example\n" +"\n" +"If you have two hypotheses §17 and §18 then §19 will\n" +"solve the goal because it can prove §20 from your hypotheses, and thus\n" +"prove the goal (as §21 implies anything).\n" +"\n" +"## Example\n" +"\n" +"If you have one hypothesis §22 then §23 will solve the goal because\n" +"§24 is smart enough to know that §25 is true, which gives the contradiction " +"we seek.\n" +"\n" +"## Example\n" +"\n" +"If you have a hypothesis §26 then §27 will solve the goal, because\n" +"§28 knows §29 and this is enough to prove §30, which implies any goal.\n" +"\n" +"## Example\n" +"\n" +"If you have a hypothesis of the form §31 and your goal is §32, then\n" +"§33 will solve the goal, because the goal is logically equivalent to the " +"hypothesis.\n" +"If you switch the goal and hypothesis in this example, §34 would solve it " +"too." +msgstr "" + +#. §0: `rfl` +#: Game.Levels.Tutorial.L03two_eq_ss0 +msgid "Now finish the job with §0." +msgstr "" + +#. §0: `nth_rewrite 2 [← mul_one a] at h` +#: Game.Levels.AdvMultiplication.L10mul_right_eq_self +msgid "Reduce to the previous lemma with §0" +msgstr "" + +#. §0: `le_mul_right a b` +#. §1: `a * b ≠ 0 → a ≤ a * b` +#: Game.Levels.AdvMultiplication.L05le_mul_right +msgid "" +"§0 is a proof that §1.\n" +"\n" +"It's one way of saying that a divisor of a positive number\n" +"has to be at most that number." +msgstr "" + +#. §0: $m$ +#. §1: $0 ^{\\operatorname{succ} (m)} = 0$ +#: Game.Levels.Power.L02zero_pow_succ +msgid "For all numbers §0, §1." +msgstr "" + +#. §0: `n` +#: Game.Levels.AdvAddition.L01add_right_cancel +msgid "Start with induction on §0." +msgstr "" + +#: Game.Levels.LessOrEqual.L08le_total +msgid "x ≤ y or y ≤ x" +msgstr "" + +#. §0: `use` +#. §1: `c` +#. §2: `x = 0 + c` +#: Game.Levels.LessOrEqual.L02zero_le +msgid "To solve this level, you need to §0 a number §1 such that §2." +msgstr "" + +#. §0: `le_mul_right` +#. §1: `x * y ≠ 0` +#. §2: `have h2 : x * y ≠ 0` +#. §3: `≠` +#. §4: `\\ne` +#. §5: `le_mul_right` +#: Game.Levels.AdvMultiplication.L06mul_right_eq_one +msgid "" +"We want to use §0, but we need a hypothesis §1\n" +"which we don't have. Yet. Execute §2 (you can type §3 with §4).\n" +"You'll be asked to\n" +"prove it, and then you'll have a new hypothesis which you can apply\n" +"§5 to." +msgstr "" + +#. §0: $x=37$ +#. §1: $x=37\\implies y=42$ +#. §2: $y=42$ +#: Game.Levels.Implication.L03apply +msgid "If §0 and we know that §1 then we can deduce §2." +msgstr "" + +#. §0: `rfl` +#. §1: `X = X` +#. §2: `rfl` +#. §3: `A = B` +#. §4: `A` +#. §5: `B` +#. §6: `rfl` +#. §7: ``` +#. x + 37 = x + 37 +#. ``` +#. §8: `rfl` +#. §9: `0 + x = x` +#. §10: `rfl` +#. §11: $0+x$ +#. §12: $x$ +#. §13: `0 + x` +#. §14: `0 + x` +#. §15: `rfl` +#. §16: `rfl` +#. §17: `mathlib` +#. §18: `zero_add` +#. §19: `add_zero` +#: Game.Levels.Tutorial.L01rfl +msgid "" +"## Summary\n" +"\n" +"§0 proves goals of the form §1.\n" +"\n" +"In other words, the §2 tactic will close any goal of the\n" +"form §3 if §4 and §5 are *identical*.\n" +"\n" +"§6 is short for \\\\\"reflexivity (of equality)\\\\\".\n" +"\n" +"## Example:\n" +"\n" +"If the goal looks like this:\n" +"\n" +"§7\n" +"\n" +"then §8 will close it. But if it looks like §9 then §10 won't work, because " +"even\n" +"though §11 and §12 are always equal as *numbers*, they are not equal as " +"*terms*.\n" +"The only term which is identical to §13 is §14.\n" +"\n" +"## Details\n" +"\n" +"§15 is short for \\\\\"reflexivity of equality\\\\\".\n" +"\n" +"## Game Implementation\n" +"\n" +"*Note that our §16 is weaker than the version used in core Lean and §17,\n" +"for pedagogical purposes; mathematicians do not distinguish between " +"propositional\n" +"and definitional equality because they think about definitions in a " +"different way\n" +"to type theorists (§18 and §19 are both \\\\\"facts\\\\\" as far\n" +"as mathematicians are concerned, and who cares what the definition of " +"addition is).*" +msgstr "" + +#: Game +msgid "" +"*Game version: 4.3*\n" +"\n" +"*Recent additions: bug fixes*\n" +"\n" +"## Progress saving\n" +"\n" +"The game stores your progress in your local browser storage.\n" +"If you delete it, your progress will be lost!\n" +"\n" +"Warning: In most browsers, deleting cookies will also clear the local " +"storage\n" +"(or \"local site data\"). Make sure to download your game progress first!\n" +"\n" +"## Credits\n" +"\n" +"* **Creators:** Kevin Buzzard, Jon Eugster\n" +"* **Original Lean3-version:** Kevin Buzzard, Mohammad Pedramfar\n" +"* **Game Engine:** Alexander Bentkamp, Jon Eugster, Patrick Massot\n" +"* **Additional levels:** Sian Carey, Ivan Farabella, Archie Browne.\n" +"* **Additional thanks:** All the student beta testers, all the schools\n" +"who invited Kevin to speak, and all the schoolkids who asked him questions\n" +"about the material.\n" +"\n" +"## Resources\n" +"\n" +"* The [Lean Zulip chat](https://leanprover.zulipchat.com/) forum\n" +"* [Original Lean3 version](https://github.com/ImperialCollegeLondon/" +"natural_number_game/) (no longer maintained)\n" +"\n" +"## Problems?\n" +"\n" +"Please ask any questions about this game in the\n" +"[Lean Zulip chat](https://leanprover.zulipchat.com/) forum, for example in\n" +"the stream \"New Members\". The community will happily help. Note that\n" +"the Lean Zulip chat is a professional research forum.\n" +"Please use your full real name there, stay on topic, and be nice. If you're\n" +"looking for somewhere less formal (e.g. you want to post natural number\n" +"game memes) then head on over to the [Lean Discord](https://discord.gg/" +"WZ9bs9UCvx).\n" +"\n" +"Alternatively, if you experience issues / bugs you can also open github " +"issues:\n" +"\n" +"* For issues with the game engine, please open an\n" +"[issue at the lean4game](https://github.com/leanprover-community/lean4game/" +"issues) repo.\n" +"* For issues about the game's content, please open an\n" +"[issue at the NNG](https://github.com/hhu-adam/NNG4/issues) repo." +msgstr "" + +#. §0: `b = 0` +#. §1: `a * b = 0` +#. §2: `X ≠ 0` +#. §3: `X = 0 → False` +#. §4: `Show more help!` +#: Game.Levels.AdvMultiplication.L02mul_left_ne_zero +msgid "" +"We want to reduce this to a hypothesis §0 and a goal §1,\n" +"which is logically equivalent but much easier to prove. Remember that §2\n" +"is notation for §3. Click on §4 if you need hints." +msgstr "" + +#. §0: `repeat rw [add_zero]` +#: Game.Levels.Tutorial.L05add_zero +msgid "" +"Those of you interested in speedrunning the game may want to know\n" +"that §0 will do both rewrites at once." +msgstr "" + +#. §0: $0$ +#. §1: $0$ +#. §2: `37 + d = q` +#. §3: `37 + succ d` +#. §4: `succ d` +#. §5: `d` +#. §6: `37 + succ d` +#. §7: `succ q` +#. §8: `q` +#. §9: `x + succ d` +#. §10: `succ (x + d)` +#. §11: `add_succ x d : x + succ d = succ (x + d)` +#. §12: `... + succ ...` +#. §13: `rw [add_succ]` +#. §14: `succ n = n + 1` +#. §15: `+ succ` +#. §16: `rw [add_succ]` +#. §17: `+` +#. §18: `012` +#: Game.Levels.Tutorial.L07add_succ +msgid "" +"Every number in Lean is either §0 or a successor. We know how to add §1,\n" +"but we need to figure out how to add successors. Let's say we already know\n" +"that §2. What should the answer to §3 be? Well,\n" +"§4 is one bigger than §5, so §6 should be §7,\n" +"the number one bigger than §8. More generally §9 should\n" +"be §10. Let's add this as a lemma.\n" +"\n" +"* §11\n" +"\n" +"If you ever see §12 in your goal, §13 is\n" +"normally a good idea.\n" +"\n" +"Let's now prove that §14. Figure out how to get §15 into\n" +"the picture, and then §16. Switch between the §17 (addition) and\n" +"§18 (numerals) tabs under \"Theorems\" on the right to\n" +"see which proofs you can rewrite." +msgstr "" + +#. §0: `trivial` +#. §1: `True` +#: Game.Levels.Algorithm.L06is_zero +msgid "" +"# Summary\n" +"\n" +"§0 will solve the goal §1." +msgstr "" + +#. §0: $0^0=1$ +#. §1: $0^n=0$ +#. §2: $n>0$ +#. §3: $n$ +#: Game.Levels.Power.L02zero_pow_succ +msgid "" +"Although §0 in this game, §1 if §2, i.e., if\n" +"§3 is a successor." +msgstr "" + +#. §0: `b = 0` +#. §1: `b ≠ 0` +#. §2: `cases b with d` +#: Game.Levels.AdvAddition.L05add_right_eq_zero +msgid "" +"Here we want to deal with the cases §0 and §1 separately,\n" +"so start with §2." +msgstr "" + +#. §0: `hd` +#. §1: `c` +#. §2: `a * d = a * c → d = c` +#. §3: `apply` +#. §4: `at` +#. §5: `a * d = a * ?` +#: Game.Levels.AdvMultiplication.L09mul_left_cancel +msgid "" +"The inductive hypothesis §0 is \"For all natural numbers §1, §2\".\n" +"You can §3 it §4 any hypothesis of the form §5." +msgstr "" + +#: Game.Levels.Multiplication.L07mul_add +msgid "" +"You can do induction on any of the three variables. Some choices\n" +"are harder to push through than others. Can you do the inductive step in\n" +"5 rewrites only?" +msgstr "" + +#. §0: `0 + «{d}»` +#. §1: `rw [«{hd}»]` +#: Game.Levels.Addition.L01zero_add +msgid "" +"At this point you see the term §0, so you can use the\n" +"induction hypothesis with §1." +msgstr "" + +#. §0: `0 ^ 0` +#. §1: `0 ^ 0 = 1` +#: Game.Levels.Power.L01zero_pow_zero +msgid "" +"Mathematicians sometimes debate what §0 is;\n" +"the answer depends, of course, on your definitions. In this\n" +"game, §1. See if you can prove it.\n" +"\n" +"Check out the *Pow* tab in your list of theorems\n" +"to see the new proofs which are available." +msgstr "" + +#. §0: `1` +#. §1: `succ 0` +#. §2: `h` +#: Game.Levels.Implication.L09zero_ne_succ +msgid "Now change §0 to §1 in §2." +msgstr "" + +#. §0: `apply t at h` +#. §1: `apply t` +#. §2: `apply` +#: Game.Levels.Implication.L05succ_inj2 +msgid "" +"Many people find §0 easy, but some find §1 confusing.\n" +"If you find it confusing, then just argue forwards.\n" +"\n" +"You can read more about the §2 tactic in its documentation, which you can " +"view by\n" +"clicking on the tactic in the list on the right." +msgstr "" + +#: Game.Levels.Algorithm.L03add_algo2 +msgid "Let's now make our own tactic to do this." +msgstr "" + +#. §0: `h` +#. §1: `X = Y` +#. §2: `rw [h]` +#. §3: `X` +#. §4: `Y` +#. §5: `rw [← h]` +#. §6: `Y` +#. §7: `X` +#. §8: `\\left ` +#. §9: `\\l` +#. §10: `rw [h1, h2]` +#. §11: `rw [h] at h2` +#. §12: `X` +#. §13: `Y` +#. §14: `h2` +#. §15: `rw [h] at h1 h2 ⊢` +#. §16: `X` +#. §17: `Y` +#. §18: `⊢` +#. §19: `\\|-` +#. §20: `repeat rw [add_zero]` +#. §21: `? + 0` +#. §22: `?` +#. §23: `? + 0` +#. §24: `nth_rewrite 2 [h]` +#. §25: `X` +#. §26: `Y` +#. §27: `h : x = y + y` +#. §28: ``` +#. succ (x + 0) = succ (y + y) +#. ``` +#. §29: `rw [add_zero]` +#. §30: `succ x = succ (y + y)` +#. §31: `rw [h]` +#. §32: `succ (y + y) = succ (y + y)` +#. §33: `rfl` +#. §34: `rw` +#. §35: ``` +#. h1 : x = y + 3 +#. h2 : 2 * y = x +#. ``` +#. §36: `rw [h1] at h2` +#. §37: `h2` +#. §38: `h2 : 2 * y = y + 3` +#. §39: `rw h` +#. §40: `h` +#. §41: `A = B` +#. §42: `h` +#. §43: `rw` +#. §44: `rw [P = Q]` +#. §45: `P = Q` +#. §46: `h : P = Q` +#. §47: `rw [h]` +#. §48: `rw` +#. §49: `h : A = B` +#. §50: `A` +#. §51: `rw [h]` +#. §52: `B` +#. §53: `A` +#. §54: `add_zero` +#. §55: `? + 0 = ?` +#. §56: `add_zero` +#. §57: `?` +#. §58: `rw` +#. §59: `x + 0` +#. §60: `?` +#. §61: `x` +#. §62: `x + 0` +#. §63: `x` +#. §64: `rw [add_zero]` +#. §65: `(0 + 0) + (x + 0) + (0 + 0) + (x + 0)` +#. §66: `0 + (x + 0) + 0 + (x + 0)` +#. §67: `b + c + a = b + (a + c)` +#. §68: `a + c` +#. §69: `c + a` +#. §70: `rw [add_comm]` +#. §71: `rw [add_comm a c]` +#. §72: `a + c` +#. §73: `c + a` +#. §74: `add_comm` +#. §75: `?1 + ?2 = ?2 + ?1` +#. §76: `add_comm a` +#. §77: `a + ? = ? + a` +#. §78: `add_comm a c` +#. §79: `a + c = c + a` +#. §80: `h : X = Y` +#. §81: `rw [h]` +#. §82: `X` +#. §83: `Y` +#. §84: `X` +#. §85: `Y` +#. §86: `nth_rewrite 37 [h]` +#: Game.Levels.Tutorial.L02rw +msgid "" +"## Summary\n" +"\n" +"If §0 is a proof of an equality §1, then §2 will change\n" +"all §3s in the goal to §4s. It's the way to \\\\\"substitute in\\\\\".\n" +"\n" +"## Variants\n" +"\n" +"* §5 (changes §6s to §7s; get the back arrow by typing §8 or §9.)\n" +"\n" +"* §10 (a sequence of rewrites)\n" +"\n" +"* §11 (changes §12s to §13s in hypothesis §14)\n" +"\n" +"* §15 (changes §16s to §17s in two hypotheses and the goal;\n" +"get the §18 symbol with §19.)\n" +"\n" +"* §20 will keep changing §21 to §22\n" +"until there are no more matches for §23.\n" +"\n" +"* §24 will change only the second §25 in the goal to §26.\n" +"\n" +"### Example:\n" +"\n" +"If you have the assumption §27 and your goal is\n" +"§28\n" +"\n" +"then\n" +"\n" +"§29\n" +"\n" +"will change the goal into §30, and then\n" +"\n" +"§31\n" +"\n" +"will change the goal into §32, which\n" +"can be solved with §33.\n" +"\n" +"### Example:\n" +"\n" +"You can use §34 to change a hypothesis as well.\n" +"For example, if you have two hypotheses\n" +"§35\n" +"then §36 will turn §37 into §38.\n" +"\n" +"## Common errors\n" +"\n" +"* You need the square brackets. §39 is never correct.\n" +"\n" +"* If §40 is not a *proof* of an *equality* (a statement of the form §41),\n" +"for example if §42 is a function or an implication,\n" +"then §43 is not the tactic you want to use. For example,\n" +"§44 is never correct: §45 is the theorem *statement*,\n" +"not the proof. If §46 is the proof, then §47 will work.\n" +"\n" +"## Details\n" +"\n" +"The §48 tactic is a way to do \\\\\"substituting in\\\\\". There\n" +"are two distinct situations where you can use this tactic.\n" +"\n" +"1) Basic usage: if §49 is an assumption or\n" +"the proof of a theorem, and if the goal contains one or more §50s, then §51\n" +"will change them all to §52s. The tactic will error\n" +"if there are no §53s in the goal.\n" +"\n" +"2) Advanced usage: Assumptions coming from theorem proofs\n" +"often have missing pieces. For example §54\n" +"is a proof that §55 because §56 really is a function,\n" +"and §57 is the input. In this situation §58 will look through the goal\n" +"for any subterm of the form §59, and the moment it\n" +"finds one it fixes §60 to be §61 then changes all §62s to §63s.\n" +"\n" +"Exercise: think about why §64 changes the term\n" +"§65 to\n" +"§66\n" +"\n" +"If you can't remember the name of the proof of an equality, look it up in\n" +"the list of lemmas on the right.\n" +"\n" +"## Targeted usage\n" +"\n" +"If your goal is §67 and you want to rewrite §68\n" +"to §69, then §70 will not work because Lean finds another\n" +"addition first and swaps those inputs instead. Use §71 to\n" +"guarantee that Lean rewrites §72 to §73. This works because\n" +"§74 is a proof that §75, §76 is a proof\n" +"that §77, and §78 is a proof that §79.\n" +"\n" +"If §80 then §81 will turn all §82s into §83s.\n" +"If you only want to change the 37th occurrence of §84\n" +"to §85 then do §86." +msgstr "" + +#: Game.Levels.AdvAddition.L06add_left_eq_zero +msgid "add_left_eq_zero" +msgstr "" + +#. §0: `rw [add_succ]` +#: Game.Levels.Tutorial.L07add_succ Game.Levels.Tutorial.L08twoaddtwo +msgid "Now you can §0" +msgstr "" + +#. §0: `←` +#. §1: `rw` +#. §2: `rw` +#. §3: `←` +#. §4: `\\l` +#: Game.Levels.Implication.L04succ_inj +msgid "" +"You can put a §0 in front of any theorem provided to §1 to rewrite\n" +"the other way around. Look at the docs for §2 for an explanation. Type §3 " +"with §4." +msgstr "" + +#. §0: `exact h` +#: Game.Levels.Implication.L05succ_inj2 +msgid "You can now finish with §0." +msgstr "" + +#: Game +msgid "Natural Number Game" +msgstr "" + +#. §0: `n` +#. §1: `cases n with d` +#. §2: `n = 0` +#. §3: `n = succ d` +#. §4: `h` +#. §5: `cases h with...` +#. §6: `n : ℕ` +#. §7: `cases n with d` +#. §8: `n` +#. §9: `n` +#. §10: `succ d` +#. §11: `0` +#. §12: `h : P ∨ Q` +#. §13: `cases h with hp hq` +#. §14: `hp : P` +#. §15: `hq : Q` +#. §16: `h : False` +#. §17: `cases h` +#. §18: `False` +#. §19: `h : a ≤ b` +#. §20: `cases h with c hc` +#. §21: `c` +#. §22: `hc : b = a + c` +#. §23: `a ≤ b` +#. §24: `∃ c, b = a + c` +#: Game.Levels.AdvAddition.L05add_right_eq_zero +msgid "" +"## Summary\n" +"\n" +"If §0 is a number, then §1 will break the goal into two goals,\n" +"one with §2 and the other with §3.\n" +"\n" +"If §4 is a proof (for example a hypothesis), then §5 will break the\n" +"proof up into the pieces used to prove it.\n" +"\n" +"## Example\n" +"\n" +"If §6 is a number, then §7 will break the goal into two goals,\n" +"one with §8 replaced by 0 and the other with §9 replaced by §10. This\n" +"corresponds to the mathematical idea that every natural number is either " +"§11\n" +"or a successor.\n" +"\n" +"## Example\n" +"\n" +"If §12 is a hypothesis, then §13 will turn one goal\n" +"into two goals, one with a hypothesis §14 and the other with a\n" +"hypothesis §15.\n" +"\n" +"## Example\n" +"\n" +"If §16 is a hypothesis, then §17 will turn one goal into no goals,\n" +"because there are no ways to make a proof of §18! And if you have no goals " +"left,\n" +"you have finished the level.\n" +"\n" +"## Example\n" +"\n" +"If §19 is a hypothesis, then §20 will create a new number §21\n" +"and a proof §22. This is because the *definition* of §23 is\n" +"§24." +msgstr "" + +#. §0: `«{ha}»` +#. §1: `«{y}» = «{x}» + «{a}»` +#. §2: `hxy` +#. §3: `«{hyz}»` +#. §4: `cases «{hyz}» with b hb` +#: Game.Levels.LessOrEqual.L04le_trans +msgid "" +"Now §0 is a proof that §1, and §2 has vanished. Similarly, you can destruct\n" +"§3 into its parts with §4." +msgstr "" + +#: Game.Levels.Implication.L04succ_inj +msgid "succ_inj : the successor function is injective" +msgstr "" + +#. §0: `b + 0` +#. §1: `c + 0` +#. §2: `rw [add_zero]` +#. §3: `b + 0` +#. §4: `c + 0` +#. §5: `add_zero` +#: Game.Levels.Tutorial.L06add_zero2 +msgid "" +"## Precision rewriting\n" +"\n" +"In the last level, there was §0 and §1,\n" +"and §2 changed the first one it saw,\n" +"which was §3. Let's learn how to tell Lean\n" +"to change §4 first by giving §5 an\n" +"explicit input." +msgstr "" + +#. §0: `a ≤ b` +#. §1: `∃ c, b = a + c` +#. §2: `a ≤ b` +#. §3: `use` +#. §4: `h : a ≤ b` +#. §5: `cases h with c hc` +#: Game.Levels.LessOrEqual.L01le_refl +msgid "" +"§0 is *notation* for §1.\n" +"\n" +"Because this game doesn't have negative numbers, this definition\n" +"is mathematically valid.\n" +"\n" +"This means that if you have a goal of the form §2 you can\n" +"make progress with the §3 tactic, and if you have a hypothesis\n" +"§4, you can make progress with §5." +msgstr "" + +#. §0: `exact h` +#: Game.Levels.Implication.L06intro +msgid "Now §0 finishes the job." +msgstr "" + +#. §0: `«{x}» ≤ «{x}»` +#. §1: `«{x}» = «{x}» + 0` +#. §2: `use 0` +#: Game.Levels.LessOrEqual.L01le_refl +msgid "" +"The reason §0 is because §1.\n" +"So you should start this proof with §2." +msgstr "" + +#. §0: $x \\leq y$ +#. §1: $y \\leq z$ +#. §2: $x \\leq z$ +#: Game.Levels.LessOrEqual.L04le_trans Game.Levels.LessOrEqual.L06le_antisymm +msgid "If §0 and §1, then §2." +msgstr "" + +#. §0: ``` +#. apply mul_left_ne_zero at h +#. apply one_le_of_ne_zero at h +#. apply mul_le_mul_right 1 b a at h +#. rw [one_mul, mul_comm] at h +#. exact h +#. ``` +#: Game.Levels.AdvMultiplication.L05le_mul_right +msgid "" +"Here's what I was thinking of:\n" +"§0" +msgstr "" + +#. §0: `nth_rewrite 2 [two_eq_succ_one]` +#. §1: `rw [two_eq_succ_one]` +#: Game.Levels.Tutorial.L08twoaddtwo +msgid "§0 is I think quicker than §1." +msgstr "" + +#: GameServer.RpcHandlers +msgid "intermediate goal solved! 🎉" +msgstr "" + +#. §0: $a, b$ +#. §1: $c$ +#. §2: $ (a + b) + c = a + (b + c). $ +#: Game.Levels.Addition.L04add_assoc +msgid "" +"On the set of natural numbers, addition is associative.\n" +"In other words, if §0 and §1 are arbitrary natural numbers, we have\n" +"§2" +msgstr "" + +#. §0: `use` +#: Game.Levels.LessOrEqual.L04le_trans +msgid "" +"Now you need to figure out which number to §0. See if you can take it from " +"here." +msgstr "" + +#. §0: `t : P → Q` +#. §1: $P \\implies Q$ +#. §2: `h : P` +#. §3: `P` +#. §4: `apply t at h` +#. §5: `h` +#. §6: `Q` +#. §7: `P` +#. §8: `t` +#. §9: `Q` +#. §10: `Q` +#. §11: `apply t` +#. §12: `P` +#. §13: `Q` +#. §14: `t` +#. §15: `P` +#. §16: `P` +#. §17: `succ_inj x y` +#. §18: `succ x = succ y → x = y` +#. §19: `h : succ (a + 37) = succ (b + 42)` +#. §20: `apply succ_inj at h` +#. §21: `h` +#. §22: `a + 37 = b + 42` +#. §23: `apply succ_inj (a + 37) (b + 42) at h` +#. §24: `succ_inj` +#. §25: `a * b = 7` +#. §26: `apply succ_inj` +#. §27: `succ (a * b) = succ 7` +#: Game.Levels.Implication.L03apply +msgid "" +"## Summary\n" +"\n" +"If §0 is a proof that §1, and §2 is a proof of §3,\n" +"then §4 will change §5 to a proof of §6. The idea is that if\n" +"you know §7 is true, then you can deduce from §8 that §9 is true.\n" +"\n" +"If the *goal* is §10, then §11 will \\\\\"argue backwards\\\\\" and change " +"the\n" +"goal to §12. The idea here is that if you want to prove §13, then by §14\n" +"it suffices to prove §15, so you can reduce the goal to proving §16.\n" +"\n" +"### Example:\n" +"\n" +"§17 is a proof that §18.\n" +"\n" +"So if you have a hypothesis §19\n" +"then §20 will change §21 to §22.\n" +"You could write §23\n" +"but Lean is smart enough to figure out the inputs to §24.\n" +"\n" +"### Example\n" +"\n" +"If the goal is §25, then §26 will turn the\n" +"goal into §27." +msgstr "" + +#. §0: `cases «{h2}» with e he` +#: Game.Levels.LessOrEqual.L08le_total +msgid "Now §0." +msgstr "" + +#. §0: `add_mul` +#: Game.Levels.Multiplication.L08add_mul +msgid "" +"§0 is just as fiddly to prove by induction; but there's a trick\n" +"which avoids it. Can you spot it?" +msgstr "" + +#. §0: `repeat rw [← succ_eq_add_one] at h` +#. §1: `h` +#. §2: `succ x = succ y` +#: Game.Levels.Implication.L07intro2 +msgid "" +"Now §0 is the quickest way to\n" +"change §1 to §2." +msgstr "" + +#. §0: ``` +#. use 1 +#. exact succ_eq_add_one x +#. ``` +#. §1: `succ_eq_add_one x` +#. §2: `succ x = x + 1` +#: Game.Levels.LessOrEqual.L03le_succ_self +msgid "" +"Here's a two-liner:\n" +"§0\n" +"\n" +"This works because §1 is a proof of §2." +msgstr "" + +#. §0: `intro h` +#. §1: `X ≠ Y` +#. §2: `X = Y → False` +#: Game.Levels.Algorithm.L06is_zero +msgid "" +"Start with §0 (remembering that §1 is just notation\n" +"for §2)." +msgstr "" + +#. §0: `n` +#. §1: `induction n with d hd` +#: Game.Levels.Addition.L01zero_add +msgid "" +"You can start a proof by induction on §0 by typing:\n" +"§1." +msgstr "" + +#. §0: ```lean +#. nth_rewrite 2 [two_eq_succ_one] -- only change the second `2` to `succ 1`. +#. rw [add_succ] +#. rw [one_eq_succ_zero] +#. rw [add_succ, add_zero] -- two rewrites at once +#. rw [← three_eq_succ_two] -- change `succ 2` to `3` +#. rw [← four_eq_succ_three] +#. rfl +#. ``` +#. §1: `` +#. §2: `>_` +#. §3: `induction` +#: Game.Levels.Tutorial.L08twoaddtwo +msgid "" +"Here is an example proof of 2+2=4 showing off various techniques.\n" +"\n" +"§0\n" +"\n" +"Optional extra: you can run this proof yourself. Switch the game into " +"\"Editor mode\" by clicking\n" +"on the §1 button in the top right. You can now see your proof\n" +"written as several lines of code. Move your cursor between lines to see\n" +"the goal state at any point. Now cut and paste your code elsewhere if you\n" +"want to save it, and paste the above proof in instead. Move your cursor\n" +"around to investigate. When you've finished, click the §2 button in the top " +"right to\n" +"move back into \"Typewriter mode\".\n" +"\n" +"You have finished tutorial world!\n" +"Click \"Home\" to go back to the\n" +"overworld, and select Addition World, where you will learn\n" +"about the §3 tactic." +msgstr "" + +#. §0: `Pow a b` +#. §1: `a ^ b` +#. §2: `pow_zero a : a ^ 0 = 1` +#. §3: `pow_succ a b : a ^ succ b = a ^ b * a` +#. §4: `0 ^ 0 = 1` +#: Game.Levels.Power.L01zero_pow_zero +msgid "" +"§0, with notation §1, is the usual\n" +" exponentiation of natural numbers. Internally it is\n" +" defined via two axioms:\n" +"\n" +" * §2\n" +"\n" +" * §3\n" +"\n" +"Note in particular that §4." +msgstr "" + +#. §0: `≤` +#. §1: `a` +#. §2: `b` +#. §3: `a ≤ b` +#. §4: `b ≤ a` +#. §5: `or` +#. §6: `∨` +#. §7: `\\or` +#. §8: `left` +#. §9: `right` +#. §10: `h` +#. §11: `cases h with h1 h2` +#: Game.Levels.LessOrEqual.L07or_symm +msgid "" +"Totality of §0 is the boss level of this world, and it's coming up next. It " +"says that\n" +"if §1 and §2 are naturals then either §3 or §4.\n" +"But we haven't talked about §5 at all. Here's a run-through.\n" +"\n" +"1) The notation for \"or\" is §6. You won't need to type it, but you can\n" +"type it with §7.\n" +"\n" +"2) If you have an \"or\" statement in the *goal*, then two tactics make\n" +"progress: §8 and §9. But don't choose a direction unless your\n" +"hypotheses guarantee that it's the correct one.\n" +"\n" +"3) If you have an \"or\" statement as a *hypothesis* §10, then\n" +"§11 will create two goals, one where you went left,\n" +"and the other where you went right." +msgstr "" + +#. §0: `one_eq_succ_zero` +#. §1: `1 = succ 0` +#: Game.Levels.Tutorial.L03two_eq_ss0 +msgid "§0 is a proof of §1.\"" +msgstr "" + +#: Game.Levels.Addition.L01zero_add +msgid "zero_add" +msgstr "" + +#. §0: `induction b with d hd generalizing c` +#: Game.Levels.AdvMultiplication.L09mul_left_cancel +msgid "The way to start this proof is §0." +msgstr "" + +#. §0: `0 ^ 0 = 1` +#. §1: `n` +#. §2: `0 ^ n = 0` +#: Game.Levels.Power.L02zero_pow_succ +msgid "" +"We've just seen that §0, but if §1\n" +"is a successor, then §2. We prove that here." +msgstr "" + +#. §0: `zero_mul x` +#. §1: `0 * x = 0` +#. §2: `zero_mul` +#. §3: `simp` +#: Game.Levels.Multiplication.L02zero_mul +msgid "" +"§0 is the proof that §1.\n" +"\n" +"Note: §2 is a §3 lemma." +msgstr "" + +#. §0: $\\leq$ +#. §1: $x \\leq y$ +#. §2: $y \\leq x$ +#. §3: $x = y$ +#: Game.Levels.LessOrEqual.L06le_antisymm +msgid "" +"This level asks you to prove *antisymmetry* of §0.\n" +"In other words, if §1 and §2 then §3.\n" +"It's the trickiest one so far. Good luck!" +msgstr "" + +#. §0: `contrapose!` +#: Game.Levels.AdvMultiplication.L02mul_left_ne_zero +msgid "" +"If you have completed Algorithm World then you can use the §0 tactic\n" +"here. If not then I'll talk you through a manual approach." +msgstr "" + +#. §0: $2y=2(x+7)$ +#. §1: `h` +#. §2: $y = x + 7$ +#. §3: `h` +#. §4: `h` +#. §5: `x` +#. §6: `rfl` +#. §7: $y$ +#. §8: `h` +#. §9: `rw` +#: Game.Levels.Tutorial.L02rw +msgid "" +"In this level the *goal* is §0 but to help us we\n" +"have an *assumption* §1 saying that §2. Check that you can see §3 in\n" +"your list of assumptions. Lean thinks of §4 as being a secret proof of the\n" +"assumption, rather like §5 is a secret number.\n" +"\n" +"Before we can use §6, we have to \"substitute in for §7\".\n" +"We do this in Lean by *rewriting* the goal with §8,\n" +"using the §9 tactic." +msgstr "" + +#. §0: `zero_ne_succ n` +#. §1: `0 ≠ succ n` +#. §2: `a ≠ b` +#. §3: `a = b → False` +#. §4: `zero_ne_succ n` +#. §5: `0 = succ n → False` +#. §6: `False` +#. §7: `apply zero_ne_succ at h` +#. §8: `h` +#. §9: `0 = succ n` +#: Game.Levels.Implication.L09zero_ne_succ +msgid "" +"§0 is the proof that §1.\n" +"\n" +"In Lean, §2 is *defined to mean* §3. Hence\n" +"§4 is really a proof of §5.\n" +"Here §6 is a generic false statement. This means that\n" +"you can §7 if §8 is a proof of §9." +msgstr "" + +#: Game.Levels.Multiplication.L01mul_one +msgid "mul_one" +msgstr "" + +#. §0: `add_left_cancel a b n` +#. §1: $n+a=n+b\\implies a=b$ +#. §2: `n` +#. §3: `add_right_cancel` +#: Game.Levels.AdvAddition.L02add_left_cancel +msgid "" +"§0 is the theorem that §1.\n" +"You can prove it by induction on §2 or you can deduce it from §3." +msgstr "" + +#. §0: `rw [«{h}»] at «{h2}»` +#. §1: `apply le_one at «{h2}»` +#: Game.Levels.AdvMultiplication.L06mul_right_eq_one +msgid "Now §0 so you can §1." +msgstr "" + +#. §0: $x \\leq 2$ +#. §1: $x = 0$ +#. §2: $1$ +#. §3: $2$ +#: Game.Levels.LessOrEqual.L11le_two +msgid "If §0 then §1 or §2 or §3." +msgstr "" + +#. §0: `two_eq_succ_one` +#. §1: `2 = succ 1` +#: Game.Levels.Tutorial.L03two_eq_ss0 Game.Levels.Addition.L03add_comm +#: Game.Levels.Implication.L09zero_ne_succ Game.Levels.Algorithm.L05pred +#: Game.Levels.Algorithm.L06is_zero Game.Levels.LessOrEqual.L05le_zero +msgid "§0 is a proof of §1." +msgstr "" + +#. §0: $a$ +#. §1: $b$ +#. §2: $c$ +#. §3: $n$ +#. §4: $$(a+1)^{n+3}+(b+1)^{n+3}\\not=(c+1)^{n+3}.$$ +#: Game.Levels.Power.L10FLT +msgid "" +"For all naturals §0 §1 §2 and §3, we have\n" +"§4" +msgstr "" + +#. §0: `le_antisymm x y` +#. §1: `x ≤ y` +#. §2: `y ≤ x` +#. §3: `x = y` +#: Game.Levels.LessOrEqual.L06le_antisymm +#: Game.Levels.AdvMultiplication.L07mul_ne_zero +#: Game.Levels.AdvMultiplication.L09mul_left_cancel +#: Game.Levels.AdvMultiplication.L10mul_right_eq_self +msgid "§0 is a proof that if §1 and §2 then §3." +msgstr "" + +#. §0: ``` +#. repeat rw [add_comm n] +#. exact add_right_cancel a b n +#. ``` +#: Game.Levels.AdvAddition.L02add_left_cancel +msgid "" +"How about this for a proof:\n" +"§0" +msgstr "" + +#. §0: `rw [h]` +#. §1: `rfl` +#. §2: `exact h` +#: Game.Levels.Implication.L07intro2 +msgid "Now §0 then §1 works, but §2 is quicker." +msgstr "" + +#. §0: `le_refl x` +#. §1: `x ≤ x` +#. §2: $\\le$ +#: Game.Levels.LessOrEqual.L01le_refl +msgid "" +"§0 is a proof of §1.\n" +"\n" +"The reason for the name is that this lemma is \"reflexivity of §2\"" +msgstr "" + +#: Game.Levels.Addition.L03add_comm +msgid "add_comm (level boss)" +msgstr "" + +#. §0: `mul_comm x y : x * y = y * x` +#. §1: `mul_zero` +#. §2: `zero_mul` +#: Game.Levels.Multiplication.L02zero_mul +msgid "" +"Our first challenge is §0,\n" +"and we want to prove it by induction. The zero\n" +"case will need §1 (which we have)\n" +"and §2 (which we don't), so let's\n" +"start with this." +msgstr "" + +#. §0: `simp_add` +#. §1: `a + (b + c) + (d + e) = e + (d + (c + b)) + a` +#: Game.Levels.Algorithm.L04add_algo3 +msgid "" +"# Overview\n" +"\n" +"Our home-made tactic §0 will solve arbitrary goals of\n" +"the form §1." +msgstr "" + +#. §0: `20 + 20 = 40` +#: Game.Levels.Algorithm.L04add_algo3 +msgid "" +"Let's now move on to a more efficient approach to questions\n" +"involving numerals, such as §0." +msgstr "" + +#: Game.Levels.Multiplication.L09mul_assoc +msgid "" +"We now have enough to prove that multiplication is associative,\n" +"the boss level of multiplication world. Good luck!" +msgstr "" + +#: Game.Levels.Power.L08pow_pow +msgid "pow_pow" +msgstr "" + +#: Game.Levels.Implication.L04succ_inj +msgid "Now finish in one line." +msgstr "" + +#. §0: `le_two x` +#. §1: `x ≤ 2` +#. §2: `x = 0` +#. §3: `x = 1` +#. §4: `x = 2` +#: Game.Levels.LessOrEqual.L11le_two +msgid "§0 is a proof that if §1 then §2 or §3 or §4." +msgstr "" + +#. §0: ``` +#. rw [add_comm] +#. exact add_right_eq_zero b a +#. ``` +#. §1: `≤` +#: Game.Levels.AdvAddition.L06add_left_eq_zero +msgid "" +"How about this for a proof:\n" +"\n" +"§0\n" +"\n" +"That's the end of Advanced Addition World! You'll need these theorems\n" +"for the next world, §1 World. Click on \"Home\" to access it." +msgstr "" + +#. §0: `Mul a b` +#. §1: `a * b` +#. §2: `mul_zero a : a * 0 = 0` +#. §3: `mul_succ a b : a * succ b = a * b + a` +#. §4: `zero_mul` +#: Game.Levels.Multiplication.L01mul_one +msgid "" +"§0, with notation §1, is the usual\n" +" product of natural numbers. Internally it is\n" +" via two axioms:\n" +"\n" +" * §2\n" +"\n" +" * §3\n" +"\n" +"Other theorems about naturals, such as §4,\n" +"are proved by induction from these two basic theorems." +msgstr "" + +#. §0: `add_zero a` +#. §1: `a + 0 = a` +#. §2: `add_zero` +#. §3: `add_zero 37` +#. §4: `37 + 0 = 37` +#. §5: `rw` +#. §6: `rw [add_zero]` +#. §7: `add_zero` +#. §8: $\\forall n ∈ ℕ, n + 0 = n$ +#. §9: `n + 0 = n` +#: Game.Levels.Tutorial.L05add_zero +msgid "" +"§0 is a proof that §1.\n" +"\n" +"## Summary\n" +"\n" +"§2 is really a function, which\n" +"eats a number, and returns a proof of a theorem\n" +"about that number. For example §3 is\n" +"a proof that §4.\n" +"\n" +"The §5 tactic will accept §6\n" +"and will try to figure out which number you omitted\n" +"to input.\n" +"\n" +"## Details\n" +"\n" +"A mathematician sometimes thinks of §7\n" +"as \\\\\"one thing\\\\\", namely a proof of §8.\n" +"This is just another way of saying that it's a function which\n" +"can eat any number n and will return a proof that §9." +msgstr "" + +#. §0: $a$ +#. §1: $b$ +#. §2: $$(a+b)^2=a^2+b^2+2ab.$$ +#: Game.Levels.Power.L09add_sq +msgid "" +"For all numbers §0 and §1, we have\n" +"§2" +msgstr "" + +#. §0: `rfl` +#. §1: `rfl` +#. §2: `rfl` +#. §3: `rw` +#: Game.Levels.Tutorial.L01rfl +msgid "" +"Congratulations! You completed your first verified proof!\n" +"\n" +"Remember that §0 is a *tactic*. If you ever want information about the §1 " +"tactic,\n" +"you can click on §2 in the list of tactics on the right.\n" +"\n" +"Now click on \"Next\" to learn about the §3 tactic." +msgstr "" + +#. §0: $0+x=(0+y)+2$ +#. §1: $x=y+2$ +#: Game.Levels.Implication.L02exact2 +msgid "Assuming §0, we have §1." +msgstr "" + +#. §0: `add_right_cancel a b n` +#. §1: $a+n=b+n\\implies a=b$ +#: Game.Levels.AdvAddition.L01add_right_cancel +msgid "" +"In this world I will mostly leave you on your own.\n" +"\n" +"§0 is the theorem that §1." +msgstr "" + +#: Game.Levels.Power.L06pow_add +msgid "" +"Let's now begin our approach to the final boss,\n" +"by proving some more subtle facts about powers." +msgstr "" + +#. §0: `succ_le_succ x y` +#. §1: `succ x ≤ succ y` +#. §2: `x ≤ y` +#: Game.Levels.LessOrEqual.L09succ_le_succ +msgid "§0 is a proof that if §1 then §2." +msgstr "" + +#: Game.Levels.Implication.L08ne +msgid "≠" +msgstr "" + +#. §0: `c = 0` +#. §1: `c = succ e` +#. §2: `cases c with e` +#: Game.Levels.AdvMultiplication.L09mul_left_cancel +msgid "Split into cases §0 and §1 with §2." +msgstr "" + +#. §0: `intro h` +#. §1: `h` +#: Game.Levels.Implication.L06intro +msgid "Start with §0 to assume the hypothesis and call its proof §1." +msgstr "" + +#: Game.Levels.AdvMultiplication.L10mul_right_eq_self +msgid "mul_right_eq_self" +msgstr "" + +#. §0: `add_comm` +#. §1: `succ_add` +#. §2: `succ_add a b` +#. §3: `(succ a) + b = succ (a + b)` +#. §4: `a` +#. §5: `b` +#. §6: `x + y = y + x` +#. §7: `b` +#. §8: `b = 0` +#. §9: `b` +#: Game.Levels.Addition.L02succ_add +msgid "" +"Oh no! On the way to §0, a wild §1 appears. §2\n" +"is the proof that §3 for §4 and §5 numbers.\n" +"This result is what's standing in the way of §6. Again\n" +"we have the problem that we are adding §7 to things, so we need\n" +"to use induction to split into the cases where §8 and §9 is a successor." +msgstr "" + +#. §0: `simp` +#. §1: `simp` +#. §2: `add_comm` +#: Game.Levels.Algorithm.L03add_algo2 +msgid "" +"# Overview\n" +"\n" +"Lean's simplifier, §0, will rewrite every lemma\n" +"tagged with §1 and every lemma fed to it by the user, as much as it can.\n" +"Furthermore, it will attempt to order variables into an internal order if " +"fed\n" +"lemmas such as §2, so that it does not go into an infinite loop." +msgstr "" + +#. §0: `cases ha with n hn` +#: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero +msgid "Now take apart the existence statement with §0." +msgstr "" + +#. §0: $2+2=4$ +#: Game.Levels.Tutorial.L08twoaddtwo Game.Levels.Implication.L06intro +#: Game.Levels.Implication.L07intro2 Game.Levels.Implication.L09zero_ne_succ +#: Game.Levels.Implication.L10one_ne_zero +#: Game.Levels.Implication.L11two_add_two_ne_five +#: Game.Levels.Algorithm.L02add_algo1 Game.Levels.Algorithm.L06is_zero +#: Game.Levels.Algorithm.L08decide Game.Levels.AdvAddition.L01add_right_cancel +#: Game.Levels.AdvAddition.L02add_left_cancel +#: Game.Levels.AdvAddition.L04add_right_eq_self +msgid "§0." +msgstr "" + +#. §0: $x,y,z>0$ +#. §1: $m \\geq 3$ +#. §2: $x^m+y^m\\not =z^m$ +#. §3: $m \\geq 3$ +#. §4: `n + 3` +#. §5: `m` +#. §6: `x > 0` +#. §7: `a + 1` +#: Game.Levels.Power.L10FLT +msgid "" +"We now have enough to state a mathematically accurate, but slightly\n" +"clunky, version of Fermat's Last Theorem.\n" +"\n" +"Fermat's Last Theorem states that if §0 and §1 then §2.\n" +"If you didn't do inequality world yet then we can't talk about §3,\n" +"so we have to resort to the hack of using §4 for §5,\n" +"which guarantees it's big enough. Similarly instead of §6 we\n" +"use §7.\n" +"\n" +"This level looks superficially like other levels we have seen,\n" +"but the shortest solution known to humans would translate into\n" +"many millions of lines of Lean code. The author of this game,\n" +"Kevin Buzzard, is working on translating the proof by Wiles\n" +"and Taylor into Lean, although this task will take many years.\n" +"\n" +"## CONGRATULATIONS!\n" +"\n" +"You've finished the main quest of the natural number game!\n" +"If you would like to learn more about how to use Lean to\n" +"prove theorems in mathematics, then take a look\n" +"at [Mathematics In Lean](https://leanprover-community.github.io/" +"mathematics_in_lean/),\n" +"an interactive textbook which you can read in your browser,\n" +"and which explains how to work with many more mathematical concepts in Lean." +msgstr "" + +#: Game.Levels.Algorithm.L09decide2 +msgid "decide again" +msgstr "" + +#: Game.Levels.LessOrEqual.L03le_succ_self +msgid "x ≤ succ x" +msgstr "" + +#: Game.Levels.Tutorial.L02rw +msgid "" +"Can you take it from here? Click on \"Show more help!\" if you need a hint." +msgstr "" + +#. §0: `contrapose! h` +#. §1: `succ m = succ n` +#. §2: `m = n` +#: Game.Levels.Algorithm.L07succ_ne_succ +msgid "" +"Start with §0, to change the goal into its\n" +"contrapositive, namely a hypothesis of §1 and a goal of §2." +msgstr "" + +#: Game.Levels.Multiplication.L07mul_add +msgid "mul_add" +msgstr "" + +#. §0: `a` +#. §1: `b` +#: Game.Levels.Addition.L02succ_add +msgid "" +"You might want to think about whether induction\n" +"on §0 or §1 is the best idea." +msgstr "" + +#. §0: `le_trans x y z` +#. §1: `x ≤ y` +#. §2: `y ≤ z` +#. §3: `x ≤ z` +#. §4: `x ≤ y → (y ≤ z → x ≤ z)` +#. §5: $x \\le y$ +#. §6: $y \\le z$ +#. §7: $x \\le z$ +#. §8: `a + b + c` +#. §9: `(a + b) + c` +#. §10: `+` +#. §11: `→` +#. §12: `x ≤ y → y ≤ z → x ≤ z` +#. §13: `≤` +#. §14: $P \\implies Q \\implies R$ +#. §15: $P \\implies Q$ +#. §16: $Q \\implies R$ +#: Game.Levels.LessOrEqual.L04le_trans +msgid "" +"§0 is a proof that if §1 and §2 then §3.\n" +"More precisely, it is a proof that §4. In words,\n" +"If §5 then (pause) if §6 then §7.\n" +"\n" +"## A note on associativity\n" +"\n" +"In Lean, §8 means §9, because §10 is left associative. However\n" +"§11 is right associative. This means that §12 in Lean means\n" +"exactly that §13 is transitive. This is different to how mathematicians use\n" +"§14; for them, this usually means that §15\n" +"and §16." +msgstr "" + +#: Game.Levels.Algorithm.L02add_algo1 +msgid "making life easier" +msgstr "" + +#. §0: `add_succ` +#: Game.Levels.Addition.L01zero_add +msgid "Use §0." +msgstr "" + +#. §0: `or` +#. §1: `right` +#: Game.Levels.LessOrEqual.L07or_symm +msgid "" +"Now we can prove the §0 statement by proving the statement on the right,\n" +"so use the §1 tactic." +msgstr "" + +#. §0: `h : a ≠ b` +#. §1: `c ≠ d` +#. §2: `contrapose! h` +#. §3: `h : c = d` +#. §4: `a = b` +#: Game.Levels.Algorithm.L07succ_ne_succ +msgid "" +"# Summary\n" +"\n" +"If you have a hypothesis\n" +"\n" +"§0\n" +"\n" +"and goal\n" +"\n" +"§1\n" +"\n" +"then §2 replaces the set-up with its so-called \\\\\"contrapositive\\\\\":\n" +"a hypothesis\n" +"\n" +"§3\n" +"\n" +"and goal\n" +"\n" +"§4." +msgstr "" + +#. §0: `succ_add a b` +#. §1: `succ a + b = succ (a + b)` +#: Game.Levels.Addition.L02succ_add Game.Levels.Multiplication.L08add_mul +#: Game.Levels.Power.L04one_pow Game.Levels.Implication.L10one_ne_zero +#: Game.Levels.Algorithm.L01add_left_comm Game.Levels.LessOrEqual.L02zero_le +#: Game.Levels.LessOrEqual.L03le_succ_self +#: Game.Levels.AdvMultiplication.L01mul_le_mul_right +#: Game.Levels.AdvMultiplication.L02mul_left_ne_zero +#: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero +#: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero +#: Game.Levels.AdvMultiplication.L06mul_right_eq_one +msgid "§0 is a proof that §1." +msgstr "" + +#: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero +msgid "eq_succ_of_ne_zero" +msgstr "" + +#. §0: ``` +#. induction c with d hd +#. rw [add_zero, mul_zero, add_zero] +#. rfl +#. rw [add_succ, mul_succ, hd, mul_succ, add_assoc] +#. rfl +#. ``` +#. §1: `a` +#. §2: `b` +#: Game.Levels.Multiplication.L07mul_add +msgid "" +"Here's my solution:\n" +"§0\n" +"\n" +"Inducting on §1 or §2 also works, but might take longer." +msgstr "" + +#. §0: `apply succ_inj` +#. §1: `succ_inj` +#: Game.Levels.Implication.L05succ_inj2 +msgid "Start with §0 to apply §1 to the *goal*." +msgstr "" + +#: Game.Levels.Multiplication.L02zero_mul +msgid "zero_mul" +msgstr "" + +#: Game.Levels.Tutorial.L03two_eq_ss0 +msgid "Can you take it from here?" +msgstr "" + +#: Game.Levels.Power.L07mul_pow +msgid "mul_pow" +msgstr "" + +#. §0: `≤` +#. §1: `ℕ` +#: Game.Levels.LessOrEqual.L04le_trans +msgid "" +"A passing mathematician remarks that with reflexivity and transitivity out " +"of the way,\n" +"you have proved that §0 is a *preorder* on §1." +msgstr "" + +#. §0: ``` +#. cases hxy with a ha +#. cases hyx with b hb +#. rw [ha] +#. rw [ha, add_assoc] at hb +#. symm at hb +#. apply add_right_eq_self at hb +#. apply add_right_eq_zero at hb +#. rw [hb, add_zero] +#. rfl +#. ``` +#. §1: `≤` +#. §2: `ℕ` +#. §3: `≤` +#: Game.Levels.LessOrEqual.L06le_antisymm +msgid "" +"Here's my proof:\n" +"§0\n" +"\n" +"A passing mathematician remarks that with antisymmetry as well,\n" +"you have proved that §1 is a *partial order* on §2.\n" +"\n" +"The boss level of this world is to prove\n" +"that §3 is a total order. Let's learn two more easy tactics\n" +"first." +msgstr "" + +#: Game.Levels.Multiplication.L05one_mul +msgid "one_mul" +msgstr "" + +#. §0: `«{hd}» : 0 + «{d}» = «{d}»` +#. §1: `0 + succ «{d}» = succ «{d}»` +#: Game.Levels.Addition.L01zero_add +msgid "" +"Now for the second goal. Here you have the induction hypothesis\n" +"§0, and you need to prove that §1." +msgstr "" + +#: Game.Levels.Algorithm.L05pred +msgid "pred" +msgstr "" + +#. §0: `exact` +#: Game.Levels.Implication.L01exact Game.Levels.LessOrEqual.L01le_refl +msgid "The §0 tactic" +msgstr "" + +#. §0: `succ n` +#. §1: `n + 1` +#: Game.Levels.Tutorial.L04rw_backwards +msgid "" +"Why did we not just define §0 to be §1? Because we have not\n" +"even *defined* addition yet! We'll do that in the next level." +msgstr "" + +#. §0: $x$ +#. §1: $y$ +#. §2: $y = x + 7$ +#. §3: $2y = 2(x + 7)$ +#: Game.Levels.Tutorial.L02rw +msgid "If §0 and §1 are natural numbers, and §2, then §3." +msgstr "" + +#: Game.Levels.Power.L09add_sq +msgid "[final boss music]" +msgstr "" + +#. §0: `succ_eq_add_one n` +#. §1: `succ n = n + 1` +#: Game.Levels.Tutorial.L07add_succ Game.Levels.Multiplication.L01mul_one +#: Game.Levels.Multiplication.L06two_mul Game.Levels.Algorithm.L07succ_ne_succ +msgid "§0 is the proof that §1." +msgstr "" + +#: Game.Levels.Addition.L05add_right_comm +msgid "add_right_comm" +msgstr "" + +#. §0: `add_zero` +#: Game.Levels.Addition.L01zero_add +msgid "try rewriting §0." +msgstr "" + +#: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero +msgid "one_le_of_ne_zero" +msgstr "" + +#. §0: `add_right_cancel a b n` +#. §1: $a+n=b+n \\implies a=b.$ +#: Game.Levels.AdvAddition.L01add_right_cancel +#: Game.Levels.AdvAddition.L02add_left_cancel +#: Game.Levels.AdvAddition.L03add_left_eq_self +#: Game.Levels.AdvAddition.L04add_right_eq_self +msgid "§0 is the theorem that §1" +msgstr "" + +#: Game.Levels.Power.L04one_pow +msgid "one_pow" +msgstr "" + +#. §0: $a, b, c$ +#. §1: $a+(b+c)=b+(a+c)$ +#: Game.Levels.Algorithm.L01add_left_comm +msgid "If §0 are numbers, then §1." +msgstr "" + +#. §0: `a ≤ b` +#. §1: `∃ c, b = a + c` +#. §2: `a ≤ b` +#. §3: `c` +#. §4: `b = a + c` +#. §5: `use` +#: Game.Levels.LessOrEqual.L01le_refl +msgid "" +"§0 is *notation* for §1. This \"backwards E\"\n" +"means \"there exists\". So §2 means that there exists\n" +"a number §3 such that §4. This definition works\n" +"because there are no negative numbers in this game.\n" +"\n" +"To *prove* an \"exists\" statement, use the §5 tactic.\n" +"Let's see an example." +msgstr "" + +#: Game.Levels.LessOrEqual.L02zero_le +msgid "0 ≤ x" +msgstr "" + +#. §0: `or` +#: Game.Levels.LessOrEqual.L07or_symm +msgid "Dealing with §0" +msgstr "" + +#: Game.Levels.Multiplication.L08add_mul +msgid "add_mul" +msgstr "" + +#. §0: `apply eq_succ_of_ne_zero at ha` +#. §1: `... at hb` +#: Game.Levels.AdvMultiplication.L07mul_ne_zero +msgid "Start with §0 and §1" +msgstr "" + +#. §0: `pow_succ a b : a ^ (succ b) = a ^ b * a` +#: Game.Levels.Power.L02zero_pow_succ +msgid "" +"§0 is one of the\n" +"two axioms defining exponentiation in this game." +msgstr "" + +#. §0: `mul_zero` +#. §1: `mul_succ` +#. §2: `1` +#: Game.Levels.Multiplication.L01mul_one +msgid "" +"See the new \"*\" tab in your lemmas, containing §0 and §1.\n" +"Right now these are the only facts we know about multiplication.\n" +"Let's prove nine more.\n" +"\n" +"Let's start with a warm-up: no induction needed for this one,\n" +"because we know §2 is a successor." +msgstr "" + +#: Game.Levels.Implication.L09zero_ne_succ +#: Game.Levels.AdvAddition.L01add_right_cancel +msgid "Nice!" +msgstr "" + +#. §0: $m$ +#. §1: $ m \\times 1 = m$ +#: Game.Levels.Multiplication.L01mul_one Game.Levels.Multiplication.L05one_mul +#: Game.Levels.Multiplication.L06two_mul +msgid "For any natural number §0, we have §1." +msgstr "" + +#. §0: `rw [h]` +#. §1: `y` +#. §2: `x + 7` +#: Game.Levels.Tutorial.L02rw +msgid "First execute §0 to replace the §1 with §2." +msgstr "" + +#. §0: $2+2=4$ +#. §1: $2+2\\neq 5$ +#. §2: $x + y = y + x$ +#. §3: $x+1=4 \\implies x=3.$ +#: Game.Levels.Implication +msgid "" +"We've proved that §0; in Implication World we'll learn\n" +"how to prove §1.\n" +"\n" +"In Addition World we proved *equalities* like §2.\n" +"In this second tutorial world we'll learn some new tactics,\n" +"enabling us to prove *implications*\n" +"like §3\n" +"\n" +"We'll also learn two new fundamental facts about\n" +"natural numbers, which Peano introduced as axioms.\n" +"\n" +"Click on \"Start\" to proceed." +msgstr "" + +#: Game.Levels.LessOrEqual.L11le_two +msgid "le_two" +msgstr "" + +#: Game.Levels.Power.L05pow_two +msgid "pow_two" +msgstr "" + +#. §0: ``` +#. have h2 := mul_ne_zero a b +#. tauto +#. ``` +#. §1: `mul_ne_zero a b` +#: Game.Levels.AdvMultiplication.L08mul_eq_zero +msgid "" +"Here's the short proof:\n" +"§0\n" +"This works because, given §1,\n" +"the argument is reduced to pure logic." +msgstr "" + +#. §0: `rw [← pred_succ a]` +#: Game.Levels.Algorithm.L05pred +msgid "Start with §0 and take it from there." +msgstr "" + +#. §0: `0` +#. §1: `pred` +#. §2: ``` +#. pred 0 := 37 +#. pred (succ n) := n +#. ``` +#. §3: `pred_succ` +#. §4: `pred (succ n) = n` +#. §5: `succ_inj` +#: Game.Levels.Algorithm.L05pred +msgid "" +"We now start work on an algorithm to do addition more efficiently. Recall " +"that\n" +"we defined addition by recursion, saying what it did on §0 and successors.\n" +"It is an axiom of Lean that recursion is a valid\n" +"way to define functions from types such as the naturals.\n" +"\n" +"Let's define a new function §1 from the naturals to the naturals, which\n" +"attempts to subtract 1 from the input. The definition is this:\n" +"\n" +"§2\n" +"\n" +"We cannot subtract one from 0, so we just return a junk value. As well as " +"this\n" +"definition, we also create a new lemma §3, which says that §4.\n" +"Let's use this lemma to prove §5, the theorem which\n" +"Peano assumed as an axiom and which we have already used extensively without " +"justification." +msgstr "" + +#: Game.Levels.Algorithm.L06is_zero +msgid "is_zero" +msgstr "" + +#. §0: $a$ +#. §1: $b$ +#. §2: $c$ +#. §3: $(ab)c = a(bc)$ +#: Game.Levels.Multiplication.L09mul_assoc +msgid "" +"Multiplication is associative.\n" +"In other words, for all natural numbers §0, §1 and §2, we have\n" +"§3." +msgstr "" + +#. §0: `simp` +#. §1: `rw` +#. §2: `simp` +#: Game.Levels.Algorithm.L03add_algo2 +msgid "" +"Lean's simplifier, §0, is \"§1 on steroids\". It will rewrite every lemma\n" +"tagged with §2 and every lemma fed to it by the user, as much as it can.\n" +"\n" +"This level is not a level which you want to solve by hand.\n" +"Get the simplifier to solve it for you." +msgstr "" + +#. §0: `h : X = Y` +#. §1: `X` +#. §2: `nth_rewrite 3 [h]` +#. §3: `X` +#. §4: `Y` +#. §5: `2 + 2 = 4` +#. §6: `nth_rewrite 2 [two_eq_succ_one]` +#. §7: `2 + succ 1 = 4` +#. §8: `rw [two_eq_succ_one]` +#. §9: `succ 1 + succ 1 = 4` +#: Game.Levels.Tutorial.L02rw +msgid "" +"## Summary\n" +"\n" +"If §0 and there are several §1s in the goal, then\n" +"§2 will just change the third §3 to a §4.\n" +"\n" +"## Example\n" +"\n" +"If the goal is §5 then §6\n" +"will change the goal to §7. In contrast, §8\n" +"will change the goal to §9." +msgstr "" + +#. §0: $P\\implies Q$ +#. §1: $Q$ +#. §2: $P$ +#. §3: `rw [succ_eq_add_one]` +#: Game.Levels.Implication.L05succ_inj2 +msgid "" +"Applying a proof of §0 to the *goal* changes §1 to §2.\n" +"Now try §3 to make the goal more like the hypothesis." +msgstr "" + +#. §0: $a$ +#. §1: $b$ +#. §2: $(\\operatorname{succ}\\ a) \\times b = a\\times b + b$ +#: Game.Levels.Multiplication.L03succ_mul +msgid "" +"For all natural numbers §0 and §1, we have\n" +"§2." +msgstr "" + +#. §0: $a+b=0 \\implies a=0$ +#: Game.Levels.AdvAddition.L05add_right_eq_zero +#: Game.Levels.AdvAddition.L06add_left_eq_zero +msgid "A proof that §0." +msgstr "" + +#. §0: `repeat rw [add_assoc]` +#: Game.Levels.Algorithm.L02add_algo1 +msgid "Start with §0 to push all the brackets to the right." +msgstr "" + +#. §0: `cases a with d` +#. §1: `a = 0` +#. §2: `a = succ d` +#: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero +msgid "Start with §0 to do a case split on §1 and §2." +msgstr "" + +#. §0: `mul_eq_zero` +#. §1: `tauto` +#. §2: `a = 0` +#. §3: `a ≠ 0` +#: Game.Levels.AdvMultiplication.L09mul_left_cancel +msgid "" +"Use §0 and remember that §1 will solve a goal\n" +"if there are hypotheses §2 and §3." +msgstr "" + +#: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero +msgid "The previous lemma can be used to prove this one." +msgstr "" + +#. §0: `is_zero` +#. §1: ``` +#. is_zero 0 := True +#. is_zero (succ n) := False +#. ``` +#. §2: `is_zero_zero` +#. §3: `is_zero_succ n` +#. §4: `is_zero 0 = True` +#. §5: `is_zero (succ n) = False` +#. §6: `succ_ne_zero` +#. §7: `zero_ne_succ` +#. §8: `zero_ne_succ` +#. §9: `True` +#. §10: `trivial` +#: Game.Levels.Algorithm.L06is_zero +msgid "" +"We define a function §0 thus:\n" +"\n" +"§1\n" +"\n" +"We also create two lemmas, §2 and §3, saying that §4\n" +"and §5. Let's use these lemmas to prove §6, Peano's\n" +"Last Axiom. Actually, we have been using §7 before, but it's handy to have\n" +"this opposite version too, which can be proved in the same way. Note: you " +"can\n" +"cheat here by using §8 but the point of this world is to show\n" +"you how to *prove* results like that.\n" +"\n" +"If you can turn your goal into §9, then the §10 tactic will solve it." +msgstr "" + +#: Game.Levels.AdvMultiplication.L08mul_eq_zero +msgid "mul_eq_zero" +msgstr "" + +#. §0: `rw [two_eq_succ_one]` +#. §1: `2` +#: Game.Levels.Tutorial.L03two_eq_ss0 +msgid "Start with §0 to begin to break §1 down into its definition." +msgstr "" + +#: Game.Levels.Implication.L10one_ne_zero +msgid "1 ≠ 0" +msgstr "" + +#: Game.Levels.AdvMultiplication.L01mul_le_mul_right +msgid "mul_le_mul_right" +msgstr "" + +#: Game.Levels.AdvAddition.L04add_right_eq_self +msgid "add_right_eq_self" +msgstr "" + +#. §0: `2 + 2 ≠ 5` +#. §1: `≠` +#. §2: `a ≠ b` +#. §3: `a = b → False` +#. §4: `False` +#. §5: `→` +#. §6: `True → False` +#. §7: `False → False` +#. §8: `X → False` +#. §9: `X` +#. §10: `a ≠ b` +#. §11: `False` +#. §12: `False` +#: Game.Levels.Implication.L08ne +msgid "" +"We still can't prove §0 because we have not talked about the\n" +"definition of §1. In Lean, §2 is *notation* for §3.\n" +"Here §4 is a generic false proposition, and §5 is Lean's notation\n" +"for \"implies\". In logic we learn\n" +"that §6 is false, but §7 is true. Hence\n" +"§8 is the logical opposite of §9.\n" +"\n" +"Even though §10 does not look like an implication,\n" +"you should treat it as an implication. The next two levels will show you " +"how.\n" +"\n" +"§11 is a goal which you cannot deduce from a consistent set of assumptions!\n" +"So if your goal is §12 then you had better hope that your hypotheses\n" +"are contradictory, which they are in this level." +msgstr "" + +#: Game.Levels.LessOrEqual.L04le_trans +msgid "x ≤ y and y ≤ z implies x ≤ z" +msgstr "" + +#. §0: `exact` +#: Game.Levels.Implication.L02exact2 +msgid "§0 practice." +msgstr "" + +#. §0: `zero_ne_succ n` +#. §1: `0 = succ n → False` +#. §2: `succ n = 0` +#. §3: `symm` +#. §4: `x = y` +#. §5: `y = x` +#. §6: `x ≠ y` +#. §7: `y ≠ x` +#. §8: `symm at h` +#. §9: `h` +#. §10: $0 \\neq 1$ +#. §11: `zero_ne_one` +#. §12: $1 \\neq 0$ +#: Game.Levels.Implication.L10one_ne_zero +msgid "" +"We know §0 is a proof of §1 -- but what\n" +"if we have a hypothesis §2? It's the wrong way around!\n" +"\n" +"The §3 tactic changes a goal §4 to §5, and a goal §6\n" +"to §7. And §8\n" +"does the same for a hypothesis §9. We've proved §10 and called\n" +"the proof §11; now try proving §12." +msgstr "" + +#: Game.Levels.Addition.L02succ_add +msgid "" +"Well done! You now have enough tools to tackle the main boss of this level." +msgstr "" + +#. §0: `use` +#. §1: `use` +#: Game.Levels.LessOrEqual.L03le_succ_self +msgid "" +"If you §0 the wrong number, you get stuck with a goal you can't prove.\n" +"What number will you §1 here?" +msgstr "" + +#: Game.Levels.Multiplication.L04mul_comm +msgid "Multiplication is commutative." +msgstr "" + +#. §0: `mul_succ` +#. §1: `succ_mul` +#: Game.Levels.Multiplication.L03succ_mul +msgid "" +"Similarly we have §0\n" +"but we're going to need §1 (guess what it says -- maybe you\n" +"are getting the hang of Lean's naming conventions).\n" +"\n" +"The last level from addition world might help you in this level.\n" +"If you can't remember what it is, you can go back to the\n" +"home screen by clicking the house icon and then taking a look.\n" +"You won't lose any progress." +msgstr "" + +#. §0: `intro h` +#: Game.Levels.Implication.L09zero_ne_succ Game.Levels.LessOrEqual.L04le_trans +#: Game.Levels.LessOrEqual.L08le_total +#: Game.Levels.AdvMultiplication.L02mul_left_ne_zero +#: Game.Levels.AdvMultiplication.L08mul_eq_zero +msgid "Start with §0." +msgstr "" + +#: Game.Levels.Multiplication.L03succ_mul +msgid "succ_mul" +msgstr "" + +#. §0: `add_left_comm` +#. §1: `rw [add_comm b c]` +#. §2: `a + b + c` +#. §3: `(a + b) + c` +#: Game.Levels.Algorithm.L01add_left_comm +msgid "" +"Having to rearrange variables manually using commutativity and\n" +"associativity is very tedious. We start by reminding you of this. §0\n" +"is a key component in the first algorithm which we'll explain, but we need\n" +"to prove it manually.\n" +"\n" +"Remember that you can do precision commutativity rewriting\n" +"with things like §1. And remember that\n" +"§2 means §3." +msgstr "" + +#: Game.Levels.Tutorial.L03two_eq_ss0 +msgid "Numbers" +msgstr "" + +#. §0: `rfl` +#: Game.Levels.Tutorial.L07add_succ +msgid "And finally §0." +msgstr "" + +#. §0: `37 * x` +#. §1: $x=0$ +#. §2: $x$ +#. §3: `37 * 0` +#. §4: `0` +#. §5: `37 * d` +#. §6: `37 * succ d` +#. §7: $(d+1)$ +#. §8: $37$ +#. §9: `37 * d + 37` +#. §10: `mul_zero a : a * 0 = 0` +#. §11: `mul_succ a d : a * succ d = a * d + a` +#. §12: `a * b = b * a` +#. §13: `a * (b + c) = a * b + a * c` +#: Game.Levels.Multiplication +msgid "" +"How should we define §0? Just like addition, we need to give definitions\n" +"when §1 and when §2 is a successor.\n" +"\n" +"The zero case is easy: we define §3 to be §4. Now say we know\n" +"§5. What should §6 be? Well, that's §7 §8s,\n" +"so it should be §9.\n" +"\n" +"Here are the definitions in Lean.\n" +"\n" +" * §10\n" +" * §11\n" +"\n" +"In this world, we must not only prove facts about multiplication like §12,\n" +"we must also prove facts about how multiplication interacts with addition, " +"like §13.\n" +"Let's get started." +msgstr "" + +#. §0: ``` +#. symm +#. exact zero_ne_one +#. ``` +#. §1: `exact` +#: Game.Levels.Implication.L10one_ne_zero +msgid "" +"What do you think of this two-liner:\n" +"§0\n" +"\n" +"§1 doesn't just take hypotheses, it will eat any proof which exists\n" +"in the system." +msgstr "" + +#: Game.Levels.LessOrEqual.L09succ_le_succ +msgid "succ x ≤ succ y → x ≤ y" +msgstr "" + +#: Game +msgid "The classical introduction game for Lean." +msgstr "" + +#. §0: `rw [«{h}»]` +#. §1: `rfl` +#. §2: `exact «{h}»` +#: Game.Levels.Implication.L02exact2 +msgid "" +"Now you could finish with §0 then §1, but §2\n" +"does it in one line." +msgstr "" + +#. §0: `add_comm b c` +#. §1: `b + c = c + b` +#. §2: `a + b + c = a + c + b` +#. §3: `rw [add_comm b c]` +#. §4: `(a + b) + c = (a + c) + b` +#. §5: `b + c` +#. §6: `add_right_comm` +#. §7: `add_assoc` +#. §8: `add_comm` +#. §9: `rw [add_comm b]` +#. §10: `b + ? = ? + b` +#. §11: `rw [add_comm b c]` +#. §12: `b + c = c + b` +#: Game.Levels.Addition.L05add_right_comm +msgid "" +"§0 is a proof that §1. But if your goal\n" +"is §2 then §3 will not\n" +"work! Because the goal means §4 so there\n" +"is no §5 term *directly* in the goal.\n" +"\n" +"Use associativity and commutativity to prove §6.\n" +"You don't need induction. §7 moves brackets around,\n" +"and §8 moves variables around.\n" +"\n" +"Remember that you can do more targeted rewrites by\n" +"adding explicit variables as inputs to theorems. For example §9\n" +"will only do rewrites of the form §10, and §11\n" +"will only do rewrites of the form §12." +msgstr "" + +#: Game.Levels.Power.L10FLT +msgid "Fermat's Last Theorem" +msgstr "" + +#. §0: `apply` +#. §1: `P → Q` +#. §2: `P → Q` +#. §3: `P` +#. §4: `Q` +#. §5: `intro` +#: Game.Levels.Implication.L06intro +msgid "" +"We have seen how to §0 theorems and assumptions\n" +"of the form §1. But what if our *goal* is of the form §2?\n" +"To prove this goal, we need to know how to say \"let's assume §3 and deduce " +"§4\"\n" +"in Lean. We do this with the §5 tactic." +msgstr "" + +#. §0: $x$ +#. §1: $x \\le x$ +#: Game.Levels.LessOrEqual.L01le_refl Game.Levels.LessOrEqual.L02zero_le +#: Game.Levels.LessOrEqual.L03le_succ_self +msgid "If §0 is a number, then §1." +msgstr "" + +#. §0: ``` +#. cases x with y +#. left +#. rfl +#. rw [one_eq_succ_zero] at hx ⊢ +#. apply succ_le_succ at hx +#. apply le_zero at hx +#. rw [hx] +#. right +#. rfl +#. ``` +#: Game.Levels.LessOrEqual.L10le_one +msgid "" +"Here's my proof:\n" +"§0\n" +"\n" +"If you solved this level then you should be fine with the next level!" +msgstr "" + +#. §0: `2 = 2` +#: Game.Levels.Tutorial.L04rw_backwards +msgid "Can you now change the goal into §0?" +msgstr "" + +#: Game.Levels.Power.L09add_sq +msgid "add_sq" +msgstr "" + +#. §0: `a` +#. §1: `cases a with b` +#. §2: `a = 0` +#. §3: `a = succ b` +#: Game.Levels.LessOrEqual.L08le_total +msgid "" +"This is I think the toughest level yet. Tips: if §0 is a number\n" +"then §1 will split into cases §2 and §3.\n" +"And don't go left or right until your hypotheses guarantee that\n" +"you can prove the resulting goal!\n" +"\n" +"I've left hidden hints; if you need them, retry from the beginning\n" +"and click on \"Show more help!\"" +msgstr "" + +#. §0: `ℕ` +#: Game.Levels.LessOrEqual.L08le_total +msgid "" +"Very well done.\n" +"\n" +"A passing mathematician remarks that with you've just proved that §0 is " +"totally\n" +"ordered.\n" +"\n" +"The final few levels in this world are much easier." +msgstr "" + +#. §0: `y` +#. §1: `add_left_eq_self` +#. §2: `add_right_cancel` +#. §3: `` +#. §4: `>_` +#. §5: ``` +#. nth_rewrite 2 [← zero_add y] +#. exact add_right_cancel x 0 y +#. ``` +#: Game.Levels.AdvAddition.L03add_left_eq_self +msgid "" +"Did you use induction on §0?\n" +"Here's a two-line proof of §1 which uses §2.\n" +"If you want to inspect it, you can go into editor mode by clicking §3 in the " +"top right\n" +"and then just cut and paste the proof and move your cursor around it\n" +"to see the hypotheses and goal at any given point\n" +"(although you'll lose your own proof this way). Click §4 to get\n" +"back to command line mode.\n" +"§5" +msgstr "" + +#: Game.Levels.LessOrEqual.L05le_zero +msgid "" +"It's \"intuitively obvious\" that there are no numbers less than zero,\n" +"but to prove it you will need a result which you showed in advanced\n" +"addition world." +msgstr "" + +#. §0: `exact h` +#: Game.Levels.Implication.L04succ_inj +msgid "" +"And now we've deduced what we wanted to prove: the goal is one of our " +"assumptions.\n" +"Finish the level with §0." +msgstr "" + +#. §0: `rw [add_zero]` +#: Game.Levels.Tutorial.L07add_succ +msgid "And now §0" +msgstr "" + +#. §0: `pow_add a m n` +#. §1: $a^{m+n}=a^ma^n.$ +#: Game.Levels.Power.L06pow_add Game.Levels.Power.L07mul_pow +#: Game.Levels.Power.L08pow_pow +msgid "§0 is a proof that §1" +msgstr "" + +#: Game.Levels.LessOrEqual +msgid "≤ World" +msgstr "" + +#. §0: ``` +#. rw [mul_comm, mul_one] +#. rfl +#. ``` +#: Game.Levels.Multiplication.L05one_mul Game.Levels.Multiplication.L06two_mul +msgid "" +"Here's my solution:\n" +"§0" +msgstr "" + +#: Game.Levels.Algorithm.L07succ_ne_succ +msgid "An algorithm for equality" +msgstr "" + +#: Game.Levels.AdvMultiplication.L05le_mul_right +msgid "le_mul_right" +msgstr "" + +#: Game.Levels.Power +msgid "Power World" +msgstr "" + +#. §0: ``` +#. nth_rewrite 2 [← mul_one a] at h +#. exact mul_left_cancel a b 1 ha h +#. ``` +#: Game.Levels.AdvMultiplication.L10mul_right_eq_self +msgid "" +"A two-line proof is\n" +"\n" +"§0\n" +"\n" +"We now have all the tools necessary to set up the basic theory of " +"divisibility of naturals." +msgstr "" + +#: Game.Levels.Multiplication.L06two_mul +msgid "two_mul" +msgstr "" + +#: Game.Levels.Algorithm.L04add_algo3 +msgid "the simplest approach" +msgstr "" + +#. §0: $P\\implies Q$ +#. §1: $P$ +#. §2: $Q$ +#. §3: `exact` +#. §4: `exact h` +#: Game.Levels.Implication.L01exact +msgid "" +"In this world we'll learn how to prove theorems of the form §0.\n" +"In other words, how to prove theorems of the form \"if §1 is true, then §2 " +"is true.\"\n" +"To do that we need to learn some more tactics.\n" +"\n" +"The §3 tactic can be used to close a goal which is exactly one of\n" +"the hypotheses. It takes the name of the hypothesis as argument: §4." +msgstr "" + +#: Game.Levels.Algorithm.L02add_algo1 +msgid "" +"So that's the algorithm: now let's use automation to perform it\n" +"automatically." +msgstr "" + +#. §0: `x + y = 0 → x = 0` +#. §1: `x + y = x → y = 0` +#. §2: `x * y = 1 → x = 1` +#. §3: `x * y = x → y = 1` +#. §4: `x ≠ 0` +#: Game.Levels.AdvMultiplication +msgid "" +"Advanced *Addition* World proved various implications\n" +"involving addition, such as §0 and §1.\n" +"These lemmas were used to prove basic facts about ≤ in ≤ World.\n" +"\n" +"In Advanced Multiplication World we prove analogous\n" +"facts about multiplication, such as §2, and\n" +"§3 (assuming §4 in the latter result). This will prepare\n" +"us for Divisibility World.\n" +"\n" +"Multiplication World is more complex than Addition World. In the same\n" +"way, Advanced Multiplication world is more complex than Advanced Addition\n" +"World. One reason for this is that certain intermediate results are only\n" +"true under the additional hypothesis that one of the variables is non-zero.\n" +"This causes some unexpected extra twists." +msgstr "" + +#. §0: `simp only [add_left_comm, add_comm]` +#: Game.Levels.Algorithm.L03add_algo2 +msgid "Solve this level in one line with §0" +msgstr "" + +#. §0: `succ_inj` +#. §1: $0$ +#: Game.Levels.Algorithm.L05pred +msgid "" +"Nice! You've proved §0!\n" +"Let's now prove Peano's other axiom, that successors can't be §1." +msgstr "" + +#. §0: $a$ +#. §1: $\\operatorname{succ}(a) = a+1$ +#: Game.Levels.Tutorial.L07add_succ Game.Levels.Addition.L01zero_add +#: Game.Levels.Multiplication.L02zero_mul +msgid "For all natural numbers §0, we have §1." +msgstr "" + +#: Game.Levels.AdvAddition.L05add_right_eq_zero +msgid "Well done!" +msgstr "" + +#: Game.Levels.Tutorial.L06add_zero2 +msgid "Precision rewriting" +msgstr "" + +#. §0: $a(b+c)=ab+ac$ +#. §1: $(b+c)a=ba+ca$ +#. §2: `mul_add a b c` +#. §3: `a * (b + c) = a * b + a * c` +#: Game.Levels.Multiplication.L07mul_add +msgid "" +"Our next goal is \"left and right distributivity\",\n" +"meaning §0 and §1. Rather than\n" +"these slightly pompous names, the name of the proofs\n" +"in Lean are descriptive. Let's start with\n" +"§2, the proof of §3.\n" +"Note that the left hand side contains a multiplication\n" +"and then an addition." +msgstr "" + +#. §0: `xyzzy` +#. §1: `sorry` +#. §2: `xyzzy` +#: Game.Levels.Power.L10FLT +msgid "" +"§0 is an ancient magic spell, believed to be the origin of the\n" +"modern word §1. The game won't complain - or notice - if you\n" +"prove anything with §2." +msgstr "" + +#. §0: `0 ^ 0 = 0` +#. §1: `0 ^ 0 = 1` +#: Game.Levels.Power.L01zero_pow_zero +msgid "" +"Mathematicians sometimes argue that §0 is also\n" +"a good convention. But it is not a good convention in this\n" +"game; all the later levels come out beautifully with the\n" +"convention that §1." +msgstr "" + +#. §0: ``` +#. cases h with d hd +#. use d * t +#. rw [hd, add_mul] +#. rfl +#. ``` +#: Game.Levels.AdvMultiplication.L01mul_le_mul_right +msgid "" +"My proof:\n" +"§0" +msgstr "" + +#: Game.Levels.Multiplication.L06two_mul +msgid "" +"This level is more important than you think; it plays\n" +"a useful role when battling a big boss later on." +msgstr "" + +#. §0: `Add a b` +#. §1: `a + b` +#. §2: `add_zero a : a + 0 = a` +#. §3: `add_succ a b : a + succ b = succ (a + b)` +#. §4: `zero_add a : 0 + a = a` +#: Game.Levels.Tutorial.L05add_zero +msgid "" +"§0, with notation §1, is\n" +"the usual sum of natural numbers. Internally it is defined\n" +"via the following two hypotheses:\n" +"\n" +"* §2\n" +"\n" +"* §3\n" +"\n" +"Other theorems about naturals, such as §4, are proved\n" +"by induction using these two basic theorems." +msgstr "" + +#. §0: `cases h2 with h0 h1` +#: Game.Levels.AdvMultiplication.L06mul_right_eq_one +msgid "" +"Now §0 and deal with the two\n" +"cases separately." +msgstr "" + +#: Game.Levels.Power.L08pow_pow +msgid "" +"The music dies down. Is that it?\n" +"\n" +"Course it isn't, you can\n" +"clearly see that there are two levels left.\n" +"\n" +"A passing mathematician says that mathematicians don't have a name\n" +"for the structure you just constructed. You feel cheated.\n" +"\n" +"Suddenly the music starts up again. This really is the final boss." +msgstr "" + +#. §0: `le_one x` +#. §1: `x ≤ 1` +#. §2: `x = 0` +#. §3: `x = 1` +#: Game.Levels.LessOrEqual.L10le_one +#: Game.Levels.AdvMultiplication.L08mul_eq_zero +msgid "§0 is a proof that if §1 then §2 or §3." +msgstr "" + +#: Game.Levels.Tutorial +msgid "Tutorial World" +msgstr "" + +#. §0: `rw [one_eq_succ_zero]` +#: Game.Levels.Tutorial.L07add_succ +msgid "§0 will do this." +msgstr "" + +#. §0: `x ≤ 0` +#. §1: `x = 0` +#. §2: `≤ 1` +#. §3: `≤ 2` +#: Game.Levels.LessOrEqual.L09succ_le_succ +msgid "" +"We've proved that §0 implies §1. The last two levels\n" +"in this world will prove which numbers are §2 and §3.\n" +"This lemma will be helpful for them." +msgstr "" + +#. §0: `cases «{e}» with a` +#: Game.Levels.LessOrEqual.L08le_total +msgid "You still don't know which way to go, so do §0." +msgstr "" + +#: Game.Levels.AdvMultiplication +msgid "Advanced Multiplication World" +msgstr "" + +#. §0: `a = 0` +#. §1: `x + a = x` +#: Game.Levels.Addition.L05add_right_comm +msgid "" +"You've now seen all the tactics you need to beat the final boss of the " +"game.\n" +"You can begin the journey towards this boss by entering Multiplication " +"World.\n" +"\n" +"Or you can go off the beaten track and learn some new tactics in " +"Implication\n" +"World. These tactics let you prove more facts about addition, such as\n" +"how to deduce §0 from §1.\n" +"\n" +"Click \"Home\" and make your choice." +msgstr "" + +#. §0: $2$ +#. §1: $0$ +#: Game.Levels.Tutorial.L03two_eq_ss0 Game.Levels.Tutorial.L04rw_backwards +msgid "§0 is the number after the number after §1." +msgstr "" + +#. §0: `2 + 2 = 4` +#: Game.Levels.Tutorial.L02rw +msgid "You now know enough tactics to prove §0! Let's begin the journey." +msgstr "" + +#. §0: `succ_mul a b` +#. §1: `succ a * b = a * b + b` +#. §2: `mul_succ` +#. §3: `mul_comm` +#. §4: `mul_comm` +#. §5: `mul_succ` +#: Game.Levels.Multiplication.L03succ_mul +msgid "" +"§0 is the proof that §1.\n" +"\n" +"It could be deduced from §2 and §3, however this argument\n" +"would be circular because the proof of §4 uses §5." +msgstr "" + +#: GameServer.RpcHandlers +msgid "level completed! 🎉" +msgstr "" + +#. §0: `a * b` +#. §1: `rw [mul_comm]` +#. §2: `rw` +#: Game.Levels.Power.L07mul_pow +msgid "" +"The music gets ever more dramatic, as we explore\n" +"the interplay between exponentiation and multiplication.\n" +"\n" +"If you're having trouble exchanging the right §0\n" +"because §1 swaps the wrong multiplication,\n" +"then read the documentation of §2 for tips on how to fix this." +msgstr "" + +#. §0: `le_total x y` +#. §1: `x ≤ y` +#. §2: `y ≤ x` +#: Game.Levels.LessOrEqual.L08le_total +msgid "§0 is a proof that §1 or §2." +msgstr "" + +#. §0: `ha : 0 ≠ 0` +#. §1: `tauto` +#: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero +msgid "" +"In the \"base case\" we have a hypothesis §0, and you can deduce anything\n" +"from a false statement. The §1 tactic will close this goal." +msgstr "" + +#: Game.Levels.Tutorial.L07add_succ +msgid "add_succ" +msgstr "" + +#: Game.Levels.Power.L03pow_one +msgid "pow_one" +msgstr "" + +#. §0: ``` +#. intro h +#. rw [add_succ, add_succ, add_zero] at h +#. repeat apply succ_inj at h +#. apply zero_ne_succ at h +#. exact h +#. ``` +#. §1: $20 + 20 ≠ 41$ +#: Game.Levels.Implication.L11two_add_two_ne_five +msgid "" +"Here's my proof:\n" +"§0\n" +"\n" +"Even though Lean is a theorem prover, right now it's pretty clear that we " +"have not\n" +"developed enough material to make it an adequate calculator. In Algorithm\n" +"World, a more computer-sciency world, we will develop machinery which makes\n" +"questions like this much easier, and goals like §1 feasible.\n" +"Alternatively you can do more mathematics in Advanced Addition World, where " +"we prove\n" +"the lemmas needed to get a working theory of inequalities. Click \"Home\" " +"and\n" +"decide your route." +msgstr "" + +#. §0: `rw [two_eq_succ_one, one_eq_succ_zero]` +#. §1: `rfl` +#: Game.Levels.Tutorial.L03two_eq_ss0 +msgid "" +"Note that you can do §0\n" +"and then §1 to solve this level in two lines." +msgstr "" + +#: Game.Levels.AdvAddition.L05add_right_eq_zero +msgid "add_right_eq_zero" +msgstr "" + +#: Game.Levels.Tutorial.L05add_zero +msgid "Adding zero" +msgstr "" + +#: Game.Levels.Addition.L03add_comm +msgid "" +"[boss battle music]\n" +"\n" +"Look in your inventory to see the proofs you have available.\n" +"These should be enough." +msgstr "" + +#. §0: $a, b$ +#. §1: $c$ +#. §2: $d$ +#. §3: $(a + b) + (c + d) = ((a + c) + d) + b.$ +#: Game.Levels.Algorithm.L02add_algo1 +msgid "" +"If §0, §1 and §2 are numbers, we have\n" +"§3" +msgstr "" + +#. §0: `a ≠ 0` +#. §1: `b ≠ 0` +#. §2: `a * b ≠ 0` +#. §3: `a` +#. §4: `b` +#. §5: `succ` +#. §6: `a * b` +#. §7: `succ` +#. §8: `apply zero_ne_succ` +#: Game.Levels.AdvMultiplication.L07mul_ne_zero +msgid "" +"This level proves that if §0 and §1 then §2. One strategy\n" +"is to write both §3 and §4 as §5 of something, deduce that §6 is\n" +"also §7 of something, and then §8." +msgstr "" + +#: Game.Levels.Power.L02zero_pow_succ +msgid "zero_pow_succ" +msgstr "" + +#: Game.Levels.LessOrEqual.L07or_symm +msgid "Ready for the boss level of this world?" +msgstr "" + +#. §0: `mul_add a b c` +#. §1: `a * (b + c) = a * b + a * c` +#: Game.Levels.Multiplication.L07mul_add +msgid "" +"Multiplication distributes\n" +"over addition on the left.\n" +"\n" +"§0 is the proof that §1." +msgstr "" + +#: Game.Levels.Algorithm +msgid "Algorithm World" +msgstr "" + +#. §0: `add_succ a b` +#. §1: `a + succ b = succ (a + b)` +#: Game.Levels.Tutorial.L07add_succ +msgid "§0 is the proof of §1." +msgstr "" + +#: Game.Levels.Power.L10FLT +msgid "" +"Congratulations! You have proved Fermat's Last Theorem!\n" +"\n" +"Either that, or you used magic..." +msgstr "" + +#. §0: `mul_comm` +#. §1: `mul_comm a b` +#. §2: `a * b = b * a` +#: Game.Levels.Multiplication.L04mul_comm +msgid "" +"§0 is the proof that multiplication is commutative. More precisely,\n" +"§1 is the proof that §2." +msgstr "" + +#: Game.Levels.Tutorial.L04rw_backwards +msgid "rewriting backwards" +msgstr "" + +#. §0: `use` +#. §1: `x` +#. §2: `x = 37` +#. §3: `use 37` +#. §4: `a ≤ b` +#. §5: `c` +#. §6: `b = a + c` +#. §7: `a ≤ b` +#. §8: `use` +#. §9: `b - a` +#. §10: `use b - a` +#. §11: `use` +#. §12: `use 37` +#. §13: `use a` +#. §14: `use a * a + 1` +#: Game.Levels.LessOrEqual.L01le_refl +msgid "" +"## Summary\n" +"\n" +"The §0 tactic makes progress with goals which claim something *exists*.\n" +"If the goal claims that some §1 exists with some property, and you know\n" +"that §2 will work, then §3 will make progress.\n" +"\n" +"Because §4 is notation for \\\\\"there exists §5 such that §6\\\\\",\n" +"you can make progress on goals of the form §7 by §8ing the\n" +"number which is morally §9 (i.e. §10)\n" +"\n" +"Any of the following examples is possible assuming the type of the argument " +"passed to the §11 function is accurate:\n" +"\n" +"- §12\n" +"- §13\n" +"- §14" +msgstr "" + +#. §0: `x + y = y + x` +#. §1: `add_comm` +#. §2: `add_zero` +#. §3: `zero_add` +#. §4: `add_comm` +#. §5: `x + y = y + x` +#: Game.Levels.Addition.L01zero_add +msgid "" +"This lemma would have been easy if we had known that §0. That theorem\n" +" is called §1 and it is *true*, but unfortunately its proof *uses* both\n" +" §2 and §3!\n" +"\n" +" Let's continue on our journey to §4, the proof of §5." +msgstr "" diff --git a/Game.lean b/Game.lean index a7d76da6..fb7d9d39 100644 --- a/Game.lean +++ b/Game.lean @@ -102,7 +102,7 @@ Alternatively, if you experience issues / bugs you can also open github issues: -- Dependency Implication → Power -- `Power` uses `≠` which is introduced in `Implication` /-! Information to be displayed on the servers landing page. -/ -Languages "en" "zh" "uk" "it" "fr" +Languages "en" "zh" "uk" "it" "fr" "ja" CaptionShort "The classical introduction game for Lean." CaptionLong "In this game you recreate the natural numbers $\\mathbb{N}$ from the Peano axioms, learning the basics about theorem proving in Lean. From c9fce89dfe7ccf39082ddeeca227ceb4bd6dd4e2 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Tue, 14 Apr 2026 01:28:40 +0900 Subject: [PATCH 002/147] add machine translations --- .i18n/ja/Game.json | 915 ++++++------ .i18n/ja/Game.po | 3447 ++++++++++++++++++++++++++++++++++++-------- 2 files changed, 3342 insertions(+), 1020 deletions(-) diff --git a/.i18n/ja/Game.json b/.i18n/ja/Game.json index 7c864594..f3d85499 100644 --- a/.i18n/ja/Game.json +++ b/.i18n/ja/Game.json @@ -1,620 +1,681 @@ -{"≤ World": "", - "≠": "", - "§0.": "", +{"≤ World": "≤ ワールド\n\n\n## 日本語翻訳\nワールド", + "≠": "≠\n\n\n## 日本語翻訳\n不等号", + "§0.": "### 原文 (English)\n§0.\n\n\n## 日本語翻訳\n§0.", "§0, with notation §1, is the usual\n product of natural numbers. Internally it is\n via two axioms:\n\n * §2\n\n * §3\n\nOther theorems about naturals, such as §4,\nare proved by induction from these two basic theorems.": - "", + "§0、符号§1を用いたものは、通常の自然数の積です。内部的には、以下の2つの公理によって定義されます:\n\n* §2\n\n* §3\n\n他の自然数に関する定理、例えば§4は、これらの2つの基本定理から帰納的に証明されます。", "§0, with notation §1, is the usual\n exponentiation of natural numbers. Internally it is\n defined via two axioms:\n\n * §2\n\n * §3\n\nNote in particular that §4.": - "", + "§0、符号§1を用いたものは通常の自然数の累乗を表します。内部的には、\n\n * §2\n\n * §3\n\nの2つの公理により定義されています。\n\n特に注意すべきは§4です。", "§0, with notation §1, is\nthe usual sum of natural numbers. Internally it is defined\nvia the following two hypotheses:\n\n* §2\n\n* §3\n\nOther theorems about naturals, such as §4, are proved\nby induction using these two basic theorems.": - "", - "§0 will do this.": "", - "§0 will change §1 into §2.": "", + "§0、記法§1は通常の自然数の和です。内部では、以下の2つの仮定を用いて定義されています:\n\n* §2\n\n* §3\n\n他の自然数に関する定理、例えば§4は、これらの2つの基本定理を使用して帰納法で証明されます。", + "§0 will do this.": "§0はこれを行います。", + "§0 will change §1 into §2.": "§0は§1を§2に変換します。", "§0 says that §1.\n\nNote that this is not quite true by definition: §2 is\ndefined to be §3 so it's §4, and to prove\nthat this is equal to §5 you need to use induction somewhere.": - "", - "§0 says that §1.": "", - "§0 practice.": "", + "§0 は §1 です。\n\nただし、これは定義によって正確には真ではありません:§2 は §3 と定義されており、§4 となります。この等しいことを証明するには、どこかで帰納法を使用する必要があります。", + "§0 says that §1.": "§0 は §1 を言います。", + "§0 practice.": "§0 プラクティス。", "§0 is the theorem that §1.\nYou can prove it by induction on §2 or you can deduce it from §3.": - "", + "§0は§1の定理です。\nこれを証明するには、§2についての帰納法を使用するか、§3から導き出せます。", "§0 is the theorem that §1\nTwo ways to do it spring to mind; I'll mention them when you've solved it.": - "", - "§0 is the theorem that §1": "", - "§0 is the statement that §1": "", - "§0 is the proof §1.": "", - "§0 is the proof that §1.\n\nNote: §2 is a §3 lemma.": "", + "§0は、§1の定理です。\n二つの方法が思い浮かびますが、あなたがそれを解いた後で述べます。", + "§0 is the theorem that §1": "§0は§1の定理です。", + "§0 is the statement that §1": "§0は§1のステートメントです。", + "§0 is the proof §1.": "§0は証明§1です。", + "§0 is the proof that §1.\n\nNote: §2 is a §3 lemma.": + "§0は§1の証明です。\n\nNote: §2は§3の補題です。", "§0 is the proof that §1.\n\nIt could be deduced from §2 and §3, however this argument\nwould be circular because the proof of §4 uses §5.": - "", + "§0は§1の証明です。\n\nしかし、§2と§3から導くことはできますが、この議論は円環的で、§4の証明は§5を使用しているためです。", "§0 is the proof that §1.\n\nIn Lean, §2 is *defined to mean* §3. Hence\n§4 is really a proof of §5.\nHere §6 is a generic false statement. This means that\nyou can §7 if §8 is a proof of §9.": - "", - "§0 is the proof that §1.": "", + "§0は§1の証明です。\n\nLeanでは、§2は§3に*定義されており*、 §§4は実質的に§5の証明です。ここで§6は一般的な偽の命題です。つまり、§8が§9の証明である場合、§7を行うことができます。", + "§0 is the proof that §1.": "§0は§1の証明です。", "§0 is the proof that multiplication is commutative. More precisely,\n§1 is the proof that §2.": - "", + "§0は乗法が交換律を満たすことを示す証明です。より正確には,\n§1は§2が交換律を満たすことを示す証明です。", "§0 is the proof of §1.\n\n§2 is a §3 lemma, because replacing §4 by §5\nis almost always what you want to do if you're simplifying an expression.": - "", - "§0 is the proof of §1.": "", - "§0 is the number after the number after §1.": "", + "§0は§1の証明です。\n\n§2は§3補題であり、§4を§5に置き換えることは、表現を簡略化する際にほとんどが望ましい操作です。", + "§0 is the proof of §1.": "§0は§1の証明です。", + "§0 is the number after the number after §1.": "§0は§1の後の数値の後の数値です。", "§0 is the natural numbers, just called \\\\\"numbers\\\\\" in this game. It's\ndefined via two rules:\n\n* §1 (zero is a number)\n* §2 (the successor of a number is a number)\n\n## Game Implementation\n\n*The game uses its own copy of the natural numbers, called §3 with notation §4.\nIt is distinct from the Lean natural numbers §5, which should hopefully\nnever leak into the natural number game.*": - "", - "§0 is one of the two axioms\ndefining exponentiation in this game.": "", - "§0 is one of the\ntwo axioms defining exponentiation in this game.": "", + "### 原文 (English)\n§0 is the natural numbers, just called \\\\\"numbers\\\\\" in this game. It's\ndefined via two rules:\n\n* §1 (zero is a number)\n* §2 (the successor of a number is a number)\n\n## Game Implementation\n\n*The game uses its own copy of the natural numbers, called §3 with notation §4.\nIt is distinct from the Lean natural numbers §5, which should hopefully\nnever leak into the natural number game.*\n\n\n### 翻訳 (Japanese)\n§0は自然数で、このゲームでは単に「数」呼ばれる。これは以下の2つのルールにより定義される:\n\n* §1(ゼロは数)\n* §2(数の後続も数)\n\n## ゲーム実装\n\n* このゲームは、自身の自然数のコピーを使用し、その自然数は「§3」として呼び、記号は「§4」で表される。これはLeanの自然数「§5」とは異なるもので、希望するとおり自然数ゲームには流入することはない。", + "§0 is one of the two axioms\ndefining exponentiation in this game.": + "§0はこのゲームで指数関数を定義する2つの公理の1つです。", + "§0 is one of the\ntwo axioms defining exponentiation in this game.": + "§0はこのゲームで指数関数を定義する2つの公理の1つです。", "§0 is just as fiddly to prove by induction; but there's a trick\nwhich avoids it. Can you spot it?": - "", - "§0 is good enough to solve this goal.": "", + "§0は帰納法で証明するのと同じくらい手間がかかるが、回避するトリックがある。見つけることができるだろうか?", + "§0 is good enough to solve this goal.": "§0はこの目標を解決するのに十分です。", "§0 is an ancient magic spell, believed to be the origin of the\nmodern word §1. The game won't complain - or notice - if you\nprove anything with §2.": - "", + "§0は古くから伝わる魔法の呪文で、現代の単語§1の起源とされています。ゲームはあなたの証明に関わらず、§2で何を証明しても文句を言わなかったり、気づかないでしょう。", "§0 is a proof that §1. But if your goal\nis §2 then §3 will not\nwork! Because the goal means §4 so there\nis no §5 term *directly* in the goal.\n\nUse associativity and commutativity to prove §6.\nYou don't need induction. §7 moves brackets around,\nand §8 moves variables around.\n\nRemember that you can do more targeted rewrites by\nadding explicit variables as inputs to theorems. For example §9\nwill only do rewrites of the form §10, and §11\nwill only do rewrites of the form §12.": - "", + "§0は§1の証明です。しかし、あなたの目標が§2であるなら、§3は機能しません!なぜなら、目標は§4を意味し、目標に直接的に§5の項は存在しないからです。\n\n結びつきと交換律を利用し、§6を証明してください。帰納法は必要ありません。§7は括弧を移動し、§8は変数を移動します。\n\n明示的な変数を定理の入力として追加することで、より的確な書き換えを行うことができます。例えば、§9は形式§10の書き換えのみを実行し、§11は形式§12の書き換えのみを実行します。", "§0 is a proof that §1.\n\nNote that when Lean says §2 it means §3.\n\nNote that §4 cannot be proved by \\\\\"pure thought\\\\\":\nfor example subtraction is not associative, as §5 is not\nequal to §6.": - "", + "§0は§1を証明します。\n\nLeanが§2と言った場合、それは§3を意味します。\n\nLeanでは、§4は「純粋な思考」で証明できません:\n例えば、減算は結合法則を満たさないため、§5は\n§6とは等しくありません。", "§0 is a proof that §1.\n\nIt's one way of saying that a divisor of a positive number\nhas to be at most that number.": - "", + "§0は§1の証明です。\n\nこれは正の数の約数がその数以下のことを表現する一方の方法です。", "§0 is a proof that §1.\n\n## Summary\n\n§2 is really a function, which\neats a number, and returns a proof of a theorem\nabout that number. For example §3 is\na proof that §4.\n\nThe §5 tactic will accept §6\nand will try to figure out which number you omitted\nto input.\n\n## Details\n\nA mathematician sometimes thinks of §7\nas \\\\\"one thing\\\\\", namely a proof of §8.\nThis is just another way of saying that it's a function which\ncan eat any number n and will return a proof that §9.": - "", - "§0 is a proof that §1.": "", - "§0 is a proof that §1 or §2.": "", + "§0は§1の証明です。\n\n## まとめ\n\n§2は実際には関数で、数字を入力するとその数字に関する定理の証明を返します。例えば§3は§4の証明です。\n\n§5のタクティクは§6を受け取り、省略された数字を推測しようとします。\n\n## 詳細\n\n数学者は時として§7を\\\\\"一つのもの\\\\\"と捉え、それは§8の証明であると言えます。これは、任意の数字nを入力すると§9の証明を返す関数であるという別の表現方法です。", + "§0 is a proof that §1.": "§0は§1の証明です。", + "§0 is a proof that §1 or §2.": "§0は§1または§2の証明です。", "§0 is a proof that §1\n\nIn Lean, §2 means §3, so this result gets displayed\nas §4.": - "", - "§0 is a proof that §1": "", - "§0 is a proof that if §1 then §2.": "", - "§0 is a proof that if §1 then §2 or §3.": "", - "§0 is a proof that if §1 then §2 or §3 or §4.": "", + "§0は§1の証明です\n\nLeanでは、§2は§3を意味するので、この結果は§4として表示されます。", + "§0 is a proof that §1": "§0は§1の証明です。", + "§0 is a proof that if §1 then §2.": "§0は、§1ならば§2であることを証明します。", + "§0 is a proof that if §1 then §2 or §3.": "§0は、§1ならば§2または§3であることを証明します。", + "§0 is a proof that if §1 then §2 or §3 or §4.": + "§0は、§1ならば§2または§3または§4であることを証明します。", "§0 is a proof that if §1 and §2 then §3.\nMore precisely, it is a proof that §4. In words,\nIf §5 then (pause) if §6 then §7.\n\n## A note on associativity\n\nIn Lean, §8 means §9, because §10 is left associative. However\n§11 is right associative. This means that §12 in Lean means\nexactly that §13 is transitive. This is different to how mathematicians use\n§14; for them, this usually means that §15\nand §16.": - "", - "§0 is a proof that if §1 and §2 then §3.": "", - "§0 is a proof of §1.\"": "", + "§0は、§1と§2ならば§3であることを証明しています。\nより正確には、§4を証明しています。言葉で言えば、\n§5ならば(一時停止)§6ならば§7です。\n\n## 転置性に関する注記\n\nLeanでは、§8は§9を意味し、§10は左側から結合します。しかし、§11は右側から結合します。これにより、Leanでは§12は§13が Transitiv(転置的)であることを意味します。これは、数学的な文脈では通常§14を意味しないことを示しています;数学的には、これは通常§15と§16の両方が成り立つことを意味します。", + "§0 is a proof that if §1 and §2 then §3.": "§0は、§1と§2ならば§3であることを証明します。", + "§0 is a proof of §1.\"": "§0は§1の証明です。", "§0 is a proof of §1.\n\nThe reason for the name is that this lemma is \"reflexivity of §2\"": - "", - "§0 is a proof of §1.": "", + "§0は§1の証明です。\n\nこの名前の理由は、この補題が\"§2の反射性\"であるためです。", + "§0 is a proof of §1.": "§0は§1の証明です。", "§0 is a proof of §1 so that was what got rewritten.\nYou can now change §2 to §3 with §4 or §5. You\ncan usually stick to §6 unless you need real precision.": - "", - "§0 is a proof of the implication §1.": "", + "§0は§1の証明なので、それが書き換えられた理由です。\n現在、§2を§3に変更することができます。通常は§6を使用していれば問題ありませんが、実際の精度が必要な場合は§4や§5を使用してください。", + "§0 is a proof of the implication §1.": "§0 は §1 から導かれる命題の証明です。", "§0 is a proof\nthat §1. Note that in Lean §2 prints\nas §3, because the notation for addition is defined to be left\nassociative.": - "", - "§0 is I think quicker than §1.": "", + "§0は§1の証明です。\nLeanでは§2は左結合的に定義されるため、§3として表示されます。", + "§0 is I think quicker than §1.": "§0は、§1より迅速です。", "§0 is *notation* for §1. This \"backwards E\"\nmeans \"there exists\". So §2 means that there exists\na number §3 such that §4. This definition works\nbecause there are no negative numbers in this game.\n\nTo *prove* an \"exists\" statement, use the §5 tactic.\nLet's see an example.": - "", + "§0は§1の記号です。この\"反転したE\"は\"存在する\"を意味します。つまり§2は、ある数§3が存在し、かつ§4を満たすことを意味します。この定義は、このゲームには負の数がないため機能します。\n\n\"存在する\"文を*証明*するには、§5のタクティクを使用します。例を見ていきましょう。", "§0 is *notation* for §1.\n\nThe reason this is mathematically\nvalid is that if §2 is a true-false statement then §3\nis the logical opposite of §4. Indeed §5 is false,\nand §6 is true!\n\nThe upshot of this is that you can treat §7 in exactly\nthe same way as you treat any implication §8. For example,\nif your *goal* is of the form §9 then you can make progress\nwith §10, and if you have a hypothesis §11 of the\nform §12 then you can §13 if §14 is a proof\nof §15.": - "", + "§0は§1の*表記*です。\n\nこの数学的に有効な理由は、§2が真偽の主張であれば、§3は§4の論理的否定であるからです。実際、§5は偽であり、§6は真です!\n\nこのことから、§7は任意の推論§8と同じように扱うことができます。例えば、あなたの*目標*が§9のような形であれば、§10で進展が可能です。また、仮定§11が§12のような形であれば、§13を行うことができます(ただし、§14が§15の証明である場合)です。", "§0 is *notation* for §1.\n\nBecause this game doesn't have negative numbers, this definition\nis mathematically valid.\n\nThis means that if you have a goal of the form §2 you can\nmake progress with the §3 tactic, and if you have a hypothesis\n§4, you can make progress with §5.": - "", - "§0": "", - "zero_pow_zero": "", - "zero_pow_succ": "", - "zero_ne_succ": "", - "zero_mul": "", - "zero_add": "", - "x ≤ y or y ≤ x": "", - "x ≤ y and y ≤ z implies x ≤ z": "", - "x ≤ y and y ≤ x implies x = y": "", - "x ≤ succ x": "", - "x ≤ 1": "", - "x ≤ 0 → x = 0": "", - "two_mul": "", - "try rewriting §0.": "", - "the simplest approach": "", - "the rw tactic": "", - "succ_mul": "", - "succ_inj : the successor function is injective": "", - "succ_add": "", - "succ x ≤ succ y → x ≤ y": "", - "rewriting backwards": "", - "pred": "", - "pow_two": "", - "pow_pow": "", - "pow_one": "", - "pow_add": "", - "one_pow": "", - "one_mul": "", - "one_le_of_ne_zero": "", - "mul_right_eq_self": "", - "mul_right_eq_one": "", - "mul_pow": "", - "mul_one": "", - "mul_ne_zero": "", - "mul_left_ne_zero": "", - "mul_left_cancel": "", - "mul_le_mul_right": "", - "mul_eq_zero": "", - "mul_comm": "", - "mul_assoc": "", - "mul_add": "", - "making life simple": "", - "making life easier": "", - "level completed! 🎉": "", - "level completed with warnings… 🎭": "", - "le_two": "", - "le_mul_right": "", - "is_zero": "", - "intro practice": "", - "intro": "", - "intermediate goal solved! 🎉": "", - "eq_succ_of_ne_zero": "", - "decide again": "", - "decide": "", - "add_succ": "", - "add_sq": "", - "add_right_eq_zero": "", - "add_right_eq_self": "", - "add_right_comm": "", - "add_right_cancel": "", - "add_mul": "", - "add_left_eq_zero": "", - "add_left_eq_self": "", - "add_left_comm": "", - "add_left_cancel": "", - "add_comm (level boss)": "", - "add_assoc (associativity of addition)": "", - "[final boss music]": "", - "[dramatic music]. Now are you ready to face the first boss of the game?": "", + "§0は§1の記号表記です。\n\nこのゲームには負の数が存在しないので、この定義は数学的に有効です。\n\n这意味着如果你的目标形式为§2,你可以使用§3タクティク進展,如果你有仮定§4,你可以使用§5タクティク進展。", + "§0": + "## \n\n§0\n\n\n## 日本語翻訳\nタクティクは証明手法を指し、定理は命題の証明を含む数学的命題を表します。Lean 4では、対話型の証明環境でこれらの要素を操作します。", + "zero_pow_zero": "零乗零\n\n\n## 参考訳\n零乗零", + "zero_pow_succ": "零冪乗成功\n\n\n## 参考訳\n零冪乗成功", + "zero_ne_succ": "zero_ne_succ\n\n\n## 日本語翻訳\n零と成功の命題は異なる(zero_ne_succ)", + "zero_mul": + "零乗\n\n\n## 備考\n- **tactic(s)**: タクティク\n- **theorem**: 定理\n- **proposition / Prop**: 命題\n- **proof**: 証明\n- **hypothesis**: 仮定\n- **type**: 型\n- **term**: 項\n- **interactive**: 対話型\n- **inventory**: インベントリ\n- **world**: ワールド\n- **start**: 開始\n- **editor mode**: エディタモード", + "zero_add": "zero_add\n\n\n## 日本語翻訳\n0との加算", + "x ≤ y or y ≤ x": "x ≤ y または y ≤ x", + "x ≤ y and y ≤ z implies x ≤ z": "x ≤ y と y ≤ z から x ≤ z が導かれる。", + "x ≤ y and y ≤ x implies x = y": "x ≤ y と y ≤ x は x = y を意味します。", + "x ≤ succ x": "x ≤ succ x", + "x ≤ 1": "x ≤ 1", + "x ≤ 0 → x = 0": "x ≤ 0 → x = 0", + "two_mul": "二倍定理", + "try rewriting §0.": "try rewriting §0.", + "the simplest approach": "最简单的方法", + "the rw tactic": "the rw タクティク", + "succ_mul": "succ_mul\n\n\n## 日本語翻訳\n成功倍加", + "succ_inj : the successor function is injective": + " successor_function_inj : サクセッサー関数は単射です", + "succ_add": "succ_add\n\n\n## 日本語翻訳\n成功加算", + "succ x ≤ succ y → x ≤ y": + " succ x ≤ succ y → x ≤ y\n\n\n## 日本語翻訳\n succ x ≤ succ y → x ≤ y", + "rewriting backwards": "反転して書き換えます\n\n\n## 参考訳\n反転して書き換えます", + "pred": "前提", + "pow_two": "pow_two", + "pow_pow": "pow_pow", + "pow_one": "pow_one\n\n\n## 日本語翻訳\nべき一度", + "pow_add": "pow_add", + "one_pow": "one_pow\n\n\n## 日本語翻訳\n1の累乗", + "one_mul": "one_mul\n\n\n## 日本語翻訳\n単位元と乗算に関する定理です。", + "one_le_of_ne_zero": "one_le_of_ne_zero", + "mul_right_eq_self": "mul_right_eq_self", + "mul_right_eq_one": "mul_right_eq_one", + "mul_pow": "mul_pow\n\n\n## 日本語翻訳\n乗法の累乗定理", + "mul_one": "mul_one\n\n\n## 日本語翻訳\n乗法の単位元定理です。", + "mul_ne_zero": "mul_ne_zero\n\n\n## 日本語翻訳\n乗算が零でない(mul_ne_zero)", + "mul_left_ne_zero": "mul_left_ne_zero\n\n\n## 日本語翻訳\n左側 multiplicand が非零である定理", + "mul_left_cancel": "mul_left_cancel", + "mul_le_mul_right": "乗法の右側への乗算の不等式定理", + "mul_eq_zero": "乗算が零に等しい", + "mul_comm": "mul_comm", + "mul_assoc": "乗法の結合律", + "mul_add": "mul_add\n\n\n## 日本語翻訳\n乘加法則", + "making life simple": "生活を単純にする", + "making life easier": "生活をより簡単に", + "level completed! 🎉": "レベル完成しました!🎉", + "level completed with warnings… 🎭": "レベルが警告付きで完了しました… 🎭", + "le_two": "le_two", + "le_mul_right": "le_mul_right\n\n## 日本語翻訳\n右側乗算に関する定理です。", + "is_zero": "is_zero\n\n\n## 日本語翻訳\n零判定", + "intro practice": "## intro practice\n\n\n## 参考訳\n入門練習", + "intro": "## はじめに\n\n\n## 参考訳\n## はじめに\n\n\n## 翻訳\n## はじめに", + "intermediate goal solved! 🎉": "中間目標解決しました!🎉", + "eq_succ_of_ne_zero": "eq_succ_of_ne_zero", + "decide again": "再決定", + "decide": "決定", + "add_succ": "add_succ\n\n\n## 日本語翻訳\n自然数の加算に関する定理を証明するタクティクです。", + "add_sq": "add_sq\n\n\n## 日本語翻訳\n平方を追加します。", + "add_right_eq_zero": "add_right_eq_zero", + "add_right_eq_self": "add_right_eq_self\n\n\n## 日本語翻訳\n右側への加算が自身と等しいこと", + "add_right_comm": "add_right_comm\n\n\n## 日本語翻訳\n右側加算の交換律(add_right_comm)", + "add_right_cancel": "add_right_cancel\n\n\n## 日本語翻訳\n右側キャンセル定理", + "add_mul": "add_mul\n\n\n## 日本語翻訳\n加法と乗法の相互作用に関する定理や証明を扱うためのタクティクです。", + "add_left_eq_zero": "add_left_eq_zero", + "add_left_eq_self": "add_left_eq_self\n\n\n## 日本語翻訳\n左側への追加が自身と等しいという命題の定理です。", + "add_left_comm": "add_left_comm\n\n\n## 日本語翻訳\n左側交換律(add_left_comm)", + "add_left_cancel": "add_left_cancel\n\n\n## 日本語翻訳\n左-cancel 付加律", + "add_comm (level boss)": + "add_comm (レベルボス)\n\n\n## 備考\n- `add_comm` は「加算の交換律を追加する」という意味です。\n- `level boss` は「レベルボス」と翻訳しています。", + "add_assoc (associativity of addition)": "add_assoc (加法の結合律)", + "[final boss music]": + "### 原文 (English)\n[final boss music]\n\n\n## 日本語翻訳\n[最終ボスのテーマ]", + "[dramatic music]. Now are you ready to face the first boss of the game?": + "[dramatic music]. 今でしょ、ゲーム最初のボス戦に臨む準備はできていますか?", "[boss battle music]\n\nLook in your inventory to see the proofs you have available.\nThese should be enough.": - "", + "[boss battle music]\n\nあなたのインベントリを確認して、利用可能な証明を確認してください。\nこれらの証明は十分なはずです。", "You've now seen all the tactics you need to beat the final boss of the game.\nYou can begin the journey towards this boss by entering Multiplication World.\n\nOr you can go off the beaten track and learn some new tactics in Implication\nWorld. These tactics let you prove more facts about addition, such as\nhow to deduce §0 from §1.\n\nClick \"Home\" and make your choice.": - "", + "以下の最終ボスを倒すためのタクティクスを全部学びました。\nゲームの最終ボスに向かう旅を始めるには、Multiplication Worldに入り始めることができます。\n\nまたは、Implication Worldで新しいタクティクスを学んでみるのも良いでしょう。これらのタクティクスは、加算に関するより多くの事実を証明するのに役立ちます。例えば、§0から§1を導き出す方法を学ぶことができます。\n\n\"Home\"をクリックして選択してください。", "You want to use §0, which you already\nproved, but you'll have to start with §1 your hypothesis.": - "", - "You still don't know which way to go, so do §0.": "", - "You now know enough tactics to prove §0! Let's begin the journey.": "", + "あなたは既に証明した§0を使用したいですが、仮定から始める必要がありますので、§1から始めなければなりません。", + "You still don't know which way to go, so do §0.": + "You still don't know which way to go, so do §0.\n\n\n## 日本語翻訳\nまだ進むべき道がわからないので、§0の指示に従いましょう。", + "You now know enough tactics to prove §0! Let's begin the journey.": + "あなたはすでに十分なタクティクを習得し、§0を証明することができます!旅程の始まりです。", "You might want to think about whether induction\non §0 or §1 is the best idea.": - "", - "You can use §0 to rewrite at §1 instead\nof at the goal.": "", - "You can start a proof by induction on §0 by typing:\n§1.": "", + " inductions on §0 や §1 は最良のアイデアでしょうか。", + "You can use §0 to rewrite at §1 instead\nof at the goal.": + "您可以在§0处重写代码,而不是在目标处进行重写。\n\n\n## 日本語翻訳\n您可以在§0でコードを改訂し、目標处の重写を避けることができます。", + "You can start a proof by induction on §0 by typing:\n§1.": + "You can start a proof by induction on §0 by typing:\n§1.\n\n\n## 日本語翻訳\n induksi法による証明を開始するには、§0について帰納法で証明を開始するためには以下のように入力します:\n§1.", "You can read more about the §0 tactic by clicking\non it in the top right.": - "", + "以下の§0 タクティクについて詳しく知るには、右上にクリックしてください。", "You can put a §0 in front of any theorem provided to §1 to rewrite\nthe other way around. Look at the docs for §2 for an explanation. Type §3 with §4.": - "", + "以下の定理を任意の §0 に先頭に付けることで、逆方向に書き換えることができます。詳細は §1 のドキュメントを参照してください。型 §2 を入力してください。", "You can prove §0 in at least three ways.\nEither by induction, or by using §1, or\nby using commutativity. Which do you think is quickest?": - "", - "You can probably take it from here.": "", - "You can now §0": "", - "You can now finish with §0.": "", + "您は§0を証明する方法として、少なくとも3つの方法があります。\n induksiонで証明するか、§1を使用するか、または交換律を使用するかです。\nどの方法が最も速いかどうか、どのように思われますか?", + "You can probably take it from here.": "您可能已经可以继续了。", + "You can now §0": "你现在可以 §0\n\n\n## 日本語翻訳\n你现在可以 §0", + "You can now finish with §0.": "你现在可以完成 §0。", "You can make your own tactics in Lean.\nThis code here\n§0\nwas used to create a new tactic §1, which runs\n§2.\nTry running §3 to solve this level!": - "", + "Leanで独自のタクティクを作成することができます。\n以下のコード\n§0\nは新しいタクティク§1の作成に使用され、§2を実行します。\n§3を実行してこのレベルを解いてみてください!", "You can just mimic the previous proof to do this one -- or you can figure out a way\nof using it.": - "", + "以下の訳文は、提供された参考訳を考慮して翻訳しました。\n\n### 翻訳 (日本語)\n前の証明を模倣してこれを行うこともできます -- または、それを活用する方法を考え出すこともできます。", "You can do induction on any of the three variables. Some choices\nare harder to push through than others. Can you do the inductive step in\n5 rewrites only?": - "", + "任意の3つの変数について帰納法を適用できます。いくつかの選択肢はもう少し難しいかもしれません。5回の書き換えで帰納的ステップを実行できるでしょうか?", "Why did we not just define §0 to be §1? Because we have not\neven *defined* addition yet! We'll do that in the next level.": - "", + "なぜ §0 を §1 に定義しなかったのか?まだ足し算そのものを定義していないからです。次レベルでその定義を行います。", "What do you think of this two-liner:\n§0\n\n§1 doesn't just take hypotheses, it will eat any proof which exists\nin the system.": - "", + "この二行は何をお考えですか:\n§0\n\n§1 は仮定だけを取るわけではありません。システム内に存在する任意の証明も食べます。", "Well done! You now have enough tools to tackle the main boss of this level.": - "", - "Well done!": "", + " WELL DONE! あなたはこのレベルの主要ボスに挑むための十分なツールを手に入れました。", + "Well done!": " WELL DONE!", "Welcome to tutorial world! In this world we learn the basics\nof proving theorems. The boss level of this world\nis the theorem §0.\n\nYou prove theorems by solving puzzles using tools called *tactics*.\nThe aim is to prove the theorem by applying tactics\nin the right order.\n\nLet's learn some basic tactics. Click on \"Start\" below\nto begin your quest.": - "", + "### 原文 (English)\nWelcome to tutorial world! In this world we learn the basics\nof proving theorems. The boss level of this world\nis the theorem §0.\n\nYou prove theorems by solving puzzles using tools called *tactics*.\nThe aim is to prove the theorem by applying tactics\nin the right order.\n\nLet's learn some basic tactics. Click on \"Start\" below\nto begin your quest.\n\n\n### 翻訳 (Japanese)\n welcomes to tutorial world! この世界では定理を証明する基本を学びます。この世界のボスレベルは定理§0です。\n\n定理を証明するには、*タクティク*というツールを使ってパズルを解きます。目標は、適切な順序でタクティクを適用して定理を証明することです。\n\n基本的なタクティクについて学んでみましょう。以下の \"開始\" をクリックして冒険を始めてください。", "Welcome to Addition World! In this world we'll learn the §0 tactic.\nThis will enable us to defeat the boss level of this world, namely §1.\n\nThe tactics §2, §3 and §4 are the only tactics you'll need to\nbeat all the levels in Addition World, Multiplication World, and Power World.\nPower World contains the final boss of the game.\n\nThere are plenty more tactics in this game, but you'll only need to know them if you\nwant to explore the game further (for example if you decide to 100%\nthe game).": - "", + "### 原文 (English)\nWelcome to Addition World! In this world we'll learn the §0 tactic.\nThis will enable us to defeat the boss level of this world, namely §1.\n\nThe tactics §2, §3 and §4 are the only tactics you'll need to\nbeat all the levels in Addition World, Multiplication World, and Power World.\nPower World contains the final boss of the game.\n\nThere are plenty more tactics in this game, but you'll only need to know them if you\nwant to explore the game further (for example if you decide to 100%\nthe game).\n\n\n### 翻訳 (Japanese)\n Additionワールドへようこそ!このワールドでは§0 タクティクを学びます。\nこれにより、このワールドのボスレベルを攻略することができます、すなわち§1です。\n\n§2, §3, §4 のタクティクのみが必要で、これらを用いて\n加算ワールド、乗算ワールド、乗方ワールドのすべてのレベルを攻略することができます。\n乗方ワールドにはゲームの最終ボスが含まれています。\n\nこのゲームにはもっと多くのタクティクがありますが、それらを知る必要はなく、\nゲームをさらに探索したい場合(例えば、ゲームを100%攻略したい場合)にのみ必要となります。", "We've seen §0, the proof that if §1 then §2.\nNow we'll prove that if §3 then §4 or §5.": - "", + "We've seen §0, 仮定§1 から §2 が成り立つことを証明した。\n次に、仮定§3 から §4 または §5 が成り立つことを証明する。", "We've proved that §0; in Implication World we'll learn\nhow to prove §1.\n\nIn Addition World we proved *equalities* like §2.\nIn this second tutorial world we'll learn some new tactics,\nenabling us to prove *implications*\nlike §3\n\nWe'll also learn two new fundamental facts about\nnatural numbers, which Peano introduced as axioms.\n\nClick on \"Start\" to proceed.": - "", + "### 原文 (English)\nWe've proved that §0; in Implication World we'll learn\nhow to prove §1.\n\nIn Addition World we proved *equalities* like §2.\nIn this second tutorial world we'll learn some new tactics,\nenabling us to prove *implications*\nlike §3\n\nWe'll also learn two new fundamental facts about\nnatural numbers, which Peano introduced as axioms.\n\nClick on \"Start\" to proceed.\n\n\n### 翻訳 (Japanese)\n私たちは§0を証明しました; Implikationワールドでは、§1を証明する方法を学びます。\n\n加法ワールドでは、§2のような等式を証明しました。\nこの二つ目のチュートリアルワールドでは、新しいタクティクを学び、\nこれを使って§3のような推論を証明できるようになります。\n\nまた、ペアノが公理として導入した自然数に関する二つの新しい基本的事実も学びます。\n\n\"開始\"をクリックして進みましょう。", "We've proved that §0 implies §1. The last two levels\nin this world will prove which numbers are §2 and §3.\nThis lemma will be helpful for them.": - "", + "We've proved that §0 から §1 が導かれる。このワールドの最後の2つのレベルでは、どの数が §2 と §3 であるかを証明する。この補題は彼らにとって役立つだろう。", "We've just seen that §0, but if §1\nis a successor, then §2. We prove that here.": - "", + "We've just seen that §0, ですが、もし §1 が後继者である場合、則 §2。ここではそのことを証明します。", "We've been adding up two numbers; in this level we will add up three.\n\n What does §0 *mean*? It could either mean §1, or it\n could mean §2. In Lean, §3 means §4.\n\n But why do we care which one it means; §5 and §6 are *equal*!\n\n That's true, but we didn't prove it yet. Let's prove it now by induction.": - "", + "### 原文 (English)\nWe've been adding up two numbers; in this level we will add up three.\n\n What does §0 *mean*? It could either mean §1, or it\n could mean §2. In Lean, §3 means §4.\n\n But why do we care which one it means; §5 and §6 are *equal*!\n\n That's true, but we didn't prove it yet. Let's prove it now by induction.\n\n\n### 翻訳 (Japanese)\n二つの数を足し合わせてきました;このレベルでは三つの数を足し合わせます。\n\n §0は何を意味するのでしょうか?それは §1 か §2 のどちらかです。Leanでは、§3 は §4 と意味が同じです。\n\n しかし、どの意味を持つべきかを気にする必要があるのでしょうか;§5 と §6 は *等しい* のです!\n\n その通りですが、まだ証明していません。 inducution で証明しましょう。", "We're going to change that §0 into §1. Start by changing it into\n§2 by executing §3.": - "", + "We're going to change that §0 into §1. Start by changing it into\n§2 by executing §3.\n\n\n## 日本語翻訳\n§0 を §1 に変更します。まず、§3 を実行して §0 を §2 に変更します。", "We'll need this lemma to prove that two is prime!\n\nYou'll need to know that §0 is right associative. This means that\n§1 actually means §2.\nThis affects how §3 and §4 work.": - "", + "We'll need this lemma to prove that two is prime!\n\nYou'll need to know that §0 is right associative. This means that\n§1 actually means §2.\nThis affects how §3 and §4 work.", "We'd like to prove §0 but right now\nwe can't even *state* it\nbecause we haven't yet defined addition.\n\n## Defining addition.\n\nHow are we going to add §1 to an arbitrary number §2? Well,\nthere are only two ways to make numbers in this game: §3\nand successors. So to define §4 we will need\nto know what §5 is and what §6 is.\nLet's start with adding §7.\n\n### Adding 0\n\nTo make addition agree with our intuition, we should *define* §8\nto be §9. More generally, we should define §10 to be §11 for\nany number §12. The name of this proof in Lean is §13.\nFor example §14 is a proof of §15,\n§16 is a proof of §17, and §18 is a proof\nof §19.\n\nWe write §20, so §21.": - "", + "### 原文 (English)\nWe'd like to prove §0 but right now\nwe can't even *state* it\nbecause we haven't yet defined addition.\n\n## Defining addition.\n\nHow are we going to add §1 to an arbitrary number §2? Well,\nthere are only two ways to make numbers in this game: §3\nand successors. So to define §4 we will need\nto know what §5 is and what §6 is.\nLet's start with adding §7.\n\n### Adding 0\n\nTo make addition agree with our intuition, we should *define* §8\nto be §9. More generally, we should define §10 to be §11 for\nany number §12. The name of this proof in Lean is §13.\nFor example §14 is a proof of §15,\n§16 is a proof of §17, and §18 is a proof\nof §19.\n\nWe write §20, so §21.\n\n\n### 翻訳 (Japanese)\n私たちは§0を証明したいですが、現在ではすら\nその定理を述べることができません。\nなぜなら、加法をまだ定義していないからです。\n\n## 加法の定義\n\n任意の数§2に§1を加える方法はどのようなものでしょうか?\nこのゲームでは数を生成する方法は2つしかありません:§3\nと後続数。したがって、§4を定義するには\n§5と§6がどのようなものかを知る必要があります。\nまずは§7を加えることにしましょう。\n\n### 0を加える\n\n加法が直感に合致するようにするためには、§8を\n§9とするべきです。より一般的には、任意の数§12に対して\n§10を§11とするべきです。Leanでのこの証明の名前は§13です。\n例えば、§14は§15の証明、§16は§17の証明、§18は§19の証明です。\n\n私たちは§20と書きます、つまり§21です。", "We want to use §0, but we need a hypothesis §1\nwhich we don't have. Yet. Execute §2 (you can type §3 with §4).\nYou'll be asked to\nprove it, and then you'll have a new hypothesis which you can apply\n§5 to.": - "", + "We want to use §0, ですが、§1 という仮定が必要で、現在持正在りません。まだありません。§2 を実行してください(§3 を §4 で入力できます)。\n求められるまでは証明が必要ですが、証明後には新しい仮定が得られ、それを §5 で適用できます。", "We want to reduce this to a hypothesis §0 and a goal §1,\nwhich is logically equivalent but much easier to prove. Remember that §2\nis notation for §3. Click on §4 if you need hints.": - "", + "We want to reduce this to a hypothesis §0 and a goal §1,\nwhich is logically equivalent but much easier to prove. Remember that §2\nis notation for §3. Click on §4 if you need hints.\n\n\n## 日本語翻訳\nこの部分を仮定§0と目標§1に簡略化したいです。これは論理的に同等ですが、証明がはるかに簡単になります。§2は§3の表記法です。ヒントが必要な場合は§4をクリックしてください。", "We still can't prove §0 because we have not talked about the\ndefinition of §1. In Lean, §2 is *notation* for §3.\nHere §4 is a generic false proposition, and §5 is Lean's notation\nfor \"implies\". In logic we learn\nthat §6 is false, but §7 is true. Hence\n§8 is the logical opposite of §9.\n\nEven though §10 does not look like an implication,\nyou should treat it as an implication. The next two levels will show you how.\n\n§11 is a goal which you cannot deduce from a consistent set of assumptions!\nSo if your goal is §12 then you had better hope that your hypotheses\nare contradictory, which they are in this level.": - "", + "### 原文 (English)\nWe still can't prove §0 because we have not talked about the\ndefinition of §1. In Lean, §2 is *notation* for §3.\nHere §4 is a generic false proposition, and §5 is Lean's notation\nfor \"implies\". In logic we learn\nthat §6 is false, but §7 is true. Hence\n§8 is the logical opposite of §9.\n\nEven though §10 does not look like an implication,\nyou should treat it as an implication. The next two levels will show you how.\n\n§11 is a goal which you cannot deduce from a consistent set of assumptions!\nSo if your goal is §12 then you had better hope that your hypotheses\nare contradictory, which they are in this level.\n\n\n### 翻訳 (Japanese)\nまだ §0 を証明することができません。なぜなら §1 の定義について話していなかったからです。Lean では §2 は §3 の *表記* です。\nここでは §4 は一般的な偽命題、§5 は Lean の \"implies\" の表記です。論理学では §6 は偽であり、§7 は真です。したがって\n§8 は §9 の論理的対偶です。\n\n§10 は直感上 implication に見えないかもしれませんが、 implication として扱うべきです。次の 2 つのレベルでその方法を学びます。\n\n§11 は一貫性のある仮定から導き出せない目標です!したがって、目標が §12 の場合、仮定が矛盾していることを願うべきで、このレベルではそうしています。", "We now start work on an algorithm to do addition more efficiently. Recall that\nwe defined addition by recursion, saying what it did on §0 and successors.\nIt is an axiom of Lean that recursion is a valid\nway to define functions from types such as the naturals.\n\nLet's define a new function §1 from the naturals to the naturals, which\nattempts to subtract 1 from the input. The definition is this:\n\n§2\n\nWe cannot subtract one from 0, so we just return a junk value. As well as this\ndefinition, we also create a new lemma §3, which says that §4.\nLet's use this lemma to prove §5, the theorem which\nPeano assumed as an axiom and which we have already used extensively without justification.": - "", + "### 原文 (English)\nWe now start work on an algorithm to do addition more efficiently. Recall that\nwe defined addition by recursion, saying what it did on §0 and successors.\nIt is an axiom of Lean that recursion is a valid\nway to define functions from types such as the naturals.\n\nLet's define a new function §1 from the naturals to the naturals, which\nattempts to subtract 1 from the input. The definition is this:\n\n§2\n\nWe cannot subtract one from 0, so we just return a junk value. As well as this\ndefinition, we also create a new lemma §3, which says that §4.\nLet's use this lemma to prove §5, the theorem which\nPeano assumed as an axiom and which we have already used extensively without justification.\n\n\n### 翻訳 (Japanese)\n現在、効率的な加算を行うアルゴリズムの作成を開始します。再帰によって加算を定義したことを思い出してください。具体的には、0と後続者に対して何を行うかを定義しました。\nLeanの公理として、再帰は自然数などの型から関数を定義する有効な方法であるとされています。\n\n自然数から自然数への新しい関数§1を定義します。これは、入力から1を引こうとする関数です。その定義は以下の通りです:\n\n§2\n\n0から1を引くことはできませんので、無効な値を返します。この定義とともに、新しい補題§3も定義します。これは§4を述べています。\nこの補題を使って、§5(ペアノが公理として仮定し、以前にも正当化せずに頻繁に使用した定理)を証明しましょう。", "We now have enough to state a mathematically accurate, but slightly\nclunky, version of Fermat's Last Theorem.\n\nFermat's Last Theorem states that if §0 and §1 then §2.\nIf you didn't do inequality world yet then we can't talk about §3,\nso we have to resort to the hack of using §4 for §5,\nwhich guarantees it's big enough. Similarly instead of §6 we\nuse §7.\n\nThis level looks superficially like other levels we have seen,\nbut the shortest solution known to humans would translate into\nmany millions of lines of Lean code. The author of this game,\nKevin Buzzard, is working on translating the proof by Wiles\nand Taylor into Lean, although this task will take many years.\n\n## CONGRATULATIONS!\n\nYou've finished the main quest of the natural number game!\nIf you would like to learn more about how to use Lean to\nprove theorems in mathematics, then take a look\nat [Mathematics In Lean](https://leanprover-community.github.io/mathematics_in_lean/),\nan interactive textbook which you can read in your browser,\nand which explains how to work with many more mathematical concepts in Lean.": - "", + "### 原文 (English)\nWe now have enough to state a mathematically accurate, but slightly\nclunky, version of Fermat's Last Theorem.\n\nFermat's Last Theorem states that if §0 and §1 then §2.\nIf you didn't do inequality world yet then we can't talk about §3,\nso we have to resort to the hack of using §4 for §5,\nwhich guarantees it's big enough. Similarly instead of §6 we\nuse §7.\n\nThis level looks superficially like other levels we have seen,\nbut the shortest solution known to humans would translate into\nmany millions of lines of Lean code. The author of this game,\nKevin Buzzard, is working on translating the proof by Wiles\nand Taylor into Lean, although this task will take many years.\n\n## CONGRATULATIONS!\n\nYou've finished the main quest of the natural number game!\nIf you would like to learn more about how to use Lean to\nprove theorems in mathematics, then take a look\nat [Mathematics In Lean](https://leanprover-community.github.io/mathematics_in_lean/),\nan interactive textbook which you can read in your browser,\nand which explains how to work with many more mathematical concepts in Lean.\n\n\n### 翻訳 (Japanese)\n我们现在有足够的知识来陈述一个数学上准确但略显笨拙的费马大定理。\n\n费马大定理指出,如果§0 且 §1,则 §2。\n如果你还没有完成不等式世界,则无法讨论 §3,\n所以我们不得不使用 §4 代替 §5,这保证了它的大小足够。类似地,我们使用 §7 代替 §6。\n\n这一关看起来与其他关卡相似,\n但人类已知的最短解决方案会转化为数以百万计的Lean代码行。这款游戏的作者Kevin Buzzard正在努力将威尔斯和泰勒的证明翻译成Lean,\n尽管这项任务将需要很多年的时间。\n\n## おめでとう!\n\n自然数ゲームの主要な冒険を終えました!\nLeanを使用して数学の定理を証明する方法をさらに学びたい場合は、\n[Leanで数学](https://leanprover-community.github.io/mathematics_in_lean/) を参照してください。\nこれはブラウザで読むことができる対話型教科書で、Leanでより多くの数学的概念を扱う方法を説明しています。", "We now have enough to prove that multiplication is associative,\nthe boss level of multiplication world. Good luck!": - "", + "現在、乗算が結合的であることを証明できるようになりました。これは乗算ワールドのボスレベルです。お運びください!", "We know §0 is a proof of §1 -- but what\nif we have a hypothesis §2? It's the wrong way around!\n\nThe §3 tactic changes a goal §4 to §5, and a goal §6\nto §7. And §8\ndoes the same for a hypothesis §9. We've proved §10 and called\nthe proof §11; now try proving §12.": - "", + "### 原文 (English)\nWe know §0 is a proof of §1 -- but what\nif we have a hypothesis §2? It's the wrong way around!\n\nThe §3 tactic changes a goal §4 to §5, and a goal §6\nto §7. And §8\ndoes the same for a hypothesis §9. We've proved §10 and called\nthe proof §11; now try proving §12.\n\n\n### 翻訳 (Japanese)\n我们知道 §0 是 §1 的证明 -- 但如果有一个假设 §2 呢?顺序正好相反!\n\n§3 のタクティクは、目標 §4 を §5 に変更し、目標 §6 を §7 に変更します。そして §8 は、假设 §9 について同じ操作を行います。我们已经证明了 §10,并将其证明称为 §11;现在试着证明 §12。", "We have seen how to §0 theorems and assumptions\nof the form §1. But what if our *goal* is of the form §2?\nTo prove this goal, we need to know how to say \"let's assume §3 and deduce §4\"\nin Lean. We do this with the §5 tactic.": - "", + "### 原文 (English)\nWe have seen how to §0 theorems and assumptions\nof the form §1. But what if our *goal* is of the form §2?\nTo prove this goal, we need to know how to say \"let's assume §3 and deduce §4\"\nin Lean. We do this with the §5 tactic.\n\n\n### 翻訳 (Japanese)\n私たちは、形式 §1 の定理や仮定の §0 の方法を見ました。しかし、もし私たちの *目標* が形式 §2 の場合、この目標を証明するには、Lean で \"§3 という仮定を設け、 §4 を導く\" という方法を知る必要があります。これを行うためには、§5 タクティクを使用します。", "We gave a pretty unsatisfactory proof of §0 earlier on; now give a nicer one.": - "", - "We don't know whether to go left or right yet. So start with §0.": "", + "## 前回の証明は不十分でしたので、今回はより良い証明方法を示します。", + "We don't know whether to go left or right yet. So start with §0.": + "### 原文 (English)\nWe don't know whether to go left or right yet. So start with §0.\n\n\n## 日本語翻訳\nまだ左に進むべきか右に進むべきかは分かりません。そのため、§0から始めてみましょう。", "We define a function §0 thus:\n\n§1\n\nWe also create two lemmas, §2 and §3, saying that §4\nand §5. Let's use these lemmas to prove §6, Peano's\nLast Axiom. Actually, we have been using §7 before, but it's handy to have\nthis opposite version too, which can be proved in the same way. Note: you can\ncheat here by using §8 but the point of this world is to show\nyou how to *prove* results like that.\n\nIf you can turn your goal into §9, then the §10 tactic will solve it.": - "", + "### 原文 (English)\nWe define a function §0 thus:\n\n§1\n\nWe also create two lemmas, §2 and §3, saying that §4\nand §5. Let's use these lemmas to prove §6, Peano's\nLast Axiom. Actually, we have been using §7 before, but it's handy to have\nthis opposite version too, which can be proved in the same way. Note: you can\ncheat here by using §8 but the point of this world is to show\nyou how to *prove* results like that.\n\nIf you can turn your goal into §9, then the §10 tactic will solve it.\n\n\n### 日本語翻訳\n関数 §0 を定義します:\n\n§1\n\nまた、命題 §2 と §3 を作成し、§4\nと §5 を言います。これらの命題を使って、ペアノの最終公理 §6 を証明しましょう。実際、§7 は以前から使用していましたが、同じ方法で証明できる逆の命題も用意しておくと便利です。注意:ここでは §8 を使用して cheat することができますが、このワールドの目的は、そのような結果を証明する方法を示すことです。\n\n目標を §9 に変換できるなら、§10 タクティクで解決できます。", "Very well done.\n\nA passing mathematician remarks that with you've just proved that §0 is totally\nordered.\n\nThe final few levels in this world are much easier.": - "", - "Use §0.": "", + "Very well done.\n\n数学的な見地から言えば、あなたが証明したところでは、§0 は完全に順序付けられています。\n\nこのワールドの最後の数レベルははるかに簡単です。", + "Use §0.": "使用してください §0。", "Use §0 and remember that §1 will solve a goal\nif there are hypotheses §2 and §3.": - "", - "Use the previous lemma with §0.": "", - "Tutorial World": "", - "Try §0.": "", - "Try §0 to change §1 into §2.": "", + "使用する§0と、仮定§2と§3がある場合、§1は目標を解決します。", + "Use the previous lemma with §0.": "前の補題を使用し、§0を適用してください。", + "Tutorial World": "チュートリアルワールド", + "Try §0.": "試してみましょう§0。", + "Try §0 to change §1 into §2.": "試してみて §0 を使用し、§1 を §2 に変換してください。", "Totality of §0 is the boss level of this world, and it's coming up next. It says that\nif §1 and §2 are naturals then either §3 or §4.\nBut we haven't talked about §5 at all. Here's a run-through.\n\n1) The notation for \"or\" is §6. You won't need to type it, but you can\ntype it with §7.\n\n2) If you have an \"or\" statement in the *goal*, then two tactics make\nprogress: §8 and §9. But don't choose a direction unless your\nhypotheses guarantee that it's the correct one.\n\n3) If you have an \"or\" statement as a *hypothesis* §10, then\n§11 will create two goals, one where you went left,\nand the other where you went right.": - "", - "To solve this level, you need to §0 a number §1 such that §2.": "", + "### 原文 (English)\nTotality of §0 is the boss level of this world, and it's coming up next. It says that\nif §1 and §2 are naturals then either §3 or §4.\nBut we haven't talked about §5 at all. Here's a run-through.\n\n1) The notation for \"or\" is §6. You won't need to type it, but you can\ntype it with §7.\n\n2) If you have an \"or\" statement in the *goal*, then two tactics make\nprogress: §8 and §9. But don't choose a direction unless your\nhypotheses guarantee that it's the correct one.\n\n3) If you have an \"or\" statement as a *hypothesis* §10, then\n§11 will create two goals, one where you went left,\nand the other where you went right.\n\n\n### 翻訳 (Japanese)\n完全性の §0 はこのワールドのボスレベルであり、次に登場します。これは、§1 と §2 が自然数である場合、§3 または §4 であることを言います。\nしかし、§5 については全く話していません。以下は概要です。\n\n1) \"または\" の表記は §6 です。直接入力する必要はありませんが、§7 で入力することができます。\n\n2) 目的 §8 に \"または\" の文がある場合、2 つのタクティク §9 が進行します。ただし、方向を選択する前に、仮定が正しい方向を保証していることを確認してください。\n\n3) 仮定 §10 に \"または\" の文がある場合、§11 は 2 つの目的を作成します。一つは左に進んだ場合、もう一つは右に進んだ場合です。", + "To solve this level, you need to §0 a number §1 such that §2.": + "このレベルを解くためには、§0 に数字 §1 を §2 する必要があります。", "Those of you interested in speedrunning the game may want to know\nthat §0 will do both rewrites at once.": - "", + "ゲームの速 Exterior に興味がある方は、§0 が一度に両方のリライトを行うことを知るかもしれません。", "This world introduces exponentiation. If you want to define §0\nthen, as always, you will need to know what §1 is, and\nwhat §2 is, given only §3.\n\nYou can probably guess the names of the general theorems:\n\n * §4\n * §5\n\nUsing only these, can you get past the final boss level?\n\nThe levels in this world were designed by Sian Carey, a UROP student\nat Imperial College London, funded by a Mary Lister McCammon Fellowship\nin the summer of 2019. Thanks to Sian and also thanks to Imperial\nCollege for funding her.": - "", - "This time, use the §0 tactic.": "", + "### 原文 (English)\nThis world introduces exponentiation. If you want to define §0\nthen, as always, you will need to know what §1 is, and\nwhat §2 is, given only §3.\n\nYou can probably guess the names of the general theorems:\n\n * §4\n * §5\n\nUsing only these, can you get past the final boss level?\n\nThe levels in this world were designed by Sian Carey, a UROP student\nat Imperial College London, funded by a Mary Lister McCammon Fellowship\nin the summer of 2019. Thanks to Sian and also thanks to Imperial\nCollege for funding her.\n\n\n### 翻訳 (Japanese)\nこの世界では指数演算が導入されます。§0を定義するには、常に §1 と §2 が何であるかを知る必要があります。そして、それらを §3 だけを使って推測する必要があります。\n\n一般的な定理の名前はおそらく予想できるでしょう:\n\n * §4\n * §5\n\nこれらのものだけを使って最終ボスレベルを突破できるでしょうか?\n\nこの世界のレベルは、2019年夏にマリー・リスト・マッカモン助成金によりインペリアルコロッゲン・ロンドン大学のUROP学生であるシアン・ケアリーによって設計されました。シアンに感謝します。また、インペリアルコロッゲンの助成にも感謝します。", + "This time, use the §0 tactic.": "この回は、§0 タクティクを使用します。", "This level proves §0, the multiplicative analogue of Advanced Addition\nWorld's §1. The strategy is to prove that §2 and then use the\nlemma §3 from §4 world.\n\nWe'll prove it using a new and very useful tactic called §5.": - "", + "このレベルでは、進んだ加算ワールドの§1の乗法的な類似物である§0を証明します。戦略は、§2を証明し、その後、§4ワールドから§3の補題を使用することです。\n\n新しい非常に有用なタクティク§5を使用して証明します。", "This level proves that if §0 then §1 or §2. It is\nlogically equivalent to the last level, so there is a very short proof.": - "", + "このレベルは、§0 ならば §1 または §2 であることを証明します。これは最後のレベルと論理的に同等であるため、非常に短い証明があります。", "This level proves that if §0 and §1 then §2. One strategy\nis to write both §3 and §4 as §5 of something, deduce that §6 is\nalso §7 of something, and then §8.": - "", + "このレベルでは、§0 と §1 であることを示す必要があります。一つの戦略は、§3 と §4 を両方とも §5 の何かの §6 であると書き、それから §7 であることを導き、最後に §8 とします。", "This level is more important than you think; it plays\na useful role when battling a big boss later on.": - "", + "このレベルは想像以上に重要です;後で大ボスとの戦いにおいて有用な役割を果たします。", "This level asks you to prove *antisymmetry* of §0.\nIn other words, if §1 and §2 then §3.\nIt's the trickiest one so far. Good luck!": - "", + "このレベルでは、§0 の *反対称性* を証明する必要があります。\nつまり、§1 かつ §2 ならば §3 です。\nこれまでで最も難しい問題です。運を祈ります!", "This lemma would have been easy if we had known that §0. That theorem\n is called §1 and it is *true*, but unfortunately its proof *uses* both\n §2 and §3!\n\n Let's continue on our journey to §4, the proof of §5.": - "", + "この補題は、§0を知っていたら簡単だったでしょう。その定理は§1と呼ばれ、**真**です。しかし、残念ながらその証明は§2と§3を**使用**しています!\n\n§4の証明へと進みましょう、§5の証明に。", "This is I think the toughest level yet. Tips: if §0 is a number\nthen §1 will split into cases §2 and §3.\nAnd don't go left or right until your hypotheses guarantee that\nyou can prove the resulting goal!\n\nI've left hidden hints; if you need them, retry from the beginning\nand click on \"Show more help!\"": - "", - "The §0 tactic.": "", - "The §0 tactic": "", - "The way to start this proof is §0.": "", - "The rfl tactic": "", - "The reason §0 is because §1.\nSo you should start this proof with §2.": "", - "The previous lemma can be used to prove this one.": "", + "これは今までで最も難しいレベルかもしれません。ヒント:もし§0が数値であれば、§1は§2と§3に分岐します。\nそして、仮定が結果の目標を証明できる保証がない限りは左や右には移動しないでください!\n\n隠されたヒントを残しています;必要であれば、最初からやり直し、「もっと手助けを表示!」とクリックしてください。", + "The §0 tactic.": "The タクティク tactic.", + "The §0 tactic": "The タクティク §0\n\n\n## 日本語翻訳\nタクティク §0", + "The way to start this proof is §0.": "この証明を始める方法は §0。", + "The rfl tactic": "The rfl タクティク", + "The reason §0 is because §1.\nSo you should start this proof with §2.": + "The reason §0 is because §1.\nSo you should start this proof with §2.\n\n\n## 翻訳\n理由§0は§1である。\n従って、この証明は§2から始めるべきである。", + "The previous lemma can be used to prove this one.": + "前の定理を用いて、この定理を証明することができます。", "The next result we'll need in §0 World is that if §1 then §2 and §3.\nLet's prove one of these facts in this level, and the other in the next.\n\n## A new tactic: §4\n\nThe §5 tactic will split an object or hypothesis up into the possible ways\nthat it could have been created.\n\nFor example, sometimes you want to deal with the two cases §6 and §7 separately,\nbut don't need the inductive hypothesis §8 that comes with §9.\nIn this situation you can use §10 instead. There are two ways to make\na number: it's either zero or a successor. So you will end up with two goals, one\nwith §11 and one with §12.\n\nAnother example: if you have a hypothesis §13 then you are done, because a false statement implies\nany statement. Here §14 will close the goal, because there are *no* ways to\nmake a proof of §15! So you will end up with no goals, meaning you have proved everything.": - "", + "### 原文 (English)\nThe next result we'll need in §0 World is that if §1 then §2 and §3.\nLet's prove one of these facts in this level, and the other in the next.\n\n## A new tactic: §4\n\nThe §5 tactic will split an object or hypothesis up into the possible ways\nthat it could have been created.\n\nFor example, sometimes you want to deal with the two cases §6 and §7 separately,\nbut don't need the inductive hypothesis §8 that comes with §9.\nIn this situation you can use §10 instead. There are two ways to make\na number: it's either zero or a successor. So you will end up with two goals, one\nwith §11 and one with §12.\n\nAnother example: if you have a hypothesis §13 then you are done, because a false statement implies\nany statement. Here §14 will close the goal, because there are *no* ways to\nmake a proof of §15! So you will end up with no goals, meaning you have proved everything.\n\n\n### 翻訳 (Japanese)\n次に §0 ワールドで必要になる結果は、もし §1 なら §2 と §3 です。\nこのレベルで一つの事実を証明し、次のレベルでもう一つの事実を証明しましょう。\n\n## 新しいタクティク: §4\n\n§5 タクティクは、オブジェクトや仮定を生成された可能性のある方法に分割します。\n\n例えば、時々 §6 と §7 の二つのケースを個別に扱いたい場合がありますが、§9 が伴う §8 の帰納的仮定は必要ありません。\nこの状況では、§10 を使用することができます。数を作る方法は二つあります:ゼロか後続です。したがって、二つの目標が残ります。一つには §11 があり、もう一つには §12 があります。\n\n別の例:仮定 §13 がある場合、証明は完了します。偽の命題は任意の命題を導くからです。ここでは §14 が目標を閉じます。なぜなら §15 の証明を作る方法は *ありません*!したがって、目標が残らないため、すべてを証明したということになります。", "The music gets ever more dramatic, as we explore\nthe interplay between exponentiation and multiplication.\n\nIf you're having trouble exchanging the right §0\nbecause §1 swaps the wrong multiplication,\nthen read the documentation of §2 for tips on how to fix this.": - "", + "The music gets ever more dramatic, as we explore\n指数乗と乗算の相互作用。\n\nもし指数乗と乗算の順序を正しく交換できずに\n§1 が誤った乗算を交換してしまう場合、\n§2 のドキュメンテーションを参照して修正方法を確認してください。", "The music dies down. Is that it?\n\nCourse it isn't, you can\nclearly see that there are two levels left.\n\nA passing mathematician says that mathematicians don't have a name\nfor the structure you just constructed. You feel cheated.\n\nSuddenly the music starts up again. This really is the final boss.": - "", + "音楽が静まり返る。これで終わり?\n\nまだ二つ目のレベルが残っていることは明らかだ。\n\n通りすがりの数学者が言うには、あなたが構築した構造には数学の名前がないらしい。だまされた気分だ。\n\n突然、音楽が再開する。これで本当に最終ボスだ。", "The lemma proved in the final level of this world will be helpful\nin Divisibility World.": - "", + "最終レベルで証明された補題は、整除世界で役立つでしょう。", "The inductive hypothesis §0 is \"For all natural numbers §1, §2\".\nYou can §3 it §4 any hypothesis of the form §5.": - "", + " induktive 仮定 §0 は \"全ての自然数 §1 について §2\" です。\nあなたは §3 その §4 仮定 §5 の任意の形で §6 できます。", "The goal in this level is one of our hypotheses. Solve the goal by executing §0.": - "", + "このレベルの目標は、私たちの仮定の一つです。目標を達成するには、§0 を実行してください。", "The first sub-boss of Multiplication World is §0.\n\nWhen you've proved this theorem we will have \"spare\" proofs\nsuch as §1, which is now easily deducible from §2.\nBut we'll keep hold of these proofs anyway, because it's convenient\nto have exactly the right tool for a job.": - "", - "The classical introduction game for Lean.": "", - "Start with §0. This will change §1 to §2.": "", - "Start with §0.": "", + "The first sub-boss of Multiplication Worldは§0です。\n\nこの定理を証明すると、「余裕」のある証明が得られます。\n例えば、§2から容易に導かれる§1があります。\nしかし、これらの証明は手元に置いておくことにします。\n必要な仕事に適切な道具を持つためです。", + "The classical introduction game for Lean.": + "The classical introduction game for Lean 4。\n\n## 日本語翻訳\nLean 4 の古典的な導入ゲーム。", + "Start with §0. This will change §1 to §2.": "開始します。§0を入力すると、§1が§2に変更されます。", + "Start with §0.": "開始します。§0。", "Start with §0, to change the goal into its\ncontrapositive, namely a hypothesis of §1 and a goal of §2.": - "", - "Start with §0 to push all the brackets to the right.": "", - "Start with §0 to do a case split on §1 and §2.": "", - "Start with §0 to begin to break §1 down into its definition.": "", - "Start with §0 to assume the hypothesis.": "", - "Start with §0 to assume the hypothesis and call its proof §1.": "", - "Start with §0 to apply §1 to the *goal*.": "", - "Start with §0 and §1": "", - "Start with §0 and take it from there.": "", - "Start with §0 (remembering that §1 is just notation\nfor §2).": "", - "Start with induction on §0.": "", - "Start by unravelling the §0.": "", - "Split into cases §0 and §1 with §2.": "", - "Solve this level in one line with §0": "", + "開始するには、§0 から始めて、目標を対偶に変更し、具体的には§1 の仮定と§2 の目標にします。", + "Start with §0 to push all the brackets to the right.": "開始は§0から全括弧を右に移動させます。", + "Start with §0 to do a case split on §1 and §2.": + "開始するには、§0 を使用して §1 と §2 に対してケース分割を行います。", + "Start with §0 to begin to break §1 down into its definition.": + "開始は§0から始めて、§1を定義に分解するところから始めます。", + "Start with §0 to assume the hypothesis.": "開始するには、§0 を使用して仮定を仮定します。", + "Start with §0 to assume the hypothesis and call its proof §1.": + "開始する際は、§0 を使用して仮定を仮定し、その証明を§1と呼びます。", + "Start with §0 to apply §1 to the *goal*.": + "開始するには、§0 を使用して §1 を *目標* に適用します。", + "Start with §0 and §1": "開始するには、§0 と §1 を使用します。", + "Start with §0 and take it from there.": "開始は§0からにして、その後は対話型で進めてください。", + "Start with §0 (remembering that §1 is just notation\nfor §2).": + "開始は §0 から (§1 は §2 の表記法であることを覚えておいてください)。", + "Start with induction on §0.": "開始は §0 に対する帰納法からです。", + "Start by unravelling the §0.": "開始するには、§0 を unravel してください。", + "Split into cases §0 and §1 with §2.": "ケース分けして §0 と §1 に分ける。", + "Solve this level in one line with §0": "このレベルを一行で解いてください§0", "So that's the algorithm: now let's use automation to perform it\nautomatically.": - "", + "そのアルゴリズムはこれです:今度は自動化を使って自動的に実行させましょう。", "Similarly we have §0\nbut we're going to need §1 (guess what it says -- maybe you\nare getting the hang of Lean's naming conventions).\n\nThe last level from addition world might help you in this level.\nIf you can't remember what it is, you can go back to the\nhome screen by clicking the house icon and then taking a look.\nYou won't lose any progress.": - "", + "Similarly we have §0\nbut we're going to need §1 (guess what it says -- maybe you\nare getting the hang of Lean's naming conventions).\n\n最後のレベルから加算ワールドが提供されるかもしれません。\n記憶が曖昧な場合は、家アイコンをクリックしてホーム画面に戻り、確認してください。\n進捗は失われません。", "See the new \"*\" tab in your lemmas, containing §0 and §1.\nRight now these are the only facts we know about multiplication.\nLet's prove nine more.\n\nLet's start with a warm-up: no induction needed for this one,\nbecause we know §2 is a successor.": - "", + "新しい \"*\" タブを確認してください。そこで §0 と §1 が表示されています。\n現在、これらは乗算について知っている唯一の事実です。\n9つ更多的の証明を行いましょう。\n\nまずはウォームアップから始めましょう。この場合は inducition は必要ありません。\nなぜなら §2 は後继であることが分かっているからです。", "See if you can take it from here. Look at the new lemmas and tactic\navailable on the right.": - "", - "Remember, §0 is *notation* for §1.": "", + "見られる範囲で新しい命題とタクティクが追加されています。それらを活用してみてください。", + "Remember, §0 is *notation* for §1.": "記憶しておいてください、§0は§1の*表記*です。", "Remember that §0 is a proof of §1. Try\n§2ing §3 either §4 or directly to the goal.": - "", + "Remember that §0は§1の証明です。試してみてください。\n§2ing §3 は目標に直接または§4から行うことができます。", "Remember that when Lean writes §0, it means §1.\nIf you are not sure where the brackets are in an expression, just hover\nyour cursor over it and look at what gets highlighted. For example,\nhover over both §2 symbols on the left hand side of the goal and\nyou'll see where the invisible brackets are.": - "", - "Reduce to the previous lemma with §0": "", - "Ready for the boss level of this world?": "", + "Remember that when Lean writes §0, it means §1.\nもし式内の括弧の位置が不明な場合は、カーソルをその位置に-hover して表示されるハイライトを確認してください。例えば、目標の左側の両方の§2をhoverすると、見えない括弧の位置がわかります。", + "Reduce to the previous lemma with §0": "以前の補題に §0 をReduceします。", + "Ready for the boss level of this world?": "このワールドのボスレベルに備えていますか?", "Proofs like §0 and §1 are very tedious to do by hand.\nIn Algorithm World we learn how to get the computer to do them for us.\n\nClick on \"Start\" to proceed.": - "", - "Precision rewriting": "", - "Power World": "", + "証明如き§0や§1は手作業で行うと非常に退屈です。\nAlgorithm Worldでは、コンピュータにその作業を任せることを学びます。\n\n\"開始\"をクリックして進みましょう。", + "Precision rewriting": "精密な書き換え\n\n##", + "Power World": "パワー・ワールド", "Our next goal is \"left and right distributivity\",\nmeaning §0 and §1. Rather than\nthese slightly pompous names, the name of the proofs\nin Lean are descriptive. Let's start with\n§2, the proof of §3.\nNote that the left hand side contains a multiplication\nand then an addition.": - "", + "次々目標は「左側と右側の分配律」です、つまり§0と§1。これらのやや冠礼的な名前とは異なり、Leanの証明の名前は説明的です。まずは§2から始めましょう、§3の証明です。注意してほしいのは、左辺に乘算が含まれていて、その後に加算があることです。", "Our first challenge is §0,\nand we want to prove it by induction. The zero\ncase will need §1 (which we have)\nand §2 (which we don't), so let's\nstart with this.": - "", + "## 原文 (English)\nOur first challenge is §0,\nand we want to prove it by induction. The zero\ncase will need §1 (which we have)\nand §2 (which we don't), so let's\nstart with this.\n\n\n## 日本語翻訳\n私たちの最初の挑戦は§0です。\nこれは帰納法によって証明したいと思います。\n零の場合には§1(持っています)\nと§2(持っていない)が必要なので、まずはこれから始めましょう。", "One of the best named levels in the game, a savage §0\nsub-boss appears as the music reaches a frenzy. What\nelse could there be to prove about powers after this?": - "", + "ゲームで最も適切に名付けられたレベルの一つとして知られる場面で、音楽が狂熱に達すると凶暴な§0\nサブボスが登場します。それ以降の力について何を証明できるでしょうか?", "One day this game will have a Prime Number World, with a final boss\nof proving that §0 is prime.\nTo do this, we will have to rule out things like §1\nWe will do this by proving that any factor of §2 is at most §3,\nwhich we will do using this lemma. The proof I have in mind manipulates the hypothesis\nuntil it becomes the goal, using §4, §5 and\n§6.": - "", + "One dayこのゲームには素数ワールドが存在し、最終ボスは§0が素数であることを証明することになる。\nこれを達成するためには、§1のようなものを排除する必要がある。\nこれは、§2の任意の約数が最多§3であることを証明することで行う。その証明はこの補題を使用する。私は考えている証明は、仮定を操作し、最終的に目標になるようにする。これには§4、§5、§6を使用する。", "On the set of natural numbers, addition is commutative.\nIn other words, if §0 and §1 are arbitrary natural numbers, then\n§2.": - "", + "自然数の集合において、加算は交換律を満たします。\nつまり、任意の自然数 §0 と §1 に対して、\n§2.\n\n\n## 参考訳\n自然数の集合において、加算は交換律を満たします。\nつまり、任意の自然数 §0 と §1 に対して、\n§2.", "On the set of natural numbers, addition is associative.\nIn other words, if §0 and §1 are arbitrary natural numbers, we have\n§2": - "", + "自然数の集合において、加法は結合法則を満たします。\nつまり、任意の自然数 §0 と §1 に対して、以下の関係が成り立ちます。\n§2", "Oh no! On the way to §0, a wild §1 appears. §2\nis the proof that §3 for §4 and §5 numbers.\nThis result is what's standing in the way of §6. Again\nwe have the problem that we are adding §7 to things, so we need\nto use induction to split into the cases where §8 and §9 is a successor.": - "", - "Numbers": "", - "Now §0.": "", - "Now §0 will work.": "", - "Now §0 will change §1 into §2.": "", - "Now §0 to cancel the §1s.": "", - "Now §0 then §1 works, but §2 is quicker.": "", - "Now §0 so you can §1.": "", - "Now §0 is the quickest way to\nchange §1 to §2.": "", + "Oh no! §0 に向かう途中で、野生の §1 が現れました。 §2 は、 §3 が §4 と §5 の数値に対して成り立つことを証明しています。この結果が §6 の道を阻んでいます。また\n私たちは §7 を何かに加算している問題に直面しており、そのためには §8 と §9 が後继者である場合に分けて帰納法を使用する必要があります。", + "Numbers": "数値\n\n\n##", + "Now §0.": "現在、§0。", + "Now §0 will work.": "現在、§0 が動作するようになります。", + "Now §0 will change §1 into §2.": "現在、§0は§1を§2に変換します。", + "Now §0 to cancel the §1s.": "現在、§0を用いて§1sをキャンセルします。", + "Now §0 then §1 works, but §2 is quicker.": + "現在、§0 と §1 は正常に動作しますが、§2 はより速いです。", + "Now §0 so you can §1.": "現在 §0 なので、§1 です。", + "Now §0 is the quickest way to\nchange §1 to §2.": + "現在、§0は§1を§2に変更する最も迅速な方法です。", "Now §0 is a proof that §1, and §2 has vanished. Similarly, you can destruct\n§3 into its parts with §4.": - "", - "Now §0 finishes the job.": "", - "Now §0 and you can probably take it from here.": "", - "Now §0 and deal with the two\ncases separately.": "", + "現在、§0 は §1 の証明です。また、§2 は消えました。同様に、§4 を使用して §3 をその部分に分解できます。", + "Now §0 finishes the job.": "現在、§0 が仕事の完了を告げる。", + "Now §0 and you can probably take it from here.": "現在、§0 です。ここから大丈夫でしょう。", + "Now §0 and deal with the two\ncases separately.": "現在、§0 で、二つの場合を別々に処理します。", "Now you need to figure out which number to §0. See if you can take it from here.": - "", + "今度は §0 の部分に何を入力するか考えなさい。ここから進められるようなら自分で進めてみてください。", "Now you have two goals. Once you proved the first, you will jump to the second one.\nThis first goal is the base case §0.\n\nRecall that you can rewrite the proof of any lemma which is visible\nin your inventory, or of any assumption displayed above the goal,\nas long as it is of the form §1.": - "", - "Now you could finish with §0 then §1, but §2\ndoes it in one line.": "", - "Now you can §0.": "", - "Now you can §0": "", + "現在、2つの目標があります。最初の目標を証明すると、次の目標に移ります。\nこの最初の目標は基本ケース §0 です。\n\nあなたのインベントリで表示されている任意の補題の証明、または目標の上に表示されている任意の仮定の証明を再書き換えることができます。ただし、その形式は §1 である必要があります。", + "Now you could finish with §0 then §1, but §2\ndoes it in one line.": + "現在、§0 から §1 までで終了できますが、§2 では一行で完了します。", + "Now you can §0.": "現在、§0 です。", + "Now you can §0": + "現在、§0\n\n\n## 原文 (English)\nNow you can use the tactic `§1` to prove `§2` by applying it to `§3`.\n\n### 日本語翻訳\n現在、`§1` タクティクを用いて`§2`を`§3`に適用して証明することができます。", "Now we can prove the §0 statement by proving the statement on the right,\nso use the §1 tactic.": - "", - "Now use §0 to switch §1 and §2 on the left\nhand side.": "", + "現在、§0の命題を証明するために、右側の命題を証明することができるため、§1のタクティクを使用します。", + "Now use §0 to switch §1 and §2 on the left\nhand side.": + "現在、§0 を使用して左側の §1 と §2 を入れ替えます。", "Now the goal can be deduced from §0 by pure logic, so use the §1\ntactic.": - "", - "Now take apart the existence statement with §0.": "", - "Now rewrite §0 backwards to make the goal\nequal to the hypothesis.": "", - "Now rewrite §0 backwards at §1\nto get the right hand side.": "", - "Now let's §0 our new theorem. Execute §1\nto change §2 to a proof of §3.": "", + "現在の目標は、§0 から純粋な論理で導き出せますので、§1 のタクティクを使用します。", + "Now take apart the existence statement with §0.": "現在、存在文 §0 を分解します。", + "Now rewrite §0 backwards to make the goal\nequal to the hypothesis.": + "現在、§0 を逆順に書き換えることで、目標を仮定に等しくします。", + "Now rewrite §0 backwards at §1\nto get the right hand side.": + "現在、§1 に §0 を逆順で書き換え\n右辺を得ます。", + "Now let's §0 our new theorem. Execute §1\nto change §2 to a proof of §3.": + "現在、新しい定理を証明しましょう。§0を実行して§1を変更し、§2を§3の証明にします。", "Now for the second goal. Here you have the induction hypothesis\n§0, and you need to prove that §1.": - "", - "Now finish using the §0 tactic.": "", - "Now finish the job with §0.": "", - "Now finish in one line.": "", - "Now change §0 to §1 in §2.": "", - "Note: this lemma will be useful for the final boss!": "", + "現在、第二の目標に移ります。ここでは、 induksiion hypothesis §0 が与えられており、 §1 を証明する必要があります。", + "Now finish using the §0 tactic.": "現在、§0 タクティクを使用して完了してください。", + "Now finish the job with §0.": + "現在の作業を完了してください。§0\n\n\n## 参考訳\n現在の作業を完了してください。§0", + "Now finish in one line.": "今、一行で完了してください。", + "Now change §0 to §1 in §2.": + "現在、§0 を §1 に変更してください。\n\n\n```html\n

現在、§0 を §1 に変更してください。

\n```", + "Note: this lemma will be useful for the final boss!": "この補題は最終ボス戦で役立つでしょう!", "Note that §0 means §1. Put your cursor\non any §2 in the goal or assumptions to see what exactly it's eating.": - "", - "Note that you can do §0\nand then §1 to solve this level in two lines.": "", + "ノート:§0は§1を意味します。目標や仮定内の任意の§2にカーソルを置くと、それが何を食べているかがわかります。", + "Note that you can do §0\nand then §1 to solve this level in two lines.": + "注文しますと、§0 を実行し、その後 §1 を実行することで、このレベルを二行で解くことができます。", "Nice! You've proved §0!\nLet's now prove Peano's other axiom, that successors can't be §1.": - "", + "Nice! あなたは§0を証明しました!\n\n今度はペアノの他の公理、すなわち後続が§1にならないことを証明しましょう。", "Nice!\n\nThe next step in the development of order theory is to develop\nthe theory of the interplay between §0 and multiplication.\nIf you've already done Multiplication World, you're now ready for\nAdvanced Multiplication World. Click on \"Home\" to access it.": - "", - "Nice!": "", - "Next turn §0 into §1 with §2.": "", - "Natural Number Game": "", - "My proof:\n§0": "", + "Nice!\n\n順序理論の開発の次のステップは、§0と乗算の相互作用の理論を発展させることがです。既に乗算ワールドを学習した場合、現在では高度な乗算ワールドに進むことができます。\"Home\"をクリックしてアクセスしてください。", + "Nice!": "nice!", + "Next turn §0 into §1 with §2.": "次に、§0 を §1 に変更し、§2 を実行します。", + "Natural Number Game": "自然数ゲーム\n\n\n## 日本語翻訳\n", + "My proof:\n§0": "私の証明:\n§0\n\n\n##", "Multiplication usually makes a number bigger, but multiplication by zero can make\nit smaller. Thus many lemmas about inequalities and multiplication need the\nhypothesis §0. Here is a key lemma that enables us to use this hypothesis.\nTo help us with the proof, we can use the §1 tactic. Click on the tactic's name\non the right to see what it does.": - "", + "乗算は通常、数値を大きくしますが、ゼロによる乗算はその数値を小さくすることがあります。そのため、不等式や乗算に関する多くの補題では、§0 の仮定が必要です。この仮定を使用するための重要な補題があります。証明の助けとなるために、§1 のタクティクを使用できます。タクティクの名前を右側でクリックすると、その機能が表示されます。", "Multiplication is distributive over addition on the left.\nIn other words, for all natural numbers §0, §1 and §2, we have\n§3.": - "", - "Multiplication is commutative.": "", + "乗算は左側で加算に対して分配律を満たします。\nつまり、すべての自然数 §0, §1, §2 に対して、以下の関係が成り立ちます。\n§3.", + "Multiplication is commutative.": "乗算は交換律を満たします。", "Multiplication is associative.\nIn other words, for all natural numbers §0, §1 and §2, we have\n§3.": - "", + "乗算は結びつきを持つ。\nつまり、すべての自然数 §0, §1, §2 に対して、\n§3.\n\n\n### 参考訳\n乗算は結びつきを持つ。\nつまり、すべての自然数 §0, §1, §2 に対して、\n§3.", "Multiplication distributes\nover addition on the left.\n\n§0 is the proof that §1.": - "", - "Multiplication World": "", + "乗算は左側で加算に分配します。\n\n§0は§1の証明です。", + "Multiplication World": "乗算ワールド", "Mathematicians sometimes debate what §0 is;\nthe answer depends, of course, on your definitions. In this\ngame, §1. See if you can prove it.\n\nCheck out the *Pow* tab in your list of theorems\nto see the new proofs which are available.": - "", + "数学家中で、§0 は何であるかについて時々議論があります;\nその答えは、もちろん、定義によって異なります。このゲームでは、§1 です。証明できるか試してみてください。\n\n証明一覧のタブから *Pow* をチェックして、利用可能な新しい証明を確認してください。", "Mathematicians sometimes argue that §0 is also\na good convention. But it is not a good convention in this\ngame; all the later levels come out beautifully with the\nconvention that §1.": - "", + "数学的には、§0 も良い慣習であると主張する学者もいます。しかし、このゲームではその慣習は適切ではありません;§1 の慣習を採用すると、後のすべてのレベルが美しく解決されます。", "Many people find §0 easy, but some find §1 confusing.\nIf you find it confusing, then just argue forwards.\n\nYou can read more about the §2 tactic in its documentation, which you can view by\nclicking on the tactic in the list on the right.": - "", - "Let's warm up with an easy one, which works even if §0.": "", + "多くの人は§0を容易に感じますが、一部の人々は§1を混乱させることがあります。\n混乱する場合は、証明を前向きに進めましょう。\n\n§2のタクティクについては、そのドキュメンテーションで詳しく説明しています。タクティクをリストの右側でクリックすることでドキュメンテーションを表示できます。", + "Let's warm up with an easy one, which works even if §0.": + "## 簡単な例題(§0 に関わらず動作します)\n\n```lean\nexample : Prop := true\n```\n\n```lean\n-- 例題: 命題です\nexample : Prop := true\n```\n\n```lean\n-- 仮定\nvariable (p : Prop)\n\n-- 証明\nexample : p → p := assume hp : p, hp\n```\n\n```lean\n-- タクティクを使用した証明\nexample : p → p := by\n intro hp\n exact hp\n```", "Let's see if you can use the tactics we've learnt to prove §0.\nTry this one by yourself; if you need help then click on \"Show more help!\".": - "", + "Let's see if you can use the tactics we've learnt to prove §0.\nTry this one by yourself; if you need help then click on \"Show more help!\".\n\n## 翻訳\nタクティクを用いて§0を証明できるかどうか試してみてください。\n自分で試してみてください;手助けが必要であれば「詳細な手助けを表示!」をクリックしてください。", "Let's now move on to a more efficient approach to questions\ninvolving numerals, such as §0.": - "", - "Let's now make our own tactic to do this.": "", - "Let's now learn about Peano's second axiom for addition, §0.": "", + "## 数値に関連する質問に対するより効率的なアプローチ\n\n### 参考訳\n数値に関連する質問、例えば§0 に対するより効率的なアプローチについて見ていきましょう。", + "Let's now make our own tactic to do this.": + "Let's now make our own tactic to do this.\n\n\n## 日本語翻訳\n自分独自のタクティクを作成しましょう。", + "Let's now learn about Peano's second axiom for addition, §0.": + "## ペアノの加法に関する第2の公理について、§0 を学んでみましょう。", "Let's now begin our approach to the final boss,\nby proving some more subtle facts about powers.": - "", + "## 最終ボスへのアプローチ\npowersに関するより細かい事実を証明することで始めましょう。", "Let's first get §0 into the form §1 so we can\napply §2. First execute §3\nto change the 4 on the right hand side.": - "", + "Let's first get §0 into the form §1 so we can\napply §2. First execute §3\nto change the 4 on the right hand side.\n\n\n## 翻訳\n§0 を §1 の形式に変更してから、§2 を適用することができます。まず、§3 を実行して右辺の 4 を変更します。", "Lean's simplifier, §0, is \"§1 on steroids\". It will rewrite every lemma\ntagged with §2 and every lemma fed to it by the user, as much as it can.\n\nThis level is not a level which you want to solve by hand.\nGet the simplifier to solve it for you.": - "", + "Leanの簡約化器、§0は「§1を強化版」です。これは、§2でタグ付けされたすべての lemme およびユーザーによって与えられたすべての lemme をできる限り簡約化します。\n\nこのレベルは手作業で解くべきレベルではありません。\n簡約化器に任せて解いてください。", "It's all over! You have proved a theorem which has tripped up\nschoolkids for generations (some of them think §0:\nthis is \"the freshman's dream\").\n\nHow many rewrites did you use? I can do it in 12.\n\nBut wait! This boss is stirring...and mutating into a second more powerful form!": - "", + "すべて終了しました!命題を証明し、世紀にわたる学校の問題を解決しました(一部の人は§0: 「若者の夢」と思っているかもしれません)。\n\nあなたはいくつの書き換えを行いましたか?私は12回でできます。\n\nでも待ってください!このボスが動き始め、さらに強力な形に変異しています!", "It's \"intuitively obvious\" that there are no numbers less than zero,\nbut to prove it you will need a result which you showed in advanced\naddition world.": - "", - "Induction on §0 or §1 -- it's all the same in this one.": "", + "### 原文 (English)\nIt's \"intuitively obvious\" that there are no numbers less than zero,\nbut to prove it you will need a result which you showed in advanced\naddition world.\n\n\n## 日本語翻訳\n「零未満の数は存在しない」ということは直感的に明らかですが、それを証明するには、先に学んだ加算ワールドで示した結果が必要です。", + "Induction on §0 or §1 -- it's all the same in this one.": + "帰納法を用いて §0 または §1 に適用する -- どちらも同じことです。", "Induction on §0 is the most troublesome, then §1,\nand §2 is the easiest.": - "", + "帰納法は§0が最も難しい然後に§1で、§2は最も簡単です。", "In this world we'll learn how to prove theorems of the form §0.\nIn other words, how to prove theorems of the form \"if §1 is true, then §2 is true.\"\nTo do that we need to learn some more tactics.\n\nThe §3 tactic can be used to close a goal which is exactly one of\nthe hypotheses. It takes the name of the hypothesis as argument: §4.": - "", + "### 原文 (English)\nIn this world we'll learn how to prove theorems of the form §0.\nIn other words, how to prove theorems of the form \"if §1 is true, then §2 is true.\"\nTo do that we need to learn some more tactics.\n\nThe §3 tactic can be used to close a goal which is exactly one of\nthe hypotheses. It takes the name of the hypothesis as argument: §4.\n\n\n### 翻訳 (Japanese)\nこのワールドでは、形式 §0 の定理を証明する方法を学びます。\nつまり、「§1 が真なら、§2 が真である」という形式の定理を証明する方法です。\nそのためには、いくつかのタクティクを学ぶ必要があります。\n\n§3 のタクティクは、仮定のうち厳密に一つの目標を閉じるために使用できます。このタクティクには仮定の名前が引数として与えられます:§4。", "In this world we define §0 and prove standard facts\nabout it, such as \"if §1 and §2 then §3.\"\n\nThe definition of §4 is \"there exists a number §5\nsuch that §6. \" So we're going to have to learn\na tactic to prove \"exists\" theorems, and another one\nto use \"exists\" hypotheses.\n\nClick on \"Start\" to proceed.": - "", + "### 原文 (English)\nIn this world we define §0 and prove standard facts\nabout it, such as \"if §1 and §2 then §3.\"\n\nThe definition of §4 is \"there exists a number §5\nsuch that §6. \" So we're going to have to learn\na tactic to prove \"exists\" theorems, and another one\nto use \"exists\" hypotheses.\n\nClick on \"Start\" to proceed.\n\n\n### 翻訳 (Japanese)\nこのワールドで §0 を定義し、その標準的な事実を証明します。例えば、「§1 と §2 が成り立つなら §3 が成り立つ」などです。\n\n§4 の定義は「ある数 §5 が存在して、§6 が成り立つ」です。そのため、「存在」に関する定理を証明するタクティクと、「存在」に関する仮定を使うタクティクを学ぶ必要があります。\n\n\"開始\" をクリックして進みましょう。", "In this world I will mostly leave you on your own.\n\n§0 is the theorem that §1.": - "", + "このワールドでは、主にあなたを自分で残します。\n\n§0は、§1の定理です。", "In this level, we see inequalities as *hypotheses*. We have not seen this before.\nThe §0 tactic can be used to take §1 apart.": - "", + "このレベルでは、不等式が仮定(*hypothesis*)として扱われます。これまでに見られなかった手法です。\n§0 タクティクは、§1 を分解するのに使用できます。", "In this level, the hypothesis §0 is an *implication*. It says\nthat *if* §1 *then* §2. We can use this\nhypothesis with the §3 tactic. Remember you can click on\n§4 or any other tactic on the right to see a detailed explanation\nof what it does, with examples.": - "", + "このレベルでは、仮定§0は「 implication( implication)」です。これは「§1 ならば §2」という意味です。この仮定は§3 tacticを使用して利用できます。右側の任意のtactic(例:§4)をクリックすることで、その詳細な説明と例を見ることができます。", "In this level we're going to prove that §0, where §1 is a secret natural number.\n\nWait, don't we already know that? No! We know that §2, but that's §3.\nThis is §4, which is different.\n\nThe difficulty with proving §5 is that we do not have a *formula* for\n§6 in general, we can only use §7 and §8 once\nwe know whether §9 is §10 or a successor. The §11 tactic splits into these two cases.\n\nThe base case will require us to prove §12, and the inductive step\nwill ask us to show that if §13 then §14. Because\n§15 and successor are the only way to make numbers, this will cover all the cases.\n\nSee if you can do your first induction proof in Lean.\n\n(By the way, if you are still in the \"Editor mode\" from the last world, you can swap\nback to \"Typewriter mode\" by clicking the §16 button in the top right.)": - "", + "### 原文 (English)\nIn this level we're going to prove that §0, where §1 is a secret natural number.\n\nWait, don't we already know that? No! We know that §2, but that's §3.\nThis is §4, which is different.\n\nThe difficulty with proving §5 is that we do not have a *formula* for\n§6 in general, we can only use §7 and §8 once\nwe know whether §9 is §10 or a successor. The §11 tactic splits into these two cases.\n\nThe base case will require us to prove §12, and the inductive step\nwill ask us to show that if §13 then §14. Because\n§15 and successor are the only way to make numbers, this will cover all the cases.\n\nSee if you can do your first induction proof in Lean.\n\n(By the way, if you are still in the \"Editor mode\" from the last world, you can swap\nback to \"Typewriter mode\" by clicking the §16 button in the top right.)\n\n### 翻訳 (Japanese)\nこのレベルでは、§1 という秘密の自然数について §0 を証明します。\n\n待って、それでは既に知っていることではないですか?いいえ!§2 は分かっていますが、それが §3 です。\nこれは §4 で、異なるものです。\n\n§5 を証明する難しさは、一般の §6 に対する *公式* が存在しないことです。§7 と §8 は §9 が §10 か後続数であることを知ったときにのみ使用できます。§11 のタクティクはこれらの2つの場合に分岐します。\n\n基本的な場合では §12 を証明する必要がありますし、帰納的なステップでは §13 が真なら §14 を示す必要があります。§15 と後続数が数を作る唯一の方法であるため、これで全てのケースをカバーします。\n\nLeanで初めての帰納法証明を試みることができますか?\n\n(ちなみに、最後のワールドで「エディタモード」にいた場合、右上にある §16 ボタンをクリックして「タイプライターモード」に戻ることができます。)", "In this level we prove that if §0 and §1 then §2. It is tricky, for\nseveral reasons. One of these is that\nwe need to introduce a new idea: we will need to understand the concept of\nmathematical induction a little better.\n\nStarting with §3 is too naive, because in the inductive step\nthe hypothesis is §4 but what we know is §5,\nso the induction hypothesis does not apply!\n\nAssume §6 is fixed. The actual statement we want to prove by induction on §7 is\n\"for all §8, if §9 then §10\". This *can* be proved by induction,\nbecause we now have the flexibility to change §11.": - "", + "### 原文 (English)\nIn this level we prove that if §0 and §1 then §2. It is tricky, for\nseveral reasons. One of these is that\nwe need to introduce a new idea: we will need to understand the concept of\nmathematical induction a little better.\n\nStarting with §3 is too naive, because in the inductive step\nthe hypothesis is §4 but what we know is §5,\nso the induction hypothesis does not apply!\n\nAssume §6 is fixed. The actual statement we want to prove by induction on §7 is\n\"for all §8, if §9 then §10\". This *can* be proved by induction,\nbecause we now have the flexibility to change §11.\n\n\n### 翻訳 (Japanese)\nこのレベルでは、§0 と §1 が成り立つ場合、§2 が成り立つことを証明します。これは複雑な理由で、\nいくつかの理由からです。その一つは、新しいアイデアを導入する必要があるためです:\n数学的帰納法の概念をもう少し理解する必要があります。\n\n§3 から始めることは単純すぎるため、帰納的ステップでは仮定は §4 ですが、実際に知っていることは §5 であり、\n従って帰納仮定が適用されません!\n\n§6 を固定します。実際には、§7 による帰納法で証明したい主張は\n「全ての §8 について、§9 が成り立つ場合、§10 が成り立つ」です。これは *可能* に帰納法で証明できます。\nなぜなら、今では §11 を変更できる柔軟性があるからです。", "In this level the *goal* is §0 but to help us we\nhave an *assumption* §1 saying that §2. Check that you can see §3 in\nyour list of assumptions. Lean thinks of §4 as being a secret proof of the\nassumption, rather like §5 is a secret number.\n\nBefore we can use §6, we have to \"substitute in for §7\".\nWe do this in Lean by *rewriting* the goal with §8,\nusing the §9 tactic.": - "", + "### 原文 (English)\nIn this level the *goal* is §0 but to help us we\nhave an *assumption* §1 saying that §2. Check that you can see §3 in\nyour list of assumptions. Lean thinks of §4 as being a secret proof of the\nassumption, rather like §5 is a secret number.\n\nBefore we can use §6, we have to \"substitute in for §7\".\nWe do this in Lean by *rewriting* the goal with §8,\nusing the §9 tactic.\n\n\n### 日本語翻訳\nこのレベルでは、目標は§0ですが、それを手助けするために、§1という仮定があります。§2がその内容です。§3が仮定リストに表示されていることを確認してください。Leanは§4を仮定の秘密の証明と見なし、§5は秘密の数値に似ています。\n\n§6を使用する前に、「§7に置き換える」必要があります。Leanでは、§8を使用して目標を書き換え、§9タクティクを使用してこれを実行します。", "In this game you recreate the natural numbers §0 from the Peano axioms,\nlearning the basics about theorem proving in Lean.\n\nThis is a good first introduction to Lean!": - "", - "In the next level, we'll do the same proof but backwards.": "", + "このゲームでは、ペanoの公理から自然数§0を再構築し、Leanでの定理証明の基本を学びます。\n\nこれはLeanへの良い初歩的な入門となります!", + "In the next level, we'll do the same proof but backwards.": + "次のレベルでは、証明を逆方向に進める同じ手続きを行います。", "In the last level, we manipulated the hypothesis §0\n until it became the goal §1. In this level we'll manipulate\n the goal until it becomes our hypothesis! In other words, we\n will \"argue backwards\". The §2 tactic can do this too.\n Again I will walk you through this one (assuming you're in\n command line mode).": - "", + "最後のレベルでは、仮定§0を操作して目標§1にしました。このレベルでは、目標を操作して仮定にします!つまり、「逆向きに議論」することです。§2 タクティクもこれを行うことができます。また、コマンドラインモードで操作していると仮定して、この例を一緒に見ていきましょう。", "In the \"base case\" we have a hypothesis §0, and you can deduce anything\nfrom a false statement. The §1 tactic will close this goal.": - "", + "### 基本的なケースでは、仮定§0が存在します。偽の文から何でも導くことができます。タクティク§1はこの目標を閉じます。", "In some later worlds, we're going to see some much nastier levels,\nlike §0.\nBrackets need to be moved around, and variables need to be swapped.\n\nIn this level, §1,\nlet's forget about the brackets and just think about\nthe variable order.\nTo turn §2 into §3 we need to swap §4 and §5,\nand then swap §6 and §7. But this is easier than you\nthink with §8.": - "", + "### 原文 (English)\nIn some later worlds, we're going to see some much nastier levels,\nlike §0.\nBrackets need to be moved around, and variables need to be swapped.\n\nIn this level, §1,\nlet's forget about the brackets and just think about\nthe variable order.\nTo turn §2 into §3 we need to swap §4 and §5,\nand then swap §6 and §7. But this is easier than you\nthink with §8.\n\n\n### 翻訳 (Japanese)\nいくつかの後続のワールドでは、§0のようなもっとひどいレベルを見ることになります。\n括弧は移動させ、変数は入れ替える必要があります。\n\nこのレベルでは、§1、括弧は無視して変数の順序だけを考えましょう。\n§2を§3に変更するには、§4と§5を、そして§6と§7を入れ替える必要があります。しかし、§8を使うと意外と簡単にできます。", "In order to use the tactic §0 you can enter it in the text box\nunder the goal and hit \"Execute\".": - "", + "タクティク §0 を使用するには、目標の下のテキストボックスに入力し、「実行」をクリックしてください。", "In Advanced Addition World we will prove some basic\naddition facts such as §0. The theorems\nproved in this world will be used to build\na theory of inequalities in §1 World.\n\nClick on \"Start\" to proceed.": - "", - "Implication World": "", + "### Advanced Addition World では、基本的な加法に関するいくつかの事実(§0)を証明します。このワールドで証明された定理は、§1 世界で不等式の理論を構築するために使用されます。\n\n「開始」をクリックして進みましょう。", + "Implication World": "推論ワールド", "Implementing the algorithm for equality of naturals, and the proof that it is correct,\nlooks like this:\n\n§0\n\nThis Lean code is a formally verified algorithm for deciding equality\nbetween two naturals. I've typed it in already, behind the scenes.\nBecause the algorithm is formally verified to be correct, we can\nuse it in Lean proofs. You can run the algorithm with the §1 tactic.": - "", - "If §0, §1 and §2 are numbers, we have\n§3": "", - "If §0, then §1.": "", - "If §0 then §1.": "", - "If §0 then §1 or §2 or §3.": "", - "If §0 then either §1 or §2.": "", - "If §0 or §1, then §2 or §3.": "", + "自然数の等価性アルゴリズムの実装とその正確性の証明は、以下のようになります:\n\n§0\n\nこのLeanコードは、二つの自然数間の等価性を決定する形式的に検証されたアルゴリズムです。私たちは既にこのコードをバックヤードで入力しています。アルゴリズムが形式的に正確性を保証されているため、Leanの証明内で使用できます。§1タクティクでアルゴリズムを実行できます。", + "If §0, §1 and §2 are numbers, we have\n§3": + "もし§0, §1, §2 が数値である場合、以下のようになります。\n§3", + "If §0, then §1.": "もし§0であるなら、§1です。", + "If §0 then §1.": "もし§0 then §1。", + "If §0 then §1 or §2 or §3.": "もし§0 then §1または§2または§3。", + "If §0 then either §1 or §2.": "もし§0であるなら、§1または§2のいずれかである。", + "If §0 or §1, then §2 or §3.": "もし§0 または §1 ならば, §2 または §3 です。", "If §0 is a proof of §1 then §2 will\nturn §3s into §4s. But what if we want to\nturn §5s into §6s? To tell the §7 tactic\nwe want this, we use a left arrow §8. Type\n§9 and then hit the space bar to get this arrow.\n\nLet's prove that §10 is the number after the number\nafter §11 again, this time by changing §12\ninto §13.": - "", - "If §0 is a number, then §1.": "", - "If §0 are numbers, then §1.": "", - "If §0 are arbitrary natural numbers, we have\n§1.": "", - "If §0 and §1, then §2.": "", - "If §0 and §1 then we can deduce a contradiction.": "", + "もし§0が§1の証明であるなら、§2は§3を§4に変換します。しかし、§5を§6に変換したい場合怎么办?§7タクティクに私たちがこの変換を指示するには、左矢印§8を使用します。型§9を入力し、スペースバーを押すとこの矢印が得られます。\n\n次の証明で、§10が§11の後ろの数値の後ろの数値であることを証明しましょう。今回は§12を§13に変換して証明します。", + "If §0 is a number, then §1.": "もし§0が数値である場合、§1。", + "If §0 are numbers, then §1.": "もし§0が数値である場合、§1。", + "If §0 are arbitrary natural numbers, we have\n§1.": + "任意の自然数§0について、\n§1.\n\n\n## 参考訳\n任意の自然数§0について、\n§1.\n\n\n### 翻訳結果\n任意の自然数§0について、\n§1.", + "If §0 and §1, then §2.": "もし§0 と §1 なら §2。", + "If §0 and §1 then we can deduce a contradiction.": + "もし§0 と §1 ならば、矛盾を導き出すことができます。", "If §0 and §1 are numbers, then §2 is a proof\nthat §3 implies §4. Click on this theorem in the *Peano*\ntab for more information.\n\nPeano had this theorem as an axiom, but in Algorithm World\nwe will show how to prove it in Lean. Right now let's just assume it,\nand let's prove §5 using it. Again, we will proceed\nby manipulating our hypothesis until it becomes the goal. I will\nwalk you through this level.": - "", - "If §0 and §1 are numbers, then either §2 or §3.": "", - "If §0 and §1 are natural numbers, and §2, then §3.": "", - "If §0 and §1 are arbitrary natural numbers, we have\n§2.": "", - "If §0 and §1 are arbitrary natural numbers, then §2": "", - "If §0 and we know that §1 then we can deduce §2.": "", + "もし§0と§1が数値である場合、§2は§3が§4を導く証明です。*Peano*タブでこの定理について詳しく知ることができます。\n\nPeanoはこの定理を公理としていましたが、Algorithm WorldではLeanを使ってこの定理を証明する方法を示すことにします。現在はこの定理を仮定し、§5を用いて証明しましょう。また、証明は仮定を操作して目標に近づけることで進めていきます。このレベルを一緒に進めていきましょう。", + "If §0 and §1 are numbers, then either §2 or §3.": + "もし§0と§1が数値である場合、§2または§3が成り立つ。", + "If §0 and §1 are natural numbers, and §2, then §3.": + "もし§0と§1が自然数であり、かつ§2である場合、§3です。", + "If §0 and §1 are arbitrary natural numbers, we have\n§2.": + "任意の自然数§0と§1について、以下の関係が成り立ちます。\n§2。", + "If §0 and §1 are arbitrary natural numbers, then §2": + "任意の自然数§0と§1が与えられた場合、§2", + "If §0 and we know that §1 then we can deduce §2.": + "もし§0であり、§1を知っているなら、§2を導くことができます。", "If you §0 the wrong number, you get stuck with a goal you can't prove.\nWhat number will you §1 here?": - "", + "もし間違ったタクティクを §0 选用,则会陷入无法证明的目标 §1 中。\n\n\n何を §1 选用?", "If you have completed Algorithm World then you can use the §0 tactic\nhere. If not then I'll talk you through a manual approach.": - "", + "もしAlgorithm Worldを完了しているなら、ここでは§0タクティクを使用できます。もし完了していなければ、手動のアプローチを説明します。", "If the goal is not *exactly* a hypothesis, we can sometimes\nuse rewrites to fix things up.": - "", + "もし目標が*正確に*仮定でない場合、時としてリライトを使用して修正することができます。", "How should we define §0? Just like addition, we need to give definitions\nwhen §1 and when §2 is a successor.\n\nThe zero case is easy: we define §3 to be §4. Now say we know\n§5. What should §6 be? Well, that's §7 §8s,\nso it should be §9.\n\nHere are the definitions in Lean.\n\n * §10\n * §11\n\nIn this world, we must not only prove facts about multiplication like §12,\nwe must also prove facts about how multiplication interacts with addition, like §13.\nLet's get started.": - "", - "How about this for a proof:\n§0": "", + "### 原文 (English)\nHow should we define §0? Just like addition, we need to give definitions\nwhen §1 and when §2 is a successor.\n\nThe zero case is easy: we define §3 to be §4. Now say we know\n§5. What should §6 be? Well, that's §7 §8s,\nso it should be §9.\n\nHere are the definitions in Lean.\n\n * §10\n * §11\n\nIn this world, we must not only prove facts about multiplication like §12,\nwe must also prove facts about how multiplication interacts with addition, like §13.\nLet's get started.\n\n\n### 翻訳 (Japanese)\nどのように §0 を定義すべきでしょうか?加法と同様に、§1 が successor であるときと §2 が successor であるときそれぞれに定義を提供する必要があります。\n\n零の場合は簡単です:§3 を §4 で定義します。次に §5 を仮定します。那么 §6 应该是什么呢?嗯,那是 §7 §8s,\n所以应该定义为 §9。\n\nLean での定義は以下の通りです。\n\n * §10\n * §11\n\nこのワールドでは、乗法に関する事実だけでなく、乗法と加法の相互作用に関する事実も証明する必要があります。例えば §12 など。そして §13 なども証明する必要があります。\n始めましょう。", + "How about this for a proof:\n§0": "以下は証明です:\n§0", "How about this for a proof:\n\n§0\n\nThat's the end of Advanced Addition World! You'll need these theorems\nfor the next world, §1 World. Click on \"Home\" to access it.": - "", - "Here's what I was thinking of:\n§0": "", + "以下の訳文です:\n\n### 日本語\n証明としては、以下のようなものはどうでしょうか:\n\n§0\n\nこの「進階加算ワールド」は終了しました。次の「§1ワールド」では、これらの定理が必要になるでしょう。\"ホーム\"をクリックしてアクセスしてください。\n\n\n##", + "Here's what I was thinking of:\n§0": + "以下は私の考えでした:\n§0\n\n\n## 日本語翻訳\n以下は私の考えでした:\n§0", "Here's the short proof:\n§0\nThis works because, given §1,\nthe argument is reduced to pure logic.": - "", + "以下は短い証明です:\n§0\nこれは、与えられた §1 から\n議論が純粋な論理に簡約されるためです。", "Here's my solution:\n§0\n\nInducting on §1 or §2 also works, but might take longer.": - "", - "Here's my solution:\n§0": "", + "以下は私の解決策です:\n§0\n\n§1 や §2 について帰納法を用いても構いませんが、時間がかかるかもしれません。\n\n\n##", + "Here's my solution:\n§0": "以下是我的解決方法:\n§0\n\n\n##", "Here's my proof:\n§0\n\nIf you solved this level then you should be fine with the next level!": - "", + "以下は私の証明です:\n§0\n\nこのレベルを解いたなら、次のレベルでも大丈夫です!", "Here's my proof:\n§0\n\nEven though Lean is a theorem prover, right now it's pretty clear that we have not\ndeveloped enough material to make it an adequate calculator. In Algorithm\nWorld, a more computer-sciency world, we will develop machinery which makes\nquestions like this much easier, and goals like §1 feasible.\nAlternatively you can do more mathematics in Advanced Addition World, where we prove\nthe lemmas needed to get a working theory of inequalities. Click \"Home\" and\ndecide your route.": - "", + "以下は私の証明です:\n§0\n\nLeanは定理証明システムですが、現在では十分な量の理論が開発されておらず、適切な計算機としての機能を発揮するまでには至っていません。アルゴリズムワールドでは、よりコンピュータサイエンス寄りのワールドで、このような問題を扱うための機械を開発し、§1のような目標を達成することが可能になります。あるいは、不等式の理論を実現するための補題を証明する高度な加算ワールドでより多くの数学を学ぶこともできます。\"ホーム\"をクリックし、あなたのルートを選択してください。", "Here's my proof:\n§0\n\nA passing mathematician remarks that with antisymmetry as well,\nyou have proved that §1 is a *partial order* on §2.\n\nThe boss level of this world is to prove\nthat §3 is a total order. Let's learn two more easy tactics\nfirst.": - "", - "Here's my proof:\n§0": "", - "Here's a two-liner:\n§0\n\nThis works because §1 is a proof of §2.": "", - "Here's a two-line proof:\n§0": "", + "以下は私の証明です:\n§0\n\n数学的な通りすがりの人々が言います。反対称性も考慮すると、\nあなたは§1が§2上の*部分順序*であることを証明しました。\n\nこのワールドのボスレベルは、§3が完全順序であることを証明することです。\nまずは2つの簡単なタクティクを学んでからしましょう。", + "Here's my proof:\n§0": "以下は私の証明です:\n§0\n\n\n## 日本語翻訳\n", + "Here's a two-liner:\n§0\n\nThis works because §1 is a proof of §2.": + "以下は二行分です:\n§0\n\nこれは §1 が §2 の証明であるため Works します。", + "Here's a two-line proof:\n§0": + "以下は二行の証明です:\n§0\n\n\n## 日本語翻訳\n```html\n

以下は二行の証明です:

\n<§0>\n```", "Here's a proof using §0:\n§1\n\nand here's an even shorter one using the same idea:\n§2\n\nAlternatively you can just prove it by induction on §3:\n\n§4": - "", - "Here's a completely backwards proof:\n§0": "", + "以下は§0を使用した証明です:\n§1\n\nそして、同じアイデアを使用したさらに短い証明は以下の通りです:\n§2\n\nあるいは、§3 について帰納法で証明することができます:\n§4", + "Here's a completely backwards proof:\n§0": + "以下は完全に逆順の証明です:\n§0\n\n\n## 日本語翻訳\n", "Here we want to deal with the cases §0 and §1 separately,\nso start with §2.": - "", + "ここでは§0と§1のケースを別々に扱いたいので、まずは§2から始めます。", "Here we begin to\ndevelop an algorithm which, given two naturals §0 and §1, returns the answer\nto \"does §2?\"\n\nHere is the algorithm. First note that §3 and §4 are numbers, and hence\nare either §5 or successors.\n\n*) If §6 and §7 are both §8, return \"yes\".\n\n*) If one is §9 and the other is §10, return \"no\".\n\n*) If §11 and §12, then return the answer to \"does §13?\"\n\nOur job now is to *prove* that this algorithm always gives the correct answer. The proof that\n§14 is §15. The proof that §16 is §17, and the proof\nthat §18 is §19. The proof that if §20 then\n§21 is §22 and then §23. This level is a proof of the one\nremaining job we have to do: if §24 then §25.": - "", + "### 原文 (English)\nHere we begin to\ndevelop an algorithm which, given two naturals §0 and §1, returns the answer\nto \"does §2?\"\n\nHere is the algorithm. First note that §3 and §4 are numbers, and hence\nare either §5 or successors.\n\n*) If §6 and §7 are both §8, return \"yes\".\n\n*) If one is §9 and the other is §10, return \"no\".\n\n*) If §11 and §12, then return the answer to \"does §13?\"\n\nOur job now is to *prove* that this algorithm always gives the correct answer. The proof that\n§14 is §15. The proof that §16 is §17, and the proof\nthat §18 is §19. The proof that if §20 then\n§21 is §22 and then §23. This level is a proof of the one\nremaining job we have to do: if §24 then §25.\n\n\n### 翻訳 (Japanese)\nここでは、与えられた二つの自然数 §0 と §1 に対して、\"§2?\" という質問の答えを返すアルゴリズムを開発します。\n\nこのアルゴリズムは以下のようになっています。まず、§3 と §4 は数であり、したがって §5 または §5 の後継者です。\n\n1. §6 と §7 が両方とも §8 の場合、\"yes\" を返す。\n2. 一方が §9 で他方が §10 の場合、\"no\" を返す。\n3. §11 と §12 の場合、\"§13?\" という質問の答えを返す。\n\n現在の仕事は、このアルゴリズムが常に正しい答えを返すことを証明することです。§14 が §15 であることを証明します。§16 が §17 であることを証明します。§18 が §19 であることを証明します。§20 が真である場合、§21 が §22 であり、さらに §23 であることを証明します。このレベルでは、残る一つの仕事であることを証明します:§24 が真である場合、§25 であることを。", "Here is an example proof of 2+2=4 showing off various techniques.\n\n§0\n\nOptional extra: you can run this proof yourself. Switch the game into \"Editor mode\" by clicking\non the §1 button in the top right. You can now see your proof\nwritten as several lines of code. Move your cursor between lines to see\nthe goal state at any point. Now cut and paste your code elsewhere if you\nwant to save it, and paste the above proof in instead. Move your cursor\naround to investigate. When you've finished, click the §2 button in the top right to\nmove back into \"Typewriter mode\".\n\nYou have finished tutorial world!\nClick \"Home\" to go back to the\noverworld, and select Addition World, where you will learn\nabout the §3 tactic.": - "", + "以下は2+2=4を示す証明の例で、様々な手法を披露しています。\n\n§0\n\nオプション:自分でこの証明を実行することもできます。右上の§1ボタンをクリックしてゲームを「エディタモード」に切り替えることができます。現在の証明は、複数行のコードとして表示されます。行の間でカーソルを動かすことで、任意のポイントでの目標状態を確認できます。証明を保存したい場合は、コードを他の場所に切り貼りし、上の証明を代入できます。カーソルを動かして調査してください。終了したら、右上の§2ボタンをクリックして「タイピングモード」に戻ります。\n\nチュートリアルワールドを終了しました!\n「ホーム」をクリックしてオーバワールドに戻り、加算ワールドを選択して§3タクティクについて学びます。", "Having to rearrange variables manually using commutativity and\nassociativity is very tedious. We start by reminding you of this. §0\nis a key component in the first algorithm which we'll explain, but we need\nto prove it manually.\n\nRemember that you can do precision commutativity rewriting\nwith things like §1. And remember that\n§2 means §3.": - "", + "### 原文 (English)\nHaving to rearrange variables manually using commutativity and\nassociativity is very tedious. We start by reminding you of this. §0\nis a key component in the first algorithm which we'll explain, but we need\nto prove it manually.\n\nRemember that you can do precision commutativity rewriting\nwith things like §1. And remember that\n§2 means §3.\n\n\n### 翻訳 (Japanese)\n手動で交換律と結合律を使って変数を再配置する必要があることは非常に面倒です。まず、これについて再確認します。§0は、最初の説明するアルゴリズムにおいて重要な成分ですが、手動で証明する必要があります。\n\n交換律に基づいた精密な再配置は、§1のようなもので行うことができます。また、§2は§3を意味します。", "Good luck!\n\n One last hint. If §0 then §1 will change *all* §2s into §3s.\n If you only want to change one of them, say the 3rd one, then use\n §4.": - "", - "For any natural number §0, we have §1.": "", - "For all numbers §0, §1.": "", - "For all numbers §0 and §1, we have\n§2": "", - "For all naturals §0, §1.": "", - "For all naturals §0, §1, §2, we have §3.": "", - "For all naturals §0 §1 §2 and §3, we have\n§4": "", - "For all natural numbers §0, we have §1.": "", - "For all natural numbers §0, we have\n§1.": "", - "For all natural numbers §0 and §1, we have\n§2.": "", - "First execute §0 to replace the §1 with §2.": "", - "Finally use a targeted §0 to switch §1 and §2.": "", - "Fermat's Last Theorem": "", + "Good luck!\n\n最後のヒント。もし§0であれば、§1はすべての§2を§3に変換します。\n一方で、一つだけ変換したい場合(例えば3番目のもの)、§4を使用します。", + "For any natural number §0, we have §1.": "任意の自然数§0に対して、§1です。", + "For all numbers §0, §1.": "すべての数 §0, §1 について。", + "For all numbers §0 and §1, we have\n§2": + "すべての数値 §0 と §1 に対して、\n§2\n\n\n## 参考訳\nすべての数値 §0 と §1 に対して、\n§2", + "For all naturals §0, §1.": "すべての自然数 §0, §1 について。", + "For all naturals §0, §1, §2, we have §3.": + "すべての自然数 §0, §1, §2 について、§3 が成り立ちます。", + "For all naturals §0 §1 §2 and §3, we have\n§4": + "すべての自然数 §0, §1, §2, §3 に対して、以下の関係が成り立ちます。\n§4", + "For all natural numbers §0, we have §1.": "すべての自然数 §0 に対して、§1 が成り立ちます。", + "For all natural numbers §0, we have\n§1.": + "すべての自然数 §0 に対して、\n§1.\n\n\n## 参考訳\nすべての自然数 §0 に対して、\n§1.", + "For all natural numbers §0 and §1, we have\n§2.": + "すべての自然数 §0 および §1 に対して、\n§2.\n\n\n## 参考訳\nすべての自然数 §0 および §1 に対して、\n§2.\n\n\n### 説明\n- `§0`, `§1`, `§2` はコードブロックやLaTeX数式を表すプレースホルダーであり、位置を維持しています。\n- `<##>` などのタグは使用されていません。\n- トーンはLean 4学習者向けで、丁寧かつ簡潔な表現にしています。", + "First execute §0 to replace the §1 with §2.": + "まず §0 を実行して §1 を §2 に置き換えてください。", + "Finally use a targeted §0 to switch §1 and §2.": + "Finally use a targeted §0 to switch §1 and §2.\n\n\n## 日本語翻訳\n最終的に、§0を使用して§1と§2を切り替えてください。", + "Fermat's Last Theorem": "フェルマーの最終定理", "Every number in Lean is either §0 or a successor. We know how to add §1,\nbut we need to figure out how to add successors. Let's say we already know\nthat §2. What should the answer to §3 be? Well,\n§4 is one bigger than §5, so §6 should be §7,\nthe number one bigger than §8. More generally §9 should\nbe §10. Let's add this as a lemma.\n\n* §11\n\nIf you ever see §12 in your goal, §13 is\nnormally a good idea.\n\nLet's now prove that §14. Figure out how to get §15 into\nthe picture, and then §16. Switch between the §17 (addition) and\n§18 (numerals) tabs under \"Theorems\" on the right to\nsee which proofs you can rewrite.": - "", + "### 原文 (English)\nEvery number in Lean is either §0 or a successor. We know how to add §1,\nbut we need to figure out how to add successors. Let's say we already know\nthat §2. What should the answer to §3 be? Well,\n§4 is one bigger than §5, so §6 should be §7,\nthe number one bigger than §8. More generally §9 should\nbe §10. Let's add this as a lemma.\n\n* §11\n\nIf you ever see §12 in your goal, §13 is\nnormally a good idea.\n\nLet's now prove that §14. Figure out how to get §15 into\nthe picture, and then §16. Switch between the §17 (addition) and\n§18 (numerals) tabs under \"Theorems\" on the right to\nsee which proofs you can rewrite.\n\n\n### 翻訳 (Japanese)\nLeanの数は、§0 または後続数のいずれかです。§1を加算する方法は分かっていますが、後続数を加算する方法はまだ分かりません。例えば、§2が分かっているとします。那么,§3の答えは何になるべきでしょうか? §4は §5よりも1大きいので、§6は §7、つまり §8よりも1大きい数になるべきです。より一般的には、§9は §10になります。この事実を補題として追加しましょう。\n\n* §11\n\nもし目標に §12が見つかったら、通常 §13は良いアイデアです。\n\n次に、§14を証明しましょう。§15を図に取り入れる方法を考え、その後 §16を証明します。\"Theorems\" の右側にある \"追加\" と \"数\" のタブを切り替えて、どの証明を書き換えることができるか確認します。", "Do that again!\n\n§0 tries to fill in\nthe arguments to §1 (finding §2) then it replaces all occurrences of\n§3 it finds. Therefor, it did not rewrite §4, yet.": - "", + "再度やってみましょう!\n\n§0は§1の引数を埋めようとします(§2を見つけます)然後,它会替换找到的所有§3。因此,它还没有重写§4。", "Did you use induction on §0?\nHere's a two-line proof of §1 which uses §2.\nIf you want to inspect it, you can go into editor mode by clicking §3 in the top right\nand then just cut and paste the proof and move your cursor around it\nto see the hypotheses and goal at any given point\n(although you'll lose your own proof this way). Click §4 to get\nback to command line mode.\n§5": - "", - "Dealing with §0": "", + "Did you use induction on §0?\nHere's a two-line proof of §1 which uses §2.\nIf you want to inspect it, you can go into editor mode by clicking §3 in the top right\nand then just cut and paste the proof and move your cursor around it\nto see the hypotheses and goal at any given point\n(although you'll lose your own proof this way). Click §4 to get\nback to command line mode.\n§5\n\n\n### 翻訳\n§0について帰納法を使ったでしょうか?\n§2を使用して§1の二行証明があります。\n証明を確認したい場合は、右上にある§3をクリックしてエディタモードに入り、\nその後証明を切り取り、貼り付け、カーソルを動かして任意のポイントでの仮定と目標を確認できます。\n(ただし、この方法で自分の証明は失われます)。§4をクリックして\nコマンドラインモードに戻りましょう。\n§5", + "Dealing with §0": "### 原文 (English)\nDealing with §0\n\n## 日本語翻訳\n§0 を扱う方法", "Congratulations! You've finished Algorithm World. These algorithms\nwill be helpful for you in Even-Odd World (when someone gets around to\nimplementing it).": - "", + " Congratulations! あなたはAlgorithm Worldを完了しました。これらのアルゴリズムは、Even-Odd Worldが実装されるまで、あなたにとって役立つでしょう。\n\n\n## 日本語翻訳\n", "Congratulations! You have proved Fermat's Last Theorem!\n\nEither that, or you used magic...": - "", + " Congratulations! あなたはフェルマーの最終定理を証明しました!\n\nもしくは、魔法を使用したかもしれません...\n\n\n## 日本語翻訳\n", "Congratulations! You completed your first verified proof!\n\nRemember that §0 is a *tactic*. If you ever want information about the §1 tactic,\nyou can click on §2 in the list of tactics on the right.\n\nNow click on \"Next\" to learn about the §3 tactic.": - "", - "Concretely: §0.": "", + " Congratulations! あなたは初めての検証証明を完了しました!\n\n記憶に留めておきましょう。§0は*tactic*です。§1のtacticについての情報が必要な場合は、右側のtactic一覧の§2をクリックできます。\n\n今、\"Next\"をクリックして§3のtacticについて学びましょう。", + "Concretely: §0.": "具体的には: §0.", "Can you take it from here? Click on \"Show more help!\" if you need a hint.": - "", + "Can you take it from here? Click on \"Show more help!\" if you need a hint.\n\n\n## 日本語翻訳\nここから続けられますか?ヒントが必要な場合は「もっと手助けを表示!」とクリックしてください。", "Can you take it from here? (note: if you try §0 again, it will\ntake you back to where you started!)": - "", - "Can you take it from here?": "", - "Can you now change the goal into §0?": "", + "Can you continue from here? (注: §0を再度試すと、元の場所に戻ってしまいます!)", + "Can you take it from here?": "您可以继续了吗?", + "Can you now change the goal into §0?": "現在、目標を§0に変更できますか?", "At this point you see the term §0, so you can use the\ninduction hypothesis with §1.": - "", - "Assuming §0, we have §1.": "", - "Assuming §0 and §1, we have §2.": "", + "現在、項§0が表示されているので、項§1を使用してインベントリ仮定を適用することができます。", + "Assuming §0, we have §1.": "仮定§0を仮定すると、§1が成り立ちます。", + "Assuming §0 and §1, we have §2.": "仮定§0と§1を仮定すると、§2が得られます。", "As warm-up for §0 let's prove §1. To do this we need to\nintroduce Peano's last axiom §2, a proof that §3.\nTo learn about this result, click on it in the list of lemmas on the right.": - "", - "Arguing backwards": "", + "### 原文 (English)\nAs warm-up for §0 let's prove §1. To do this we need to\nintroduce Peano's last axiom §2, a proof that §3.\nTo learn about this result, click on it in the list of lemmas on the right.\n\n\n## 日本語翻訳\n§0 の前準備として、§1 を証明しましょう。これを行うために、ペアノの最後の公理 §2 を導入し、§3 の証明が必要です。この結果について学ぶには、右側の定理一覧から該当項目をクリックしてください。", + "Arguing backwards": "反論する", "Applying a proof of §0 to the *goal* changes §1 to §2.\nNow try §3 to make the goal more like the hypothesis.": - "", - "And now §0": "", + "証明 §0 を目標に適用すると、§1 は §2 に変更されます。\n次に §3 を試して、目標を仮定に近づけてみましょう。", + "And now §0": "```html\nAnd now §0\n\n```\n```html\n現在 §0\n```", "And now we've deduced what we wanted to prove: the goal is one of our assumptions.\nFinish the level with §0.": - "", - "And finally §0.": "", - "An algorithm for equality": "", - "Although §0 in this game, §1 if §2, i.e., if\n§3 is a successor.": "", - "Algorithm World": "", - "Advanced Multiplication World": "", - "Advanced Addition World": "", + "そして、証明したい命題を導き出しました:目標は私たちの仮定の一つです。\nレベルを終了するには、§0 を使用してください。", + "And finally §0.": "最後に、§0。", + "An algorithm for equality": "等価性のアルゴリズム", + "Although §0 in this game, §1 if §2, i.e., if\n§3 is a successor.": + "### 原文 (English)\nAlthough §0 in this game, §1 if §2, i.e., if\n§3 is a successor.\n\n\n## 日本語翻訳\nこのゲームにおいて §0 であり、§1 は §2 である場合、すなわち §3 が後继者である場合。", + "Algorithm World": "アルゴリズムワールド", + "Advanced Multiplication World": "高度な乗算ワールド", + "Advanced Addition World": "高度な追加ワールド", "Advanced *Addition* World proved various implications\ninvolving addition, such as §0 and §1.\nThese lemmas were used to prove basic facts about ≤ in ≤ World.\n\nIn Advanced Multiplication World we prove analogous\nfacts about multiplication, such as §2, and\n§3 (assuming §4 in the latter result). This will prepare\nus for Divisibility World.\n\nMultiplication World is more complex than Addition World. In the same\nway, Advanced Multiplication world is more complex than Advanced Addition\nWorld. One reason for this is that certain intermediate results are only\ntrue under the additional hypothesis that one of the variables is non-zero.\nThis causes some unexpected extra twists.": - "", + "### 原文 (English)\nAdvanced *Addition* World proved various implications\ninvolving addition, such as §0 and §1.\nThese lemmas were used to prove basic facts about ≤ in ≤ World.\n\nIn Advanced Multiplication World we prove analogous\nfacts about multiplication, such as §2, and\n§3 (assuming §4 in the latter result). This will prepare\nus for Divisibility World.\n\nMultiplication World is more complex than Addition World. In the same\nway, Advanced Multiplication world is more complex than Advanced Addition\nWorld. One reason for this is that certain intermediate results are only\ntrue under the additional hypothesis that one of the variables is non-zero.\nThis causes some unexpected extra twists.\n\n\n## 日本語翻訳\nAdvanced *加算*ワールドでは、加算に関する様々な命題(§0, §1など)が証明されました。\nこれらの補題は、≤ワールドにおける≤に関する基本的な事実の証明に使用されました。\n\nAdvanced *乗算*ワールドでは、乗算に関する類似した事実(§2など)が証明され、\n§3(後者の結果では§4を仮定)も証明されました。これにより、*除算*ワールドに備えることができます。\n\n*乗算*ワールドは、*加算*ワールドよりも複雑です。同様に、Advanced *乗算*ワールドは、Advanced *加算*ワールドよりも複雑です。これは、ある変数が非零であるという追加の仮定の下でのみ成り立つ特定の中間結果があるためです。これにより、予想外の追加の複雑さが生じます。", "Addition is distributive over multiplication.\nIn other words, for all natural numbers §0, §1 and §2, we have\n§3.": - "", - "Addition World": "", - "Adding zero": "", + "加法は乗法に対して分配法則を満たします。\nつまり、すべての自然数 §0, §1, §2 に対して\n§3.\n\n\n## 参考訳\n加法は乗法に対して分配法則を満たします。\nつまり、すべての自然数 §0, §1, §2 に対して\n§3.", + "Addition World": " Addition World\n\n## 日本語翻訳\nワールド::加算", + "Adding zero": "追加するゼロ\n\n\n## 参考訳\n追加するゼロ", "A two-line proof is\n\n§0\n\nWe now have all the tools necessary to set up the basic theory of divisibility of naturals.": - "", - "A proof that §0.": "", + "二行の証明は\n\n§0\n\n現在、自然数の除法の基本理論を設定するために必要なすべてのツールを備えています。", + "A proof that §0.": "A proof that §0.\n\n\n## 日本語翻訳\n証明: §0.", "A passing mathematician remarks that with reflexivity and transitivity out of the way,\nyou have proved that §0 is a *preorder* on §1.": - "", + "一過性の数学者が言及し、反射律と伝搬律を除けば、§0 は §1 上の *前順序* を証明したと述べています。", "A passing mathematician notes that you've proved\nthat the natural numbers are a commutative semiring.\n\nIf you want to begin your journey to the final boss, head for Power World.": - "", + "数学的な通り路人は、自然数が可換半環であることを証明したことを指摘しました。\n\n最終ボスへの旅を始めるなら、Power Worldへ向かってください。", "A passing mathematician congratulates you on proving that naturals\nare an additive commutative monoid.\n\nLet's practice using §0 and §1 in one more level,\nbefore we leave addition world.": - "", - "2+2=4": "", + "A 通りすがりの数学者は、自然数が加法的交換半群であることを証明したことに称賛の意を表します。\n\n加法的世界を去る前に、§0 と §1 の使用をもう一回練習しましょう。", + "2+2=4": "2+2=4", "2 + 2 ≠ 5 is boring to prove in full, given only the tools we have currently.\nTo make it a bit less painful, I have unfolded all of the numerals for you.\nSee if you can use §0 and §1 to prove this.": - "", - "2 + 2 ≠ 5": "", - "1 ≠ 0": "", - "0 ≤ x": "", + "2 + 2 ≠ 5 を完全に証明するのは、現在のツールで与えられた限りでは退屈です。\n少し痛みが減るよう、すべての数値を展開しました。\n§0 と §1 を使ってこの証明ができるか試してみてください。", + "2 + 2 ≠ 5": "2 + 2 ≠ 5", + "1 ≠ 0": "1 ≠ 0", + "0 ≤ x": "0 ≤ x", "*Game version: 4.3*\n\n*Recent additions: bug fixes*\n\n## Progress saving\n\nThe game stores your progress in your local browser storage.\nIf you delete it, your progress will be lost!\n\nWarning: In most browsers, deleting cookies will also clear the local storage\n(or \"local site data\"). Make sure to download your game progress first!\n\n## Credits\n\n* **Creators:** Kevin Buzzard, Jon Eugster\n* **Original Lean3-version:** Kevin Buzzard, Mohammad Pedramfar\n* **Game Engine:** Alexander Bentkamp, Jon Eugster, Patrick Massot\n* **Additional levels:** Sian Carey, Ivan Farabella, Archie Browne.\n* **Additional thanks:** All the student beta testers, all the schools\nwho invited Kevin to speak, and all the schoolkids who asked him questions\nabout the material.\n\n## Resources\n\n* The [Lean Zulip chat](https://leanprover.zulipchat.com/) forum\n* [Original Lean3 version](https://github.com/ImperialCollegeLondon/natural_number_game/) (no longer maintained)\n\n## Problems?\n\nPlease ask any questions about this game in the\n[Lean Zulip chat](https://leanprover.zulipchat.com/) forum, for example in\nthe stream \"New Members\". The community will happily help. Note that\nthe Lean Zulip chat is a professional research forum.\nPlease use your full real name there, stay on topic, and be nice. If you're\nlooking for somewhere less formal (e.g. you want to post natural number\ngame memes) then head on over to the [Lean Discord](https://discord.gg/WZ9bs9UCvx).\n\nAlternatively, if you experience issues / bugs you can also open github issues:\n\n* For issues with the game engine, please open an\n[issue at the lean4game](https://github.com/leanprover-community/lean4game/issues) repo.\n* For issues about the game's content, please open an\n[issue at the NNG](https://github.com/hhu-adam/NNG4/issues) repo.": - "", + "### 原文 (English)\n*Game version: 4.3*\n\n*Recent additions: bug fixes*\n\n## Progress saving\n\nThe game stores your progress in your local browser storage.\nIf you delete it, your progress will be lost!\n\nWarning: In most browsers, deleting cookies will also clear the local storage\n(or \"local site data\"). Make sure to download your game progress first!\n\n## Credits\n\n* **Creators:** Kevin Buzzard, Jon Eugster\n* **Original Lean3-version:** Kevin Buzzard, Mohammad Pedramfar\n* **Game Engine:** Alexander Bentkamp, Jon Eugster, Patrick Massot\n* **Additional levels:** Sian Carey, Ivan Farabella, Archie Browne.\n* **Additional thanks:** All the student beta testers, all the schools\nwho invited Kevin to speak, and all the schoolkids who asked him questions\nabout the material.\n\n## Resources\n\n* The [Lean Zulip chat](https://leanprover.zulipchat.com/) forum\n* [Original Lean3 version](https://github.com/ImperialCollegeLondon/natural_number_game/) (no longer maintained)\n\n## Problems?\n\nPlease ask any questions about this game in the\n[Lean Zulip chat](https://leanprover.zulipchat.com/) forum, for example in\nthe stream \"New Members\". The community will happily help. Note that\nthe Lean Zulip chat is a professional research forum.\nPlease use your full real name there, stay on topic, and be nice. If you're\nlooking for somewhere less formal (e.g. you want to post natural number\ngame memes) then head on over to the [Lean Discord](https://discord.gg/WZ9bs9UCvx).\n\nAlternatively, if you experience issues / bugs you can also open github issues:\n\n* For issues with the game engine, please open an\n[issue at the lean4game](https://github.com/leanprover-community/lean4game/issues) repo.\n* For issues about the game's content, please open an\n[issue at the NNG](https://github.com/hhu-adam/NNG4/issues) repo.\n\n### 翻訳 (Japanese)\n*ゲームバージョン: 4.3*\n\n*最近の追加: バグ修正*\n\n## プログレス保存\n\nゲームはあなたのプログレスをローカルブラウザストレージに保存します。\nこれを削除すると、プログレスは失われます!\n\n注意: 多くのブラウザでは、クッキーを削除するとローカルストレージ(または「ローカルサイトデータ」)もクリアされます。プログレスをダウンロードしてから削除することを確認してください!\n\n## 謝辞\n\n* **クリエイター:** ケビン・バズラー、ジョン・ユージストー\n* **元のLean3版:** ケビン・バズラー、モハマド・ペドラムファール\n* **ゲームエンジン:** アレクサンダー・バンクトamp、ジョン・ユージストー、パトリック・マッソット\n* **追加レベル:** シアン・ケアリー、イバン・ファラベラ、アーチー・ブラウン\n* **追加感謝:** 全ての学生ベータテスト者、ケビンを講演に招待した全ての学校、質問をした全ての学校の子供たち\n\n## リソース\n\n* [Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラム\n* [元のLean3版](https://github.com/ImperialCollegeLondon/natural_number_game/)(現在メンテナンスされていません)\n\n## お困りですか?\n\nこのゲームに関する質問は、[Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラムで質問してください。例えば、「New Members」ストリームで質問できます。コミュニティは喜んでお手伝いします。注意: Lean Zulipチャットはプロフェッショナルな研究フォーラムです。そこでフルネームを使用し、トピックに集中し、丁寧に接してください。より非公式な場所(例えば、自然数ゲームのメモを投稿したい場合)を探している場合は、[Lean Discord](https://discord.gg/WZ9bs9UCvx) に移動してください。\n\nまたは、問題やバグが発生した場合は、GitHubの問題をオープンすることもできます:\n\n* ゲームエンジンに関する問題は、[lean4game](https://github.com/leanprover-community/lean4game/issues) リポジトリで問題をオープンしてください。\n* ゲームの内容に関する問題は、[NNG](https://github.com/hhu-adam/NNG4/issues) リポジトリで問題をオープンしてください。", "## The birth of number.\n\nNumbers in Lean are defined by two rules.\n\n* §0 is a number.\n* If §1 is a number, then the *successor* §2 of §3 is a number.\n\nThe successor of §4 means the number after §5. Let's learn to\ncount, and name a few small numbers.\n\n## Counting to four.\n\n§6 is a number, so §7 is a number. Let's call this new number §8.\nSimilarly let's define §9, §10 and §11.\nThis gives us plenty of numbers to be getting along with.\n\nThe *proof* that §12 is called §13.\nCheck out the \"012\" tab in the list of lemmas on the right\nfor this and other proofs.\n\nLet's prove that §14 is the number after the number after zero.": - "", + "## 数字の誕生。\n\nLeanにおける数字は2つのルールで定義されます。\n\n* §0 は数字です。\n* §1 が数字である場合、§2 の *後続* §3 は数字です。\n\n§4 の後続とは §5 の次の数字を意味します。数を数えることと、いくつかの小さな数字の名前を学びましょう。\n\n## 4まで数える。\n\n§6 が数字であるため、§7 も数字です。この新しい数字を §8 と呼びましょう。同様に §9, §10, §11 を定義します。これで十分な数を手に入れました。\n\n§12 が数字であることを証明する *証明* §13 があります。証明リストの右側の「012」タブを確認してください。\n\n次に、0の後ろの後ろの数字である §14 を証明しましょう。", "## Summary\n\n§0 repeatedly applies the tactic §1\nto the goal. You don't need to use this\ntactic, it just speeds things up sometimes.\n\n## Example\n\n§2 will turn the goal\n§3\ninto the goal\n§4.\n\"\n\nTacticDoc nth_rewrite \"\n## Summary\n\nIf §5 and there are several §6s in the goal, then\n§7 will just change the third §8 to a §9.\n\n## Example\n\nIf the goal is §10 then §11\nwill change the goal to §12. In contrast, §13\nwill change the goal to §14.": - "", + "### 原文 (English)\n## Summary\n\n§0 repeatedly applies the tactic §1\nto the goal. You don't need to use this\ntactic, it just speeds things up sometimes.\n\n## Example\n\n§2 will turn the goal\n§3\ninto the goal\n§4.\n\"\n\nTacticDoc nth_rewrite \"\n## Summary\n\nIf §5 and there are several §6s in the goal, then\n§7 will just change the third §8 to a §9.\n\n## Example\n\nIf the goal is §10 then §11\nwill change the goal to §12. In contrast, §13\nwill change the goal to §14.\n\n\n### 翻訳 (Japanese)\n## 結論\n\n§0 は目標に対して §1 のタクティクを繰り返し適用します。このタクティクを使用する必要はありませんが、時々処理が早くなります。\n\n## 例\n\n§2 は目標\n§3\nを\n§4\nに変更します。\n\n---\n\n## 結論\n\n§5 が成り立つ場合で、目標に複数の §6 がある場合、\n§7 は第三の §8 を §9 に変更します。\n\n## 例\n\n目標が §10 の場合、§11 は目標を §12 に変更します。一方で、§13 は目標を §14 に変更します。", "## Summary\n\n§0 repeatedly applies the tactic §1\nto the goal. You don't need to use this\ntactic, it just speeds things up sometimes.\n\n## Example\n\n§2 will turn the goal\n§3\ninto the goal\n§4.": - "", + "## 結論\n\n§0はタクティク§1を繰り返し適用し、目標を処理します。このタクティクを使用する必要はありませんが、時々処理速度を向上させることがあります。\n\n## 例\n\n§2を使用すると、目標§3は§4に変更されます。", "## Summary\n\n§0 proves goals of the form §1.\n\nIn other words, the §2 tactic will close any goal of the\nform §3 if §4 and §5 are *identical*.\n\n§6 is short for \\\\\"reflexivity (of equality)\\\\\".\n\n## Example:\n\nIf the goal looks like this:\n\n§7\n\nthen §8 will close it. But if it looks like §9 then §10 won't work, because even\nthough §11 and §12 are always equal as *numbers*, they are not equal as *terms*.\nThe only term which is identical to §13 is §14.\n\n## Details\n\n§15 is short for \\\\\"reflexivity of equality\\\\\".\n\n## Game Implementation\n\n*Note that our §16 is weaker than the version used in core Lean and §17,\nfor pedagogical purposes; mathematicians do not distinguish between propositional\nand definitional equality because they think about definitions in a different way\nto type theorists (§18 and §19 are both \\\\\"facts\\\\\" as far\nas mathematicians are concerned, and who cares what the definition of addition is).*": - "", + "## 結論\n\n§0は、形式§1の目標を証明します。\n\nつまり、§2タクティクは、§4と§5が*完全に一致*する場合、形式§3の任意の目標を閉じます。\n\n§6は、「等号の反射律」の略です。\n\n## 例\n\nもし目標が以下のようであれば:\n\n§7\n\n§8はそれを閉じます。しかし、もし目標が§9のように見える場合、§10は機能しません。なぜなら、§11と§12は常に数値としては等しいですが、項としては等しくないからです。§13と完全に一致する項は§14だけです。\n\n## 詳細\n\n§15は「等号の反射律」の略です。\n\n## ゲーム実装\n\n注意していただきたいのは、当の§16は、コア Lean と§17で使用されるバージョンよりも弱く、教育的な目的のためにそう設計されていることです。数学的には、論理的等価と定義的等価を区別しない理由は、定義の考え方がタイプ理論家と異なるからです(数学的には§18と§19はどちらも「事実」であり、加法の定義などは誰がどう思っても構いません)。", "## Summary\n\nThe §0 tactic will change a goal or hypothesis of\nthe form §1 to §2. It will also work on §3\nand on §4.\n\n### Example\n\nIf the goal is §5 then §6 will change it to §7.\n\n### Example\n\nIf §8 then §9 will change §10 to §11.": - "", + "## 結論\n\nタクティク §0 は、目標や仮定が §1 の形式の場合を §2 に変更します。また、§3 や §4 も対象となります。\n\n### 例\n\nもし目標が §5 の場合、§6 はそれを §7 に変更します。\n\n### 例\n\nもし §8 の場合、§9 は §10 を §11 に変更します。", "## Summary\n\nThe §0 tactic makes progress with goals which claim something *exists*.\nIf the goal claims that some §1 exists with some property, and you know\nthat §2 will work, then §3 will make progress.\n\nBecause §4 is notation for \\\\\"there exists §5 such that §6\\\\\",\nyou can make progress on goals of the form §7 by §8ing the\nnumber which is morally §9 (i.e. §10)\n\nAny of the following examples is possible assuming the type of the argument passed to the §11 function is accurate:\n\n- §12\n- §13\n- §14": - "", + "## 結論\n\n§0 タクティクは、何かが存在することを主張する目標に対して進展を遂げます。\nもし目標が何かが特定の性質を持つ存在することを主張し、その存在を知る方法が §2 である場合、§3 は進展を遂げます。\n\n§4 は \"存在する §5 が §6 である\" という主張を表す記号であり、目標が §7 のような形の場合、§8 することで、道徳的に §9 (つまり §10) とみなされる番号で進展を遂げることができます。\n\n以下の例のいずれかが可能であると仮定して、§11 関数に渡される引数の型が正確である場合:\n\n- §12\n- §13\n- §14", "## Summary\n\nIf §0 is an object, and the goal mentions §1, then §2\nattempts to prove the goal by induction on §3, with the inductive\nvariable in the successor case being §4, and the inductive hypothesis being §5.\n\n### Example:\nIf the goal is\n§6\n\nthen\n\n§7\n\nwill turn it into two goals. The first is §8;\nthe second has an assumption §9 and goal\n§10.\n\nNote that you must prove the first\ngoal before you can access the second one.": - "", + "## 結論\n\nもし§0がオブジェクトであり、目標に§1が含まれている場合、§2は目標を§3による帰納法で証明しようとします。帰納変数は後続ケースで§4であり、帰納仮定は§5です。\n\n### 例:\nもし目標が\n§6\n\nである場合、\n\n§7\n\nは目標を2つの目標に変換します。最初の目標は§8であり、次の目標には仮定§9と目標\n§10\nが含まれます。\n\n注意していただきたいのは、最初の目標を証明する前に、次の目標にアクセスすることはできないということです。", "## Summary\n\nIf §0 is a proof that §1, and §2 is a proof of §3,\nthen §4 will change §5 to a proof of §6. The idea is that if\nyou know §7 is true, then you can deduce from §8 that §9 is true.\n\nIf the *goal* is §10, then §11 will \\\\\"argue backwards\\\\\" and change the\ngoal to §12. The idea here is that if you want to prove §13, then by §14\nit suffices to prove §15, so you can reduce the goal to proving §16.\n\n### Example:\n\n§17 is a proof that §18.\n\nSo if you have a hypothesis §19\nthen §20 will change §21 to §22.\nYou could write §23\nbut Lean is smart enough to figure out the inputs to §24.\n\n### Example\n\nIf the goal is §25, then §26 will turn the\ngoal into §27.": - "", + "## 結論\n\nもし§0が§1の証明であり、§2が§3の証明であるなら、§4は§5を§6の証明に変更します。つまり、§7が真であることを知っているなら、§8から§9が真であることを導くことができます。\n\nもし*目標*が§10であるなら、§11は「逆向きに議論」し、目標を§12に変更します。ここでの考え方は、§13を証明したいなら、§14から§15を証明すれば十分であるので、目標を§16の証明に減らすことができるということです。\n\n### 例:\n\n§17が§18の証明であるとします。\n\nもし仮定§19があるなら、§20は§21を§22に変更します。§23のように書くこともできますが、Leanは§24の入力を見抜くことができます。\n\n### 例\n\nもし目標が§25であるなら、§26は目標を§27に変更します。", "## Summary\n\nIf §0 is a proof of an equality §1, then §2 will change\nall §3s in the goal to §4s. It's the way to \\\\\"substitute in\\\\\".\n\n## Variants\n\n* §5 (changes §6s to §7s; get the back arrow by typing §8 or §9.)\n\n* §10 (a sequence of rewrites)\n\n* §11 (changes §12s to §13s in hypothesis §14)\n\n* §15 (changes §16s to §17s in two hypotheses and the goal;\nget the §18 symbol with §19.)\n\n* §20 will keep changing §21 to §22\nuntil there are no more matches for §23.\n\n* §24 will change only the second §25 in the goal to §26.\n\n### Example:\n\nIf you have the assumption §27 and your goal is\n§28\n\nthen\n\n§29\n\nwill change the goal into §30, and then\n\n§31\n\nwill change the goal into §32, which\ncan be solved with §33.\n\n### Example:\n\nYou can use §34 to change a hypothesis as well.\nFor example, if you have two hypotheses\n§35\nthen §36 will turn §37 into §38.\n\n## Common errors\n\n* You need the square brackets. §39 is never correct.\n\n* If §40 is not a *proof* of an *equality* (a statement of the form §41),\nfor example if §42 is a function or an implication,\nthen §43 is not the tactic you want to use. For example,\n§44 is never correct: §45 is the theorem *statement*,\nnot the proof. If §46 is the proof, then §47 will work.\n\n## Details\n\nThe §48 tactic is a way to do \\\\\"substituting in\\\\\". There\nare two distinct situations where you can use this tactic.\n\n1) Basic usage: if §49 is an assumption or\nthe proof of a theorem, and if the goal contains one or more §50s, then §51\nwill change them all to §52s. The tactic will error\nif there are no §53s in the goal.\n\n2) Advanced usage: Assumptions coming from theorem proofs\noften have missing pieces. For example §54\nis a proof that §55 because §56 really is a function,\nand §57 is the input. In this situation §58 will look through the goal\nfor any subterm of the form §59, and the moment it\nfinds one it fixes §60 to be §61 then changes all §62s to §63s.\n\nExercise: think about why §64 changes the term\n§65 to\n§66\n\nIf you can't remember the name of the proof of an equality, look it up in\nthe list of lemmas on the right.\n\n## Targeted usage\n\nIf your goal is §67 and you want to rewrite §68\nto §69, then §70 will not work because Lean finds another\naddition first and swaps those inputs instead. Use §71 to\nguarantee that Lean rewrites §72 to §73. This works because\n§74 is a proof that §75, §76 is a proof\nthat §77, and §78 is a proof that §79.\n\nIf §80 then §81 will turn all §82s into §83s.\nIf you only want to change the 37th occurrence of §84\nto §85 then do §86.": - "", + "## 結論\n\n§0が等式§1の証明である場合、§2は目標内のすべての§3を§4に変更します。これは「代入」を行う方法です。\n\n## バリエーション\n\n* §5 (目標内の§6を§7に変更;バックアローは§8または§9を入力することで取得します。)\n\n* §10 (一連の変換)\n\n* §11 (仮定§14内を§12から§13に変更)\n\n* §15 (目標と2つの仮定内を§16から§17に変更;§18のシンボルは§19で取得します。)\n\n* §20は§21を§22に変更し続けるまで、§23の一致がなくなるまで変更します。\n\n* §24は目標内の第2の§25のみを§26に変更します。\n\n### 例:\n\n仮定§27があり、目標が§28の場合、\n\n§29\n\nは目標を§30に変更し、\n\n§31\n\nは目標を§32に変更し、\n\n§33で解決できます。\n\n### 例:\n\n仮定を変更することもできます。例えば、仮定が2つある場合、\n\n§35\n\n§36は§37を§38に変換します。\n\n## 一般的なエラー\n\n* クエート記号が必要です。§39は常に正しくありません。\n\n* §40が等式(形式§41のステートメント)の証明でない場合、例えば§42が関数または推論である場合、\n\n§43は使用したいタクティクではありません。例えば、\n\n§44は常に正しくありません:§45は定理のステートメントであり、\n\n証明ではありません。§46が証明である場合、§47は機能します。\n\n## 詳細\n\n§48タクティクは「代入」を行う方法です。このタクティクを使用できる2つの異なる状況があります。\n\n1) 基本的な使用法:§49が仮定または定理の証明であり、目標内に1つ以上の§50が含まれている場合、\n\n§51はそれら全てを§52に変更します。タクティクは目標内に§53が存在しない場合にエラーを発生させます。\n\n2) 高度な使用法:定理の証明から得られる仮定はしばしば欠落している部分を持っています。例えば、\n\n§54は§55であることを証明しており、\n\n§56は実際には関数であり、\n\n§57は入力です。この状況では、\n\n§58は目標内を検索し、\n\n§59のサブタームを見つけた瞬間に、\n\n§60を§61に固定し、\n\nすべての§62を§63に変更します。\n\n演習:なぜ§64は項§65を§66に変更するのか考えてみてください。\n\n等式の証明の名前を忘れた場合は、\n\n右側の補題一覧で調べてください。\n\n## 対象的な使用法\n\n目標が§67であり、\n\n§68を§69に書き換えることを望む場合、\n\n§70はLeanが別の加算を見つけ、\n\nその入力を交換するためには機能しません。§71を使用して、\n\nLeanが§72を§73に書き換えることを保証します。これは、\n\n§74は§75を証明しており、\n\n§76は§77を証明しており、\n\n§78は§79を証明しているためです。\n\n§80が成立する場合、\n\n§81はすべての§82を§83に変換します。\n\n§84の37番目の出現のみを§85に変更したい場合は、\n\n§86を行います。", "## Summary\n\nIf §0 is a number, then §1 will break the goal into two goals,\none with §2 and the other with §3.\n\nIf §4 is a proof (for example a hypothesis), then §5 will break the\nproof up into the pieces used to prove it.\n\n## Example\n\nIf §6 is a number, then §7 will break the goal into two goals,\none with §8 replaced by 0 and the other with §9 replaced by §10. This\ncorresponds to the mathematical idea that every natural number is either §11\nor a successor.\n\n## Example\n\nIf §12 is a hypothesis, then §13 will turn one goal\ninto two goals, one with a hypothesis §14 and the other with a\nhypothesis §15.\n\n## Example\n\nIf §16 is a hypothesis, then §17 will turn one goal into no goals,\nbecause there are no ways to make a proof of §18! And if you have no goals left,\nyou have finished the level.\n\n## Example\n\nIf §19 is a hypothesis, then §20 will create a new number §21\nand a proof §22. This is because the *definition* of §23 is\n§24.": - "", + "## まとめ\n\nもし§0が数値である場合、§1は目標を二つに分割し、一つには§2、もう一つには§3が含まれます。\n\nもし§4が証明(例えば、仮定)である場合、§5はその証明を証明に使用された部分に分割します。\n\n## 例\n\nもし§6が数値である場合、§7は目標を二つに分割し、一つには§8を0に置き換えたもの、もう一つには§9を§10に置き換えたものが含まれます。これは数学的な考え方に即して、すべての自然数は§11または後続数であることを示します。\n\n## 例\n\nもし§12が仮定である場合、§13は一つの目標を二つに分割し、一つには§14という仮定が含まれ、もう一つには§15という仮定が含まれます。\n\n## 例\n\nもし§16が仮定である場合、§17は一つの目標を無数の目標に分割しません。なぜなら、§18の証明方法が存在しないからです!そして、目標が残っていない場合、レベルは終了します。\n\n## 例\n\nもし§19が仮定である場合、§20は新しい数値§21と証明§22を作成します。これは§23の定義が§24であるからです。", "## Summary\n\nIf §0 and there are several §1s in the goal, then\n§2 will just change the third §3 to a §4.\n\n## Example\n\nIf the goal is §5 then §6\nwill change the goal to §7. In contrast, §8\nwill change the goal to §9.": - "", + "## 結論\n\nもし目標に §0 があり、目標に複数の §1 が存在する場合、§2 は第三の §3 を §4 に変更します。\n\n## 例\n\nもし目標が §5 である場合、§6 は目標を §7 に変更します。一方で、§8 は目標を §9 に変更します。", "## Summary\n\nIf the goal is §0, then §1 will introduce §2 as a hypothesis,\nand change the goal to §3. Mathematically, it says that to prove §4,\nwe can assume §5 and then prove §6.\n\n### Example:\n\nIf your goal is §7 (the way Lean writes §8)\nthen §9 will give you a hypothesis §10 named §11, and the goal\nwill change to §12.": - "", + "## 結論\n\nもし目標が§0である場合、§1は§2を仮定として導入し、目標を§3に変更します。数学的には、§4を証明するためには、§5を仮定し、その後§6を証明すればよいということです。\n\n### 例:\n\nもし目標が§7(Leanで書かれた§8)である場合、§9は§10という名前の仮定§11を導入し、目標は§12に変更されます。", "## Summary\n\nIf the goal is a statement §0, then §1 will close the goal if §2 is a proof of §3.\n\n### Example\n\nIf the goal is §4 and you have a hypothesis §5\nthen §6 will solve the goal.\n\n### Example\n\nIf the goal is §7 then §8 will close the goal.\n\n### Exact needs to be exactly right\n\nNote that §9 will *not work* in the previous example;\nfor §10 to work, §11 has to be *exactly* a proof of the goal.\n§12 is a proof of §13 or, if you like,\na proof of §14 where §15 needs to be supplied by the user.\nThis is in contrast to §16 and §17, which will \\\\\"guess the inputs\\\\\"\nif necessary. If the goal is §18 then §19\nand §20 will both change the goal to §21,\nbecause §22 guesses the input to the function §23.": - "", + "## 結論\n\nもし目標が §0 の文である場合、§2 が §3 の証明であれば、目標は §1 で閉じます。\n\n### 例\n\nもし目標が §4 で、仮定 §5 がある場合、§6 は目標を解決します。\n\n### 例\n\nもし目標が §7 である場合、§8 は目標を閉じます。\n\n### 必ず正確に\n\n注意してほしいのは、前の例では §9 は *機能しません*;\n§10 が機能するためには、§11 は目標の *正確な* 証明である必要があります。\n§12 は目標の §13 の証明であるか、あるいは §14 の証明で、§15 はユーザーによって提供される必要があります。\nこれは §16 と §17 とは異なり、必要に応じてこれらの関数は *入力の推測* を行います。もし目標が §18 である場合、§19 と §20 は両方とも目標を §21 に変更します。\nこれは §22 が関数 §23 の入力を推測するからです。", "## Precision rewriting\n\nIn the last level, there was §0 and §1,\nand §2 changed the first one it saw,\nwhich was §3. Let's learn how to tell Lean\nto change §4 first by giving §5 an\nexplicit input.": - "", + "## 精度の再編纂\n\n最後のレベルでは、§0 と §1 があり、\n§2 は最初に見つけたものを §3 に変更しました。\nLean に §4 を最初に変更させる方法を学びましょう。\n§5 に明示的な入力を与えることで実現します。", "# Welcome to the Natural Number Game\n#### An introduction to mathematical proof.\n\nIn this game, we will build the basic theory of the natural\nnumbers §0 from scratch. Our first goal is to prove\nthat §1. Next we'll prove that §2.\nAnd at the end we'll see if we can prove Fermat's Last Theorem.\nWe'll do this by solving levels of a computer puzzle game called Lean.\n\n# Read this.\n\nLearning how to use an interactive theorem prover takes time.\nTests show that the people who get the most out of this game are\nthose who read the help texts like this one.\n\nTo start, click on \"Tutorial World\".\n\nNote: this is a new Lean 4 version of the game containing several\nworlds which were not present in the old Lean 3 version. More new worlds\nsuch as Strong Induction World, Even/Odd World and Prime Number World\nare in development; if you want to see their state or even help out, checkout\nout the [issues in the github repo](https://github.com/leanprover-community/NNG4/issues).\n\n## More\n\nClick on the three lines in the top right and select \"Game Info\" for resources,\nlinks, and ways to interact with the Lean community.": - "", + "# 自然数ゲームへようこそ\n#### 数学的証明への入門\n\nこのゲームでは、自然数 §0 の基本理論をゼロから構築します。最初の目標は §1 を証明することです。次に §2 を証明します。そして最後には、フェルマーの最終定理を証明できるかどうかを見ていきます。これらの目標を達成するために、コンピュータパズルゲーム「Lean」のレベルを解いていきます。\n\n# 読んでください。\n\nインタラクティブ証明システムの使い方を学ぶには時間がかかります。テスト結果によれば、このゲームで最も効果的なのは、このようなヘルプテキストを読む人です。\n\n開始するには、「チュートリアルワールド」をクリックしてください。\n\n注意:これは、旧Lean 3版に存在しなかった複数のワールドを含む新しいLean 4版のゲームです。強 induc 世界、偶数/奇数世界、素数世界などの新しいワールドの開発が進行中です;これらの状態を確認したいか、甚至は協力したい場合は、[githubリポジトリのissues](https://github.com/leanprover-community/NNG4/issues) をチェックしてください。\n\n## 追加情報\n\n右上隅の三本線をクリックし、「ゲーム情報」を選択してリソース、リンク、Leanコミュニティとの互动方法を確認してください。", "# Summary\nThe §0 tactic changes a goal of §1 into a goal of §2.\nUse it when your hypotheses guarantee that the reason that §3\nis true is because in fact §4 is true.\n\nInternally this tactic is just §5ing a theorem\nsaying that §6\n\nNote that this tactic can turn a solvable goal into an unsolvable\none.": - "", - "# Summary\n\n§0 will solve the goal §1.": "", + "### 翻訳\n# まとめ\n§0 タクティクは、目標 §1 を §2 に変更します。\n仮定が §3 が真である理由は実際には §4 が真であるからである場合に使用します。\n\n内部的には、このタクティクは §6 という定理を §5 し、\n§6\n\n注意していただきたいのは、このタクティクが解決可能な目標を解決不能な目標に変更する可能性があることです。", + "# Summary\n\n§0 will solve the goal §1.": "# 結果\n\n§0 は目標 §1 を解決します。", "# Summary\n\n§0 will attempt to solve a goal if it can find an algorithm which it\ncan run to solve it.\n\n## Example\n\nA term of type §1 is an algorithm to decide whether two naturals\nare equal or different. Hence, once this term is made and made into an §2,\nthe §3 tactic can use it to solve goals of the form §4 or §5.": - "", + "# 概要\n\n§0は、解決アルゴリズムを見つけることができれば、目標を解決しようとします。\n\n## 例\n\n型§1の項は、2つの自然数が等しいか異なるかを決定するアルゴリズムです。したがって、この項が作成され、§2に変換されると、§3タクティクは、§4または§5のような目標を解決するためにそれを使用することができます。", "# Summary\n\nThe §0 tactic will solve any goal which can be solved purely by logic (that is, by\ntruth tables).\n\n## Details\n\n§1 *does not do magic*! It doesn't know *anything* about addition or multiplication,\nit doesn't even know §2. The only things that §3 knows about numbers\nare firstly that §4 and secondly that §5, §6, §7 and so on.\nWhat §8's strength is, is *logic*. If you have a hypothesis §9\nand another hypothesis §10 and your goal is §11 then §12 will\nsolve this goal, because to solve that goal you don't need to know any facts\nabout inequalities or addition, all you need to know is the rules of logic.\n\n## Example\n\nIf you have §13 as a hypothesis, then §14 will solve\nthe goal. This is because a false hypothesis implies any hypothesis.\n\n## Example\n\nIf your goal is §15, then §16 will solve the goal.\n\n## Example\n\nIf you have two hypotheses §17 and §18 then §19 will\nsolve the goal because it can prove §20 from your hypotheses, and thus\nprove the goal (as §21 implies anything).\n\n## Example\n\nIf you have one hypothesis §22 then §23 will solve the goal because\n§24 is smart enough to know that §25 is true, which gives the contradiction we seek.\n\n## Example\n\nIf you have a hypothesis §26 then §27 will solve the goal, because\n§28 knows §29 and this is enough to prove §30, which implies any goal.\n\n## Example\n\nIf you have a hypothesis of the form §31 and your goal is §32, then\n§33 will solve the goal, because the goal is logically equivalent to the hypothesis.\nIf you switch the goal and hypothesis in this example, §34 would solve it too.": - "", + "### Summary\n\n§0 タクティクは、論理だけで解決できる目標(つまり、真偽表で解決できる目標)を解決します。\n\n## 詳細\n\n§1 は *魔法を施すわけではない*!加算や乗算については何も知らないし、すら §2 も知らない。§3 が数について知っているのは、まず §4 であり、二つ目は §5, §6, §7 などである。§8 の強みは *論理* にある。仮定 §9 と仮定 §10 があり、目標が §11 の場合、§12 はこの目標を解決します。なぜなら、目標を解決するには不等式や加算に関する事実を知る必要がないし、必要なのは論理のルールだけです。\n\n## 例\n\n仮定として §13 がある場合、§14 は目標を解決します。これは、偽の仮定は任意の仮定を推論するからです。\n\n## 例\n\n目標が §15 の場合、§16 は目標を解決します。\n\n## 例\n\n仮定が §17 と §18 である場合、§19 は目標を解決します。なぜなら、§19 はあなたの仮定から §20 を証明でき、したがって目標を証明できるからです(§21 は何かを推論するためのもの)。\n\n## 例\n\n仮定が §22 である場合、§23 は目標を解決します。なぜなら、§24 は §25 が真であることを知っているので、これは求めている矛盾を与えます。\n\n## 例\n\n仮定が §26 の形式である場合、目標が §32 の場合、§33 は目標を解決します。なぜなら、目標は仮定と論理的に等価であるからです。この例で目標と仮定を入れ替えると、§34 も解決します。\n\n## 例\n\n仮定が §31 の形式であり、目標が §32 の場合、§33 は目標を解決します。なぜなら、目標は仮定と論理的に等価であるからです。この例で目標と仮定を入れ替えると、§34 も解決します。", "# Summary\n\nThe §0 tactic can be used to add new hypotheses to a level, but of course\nyou have to prove them.\n\n\n## Example\n\nThe simplest usage is like this. If you have §1 in your context and you execute\n\n§2\n\nthen you will get a new goal §3 to prove, and after you've proved\nit you will have a new hypothesis §4 in your original goal.\n\n## Example\n\nIf you already have a proof of what you want to §5, you\ncan just create it immediately. For example, if you have §6 and §7\nnumber objects, then\n\n§8\n\nwill directly add a new hypothesis §9\nto the context, because you just supplied the proof of it (§10).\n\n## Example\n\nIf you have a proof to hand, then you don't even need to state what you\nare proving. For example\n\n§11\n\nwill add §12 as a hypothesis.": - "", + "### Summary\n\n§0 タクティクはレベルに新しい仮定を追加するのに使用できますが、もちろんそれらを証明する必要があります。\n\n## 例\n\n最も単純な使用法は以下の通りです。コンテキストに§1がある場合、§2を実行すると新しい目標§3が生成され、それを証明すると元の目標に新しい仮定§4が追加されます。\n\n## 例\n\n既に証明したいものを持っている場合、それをすぐに作成することができます。例えば、§6と§7で番号付けされたオブジェクトがある場合、§8を実行すると、その証明(§10)を提供したため、コンテキストに新しい仮定§9が追加されます。\n\n## 例\n\n証明を持っている場合、証明したいものを明示する必要すらありません。例えば、§11を実行すると、§12が仮定として追加されます。", "# Summary\n\nIf you have a hypothesis\n\n§0\n\nand goal\n\n§1\n\nthen §2 replaces the set-up with its so-called \\\\\"contrapositive\\\\\":\na hypothesis\n\n§3\n\nand goal\n\n§4.": - "", + "### 翻訳\n\n# 概要\n\n仮定\n\n§0\n\nと目標\n\n§1\n\nがある場合、§2 はセットアップを反論と呼ばれるものに置き換える:\n仮定\n\n§3\n\nと目標\n\n§4\n\nになります。", "# Statement\n\nIf §0 and §1 are numbers, then\n§2 is the proof that\n§3.\n\n## More technical details\n\nThere are other ways to think about §4.\n\nYou can think about §5 itself as a function which takes two\nnumbers §6 and §7 as input, and outputs a proof of\n§8.\n\nYou can think of §9 itself as a proof; it is the proof\nthat §10 is an injective function. In other words,\n§11 is a proof of\n§12.\n\n§13 was postulated as an axiom by Peano, but\nin Lean it can be proved using §14, a mathematically\npathological function.": - "", + "### 原文 (English)\n# Statement\n\nIf §0 and §1 are numbers, then\n§2 is the proof that\n§3.\n\n## More technical details\n\nThere are other ways to think about §4.\n\nYou can think about §5 itself as a function which takes two\nnumbers §6 and §7 as input, and outputs a proof of\n§8.\n\nYou can think of §9 itself as a proof; it is the proof\nthat §10 is an injective function. In other words,\n§11 is a proof of\n§12.\n\n§13 was postulated as an axiom by Peano, but\nin Lean it can be proved using §14, a mathematically\npathological function.\n\n\n## 翻訳 (Japanese)\n# 陳述\n\n§0 と §1 が数値である場合、\n§2 は §3 の証明です。\n\n## さらなる技術的な詳細\n\n§4 を考える方法は他にもあります。\n\n§5 は、2 つの数値 §6 と §7 を入力として取り、\n§8 の証明を出力する関数として考えることができます。\n\n§9 は自身が証明であり、これは §10 が単射関数であることを示す証明です。つまり、\n§11 は §12 の証明です。\n\nペアノによって公理として導入された §13 ですが、\nLean では §14、すなわち数学的に病理的な関数を使用して証明できます。", "# Read this first\n\nEach level in this game involves proving a mathematical theorem (the \"Goal\").\nThe goal will be a statement about *numbers*. Some numbers in this game have known values.\nThose numbers have names like §0. Other numbers will be secret. They're called things\nlike §1 and §2. We know §3 is a number, we just don't know which one.\n\nIn this first level we're going to prove the theorem that §4.\nYou can see §5 in the *Objects* below, which means that §6 and §7\nare numbers.\n\nWe solve goals in Lean using *Tactics*, and the first tactic we're\ngoing to learn is called §8, which proves all theorems of the form §9.\n\nProve that §10 by executing the §11 tactic.": - "", + "# まずはこちらを読む\n\nこのゲームの各レベルでは、数学的定理(「目標」)を証明します。\n目標は数に関する主張です。このゲームには既知の値を持つ数がいくつかあります。\nその数には§0のような名前がついています。他の数は秘密です。§1や§2のような名前で呼ばれます。§3は数であることは分かっていますが、具体的にはどの数かは分かりません。\n\nこの最初のレベルでは、§4という定理を証明します。\n下の*Objects*に§5が表示されているので、§6と§7は数であることが分かります。\n\nLeanで目標を解決するには*tactics*を使用します。最初に学ぶtacticは§8で、これは§9のような形式の定理を証明します。\n\n§10を証明するために§11 tacticを実行してください。", "# Overview\n\nOur home-made tactic §0 will solve arbitrary goals of\nthe form §1.": - "", + "# 概要\n\n私たちが作成したタクティク §0 は、§1 のような任意の目標を解決します。", "# Overview\n\nLean's simplifier, §0, will rewrite every lemma\ntagged with §1 and every lemma fed to it by the user, as much as it can.\nFurthermore, it will attempt to order variables into an internal order if fed\nlemmas such as §2, so that it does not go into an infinite loop.": - ""} \ No newline at end of file + "# Overview\n\nLeanの簡略化処理器§0は、§1でタグ付けされたすべての lemmas およびユーザーから与えられたすべての lemmas をできる限り簡略化します。さらに、§2のようなlemmasを与えると、内部の順序に変数を並び替える試みも行い、無限ループに陥らないようにします。"} \ No newline at end of file diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 7645207c..5a48bcfe 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -3,10 +3,10 @@ msgstr "" "Project-Id-Version: Game v4.23.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-04-13\n" -"Last-Translator: \n" +"Last-Translator: \n" "Language-Team: Japanese \n" "Language: ja\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2026-04-13 14:32+0900\n" "MIME-Version: 1.0\n" @@ -14,17 +14,18 @@ msgstr "" #: Game.Levels.LessOrEqual.L10le_one msgid "x ≤ 1" -msgstr "" +msgstr "x ≤ 1" -#. §0: `tauto` #: Game.Levels.AdvMultiplication.L06mul_right_eq_one +#. §0: `tauto` msgid "§0 is good enough to solve this goal." -msgstr "" +msgstr "§0はこの目標を解決するのに十分です。" #: Game.Levels.Multiplication.L09mul_assoc msgid "mul_assoc" -msgstr "" +msgstr "乗法の結合律" +#: Game.Levels.Implication.L04succ_inj #. §0: $a$ #. §1: $b$ #. §2: `succ_inj a b` @@ -40,7 +41,6 @@ msgstr "" #. §12: $\\forall a, b \\in \\mathbb{N}, ( \\operatorname{succ}(a) = \\operatorname{succ}(b)) \\implies a=b$ #. §13: `succ_inj` #. §14: `pred` -#: Game.Levels.Implication.L04succ_inj msgid "" "# Statement\n" "\n" @@ -65,15 +65,66 @@ msgid "" "in Lean it can be proved using §14, a mathematically\n" "pathological function." msgstr "" +"### 原文 (English)\n" +"# Statement\n" +"\n" +"If §0 and §1 are numbers, then\n" +"§2 is the proof that\n" +"§3.\n" +"\n" +"## More technical details\n" +"\n" +"There are other ways to think about §4.\n" +"\n" +"You can think about §5 itself as a function which takes two\n" +"numbers §6 and §7 as input, and outputs a proof of\n" +"§8.\n" +"\n" +"You can think of §9 itself as a proof; it is the proof\n" +"that §10 is an injective function. In other words,\n" +"§11 is a proof of\n" +"§12.\n" +"\n" +"§13 was postulated as an axiom by Peano, but\n" +"in Lean it can be proved using §14, a mathematically\n" +"pathological function.\n" +"\n" +"\n" +"## 翻訳 (Japanese)\n" +"# 陳述\n" +"\n" +"§0 と §1 が数値である場合、\n" +"§2 は §3 の証明です。\n" +"\n" +"## さらなる技術的な詳細\n" +"\n" +"§4 を考える方法は他にもあります。\n" +"\n" +"§5 は、2 つの数値 §6 と §7 を入力として取り、\n" +"§8 の証明を出力する関数として考えることができます。\n" +"\n" +"§9 は自身が証明であり、これは §10 が単射関数であることを示す証明です。つまり、\n" +"§11 は §12 の証明です。\n" +"\n" +"ペアノによって公理として導入された §13 ですが、\n" +"Lean では §14、すなわち数学的に病理的な関数を使用して証明できます。" +#: Game.Levels.Addition.L02succ_add #. §0: $a, b$ #. §1: $ \\operatorname{succ}(a) + b = \\operatorname{succ}(a + b)$ -#: Game.Levels.Addition.L02succ_add msgid "" "For all natural numbers §0, we have\n" "§1." msgstr "" +"すべての自然数 §0 に対して、\n" +"§1.\n" +"\n" +"\n" +"## 参考訳\n" +"すべての自然数 §0 に対して、\n" +"§1." +#: Game.Levels.Tutorial.L04rw_backwards #. §0: `h` #. §1: `X = Y` #. §2: `rw [h]` @@ -88,7 +139,6 @@ msgstr "" #. §11: $0$ #. §12: `succ (succ 0)` #. §13: `2` -#: Game.Levels.Tutorial.L04rw_backwards msgid "" "If §0 is a proof of §1 then §2 will\n" "turn §3s into §4s. But what if we want to\n" @@ -100,7 +150,12 @@ msgid "" "after §11 again, this time by changing §12\n" "into §13." msgstr "" +"もし§0が§1の証明であるなら、§2は§3を§4に変換します。しかし、§5を§6に変換したい場合怎么办?§7" +"タクティクに私たちがこの変換を指示するには、左矢印§8を使用します。型§9を入力し、スペースバーを押すとこの矢印が得られます。\n" +"\n" +"次の証明で、§10が§11の後ろの数値の後ろの数値であることを証明しましょう。今回は§12を§13に変換して証明します。" +#: Game.Levels.AdvMultiplication.L06mul_right_eq_one #. §0: `have` #. §1: `a` #. §2: `have ha : a = 0` @@ -114,7 +169,6 @@ msgstr "" #. §10: `succ_inj a b` #. §11: `have h2 := succ_inj a b` #. §12: `h2 : succ a = succ b → a = b` -#: Game.Levels.AdvMultiplication.L06mul_right_eq_one msgid "" "# Summary\n" "\n" @@ -152,11 +206,28 @@ msgid "" "\n" "will add §12 as a hypothesis." msgstr "" +"### Summary\n" +"\n" +"§0 タクティクはレベルに新しい仮定を追加するのに使用できますが、もちろんそれらを証明する必要があります。\n" +"\n" +"## 例\n" +"\n" +"最も単純な使用法は以下の通りです。コンテキストに§1がある場合、§2を実行すると新しい目標§3が生成され、それを証明すると元の目標に新しい仮定§4" +"が追加されます。\n" +"\n" +"## 例\n" +"\n" +"既に証明したいものを持っている場合、それをすぐに作成することができます。例えば、§6と§7で番号付けされたオブジェクトがある場合、§8" +"を実行すると、その証明(§10)を提供したため、コンテキストに新しい仮定§9が追加されます。\n" +"\n" +"## 例\n" +"\n" +"証明を持っている場合、証明したいものを明示する必要すらありません。例えば、§11を実行すると、§12が仮定として追加されます。" +#: Game.Levels.Addition.L04add_assoc #. §0: `a + b + c` #. §1: `(a + b) + c` #. §2: `+` -#: Game.Levels.Addition.L04add_assoc msgid "" "Remember that when Lean writes §0, it means §1.\n" "If you are not sure where the brackets are in an expression, just hover\n" @@ -164,33 +235,46 @@ msgid "" "hover over both §2 symbols on the left hand side of the goal and\n" "you'll see where the invisible brackets are." msgstr "" +"Remember that when Lean writes §0, it means §1.\n" +"もし式内の括弧の位置が不明な場合は、カーソルをその位置に-hover " +"して表示されるハイライトを確認してください。例えば、目標の左側の両方の§2をhoverすると、見えない括弧の位置がわかります。" +#: Game.Levels.Tutorial.L04rw_backwards #. §0: `rw [← one_eq_succ_zero]` #. §1: `succ 0` #. §2: `1` -#: Game.Levels.Tutorial.L04rw_backwards msgid "Try §0 to change §1 into §2." -msgstr "" +msgstr "試してみて §0 を使用し、§1 を §2 に変換してください。" -#. §0: `1` #: Game.Levels.Tutorial.L07add_succ +#. §0: `1` msgid "Start by unravelling the §0." -msgstr "" +msgstr "開始するには、§0 を unravel してください。" #: Game.Levels.Tutorial.L02rw msgid "the rw tactic" -msgstr "" +msgstr "the rw タクティク" #: Game.Levels.AdvMultiplication.L02mul_left_ne_zero msgid "mul_left_ne_zero" msgstr "" +"mul_left_ne_zero\n" +"\n" +"\n" +"## 日本語翻訳\n" +"左側 multiplicand が非零である定理" #: Game.Levels.AdvMultiplication.L07mul_ne_zero msgid "mul_ne_zero" msgstr "" +"mul_ne_zero\n" +"\n" +"\n" +"## 日本語翻訳\n" +"乗算が零でない(mul_ne_zero)" -#. §0: `2 + 2 = 4` #: Game.Levels.Tutorial +#. §0: `2 + 2 = 4` msgid "" "Welcome to tutorial world! In this world we learn the basics\n" "of proving theorems. The boss level of this world\n" @@ -203,34 +287,59 @@ msgid "" "Let's learn some basic tactics. Click on \"Start\" below\n" "to begin your quest." msgstr "" +"### 原文 (English)\n" +"Welcome to tutorial world! In this world we learn the basics\n" +"of proving theorems. The boss level of this world\n" +"is the theorem §0.\n" +"\n" +"You prove theorems by solving puzzles using tools called *tactics*.\n" +"The aim is to prove the theorem by applying tactics\n" +"in the right order.\n" +"\n" +"Let's learn some basic tactics. Click on \"Start\" below\n" +"to begin your quest.\n" +"\n" +"\n" +"### 翻訳 (Japanese)\n" +" welcomes to tutorial world! この世界では定理を証明する基本を学びます。この世界のボスレベルは定理§0です。\n" +"\n" +"定理を証明するには、*タクティク*というツールを使ってパズルを解きます。目標は、適切な順序でタクティクを適用して定理を証明することです。\n" +"\n" +"基本的なタクティクについて学んでみましょう。以下の \"開始\" をクリックして冒険を始めてください。" #: Game.Levels.AdvAddition.L02add_left_cancel msgid "add_left_cancel" msgstr "" +"add_left_cancel\n" +"\n" +"\n" +"## 日本語翻訳\n" +"左-cancel 付加律" #: Game.Levels.LessOrEqual.L01le_refl msgid "You can probably take it from here." -msgstr "" +msgstr "您可能已经可以继续了。" #: Game.Levels.Tutorial.L08twoaddtwo msgid "2+2=4" -msgstr "" +msgstr "2+2=4" +#: Game.Levels.Implication.L08ne #. §0: `x ≠ y` #. §1: `x = y → False` -#: Game.Levels.Implication.L08ne msgid "Remember, §0 is *notation* for §1." -msgstr "" +msgstr "記憶しておいてください、§0は§1の*表記*です。" +#: Game.Levels.AdvMultiplication.L08mul_eq_zero #. §0: `a * b = 0` #. §1: `a = 0` #. §2: `b = 0` -#: Game.Levels.AdvMultiplication.L08mul_eq_zero msgid "" "This level proves that if §0 then §1 or §2. It is\n" "logically equivalent to the last level, so there is a very short proof." -msgstr "" +msgstr "このレベルは、§0 ならば §1 または §2 であることを証明します。これは最後のレベルと論理的に同等であるため、非常に短い証明があります。" +#: Game.Levels.Addition.L01zero_add #. §0: $0+n=n$ #. §1: $n$ #. §2: $n+0=n$ @@ -248,7 +357,6 @@ msgstr "" #. §14: `0 + succ d = succ d` #. §15: `0` #. §16: `>_` -#: Game.Levels.Addition.L01zero_add msgid "" "In this level we're going to prove that §0, where §1 is a secret natural " "number.\n" @@ -272,13 +380,51 @@ msgid "" "you can swap\n" "back to \"Typewriter mode\" by clicking the §16 button in the top right.)" msgstr "" +"### 原文 (English)\n" +"In this level we're going to prove that §0, where §1 is a secret natural " +"number.\n" +"\n" +"Wait, don't we already know that? No! We know that §2, but that's §3.\n" +"This is §4, which is different.\n" +"\n" +"The difficulty with proving §5 is that we do not have a *formula* for\n" +"§6 in general, we can only use §7 and §8 once\n" +"we know whether §9 is §10 or a successor. The §11 tactic splits into these " +"two cases.\n" +"\n" +"The base case will require us to prove §12, and the inductive step\n" +"will ask us to show that if §13 then §14. Because\n" +"§15 and successor are the only way to make numbers, this will cover all the " +"cases.\n" +"\n" +"See if you can do your first induction proof in Lean.\n" +"\n" +"(By the way, if you are still in the \"Editor mode\" from the last world, " +"you can swap\n" +"back to \"Typewriter mode\" by clicking the §16 button in the top right.)\n" +"\n" +"### 翻訳 (Japanese)\n" +"このレベルでは、§1 という秘密の自然数について §0 を証明します。\n" +"\n" +"待って、それでは既に知っていることではないですか?いいえ!§2 は分かっていますが、それが §3 です。\n" +"これは §4 で、異なるものです。\n" +"\n" +"§5 を証明する難しさは、一般の §6 に対する *公式* が存在しないことです。§7 と §8 は §9 が §10 " +"か後続数であることを知ったときにのみ使用できます。§11 のタクティクはこれらの2つの場合に分岐します。\n" +"\n" +"基本的な場合では §12 を証明する必要がありますし、帰納的なステップでは §13 が真なら §14 を示す必要があります。§15 " +"と後続数が数を作る唯一の方法であるため、これで全てのケースをカバーします。\n" +"\n" +"Leanで初めての帰納法証明を試みることができますか?\n" +"\n" +"(ちなみに、最後のワールドで「エディタモード」にいた場合、右上にある §16 ボタンをクリックして「タイプライターモード」に戻ることができます。)" +#: Game.Levels.LessOrEqual.L11le_two #. §0: `∨` #. §1: `x = 0 ∨ x = 1 ∨ x = 2` #. §2: `x = 0 ∨ (x = 1 ∨ x = 2)` #. §3: `left` #. §4: `right` -#: Game.Levels.LessOrEqual.L11le_two msgid "" "We'll need this lemma to prove that two is prime!\n" "\n" @@ -286,29 +432,48 @@ msgid "" "§1 actually means §2.\n" "This affects how §3 and §4 work." msgstr "" +"We'll need this lemma to prove that two is prime!\n" +"\n" +"You'll need to know that §0 is right associative. This means that\n" +"§1 actually means §2.\n" +"This affects how §3 and §4 work." #: Game.Levels.Power.L01zero_pow_zero msgid "zero_pow_zero" msgstr "" +"零乗零\n" +"\n" +"\n" +"## 参考訳\n" +"零乗零" +#: Game.Levels.Addition.L03add_comm #. §0: `a` #. §1: `b` -#: Game.Levels.Addition.L03add_comm msgid "Induction on §0 or §1 -- it's all the same in this one." -msgstr "" +msgstr "帰納法を用いて §0 または §1 に適用する -- どちらも同じことです。" #: Game.Levels.Power.L05pow_two msgid "Note: this lemma will be useful for the final boss!" -msgstr "" +msgstr "この補題は最終ボス戦で役立つでしょう!" #: Game.Levels.Implication.L06intro msgid "intro" msgstr "" +"## はじめに\n" +"\n" +"\n" +"## 参考訳\n" +"## はじめに\n" +"\n" +"\n" +"## 翻訳\n" +"## はじめに" -#. §0: `apply eq_succ_of_ne_zero at ha` #: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero +#. §0: `apply eq_succ_of_ne_zero at ha` msgid "Use the previous lemma with §0." -msgstr "" +msgstr "前の補題を使用し、§0を適用してください。" #: Game.Levels.Multiplication.L09mul_assoc msgid "" @@ -317,30 +482,35 @@ msgid "" "\n" "If you want to begin your journey to the final boss, head for Power World." msgstr "" +"数学的な通り路人は、自然数が可換半環であることを証明したことを指摘しました。\n" +"\n" +"最終ボスへの旅を始めるなら、Power Worldへ向かってください。" -#. §0: `pow_pow` #: Game.Levels.Power.L08pow_pow +#. §0: `pow_pow` msgid "" "One of the best named levels in the game, a savage §0\n" "sub-boss appears as the music reaches a frenzy. What\n" "else could there be to prove about powers after this?" msgstr "" +"ゲームで最も適切に名付けられたレベルの一つとして知られる場面で、音楽が狂熱に達すると凶暴な§0\n" +"サブボスが登場します。それ以降の力について何を証明できるでしょうか?" +#: Game.Levels.LessOrEqual.L05le_zero #. §0: $x \\leq 0$ #. §1: $x=0$ -#: Game.Levels.LessOrEqual.L05le_zero msgid "If §0, then §1." -msgstr "" +msgstr "もし§0であるなら、§1です。" -#. §0: `apply h` #: Game.Levels.AdvMultiplication.L02mul_left_ne_zero +#. §0: `apply h` msgid "Now §0 and you can probably take it from here." -msgstr "" +msgstr "現在、§0 です。ここから大丈夫でしょう。" +#: Game.Levels.Multiplication.L04mul_comm #. §0: `mul_comm x y : x * y = y * x` #. §1: `zero_mul` #. §2: `mul_zero` -#: Game.Levels.Multiplication.L04mul_comm msgid "" "The first sub-boss of Multiplication World is §0.\n" "\n" @@ -349,38 +519,52 @@ msgid "" "But we'll keep hold of these proofs anyway, because it's convenient\n" "to have exactly the right tool for a job." msgstr "" +"The first sub-boss of Multiplication Worldは§0です。\n" +"\n" +"この定理を証明すると、「余裕」のある証明が得られます。\n" +"例えば、§2から容易に導かれる§1があります。\n" +"しかし、これらの証明は手元に置いておくことにします。\n" +"必要な仕事に適切な道具を持つためです。" +#: Game.Levels.Addition.L05add_right_comm #. §0: `add_right_comm a b c` #. §1: `(a + b) + c = (a + c) + b` #. §2: `a + b + c` #. §3: `(a + b) + c` #. §4: `a + b + c = a + c + b` -#: Game.Levels.Addition.L05add_right_comm msgid "" "§0 is a proof that §1\n" "\n" "In Lean, §2 means §3, so this result gets displayed\n" "as §4." msgstr "" +"§0は§1の証明です\n" +"\n" +"Leanでは、§2は§3を意味するので、この結果は§4として表示されます。" #: Game.Levels.Algorithm.L08decide msgid "decide" -msgstr "" +msgstr "決定" +#: Game.Levels.Implication.L02exact2 #. §0: `rw [zero_add] at «{h}»` #. §1: `«{h}»` -#: Game.Levels.Implication.L02exact2 msgid "" "You can use §0 to rewrite at §1 instead\n" "of at the goal." msgstr "" +"您可以在§0处重写代码,而不是在目标处进行重写。\n" +"\n" +"\n" +"## 日本語翻訳\n" +"您可以在§0でコードを改訂し、目標处の重写を避けることができます。" +#: Game.Levels.Tutorial.L05add_zero #. §0: `repeat t` #. §1: `t` #. §2: `repeat rw [add_zero]` #. §3: `a + 0 + (0 + (0 + 0)) = b + 0 + 0` #. §4: `a = b` -#: Game.Levels.Tutorial.L05add_zero msgid "" "## Summary\n" "\n" @@ -395,11 +579,23 @@ msgid "" "into the goal\n" "§4." msgstr "" +"## 結論\n" +"\n" +"§0はタクティク§1を繰り返し適用し、目標を処理します。このタクティクを使用する必要はありませんが、時々処理速度を向上させることがあります。\n" +"\n" +"## 例\n" +"\n" +"§2を使用すると、目標§3は§4に変更されます。" #: Game.Levels.Addition msgid "Addition World" msgstr "" +" Addition World\n" +"\n" +"## 日本語翻訳\n" +"ワールド::加算" +#: Game.Levels.Implication.L01exact #. §0: `P` #. §1: `exact h` #. §2: `h` @@ -424,7 +620,6 @@ msgstr "" #. §21: `x = x` #. §22: `rw` #. §23: `add_zero` -#: Game.Levels.Implication.L01exact msgid "" "## Summary\n" "\n" @@ -451,19 +646,39 @@ msgid "" "and §20 will both change the goal to §21,\n" "because §22 guesses the input to the function §23." msgstr "" +"## 結論\n" +"\n" +"もし目標が §0 の文である場合、§2 が §3 の証明であれば、目標は §1 で閉じます。\n" +"\n" +"### 例\n" +"\n" +"もし目標が §4 で、仮定 §5 がある場合、§6 は目標を解決します。\n" +"\n" +"### 例\n" +"\n" +"もし目標が §7 である場合、§8 は目標を閉じます。\n" +"\n" +"### 必ず正確に\n" +"\n" +"注意してほしいのは、前の例では §9 は *機能しません*;\n" +"§10 が機能するためには、§11 は目標の *正確な* 証明である必要があります。\n" +"§12 は目標の §13 の証明であるか、あるいは §14 の証明で、§15 はユーザーによって提供される必要があります。\n" +"これは §16 と §17 とは異なり、必要に応じてこれらの関数は *入力の推測* を行います。もし目標が §18 である場合、§19 と §20 " +"は両方とも目標を §21 に変更します。\n" +"これは §22 が関数 §23 の入力を推測するからです。" +#: Game.Levels.Implication.L07intro2 #. §0: `apply succ_inj at h` #. §1: `succ` -#: Game.Levels.Implication.L07intro2 msgid "Now §0 to cancel the §1s." -msgstr "" +msgstr "現在、§0を用いて§1sをキャンセルします。" +#: Game.Levels.Addition #. §0: `induction` #. §1: `x + y = y + x` #. §2: `rw` #. §3: `rfl` #. §4: `induction` -#: Game.Levels.Addition msgid "" "Welcome to Addition World! In this world we'll learn the §0 tactic.\n" "This will enable us to defeat the boss level of this world, namely §1.\n" @@ -478,7 +693,33 @@ msgid "" "want to explore the game further (for example if you decide to 100%\n" "the game)." msgstr "" +"### 原文 (English)\n" +"Welcome to Addition World! In this world we'll learn the §0 tactic.\n" +"This will enable us to defeat the boss level of this world, namely §1.\n" +"\n" +"The tactics §2, §3 and §4 are the only tactics you'll need to\n" +"beat all the levels in Addition World, Multiplication World, and Power " +"World.\n" +"Power World contains the final boss of the game.\n" +"\n" +"There are plenty more tactics in this game, but you'll only need to know " +"them if you\n" +"want to explore the game further (for example if you decide to 100%\n" +"the game).\n" +"\n" +"\n" +"### 翻訳 (Japanese)\n" +" Additionワールドへようこそ!このワールドでは§0 タクティクを学びます。\n" +"これにより、このワールドのボスレベルを攻略することができます、すなわち§1です。\n" +"\n" +"§2, §3, §4 のタクティクのみが必要で、これらを用いて\n" +"加算ワールド、乗算ワールド、乗方ワールドのすべてのレベルを攻略することができます。\n" +"乗方ワールドにはゲームの最終ボスが含まれています。\n" +"\n" +"このゲームにはもっと多くのタクティクがありますが、それらを知る必要はなく、\n" +"ゲームをさらに探索したい場合(例えば、ゲームを100%攻略したい場合)にのみ必要となります。" +#: Game.Levels.Algorithm.L02add_algo1 #. §0: `(a + a + 1) + (b + b + 1) = (a + b + 1) + (a + b + 1)` #. §1: `(a + b) + (c + d) = ((a + c) + d) + b` #. §2: `a+b+c+d` @@ -488,7 +729,6 @@ msgstr "" #. §6: `b` #. §7: `d` #. §8: `add_left_comm` -#: Game.Levels.Algorithm.L02add_algo1 msgid "" "In some later worlds, we're going to see some much nastier levels,\n" "like §0.\n" @@ -501,11 +741,36 @@ msgid "" "and then swap §6 and §7. But this is easier than you\n" "think with §8." msgstr "" +"### 原文 (English)\n" +"In some later worlds, we're going to see some much nastier levels,\n" +"like §0.\n" +"Brackets need to be moved around, and variables need to be swapped.\n" +"\n" +"In this level, §1,\n" +"let's forget about the brackets and just think about\n" +"the variable order.\n" +"To turn §2 into §3 we need to swap §4 and §5,\n" +"and then swap §6 and §7. But this is easier than you\n" +"think with §8.\n" +"\n" +"\n" +"### 翻訳 (Japanese)\n" +"いくつかの後続のワールドでは、§0のようなもっとひどいレベルを見ることになります。\n" +"括弧は移動させ、変数は入れ替える必要があります。\n" +"\n" +"このレベルでは、§1、括弧は無視して変数の順序だけを考えましょう。\n" +"§2を§3に変更するには、§4と§5を、そして§6と§7を入れ替える必要があります。しかし、§8を使うと意外と簡単にできます。" #: Game.Levels.Algorithm.L01add_left_comm msgid "add_left_comm" msgstr "" +"add_left_comm\n" +"\n" +"\n" +"## 日本語翻訳\n" +"左側交換律(add_left_comm)" +#: Game.Levels.Implication.L10one_ne_zero #. §0: `symm` #. §1: `X = Y` #. §2: `Y = X` @@ -518,7 +783,6 @@ msgstr "" #. §9: `symm at h` #. §10: `h` #. §11: `5 ≠ 2 + 2` -#: Game.Levels.Implication.L10one_ne_zero msgid "" "## Summary\n" "\n" @@ -534,30 +798,45 @@ msgid "" "\n" "If §8 then §9 will change §10 to §11." msgstr "" +"## 結論\n" +"\n" +"タクティク §0 は、目標や仮定が §1 の形式の場合を §2 に変更します。また、§3 や §4 も対象となります。\n" +"\n" +"### 例\n" +"\n" +"もし目標が §5 の場合、§6 はそれを §7 に変更します。\n" +"\n" +"### 例\n" +"\n" +"もし §8 の場合、§9 は §10 を §11 に変更します。" +#: Game.Levels.Multiplication.L07mul_add #. §0: $a$ #. §1: $b$ #. §2: $c$ #. §3: $a(b + c) = ab + ac$ -#: Game.Levels.Multiplication.L07mul_add msgid "" "Multiplication is distributive over addition on the left.\n" "In other words, for all natural numbers §0, §1 and §2, we have\n" "§3." msgstr "" +"乗算は左側で加算に対して分配律を満たします。\n" +"つまり、すべての自然数 §0, §1, §2 に対して、以下の関係が成り立ちます。\n" +"§3." -#. §0: `apply` #: Game.Levels.Implication.L03apply +#. §0: `apply` msgid "The §0 tactic." -msgstr "" +msgstr "The タクティク tactic." -#. §0: `exact h1` #: Game.Levels.Implication.L01exact +#. §0: `exact h1` msgid "" -"The goal in this level is one of our hypotheses. Solve the goal by executing " -"§0." -msgstr "" +"The goal in this level is one of our hypotheses. Solve the goal by " +"executing §0." +msgstr "このレベルの目標は、私たちの仮定の一つです。目標を達成するには、§0 を実行してください。" +#: Game.Levels.AdvAddition.L05add_right_eq_zero #. §0: `≤` #. §1: `a + b = 0` #. §2: `a = 0` @@ -574,7 +853,6 @@ msgstr "" #. §13: `h : False` #. §14: `cases h` #. §15: `False` -#: Game.Levels.AdvAddition.L05add_right_eq_zero msgid "" "The next result we'll need in §0 World is that if §1 then §2 and §3.\n" "Let's prove one of these facts in this level, and the other in the next.\n" @@ -598,21 +876,59 @@ msgid "" "make a proof of §15! So you will end up with no goals, meaning you have " "proved everything." msgstr "" +"### 原文 (English)\n" +"The next result we'll need in §0 World is that if §1 then §2 and §3.\n" +"Let's prove one of these facts in this level, and the other in the next.\n" +"\n" +"## A new tactic: §4\n" +"\n" +"The §5 tactic will split an object or hypothesis up into the possible ways\n" +"that it could have been created.\n" +"\n" +"For example, sometimes you want to deal with the two cases §6 and §7 " +"separately,\n" +"but don't need the inductive hypothesis §8 that comes with §9.\n" +"In this situation you can use §10 instead. There are two ways to make\n" +"a number: it's either zero or a successor. So you will end up with two " +"goals, one\n" +"with §11 and one with §12.\n" +"\n" +"Another example: if you have a hypothesis §13 then you are done, because a " +"false statement implies\n" +"any statement. Here §14 will close the goal, because there are *no* ways to\n" +"make a proof of §15! So you will end up with no goals, meaning you have " +"proved everything.\n" +"\n" +"\n" +"### 翻訳 (Japanese)\n" +"次に §0 ワールドで必要になる結果は、もし §1 なら §2 と §3 です。\n" +"このレベルで一つの事実を証明し、次のレベルでもう一つの事実を証明しましょう。\n" +"\n" +"## 新しいタクティク: §4\n" +"\n" +"§5 タクティクは、オブジェクトや仮定を生成された可能性のある方法に分割します。\n" +"\n" +"例えば、時々 §6 と §7 の二つのケースを個別に扱いたい場合がありますが、§9 が伴う §8 の帰納的仮定は必要ありません。\n" +"この状況では、§10 を使用することができます。数を作る方法は二つあります:ゼロか後続です。したがって、二つの目標が残ります。一つには §11 " +"があり、もう一つには §12 があります。\n" +"\n" +"別の例:仮定 §13 がある場合、証明は完了します。偽の命題は任意の命題を導くからです。ここでは §14 が目標を閉じます。なぜなら §15 " +"の証明を作る方法は *ありません*!したがって、目標が残らないため、すべてを証明したということになります。" -#. §0: `rfl` #: Game.Levels.Tutorial.L01rfl +#. §0: `rfl` msgid "" "In order to use the tactic §0 you can enter it in the text box\n" "under the goal and hit \"Execute\"." -msgstr "" +msgstr "タクティク §0 を使用するには、目標の下のテキストボックスに入力し、「実行」をクリックしてください。" +#: Game.Levels.LessOrEqual.L07or_symm #. §0: $x=37$ #. §1: $y=42$ #. §2: $y=42$ #. §3: $x=37$ -#: Game.Levels.LessOrEqual.L07or_symm msgid "If §0 or §1, then §2 or §3." -msgstr "" +msgstr "もし§0 または §1 ならば, §2 または §3 です。" #: Game.Levels.Algorithm.L09decide2 msgid "" @@ -620,13 +936,18 @@ msgid "" "will be helpful for you in Even-Odd World (when someone gets around to\n" "implementing it)." msgstr "" +" Congratulations! あなたはAlgorithm Worldを完了しました。これらのアルゴリズムは、Even-Odd " +"Worldが実装されるまで、あなたにとって役立つでしょう。\n" +"\n" +"\n" +"## 日本語翻訳\n" +#: Game.Levels.Tutorial.L08twoaddtwo #. §0: `h : X = Y` #. §1: `rw [h]` #. §2: `X` #. §3: `Y` #. §4: `nth_rewrite 3 [h]` -#: Game.Levels.Tutorial.L08twoaddtwo msgid "" "Good luck!\n" "\n" @@ -634,10 +955,14 @@ msgid "" " If you only want to change one of them, say the 3rd one, then use\n" " §4." msgstr "" +"Good luck!\n" +"\n" +"最後のヒント。もし§0であれば、§1はすべての§2を§3に変換します。\n" +"一方で、一つだけ変換したい場合(例えば3番目のもの)、§4を使用します。" +#: Game.Levels.Addition.L04add_assoc #. §0: `add_assoc` #. §1: `add_comm` -#: Game.Levels.Addition.L04add_assoc msgid "" "A passing mathematician congratulates you on proving that naturals\n" "are an additive commutative monoid.\n" @@ -645,27 +970,31 @@ msgid "" "Let's practice using §0 and §1 in one more level,\n" "before we leave addition world." msgstr "" +"A 通りすがりの数学者は、自然数が加法的交換半群であることを証明したことに称賛の意を表します。\n" +"\n" +"加法的世界を去る前に、§0 と §1 の使用をもう一回練習しましょう。" #: Game.Levels.Implication.L05succ_inj2 msgid "Arguing backwards" -msgstr "" +msgstr "反論する" #: Game.Levels.AdvMultiplication.L06mul_right_eq_one msgid "mul_right_eq_one" -msgstr "" +msgstr "mul_right_eq_one" +#: Game.Levels.Power.L09add_sq #. §0: `add_sq a b` #. §1: $(a+b)^2=a^2+b^2+2ab.$ -#: Game.Levels.Power.L09add_sq msgid "§0 is the statement that §1" -msgstr "" +msgstr "§0は§1のステートメントです。" +#: Game.Levels.Implication.L08ne #. §0: $x=y$ #. §1: $x \\neq y$ -#: Game.Levels.Implication.L08ne msgid "If §0 and §1 then we can deduce a contradiction." -msgstr "" +msgstr "もし§0 と §1 ならば、矛盾を導き出すことができます。" +#: Game.Levels.Tutorial.L05add_zero #. §0: `2 + 2 = 4` #. §1: $37$ #. §2: $x$ @@ -688,7 +1017,6 @@ msgstr "" #. §19: `? + 0 = ?` #. §20: `add_zero x : x + 0 = x` #. §21: `proof : statement` -#: Game.Levels.Tutorial.L05add_zero msgid "" "We'd like to prove §0 but right now\n" "we can't even *state* it\n" @@ -713,31 +1041,110 @@ msgid "" "\n" "We write §20, so §21." msgstr "" +"### 原文 (English)\n" +"We'd like to prove §0 but right now\n" +"we can't even *state* it\n" +"because we haven't yet defined addition.\n" +"\n" +"## Defining addition.\n" +"\n" +"How are we going to add §1 to an arbitrary number §2? Well,\n" +"there are only two ways to make numbers in this game: §3\n" +"and successors. So to define §4 we will need\n" +"to know what §5 is and what §6 is.\n" +"Let's start with adding §7.\n" +"\n" +"### Adding 0\n" +"\n" +"To make addition agree with our intuition, we should *define* §8\n" +"to be §9. More generally, we should define §10 to be §11 for\n" +"any number §12. The name of this proof in Lean is §13.\n" +"For example §14 is a proof of §15,\n" +"§16 is a proof of §17, and §18 is a proof\n" +"of §19.\n" +"\n" +"We write §20, so §21.\n" +"\n" +"\n" +"### 翻訳 (Japanese)\n" +"私たちは§0を証明したいですが、現在ではすら\n" +"その定理を述べることができません。\n" +"なぜなら、加法をまだ定義していないからです。\n" +"\n" +"## 加法の定義\n" +"\n" +"任意の数§2に§1を加える方法はどのようなものでしょうか?\n" +"このゲームでは数を生成する方法は2つしかありません:§3\n" +"と後続数。したがって、§4を定義するには\n" +"§5と§6がどのようなものかを知る必要があります。\n" +"まずは§7を加えることにしましょう。\n" +"\n" +"### 0を加える\n" +"\n" +"加法が直感に合致するようにするためには、§8を\n" +"§9とするべきです。より一般的には、任意の数§12に対して\n" +"§10を§11とするべきです。Leanでのこの証明の名前は§13です。\n" +"例えば、§14は§15の証明、§16は§17の証明、§18は§19の証明です。\n" +"\n" +"私たちは§20と書きます、つまり§21です。" -#. §0: `t = 0` #: Game.Levels.AdvMultiplication.L01mul_le_mul_right +#. §0: `t = 0` msgid "Let's warm up with an easy one, which works even if §0." msgstr "" +"## 簡単な例題(§0 に関わらず動作します)\n" +"\n" +"```lean\n" +"example : Prop := true\n" +"```\n" +"\n" +"```lean\n" +"-- 例題: 命題です\n" +"example : Prop := true\n" +"```\n" +"\n" +"```lean\n" +"-- 仮定\n" +"variable (p : Prop)\n" +"\n" +"-- 証明\n" +"example : p → p := assume hp : p, hp\n" +"```\n" +"\n" +"```lean\n" +"-- タクティクを使用した証明\n" +"example : p → p := by\n" +" intro hp\n" +" exact hp\n" +"```" -#. §0: $x+1=y+1\\implies x=y$ #: Game.Levels.Implication.L07intro2 +#. §0: $x+1=y+1\\implies x=y$ msgid "" "Let's see if you can use the tactics we've learnt to prove §0.\n" -"Try this one by yourself; if you need help then click on \"Show more help!\"." +"Try this one by yourself; if you need help then click on \"Show more " +"help!\"." msgstr "" +"Let's see if you can use the tactics we've learnt to prove §0.\n" +"Try this one by yourself; if you need help then click on \"Show more " +"help!\".\n" +"\n" +"## 翻訳\n" +"タクティクを用いて§0を証明できるかどうか試してみてください。\n" +"自分で試してみてください;手助けが必要であれば「詳細な手助けを表示!」をクリックしてください。" -#. §0: `apply zero_ne_succ at h` #: Game.Levels.Implication.L09zero_ne_succ #: Game.Levels.AdvMultiplication.L06mul_right_eq_one +#. §0: `apply zero_ne_succ at h` msgid "Now you can §0." -msgstr "" +msgstr "現在、§0 です。" +#: Game.Levels.Implication.L03apply #. §0: `h2` #. §1: `x = 37` #. §2: `y = 42` #. §3: `apply` #. §4: `apply` -#: Game.Levels.Implication.L03apply msgid "" "In this level, the hypothesis §0 is an *implication*. It says\n" "that *if* §1 *then* §2. We can use this\n" @@ -745,7 +1152,10 @@ msgid "" "§4 or any other tactic on the right to see a detailed explanation\n" "of what it does, with examples." msgstr "" +"このレベルでは、仮定§0は「 implication( implication)」です。これは「§1 ならば §2」という意味です。この仮定は§3 " +"tacticを使用して利用できます。右側の任意のtactic(例:§4)をクリックすることで、その詳細な説明と例を見ることができます。" +#: Game.Levels.Tutorial.L01rfl #. §0: $37$ #. §1: $x$ #. §2: $q$ @@ -758,14 +1168,13 @@ msgstr "" #. §9: $X = X$ #. §10: $37x+q=37x+q$ #. §11: `rfl` -#: Game.Levels.Tutorial.L01rfl msgid "" "# Read this first\n" "\n" "Each level in this game involves proving a mathematical theorem (the " "\"Goal\").\n" -"The goal will be a statement about *numbers*. Some numbers in this game have " -"known values.\n" +"The goal will be a statement about *numbers*. Some numbers in this game " +"have known values.\n" "Those numbers have names like §0. Other numbers will be secret. They're " "called things\n" "like §1 and §2. We know §3 is a number, we just don't know which one.\n" @@ -779,38 +1188,63 @@ msgid "" "\n" "Prove that §10 by executing the §11 tactic." msgstr "" +"# まずはこちらを読む\n" +"\n" +"このゲームの各レベルでは、数学的定理(「目標」)を証明します。\n" +"目標は数に関する主張です。このゲームには既知の値を持つ数がいくつかあります。\n" +"その数には§0のような名前がついています。他の数は秘密です。§1や§2のような名前で呼ばれます。§3" +"は数であることは分かっていますが、具体的にはどの数かは分かりません。\n" +"\n" +"この最初のレベルでは、§4という定理を証明します。\n" +"下の*Objects*に§5が表示されているので、§6と§7は数であることが分かります。\n" +"\n" +"Leanで目標を解決するには*tactics*を使用します。最初に学ぶtacticは§8で、これは§9のような形式の定理を証明します。\n" +"\n" +"§10を証明するために§11 tacticを実行してください。" +#: Game.Levels.Implication.L02exact2 #. §0: ``` #. repeat rw [zero_add] at h #. exact h #. ``` -#: Game.Levels.Implication.L02exact2 msgid "" "Here's a two-line proof:\n" "§0" msgstr "" +"以下は二行の証明です:\n" +"§0\n" +"\n" +"\n" +"## 日本語翻訳\n" +"```html\n" +"

以下は二行の証明です:

\n" +"<§0>\n" +"```" +#: Game.Levels.Addition.L01zero_add #. §0: `zero_add x` #. §1: `0 + x = x` #. §2: `zero_add` #. §3: `simp` #. §4: `0 + x` #. §5: `x` -#: Game.Levels.Addition.L01zero_add msgid "" "§0 is the proof of §1.\n" "\n" "§2 is a §3 lemma, because replacing §4 by §5\n" "is almost always what you want to do if you're simplifying an expression." msgstr "" +"§0は§1の証明です。\n" +"\n" +"§2は§3補題であり、§4を§5に置き換えることは、表現を簡略化する際にほとんどが望ましい操作です。" +#: Game.Levels.Implication.L04succ_inj #. §0: `a` #. §1: `b` #. §2: `succ_inj a b` #. §3: `succ a = succ b` #. §4: `a = b` #. §5: $x+1=4 \\implies x=3$ -#: Game.Levels.Implication.L04succ_inj msgid "" "If §0 and §1 are numbers, then §2 is a proof\n" "that §3 implies §4. Click on this theorem in the *Peano*\n" @@ -822,35 +1256,59 @@ msgid "" "by manipulating our hypothesis until it becomes the goal. I will\n" "walk you through this level." msgstr "" +"もし§0と§1が数値である場合、§2は§3が§4を導く証明です。*Peano*タブでこの定理について詳しく知ることができます。\n" +"\n" +"Peanoはこの定理を公理としていましたが、Algorithm " +"WorldではLeanを使ってこの定理を証明する方法を示すことにします。現在はこの定理を仮定し、§5" +"を用いて証明しましょう。また、証明は仮定を操作して目標に近づけることで進めていきます。このレベルを一緒に進めていきましょう。" +#: Game.Levels.Implication.L09zero_ne_succ #. §0: `2 + 2 ≠ 5` #. §1: `0 ≠ 1` #. §2: `zero_ne_succ n` #. §3: `0 ≠ succ n` -#: Game.Levels.Implication.L09zero_ne_succ msgid "" "As warm-up for §0 let's prove §1. To do this we need to\n" "introduce Peano's last axiom §2, a proof that §3.\n" "To learn about this result, click on it in the list of lemmas on the right." msgstr "" +"### 原文 (English)\n" +"As warm-up for §0 let's prove §1. To do this we need to\n" +"introduce Peano's last axiom §2, a proof that §3.\n" +"To learn about this result, click on it in the list of lemmas on the right.\n" +"\n" +"\n" +"## 日本語翻訳\n" +"§0 の前準備として、§1 を証明しましょう。これを行うために、ペアノの最後の公理 §2 を導入し、§3 " +"の証明が必要です。この結果について学ぶには、右側の定理一覧から該当項目をクリックしてください。" +#: Game.Levels.Implication.L01exact #. §0: $x+y=37$ #. §1: $3x+z=42$ #. §2: $x+y=37$ -#: Game.Levels.Implication.L01exact msgid "Assuming §0 and §1, we have §2." -msgstr "" +msgstr "仮定§0と§1を仮定すると、§2が得られます。" +#: Game.Levels.Addition.L03add_comm #. §0: `a` #. §1: `b` #. §2: $a + b = b + a$ -#: Game.Levels.Addition.L03add_comm msgid "" "On the set of natural numbers, addition is commutative.\n" "In other words, if §0 and §1 are arbitrary natural numbers, then\n" "§2." msgstr "" +"自然数の集合において、加算は交換律を満たします。\n" +"つまり、任意の自然数 §0 と §1 に対して、\n" +"§2.\n" +"\n" +"\n" +"## 参考訳\n" +"自然数の集合において、加算は交換律を満たします。\n" +"つまり、任意の自然数 §0 と §1 に対して、\n" +"§2." +#: Game.Levels.AdvMultiplication.L09mul_left_cancel #. §0: `a * b = a * c` #. §1: `a ≠ 0` #. §2: `b = c` @@ -863,7 +1321,6 @@ msgstr "" #. §9: `a * b = a * c` #. §10: `b = c` #. §11: `c` -#: Game.Levels.AdvMultiplication.L09mul_left_cancel msgid "" "In this level we prove that if §0 and §1 then §2. It is tricky, for\n" "several reasons. One of these is that\n" @@ -874,42 +1331,69 @@ msgid "" "the hypothesis is §4 but what we know is §5,\n" "so the induction hypothesis does not apply!\n" "\n" -"Assume §6 is fixed. The actual statement we want to prove by induction on §7 " -"is\n" +"Assume §6 is fixed. The actual statement we want to prove by induction on " +"§7 is\n" "\"for all §8, if §9 then §10\". This *can* be proved by induction,\n" "because we now have the flexibility to change §11." msgstr "" +"### 原文 (English)\n" +"In this level we prove that if §0 and §1 then §2. It is tricky, for\n" +"several reasons. One of these is that\n" +"we need to introduce a new idea: we will need to understand the concept of\n" +"mathematical induction a little better.\n" +"\n" +"Starting with §3 is too naive, because in the inductive step\n" +"the hypothesis is §4 but what we know is §5,\n" +"so the induction hypothesis does not apply!\n" +"\n" +"Assume §6 is fixed. The actual statement we want to prove by induction on " +"§7 is\n" +"\"for all §8, if §9 then §10\". This *can* be proved by induction,\n" +"because we now have the flexibility to change §11.\n" +"\n" +"\n" +"### 翻訳 (Japanese)\n" +"このレベルでは、§0 と §1 が成り立つ場合、§2 が成り立つことを証明します。これは複雑な理由で、\n" +"いくつかの理由からです。その一つは、新しいアイデアを導入する必要があるためです:\n" +"数学的帰納法の概念をもう少し理解する必要があります。\n" +"\n" +"§3 から始めることは単純すぎるため、帰納的ステップでは仮定は §4 ですが、実際に知っていることは §5 であり、\n" +"従って帰納仮定が適用されません!\n" +"\n" +"§6 を固定します。実際には、§7 による帰納法で証明したい主張は\n" +"「全ての §8 について、§9 が成り立つ場合、§10 が成り立つ」です。これは *可能* に帰納法で証明できます。\n" +"なぜなら、今では §11 を変更できる柔軟性があるからです。" +#: Game.Levels.AdvMultiplication.L08mul_eq_zero #. §0: `h2` #. §1: `tauto` -#: Game.Levels.AdvMultiplication.L08mul_eq_zero msgid "" "Now the goal can be deduced from §0 by pure logic, so use the §1\n" "tactic." -msgstr "" +msgstr "現在の目標は、§0 から純粋な論理で導き出せますので、§1 のタクティクを使用します。" -#. §0: `rfl` #: Game.Levels.Tutorial.L02rw +#. §0: `rfl` msgid "Now §0 will work." -msgstr "" +msgstr "現在、§0 が動作するようになります。" +#: Game.Levels.LessOrEqual.L05le_zero #. §0: `le_zero x` #. §1: `x ≤ 0 → x = 0` -#: Game.Levels.LessOrEqual.L05le_zero msgid "§0 is a proof of the implication §1." -msgstr "" +msgstr "§0 は §1 から導かれる命題の証明です。" #: Game.Levels.Implication.L11two_add_two_ne_five msgid "2 + 2 ≠ 5" -msgstr "" +msgstr "2 + 2 ≠ 5" +#: Game.Levels.Tutorial.L03two_eq_ss0 #. §0: `ℕ` #. §1: `0 : ℕ` #. §2: `succ (n : ℕ) : ℕ` #. §3: `MyNat` #. §4: `ℕ` #. §5: `Nat` -#: Game.Levels.Tutorial.L03two_eq_ss0 msgid "" "§0 is the natural numbers, just called \\\\\"numbers\\\\\" in this game. " "It's\n" @@ -925,29 +1409,62 @@ msgid "" "It is distinct from the Lean natural numbers §5, which should hopefully\n" "never leak into the natural number game.*" msgstr "" +"### 原文 (English)\n" +"§0 is the natural numbers, just called \\\\\"numbers\\\\\" in this game. " +"It's\n" +"defined via two rules:\n" +"\n" +"* §1 (zero is a number)\n" +"* §2 (the successor of a number is a number)\n" +"\n" +"## Game Implementation\n" +"\n" +"*The game uses its own copy of the natural numbers, called §3 with notation " +"§4.\n" +"It is distinct from the Lean natural numbers §5, which should hopefully\n" +"never leak into the natural number game.*\n" +"\n" +"\n" +"### 翻訳 (Japanese)\n" +"§0は自然数で、このゲームでは単に「数」呼ばれる。これは以下の2つのルールにより定義される:\n" +"\n" +"* §1(ゼロは数)\n" +"* §2(数の後続も数)\n" +"\n" +"## ゲーム実装\n" +"\n" +"* " +"このゲームは、自身の自然数のコピーを使用し、その自然数は「§3」として呼び、記号は「§4」で表される。これはLeanの自然数「§5" +"」とは異なるもので、希望するとおり自然数ゲームには流入することはない。" +#: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero #. §0: `a ≠ 0` #. §1: `tauto` -#: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero msgid "" -"Multiplication usually makes a number bigger, but multiplication by zero can " -"make\n" +"Multiplication usually makes a number bigger, but multiplication by zero " +"can make\n" "it smaller. Thus many lemmas about inequalities and multiplication need the\n" "hypothesis §0. Here is a key lemma that enables us to use this hypothesis.\n" "To help us with the proof, we can use the §1 tactic. Click on the tactic's " "name\n" "on the right to see what it does." msgstr "" +"乗算は通常、数値を大きくしますが、ゼロによる乗算はその数値を小さくすることがあります。そのため、不等式や乗算に関する多くの補題では、§0 " +"の仮定が必要です。この仮定を使用するための重要な補題があります。証明の助けとなるために、§1 " +"のタクティクを使用できます。タクティクの名前を右側でクリックすると、その機能が表示されます。" +#: Game.Levels.LessOrEqual.L04le_trans #. §0: `cases` #. §1: `hxy` -#: Game.Levels.LessOrEqual.L04le_trans msgid "" "In this level, we see inequalities as *hypotheses*. We have not seen this " "before.\n" "The §0 tactic can be used to take §1 apart." msgstr "" +"このレベルでは、不等式が仮定(*hypothesis*)として扱われます。これまでに見られなかった手法です。\n" +"§0 タクティクは、§1 を分解するのに使用できます。" +#: Game.Levels.Algorithm.L07succ_ne_succ #. §0: `a` #. §1: `b` #. §2: `a = b` @@ -974,7 +1491,6 @@ msgstr "" #. §23: `rfl` #. §24: `a ≠ b` #. §25: `succ a ≠ succ b` -#: Game.Levels.Algorithm.L07succ_ne_succ msgid "" "Here we begin to\n" "develop an algorithm which, given two naturals §0 and §1, returns the " @@ -997,11 +1513,47 @@ msgid "" "§21 is §22 and then §23. This level is a proof of the one\n" "remaining job we have to do: if §24 then §25." msgstr "" +"### 原文 (English)\n" +"Here we begin to\n" +"develop an algorithm which, given two naturals §0 and §1, returns the " +"answer\n" +"to \"does §2?\"\n" +"\n" +"Here is the algorithm. First note that §3 and §4 are numbers, and hence\n" +"are either §5 or successors.\n" +"\n" +"*) If §6 and §7 are both §8, return \"yes\".\n" +"\n" +"*) If one is §9 and the other is §10, return \"no\".\n" +"\n" +"*) If §11 and §12, then return the answer to \"does §13?\"\n" +"\n" +"Our job now is to *prove* that this algorithm always gives the correct " +"answer. The proof that\n" +"§14 is §15. The proof that §16 is §17, and the proof\n" +"that §18 is §19. The proof that if §20 then\n" +"§21 is §22 and then §23. This level is a proof of the one\n" +"remaining job we have to do: if §24 then §25.\n" +"\n" +"\n" +"### 翻訳 (Japanese)\n" +"ここでは、与えられた二つの自然数 §0 と §1 に対して、\"§2?\" という質問の答えを返すアルゴリズムを開発します。\n" +"\n" +"このアルゴリズムは以下のようになっています。まず、§3 と §4 は数であり、したがって §5 または §5 の後継者です。\n" +"\n" +"1. §6 と §7 が両方とも §8 の場合、\"yes\" を返す。\n" +"2. 一方が §9 で他方が §10 の場合、\"no\" を返す。\n" +"3. §11 と §12 の場合、\"§13?\" という質問の答えを返す。\n" +"\n" +"現在の仕事は、このアルゴリズムが常に正しい答えを返すことを証明することです。§14 が §15 であることを証明します。§16 が §17 " +"であることを証明します。§18 が §19 であることを証明します。§20 が真である場合、§21 が §22 であり、さらに §23 " +"であることを証明します。このレベルでは、残る一つの仕事であることを証明します:§24 が真である場合、§25 であることを。" #: Game.Levels.LessOrEqual.L06le_antisymm msgid "x ≤ y and y ≤ x implies x = y" -msgstr "" +msgstr "x ≤ y と y ≤ x は x = y を意味します。" +#: Game.Levels.LessOrEqual.L07or_symm #. §0: `left` #. §1: `P ∨ Q` #. §2: `P` @@ -1009,7 +1561,6 @@ msgstr "" #. §4: `P` #. §5: `apply` #. §6: $P \\implies P \\lor Q.$ -#: Game.Levels.LessOrEqual.L07or_symm msgid "" "# Summary\n" "The §0 tactic changes a goal of §1 into a goal of §2.\n" @@ -1022,42 +1573,57 @@ msgid "" "Note that this tactic can turn a solvable goal into an unsolvable\n" "one." msgstr "" +"### 翻訳\n" +"# まとめ\n" +"§0 タクティクは、目標 §1 を §2 に変更します。\n" +"仮定が §3 が真である理由は実際には §4 が真であるからである場合に使用します。\n" +"\n" +"内部的には、このタクティクは §6 という定理を §5 し、\n" +"§6\n" +"\n" +"注意していただきたいのは、このタクティクが解決可能な目標を解決不能な目標に変更する可能性があることです。" #: Game.Levels.Multiplication msgid "Multiplication World" -msgstr "" +msgstr "乗算ワールド" +#: Game.Levels.LessOrEqual.L10le_one #. §0: `le_zero` #. §1: `x ≤ 0` #. §2: `x = 0` #. §3: `x ≤ 1` #. §4: `x = 0` #. §5: `x = 1` -#: Game.Levels.LessOrEqual.L10le_one msgid "" "We've seen §0, the proof that if §1 then §2.\n" "Now we'll prove that if §3 then §4 or §5." msgstr "" +"We've seen §0, 仮定§1 から §2 が成り立つことを証明した。\n" +"次に、仮定§3 から §4 または §5 が成り立つことを証明する。" -#. §0: $\\mathbb{N}$ #: Game +#. §0: $\\mathbb{N}$ msgid "" "In this game you recreate the natural numbers §0 from the Peano axioms,\n" "learning the basics about theorem proving in Lean.\n" "\n" "This is a good first introduction to Lean!" msgstr "" +"このゲームでは、ペanoの公理から自然数§0を再構築し、Leanでの定理証明の基本を学びます。\n" +"\n" +"これはLeanへの良い初歩的な入門となります!" -#. §0: $x+1=4$ -#. §1: $x=3$ #: Game.Levels.Implication.L04succ_inj Game.Levels.Implication.L05succ_inj2 #: Game.Levels.Algorithm.L05pred Game.Levels.Algorithm.L07succ_ne_succ #: Game.Levels.AdvAddition.L05add_right_eq_zero #: Game.Levels.AdvAddition.L06add_left_eq_zero #: Game.Levels.LessOrEqual.L09succ_le_succ +#. §0: $x+1=4$ +#. §1: $x=3$ msgid "If §0 then §1." -msgstr "" +msgstr "もし§0 then §1。" +#: Game.Levels.Addition.L04add_assoc #. §0: $x+y+z$ #. §1: $(x+y)+z$ #. §2: $x+(y+z)$ @@ -1065,7 +1631,6 @@ msgstr "" #. §4: $(x+y)+z$ #. §5: $(x+y)+z$ #. §6: $x+(y+z)$ -#: Game.Levels.Addition.L04add_assoc msgid "" "We've been adding up two numbers; in this level we will add up three.\n" "\n" @@ -1076,7 +1641,27 @@ msgid "" "\n" " That's true, but we didn't prove it yet. Let's prove it now by induction." msgstr "" +"### 原文 (English)\n" +"We've been adding up two numbers; in this level we will add up three.\n" +"\n" +" What does §0 *mean*? It could either mean §1, or it\n" +" could mean §2. In Lean, §3 means §4.\n" +"\n" +" But why do we care which one it means; §5 and §6 are *equal*!\n" +"\n" +" That's true, but we didn't prove it yet. Let's prove it now by induction.\n" +"\n" +"\n" +"### 翻訳 (Japanese)\n" +"二つの数を足し合わせてきました;このレベルでは三つの数を足し合わせます。\n" +"\n" +" §0は何を意味するのでしょうか?それは §1 か §2 のどちらかです。Leanでは、§3 は §4 と意味が同じです。\n" +"\n" +" しかし、どの意味を持つべきかを気にする必要があるのでしょうか;§5 と §6 は *等しい* のです!\n" +"\n" +" その通りですが、まだ証明していません。 inducution で証明しましょう。" +#: Game.Levels.AdvAddition.L04add_right_eq_self #. §0: `add_left_eq_self` #. §1: ``` #. rw [add_comm] @@ -1100,7 +1685,6 @@ msgstr "" #. apply hd at h #. exact h #. ``` -#: Game.Levels.AdvAddition.L04add_right_eq_self msgid "" "Here's a proof using §0:\n" "§1\n" @@ -1112,26 +1696,40 @@ msgid "" "\n" "§4" msgstr "" +"以下は§0を使用した証明です:\n" +"§1\n" +"\n" +"そして、同じアイデアを使用したさらに短い証明は以下の通りです:\n" +"§2\n" +"\n" +"あるいは、§3 について帰納法で証明することができます:\n" +"§4" +#: Game.Levels.LessOrEqual.L05le_zero #. §0: `add_right_eq_zero` #. §1: `symm at` -#: Game.Levels.LessOrEqual.L05le_zero msgid "" "You want to use §0, which you already\n" "proved, but you'll have to start with §1 your hypothesis." -msgstr "" +msgstr "あなたは既に証明した§0を使用したいですが、仮定から始める必要がありますので、§1から始めなければなりません。" +#: Game.Levels.Tutorial.L03two_eq_ss0 #. §0: `1` #. §1: `succ 0` #. §2: `rw [one_eq_succ_zero]` -#: Game.Levels.Tutorial.L03two_eq_ss0 msgid "Next turn §0 into §1 with §2." -msgstr "" +msgstr "次に、§0 を §1 に変更し、§2 を実行します。" #: Game.Levels.Implication.L07intro2 msgid "intro practice" msgstr "" +"## intro practice\n" +"\n" +"\n" +"## 参考訳\n" +"入門練習" +#: Game.Levels.Addition.L01zero_add #. §0: `n : ℕ` #. §1: `n` #. §2: `induction n with d hd` @@ -1145,7 +1743,6 @@ msgstr "" #. §8: `0 + 0 = 0` #. §9: `hd : 0 + d = d` #. §10: `0 + succ d = succ d` -#: Game.Levels.Addition.L01zero_add msgid "" "## Summary\n" "\n" @@ -1169,34 +1766,67 @@ msgid "" "Note that you must prove the first\n" "goal before you can access the second one." msgstr "" +"## 結論\n" +"\n" +"もし§0がオブジェクトであり、目標に§1が含まれている場合、§2は目標を§3による帰納法で証明しようとします。帰納変数は後続ケースで§4" +"であり、帰納仮定は§5です。\n" +"\n" +"### 例:\n" +"もし目標が\n" +"§6\n" +"\n" +"である場合、\n" +"\n" +"§7\n" +"\n" +"は目標を2つの目標に変換します。最初の目標は§8であり、次の目標には仮定§9と目標\n" +"§10\n" +"が含まれます。\n" +"\n" +"注意していただきたいのは、最初の目標を証明する前に、次の目標にアクセスすることはできないということです。" #: Game.Levels.Implication.L09zero_ne_succ msgid "zero_ne_succ" msgstr "" +"zero_ne_succ\n" +"\n" +"\n" +"## 日本語翻訳\n" +"零と成功の命題は異なる(zero_ne_succ)" +#: Game.Levels.Multiplication.L05one_mul #. §0: $1\\times m=m$ #. §1: `succ_mul` -#: Game.Levels.Multiplication.L05one_mul msgid "" "You can prove §0 in at least three ways.\n" "Either by induction, or by using §1, or\n" "by using commutativity. Which do you think is quickest?" msgstr "" +"您は§0を証明する方法として、少なくとも3つの方法があります。\n" +" induksiонで証明するか、§1を使用するか、または交換律を使用するかです。\n" +"どの方法が最も速いかどうか、どのように思われますか?" +#: Game.Levels.Addition.L02succ_add #. §0: `succ a + «{d}»` #. §1: `(succ a) + «{d}»` #. §2: `succ` -#: Game.Levels.Addition.L02succ_add msgid "" "Note that §0 means §1. Put your cursor\n" "on any §2 in the goal or assumptions to see what exactly it's eating." -msgstr "" +msgstr "ノート:§0は§1を意味します。目標や仮定内の任意の§2にカーソルを置くと、それが何を食べているかがわかります。" -#. §0: `cases «{h}» with hx hy` #: Game.Levels.LessOrEqual.L07or_symm +#. §0: `cases «{h}» with hx hy` msgid "We don't know whether to go left or right yet. So start with §0." msgstr "" +"### 原文 (English)\n" +"We don't know whether to go left or right yet. So start with §0.\n" +"\n" +"\n" +"## 日本語翻訳\n" +"まだ左に進むべきか右に進むべきかは分かりません。そのため、§0から始めてみましょう。" +#: Game.Levels.AdvMultiplication.L05le_mul_right #. §0: $2$ #. §1: $2 = 37 × 42.$ #. §2: $2$ @@ -1204,7 +1834,6 @@ msgstr "" #. §4: `mul_left_ne_zero` #. §5: `one_le_of_ne_zero` #. §6: `mul_le_mul_right` -#: Game.Levels.AdvMultiplication.L05le_mul_right msgid "" "One day this game will have a Prime Number World, with a final boss\n" "of proving that §0 is prime.\n" @@ -1215,58 +1844,74 @@ msgid "" "until it becomes the goal, using §4, §5 and\n" "§6." msgstr "" +"One dayこのゲームには素数ワールドが存在し、最終ボスは§0が素数であることを証明することになる。\n" +"これを達成するためには、§1のようなものを排除する必要がある。\n" +"これは、§2の任意の約数が最多§3" +"であることを証明することで行う。その証明はこの補題を使用する。私は考えている証明は、仮定を操作し、最終的に目標になるようにする。これには§4、§5、§6" +"を使用する。" +#: Game.Levels.Algorithm.L06is_zero #. §0: `False` #. §1: `True` #. §2: `is_zero (succ a)` #. §3: `rw [← is_zero_succ a]` -#: Game.Levels.Algorithm.L06is_zero msgid "" "We're going to change that §0 into §1. Start by changing it into\n" "§2 by executing §3." msgstr "" +"We're going to change that §0 into §1. Start by changing it into\n" +"§2 by executing §3.\n" +"\n" +"\n" +"## 日本語翻訳\n" +"§0 を §1 に変更します。まず、§3 を実行して §0 を §2 に変更します。" -#. §0: `contrapose! h` #: Game.Levels.Algorithm.L07succ_ne_succ +#. §0: `contrapose! h` msgid "" "Can you take it from here? (note: if you try §0 again, it will\n" "take you back to where you started!)" -msgstr "" +msgstr "Can you continue from here? (注: §0を再度試すと、元の場所に戻ってしまいます!)" +#: Game.Levels.Power.L05pow_two #. §0: `pow_two a` #. §1: `a ^ 2 = a * a` -#: Game.Levels.Power.L05pow_two msgid "§0 says that §1." -msgstr "" +msgstr "§0 は §1 を言います。" #: Game.Levels.Implication.L04succ_inj msgid "In the next level, we'll do the same proof but backwards." -msgstr "" +msgstr "次のレベルでは、証明を逆方向に進める同じ手続きを行います。" +#: Game.Levels.Multiplication.L08add_mul +#: Game.Levels.LessOrEqual.L09succ_le_succ #. §0: ``` #. rw [mul_comm, mul_add] #. repeat rw [mul_comm c] #. rfl #. ``` -#: Game.Levels.Multiplication.L08add_mul -#: Game.Levels.LessOrEqual.L09succ_le_succ msgid "" "Here's my proof:\n" "§0" msgstr "" +"以下は私の証明です:\n" +"§0\n" +"\n" +"\n" +"## 日本語翻訳\n" -#. §0: `exact` #: Game.Levels.Implication.L03apply +#. §0: `exact` msgid "Now finish using the §0 tactic." -msgstr "" +msgstr "現在、§0 タクティクを使用して完了してください。" +#: Game.Levels.Power #. §0: `37 ^ n` #. §1: `37 ^ 0` #. §2: `37 ^ (succ d)` #. §3: `37 ^ d` #. §4: `pow_zero (a : ℕ) : a ^ 0 = 1` #. §5: `pow_succ (a b : ℕ) : a ^ succ b = a ^ b * a` -#: Game.Levels.Power msgid "" "This world introduces exponentiation. If you want to define §0\n" "then, as always, you will need to know what §1 is, and\n" @@ -1284,59 +1929,103 @@ msgid "" "in the summer of 2019. Thanks to Sian and also thanks to Imperial\n" "College for funding her." msgstr "" +"### 原文 (English)\n" +"This world introduces exponentiation. If you want to define §0\n" +"then, as always, you will need to know what §1 is, and\n" +"what §2 is, given only §3.\n" +"\n" +"You can probably guess the names of the general theorems:\n" +"\n" +" * §4\n" +" * §5\n" +"\n" +"Using only these, can you get past the final boss level?\n" +"\n" +"The levels in this world were designed by Sian Carey, a UROP student\n" +"at Imperial College London, funded by a Mary Lister McCammon Fellowship\n" +"in the summer of 2019. Thanks to Sian and also thanks to Imperial\n" +"College for funding her.\n" +"\n" +"\n" +"### 翻訳 (Japanese)\n" +"この世界では指数演算が導入されます。§0を定義するには、常に §1 と §2 が何であるかを知る必要があります。そして、それらを §3 " +"だけを使って推測する必要があります。\n" +"\n" +"一般的な定理の名前はおそらく予想できるでしょう:\n" +"\n" +" * §4\n" +" * §5\n" +"\n" +"これらのものだけを使って最終ボスレベルを突破できるでしょうか?\n" +"\n" +"この世界のレベルは、2019" +"年夏にマリー・リスト・マッカモン助成金によりインペリアルコロッゲン・ロンドン大学のUROP学生であるシアン・ケアリーによって設計されました。シアンに感謝" +"します。また、インペリアルコロッゲンの助成にも感謝します。" +#: Game.Levels.Implication.L04succ_inj #. §0: `h` #. §1: `succ x = succ 3` #. §2: `succ_inj` #. §3: `rw [four_eq_succ_three] at h` -#: Game.Levels.Implication.L04succ_inj msgid "" "Let's first get §0 into the form §1 so we can\n" "apply §2. First execute §3\n" "to change the 4 on the right hand side." msgstr "" +"Let's first get §0 into the form §1 so we can\n" +"apply §2. First execute §3\n" +"to change the 4 on the right hand side.\n" +"\n" +"\n" +"## 翻訳\n" +"§0 を §1 の形式に変更してから、§2 を適用することができます。まず、§3 を実行して右辺の 4 を変更します。" +#: Game.Levels.Tutorial.L04rw_backwards Game.Levels.Tutorial.L05add_zero #. §0: `rw [← two_eq_succ_one]` #. §1: `succ 1` #. §2: `2` -#: Game.Levels.Tutorial.L04rw_backwards Game.Levels.Tutorial.L05add_zero msgid "Now §0 will change §1 into §2." -msgstr "" +msgstr "現在、§0は§1を§2に変換します。" +#: Game.Levels.Implication.L07intro2 #. §0: ``` #. intro h #. apply succ_inj #. repeat rw [succ_eq_add_one] #. exact h #. ``` -#: Game.Levels.Implication.L07intro2 msgid "" "Here's a completely backwards proof:\n" "§0" msgstr "" +"以下は完全に逆順の証明です:\n" +"§0\n" +"\n" +"\n" +"## 日本語翻訳\n" #: Game.Levels.LessOrEqual.L05le_zero msgid "x ≤ 0 → x = 0" -msgstr "" +msgstr "x ≤ 0 → x = 0" #: Game.Levels.AdvAddition msgid "Advanced Addition World" -msgstr "" +msgstr "高度な追加ワールド" +#: Game.Levels.Tutorial.L01rfl #. §0: $x$ #. §1: $q$ #. §2: $37x+q=37x+q.$ -#: Game.Levels.Tutorial.L01rfl msgid "If §0 and §1 are arbitrary natural numbers, then §2" -msgstr "" +msgstr "任意の自然数§0と§1が与えられた場合、§2" -#. §0: `left` #: Game.Levels.LessOrEqual.L07or_symm +#. §0: `left` msgid "This time, use the §0 tactic." -msgstr "" +msgstr "この回は、§0 タクティクを使用します。" -#. §0: $(a+b)^2=a^2+b^2$ #: Game.Levels.Power.L09add_sq +#. §0: $(a+b)^2=a^2+b^2$ msgid "" "It's all over! You have proved a theorem which has tripped up\n" "schoolkids for generations (some of them think §0:\n" @@ -1347,69 +2036,86 @@ msgid "" "But wait! This boss is stirring...and mutating into a second more powerful " "form!" msgstr "" +"すべて終了しました!命題を証明し、世紀にわたる学校の問題を解決しました(一部の人は§0: 「若者の夢」と思っているかもしれません)。\n" +"\n" +"あなたはいくつの書き換えを行いましたか?私は12回でできます。\n" +"\n" +"でも待ってください!このボスが動き始め、さらに強力な形に変異しています!" +#: Game.Levels.Multiplication.L08add_mul #. §0: $a$ #. §1: $b$ #. §2: $c$ #. §3: $(a + b) \\times c = ac + bc$ -#: Game.Levels.Multiplication.L08add_mul msgid "" "Addition is distributive over multiplication.\n" "In other words, for all natural numbers §0, §1 and §2, we have\n" "§3." msgstr "" +"加法は乗法に対して分配法則を満たします。\n" +"つまり、すべての自然数 §0, §1, §2 に対して\n" +"§3.\n" +"\n" +"\n" +"## 参考訳\n" +"加法は乗法に対して分配法則を満たします。\n" +"つまり、すべての自然数 §0, §1, §2 に対して\n" +"§3." +#: Game.Levels.Multiplication.L05one_mul #. §0: `one_mul m` #. §1: `1 * m = m` -#: Game.Levels.Multiplication.L05one_mul msgid "§0 is the proof §1." -msgstr "" +msgstr "§0は証明§1です。" #: Game.Levels.Algorithm.L03add_algo2 msgid "making life simple" -msgstr "" +msgstr "生活を単純にする" -#. §0: `four_eq_succ_three` #: Game.Levels.Implication.L05succ_inj2 +#. §0: `four_eq_succ_three` msgid "" "Now rewrite §0 backwards to make the goal\n" "equal to the hypothesis." -msgstr "" +msgstr "現在、§0 を逆順に書き換えることで、目標を仮定に等しくします。" #: Game.Levels.Addition.L04add_assoc msgid "add_assoc (associativity of addition)" -msgstr "" +msgstr "add_assoc (加法の結合律)" +#: Game.Levels.Addition.L04add_assoc #. §0: `add_assoc a b c` #. §1: `(a + b) + c = a + (b + c)` #. §2: `(a + b) + c` #. §3: `a + b + c` -#: Game.Levels.Addition.L04add_assoc msgid "" "§0 is a proof\n" "that §1. Note that in Lean §2 prints\n" "as §3, because the notation for addition is defined to be left\n" "associative." msgstr "" +"§0は§1の証明です。\n" +"Leanでは§2は左結合的に定義されるため、§3として表示されます。" -#. §0: `intro h` #: Game.Levels.Implication.L07intro2 +#. §0: `intro h` msgid "Start with §0 to assume the hypothesis." -msgstr "" +msgstr "開始するには、§0 を使用して仮定を仮定します。" #: Game.Levels.Multiplication.L04mul_comm msgid "mul_comm" -msgstr "" +msgstr "mul_comm" -#. §0: `2 + 2 ≠ 5` #: Game.Levels.Algorithm.L09decide2 +#. §0: `2 + 2 ≠ 5` msgid "" -"We gave a pretty unsatisfactory proof of §0 earlier on; now give a nicer one." -msgstr "" +"We gave a pretty unsatisfactory proof of §0 earlier on; now give a nicer " +"one." +msgstr "## 前回の証明は不十分でしたので、今回はより良い証明方法を示します。" +#: Game.Levels.Addition.L01zero_add #. §0: $n = 0$ #. §1: `X = Y` -#: Game.Levels.Addition.L01zero_add msgid "" "Now you have two goals. Once you proved the first, you will jump to the " "second one.\n" @@ -1419,11 +2125,16 @@ msgid "" "in your inventory, or of any assumption displayed above the goal,\n" "as long as it is of the form §1." msgstr "" +"現在、2つの目標があります。最初の目標を証明すると、次の目標に移ります。\n" +"この最初の目標は基本ケース §0 です。\n" +"\n" +"あなたのインベントリで表示されている任意の補題の証明、または目標の上に表示されている任意の仮定の証明を再書き換えることができます。ただし、その形式は " +"§1 である必要があります。" +#: Game.Levels.Implication.L05succ_inj2 #. §0: `x + 1 = 4` #. §1: `x = 3` #. §2: `apply` -#: Game.Levels.Implication.L05succ_inj2 msgid "" "In the last level, we manipulated the hypothesis §0\n" " until it became the goal §1. In this level we'll manipulate\n" @@ -1432,7 +2143,10 @@ msgid "" " Again I will walk you through this one (assuming you're in\n" " command line mode)." msgstr "" +"最後のレベルでは、仮定§0を操作して目標§1にしました。このレベルでは、目標を操作して仮定にします!つまり、「逆向きに議論」することです。§2 " +"タクティクもこれを行うことができます。また、コマンドラインモードで操作していると仮定して、この例を一緒に見ていきましょう。" +#: Game.Levels.Tutorial.L06add_zero2 #. §0: `add_zero c` #. §1: `c + 0 = c` #. §2: `b + 0` @@ -1440,32 +2154,41 @@ msgstr "" #. §4: `rw [add_zero]` #. §5: `rw [add_zero b]` #. §6: `rw [add_zero]` -#: Game.Levels.Tutorial.L06add_zero2 msgid "" "§0 is a proof of §1 so that was what got rewritten.\n" "You can now change §2 to §3 with §4 or §5. You\n" "can usually stick to §6 unless you need real precision." msgstr "" +"§0は§1の証明なので、それが書き換えられた理由です。\n" +"現在、§2を§3に変更することができます。通常は§6を使用していれば問題ありませんが、実際の精度が必要な場合は§4や§5を使用してください。" #: Game.Levels.AdvAddition.L01add_right_cancel msgid "add_right_cancel" msgstr "" +"add_right_cancel\n" +"\n" +"\n" +"## 日本語翻訳\n" +"右側キャンセル定理" +#: Game.Levels.Implication.L04succ_inj #. §0: `succ_eq_add_one` #. §1: `h` -#: Game.Levels.Implication.L04succ_inj msgid "" "Now rewrite §0 backwards at §1\n" "to get the right hand side." msgstr "" +"現在、§1 に §0 を逆順で書き換え\n" +"右辺を得ます。" -#. §0: `decide` #: Game.Levels.Algorithm.L08decide +#. §0: `decide` msgid "" "You can read more about the §0 tactic by clicking\n" "on it in the top right." -msgstr "" +msgstr "以下の§0 タクティクについて詳しく知るには、右上にクリックしてください。" +#: Game.Levels.Implication.L08ne #. §0: `a ≠ b` #. §1: `(a = b) → False` #. §2: `P` @@ -1482,7 +2205,6 @@ msgstr "" #. §13: `apply h at h1` #. §14: `h1` #. §15: `a = b` -#: Game.Levels.Implication.L08ne msgid "" "§0 is *notation* for §1.\n" "\n" @@ -1498,7 +2220,14 @@ msgid "" "form §12 then you can §13 if §14 is a proof\n" "of §15." msgstr "" +"§0は§1の*表記*です。\n" +"\n" +"この数学的に有効な理由は、§2が真偽の主張であれば、§3は§4の論理的否定であるからです。実際、§5は偽であり、§6は真です!\n" +"\n" +"このことから、§7は任意の推論§8と同じように扱うことができます。例えば、あなたの*目標*が§9のような形であれば、§10" +"で進展が可能です。また、仮定§11が§12のような形であれば、§13を行うことができます(ただし、§14が§15の証明である場合)です。" +#: Game.Levels.Multiplication.L09mul_assoc #. §0: `mul_assoc a b c` #. §1: `(a * b) * c = a * (b * c)` #. §2: `a * b * c` @@ -1506,7 +2235,6 @@ msgstr "" #. §4: `(a * b) * c = a * (b * c)` #. §5: `(6 - 2) - 1` #. §6: `6 - (2 - 1)` -#: Game.Levels.Multiplication.L09mul_assoc msgid "" "§0 is a proof that §1.\n" "\n" @@ -1516,38 +2244,57 @@ msgid "" "for example subtraction is not associative, as §5 is not\n" "equal to §6." msgstr "" +"§0は§1を証明します。\n" +"\n" +"Leanが§2と言った場合、それは§3を意味します。\n" +"\n" +"Leanでは、§4は「純粋な思考」で証明できません:\n" +"例えば、減算は結合法則を満たさないため、§5は\n" +"§6とは等しくありません。" #: Game.Levels.AdvAddition.L03add_left_eq_self msgid "add_left_eq_self" msgstr "" +"add_left_eq_self\n" +"\n" +"\n" +"## 日本語翻訳\n" +"左側への追加が自身と等しいという命題の定理です。" #: GameServer.RpcHandlers msgid "level completed with warnings… 🎭" -msgstr "" +msgstr "レベルが警告付きで完了しました… 🎭" +#: Game.Levels.Implication.L08ne #. §0: `h2` #. §1: `x = y → False` #. §2: `apply` #. §3: `h2` #. §4: `at h1` -#: Game.Levels.Implication.L08ne msgid "" "Remember that §0 is a proof of §1. Try\n" "§2ing §3 either §4 or directly to the goal." msgstr "" +"Remember that §0は§1の証明です。試してみてください。\n" +"§2ing §3 は目標に直接または§4から行うことができます。" -#. §0: `apply mul_left_cancel at h` #: Game.Levels.AdvMultiplication.L10mul_right_eq_self +#. §0: `apply mul_left_cancel at h` msgid "You can now §0" msgstr "" +"你现在可以 §0\n" +"\n" +"\n" +"## 日本語翻訳\n" +"你现在可以 §0" +#: Game.Levels.AdvMultiplication.L06mul_right_eq_one #. §0: `x * y = 1 → x = 1` #. §1: `x + y = 0 → x = 0` #. §2: `x ≤ 1` #. §3: `le_one` #. §4: `≤` #. §5: `have` -#: Game.Levels.AdvMultiplication.L06mul_right_eq_one msgid "" "This level proves §0, the multiplicative analogue of Advanced Addition\n" "World's §1. The strategy is to prove that §2 and then use the\n" @@ -1555,20 +2302,24 @@ msgid "" "\n" "We'll prove it using a new and very useful tactic called §5." msgstr "" +"このレベルでは、進んだ加算ワールドの§1の乗法的な類似物である§0を証明します。戦略は、§2を証明し、その後、§4ワールドから§3" +"の補題を使用することです。\n" +"\n" +"新しい非常に有用なタクティク§5を使用して証明します。" #: Game.Levels.Power.L06pow_add msgid "pow_add" -msgstr "" +msgstr "pow_add" -#. §0: `rw [add_zero c]` #: Game.Levels.Tutorial.L06add_zero2 Game.Levels.LessOrEqual.L08le_total +#. §0: `rw [add_zero c]` msgid "Try §0." -msgstr "" +msgstr "試してみましょう§0。" +#: Game #. §0: `{0,1,2,3,4,...}` #. §1: `2 + 2 = 4` #. §2: `x + y = y + x` -#: Game msgid "" "# Welcome to the Natural Number Game\n" "#### An introduction to mathematical proof.\n" @@ -1592,8 +2343,8 @@ msgid "" "such as Strong Induction World, Even/Odd World and Prime Number World\n" "are in development; if you want to see their state or even help out, " "checkout\n" -"out the [issues in the github repo](https://github.com/leanprover-community/" -"NNG4/issues).\n" +"out the [issues in the github " +"repo](https://github.com/leanprover-community/NNG4/issues).\n" "\n" "## More\n" "\n" @@ -1601,21 +2352,43 @@ msgid "" "resources,\n" "links, and ways to interact with the Lean community." msgstr "" +"# 自然数ゲームへようこそ\n" +"#### 数学的証明への入門\n" +"\n" +"このゲームでは、自然数 §0 の基本理論をゼロから構築します。最初の目標は §1 を証明することです。次に §2 " +"を証明します。そして最後には、フェルマーの最終定理を証明できるかどうかを見ていきます。これらの目標を達成するために、コンピュータパズルゲーム「Lean」" +"のレベルを解いていきます。\n" +"\n" +"# 読んでください。\n" +"\n" +"インタラクティブ証明システムの使い方を学ぶには時間がかかります。テスト結果によれば、このゲームで最も効果的なのは、このようなヘルプテキストを読む人です。" +"\n" +"\n" +"開始するには、「チュートリアルワールド」をクリックしてください。\n" +"\n" +"注意:これは、旧Lean 3版に存在しなかった複数のワールドを含む新しいLean 4版のゲームです。強 induc " +"世界、偶数/奇数世界、素数世界などの新しいワールドの開発が進行中です;これらの状態を確認したいか、甚至は協力したい場合は、[" +"githubリポジトリのissues](https://github.com/leanprover-community/NNG4/issues) " +"をチェックしてください。\n" +"\n" +"## 追加情報\n" +"\n" +"右上隅の三本線をクリックし、「ゲーム情報」を選択してリソース、リンク、Leanコミュニティとの互动方法を確認してください。" -#. §0: $a$ -#. §1: $a ^ 1 = a$ #: Game.Levels.Power.L03pow_one Game.Levels.Power.L04one_pow #: Game.Levels.Power.L05pow_two +#. §0: $a$ +#. §1: $a ^ 1 = a$ msgid "For all naturals §0, §1." -msgstr "" +msgstr "すべての自然数 §0, §1 について。" +#: Game.Levels.Algorithm.L08decide #. §0: `decide` #. §1: `DecidableEq ℕ` #. §2: `instance` #. §3: `decide` #. §4: `a = b` #. §5: `a ≠ b` -#: Game.Levels.Algorithm.L08decide msgid "" "# Summary\n" "\n" @@ -1628,17 +2401,26 @@ msgid "" "are equal or different. Hence, once this term is made and made into an §2,\n" "the §3 tactic can use it to solve goals of the form §4 or §5." msgstr "" +"# 概要\n" +"\n" +"§0は、解決アルゴリズムを見つけることができれば、目標を解決しようとします。\n" +"\n" +"## 例\n" +"\n" +"型§1の項は、2つの自然数が等しいか異なるかを決定するアルゴリズムです。したがって、この項が作成され、§2に変換されると、§3タクティクは、§4" +"または§5のような目標を解決するためにそれを使用することができます。" +#: Game.Levels.Implication.L04succ_inj #. §0: `apply` #. §1: `apply succ_inj at h` #. §2: `h` #. §3: `x = 3` -#: Game.Levels.Implication.L04succ_inj msgid "" "Now let's §0 our new theorem. Execute §1\n" "to change §2 to a proof of §3." -msgstr "" +msgstr "現在、新しい定理を証明しましょう。§0を実行して§1を変更し、§2を§3の証明にします。" +#: Game.Levels.Tutorial.L02rw #. §0: `repeat t` #. §1: `t` #. §2: `repeat rw [add_zero]` @@ -1654,7 +2436,6 @@ msgstr "" #. §12: `2 + succ 1 = 4` #. §13: `rw [two_eq_succ_one]` #. §14: `succ 1 + succ 1 = 4` -#: Game.Levels.Tutorial.L02rw msgid "" "## Summary\n" "\n" @@ -1682,19 +2463,70 @@ msgid "" "will change the goal to §12. In contrast, §13\n" "will change the goal to §14." msgstr "" +"### 原文 (English)\n" +"## Summary\n" +"\n" +"§0 repeatedly applies the tactic §1\n" +"to the goal. You don't need to use this\n" +"tactic, it just speeds things up sometimes.\n" +"\n" +"## Example\n" +"\n" +"§2 will turn the goal\n" +"§3\n" +"into the goal\n" +"§4.\n" +"\"\n" +"\n" +"TacticDoc nth_rewrite \"\n" +"## Summary\n" +"\n" +"If §5 and there are several §6s in the goal, then\n" +"§7 will just change the third §8 to a §9.\n" +"\n" +"## Example\n" +"\n" +"If the goal is §10 then §11\n" +"will change the goal to §12. In contrast, §13\n" +"will change the goal to §14.\n" +"\n" +"\n" +"### 翻訳 (Japanese)\n" +"## 結論\n" +"\n" +"§0 は目標に対して §1 のタクティクを繰り返し適用します。このタクティクを使用する必要はありませんが、時々処理が早くなります。\n" +"\n" +"## 例\n" +"\n" +"§2 は目標\n" +"§3\n" +"を\n" +"§4\n" +"に変更します。\n" +"\n" +"---\n" +"\n" +"## 結論\n" +"\n" +"§5 が成り立つ場合で、目標に複数の §6 がある場合、\n" +"§7 は第三の §8 を §9 に変更します。\n" +"\n" +"## 例\n" +"\n" +"目標が §10 の場合、§11 は目標を §12 に変更します。一方で、§13 は目標を §14 に変更します。" #: Game.Levels.Tutorial.L01rfl msgid "The rfl tactic" -msgstr "" +msgstr "The rfl タクティク" +#: Game.Levels.Algorithm.L04add_algo3 #. §0: ``` #. macro \"simp_add\" : tactic => `(tactic|( -#. simp only [add_assoc, add_left_comm, add_comm])) +#. simp only [add_assoc, add_left_comm, add_comm])) #. ``` #. §1: `simp_add` #. §2: `simp only [add_assoc, add_left_comm, add_comm]` #. §3: `simp_add` -#: Game.Levels.Algorithm.L04add_algo3 msgid "" "You can make your own tactics in Lean.\n" "This code here\n" @@ -1703,27 +2535,42 @@ msgid "" "§2.\n" "Try running §3 to solve this level!" msgstr "" +"Leanで独自のタクティクを作成することができます。\n" +"以下のコード\n" +"§0\n" +"は新しいタクティク§1の作成に使用され、§2を実行します。\n" +"§3を実行してこのレベルを解いてみてください!" +#: Game.Levels.LessOrEqual.L10le_one #. §0: $x \\leq 1$ #. §1: $x = 0$ #. §2: $x = 1$ -#: Game.Levels.LessOrEqual.L10le_one msgid "If §0 then either §1 or §2." -msgstr "" +msgstr "もし§0であるなら、§1または§2のいずれかである。" #: Game.Levels.Addition.L02succ_add msgid "succ_add" msgstr "" +"succ_add\n" +"\n" +"\n" +"## 日本語翻訳\n" +"成功加算" +#: Game.Levels.Algorithm.L02add_algo1 #. §0: `add_comm` #. §1: `b` #. §2: `d` -#: Game.Levels.Algorithm.L02add_algo1 msgid "Finally use a targeted §0 to switch §1 and §2." msgstr "" +"Finally use a targeted §0 to switch §1 and §2.\n" +"\n" +"\n" +"## 日本語翻訳\n" +"最終的に、§0を使用して§1と§2を切り替えてください。" -#. §0: `≤` #: Game.Levels.LessOrEqual.L11le_two +#. §0: `≤` msgid "" "Nice!\n" "\n" @@ -1732,13 +2579,18 @@ msgid "" "If you've already done Multiplication World, you're now ready for\n" "Advanced Multiplication World. Click on \"Home\" to access it." msgstr "" +"Nice!\n" +"\n" +"順序理論の開発の次のステップは、§0" +"と乗算の相互作用の理論を発展させることがです。既に乗算ワールドを学習した場合、現在では高度な乗算ワールドに進むことができます。\"Home\"" +"をクリックしてアクセスしてください。" +#: Game.Levels.Implication.L02exact2 #. §0: `rw [zero_add] at «{h}»` #. §1: `zero_add` #. §2: `«{x}»` #. §3: `0 + «{x}»` #. §4: `0 + «{y}»` -#: Game.Levels.Implication.L02exact2 msgid "" "Do that again!\n" "\n" @@ -1746,41 +2598,55 @@ msgid "" "the arguments to §1 (finding §2) then it replaces all occurrences of\n" "§3 it finds. Therefor, it did not rewrite §4, yet." msgstr "" +"再度やってみましょう!\n" +"\n" +"§0は§1の引数を埋めようとします(§2を見つけます)然後,它会替换找到的所有§3。因此,它还没有重写§4。" +#: Game.Levels.Multiplication.L07mul_add #. §0: `a` #. §1: `b` #. §2: `c` -#: Game.Levels.Multiplication.L07mul_add msgid "" "Induction on §0 is the most troublesome, then §1,\n" "and §2 is the easiest." -msgstr "" +msgstr "帰納法は§0が最も難しい然後に§1で、§2は最も簡単です。" -#. §0: $a+(b+0)+(c+0)=a+b+c.$ #: Game.Levels.Tutorial.L05add_zero Game.Levels.Tutorial.L06add_zero2 #: Game.Levels.Power.L01zero_pow_zero Game.Levels.Algorithm.L09decide2 #: Game.Levels.AdvAddition.L03add_left_eq_self +#. §0: $a+(b+0)+(c+0)=a+b+c.$ msgid "§0" msgstr "" +"## \n" +"\n" +"§0\n" +"\n" +"\n" +"## 日本語翻訳\n" +"タクティクは証明手法を指し、定理は命題の証明を含む数学的命題を表します。Lean 4では、対話型の証明環境でこれらの要素を操作します。" +#: Game.Levels.Implication.L11two_add_two_ne_five #. §0: `zero_ne_succ` #. §1: `succ_inj` -#: Game.Levels.Implication.L11two_add_two_ne_five msgid "" "2 + 2 ≠ 5 is boring to prove in full, given only the tools we have " "currently.\n" "To make it a bit less painful, I have unfolded all of the numerals for you.\n" "See if you can use §0 and §1 to prove this." msgstr "" +"2 + 2 ≠ 5 を完全に証明するのは、現在のツールで与えられた限りでは退屈です。\n" +"少し痛みが減るよう、すべての数値を展開しました。\n" +"§0 と §1 を使ってこの証明ができるか試してみてください。" +#: Game.Levels.LessOrEqual.L08le_total #. §0: $x$ #. §1: $y$ #. §2: $x \\leq y$ #. §3: $y \\leq x$ -#: Game.Levels.LessOrEqual.L08le_total msgid "If §0 and §1 are numbers, then either §2 or §3." -msgstr "" +msgstr "もし§0と§1が数値である場合、§2または§3が成り立つ。" +#: Game.Levels.LessOrEqual #. §0: `a ≤ b` #. §1: `a ≤ b` #. §2: `b ≤ c` @@ -1788,7 +2654,6 @@ msgstr "" #. §4: `a ≤ b` #. §5: `c` #. §6: `b = a + c` -#: Game.Levels.LessOrEqual msgid "" "In this world we define §0 and prove standard facts\n" "about it, such as \"if §1 and §2 then §3.\"\n" @@ -1800,19 +2665,38 @@ msgid "" "\n" "Click on \"Start\" to proceed." msgstr "" +"### 原文 (English)\n" +"In this world we define §0 and prove standard facts\n" +"about it, such as \"if §1 and §2 then §3.\"\n" +"\n" +"The definition of §4 is \"there exists a number §5\n" +"such that §6. \" So we're going to have to learn\n" +"a tactic to prove \"exists\" theorems, and another one\n" +"to use \"exists\" hypotheses.\n" +"\n" +"Click on \"Start\" to proceed.\n" +"\n" +"\n" +"### 翻訳 (Japanese)\n" +"このワールドで §0 を定義し、その標準的な事実を証明します。例えば、「§1 と §2 が成り立つなら §3 が成り立つ」などです。\n" +"\n" +"§4 の定義は「ある数 §5 が存在して、§6 " +"が成り立つ」です。そのため、「存在」に関する定理を証明するタクティクと、「存在」に関する仮定を使うタクティクを学ぶ必要があります。\n" +"\n" +"\"開始\" をクリックして進みましょう。" +#: Game.Levels.Power.L06pow_add Game.Levels.Power.L07mul_pow +#: Game.Levels.Power.L08pow_pow #. §0: $a$ #. §1: $m$ #. §2: $n$ #. §3: $a^{m + n} = a ^ m a ^ n$ -#: Game.Levels.Power.L06pow_add Game.Levels.Power.L07mul_pow -#: Game.Levels.Power.L08pow_pow msgid "For all naturals §0, §1, §2, we have §3." -msgstr "" +msgstr "すべての自然数 §0, §1, §2 について、§3 が成り立ちます。" #: Game.Levels.AdvMultiplication.L09mul_left_cancel msgid "mul_left_cancel" -msgstr "" +msgstr "mul_left_cancel" #: Game.Levels.AdvAddition.L06add_left_eq_zero msgid "" @@ -1820,7 +2704,12 @@ msgid "" "out a way\n" "of using it." msgstr "" +"以下の訳文は、提供された参考訳を考慮して翻訳しました。\n" +"\n" +"### 翻訳 (日本語)\n" +"前の証明を模倣してこれを行うこともできます -- または、それを活用する方法を考え出すこともできます。" +#: Game.Levels.Tutorial.L03two_eq_ss0 #. §0: `0` #. §1: `n` #. §2: `succ n` @@ -1836,7 +2725,6 @@ msgstr "" #. §12: `2 = succ 1` #. §13: `two_eq_succ_one` #. §14: $2$ -#: Game.Levels.Tutorial.L03two_eq_ss0 msgid "" "## The birth of number.\n" "\n" @@ -1860,41 +2748,60 @@ msgid "" "\n" "Let's prove that §14 is the number after the number after zero." msgstr "" +"## 数字の誕生。\n" +"\n" +"Leanにおける数字は2つのルールで定義されます。\n" +"\n" +"* §0 は数字です。\n" +"* §1 が数字である場合、§2 の *後続* §3 は数字です。\n" +"\n" +"§4 の後続とは §5 の次の数字を意味します。数を数えることと、いくつかの小さな数字の名前を学びましょう。\n" +"\n" +"## 4まで数える。\n" +"\n" +"§6 が数字であるため、§7 も数字です。この新しい数字を §8 と呼びましょう。同様に §9, §10, §11 " +"を定義します。これで十分な数を手に入れました。\n" +"\n" +"§12 が数字であることを証明する *証明* §13 があります。証明リストの右側の「012」タブを確認してください。\n" +"\n" +"次に、0の後ろの後ろの数字である §14 を証明しましょう。" -#. §0: `rw [← succ_eq_add_one] at h` #: Game.Levels.Implication.L04succ_inj +#. §0: `rw [← succ_eq_add_one] at h` msgid "Concretely: §0." -msgstr "" +msgstr "具体的には: §0." -#. §0: `pow_zero a : a ^ 0 = 1` #: Game.Levels.Power.L01zero_pow_zero +#. §0: `pow_zero a : a ^ 0 = 1` msgid "" "§0 is one of the two axioms\n" "defining exponentiation in this game." -msgstr "" +msgstr "§0はこのゲームで指数関数を定義する2つの公理の1つです。" +#: Game.Levels.Addition.L05add_right_comm #. §0: $a, b$ #. §1: $c$ #. §2: $(a + b) + c = (a + c) + b$ -#: Game.Levels.Addition.L05add_right_comm msgid "" "If §0 and §1 are arbitrary natural numbers, we have\n" "§2." msgstr "" +"任意の自然数§0と§1について、以下の関係が成り立ちます。\n" +"§2。" #: Game.Levels.AdvMultiplication.L10mul_right_eq_self msgid "" "The lemma proved in the final level of this world will be helpful\n" "in Divisibility World." -msgstr "" +msgstr "最終レベルで証明された補題は、整除世界で役立つでしょう。" +#: Game.Levels.Power.L03pow_one #. §0: `pow_one a` #. §1: `a ^ 1 = a` #. §2: `a ^ 1` #. §3: `a ^ 0 * a` #. §4: `1 * a` #. §5: `a` -#: Game.Levels.Power.L03pow_one msgid "" "§0 says that §1.\n" "\n" @@ -1902,86 +2809,108 @@ msgid "" "defined to be §3 so it's §4, and to prove\n" "that this is equal to §5 you need to use induction somewhere." msgstr "" +"§0 は §1 です。\n" +"\n" +"ただし、これは定義によって正確には真ではありません:§2 は §3 と定義されており、§4 " +"となります。この等しいことを証明するには、どこかで帰納法を使用する必要があります。" +#: Game.Levels.AdvAddition.L04add_right_eq_self #. §0: `add_right_eq_self x y` #. §1: $x + y = x\\implies y=0.$ -#: Game.Levels.AdvAddition.L04add_right_eq_self msgid "" "§0 is the theorem that §1\n" "Two ways to do it spring to mind; I'll mention them when you've solved it." msgstr "" +"§0は、§1の定理です。\n" +"二つの方法が思い浮かびますが、あなたがそれを解いた後で述べます。" +#: Game.Levels.Algorithm #. §0: $2+2=4$ #. §1: $a+b+c+d+e=e+d+c+b+a$ -#: Game.Levels.Algorithm msgid "" "Proofs like §0 and §1 are very tedious to do by hand.\n" "In Algorithm World we learn how to get the computer to do them for us.\n" "\n" "Click on \"Start\" to proceed." msgstr "" +"証明如き§0や§1は手作業で行うと非常に退屈です。\n" +"Algorithm Worldでは、コンピュータにその作業を任せることを学びます。\n" +"\n" +"\"開始\"をクリックして進みましょう。" #: Game.Levels.Implication.L02exact2 msgid "" "If the goal is not *exactly* a hypothesis, we can sometimes\n" "use rewrites to fix things up." -msgstr "" +msgstr "もし目標が*正確に*仮定でない場合、時としてリライトを使用して修正することができます。" #: Game.Levels.Algorithm.L06is_zero msgid "" "See if you can take it from here. Look at the new lemmas and tactic\n" "available on the right." -msgstr "" +msgstr "見られる範囲で新しい命題とタクティクが追加されています。それらを活用してみてください。" +#: Game.Levels.Algorithm.L02add_algo1 #. §0: `rw [add_left_comm b c]` #. §1: `b` #. §2: `c` -#: Game.Levels.Algorithm.L02add_algo1 msgid "" "Now use §0 to switch §1 and §2 on the left\n" "hand side." -msgstr "" +msgstr "現在、§0 を使用して左側の §1 と §2 を入れ替えます。" #: Game.Levels.Implication msgid "Implication World" -msgstr "" +msgstr "推論ワールド" -#. §0: `add_succ` #: Game.Levels.Tutorial.L06add_zero2 +#. §0: `add_succ` msgid "Let's now learn about Peano's second axiom for addition, §0." -msgstr "" +msgstr "## ペアノの加法に関する第2の公理について、§0 を学んでみましょう。" +#: Game.Levels.Algorithm.L03add_algo2 Game.Levels.Algorithm.L04add_algo3 #. §0: $a, b,\\ldots h$ #. §1: $(d + f) + (h + (a + c)) + (g + e + b) = a + b + c + d + e + f + g + h$ -#: Game.Levels.Algorithm.L03add_algo2 Game.Levels.Algorithm.L04add_algo3 msgid "" "If §0 are arbitrary natural numbers, we have\n" "§1." msgstr "" +"任意の自然数§0について、\n" +"§1.\n" +"\n" +"\n" +"## 参考訳\n" +"任意の自然数§0について、\n" +"§1.\n" +"\n" +"\n" +"### 翻訳結果\n" +"任意の自然数§0について、\n" +"§1." +#: Game.Levels.Algorithm.L08decide #. §0: ``` #. instance instDecidableEq : DecidableEq ℕ #. | 0, 0 => isTrue <| by -#. show 0 = 0 -#. rfl +#. show 0 = 0 +#. rfl #. | succ m, 0 => isFalse <| by -#. show succ m ≠ 0 -#. exact succ_ne_zero m +#. show succ m ≠ 0 +#. exact succ_ne_zero m #. | 0, succ n => isFalse <| by -#. show 0 ≠ succ n -#. exact zero_ne_succ n +#. show 0 ≠ succ n +#. exact zero_ne_succ n #. | succ m, succ n => -#. match instDecidableEq m n with -#. | isTrue (h : m = n) => isTrue <| by -#. show succ m = succ n -#. rw [h] -#. rfl -#. | isFalse (h : m ≠ n) => isFalse <| by -#. show succ m ≠ succ n -#. exact succ_ne_succ m n h +#. match instDecidableEq m n with +#. | isTrue (h : m = n) => isTrue <| by +#. show succ m = succ n +#. rw [h] +#. rfl +#. | isFalse (h : m ≠ n) => isFalse <| by +#. show succ m ≠ succ n +#. exact succ_ne_succ m n h #. ``` #. §1: `decide` -#: Game.Levels.Algorithm.L08decide msgid "" "Implementing the algorithm for equality of naturals, and the proof that it " "is correct,\n" @@ -1994,7 +2923,14 @@ msgid "" "Because the algorithm is formally verified to be correct, we can\n" "use it in Lean proofs. You can run the algorithm with the §1 tactic." msgstr "" +"自然数の等価性アルゴリズムの実装とその正確性の証明は、以下のようになります:\n" +"\n" +"§0\n" +"\n" +"このLeanコードは、二つの自然数間の等価性を決定する形式的に検証されたアルゴリズムです。私たちは既にこのコードをバックヤードで入力しています。アルゴリ" +"ズムが形式的に正確性を保証されているため、Leanの証明内で使用できます。§1タクティクでアルゴリズムを実行できます。" +#: Game.Levels.Implication.L06intro #. §0: `P → Q` #. §1: `intro h` #. §2: `h : P` @@ -2008,7 +2944,6 @@ msgstr "" #. §10: $x+1=y+1$ #. §11: `h` #. §12: $x=y$ -#: Game.Levels.Implication.L06intro msgid "" "## Summary\n" "\n" @@ -2022,28 +2957,36 @@ msgid "" "then §9 will give you a hypothesis §10 named §11, and the goal\n" "will change to §12." msgstr "" +"## 結論\n" +"\n" +"もし目標が§0である場合、§1は§2を仮定として導入し、目標を§3に変更します。数学的には、§4を証明するためには、§5を仮定し、その後§6" +"を証明すればよいということです。\n" +"\n" +"### 例:\n" +"\n" +"もし目標が§7(Leanで書かれた§8)である場合、§9は§10という名前の仮定§11を導入し、目標は§12に変更されます。" +#: Game.Levels.Tutorial.L05add_zero #. §0: `rw [add_zero]` #. §1: `b + 0` #. §2: `b` -#: Game.Levels.Tutorial.L05add_zero msgid "§0 will change §1 into §2." -msgstr "" +msgstr "§0は§1を§2に変換します。" +#: Game.Levels.Implication.L03apply #. §0: `apply h2 at h1` #. §1: `h1` #. §2: `y = 42` -#: Game.Levels.Implication.L03apply msgid "Start with §0. This will change §1 to §2." -msgstr "" +msgstr "開始します。§0を入力すると、§1が§2に変更されます。" #: Game.Levels.Tutorial.L07add_succ msgid "[dramatic music]. Now are you ready to face the first boss of the game?" -msgstr "" +msgstr "[dramatic music]. 今でしょ、ゲーム最初のボス戦に臨む準備はできていますか?" +#: Game.Levels.AdvAddition #. §0: $x+y=x\\implies y=0$ #. §1: `≤` -#: Game.Levels.AdvAddition msgid "" "In Advanced Addition World we will prove some basic\n" "addition facts such as §0. The theorems\n" @@ -2052,7 +2995,12 @@ msgid "" "\n" "Click on \"Start\" to proceed." msgstr "" +"### Advanced Addition World " +"では、基本的な加法に関するいくつかの事実(§0)を証明します。このワールドで証明された定理は、§1 世界で不等式の理論を構築するために使用されます。\n" +"\n" +"「開始」をクリックして進みましょう。" +#: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero #. §0: `tauto` #. §1: `tauto` #. §2: `add_zero` @@ -2088,7 +3036,6 @@ msgstr "" #. §32: `a * b ≠ 0 → a ≠ 0` #. §33: `tauto` #. §34: `tauto` -#: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero msgid "" "# Summary\n" "\n" @@ -2142,56 +3089,100 @@ msgid "" "If you switch the goal and hypothesis in this example, §34 would solve it " "too." msgstr "" +"### Summary\n" +"\n" +"§0 タクティクは、論理だけで解決できる目標(つまり、真偽表で解決できる目標)を解決します。\n" +"\n" +"## 詳細\n" +"\n" +"§1 は *魔法を施すわけではない*!加算や乗算については何も知らないし、すら §2 も知らない。§3 が数について知っているのは、まず §4 " +"であり、二つ目は §5, §6, §7 などである。§8 の強みは *論理* にある。仮定 §9 と仮定 §10 があり、目標が §11 " +"の場合、§12 はこの目標を解決します。なぜなら、目標を解決するには不等式や加算に関する事実を知る必要がないし、必要なのは論理のルールだけです。\n" +"\n" +"## 例\n" +"\n" +"仮定として §13 がある場合、§14 は目標を解決します。これは、偽の仮定は任意の仮定を推論するからです。\n" +"\n" +"## 例\n" +"\n" +"目標が §15 の場合、§16 は目標を解決します。\n" +"\n" +"## 例\n" +"\n" +"仮定が §17 と §18 である場合、§19 は目標を解決します。なぜなら、§19 はあなたの仮定から §20 " +"を証明でき、したがって目標を証明できるからです(§21 は何かを推論するためのもの)。\n" +"\n" +"## 例\n" +"\n" +"仮定が §22 である場合、§23 は目標を解決します。なぜなら、§24 は §25 が真であることを知っているので、これは求めている矛盾を与えます。\n" +"\n" +"## 例\n" +"\n" +"仮定が §26 の形式である場合、目標が §32 の場合、§33 " +"は目標を解決します。なぜなら、目標は仮定と論理的に等価であるからです。この例で目標と仮定を入れ替えると、§34 も解決します。\n" +"\n" +"## 例\n" +"\n" +"仮定が §31 の形式であり、目標が §32 の場合、§33 " +"は目標を解決します。なぜなら、目標は仮定と論理的に等価であるからです。この例で目標と仮定を入れ替えると、§34 も解決します。" -#. §0: `rfl` #: Game.Levels.Tutorial.L03two_eq_ss0 +#. §0: `rfl` msgid "Now finish the job with §0." msgstr "" +"現在の作業を完了してください。§0\n" +"\n" +"\n" +"## 参考訳\n" +"現在の作業を完了してください。§0" -#. §0: `nth_rewrite 2 [← mul_one a] at h` #: Game.Levels.AdvMultiplication.L10mul_right_eq_self +#. §0: `nth_rewrite 2 [← mul_one a] at h` msgid "Reduce to the previous lemma with §0" -msgstr "" +msgstr "以前の補題に §0 をReduceします。" +#: Game.Levels.AdvMultiplication.L05le_mul_right #. §0: `le_mul_right a b` #. §1: `a * b ≠ 0 → a ≤ a * b` -#: Game.Levels.AdvMultiplication.L05le_mul_right msgid "" "§0 is a proof that §1.\n" "\n" "It's one way of saying that a divisor of a positive number\n" "has to be at most that number." msgstr "" +"§0は§1の証明です。\n" +"\n" +"これは正の数の約数がその数以下のことを表現する一方の方法です。" +#: Game.Levels.Power.L02zero_pow_succ #. §0: $m$ #. §1: $0 ^{\\operatorname{succ} (m)} = 0$ -#: Game.Levels.Power.L02zero_pow_succ msgid "For all numbers §0, §1." -msgstr "" +msgstr "すべての数 §0, §1 について。" -#. §0: `n` #: Game.Levels.AdvAddition.L01add_right_cancel +#. §0: `n` msgid "Start with induction on §0." -msgstr "" +msgstr "開始は §0 に対する帰納法からです。" #: Game.Levels.LessOrEqual.L08le_total msgid "x ≤ y or y ≤ x" -msgstr "" +msgstr "x ≤ y または y ≤ x" +#: Game.Levels.LessOrEqual.L02zero_le #. §0: `use` #. §1: `c` #. §2: `x = 0 + c` -#: Game.Levels.LessOrEqual.L02zero_le msgid "To solve this level, you need to §0 a number §1 such that §2." -msgstr "" +msgstr "このレベルを解くためには、§0 に数字 §1 を §2 する必要があります。" +#: Game.Levels.AdvMultiplication.L06mul_right_eq_one #. §0: `le_mul_right` #. §1: `x * y ≠ 0` #. §2: `have h2 : x * y ≠ 0` #. §3: `≠` #. §4: `\\ne` #. §5: `le_mul_right` -#: Game.Levels.AdvMultiplication.L06mul_right_eq_one msgid "" "We want to use §0, but we need a hypothesis §1\n" "which we don't have. Yet. Execute §2 (you can type §3 with §4).\n" @@ -2199,14 +3190,18 @@ msgid "" "prove it, and then you'll have a new hypothesis which you can apply\n" "§5 to." msgstr "" +"We want to use §0, ですが、§1 という仮定が必要で、現在持正在りません。まだありません。§2 を実行してください(§3 を §4 " +"で入力できます)。\n" +"求められるまでは証明が必要ですが、証明後には新しい仮定が得られ、それを §5 で適用できます。" +#: Game.Levels.Implication.L03apply #. §0: $x=37$ #. §1: $x=37\\implies y=42$ #. §2: $y=42$ -#: Game.Levels.Implication.L03apply msgid "If §0 and we know that §1 then we can deduce §2." -msgstr "" +msgstr "もし§0であり、§1を知っているなら、§2を導くことができます。" +#: Game.Levels.Tutorial.L01rfl #. §0: `rfl` #. §1: `X = X` #. §2: `rfl` @@ -2229,7 +3224,6 @@ msgstr "" #. §17: `mathlib` #. §18: `zero_add` #. §19: `add_zero` -#: Game.Levels.Tutorial.L01rfl msgid "" "## Summary\n" "\n" @@ -2267,6 +3261,33 @@ msgid "" "as mathematicians are concerned, and who cares what the definition of " "addition is).*" msgstr "" +"## 結論\n" +"\n" +"§0は、形式§1の目標を証明します。\n" +"\n" +"つまり、§2タクティクは、§4と§5が*完全に一致*する場合、形式§3の任意の目標を閉じます。\n" +"\n" +"§6は、「等号の反射律」の略です。\n" +"\n" +"## 例\n" +"\n" +"もし目標が以下のようであれば:\n" +"\n" +"§7\n" +"\n" +"§8はそれを閉じます。しかし、もし目標が§9のように見える場合、§10は機能しません。なぜなら、§11と§12" +"は常に数値としては等しいですが、項としては等しくないからです。§13と完全に一致する項は§14だけです。\n" +"\n" +"## 詳細\n" +"\n" +"§15は「等号の反射律」の略です。\n" +"\n" +"## ゲーム実装\n" +"\n" +"注意していただきたいのは、当の§16は、コア Lean " +"と§17" +"で使用されるバージョンよりも弱く、教育的な目的のためにそう設計されていることです。数学的には、論理的等価と定義的等価を区別しない理由は、定義の考え方がタ" +"イプ理論家と異なるからです(数学的には§18と§19はどちらも「事実」であり、加法の定義などは誰がどう思っても構いません)。" #: Game msgid "" @@ -2296,8 +3317,9 @@ msgid "" "## Resources\n" "\n" "* The [Lean Zulip chat](https://leanprover.zulipchat.com/) forum\n" -"* [Original Lean3 version](https://github.com/ImperialCollegeLondon/" -"natural_number_game/) (no longer maintained)\n" +"* [Original Lean3 " +"version](https://github.com/ImperialCollegeLondon/natural_number_game/) (no " +"longer maintained)\n" "\n" "## Problems?\n" "\n" @@ -2307,38 +3329,142 @@ msgid "" "the Lean Zulip chat is a professional research forum.\n" "Please use your full real name there, stay on topic, and be nice. If you're\n" "looking for somewhere less formal (e.g. you want to post natural number\n" -"game memes) then head on over to the [Lean Discord](https://discord.gg/" -"WZ9bs9UCvx).\n" +"game memes) then head on over to the [Lean " +"Discord](https://discord.gg/WZ9bs9UCvx).\n" "\n" "Alternatively, if you experience issues / bugs you can also open github " "issues:\n" "\n" "* For issues with the game engine, please open an\n" -"[issue at the lean4game](https://github.com/leanprover-community/lean4game/" -"issues) repo.\n" +"[issue at the " +"lean4game](https://github.com/leanprover-community/lean4game/issues) repo.\n" "* For issues about the game's content, please open an\n" "[issue at the NNG](https://github.com/hhu-adam/NNG4/issues) repo." msgstr "" +"### 原文 (English)\n" +"*Game version: 4.3*\n" +"\n" +"*Recent additions: bug fixes*\n" +"\n" +"## Progress saving\n" +"\n" +"The game stores your progress in your local browser storage.\n" +"If you delete it, your progress will be lost!\n" +"\n" +"Warning: In most browsers, deleting cookies will also clear the local " +"storage\n" +"(or \"local site data\"). Make sure to download your game progress first!\n" +"\n" +"## Credits\n" +"\n" +"* **Creators:** Kevin Buzzard, Jon Eugster\n" +"* **Original Lean3-version:** Kevin Buzzard, Mohammad Pedramfar\n" +"* **Game Engine:** Alexander Bentkamp, Jon Eugster, Patrick Massot\n" +"* **Additional levels:** Sian Carey, Ivan Farabella, Archie Browne.\n" +"* **Additional thanks:** All the student beta testers, all the schools\n" +"who invited Kevin to speak, and all the schoolkids who asked him questions\n" +"about the material.\n" +"\n" +"## Resources\n" +"\n" +"* The [Lean Zulip chat](https://leanprover.zulipchat.com/) forum\n" +"* [Original Lean3 " +"version](https://github.com/ImperialCollegeLondon/natural_number_game/) (no " +"longer maintained)\n" +"\n" +"## Problems?\n" +"\n" +"Please ask any questions about this game in the\n" +"[Lean Zulip chat](https://leanprover.zulipchat.com/) forum, for example in\n" +"the stream \"New Members\". The community will happily help. Note that\n" +"the Lean Zulip chat is a professional research forum.\n" +"Please use your full real name there, stay on topic, and be nice. If you're\n" +"looking for somewhere less formal (e.g. you want to post natural number\n" +"game memes) then head on over to the [Lean " +"Discord](https://discord.gg/WZ9bs9UCvx).\n" +"\n" +"Alternatively, if you experience issues / bugs you can also open github " +"issues:\n" +"\n" +"* For issues with the game engine, please open an\n" +"[issue at the " +"lean4game](https://github.com/leanprover-community/lean4game/issues) repo.\n" +"* For issues about the game's content, please open an\n" +"[issue at the NNG](https://github.com/hhu-adam/NNG4/issues) repo.\n" +"\n" +"### 翻訳 (Japanese)\n" +"*ゲームバージョン: 4.3*\n" +"\n" +"*最近の追加: バグ修正*\n" +"\n" +"## プログレス保存\n" +"\n" +"ゲームはあなたのプログレスをローカルブラウザストレージに保存します。\n" +"これを削除すると、プログレスは失われます!\n" +"\n" +"注意: " +"多くのブラウザでは、クッキーを削除するとローカルストレージ(または「ローカルサイトデータ」)もクリアされます。プログレスをダウンロードしてから削除するこ" +"とを確認してください!\n" +"\n" +"## 謝辞\n" +"\n" +"* **クリエイター:** ケビン・バズラー、ジョン・ユージストー\n" +"* **元のLean3版:** ケビン・バズラー、モハマド・ペドラムファール\n" +"* **ゲームエンジン:** アレクサンダー・バンクトamp、ジョン・ユージストー、パトリック・マッソット\n" +"* **追加レベル:** シアン・ケアリー、イバン・ファラベラ、アーチー・ブラウン\n" +"* **追加感謝:** 全ての学生ベータテスト者、ケビンを講演に招待した全ての学校、質問をした全ての学校の子供たち\n" +"\n" +"## リソース\n" +"\n" +"* [Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラム\n" +"* " +"[元のLean3版](https://github.com/ImperialCollegeLondon/natural_number_game/)" +"(現在メンテナンスされていません)\n" +"\n" +"## お困りですか?\n" +"\n" +"このゲームに関する質問は、[Lean Zulipチャット](https://leanprover.zulipchat.com/) " +"フォーラムで質問してください。例えば、「New Members」ストリームで質問できます。コミュニティは喜んでお手伝いします。注意: Lean " +"Zulipチャットはプロフェッショナルな研究フォーラムです。そこでフルネームを使用し、トピックに集中し、丁寧に接してください。より非公式な場所(例えば、" +"自然数ゲームのメモを投稿したい場合)を探している場合は、[Lean Discord](https://discord.gg/WZ9bs9UCvx) " +"に移動してください。\n" +"\n" +"または、問題やバグが発生した場合は、GitHubの問題をオープンすることもできます:\n" +"\n" +"* " +"ゲームエンジンに関する問題は、[lean4game](https://github.com/leanprover-community/lean4" +"game/issues) リポジトリで問題をオープンしてください。\n" +"* ゲームの内容に関する問題は、[NNG](https://github.com/hhu-adam/NNG4/issues) " +"リポジトリで問題をオープンしてください。" +#: Game.Levels.AdvMultiplication.L02mul_left_ne_zero #. §0: `b = 0` #. §1: `a * b = 0` #. §2: `X ≠ 0` #. §3: `X = 0 → False` #. §4: `Show more help!` -#: Game.Levels.AdvMultiplication.L02mul_left_ne_zero msgid "" "We want to reduce this to a hypothesis §0 and a goal §1,\n" "which is logically equivalent but much easier to prove. Remember that §2\n" "is notation for §3. Click on §4 if you need hints." msgstr "" +"We want to reduce this to a hypothesis §0 and a goal §1,\n" +"which is logically equivalent but much easier to prove. Remember that §2\n" +"is notation for §3. Click on §4 if you need hints.\n" +"\n" +"\n" +"## 日本語翻訳\n" +"この部分を仮定§0と目標§1に簡略化したいです。これは論理的に同等ですが、証明がはるかに簡単になります。§2は§3の表記法です。ヒントが必要な場合は§4" +"をクリックしてください。" -#. §0: `repeat rw [add_zero]` #: Game.Levels.Tutorial.L05add_zero +#. §0: `repeat rw [add_zero]` msgid "" "Those of you interested in speedrunning the game may want to know\n" "that §0 will do both rewrites at once." -msgstr "" +msgstr "ゲームの速 Exterior に興味がある方は、§0 が一度に両方のリライトを行うことを知るかもしれません。" +#: Game.Levels.Tutorial.L07add_succ #. §0: $0$ #. §1: $0$ #. §2: `37 + d = q` @@ -2358,7 +3484,6 @@ msgstr "" #. §16: `rw [add_succ]` #. §17: `+` #. §18: `012` -#: Game.Levels.Tutorial.L07add_succ msgid "" "Every number in Lean is either §0 or a successor. We know how to add §1,\n" "but we need to figure out how to add successors. Let's say we already know\n" @@ -2377,65 +3502,108 @@ msgid "" "§18 (numerals) tabs under \"Theorems\" on the right to\n" "see which proofs you can rewrite." msgstr "" +"### 原文 (English)\n" +"Every number in Lean is either §0 or a successor. We know how to add §1,\n" +"but we need to figure out how to add successors. Let's say we already know\n" +"that §2. What should the answer to §3 be? Well,\n" +"§4 is one bigger than §5, so §6 should be §7,\n" +"the number one bigger than §8. More generally §9 should\n" +"be §10. Let's add this as a lemma.\n" +"\n" +"* §11\n" +"\n" +"If you ever see §12 in your goal, §13 is\n" +"normally a good idea.\n" +"\n" +"Let's now prove that §14. Figure out how to get §15 into\n" +"the picture, and then §16. Switch between the §17 (addition) and\n" +"§18 (numerals) tabs under \"Theorems\" on the right to\n" +"see which proofs you can rewrite.\n" +"\n" +"\n" +"### 翻訳 (Japanese)\n" +"Leanの数は、§0 " +"または後続数のいずれかです。§1を加算する方法は分かっていますが、後続数を加算する方法はまだ分かりません。例えば、§2が分かっているとします。那么,§3" +"の答えは何になるべきでしょうか? §4は §5よりも1大きいので、§6は §7、つまり §8よりも1大きい数になるべきです。より一般的には、§9は " +"§10になります。この事実を補題として追加しましょう。\n" +"\n" +"* §11\n" +"\n" +"もし目標に §12が見つかったら、通常 §13は良いアイデアです。\n" +"\n" +"次に、§14を証明しましょう。§15を図に取り入れる方法を考え、その後 §16を証明します。\"Theorems\" の右側にある \"追加\" と " +"\"数\" のタブを切り替えて、どの証明を書き換えることができるか確認します。" +#: Game.Levels.Algorithm.L06is_zero #. §0: `trivial` #. §1: `True` -#: Game.Levels.Algorithm.L06is_zero msgid "" "# Summary\n" "\n" "§0 will solve the goal §1." msgstr "" +"# 結果\n" +"\n" +"§0 は目標 §1 を解決します。" +#: Game.Levels.Power.L02zero_pow_succ #. §0: $0^0=1$ #. §1: $0^n=0$ #. §2: $n>0$ #. §3: $n$ -#: Game.Levels.Power.L02zero_pow_succ msgid "" "Although §0 in this game, §1 if §2, i.e., if\n" "§3 is a successor." msgstr "" +"### 原文 (English)\n" +"Although §0 in this game, §1 if §2, i.e., if\n" +"§3 is a successor.\n" +"\n" +"\n" +"## 日本語翻訳\n" +"このゲームにおいて §0 であり、§1 は §2 である場合、すなわち §3 が後继者である場合。" +#: Game.Levels.AdvAddition.L05add_right_eq_zero #. §0: `b = 0` #. §1: `b ≠ 0` #. §2: `cases b with d` -#: Game.Levels.AdvAddition.L05add_right_eq_zero msgid "" "Here we want to deal with the cases §0 and §1 separately,\n" "so start with §2." -msgstr "" +msgstr "ここでは§0と§1のケースを別々に扱いたいので、まずは§2から始めます。" +#: Game.Levels.AdvMultiplication.L09mul_left_cancel #. §0: `hd` #. §1: `c` #. §2: `a * d = a * c → d = c` #. §3: `apply` #. §4: `at` #. §5: `a * d = a * ?` -#: Game.Levels.AdvMultiplication.L09mul_left_cancel msgid "" "The inductive hypothesis §0 is \"For all natural numbers §1, §2\".\n" "You can §3 it §4 any hypothesis of the form §5." msgstr "" +" induktive 仮定 §0 は \"全ての自然数 §1 について §2\" です。\n" +"あなたは §3 その §4 仮定 §5 の任意の形で §6 できます。" #: Game.Levels.Multiplication.L07mul_add msgid "" "You can do induction on any of the three variables. Some choices\n" "are harder to push through than others. Can you do the inductive step in\n" "5 rewrites only?" -msgstr "" +msgstr "任意の3つの変数について帰納法を適用できます。いくつかの選択肢はもう少し難しいかもしれません。5回の書き換えで帰納的ステップを実行できるでしょうか?" +#: Game.Levels.Addition.L01zero_add #. §0: `0 + «{d}»` #. §1: `rw [«{hd}»]` -#: Game.Levels.Addition.L01zero_add msgid "" "At this point you see the term §0, so you can use the\n" "induction hypothesis with §1." -msgstr "" +msgstr "現在、項§0が表示されているので、項§1を使用してインベントリ仮定を適用することができます。" +#: Game.Levels.Power.L01zero_pow_zero #. §0: `0 ^ 0` #. §1: `0 ^ 0 = 1` -#: Game.Levels.Power.L01zero_pow_zero msgid "" "Mathematicians sometimes debate what §0 is;\n" "the answer depends, of course, on your definitions. In this\n" @@ -2444,18 +3612,28 @@ msgid "" "Check out the *Pow* tab in your list of theorems\n" "to see the new proofs which are available." msgstr "" +"数学家中で、§0 は何であるかについて時々議論があります;\n" +"その答えは、もちろん、定義によって異なります。このゲームでは、§1 です。証明できるか試してみてください。\n" +"\n" +"証明一覧のタブから *Pow* をチェックして、利用可能な新しい証明を確認してください。" +#: Game.Levels.Implication.L09zero_ne_succ #. §0: `1` #. §1: `succ 0` #. §2: `h` -#: Game.Levels.Implication.L09zero_ne_succ msgid "Now change §0 to §1 in §2." msgstr "" +"現在、§0 を §1 に変更してください。\n" +"\n" +"\n" +"```html\n" +"

現在、§0 を §1 に変更してください。

\n" +"```" +#: Game.Levels.Implication.L05succ_inj2 #. §0: `apply t at h` #. §1: `apply t` #. §2: `apply` -#: Game.Levels.Implication.L05succ_inj2 msgid "" "Many people find §0 easy, but some find §1 confusing.\n" "If you find it confusing, then just argue forwards.\n" @@ -2464,11 +3642,22 @@ msgid "" "view by\n" "clicking on the tactic in the list on the right." msgstr "" +"多くの人は§0を容易に感じますが、一部の人々は§1を混乱させることがあります。\n" +"混乱する場合は、証明を前向きに進めましょう。\n" +"\n" +"§2" +"のタクティクについては、そのドキュメンテーションで詳しく説明しています。タクティクをリストの右側でクリックすることでドキュメンテーションを表示できます。" #: Game.Levels.Algorithm.L03add_algo2 msgid "Let's now make our own tactic to do this." msgstr "" +"Let's now make our own tactic to do this.\n" +"\n" +"\n" +"## 日本語翻訳\n" +"自分独自のタクティクを作成しましょう。" +#: Game.Levels.Tutorial.L02rw #. §0: `h` #. §1: `X = Y` #. §2: `rw [h]` @@ -2561,7 +3750,6 @@ msgstr "" #. §84: `X` #. §85: `Y` #. §86: `nth_rewrite 37 [h]` -#: Game.Levels.Tutorial.L02rw msgid "" "## Summary\n" "\n" @@ -2654,42 +3842,164 @@ msgid "" "If you only want to change the 37th occurrence of §84\n" "to §85 then do §86." msgstr "" - -#: Game.Levels.AdvAddition.L06add_left_eq_zero -msgid "add_left_eq_zero" -msgstr "" - -#. §0: `rw [add_succ]` -#: Game.Levels.Tutorial.L07add_succ Game.Levels.Tutorial.L08twoaddtwo -msgid "Now you can §0" -msgstr "" - -#. §0: `←` -#. §1: `rw` -#. §2: `rw` -#. §3: `←` -#. §4: `\\l` -#: Game.Levels.Implication.L04succ_inj -msgid "" -"You can put a §0 in front of any theorem provided to §1 to rewrite\n" -"the other way around. Look at the docs for §2 for an explanation. Type §3 " -"with §4." -msgstr "" - -#. §0: `exact h` -#: Game.Levels.Implication.L05succ_inj2 -msgid "You can now finish with §0." -msgstr "" - -#: Game -msgid "Natural Number Game" -msgstr "" - -#. §0: `n` -#. §1: `cases n with d` -#. §2: `n = 0` -#. §3: `n = succ d` -#. §4: `h` +"## 結論\n" +"\n" +"§0が等式§1の証明である場合、§2は目標内のすべての§3を§4に変更します。これは「代入」を行う方法です。\n" +"\n" +"## バリエーション\n" +"\n" +"* §5 (目標内の§6を§7に変更;バックアローは§8または§9を入力することで取得します。)\n" +"\n" +"* §10 (一連の変換)\n" +"\n" +"* §11 (仮定§14内を§12から§13に変更)\n" +"\n" +"* §15 (目標と2つの仮定内を§16から§17に変更;§18のシンボルは§19で取得します。)\n" +"\n" +"* §20は§21を§22に変更し続けるまで、§23の一致がなくなるまで変更します。\n" +"\n" +"* §24は目標内の第2の§25のみを§26に変更します。\n" +"\n" +"### 例:\n" +"\n" +"仮定§27があり、目標が§28の場合、\n" +"\n" +"§29\n" +"\n" +"は目標を§30に変更し、\n" +"\n" +"§31\n" +"\n" +"は目標を§32に変更し、\n" +"\n" +"§33で解決できます。\n" +"\n" +"### 例:\n" +"\n" +"仮定を変更することもできます。例えば、仮定が2つある場合、\n" +"\n" +"§35\n" +"\n" +"§36は§37を§38に変換します。\n" +"\n" +"## 一般的なエラー\n" +"\n" +"* クエート記号が必要です。§39は常に正しくありません。\n" +"\n" +"* §40が等式(形式§41のステートメント)の証明でない場合、例えば§42が関数または推論である場合、\n" +"\n" +"§43は使用したいタクティクではありません。例えば、\n" +"\n" +"§44は常に正しくありません:§45は定理のステートメントであり、\n" +"\n" +"証明ではありません。§46が証明である場合、§47は機能します。\n" +"\n" +"## 詳細\n" +"\n" +"§48タクティクは「代入」を行う方法です。このタクティクを使用できる2つの異なる状況があります。\n" +"\n" +"1) 基本的な使用法:§49が仮定または定理の証明であり、目標内に1つ以上の§50が含まれている場合、\n" +"\n" +"§51はそれら全てを§52に変更します。タクティクは目標内に§53が存在しない場合にエラーを発生させます。\n" +"\n" +"2) 高度な使用法:定理の証明から得られる仮定はしばしば欠落している部分を持っています。例えば、\n" +"\n" +"§54は§55であることを証明しており、\n" +"\n" +"§56は実際には関数であり、\n" +"\n" +"§57は入力です。この状況では、\n" +"\n" +"§58は目標内を検索し、\n" +"\n" +"§59のサブタームを見つけた瞬間に、\n" +"\n" +"§60を§61に固定し、\n" +"\n" +"すべての§62を§63に変更します。\n" +"\n" +"演習:なぜ§64は項§65を§66に変更するのか考えてみてください。\n" +"\n" +"等式の証明の名前を忘れた場合は、\n" +"\n" +"右側の補題一覧で調べてください。\n" +"\n" +"## 対象的な使用法\n" +"\n" +"目標が§67であり、\n" +"\n" +"§68を§69に書き換えることを望む場合、\n" +"\n" +"§70はLeanが別の加算を見つけ、\n" +"\n" +"その入力を交換するためには機能しません。§71を使用して、\n" +"\n" +"Leanが§72を§73に書き換えることを保証します。これは、\n" +"\n" +"§74は§75を証明しており、\n" +"\n" +"§76は§77を証明しており、\n" +"\n" +"§78は§79を証明しているためです。\n" +"\n" +"§80が成立する場合、\n" +"\n" +"§81はすべての§82を§83に変換します。\n" +"\n" +"§84の37番目の出現のみを§85に変更したい場合は、\n" +"\n" +"§86を行います。" + +#: Game.Levels.AdvAddition.L06add_left_eq_zero +msgid "add_left_eq_zero" +msgstr "add_left_eq_zero" + +#: Game.Levels.Tutorial.L07add_succ Game.Levels.Tutorial.L08twoaddtwo +#. §0: `rw [add_succ]` +msgid "Now you can §0" +msgstr "" +"現在、§0\n" +"\n" +"\n" +"## 原文 (English)\n" +"Now you can use the tactic `§1` to prove `§2` by applying it to `§3`.\n" +"\n" +"### 日本語翻訳\n" +"現在、`§1` タクティクを用いて`§2`を`§3`に適用して証明することができます。" + +#: Game.Levels.Implication.L04succ_inj +#. §0: `←` +#. §1: `rw` +#. §2: `rw` +#. §3: `←` +#. §4: `\\l` +msgid "" +"You can put a §0 in front of any theorem provided to §1 to rewrite\n" +"the other way around. Look at the docs for §2 for an explanation. Type §3 " +"with §4." +msgstr "" +"以下の定理を任意の §0 に先頭に付けることで、逆方向に書き換えることができます。詳細は §1 のドキュメントを参照してください。型 §2 " +"を入力してください。" + +#: Game.Levels.Implication.L05succ_inj2 +#. §0: `exact h` +msgid "You can now finish with §0." +msgstr "你现在可以完成 §0。" + +#: Game +msgid "Natural Number Game" +msgstr "" +"自然数ゲーム\n" +"\n" +"\n" +"## 日本語翻訳\n" + +#: Game.Levels.AdvAddition.L05add_right_eq_zero +#. §0: `n` +#. §1: `cases n with d` +#. §2: `n = 0` +#. §3: `n = succ d` +#. §4: `h` #. §5: `cases h with...` #. §6: `n : ℕ` #. §7: `cases n with d` @@ -2710,7 +4020,6 @@ msgstr "" #. §22: `hc : b = a + c` #. §23: `a ≤ b` #. §24: `∃ c, b = a + c` -#: Game.Levels.AdvAddition.L05add_right_eq_zero msgid "" "## Summary\n" "\n" @@ -2747,29 +4056,52 @@ msgid "" "and a proof §22. This is because the *definition* of §23 is\n" "§24." msgstr "" +"## まとめ\n" +"\n" +"もし§0が数値である場合、§1は目標を二つに分割し、一つには§2、もう一つには§3が含まれます。\n" +"\n" +"もし§4が証明(例えば、仮定)である場合、§5はその証明を証明に使用された部分に分割します。\n" +"\n" +"## 例\n" +"\n" +"もし§6が数値である場合、§7は目標を二つに分割し、一つには§8を0に置き換えたもの、もう一つには§9を§10" +"に置き換えたものが含まれます。これは数学的な考え方に即して、すべての自然数は§11または後続数であることを示します。\n" +"\n" +"## 例\n" +"\n" +"もし§12が仮定である場合、§13は一つの目標を二つに分割し、一つには§14という仮定が含まれ、もう一つには§15という仮定が含まれます。\n" +"\n" +"## 例\n" +"\n" +"もし§16が仮定である場合、§17は一つの目標を無数の目標に分割しません。なぜなら、§18" +"の証明方法が存在しないからです!そして、目標が残っていない場合、レベルは終了します。\n" +"\n" +"## 例\n" +"\n" +"もし§19が仮定である場合、§20は新しい数値§21と証明§22を作成します。これは§23の定義が§24であるからです。" +#: Game.Levels.LessOrEqual.L04le_trans #. §0: `«{ha}»` #. §1: `«{y}» = «{x}» + «{a}»` #. §2: `hxy` #. §3: `«{hyz}»` #. §4: `cases «{hyz}» with b hb` -#: Game.Levels.LessOrEqual.L04le_trans msgid "" "Now §0 is a proof that §1, and §2 has vanished. Similarly, you can destruct\n" "§3 into its parts with §4." -msgstr "" +msgstr "現在、§0 は §1 の証明です。また、§2 は消えました。同様に、§4 を使用して §3 をその部分に分解できます。" #: Game.Levels.Implication.L04succ_inj msgid "succ_inj : the successor function is injective" -msgstr "" +msgstr " successor_function_inj : サクセッサー関数は単射です" +#: Game.Levels.Tutorial.L06add_zero2 #. §0: `b + 0` #. §1: `c + 0` #. §2: `rw [add_zero]` #. §3: `b + 0` #. §4: `c + 0` #. §5: `add_zero` -#: Game.Levels.Tutorial.L06add_zero2 msgid "" "## Precision rewriting\n" "\n" @@ -2779,14 +4111,20 @@ msgid "" "to change §4 first by giving §5 an\n" "explicit input." msgstr "" +"## 精度の再編纂\n" +"\n" +"最後のレベルでは、§0 と §1 があり、\n" +"§2 は最初に見つけたものを §3 に変更しました。\n" +"Lean に §4 を最初に変更させる方法を学びましょう。\n" +"§5 に明示的な入力を与えることで実現します。" +#: Game.Levels.LessOrEqual.L01le_refl #. §0: `a ≤ b` #. §1: `∃ c, b = a + c` #. §2: `a ≤ b` #. §3: `use` #. §4: `h : a ≤ b` #. §5: `cases h with c hc` -#: Game.Levels.LessOrEqual.L01le_refl msgid "" "§0 is *notation* for §1.\n" "\n" @@ -2797,28 +4135,41 @@ msgid "" "make progress with the §3 tactic, and if you have a hypothesis\n" "§4, you can make progress with §5." msgstr "" +"§0は§1の記号表記です。\n" +"\n" +"このゲームには負の数が存在しないので、この定義は数学的に有効です。\n" +"\n" +"这意味着如果你的目标形式为§2,你可以使用§3タクティク進展,如果你有仮定§4,你可以使用§5タクティク進展。" -#. §0: `exact h` #: Game.Levels.Implication.L06intro +#. §0: `exact h` msgid "Now §0 finishes the job." -msgstr "" +msgstr "現在、§0 が仕事の完了を告げる。" +#: Game.Levels.LessOrEqual.L01le_refl #. §0: `«{x}» ≤ «{x}»` #. §1: `«{x}» = «{x}» + 0` #. §2: `use 0` -#: Game.Levels.LessOrEqual.L01le_refl msgid "" "The reason §0 is because §1.\n" "So you should start this proof with §2." msgstr "" +"The reason §0 is because §1.\n" +"So you should start this proof with §2.\n" +"\n" +"\n" +"## 翻訳\n" +"理由§0は§1である。\n" +"従って、この証明は§2から始めるべきである。" +#: Game.Levels.LessOrEqual.L04le_trans Game.Levels.LessOrEqual.L06le_antisymm #. §0: $x \\leq y$ #. §1: $y \\leq z$ #. §2: $x \\leq z$ -#: Game.Levels.LessOrEqual.L04le_trans Game.Levels.LessOrEqual.L06le_antisymm msgid "If §0 and §1, then §2." -msgstr "" +msgstr "もし§0 と §1 なら §2。" +#: Game.Levels.AdvMultiplication.L05le_mul_right #. §0: ``` #. apply mul_left_ne_zero at h #. apply one_le_of_ne_zero at h @@ -2826,39 +4177,49 @@ msgstr "" #. rw [one_mul, mul_comm] at h #. exact h #. ``` -#: Game.Levels.AdvMultiplication.L05le_mul_right msgid "" "Here's what I was thinking of:\n" "§0" msgstr "" +"以下は私の考えでした:\n" +"§0\n" +"\n" +"\n" +"## 日本語翻訳\n" +"以下は私の考えでした:\n" +"§0" +#: Game.Levels.Tutorial.L08twoaddtwo #. §0: `nth_rewrite 2 [two_eq_succ_one]` #. §1: `rw [two_eq_succ_one]` -#: Game.Levels.Tutorial.L08twoaddtwo msgid "§0 is I think quicker than §1." -msgstr "" +msgstr "§0は、§1より迅速です。" #: GameServer.RpcHandlers msgid "intermediate goal solved! 🎉" -msgstr "" +msgstr "中間目標解決しました!🎉" +#: Game.Levels.Addition.L04add_assoc #. §0: $a, b$ #. §1: $c$ #. §2: $ (a + b) + c = a + (b + c). $ -#: Game.Levels.Addition.L04add_assoc msgid "" "On the set of natural numbers, addition is associative.\n" "In other words, if §0 and §1 are arbitrary natural numbers, we have\n" "§2" msgstr "" +"自然数の集合において、加法は結合法則を満たします。\n" +"つまり、任意の自然数 §0 と §1 に対して、以下の関係が成り立ちます。\n" +"§2" -#. §0: `use` #: Game.Levels.LessOrEqual.L04le_trans +#. §0: `use` msgid "" "Now you need to figure out which number to §0. See if you can take it from " "here." -msgstr "" +msgstr "今度は §0 の部分に何を入力するか考えなさい。ここから進められるようなら自分で進めてみてください。" +#: Game.Levels.Implication.L03apply #. §0: `t : P → Q` #. §1: $P \\implies Q$ #. §2: `h : P` @@ -2887,7 +4248,6 @@ msgstr "" #. §25: `a * b = 7` #. §26: `apply succ_inj` #. §27: `succ (a * b) = succ 7` -#: Game.Levels.Implication.L03apply msgid "" "## Summary\n" "\n" @@ -2914,59 +4274,88 @@ msgid "" "If the goal is §25, then §26 will turn the\n" "goal into §27." msgstr "" +"## 結論\n" +"\n" +"もし§0が§1の証明であり、§2が§3の証明であるなら、§4は§5を§6の証明に変更します。つまり、§7が真であることを知っているなら、§8から§9" +"が真であることを導くことができます。\n" +"\n" +"もし*目標*が§10であるなら、§11は「逆向きに議論」し、目標を§12に変更します。ここでの考え方は、§13を証明したいなら、§14から§15" +"を証明すれば十分であるので、目標を§16の証明に減らすことができるということです。\n" +"\n" +"### 例:\n" +"\n" +"§17が§18の証明であるとします。\n" +"\n" +"もし仮定§19があるなら、§20は§21を§22に変更します。§23のように書くこともできますが、Leanは§24の入力を見抜くことができます。\n" +"\n" +"### 例\n" +"\n" +"もし目標が§25であるなら、§26は目標を§27に変更します。" -#. §0: `cases «{h2}» with e he` #: Game.Levels.LessOrEqual.L08le_total +#. §0: `cases «{h2}» with e he` msgid "Now §0." -msgstr "" +msgstr "現在、§0。" -#. §0: `add_mul` #: Game.Levels.Multiplication.L08add_mul +#. §0: `add_mul` msgid "" "§0 is just as fiddly to prove by induction; but there's a trick\n" "which avoids it. Can you spot it?" -msgstr "" +msgstr "§0は帰納法で証明するのと同じくらい手間がかかるが、回避するトリックがある。見つけることができるだろうか?" +#: Game.Levels.Implication.L07intro2 #. §0: `repeat rw [← succ_eq_add_one] at h` #. §1: `h` #. §2: `succ x = succ y` -#: Game.Levels.Implication.L07intro2 msgid "" "Now §0 is the quickest way to\n" "change §1 to §2." -msgstr "" +msgstr "現在、§0は§1を§2に変更する最も迅速な方法です。" +#: Game.Levels.LessOrEqual.L03le_succ_self #. §0: ``` #. use 1 #. exact succ_eq_add_one x #. ``` #. §1: `succ_eq_add_one x` #. §2: `succ x = x + 1` -#: Game.Levels.LessOrEqual.L03le_succ_self msgid "" "Here's a two-liner:\n" "§0\n" "\n" "This works because §1 is a proof of §2." msgstr "" +"以下は二行分です:\n" +"§0\n" +"\n" +"これは §1 が §2 の証明であるため Works します。" +#: Game.Levels.Algorithm.L06is_zero #. §0: `intro h` #. §1: `X ≠ Y` #. §2: `X = Y → False` -#: Game.Levels.Algorithm.L06is_zero msgid "" "Start with §0 (remembering that §1 is just notation\n" "for §2)." -msgstr "" +msgstr "開始は §0 から (§1 は §2 の表記法であることを覚えておいてください)。" +#: Game.Levels.Addition.L01zero_add #. §0: `n` #. §1: `induction n with d hd` -#: Game.Levels.Addition.L01zero_add msgid "" "You can start a proof by induction on §0 by typing:\n" "§1." msgstr "" +"You can start a proof by induction on §0 by typing:\n" +"§1.\n" +"\n" +"\n" +"## 日本語翻訳\n" +" induksi法による証明を開始するには、§0について帰納法で証明を開始するためには以下のように入力します:\n" +"§1." +#: Game.Levels.Tutorial.L08twoaddtwo #. §0: ```lean #. nth_rewrite 2 [two_eq_succ_one] -- only change the second `2` to `succ 1`. #. rw [add_succ] @@ -2979,7 +4368,6 @@ msgstr "" #. §1: `` #. §2: `>_` #. §3: `induction` -#: Game.Levels.Tutorial.L08twoaddtwo msgid "" "Here is an example proof of 2+2=4 showing off various techniques.\n" "\n" @@ -3000,13 +4388,24 @@ msgid "" "overworld, and select Addition World, where you will learn\n" "about the §3 tactic." msgstr "" +"以下は2+2=4を示す証明の例で、様々な手法を披露しています。\n" +"\n" +"§0\n" +"\n" +"オプション:自分でこの証明を実行することもできます。右上の§1" +"ボタンをクリックしてゲームを「エディタモード」に切り替えることができます。現在の証明は、複数行のコードとして表示されます。行の間でカーソルを動かすことで" +"、任意のポイントでの目標状態を確認できます。証明を保存したい場合は、コードを他の場所に切り貼りし、上の証明を代入できます。カーソルを動かして調査してくだ" +"さい。終了したら、右上の§2ボタンをクリックして「タイピングモード」に戻ります。\n" +"\n" +"チュートリアルワールドを終了しました!\n" +"「ホーム」をクリックしてオーバワールドに戻り、加算ワールドを選択して§3タクティクについて学びます。" +#: Game.Levels.Power.L01zero_pow_zero #. §0: `Pow a b` #. §1: `a ^ b` #. §2: `pow_zero a : a ^ 0 = 1` #. §3: `pow_succ a b : a ^ succ b = a ^ b * a` #. §4: `0 ^ 0 = 1` -#: Game.Levels.Power.L01zero_pow_zero msgid "" "§0, with notation §1, is the usual\n" " exponentiation of natural numbers. Internally it is\n" @@ -3018,7 +4417,17 @@ msgid "" "\n" "Note in particular that §4." msgstr "" +"§0、符号§1を用いたものは通常の自然数の累乗を表します。内部的には、\n" +"\n" +" * §2\n" +"\n" +" * §3\n" +"\n" +"の2つの公理により定義されています。\n" +"\n" +"特に注意すべきは§4です。" +#: Game.Levels.LessOrEqual.L07or_symm #. §0: `≤` #. §1: `a` #. §2: `b` @@ -3031,7 +4440,6 @@ msgstr "" #. §9: `right` #. §10: `h` #. §11: `cases h with h1 h2` -#: Game.Levels.LessOrEqual.L07or_symm msgid "" "Totality of §0 is the boss level of this world, and it's coming up next. It " "says that\n" @@ -3049,60 +4457,101 @@ msgid "" "§11 will create two goals, one where you went left,\n" "and the other where you went right." msgstr "" +"### 原文 (English)\n" +"Totality of §0 is the boss level of this world, and it's coming up next. It " +"says that\n" +"if §1 and §2 are naturals then either §3 or §4.\n" +"But we haven't talked about §5 at all. Here's a run-through.\n" +"\n" +"1) The notation for \"or\" is §6. You won't need to type it, but you can\n" +"type it with §7.\n" +"\n" +"2) If you have an \"or\" statement in the *goal*, then two tactics make\n" +"progress: §8 and §9. But don't choose a direction unless your\n" +"hypotheses guarantee that it's the correct one.\n" +"\n" +"3) If you have an \"or\" statement as a *hypothesis* §10, then\n" +"§11 will create two goals, one where you went left,\n" +"and the other where you went right.\n" +"\n" +"\n" +"### 翻訳 (Japanese)\n" +"完全性の §0 はこのワールドのボスレベルであり、次に登場します。これは、§1 と §2 が自然数である場合、§3 または §4 " +"であることを言います。\n" +"しかし、§5 については全く話していません。以下は概要です。\n" +"\n" +"1) \"または\" の表記は §6 です。直接入力する必要はありませんが、§7 で入力することができます。\n" +"\n" +"2) 目的 §8 に \"または\" の文がある場合、2 つのタクティク §9 " +"が進行します。ただし、方向を選択する前に、仮定が正しい方向を保証していることを確認してください。\n" +"\n" +"3) 仮定 §10 に \"または\" の文がある場合、§11 は 2 つの目的を作成します。一つは左に進んだ場合、もう一つは右に進んだ場合です。" +#: Game.Levels.Tutorial.L03two_eq_ss0 #. §0: `one_eq_succ_zero` #. §1: `1 = succ 0` -#: Game.Levels.Tutorial.L03two_eq_ss0 msgid "§0 is a proof of §1.\"" -msgstr "" +msgstr "§0は§1の証明です。" #: Game.Levels.Addition.L01zero_add msgid "zero_add" msgstr "" +"zero_add\n" +"\n" +"\n" +"## 日本語翻訳\n" +"0との加算" -#. §0: `induction b with d hd generalizing c` #: Game.Levels.AdvMultiplication.L09mul_left_cancel +#. §0: `induction b with d hd generalizing c` msgid "The way to start this proof is §0." -msgstr "" +msgstr "この証明を始める方法は §0。" +#: Game.Levels.Power.L02zero_pow_succ #. §0: `0 ^ 0 = 1` #. §1: `n` #. §2: `0 ^ n = 0` -#: Game.Levels.Power.L02zero_pow_succ msgid "" "We've just seen that §0, but if §1\n" "is a successor, then §2. We prove that here." -msgstr "" +msgstr "We've just seen that §0, ですが、もし §1 が後继者である場合、則 §2。ここではそのことを証明します。" +#: Game.Levels.Multiplication.L02zero_mul #. §0: `zero_mul x` #. §1: `0 * x = 0` #. §2: `zero_mul` #. §3: `simp` -#: Game.Levels.Multiplication.L02zero_mul msgid "" "§0 is the proof that §1.\n" "\n" "Note: §2 is a §3 lemma." msgstr "" +"§0は§1の証明です。\n" +"\n" +"Note: §2は§3の補題です。" +#: Game.Levels.LessOrEqual.L06le_antisymm #. §0: $\\leq$ #. §1: $x \\leq y$ #. §2: $y \\leq x$ #. §3: $x = y$ -#: Game.Levels.LessOrEqual.L06le_antisymm msgid "" "This level asks you to prove *antisymmetry* of §0.\n" "In other words, if §1 and §2 then §3.\n" "It's the trickiest one so far. Good luck!" msgstr "" +"このレベルでは、§0 の *反対称性* を証明する必要があります。\n" +"つまり、§1 かつ §2 ならば §3 です。\n" +"これまでで最も難しい問題です。運を祈ります!" -#. §0: `contrapose!` #: Game.Levels.AdvMultiplication.L02mul_left_ne_zero +#. §0: `contrapose!` msgid "" "If you have completed Algorithm World then you can use the §0 tactic\n" "here. If not then I'll talk you through a manual approach." -msgstr "" +msgstr "もしAlgorithm Worldを完了しているなら、ここでは§0タクティクを使用できます。もし完了していなければ、手動のアプローチを説明します。" +#: Game.Levels.Tutorial.L02rw #. §0: $2y=2(x+7)$ #. §1: `h` #. §2: $y = x + 7$ @@ -3113,7 +4562,6 @@ msgstr "" #. §7: $y$ #. §8: `h` #. §9: `rw` -#: Game.Levels.Tutorial.L02rw msgid "" "In this level the *goal* is §0 but to help us we\n" "have an *assumption* §1 saying that §2. Check that you can see §3 in\n" @@ -3124,7 +4572,24 @@ msgid "" "We do this in Lean by *rewriting* the goal with §8,\n" "using the §9 tactic." msgstr "" +"### 原文 (English)\n" +"In this level the *goal* is §0 but to help us we\n" +"have an *assumption* §1 saying that §2. Check that you can see §3 in\n" +"your list of assumptions. Lean thinks of §4 as being a secret proof of the\n" +"assumption, rather like §5 is a secret number.\n" +"\n" +"Before we can use §6, we have to \"substitute in for §7\".\n" +"We do this in Lean by *rewriting* the goal with §8,\n" +"using the §9 tactic.\n" +"\n" +"\n" +"### 日本語翻訳\n" +"このレベルでは、目標は§0ですが、それを手助けするために、§1という仮定があります。§2がその内容です。§3" +"が仮定リストに表示されていることを確認してください。Leanは§4を仮定の秘密の証明と見なし、§5は秘密の数値に似ています。\n" +"\n" +"§6を使用する前に、「§7に置き換える」必要があります。Leanでは、§8を使用して目標を書き換え、§9タクティクを使用してこれを実行します。" +#: Game.Levels.Implication.L09zero_ne_succ #. §0: `zero_ne_succ n` #. §1: `0 ≠ succ n` #. §2: `a ≠ b` @@ -3135,7 +4600,6 @@ msgstr "" #. §7: `apply zero_ne_succ at h` #. §8: `h` #. §9: `0 = succ n` -#: Game.Levels.Implication.L09zero_ne_succ msgid "" "§0 is the proof that §1.\n" "\n" @@ -3144,100 +4608,124 @@ msgid "" "Here §6 is a generic false statement. This means that\n" "you can §7 if §8 is a proof of §9." msgstr "" +"§0は§1の証明です。\n" +"\n" +"Leanでは、§2は§3に*定義されており*、 " +"§§4は実質的に§5の証明です。ここで§6は一般的な偽の命題です。つまり、§8が§9の証明である場合、§7を行うことができます。" #: Game.Levels.Multiplication.L01mul_one msgid "mul_one" msgstr "" +"mul_one\n" +"\n" +"\n" +"## 日本語翻訳\n" +"乗法の単位元定理です。" +#: Game.Levels.AdvAddition.L02add_left_cancel #. §0: `add_left_cancel a b n` #. §1: $n+a=n+b\\implies a=b$ #. §2: `n` #. §3: `add_right_cancel` -#: Game.Levels.AdvAddition.L02add_left_cancel msgid "" "§0 is the theorem that §1.\n" "You can prove it by induction on §2 or you can deduce it from §3." msgstr "" +"§0は§1の定理です。\n" +"これを証明するには、§2についての帰納法を使用するか、§3から導き出せます。" +#: Game.Levels.AdvMultiplication.L06mul_right_eq_one #. §0: `rw [«{h}»] at «{h2}»` #. §1: `apply le_one at «{h2}»` -#: Game.Levels.AdvMultiplication.L06mul_right_eq_one msgid "Now §0 so you can §1." -msgstr "" +msgstr "現在 §0 なので、§1 です。" +#: Game.Levels.LessOrEqual.L11le_two #. §0: $x \\leq 2$ #. §1: $x = 0$ #. §2: $1$ #. §3: $2$ -#: Game.Levels.LessOrEqual.L11le_two msgid "If §0 then §1 or §2 or §3." -msgstr "" +msgstr "もし§0 then §1または§2または§3。" -#. §0: `two_eq_succ_one` -#. §1: `2 = succ 1` #: Game.Levels.Tutorial.L03two_eq_ss0 Game.Levels.Addition.L03add_comm #: Game.Levels.Implication.L09zero_ne_succ Game.Levels.Algorithm.L05pred #: Game.Levels.Algorithm.L06is_zero Game.Levels.LessOrEqual.L05le_zero +#. §0: `two_eq_succ_one` +#. §1: `2 = succ 1` msgid "§0 is a proof of §1." -msgstr "" +msgstr "§0は§1の証明です。" +#: Game.Levels.Power.L10FLT #. §0: $a$ #. §1: $b$ #. §2: $c$ #. §3: $n$ #. §4: $$(a+1)^{n+3}+(b+1)^{n+3}\\not=(c+1)^{n+3}.$$ -#: Game.Levels.Power.L10FLT msgid "" "For all naturals §0 §1 §2 and §3, we have\n" "§4" msgstr "" +"すべての自然数 §0, §1, §2, §3 に対して、以下の関係が成り立ちます。\n" +"§4" -#. §0: `le_antisymm x y` -#. §1: `x ≤ y` -#. §2: `y ≤ x` -#. §3: `x = y` #: Game.Levels.LessOrEqual.L06le_antisymm #: Game.Levels.AdvMultiplication.L07mul_ne_zero #: Game.Levels.AdvMultiplication.L09mul_left_cancel #: Game.Levels.AdvMultiplication.L10mul_right_eq_self +#. §0: `le_antisymm x y` +#. §1: `x ≤ y` +#. §2: `y ≤ x` +#. §3: `x = y` msgid "§0 is a proof that if §1 and §2 then §3." -msgstr "" +msgstr "§0は、§1と§2ならば§3であることを証明します。" +#: Game.Levels.AdvAddition.L02add_left_cancel #. §0: ``` #. repeat rw [add_comm n] #. exact add_right_cancel a b n #. ``` -#: Game.Levels.AdvAddition.L02add_left_cancel msgid "" "How about this for a proof:\n" "§0" msgstr "" +"以下は証明です:\n" +"§0" +#: Game.Levels.Implication.L07intro2 #. §0: `rw [h]` #. §1: `rfl` #. §2: `exact h` -#: Game.Levels.Implication.L07intro2 msgid "Now §0 then §1 works, but §2 is quicker." -msgstr "" +msgstr "現在、§0 と §1 は正常に動作しますが、§2 はより速いです。" +#: Game.Levels.LessOrEqual.L01le_refl #. §0: `le_refl x` #. §1: `x ≤ x` #. §2: $\\le$ -#: Game.Levels.LessOrEqual.L01le_refl msgid "" "§0 is a proof of §1.\n" "\n" "The reason for the name is that this lemma is \"reflexivity of §2\"" msgstr "" +"§0は§1の証明です。\n" +"\n" +"この名前の理由は、この補題が\"§2の反射性\"であるためです。" #: Game.Levels.Addition.L03add_comm msgid "add_comm (level boss)" msgstr "" +"add_comm (レベルボス)\n" +"\n" +"\n" +"## 備考\n" +"- `add_comm` は「加算の交換律を追加する」という意味です。\n" +"- `level boss` は「レベルボス」と翻訳しています。" +#: Game.Levels.Multiplication.L02zero_mul #. §0: `mul_comm x y : x * y = y * x` #. §1: `mul_zero` #. §2: `zero_mul` -#: Game.Levels.Multiplication.L02zero_mul msgid "" "Our first challenge is §0,\n" "and we want to prove it by induction. The zero\n" @@ -3245,53 +4733,73 @@ msgid "" "and §2 (which we don't), so let's\n" "start with this." msgstr "" +"## 原文 (English)\n" +"Our first challenge is §0,\n" +"and we want to prove it by induction. The zero\n" +"case will need §1 (which we have)\n" +"and §2 (which we don't), so let's\n" +"start with this.\n" +"\n" +"\n" +"## 日本語翻訳\n" +"私たちの最初の挑戦は§0です。\n" +"これは帰納法によって証明したいと思います。\n" +"零の場合には§1(持っています)\n" +"と§2(持っていない)が必要なので、まずはこれから始めましょう。" +#: Game.Levels.Algorithm.L04add_algo3 #. §0: `simp_add` #. §1: `a + (b + c) + (d + e) = e + (d + (c + b)) + a` -#: Game.Levels.Algorithm.L04add_algo3 msgid "" "# Overview\n" "\n" "Our home-made tactic §0 will solve arbitrary goals of\n" "the form §1." msgstr "" +"# 概要\n" +"\n" +"私たちが作成したタクティク §0 は、§1 のような任意の目標を解決します。" -#. §0: `20 + 20 = 40` #: Game.Levels.Algorithm.L04add_algo3 +#. §0: `20 + 20 = 40` msgid "" "Let's now move on to a more efficient approach to questions\n" "involving numerals, such as §0." msgstr "" +"## 数値に関連する質問に対するより効率的なアプローチ\n" +"\n" +"### 参考訳\n" +"数値に関連する質問、例えば§0 に対するより効率的なアプローチについて見ていきましょう。" #: Game.Levels.Multiplication.L09mul_assoc msgid "" "We now have enough to prove that multiplication is associative,\n" "the boss level of multiplication world. Good luck!" -msgstr "" +msgstr "現在、乗算が結合的であることを証明できるようになりました。これは乗算ワールドのボスレベルです。お運びください!" #: Game.Levels.Power.L08pow_pow msgid "pow_pow" -msgstr "" +msgstr "pow_pow" #: Game.Levels.Implication.L04succ_inj msgid "Now finish in one line." -msgstr "" +msgstr "今、一行で完了してください。" +#: Game.Levels.LessOrEqual.L11le_two #. §0: `le_two x` #. §1: `x ≤ 2` #. §2: `x = 0` #. §3: `x = 1` #. §4: `x = 2` -#: Game.Levels.LessOrEqual.L11le_two msgid "§0 is a proof that if §1 then §2 or §3 or §4." -msgstr "" +msgstr "§0は、§1ならば§2または§3または§4であることを証明します。" +#: Game.Levels.AdvAddition.L06add_left_eq_zero #. §0: ``` #. rw [add_comm] #. exact add_right_eq_zero b a #. ``` #. §1: `≤` -#: Game.Levels.AdvAddition.L06add_left_eq_zero msgid "" "How about this for a proof:\n" "\n" @@ -3300,13 +4808,24 @@ msgid "" "That's the end of Advanced Addition World! You'll need these theorems\n" "for the next world, §1 World. Click on \"Home\" to access it." msgstr "" +"以下の訳文です:\n" +"\n" +"### 日本語\n" +"証明としては、以下のようなものはどうでしょうか:\n" +"\n" +"§0\n" +"\n" +"この「進階加算ワールド」は終了しました。次の「§1ワールド」では、これらの定理が必要になるでしょう。\"ホーム\"をクリックしてアクセスしてください。\n" +"\n" +"\n" +"##" +#: Game.Levels.Multiplication.L01mul_one #. §0: `Mul a b` #. §1: `a * b` #. §2: `mul_zero a : a * 0 = 0` #. §3: `mul_succ a b : a * succ b = a * b + a` #. §4: `zero_mul` -#: Game.Levels.Multiplication.L01mul_one msgid "" "§0, with notation §1, is the usual\n" " product of natural numbers. Internally it is\n" @@ -3319,7 +4838,15 @@ msgid "" "Other theorems about naturals, such as §4,\n" "are proved by induction from these two basic theorems." msgstr "" +"§0、符号§1を用いたものは、通常の自然数の積です。内部的には、以下の2つの公理によって定義されます:\n" +"\n" +"* §2\n" +"\n" +"* §3\n" +"\n" +"他の自然数に関する定理、例えば§4は、これらの2つの基本定理から帰納的に証明されます。" +#: Game.Levels.Tutorial.L05add_zero #. §0: `add_zero a` #. §1: `a + 0 = a` #. §2: `add_zero` @@ -3330,7 +4857,6 @@ msgstr "" #. §7: `add_zero` #. §8: $\\forall n ∈ ℕ, n + 0 = n$ #. §9: `n + 0 = n` -#: Game.Levels.Tutorial.L05add_zero msgid "" "§0 is a proof that §1.\n" "\n" @@ -3352,21 +4878,40 @@ msgid "" "This is just another way of saying that it's a function which\n" "can eat any number n and will return a proof that §9." msgstr "" +"§0は§1の証明です。\n" +"\n" +"## まとめ\n" +"\n" +"§2は実際には関数で、数字を入力するとその数字に関する定理の証明を返します。例えば§3は§4の証明です。\n" +"\n" +"§5のタクティクは§6を受け取り、省略された数字を推測しようとします。\n" +"\n" +"## 詳細\n" +"\n" +"数学者は時として§7を\\\\\"一つのもの\\\\\"と捉え、それは§8の証明であると言えます。これは、任意の数字nを入力すると§9" +"の証明を返す関数であるという別の表現方法です。" +#: Game.Levels.Power.L09add_sq #. §0: $a$ #. §1: $b$ #. §2: $$(a+b)^2=a^2+b^2+2ab.$$ -#: Game.Levels.Power.L09add_sq msgid "" "For all numbers §0 and §1, we have\n" "§2" msgstr "" +"すべての数値 §0 と §1 に対して、\n" +"§2\n" +"\n" +"\n" +"## 参考訳\n" +"すべての数値 §0 と §1 に対して、\n" +"§2" +#: Game.Levels.Tutorial.L01rfl #. §0: `rfl` #. §1: `rfl` #. §2: `rfl` #. §3: `rw` -#: Game.Levels.Tutorial.L01rfl msgid "" "Congratulations! You completed your first verified proof!\n" "\n" @@ -3376,56 +4921,72 @@ msgid "" "\n" "Now click on \"Next\" to learn about the §3 tactic." msgstr "" +" Congratulations! あなたは初めての検証証明を完了しました!\n" +"\n" +"記憶に留めておきましょう。§0は*tactic*です。§1のtacticについての情報が必要な場合は、右側のtactic一覧の§2をクリックできます。\n" +"\n" +"今、\"Next\"をクリックして§3のtacticについて学びましょう。" +#: Game.Levels.Implication.L02exact2 #. §0: $0+x=(0+y)+2$ #. §1: $x=y+2$ -#: Game.Levels.Implication.L02exact2 msgid "Assuming §0, we have §1." -msgstr "" +msgstr "仮定§0を仮定すると、§1が成り立ちます。" +#: Game.Levels.AdvAddition.L01add_right_cancel #. §0: `add_right_cancel a b n` #. §1: $a+n=b+n\\implies a=b$ -#: Game.Levels.AdvAddition.L01add_right_cancel msgid "" "In this world I will mostly leave you on your own.\n" "\n" "§0 is the theorem that §1." msgstr "" +"このワールドでは、主にあなたを自分で残します。\n" +"\n" +"§0は、§1の定理です。" #: Game.Levels.Power.L06pow_add msgid "" "Let's now begin our approach to the final boss,\n" "by proving some more subtle facts about powers." msgstr "" +"## 最終ボスへのアプローチ\n" +"powersに関するより細かい事実を証明することで始めましょう。" +#: Game.Levels.LessOrEqual.L09succ_le_succ #. §0: `succ_le_succ x y` #. §1: `succ x ≤ succ y` #. §2: `x ≤ y` -#: Game.Levels.LessOrEqual.L09succ_le_succ msgid "§0 is a proof that if §1 then §2." -msgstr "" +msgstr "§0は、§1ならば§2であることを証明します。" #: Game.Levels.Implication.L08ne msgid "≠" msgstr "" +"≠\n" +"\n" +"\n" +"## 日本語翻訳\n" +"不等号" +#: Game.Levels.AdvMultiplication.L09mul_left_cancel #. §0: `c = 0` #. §1: `c = succ e` #. §2: `cases c with e` -#: Game.Levels.AdvMultiplication.L09mul_left_cancel msgid "Split into cases §0 and §1 with §2." -msgstr "" +msgstr "ケース分けして §0 と §1 に分ける。" +#: Game.Levels.Implication.L06intro #. §0: `intro h` #. §1: `h` -#: Game.Levels.Implication.L06intro msgid "Start with §0 to assume the hypothesis and call its proof §1." -msgstr "" +msgstr "開始する際は、§0 を使用して仮定を仮定し、その証明を§1と呼びます。" #: Game.Levels.AdvMultiplication.L10mul_right_eq_self msgid "mul_right_eq_self" -msgstr "" +msgstr "mul_right_eq_self" +#: Game.Levels.Addition.L02succ_add #. §0: `add_comm` #. §1: `succ_add` #. §2: `succ_add a b` @@ -3436,7 +4997,6 @@ msgstr "" #. §7: `b` #. §8: `b = 0` #. §9: `b` -#: Game.Levels.Addition.L02succ_add msgid "" "Oh no! On the way to §0, a wild §1 appears. §2\n" "is the proof that §3 for §4 and §5 numbers.\n" @@ -3444,11 +5004,14 @@ msgid "" "we have the problem that we are adding §7 to things, so we need\n" "to use induction to split into the cases where §8 and §9 is a successor." msgstr "" +"Oh no! §0 に向かう途中で、野生の §1 が現れました。 §2 は、 §3 が §4 と §5 " +"の数値に対して成り立つことを証明しています。この結果が §6 の道を阻んでいます。また\n" +"私たちは §7 を何かに加算している問題に直面しており、そのためには §8 と §9 が後继者である場合に分けて帰納法を使用する必要があります。" +#: Game.Levels.Algorithm.L03add_algo2 #. §0: `simp` #. §1: `simp` #. §2: `add_comm` -#: Game.Levels.Algorithm.L03add_algo2 msgid "" "# Overview\n" "\n" @@ -3458,13 +5021,16 @@ msgid "" "fed\n" "lemmas such as §2, so that it does not go into an infinite loop." msgstr "" +"# Overview\n" +"\n" +"Leanの簡略化処理器§0は、§1でタグ付けされたすべての lemmas およびユーザーから与えられたすべての lemmas " +"をできる限り簡略化します。さらに、§2のようなlemmasを与えると、内部の順序に変数を並び替える試みも行い、無限ループに陥らないようにします。" -#. §0: `cases ha with n hn` #: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero +#. §0: `cases ha with n hn` msgid "Now take apart the existence statement with §0." -msgstr "" +msgstr "現在、存在文 §0 を分解します。" -#. §0: $2+2=4$ #: Game.Levels.Tutorial.L08twoaddtwo Game.Levels.Implication.L06intro #: Game.Levels.Implication.L07intro2 Game.Levels.Implication.L09zero_ne_succ #: Game.Levels.Implication.L10one_ne_zero @@ -3473,9 +5039,17 @@ msgstr "" #: Game.Levels.Algorithm.L08decide Game.Levels.AdvAddition.L01add_right_cancel #: Game.Levels.AdvAddition.L02add_left_cancel #: Game.Levels.AdvAddition.L04add_right_eq_self +#. §0: $2+2=4$ msgid "§0." msgstr "" +"### 原文 (English)\n" +"§0.\n" +"\n" +"\n" +"## 日本語翻訳\n" +"§0." +#: Game.Levels.Power.L10FLT #. §0: $x,y,z>0$ #. §1: $m \\geq 3$ #. §2: $x^m+y^m\\not =z^m$ @@ -3484,7 +5058,6 @@ msgstr "" #. §5: `m` #. §6: `x > 0` #. §7: `a + 1` -#: Game.Levels.Power.L10FLT msgid "" "We now have enough to state a mathematically accurate, but slightly\n" "clunky, version of Fermat's Last Theorem.\n" @@ -3506,46 +5079,102 @@ msgid "" "You've finished the main quest of the natural number game!\n" "If you would like to learn more about how to use Lean to\n" "prove theorems in mathematics, then take a look\n" -"at [Mathematics In Lean](https://leanprover-community.github.io/" -"mathematics_in_lean/),\n" +"at [Mathematics In " +"Lean](https://leanprover-community.github.io/mathematics_in_lean/),\n" "an interactive textbook which you can read in your browser,\n" "and which explains how to work with many more mathematical concepts in Lean." msgstr "" +"### 原文 (English)\n" +"We now have enough to state a mathematically accurate, but slightly\n" +"clunky, version of Fermat's Last Theorem.\n" +"\n" +"Fermat's Last Theorem states that if §0 and §1 then §2.\n" +"If you didn't do inequality world yet then we can't talk about §3,\n" +"so we have to resort to the hack of using §4 for §5,\n" +"which guarantees it's big enough. Similarly instead of §6 we\n" +"use §7.\n" +"\n" +"This level looks superficially like other levels we have seen,\n" +"but the shortest solution known to humans would translate into\n" +"many millions of lines of Lean code. The author of this game,\n" +"Kevin Buzzard, is working on translating the proof by Wiles\n" +"and Taylor into Lean, although this task will take many years.\n" +"\n" +"## CONGRATULATIONS!\n" +"\n" +"You've finished the main quest of the natural number game!\n" +"If you would like to learn more about how to use Lean to\n" +"prove theorems in mathematics, then take a look\n" +"at [Mathematics In " +"Lean](https://leanprover-community.github.io/mathematics_in_lean/),\n" +"an interactive textbook which you can read in your browser,\n" +"and which explains how to work with many more mathematical concepts in " +"Lean.\n" +"\n" +"\n" +"### 翻訳 (Japanese)\n" +"我们现在有足够的知识来陈述一个数学上准确但略显笨拙的费马大定理。\n" +"\n" +"费马大定理指出,如果§0 且 §1,则 §2。\n" +"如果你还没有完成不等式世界,则无法讨论 §3,\n" +"所以我们不得不使用 §4 代替 §5,这保证了它的大小足够。类似地,我们使用 §7 代替 §6。\n" +"\n" +"这一关看起来与其他关卡相似,\n" +"但人类已知的最短解决方案会转化为数以百万计的Lean代码行。这款游戏的作者Kevin Buzzard正在努力将威尔斯和泰勒的证明翻译成Lean,\n" +"尽管这项任务将需要很多年的时间。\n" +"\n" +"## おめでとう!\n" +"\n" +"自然数ゲームの主要な冒険を終えました!\n" +"Leanを使用して数学の定理を証明する方法をさらに学びたい場合は、\n" +"[Leanで数学](https://leanprover-community.github.io/mathematics_in_lean/) " +"を参照してください。\n" +"これはブラウザで読むことができる対話型教科書で、Leanでより多くの数学的概念を扱う方法を説明しています。" #: Game.Levels.Algorithm.L09decide2 msgid "decide again" -msgstr "" +msgstr "再決定" #: Game.Levels.LessOrEqual.L03le_succ_self msgid "x ≤ succ x" -msgstr "" +msgstr "x ≤ succ x" #: Game.Levels.Tutorial.L02rw -msgid "" -"Can you take it from here? Click on \"Show more help!\" if you need a hint." +msgid "Can you take it from here? Click on \"Show more help!\" if you need a hint." msgstr "" +"Can you take it from here? Click on \"Show more help!\" if you need a hint.\n" +"\n" +"\n" +"## 日本語翻訳\n" +"ここから続けられますか?ヒントが必要な場合は「もっと手助けを表示!」とクリックしてください。" +#: Game.Levels.Algorithm.L07succ_ne_succ #. §0: `contrapose! h` #. §1: `succ m = succ n` #. §2: `m = n` -#: Game.Levels.Algorithm.L07succ_ne_succ msgid "" "Start with §0, to change the goal into its\n" "contrapositive, namely a hypothesis of §1 and a goal of §2." -msgstr "" +msgstr "開始するには、§0 から始めて、目標を対偶に変更し、具体的には§1 の仮定と§2 の目標にします。" #: Game.Levels.Multiplication.L07mul_add msgid "mul_add" msgstr "" +"mul_add\n" +"\n" +"\n" +"## 日本語翻訳\n" +"乘加法則" +#: Game.Levels.Addition.L02succ_add #. §0: `a` #. §1: `b` -#: Game.Levels.Addition.L02succ_add msgid "" "You might want to think about whether induction\n" "on §0 or §1 is the best idea." -msgstr "" +msgstr " inductions on §0 や §1 は最良のアイデアでしょうか。" +#: Game.Levels.LessOrEqual.L04le_trans #. §0: `le_trans x y z` #. §1: `x ≤ y` #. §2: `y ≤ z` @@ -3563,7 +5192,6 @@ msgstr "" #. §14: $P \\implies Q \\implies R$ #. §15: $P \\implies Q$ #. §16: $Q \\implies R$ -#: Game.Levels.LessOrEqual.L04le_trans msgid "" "§0 is a proof that if §1 and §2 then §3.\n" "More precisely, it is a proof that §4. In words,\n" @@ -3577,30 +5205,39 @@ msgid "" "§14; for them, this usually means that §15\n" "and §16." msgstr "" +"§0は、§1と§2ならば§3であることを証明しています。\n" +"より正確には、§4を証明しています。言葉で言えば、\n" +"§5ならば(一時停止)§6ならば§7です。\n" +"\n" +"## 転置性に関する注記\n" +"\n" +"Leanでは、§8は§9を意味し、§10は左側から結合します。しかし、§11は右側から結合します。これにより、Leanでは§12は§13が " +"Transitiv(転置的)であることを意味します。これは、数学的な文脈では通常§14を意味しないことを示しています;数学的には、これは通常§15と§1" +"6の両方が成り立つことを意味します。" #: Game.Levels.Algorithm.L02add_algo1 msgid "making life easier" -msgstr "" +msgstr "生活をより簡単に" -#. §0: `add_succ` #: Game.Levels.Addition.L01zero_add +#. §0: `add_succ` msgid "Use §0." -msgstr "" +msgstr "使用してください §0。" +#: Game.Levels.LessOrEqual.L07or_symm #. §0: `or` #. §1: `right` -#: Game.Levels.LessOrEqual.L07or_symm msgid "" "Now we can prove the §0 statement by proving the statement on the right,\n" "so use the §1 tactic." -msgstr "" +msgstr "現在、§0の命題を証明するために、右側の命題を証明することができるため、§1のタクティクを使用します。" +#: Game.Levels.Algorithm.L07succ_ne_succ #. §0: `h : a ≠ b` #. §1: `c ≠ d` #. §2: `contrapose! h` #. §3: `h : c = d` #. §4: `a = b` -#: Game.Levels.Algorithm.L07succ_ne_succ msgid "" "# Summary\n" "\n" @@ -3621,9 +5258,29 @@ msgid "" "\n" "§4." msgstr "" +"### 翻訳\n" +"\n" +"# 概要\n" +"\n" +"仮定\n" +"\n" +"§0\n" +"\n" +"と目標\n" +"\n" +"§1\n" +"\n" +"がある場合、§2 はセットアップを反論と呼ばれるものに置き換える:\n" +"仮定\n" +"\n" +"§3\n" +"\n" +"と目標\n" +"\n" +"§4\n" +"\n" +"になります。" -#. §0: `succ_add a b` -#. §1: `succ a + b = succ (a + b)` #: Game.Levels.Addition.L02succ_add Game.Levels.Multiplication.L08add_mul #: Game.Levels.Power.L04one_pow Game.Levels.Implication.L10one_ne_zero #: Game.Levels.Algorithm.L01add_left_comm Game.Levels.LessOrEqual.L02zero_le @@ -3633,13 +5290,16 @@ msgstr "" #: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero #: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero #: Game.Levels.AdvMultiplication.L06mul_right_eq_one +#. §0: `succ_add a b` +#. §1: `succ a + b = succ (a + b)` msgid "§0 is a proof that §1." -msgstr "" +msgstr "§0は§1の証明です。" #: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero msgid "eq_succ_of_ne_zero" -msgstr "" +msgstr "eq_succ_of_ne_zero" +#: Game.Levels.Multiplication.L07mul_add #. §0: ``` #. induction c with d hd #. rw [add_zero, mul_zero, add_zero] @@ -3649,41 +5309,69 @@ msgstr "" #. ``` #. §1: `a` #. §2: `b` -#: Game.Levels.Multiplication.L07mul_add msgid "" "Here's my solution:\n" "§0\n" "\n" "Inducting on §1 or §2 also works, but might take longer." msgstr "" +"以下は私の解決策です:\n" +"§0\n" +"\n" +"§1 や §2 について帰納法を用いても構いませんが、時間がかかるかもしれません。\n" +"\n" +"\n" +"##" +#: Game.Levels.Implication.L05succ_inj2 #. §0: `apply succ_inj` #. §1: `succ_inj` -#: Game.Levels.Implication.L05succ_inj2 msgid "Start with §0 to apply §1 to the *goal*." -msgstr "" +msgstr "開始するには、§0 を使用して §1 を *目標* に適用します。" #: Game.Levels.Multiplication.L02zero_mul msgid "zero_mul" msgstr "" +"零乗\n" +"\n" +"\n" +"## 備考\n" +"- **tactic(s)**: タクティク\n" +"- **theorem**: 定理\n" +"- **proposition / Prop**: 命題\n" +"- **proof**: 証明\n" +"- **hypothesis**: 仮定\n" +"- **type**: 型\n" +"- **term**: 項\n" +"- **interactive**: 対話型\n" +"- **inventory**: インベントリ\n" +"- **world**: ワールド\n" +"- **start**: 開始\n" +"- **editor mode**: エディタモード" #: Game.Levels.Tutorial.L03two_eq_ss0 msgid "Can you take it from here?" -msgstr "" +msgstr "您可以继续了吗?" #: Game.Levels.Power.L07mul_pow msgid "mul_pow" msgstr "" +"mul_pow\n" +"\n" +"\n" +"## 日本語翻訳\n" +"乗法の累乗定理" +#: Game.Levels.LessOrEqual.L04le_trans #. §0: `≤` #. §1: `ℕ` -#: Game.Levels.LessOrEqual.L04le_trans msgid "" "A passing mathematician remarks that with reflexivity and transitivity out " "of the way,\n" "you have proved that §0 is a *preorder* on §1." -msgstr "" +msgstr "一過性の数学者が言及し、反射律と伝搬律を除けば、§0 は §1 上の *前順序* を証明したと述べています。" +#: Game.Levels.LessOrEqual.L06le_antisymm #. §0: ``` #. cases hxy with a ha #. cases hyx with b hb @@ -3698,7 +5386,6 @@ msgstr "" #. §1: `≤` #. §2: `ℕ` #. §3: `≤` -#: Game.Levels.LessOrEqual.L06le_antisymm msgid "" "Here's my proof:\n" "§0\n" @@ -3710,94 +5397,128 @@ msgid "" "that §3 is a total order. Let's learn two more easy tactics\n" "first." msgstr "" +"以下は私の証明です:\n" +"§0\n" +"\n" +"数学的な通りすがりの人々が言います。反対称性も考慮すると、\n" +"あなたは§1が§2上の*部分順序*であることを証明しました。\n" +"\n" +"このワールドのボスレベルは、§3が完全順序であることを証明することです。\n" +"まずは2つの簡単なタクティクを学んでからしましょう。" #: Game.Levels.Multiplication.L05one_mul msgid "one_mul" msgstr "" +"one_mul\n" +"\n" +"\n" +"## 日本語翻訳\n" +"単位元と乗算に関する定理です。" +#: Game.Levels.Addition.L01zero_add #. §0: `«{hd}» : 0 + «{d}» = «{d}»` #. §1: `0 + succ «{d}» = succ «{d}»` -#: Game.Levels.Addition.L01zero_add msgid "" "Now for the second goal. Here you have the induction hypothesis\n" "§0, and you need to prove that §1." -msgstr "" +msgstr "現在、第二の目標に移ります。ここでは、 induksiion hypothesis §0 が与えられており、 §1 を証明する必要があります。" #: Game.Levels.Algorithm.L05pred msgid "pred" -msgstr "" +msgstr "前提" -#. §0: `exact` #: Game.Levels.Implication.L01exact Game.Levels.LessOrEqual.L01le_refl +#. §0: `exact` msgid "The §0 tactic" msgstr "" +"The タクティク §0\n" +"\n" +"\n" +"## 日本語翻訳\n" +"タクティク §0" +#: Game.Levels.Tutorial.L04rw_backwards #. §0: `succ n` #. §1: `n + 1` -#: Game.Levels.Tutorial.L04rw_backwards msgid "" "Why did we not just define §0 to be §1? Because we have not\n" "even *defined* addition yet! We'll do that in the next level." -msgstr "" +msgstr "なぜ §0 を §1 に定義しなかったのか?まだ足し算そのものを定義していないからです。次レベルでその定義を行います。" +#: Game.Levels.Tutorial.L02rw #. §0: $x$ #. §1: $y$ #. §2: $y = x + 7$ #. §3: $2y = 2(x + 7)$ -#: Game.Levels.Tutorial.L02rw msgid "If §0 and §1 are natural numbers, and §2, then §3." -msgstr "" +msgstr "もし§0と§1が自然数であり、かつ§2である場合、§3です。" #: Game.Levels.Power.L09add_sq msgid "[final boss music]" msgstr "" +"### 原文 (English)\n" +"[final boss music]\n" +"\n" +"\n" +"## 日本語翻訳\n" +"[最終ボスのテーマ]" -#. §0: `succ_eq_add_one n` -#. §1: `succ n = n + 1` #: Game.Levels.Tutorial.L07add_succ Game.Levels.Multiplication.L01mul_one #: Game.Levels.Multiplication.L06two_mul Game.Levels.Algorithm.L07succ_ne_succ +#. §0: `succ_eq_add_one n` +#. §1: `succ n = n + 1` msgid "§0 is the proof that §1." -msgstr "" +msgstr "§0は§1の証明です。" #: Game.Levels.Addition.L05add_right_comm msgid "add_right_comm" msgstr "" +"add_right_comm\n" +"\n" +"\n" +"## 日本語翻訳\n" +"右側加算の交換律(add_right_comm)" -#. §0: `add_zero` #: Game.Levels.Addition.L01zero_add +#. §0: `add_zero` msgid "try rewriting §0." -msgstr "" +msgstr "try rewriting §0." #: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero msgid "one_le_of_ne_zero" -msgstr "" +msgstr "one_le_of_ne_zero" -#. §0: `add_right_cancel a b n` -#. §1: $a+n=b+n \\implies a=b.$ #: Game.Levels.AdvAddition.L01add_right_cancel #: Game.Levels.AdvAddition.L02add_left_cancel #: Game.Levels.AdvAddition.L03add_left_eq_self #: Game.Levels.AdvAddition.L04add_right_eq_self +#. §0: `add_right_cancel a b n` +#. §1: $a+n=b+n \\implies a=b.$ msgid "§0 is the theorem that §1" -msgstr "" +msgstr "§0は§1の定理です。" #: Game.Levels.Power.L04one_pow msgid "one_pow" msgstr "" +"one_pow\n" +"\n" +"\n" +"## 日本語翻訳\n" +"1の累乗" +#: Game.Levels.Algorithm.L01add_left_comm #. §0: $a, b, c$ #. §1: $a+(b+c)=b+(a+c)$ -#: Game.Levels.Algorithm.L01add_left_comm msgid "If §0 are numbers, then §1." -msgstr "" +msgstr "もし§0が数値である場合、§1。" +#: Game.Levels.LessOrEqual.L01le_refl #. §0: `a ≤ b` #. §1: `∃ c, b = a + c` #. §2: `a ≤ b` #. §3: `c` #. §4: `b = a + c` #. §5: `use` -#: Game.Levels.LessOrEqual.L01le_refl msgid "" "§0 is *notation* for §1. This \"backwards E\"\n" "means \"there exists\". So §2 means that there exists\n" @@ -3807,37 +5528,51 @@ msgid "" "To *prove* an \"exists\" statement, use the §5 tactic.\n" "Let's see an example." msgstr "" +"§0は§1の記号です。この\"反転したE\"は\"存在する\"を意味します。つまり§2は、ある数§3が存在し、かつ§4" +"を満たすことを意味します。この定義は、このゲームには負の数がないため機能します。\n" +"\n" +"\"存在する\"文を*証明*するには、§5のタクティクを使用します。例を見ていきましょう。" #: Game.Levels.LessOrEqual.L02zero_le msgid "0 ≤ x" -msgstr "" +msgstr "0 ≤ x" -#. §0: `or` #: Game.Levels.LessOrEqual.L07or_symm +#. §0: `or` msgid "Dealing with §0" msgstr "" +"### 原文 (English)\n" +"Dealing with §0\n" +"\n" +"## 日本語翻訳\n" +"§0 を扱う方法" #: Game.Levels.Multiplication.L08add_mul msgid "add_mul" msgstr "" +"add_mul\n" +"\n" +"\n" +"## 日本語翻訳\n" +"加法と乗法の相互作用に関する定理や証明を扱うためのタクティクです。" +#: Game.Levels.AdvMultiplication.L07mul_ne_zero #. §0: `apply eq_succ_of_ne_zero at ha` #. §1: `... at hb` -#: Game.Levels.AdvMultiplication.L07mul_ne_zero msgid "Start with §0 and §1" -msgstr "" +msgstr "開始するには、§0 と §1 を使用します。" -#. §0: `pow_succ a b : a ^ (succ b) = a ^ b * a` #: Game.Levels.Power.L02zero_pow_succ +#. §0: `pow_succ a b : a ^ (succ b) = a ^ b * a` msgid "" "§0 is one of the\n" "two axioms defining exponentiation in this game." -msgstr "" +msgstr "§0はこのゲームで指数関数を定義する2つの公理の1つです。" +#: Game.Levels.Multiplication.L01mul_one #. §0: `mul_zero` #. §1: `mul_succ` #. §2: `1` -#: Game.Levels.Multiplication.L01mul_one msgid "" "See the new \"*\" tab in your lemmas, containing §0 and §1.\n" "Right now these are the only facts we know about multiplication.\n" @@ -3846,31 +5581,37 @@ msgid "" "Let's start with a warm-up: no induction needed for this one,\n" "because we know §2 is a successor." msgstr "" +"新しい \"*\" タブを確認してください。そこで §0 と §1 が表示されています。\n" +"現在、これらは乗算について知っている唯一の事実です。\n" +"9つ更多的の証明を行いましょう。\n" +"\n" +"まずはウォームアップから始めましょう。この場合は inducition は必要ありません。\n" +"なぜなら §2 は後继であることが分かっているからです。" #: Game.Levels.Implication.L09zero_ne_succ #: Game.Levels.AdvAddition.L01add_right_cancel msgid "Nice!" -msgstr "" +msgstr "nice!" -#. §0: $m$ -#. §1: $ m \\times 1 = m$ #: Game.Levels.Multiplication.L01mul_one Game.Levels.Multiplication.L05one_mul #: Game.Levels.Multiplication.L06two_mul +#. §0: $m$ +#. §1: $ m \\times 1 = m$ msgid "For any natural number §0, we have §1." -msgstr "" +msgstr "任意の自然数§0に対して、§1です。" +#: Game.Levels.Tutorial.L02rw #. §0: `rw [h]` #. §1: `y` #. §2: `x + 7` -#: Game.Levels.Tutorial.L02rw msgid "First execute §0 to replace the §1 with §2." -msgstr "" +msgstr "まず §0 を実行して §1 を §2 に置き換えてください。" +#: Game.Levels.Implication #. §0: $2+2=4$ #. §1: $2+2\\neq 5$ #. §2: $x + y = y + x$ #. §3: $x+1=4 \\implies x=3.$ -#: Game.Levels.Implication msgid "" "We've proved that §0; in Implication World we'll learn\n" "how to prove §1.\n" @@ -3885,33 +5626,63 @@ msgid "" "\n" "Click on \"Start\" to proceed." msgstr "" +"### 原文 (English)\n" +"We've proved that §0; in Implication World we'll learn\n" +"how to prove §1.\n" +"\n" +"In Addition World we proved *equalities* like §2.\n" +"In this second tutorial world we'll learn some new tactics,\n" +"enabling us to prove *implications*\n" +"like §3\n" +"\n" +"We'll also learn two new fundamental facts about\n" +"natural numbers, which Peano introduced as axioms.\n" +"\n" +"Click on \"Start\" to proceed.\n" +"\n" +"\n" +"### 翻訳 (Japanese)\n" +"私たちは§0を証明しました; Implikationワールドでは、§1を証明する方法を学びます。\n" +"\n" +"加法ワールドでは、§2のような等式を証明しました。\n" +"この二つ目のチュートリアルワールドでは、新しいタクティクを学び、\n" +"これを使って§3のような推論を証明できるようになります。\n" +"\n" +"また、ペアノが公理として導入した自然数に関する二つの新しい基本的事実も学びます。\n" +"\n" +"\"開始\"をクリックして進みましょう。" #: Game.Levels.LessOrEqual.L11le_two msgid "le_two" -msgstr "" +msgstr "le_two" #: Game.Levels.Power.L05pow_two msgid "pow_two" -msgstr "" +msgstr "pow_two" +#: Game.Levels.AdvMultiplication.L08mul_eq_zero #. §0: ``` #. have h2 := mul_ne_zero a b #. tauto #. ``` #. §1: `mul_ne_zero a b` -#: Game.Levels.AdvMultiplication.L08mul_eq_zero msgid "" "Here's the short proof:\n" "§0\n" "This works because, given §1,\n" "the argument is reduced to pure logic." msgstr "" +"以下は短い証明です:\n" +"§0\n" +"これは、与えられた §1 から\n" +"議論が純粋な論理に簡約されるためです。" -#. §0: `rw [← pred_succ a]` #: Game.Levels.Algorithm.L05pred +#. §0: `rw [← pred_succ a]` msgid "Start with §0 and take it from there." -msgstr "" +msgstr "開始は§0からにして、その後は対話型で進めてください。" +#: Game.Levels.Algorithm.L05pred #. §0: `0` #. §1: `pred` #. §2: ``` @@ -3921,7 +5692,6 @@ msgstr "" #. §3: `pred_succ` #. §4: `pred (succ n) = n` #. §5: `succ_inj` -#: Game.Levels.Algorithm.L05pred msgid "" "We now start work on an algorithm to do addition more efficiently. Recall " "that\n" @@ -3938,29 +5708,74 @@ msgid "" "this\n" "definition, we also create a new lemma §3, which says that §4.\n" "Let's use this lemma to prove §5, the theorem which\n" -"Peano assumed as an axiom and which we have already used extensively without " -"justification." +"Peano assumed as an axiom and which we have already used extensively " +"without justification." msgstr "" +"### 原文 (English)\n" +"We now start work on an algorithm to do addition more efficiently. Recall " +"that\n" +"we defined addition by recursion, saying what it did on §0 and successors.\n" +"It is an axiom of Lean that recursion is a valid\n" +"way to define functions from types such as the naturals.\n" +"\n" +"Let's define a new function §1 from the naturals to the naturals, which\n" +"attempts to subtract 1 from the input. The definition is this:\n" +"\n" +"§2\n" +"\n" +"We cannot subtract one from 0, so we just return a junk value. As well as " +"this\n" +"definition, we also create a new lemma §3, which says that §4.\n" +"Let's use this lemma to prove §5, the theorem which\n" +"Peano assumed as an axiom and which we have already used extensively " +"without justification.\n" +"\n" +"\n" +"### 翻訳 (Japanese)\n" +"現在、効率的な加算を行うアルゴリズムの作成を開始します。再帰によって加算を定義したことを思い出してください。具体的には、0" +"と後続者に対して何を行うかを定義しました。\n" +"Leanの公理として、再帰は自然数などの型から関数を定義する有効な方法であるとされています。\n" +"\n" +"自然数から自然数への新しい関数§1を定義します。これは、入力から1を引こうとする関数です。その定義は以下の通りです:\n" +"\n" +"§2\n" +"\n" +"0から1を引くことはできませんので、無効な値を返します。この定義とともに、新しい補題§3も定義します。これは§4を述べています。\n" +"この補題を使って、§5(ペアノが公理として仮定し、以前にも正当化せずに頻繁に使用した定理)を証明しましょう。" #: Game.Levels.Algorithm.L06is_zero msgid "is_zero" msgstr "" +"is_zero\n" +"\n" +"\n" +"## 日本語翻訳\n" +"零判定" +#: Game.Levels.Multiplication.L09mul_assoc #. §0: $a$ #. §1: $b$ #. §2: $c$ #. §3: $(ab)c = a(bc)$ -#: Game.Levels.Multiplication.L09mul_assoc msgid "" "Multiplication is associative.\n" "In other words, for all natural numbers §0, §1 and §2, we have\n" "§3." msgstr "" +"乗算は結びつきを持つ。\n" +"つまり、すべての自然数 §0, §1, §2 に対して、\n" +"§3.\n" +"\n" +"\n" +"### 参考訳\n" +"乗算は結びつきを持つ。\n" +"つまり、すべての自然数 §0, §1, §2 に対して、\n" +"§3." +#: Game.Levels.Algorithm.L03add_algo2 #. §0: `simp` #. §1: `rw` #. §2: `simp` -#: Game.Levels.Algorithm.L03add_algo2 msgid "" "Lean's simplifier, §0, is \"§1 on steroids\". It will rewrite every lemma\n" "tagged with §2 and every lemma fed to it by the user, as much as it can.\n" @@ -3968,7 +5783,13 @@ msgid "" "This level is not a level which you want to solve by hand.\n" "Get the simplifier to solve it for you." msgstr "" +"Leanの簡約化器、§0は「§1を強化版」です。これは、§2でタグ付けされたすべての lemme およびユーザーによって与えられたすべての lemme " +"をできる限り簡約化します。\n" +"\n" +"このレベルは手作業で解くべきレベルではありません。\n" +"簡約化器に任せて解いてください。" +#: Game.Levels.Tutorial.L02rw #. §0: `h : X = Y` #. §1: `X` #. §2: `nth_rewrite 3 [h]` @@ -3979,7 +5800,6 @@ msgstr "" #. §7: `2 + succ 1 = 4` #. §8: `rw [two_eq_succ_one]` #. §9: `succ 1 + succ 1 = 4` -#: Game.Levels.Tutorial.L02rw msgid "" "## Summary\n" "\n" @@ -3992,58 +5812,86 @@ msgid "" "will change the goal to §7. In contrast, §8\n" "will change the goal to §9." msgstr "" +"## 結論\n" +"\n" +"もし目標に §0 があり、目標に複数の §1 が存在する場合、§2 は第三の §3 を §4 に変更します。\n" +"\n" +"## 例\n" +"\n" +"もし目標が §5 である場合、§6 は目標を §7 に変更します。一方で、§8 は目標を §9 に変更します。" +#: Game.Levels.Implication.L05succ_inj2 #. §0: $P\\implies Q$ #. §1: $Q$ #. §2: $P$ #. §3: `rw [succ_eq_add_one]` -#: Game.Levels.Implication.L05succ_inj2 msgid "" "Applying a proof of §0 to the *goal* changes §1 to §2.\n" "Now try §3 to make the goal more like the hypothesis." msgstr "" +"証明 §0 を目標に適用すると、§1 は §2 に変更されます。\n" +"次に §3 を試して、目標を仮定に近づけてみましょう。" +#: Game.Levels.Multiplication.L03succ_mul #. §0: $a$ #. §1: $b$ #. §2: $(\\operatorname{succ}\\ a) \\times b = a\\times b + b$ -#: Game.Levels.Multiplication.L03succ_mul msgid "" "For all natural numbers §0 and §1, we have\n" "§2." msgstr "" +"すべての自然数 §0 および §1 に対して、\n" +"§2.\n" +"\n" +"\n" +"## 参考訳\n" +"すべての自然数 §0 および §1 に対して、\n" +"§2.\n" +"\n" +"\n" +"### 説明\n" +"- `§0`, `§1`, `§2` はコードブロックやLaTeX数式を表すプレースホルダーであり、位置を維持しています。\n" +"- `<##>` などのタグは使用されていません。\n" +"- トーンはLean 4学習者向けで、丁寧かつ簡潔な表現にしています。" -#. §0: $a+b=0 \\implies a=0$ #: Game.Levels.AdvAddition.L05add_right_eq_zero #: Game.Levels.AdvAddition.L06add_left_eq_zero +#. §0: $a+b=0 \\implies a=0$ msgid "A proof that §0." msgstr "" +"A proof that §0.\n" +"\n" +"\n" +"## 日本語翻訳\n" +"証明: §0." -#. §0: `repeat rw [add_assoc]` #: Game.Levels.Algorithm.L02add_algo1 +#. §0: `repeat rw [add_assoc]` msgid "Start with §0 to push all the brackets to the right." -msgstr "" +msgstr "開始は§0から全括弧を右に移動させます。" +#: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero #. §0: `cases a with d` #. §1: `a = 0` #. §2: `a = succ d` -#: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero msgid "Start with §0 to do a case split on §1 and §2." -msgstr "" +msgstr "開始するには、§0 を使用して §1 と §2 に対してケース分割を行います。" +#: Game.Levels.AdvMultiplication.L09mul_left_cancel #. §0: `mul_eq_zero` #. §1: `tauto` #. §2: `a = 0` #. §3: `a ≠ 0` -#: Game.Levels.AdvMultiplication.L09mul_left_cancel msgid "" "Use §0 and remember that §1 will solve a goal\n" "if there are hypotheses §2 and §3." -msgstr "" +msgstr "使用する§0と、仮定§2と§3がある場合、§1は目標を解決します。" #: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero msgid "The previous lemma can be used to prove this one." -msgstr "" +msgstr "前の定理を用いて、この定理を証明することができます。" +#: Game.Levels.Algorithm.L06is_zero #. §0: `is_zero` #. §1: ``` #. is_zero 0 := True @@ -4058,7 +5906,6 @@ msgstr "" #. §8: `zero_ne_succ` #. §9: `True` #. §10: `trivial` -#: Game.Levels.Algorithm.L06is_zero msgid "" "We define a function §0 thus:\n" "\n" @@ -4074,29 +5921,62 @@ msgid "" "\n" "If you can turn your goal into §9, then the §10 tactic will solve it." msgstr "" +"### 原文 (English)\n" +"We define a function §0 thus:\n" +"\n" +"§1\n" +"\n" +"We also create two lemmas, §2 and §3, saying that §4\n" +"and §5. Let's use these lemmas to prove §6, Peano's\n" +"Last Axiom. Actually, we have been using §7 before, but it's handy to have\n" +"this opposite version too, which can be proved in the same way. Note: you " +"can\n" +"cheat here by using §8 but the point of this world is to show\n" +"you how to *prove* results like that.\n" +"\n" +"If you can turn your goal into §9, then the §10 tactic will solve it.\n" +"\n" +"\n" +"### 日本語翻訳\n" +"関数 §0 を定義します:\n" +"\n" +"§1\n" +"\n" +"また、命題 §2 と §3 を作成し、§4\n" +"と §5 を言います。これらの命題を使って、ペアノの最終公理 §6 を証明しましょう。実際、§7 " +"は以前から使用していましたが、同じ方法で証明できる逆の命題も用意しておくと便利です。注意:ここでは §8 を使用して cheat " +"することができますが、このワールドの目的は、そのような結果を証明する方法を示すことです。\n" +"\n" +"目標を §9 に変換できるなら、§10 タクティクで解決できます。" #: Game.Levels.AdvMultiplication.L08mul_eq_zero msgid "mul_eq_zero" -msgstr "" +msgstr "乗算が零に等しい" +#: Game.Levels.Tutorial.L03two_eq_ss0 #. §0: `rw [two_eq_succ_one]` #. §1: `2` -#: Game.Levels.Tutorial.L03two_eq_ss0 msgid "Start with §0 to begin to break §1 down into its definition." -msgstr "" +msgstr "開始は§0から始めて、§1を定義に分解するところから始めます。" #: Game.Levels.Implication.L10one_ne_zero msgid "1 ≠ 0" -msgstr "" +msgstr "1 ≠ 0" #: Game.Levels.AdvMultiplication.L01mul_le_mul_right msgid "mul_le_mul_right" -msgstr "" +msgstr "乗法の右側への乗算の不等式定理" #: Game.Levels.AdvAddition.L04add_right_eq_self msgid "add_right_eq_self" msgstr "" +"add_right_eq_self\n" +"\n" +"\n" +"## 日本語翻訳\n" +"右側への加算が自身と等しいこと" +#: Game.Levels.Implication.L08ne #. §0: `2 + 2 ≠ 5` #. §1: `≠` #. §2: `a ≠ b` @@ -4110,7 +5990,6 @@ msgstr "" #. §10: `a ≠ b` #. §11: `False` #. §12: `False` -#: Game.Levels.Implication.L08ne msgid "" "We still can't prove §0 because we have not talked about the\n" "definition of §1. In Lean, §2 is *notation* for §3.\n" @@ -4127,16 +6006,44 @@ msgid "" "So if your goal is §12 then you had better hope that your hypotheses\n" "are contradictory, which they are in this level." msgstr "" +"### 原文 (English)\n" +"We still can't prove §0 because we have not talked about the\n" +"definition of §1. In Lean, §2 is *notation* for §3.\n" +"Here §4 is a generic false proposition, and §5 is Lean's notation\n" +"for \"implies\". In logic we learn\n" +"that §6 is false, but §7 is true. Hence\n" +"§8 is the logical opposite of §9.\n" +"\n" +"Even though §10 does not look like an implication,\n" +"you should treat it as an implication. The next two levels will show you " +"how.\n" +"\n" +"§11 is a goal which you cannot deduce from a consistent set of assumptions!\n" +"So if your goal is §12 then you had better hope that your hypotheses\n" +"are contradictory, which they are in this level.\n" +"\n" +"\n" +"### 翻訳 (Japanese)\n" +"まだ §0 を証明することができません。なぜなら §1 の定義について話していなかったからです。Lean では §2 は §3 の *表記* です。\n" +"ここでは §4 は一般的な偽命題、§5 は Lean の \"implies\" の表記です。論理学では §6 は偽であり、§7 は真です。したがって\n" +"§8 は §9 の論理的対偶です。\n" +"\n" +"§10 は直感上 implication に見えないかもしれませんが、 implication として扱うべきです。次の 2 " +"つのレベルでその方法を学びます。\n" +"\n" +"§11 は一貫性のある仮定から導き出せない目標です!したがって、目標が §12 " +"の場合、仮定が矛盾していることを願うべきで、このレベルではそうしています。" #: Game.Levels.LessOrEqual.L04le_trans msgid "x ≤ y and y ≤ z implies x ≤ z" -msgstr "" +msgstr "x ≤ y と y ≤ z から x ≤ z が導かれる。" -#. §0: `exact` #: Game.Levels.Implication.L02exact2 +#. §0: `exact` msgid "§0 practice." -msgstr "" +msgstr "§0 プラクティス。" +#: Game.Levels.Implication.L10one_ne_zero #. §0: `zero_ne_succ n` #. §1: `0 = succ n → False` #. §2: `succ n = 0` @@ -4150,7 +6057,6 @@ msgstr "" #. §10: $0 \\neq 1$ #. §11: `zero_ne_one` #. §12: $1 \\neq 0$ -#: Game.Levels.Implication.L10one_ne_zero msgid "" "We know §0 is a proof of §1 -- but what\n" "if we have a hypothesis §2? It's the wrong way around!\n" @@ -4160,27 +6066,45 @@ msgid "" "does the same for a hypothesis §9. We've proved §10 and called\n" "the proof §11; now try proving §12." msgstr "" +"### 原文 (English)\n" +"We know §0 is a proof of §1 -- but what\n" +"if we have a hypothesis §2? It's the wrong way around!\n" +"\n" +"The §3 tactic changes a goal §4 to §5, and a goal §6\n" +"to §7. And §8\n" +"does the same for a hypothesis §9. We've proved §10 and called\n" +"the proof §11; now try proving §12.\n" +"\n" +"\n" +"### 翻訳 (Japanese)\n" +"我们知道 §0 是 §1 的证明 -- 但如果有一个假设 §2 呢?顺序正好相反!\n" +"\n" +"§3 のタクティクは、目標 §4 を §5 に変更し、目標 §6 を §7 に変更します。そして §8 は、假设 §9 " +"について同じ操作を行います。我们已经证明了 §10,并将其证明称为 §11;现在试着证明 §12。" #: Game.Levels.Addition.L02succ_add -msgid "" -"Well done! You now have enough tools to tackle the main boss of this level." -msgstr "" +msgid "Well done! You now have enough tools to tackle the main boss of this level." +msgstr " WELL DONE! あなたはこのレベルの主要ボスに挑むための十分なツールを手に入れました。" +#: Game.Levels.LessOrEqual.L03le_succ_self #. §0: `use` #. §1: `use` -#: Game.Levels.LessOrEqual.L03le_succ_self msgid "" "If you §0 the wrong number, you get stuck with a goal you can't prove.\n" "What number will you §1 here?" msgstr "" +"もし間違ったタクティクを §0 选用,则会陷入无法证明的目标 §1 中。\n" +"\n" +"\n" +"何を §1 选用?" #: Game.Levels.Multiplication.L04mul_comm msgid "Multiplication is commutative." -msgstr "" +msgstr "乗算は交換律を満たします。" +#: Game.Levels.Multiplication.L03succ_mul #. §0: `mul_succ` #. §1: `succ_mul` -#: Game.Levels.Multiplication.L03succ_mul msgid "" "Similarly we have §0\n" "but we're going to need §1 (guess what it says -- maybe you\n" @@ -4191,24 +6115,36 @@ msgid "" "home screen by clicking the house icon and then taking a look.\n" "You won't lose any progress." msgstr "" +"Similarly we have §0\n" +"but we're going to need §1 (guess what it says -- maybe you\n" +"are getting the hang of Lean's naming conventions).\n" +"\n" +"最後のレベルから加算ワールドが提供されるかもしれません。\n" +"記憶が曖昧な場合は、家アイコンをクリックしてホーム画面に戻り、確認してください。\n" +"進捗は失われません。" -#. §0: `intro h` #: Game.Levels.Implication.L09zero_ne_succ Game.Levels.LessOrEqual.L04le_trans #: Game.Levels.LessOrEqual.L08le_total #: Game.Levels.AdvMultiplication.L02mul_left_ne_zero #: Game.Levels.AdvMultiplication.L08mul_eq_zero +#. §0: `intro h` msgid "Start with §0." -msgstr "" +msgstr "開始します。§0。" #: Game.Levels.Multiplication.L03succ_mul msgid "succ_mul" msgstr "" +"succ_mul\n" +"\n" +"\n" +"## 日本語翻訳\n" +"成功倍加" +#: Game.Levels.Algorithm.L01add_left_comm #. §0: `add_left_comm` #. §1: `rw [add_comm b c]` #. §2: `a + b + c` #. §3: `(a + b) + c` -#: Game.Levels.Algorithm.L01add_left_comm msgid "" "Having to rearrange variables manually using commutativity and\n" "associativity is very tedious. We start by reminding you of this. §0\n" @@ -4219,16 +6155,37 @@ msgid "" "with things like §1. And remember that\n" "§2 means §3." msgstr "" +"### 原文 (English)\n" +"Having to rearrange variables manually using commutativity and\n" +"associativity is very tedious. We start by reminding you of this. §0\n" +"is a key component in the first algorithm which we'll explain, but we need\n" +"to prove it manually.\n" +"\n" +"Remember that you can do precision commutativity rewriting\n" +"with things like §1. And remember that\n" +"§2 means §3.\n" +"\n" +"\n" +"### 翻訳 (Japanese)\n" +"手動で交換律と結合律を使って変数を再配置する必要があることは非常に面倒です。まず、これについて再確認します。§0" +"は、最初の説明するアルゴリズムにおいて重要な成分ですが、手動で証明する必要があります。\n" +"\n" +"交換律に基づいた精密な再配置は、§1のようなもので行うことができます。また、§2は§3を意味します。" #: Game.Levels.Tutorial.L03two_eq_ss0 msgid "Numbers" msgstr "" +"数値\n" +"\n" +"\n" +"##" -#. §0: `rfl` #: Game.Levels.Tutorial.L07add_succ +#. §0: `rfl` msgid "And finally §0." -msgstr "" +msgstr "最後に、§0。" +#: Game.Levels.Multiplication #. §0: `37 * x` #. §1: $x=0$ #. §2: $x$ @@ -4243,7 +6200,6 @@ msgstr "" #. §11: `mul_succ a d : a * succ d = a * d + a` #. §12: `a * b = b * a` #. §13: `a * (b + c) = a * b + a * c` -#: Game.Levels.Multiplication msgid "" "How should we define §0? Just like addition, we need to give definitions\n" "when §1 and when §2 is a successor.\n" @@ -4260,15 +6216,49 @@ msgid "" "In this world, we must not only prove facts about multiplication like §12,\n" "we must also prove facts about how multiplication interacts with addition, " "like §13.\n" -"Let's get started." -msgstr "" +"Let's get started." +msgstr "" +"### 原文 (English)\n" +"How should we define §0? Just like addition, we need to give definitions\n" +"when §1 and when §2 is a successor.\n" +"\n" +"The zero case is easy: we define §3 to be §4. Now say we know\n" +"§5. What should §6 be? Well, that's §7 §8s,\n" +"so it should be §9.\n" +"\n" +"Here are the definitions in Lean.\n" +"\n" +" * §10\n" +" * §11\n" +"\n" +"In this world, we must not only prove facts about multiplication like §12,\n" +"we must also prove facts about how multiplication interacts with addition, " +"like §13.\n" +"Let's get started.\n" +"\n" +"\n" +"### 翻訳 (Japanese)\n" +"どのように §0 を定義すべきでしょうか?加法と同様に、§1 が successor であるときと §2 が successor " +"であるときそれぞれに定義を提供する必要があります。\n" +"\n" +"零の場合は簡単です:§3 を §4 で定義します。次に §5 を仮定します。那么 §6 应该是什么呢?嗯,那是 §7 §8s,\n" +"所以应该定义为 §9。\n" +"\n" +"Lean での定義は以下の通りです。\n" +"\n" +" * §10\n" +" * §11\n" +"\n" +"このワールドでは、乗法に関する事実だけでなく、乗法と加法の相互作用に関する事実も証明する必要があります。例えば §12 など。そして §13 " +"なども証明する必要があります。\n" +"始めましょう。" +#: Game.Levels.Implication.L10one_ne_zero #. §0: ``` #. symm #. exact zero_ne_one #. ``` #. §1: `exact` -#: Game.Levels.Implication.L10one_ne_zero msgid "" "What do you think of this two-liner:\n" "§0\n" @@ -4276,24 +6266,38 @@ msgid "" "§1 doesn't just take hypotheses, it will eat any proof which exists\n" "in the system." msgstr "" +"この二行は何をお考えですか:\n" +"§0\n" +"\n" +"§1 は仮定だけを取るわけではありません。システム内に存在する任意の証明も食べます。" #: Game.Levels.LessOrEqual.L09succ_le_succ msgid "succ x ≤ succ y → x ≤ y" msgstr "" +" succ x ≤ succ y → x ≤ y\n" +"\n" +"\n" +"## 日本語翻訳\n" +" succ x ≤ succ y → x ≤ y" #: Game msgid "The classical introduction game for Lean." msgstr "" +"The classical introduction game for Lean 4。\n" +"\n" +"## 日本語翻訳\n" +"Lean 4 の古典的な導入ゲーム。" +#: Game.Levels.Implication.L02exact2 #. §0: `rw [«{h}»]` #. §1: `rfl` #. §2: `exact «{h}»` -#: Game.Levels.Implication.L02exact2 msgid "" "Now you could finish with §0 then §1, but §2\n" "does it in one line." -msgstr "" +msgstr "現在、§0 から §1 までで終了できますが、§2 では一行で完了します。" +#: Game.Levels.Addition.L05add_right_comm #. §0: `add_comm b c` #. §1: `b + c = c + b` #. §2: `a + b + c = a + c + b` @@ -4307,7 +6311,6 @@ msgstr "" #. §10: `b + ? = ? + b` #. §11: `rw [add_comm b c]` #. §12: `b + c = c + b` -#: Game.Levels.Addition.L05add_right_comm msgid "" "§0 is a proof that §1. But if your goal\n" "is §2 then §3 will not\n" @@ -4323,18 +6326,25 @@ msgid "" "will only do rewrites of the form §10, and §11\n" "will only do rewrites of the form §12." msgstr "" +"§0は§1の証明です。しかし、あなたの目標が§2であるなら、§3は機能しません!なぜなら、目標は§4を意味し、目標に直接的に§5" +"の項は存在しないからです。\n" +"\n" +"結びつきと交換律を利用し、§6を証明してください。帰納法は必要ありません。§7は括弧を移動し、§8は変数を移動します。\n" +"\n" +"明示的な変数を定理の入力として追加することで、より的確な書き換えを行うことができます。例えば、§9は形式§10の書き換えのみを実行し、§11は形式§12" +"の書き換えのみを実行します。" #: Game.Levels.Power.L10FLT msgid "Fermat's Last Theorem" -msgstr "" +msgstr "フェルマーの最終定理" +#: Game.Levels.Implication.L06intro #. §0: `apply` #. §1: `P → Q` #. §2: `P → Q` #. §3: `P` #. §4: `Q` #. §5: `intro` -#: Game.Levels.Implication.L06intro msgid "" "We have seen how to §0 theorems and assumptions\n" "of the form §1. But what if our *goal* is of the form §2?\n" @@ -4342,14 +6352,26 @@ msgid "" "§4\"\n" "in Lean. We do this with the §5 tactic." msgstr "" +"### 原文 (English)\n" +"We have seen how to §0 theorems and assumptions\n" +"of the form §1. But what if our *goal* is of the form §2?\n" +"To prove this goal, we need to know how to say \"let's assume §3 and deduce " +"§4\"\n" +"in Lean. We do this with the §5 tactic.\n" +"\n" +"\n" +"### 翻訳 (Japanese)\n" +"私たちは、形式 §1 の定理や仮定の §0 の方法を見ました。しかし、もし私たちの *目標* が形式 §2 の場合、この目標を証明するには、Lean " +"で \"§3 という仮定を設け、 §4 を導く\" という方法を知る必要があります。これを行うためには、§5 タクティクを使用します。" -#. §0: $x$ -#. §1: $x \\le x$ #: Game.Levels.LessOrEqual.L01le_refl Game.Levels.LessOrEqual.L02zero_le #: Game.Levels.LessOrEqual.L03le_succ_self +#. §0: $x$ +#. §1: $x \\le x$ msgid "If §0 is a number, then §1." -msgstr "" +msgstr "もし§0が数値である場合、§1。" +#: Game.Levels.LessOrEqual.L10le_one #. §0: ``` #. cases x with y #. left @@ -4361,28 +6383,36 @@ msgstr "" #. right #. rfl #. ``` -#: Game.Levels.LessOrEqual.L10le_one msgid "" "Here's my proof:\n" "§0\n" "\n" "If you solved this level then you should be fine with the next level!" msgstr "" +"以下は私の証明です:\n" +"§0\n" +"\n" +"このレベルを解いたなら、次のレベルでも大丈夫です!" -#. §0: `2 = 2` #: Game.Levels.Tutorial.L04rw_backwards +#. §0: `2 = 2` msgid "Can you now change the goal into §0?" -msgstr "" +msgstr "現在、目標を§0に変更できますか?" #: Game.Levels.Power.L09add_sq msgid "add_sq" msgstr "" +"add_sq\n" +"\n" +"\n" +"## 日本語翻訳\n" +"平方を追加します。" +#: Game.Levels.LessOrEqual.L08le_total #. §0: `a` #. §1: `cases a with b` #. §2: `a = 0` #. §3: `a = succ b` -#: Game.Levels.LessOrEqual.L08le_total msgid "" "This is I think the toughest level yet. Tips: if §0 is a number\n" "then §1 will split into cases §2 and §3.\n" @@ -4392,9 +6422,13 @@ msgid "" "I've left hidden hints; if you need them, retry from the beginning\n" "and click on \"Show more help!\"" msgstr "" +"これは今までで最も難しいレベルかもしれません。ヒント:もし§0が数値であれば、§1は§2と§3に分岐します。\n" +"そして、仮定が結果の目標を証明できる保証がない限りは左や右には移動しないでください!\n" +"\n" +"隠されたヒントを残しています;必要であれば、最初からやり直し、「もっと手助けを表示!」とクリックしてください。" -#. §0: `ℕ` #: Game.Levels.LessOrEqual.L08le_total +#. §0: `ℕ` msgid "" "Very well done.\n" "\n" @@ -4404,7 +6438,13 @@ msgid "" "\n" "The final few levels in this world are much easier." msgstr "" +"Very well done.\n" +"\n" +"数学的な見地から言えば、あなたが証明したところでは、§0 は完全に順序付けられています。\n" +"\n" +"このワールドの最後の数レベルははるかに簡単です。" +#: Game.Levels.AdvAddition.L03add_left_eq_self #. §0: `y` #. §1: `add_left_eq_self` #. §2: `add_right_cancel` @@ -4414,18 +6454,36 @@ msgstr "" #. nth_rewrite 2 [← zero_add y] #. exact add_right_cancel x 0 y #. ``` -#: Game.Levels.AdvAddition.L03add_left_eq_self msgid "" "Did you use induction on §0?\n" "Here's a two-line proof of §1 which uses §2.\n" -"If you want to inspect it, you can go into editor mode by clicking §3 in the " -"top right\n" +"If you want to inspect it, you can go into editor mode by clicking §3 in " +"the top right\n" "and then just cut and paste the proof and move your cursor around it\n" "to see the hypotheses and goal at any given point\n" "(although you'll lose your own proof this way). Click §4 to get\n" "back to command line mode.\n" "§5" msgstr "" +"Did you use induction on §0?\n" +"Here's a two-line proof of §1 which uses §2.\n" +"If you want to inspect it, you can go into editor mode by clicking §3 in " +"the top right\n" +"and then just cut and paste the proof and move your cursor around it\n" +"to see the hypotheses and goal at any given point\n" +"(although you'll lose your own proof this way). Click §4 to get\n" +"back to command line mode.\n" +"§5\n" +"\n" +"\n" +"### 翻訳\n" +"§0について帰納法を使ったでしょうか?\n" +"§2を使用して§1の二行証明があります。\n" +"証明を確認したい場合は、右上にある§3をクリックしてエディタモードに入り、\n" +"その後証明を切り取り、貼り付け、カーソルを動かして任意のポイントでの仮定と目標を確認できます。\n" +"(ただし、この方法で自分の証明は失われます)。§4をクリックして\n" +"コマンドラインモードに戻りましょう。\n" +"§5" #: Game.Levels.LessOrEqual.L05le_zero msgid "" @@ -4433,58 +6491,89 @@ msgid "" "but to prove it you will need a result which you showed in advanced\n" "addition world." msgstr "" +"### 原文 (English)\n" +"It's \"intuitively obvious\" that there are no numbers less than zero,\n" +"but to prove it you will need a result which you showed in advanced\n" +"addition world.\n" +"\n" +"\n" +"## 日本語翻訳\n" +"「零未満の数は存在しない」ということは直感的に明らかですが、それを証明するには、先に学んだ加算ワールドで示した結果が必要です。" -#. §0: `exact h` #: Game.Levels.Implication.L04succ_inj +#. §0: `exact h` msgid "" "And now we've deduced what we wanted to prove: the goal is one of our " "assumptions.\n" "Finish the level with §0." msgstr "" +"そして、証明したい命題を導き出しました:目標は私たちの仮定の一つです。\n" +"レベルを終了するには、§0 を使用してください。" -#. §0: `rw [add_zero]` #: Game.Levels.Tutorial.L07add_succ +#. §0: `rw [add_zero]` msgid "And now §0" msgstr "" +"```html\n" +"And now §0\n" +"\n" +"```\n" +"```html\n" +"現在 §0\n" +"```" -#. §0: `pow_add a m n` -#. §1: $a^{m+n}=a^ma^n.$ #: Game.Levels.Power.L06pow_add Game.Levels.Power.L07mul_pow #: Game.Levels.Power.L08pow_pow +#. §0: `pow_add a m n` +#. §1: $a^{m+n}=a^ma^n.$ msgid "§0 is a proof that §1" -msgstr "" +msgstr "§0は§1の証明です。" #: Game.Levels.LessOrEqual msgid "≤ World" msgstr "" +"≤ ワールド\n" +"\n" +"\n" +"## 日本語翻訳\n" +"ワールド" +#: Game.Levels.Multiplication.L05one_mul Game.Levels.Multiplication.L06two_mul #. §0: ``` #. rw [mul_comm, mul_one] #. rfl #. ``` -#: Game.Levels.Multiplication.L05one_mul Game.Levels.Multiplication.L06two_mul msgid "" "Here's my solution:\n" "§0" msgstr "" +"以下是我的解決方法:\n" +"§0\n" +"\n" +"\n" +"##" #: Game.Levels.Algorithm.L07succ_ne_succ msgid "An algorithm for equality" -msgstr "" +msgstr "等価性のアルゴリズム" #: Game.Levels.AdvMultiplication.L05le_mul_right msgid "le_mul_right" msgstr "" +"le_mul_right\n" +"\n" +"## 日本語翻訳\n" +"右側乗算に関する定理です。" #: Game.Levels.Power msgid "Power World" -msgstr "" +msgstr "パワー・ワールド" +#: Game.Levels.AdvMultiplication.L10mul_right_eq_self #. §0: ``` #. nth_rewrite 2 [← mul_one a] at h #. exact mul_left_cancel a b 1 ha h #. ``` -#: Game.Levels.AdvMultiplication.L10mul_right_eq_self msgid "" "A two-line proof is\n" "\n" @@ -4493,21 +6582,26 @@ msgid "" "We now have all the tools necessary to set up the basic theory of " "divisibility of naturals." msgstr "" +"二行の証明は\n" +"\n" +"§0\n" +"\n" +"現在、自然数の除法の基本理論を設定するために必要なすべてのツールを備えています。" #: Game.Levels.Multiplication.L06two_mul msgid "two_mul" -msgstr "" +msgstr "二倍定理" #: Game.Levels.Algorithm.L04add_algo3 msgid "the simplest approach" -msgstr "" +msgstr "最简单的方法" +#: Game.Levels.Implication.L01exact #. §0: $P\\implies Q$ #. §1: $P$ #. §2: $Q$ #. §3: `exact` #. §4: `exact h` -#: Game.Levels.Implication.L01exact msgid "" "In this world we'll learn how to prove theorems of the form §0.\n" "In other words, how to prove theorems of the form \"if §1 is true, then §2 " @@ -4517,19 +6611,35 @@ msgid "" "The §3 tactic can be used to close a goal which is exactly one of\n" "the hypotheses. It takes the name of the hypothesis as argument: §4." msgstr "" +"### 原文 (English)\n" +"In this world we'll learn how to prove theorems of the form §0.\n" +"In other words, how to prove theorems of the form \"if §1 is true, then §2 " +"is true.\"\n" +"To do that we need to learn some more tactics.\n" +"\n" +"The §3 tactic can be used to close a goal which is exactly one of\n" +"the hypotheses. It takes the name of the hypothesis as argument: §4.\n" +"\n" +"\n" +"### 翻訳 (Japanese)\n" +"このワールドでは、形式 §0 の定理を証明する方法を学びます。\n" +"つまり、「§1 が真なら、§2 が真である」という形式の定理を証明する方法です。\n" +"そのためには、いくつかのタクティクを学ぶ必要があります。\n" +"\n" +"§3 のタクティクは、仮定のうち厳密に一つの目標を閉じるために使用できます。このタクティクには仮定の名前が引数として与えられます:§4。" #: Game.Levels.Algorithm.L02add_algo1 msgid "" "So that's the algorithm: now let's use automation to perform it\n" "automatically." -msgstr "" +msgstr "そのアルゴリズムはこれです:今度は自動化を使って自動的に実行させましょう。" +#: Game.Levels.AdvMultiplication #. §0: `x + y = 0 → x = 0` #. §1: `x + y = x → y = 0` #. §2: `x * y = 1 → x = 1` #. §3: `x * y = x → y = 1` #. §4: `x ≠ 0` -#: Game.Levels.AdvMultiplication msgid "" "Advanced *Addition* World proved various implications\n" "involving addition, such as §0 and §1.\n" @@ -4546,40 +6656,74 @@ msgid "" "true under the additional hypothesis that one of the variables is non-zero.\n" "This causes some unexpected extra twists." msgstr "" +"### 原文 (English)\n" +"Advanced *Addition* World proved various implications\n" +"involving addition, such as §0 and §1.\n" +"These lemmas were used to prove basic facts about ≤ in ≤ World.\n" +"\n" +"In Advanced Multiplication World we prove analogous\n" +"facts about multiplication, such as §2, and\n" +"§3 (assuming §4 in the latter result). This will prepare\n" +"us for Divisibility World.\n" +"\n" +"Multiplication World is more complex than Addition World. In the same\n" +"way, Advanced Multiplication world is more complex than Advanced Addition\n" +"World. One reason for this is that certain intermediate results are only\n" +"true under the additional hypothesis that one of the variables is non-zero.\n" +"This causes some unexpected extra twists.\n" +"\n" +"\n" +"## 日本語翻訳\n" +"Advanced *加算*ワールドでは、加算に関する様々な命題(§0, §1など)が証明されました。\n" +"これらの補題は、≤ワールドにおける≤に関する基本的な事実の証明に使用されました。\n" +"\n" +"Advanced *乗算*ワールドでは、乗算に関する類似した事実(§2など)が証明され、\n" +"§3(後者の結果では§4を仮定)も証明されました。これにより、*除算*ワールドに備えることができます。\n" +"\n" +"*乗算*ワールドは、*加算*ワールドよりも複雑です。同様に、Advanced *乗算*ワールドは、Advanced " +"*加算*" +"ワールドよりも複雑です。これは、ある変数が非零であるという追加の仮定の下でのみ成り立つ特定の中間結果があるためです。これにより、予想外の追加の複雑さが生" +"じます。" -#. §0: `simp only [add_left_comm, add_comm]` #: Game.Levels.Algorithm.L03add_algo2 +#. §0: `simp only [add_left_comm, add_comm]` msgid "Solve this level in one line with §0" -msgstr "" +msgstr "このレベルを一行で解いてください§0" +#: Game.Levels.Algorithm.L05pred #. §0: `succ_inj` #. §1: $0$ -#: Game.Levels.Algorithm.L05pred msgid "" "Nice! You've proved §0!\n" "Let's now prove Peano's other axiom, that successors can't be §1." msgstr "" +"Nice! あなたは§0を証明しました!\n" +"\n" +"今度はペアノの他の公理、すなわち後続が§1にならないことを証明しましょう。" -#. §0: $a$ -#. §1: $\\operatorname{succ}(a) = a+1$ #: Game.Levels.Tutorial.L07add_succ Game.Levels.Addition.L01zero_add #: Game.Levels.Multiplication.L02zero_mul +#. §0: $a$ +#. §1: $\\operatorname{succ}(a) = a+1$ msgid "For all natural numbers §0, we have §1." -msgstr "" +msgstr "すべての自然数 §0 に対して、§1 が成り立ちます。" #: Game.Levels.AdvAddition.L05add_right_eq_zero msgid "Well done!" -msgstr "" +msgstr " WELL DONE!" #: Game.Levels.Tutorial.L06add_zero2 msgid "Precision rewriting" msgstr "" +"精密な書き換え\n" +"\n" +"##" +#: Game.Levels.Multiplication.L07mul_add #. §0: $a(b+c)=ab+ac$ #. §1: $(b+c)a=ba+ca$ #. §2: `mul_add a b c` #. §3: `a * (b + c) = a * b + a * c` -#: Game.Levels.Multiplication.L07mul_add msgid "" "Our next goal is \"left and right distributivity\",\n" "meaning §0 and §1. Rather than\n" @@ -4589,51 +6733,62 @@ msgid "" "Note that the left hand side contains a multiplication\n" "and then an addition." msgstr "" +"次々目標は「左側と右側の分配律」です、つまり§0と§1。これらのやや冠礼的な名前とは異なり、Leanの証明の名前は説明的です。まずは§2" +"から始めましょう、§3の証明です。注意してほしいのは、左辺に乘算が含まれていて、その後に加算があることです。" +#: Game.Levels.Power.L10FLT #. §0: `xyzzy` #. §1: `sorry` #. §2: `xyzzy` -#: Game.Levels.Power.L10FLT msgid "" "§0 is an ancient magic spell, believed to be the origin of the\n" "modern word §1. The game won't complain - or notice - if you\n" "prove anything with §2." msgstr "" +"§0は古くから伝わる魔法の呪文で、現代の単語§1の起源とされています。ゲームはあなたの証明に関わらず、§2" +"で何を証明しても文句を言わなかったり、気づかないでしょう。" +#: Game.Levels.Power.L01zero_pow_zero #. §0: `0 ^ 0 = 0` #. §1: `0 ^ 0 = 1` -#: Game.Levels.Power.L01zero_pow_zero msgid "" "Mathematicians sometimes argue that §0 is also\n" "a good convention. But it is not a good convention in this\n" "game; all the later levels come out beautifully with the\n" "convention that §1." msgstr "" +"数学的には、§0 も良い慣習であると主張する学者もいます。しかし、このゲームではその慣習は適切ではありません;§1 " +"の慣習を採用すると、後のすべてのレベルが美しく解決されます。" +#: Game.Levels.AdvMultiplication.L01mul_le_mul_right #. §0: ``` #. cases h with d hd #. use d * t #. rw [hd, add_mul] #. rfl #. ``` -#: Game.Levels.AdvMultiplication.L01mul_le_mul_right msgid "" "My proof:\n" "§0" msgstr "" +"私の証明:\n" +"§0\n" +"\n" +"\n" +"##" #: Game.Levels.Multiplication.L06two_mul msgid "" "This level is more important than you think; it plays\n" "a useful role when battling a big boss later on." -msgstr "" +msgstr "このレベルは想像以上に重要です;後で大ボスとの戦いにおいて有用な役割を果たします。" +#: Game.Levels.Tutorial.L05add_zero #. §0: `Add a b` #. §1: `a + b` #. §2: `add_zero a : a + 0 = a` #. §3: `add_succ a b : a + succ b = succ (a + b)` #. §4: `zero_add a : 0 + a = a` -#: Game.Levels.Tutorial.L05add_zero msgid "" "§0, with notation §1, is\n" "the usual sum of natural numbers. Internally it is defined\n" @@ -4646,13 +6801,20 @@ msgid "" "Other theorems about naturals, such as §4, are proved\n" "by induction using these two basic theorems." msgstr "" +"§0、記法§1は通常の自然数の和です。内部では、以下の2つの仮定を用いて定義されています:\n" +"\n" +"* §2\n" +"\n" +"* §3\n" +"\n" +"他の自然数に関する定理、例えば§4は、これらの2つの基本定理を使用して帰納法で証明されます。" -#. §0: `cases h2 with h0 h1` #: Game.Levels.AdvMultiplication.L06mul_right_eq_one +#. §0: `cases h2 with h0 h1` msgid "" "Now §0 and deal with the two\n" "cases separately." -msgstr "" +msgstr "現在、§0 で、二つの場合を別々に処理します。" #: Game.Levels.Power.L08pow_pow msgid "" @@ -4666,48 +6828,62 @@ msgid "" "\n" "Suddenly the music starts up again. This really is the final boss." msgstr "" +"音楽が静まり返る。これで終わり?\n" +"\n" +"まだ二つ目のレベルが残っていることは明らかだ。\n" +"\n" +"通りすがりの数学者が言うには、あなたが構築した構造には数学の名前がないらしい。だまされた気分だ。\n" +"\n" +"突然、音楽が再開する。これで本当に最終ボスだ。" +#: Game.Levels.LessOrEqual.L10le_one +#: Game.Levels.AdvMultiplication.L08mul_eq_zero #. §0: `le_one x` #. §1: `x ≤ 1` #. §2: `x = 0` #. §3: `x = 1` -#: Game.Levels.LessOrEqual.L10le_one -#: Game.Levels.AdvMultiplication.L08mul_eq_zero msgid "§0 is a proof that if §1 then §2 or §3." -msgstr "" +msgstr "§0は、§1ならば§2または§3であることを証明します。" #: Game.Levels.Tutorial msgid "Tutorial World" -msgstr "" +msgstr "チュートリアルワールド" -#. §0: `rw [one_eq_succ_zero]` #: Game.Levels.Tutorial.L07add_succ +#. §0: `rw [one_eq_succ_zero]` msgid "§0 will do this." -msgstr "" +msgstr "§0はこれを行います。" +#: Game.Levels.LessOrEqual.L09succ_le_succ #. §0: `x ≤ 0` #. §1: `x = 0` #. §2: `≤ 1` #. §3: `≤ 2` -#: Game.Levels.LessOrEqual.L09succ_le_succ msgid "" "We've proved that §0 implies §1. The last two levels\n" "in this world will prove which numbers are §2 and §3.\n" "This lemma will be helpful for them." msgstr "" +"We've proved that §0 から §1 が導かれる。このワールドの最後の2つのレベルでは、どの数が §2 と §3 " +"であるかを証明する。この補題は彼らにとって役立つだろう。" -#. §0: `cases «{e}» with a` #: Game.Levels.LessOrEqual.L08le_total +#. §0: `cases «{e}» with a` msgid "You still don't know which way to go, so do §0." msgstr "" +"You still don't know which way to go, so do §0.\n" +"\n" +"\n" +"## 日本語翻訳\n" +"まだ進むべき道がわからないので、§0の指示に従いましょう。" #: Game.Levels.AdvMultiplication msgid "Advanced Multiplication World" -msgstr "" +msgstr "高度な乗算ワールド" +#: Game.Levels.Addition.L05add_right_comm #. §0: `a = 0` #. §1: `x + a = x` -#: Game.Levels.Addition.L05add_right_comm msgid "" "You've now seen all the tactics you need to beat the final boss of the " "game.\n" @@ -4721,40 +6897,51 @@ msgid "" "\n" "Click \"Home\" and make your choice." msgstr "" +"以下の最終ボスを倒すためのタクティクスを全部学びました。\n" +"ゲームの最終ボスに向かう旅を始めるには、Multiplication Worldに入り始めることができます。\n" +"\n" +"または、Implication " +"Worldで新しいタクティクスを学んでみるのも良いでしょう。これらのタクティクスは、加算に関するより多くの事実を証明するのに役立ちます。例えば、§0" +"から§1を導き出す方法を学ぶことができます。\n" +"\n" +"\"Home\"をクリックして選択してください。" +#: Game.Levels.Tutorial.L03two_eq_ss0 Game.Levels.Tutorial.L04rw_backwards #. §0: $2$ #. §1: $0$ -#: Game.Levels.Tutorial.L03two_eq_ss0 Game.Levels.Tutorial.L04rw_backwards msgid "§0 is the number after the number after §1." -msgstr "" +msgstr "§0は§1の後の数値の後の数値です。" -#. §0: `2 + 2 = 4` #: Game.Levels.Tutorial.L02rw +#. §0: `2 + 2 = 4` msgid "You now know enough tactics to prove §0! Let's begin the journey." -msgstr "" +msgstr "あなたはすでに十分なタクティクを習得し、§0を証明することができます!旅程の始まりです。" +#: Game.Levels.Multiplication.L03succ_mul #. §0: `succ_mul a b` #. §1: `succ a * b = a * b + b` #. §2: `mul_succ` #. §3: `mul_comm` #. §4: `mul_comm` #. §5: `mul_succ` -#: Game.Levels.Multiplication.L03succ_mul msgid "" "§0 is the proof that §1.\n" "\n" "It could be deduced from §2 and §3, however this argument\n" "would be circular because the proof of §4 uses §5." msgstr "" +"§0は§1の証明です。\n" +"\n" +"しかし、§2と§3から導くことはできますが、この議論は円環的で、§4の証明は§5を使用しているためです。" #: GameServer.RpcHandlers msgid "level completed! 🎉" -msgstr "" +msgstr "レベル完成しました!🎉" +#: Game.Levels.Power.L07mul_pow #. §0: `a * b` #. §1: `rw [mul_comm]` #. §2: `rw` -#: Game.Levels.Power.L07mul_pow msgid "" "The music gets ever more dramatic, as we explore\n" "the interplay between exponentiation and multiplication.\n" @@ -4763,30 +6950,47 @@ msgid "" "because §1 swaps the wrong multiplication,\n" "then read the documentation of §2 for tips on how to fix this." msgstr "" +"The music gets ever more dramatic, as we explore\n" +"指数乗と乗算の相互作用。\n" +"\n" +"もし指数乗と乗算の順序を正しく交換できずに\n" +"§1 が誤った乗算を交換してしまう場合、\n" +"§2 のドキュメンテーションを参照して修正方法を確認してください。" +#: Game.Levels.LessOrEqual.L08le_total #. §0: `le_total x y` #. §1: `x ≤ y` #. §2: `y ≤ x` -#: Game.Levels.LessOrEqual.L08le_total msgid "§0 is a proof that §1 or §2." -msgstr "" +msgstr "§0は§1または§2の証明です。" +#: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero #. §0: `ha : 0 ≠ 0` #. §1: `tauto` -#: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero msgid "" "In the \"base case\" we have a hypothesis §0, and you can deduce anything\n" "from a false statement. The §1 tactic will close this goal." -msgstr "" +msgstr "### 基本的なケースでは、仮定§0が存在します。偽の文から何でも導くことができます。タクティク§1はこの目標を閉じます。" #: Game.Levels.Tutorial.L07add_succ msgid "add_succ" msgstr "" +"add_succ\n" +"\n" +"\n" +"## 日本語翻訳\n" +"自然数の加算に関する定理を証明するタクティクです。" #: Game.Levels.Power.L03pow_one msgid "pow_one" msgstr "" +"pow_one\n" +"\n" +"\n" +"## 日本語翻訳\n" +"べき一度" +#: Game.Levels.Implication.L11two_add_two_ne_five #. §0: ``` #. intro h #. rw [add_succ, add_succ, add_zero] at h @@ -4795,7 +6999,6 @@ msgstr "" #. exact h #. ``` #. §1: $20 + 20 ≠ 41$ -#: Game.Levels.Implication.L11two_add_two_ne_five msgid "" "Here's my proof:\n" "§0\n" @@ -4811,22 +7014,34 @@ msgid "" "and\n" "decide your route." msgstr "" +"以下は私の証明です:\n" +"§0\n" +"\n" +"Leanは定理証明システムですが、現在では十分な量の理論が開発されておらず、適切な計算機としての機能を発揮するまでには至っていません。アルゴリズムワール" +"ドでは、よりコンピュータサイエンス寄りのワールドで、このような問題を扱うための機械を開発し、§1" +"のような目標を達成することが可能になります。あるいは、不等式の理論を実現するための補題を証明する高度な加算ワールドでより多くの数学を学ぶこともできます。" +"\"ホーム\"をクリックし、あなたのルートを選択してください。" +#: Game.Levels.Tutorial.L03two_eq_ss0 #. §0: `rw [two_eq_succ_one, one_eq_succ_zero]` #. §1: `rfl` -#: Game.Levels.Tutorial.L03two_eq_ss0 msgid "" "Note that you can do §0\n" "and then §1 to solve this level in two lines." -msgstr "" +msgstr "注文しますと、§0 を実行し、その後 §1 を実行することで、このレベルを二行で解くことができます。" #: Game.Levels.AdvAddition.L05add_right_eq_zero msgid "add_right_eq_zero" -msgstr "" +msgstr "add_right_eq_zero" #: Game.Levels.Tutorial.L05add_zero msgid "Adding zero" msgstr "" +"追加するゼロ\n" +"\n" +"\n" +"## 参考訳\n" +"追加するゼロ" #: Game.Levels.Addition.L03add_comm msgid "" @@ -4835,17 +7050,24 @@ msgid "" "Look in your inventory to see the proofs you have available.\n" "These should be enough." msgstr "" +"[boss battle music]\n" +"\n" +"あなたのインベントリを確認して、利用可能な証明を確認してください。\n" +"これらの証明は十分なはずです。" +#: Game.Levels.Algorithm.L02add_algo1 #. §0: $a, b$ #. §1: $c$ #. §2: $d$ #. §3: $(a + b) + (c + d) = ((a + c) + d) + b.$ -#: Game.Levels.Algorithm.L02add_algo1 msgid "" "If §0, §1 and §2 are numbers, we have\n" "§3" msgstr "" +"もし§0, §1, §2 が数値である場合、以下のようになります。\n" +"§3" +#: Game.Levels.AdvMultiplication.L07mul_ne_zero #. §0: `a ≠ 0` #. §1: `b ≠ 0` #. §2: `a * b ≠ 0` @@ -4855,40 +7077,49 @@ msgstr "" #. §6: `a * b` #. §7: `succ` #. §8: `apply zero_ne_succ` -#: Game.Levels.AdvMultiplication.L07mul_ne_zero msgid "" "This level proves that if §0 and §1 then §2. One strategy\n" "is to write both §3 and §4 as §5 of something, deduce that §6 is\n" "also §7 of something, and then §8." msgstr "" +"このレベルでは、§0 と §1 であることを示す必要があります。一つの戦略は、§3 と §4 を両方とも §5 の何かの §6 であると書き、それから " +"§7 であることを導き、最後に §8 とします。" #: Game.Levels.Power.L02zero_pow_succ msgid "zero_pow_succ" msgstr "" +"零冪乗成功\n" +"\n" +"\n" +"## 参考訳\n" +"零冪乗成功" #: Game.Levels.LessOrEqual.L07or_symm msgid "Ready for the boss level of this world?" -msgstr "" +msgstr "このワールドのボスレベルに備えていますか?" +#: Game.Levels.Multiplication.L07mul_add #. §0: `mul_add a b c` #. §1: `a * (b + c) = a * b + a * c` -#: Game.Levels.Multiplication.L07mul_add msgid "" "Multiplication distributes\n" "over addition on the left.\n" "\n" "§0 is the proof that §1." msgstr "" +"乗算は左側で加算に分配します。\n" +"\n" +"§0は§1の証明です。" #: Game.Levels.Algorithm msgid "Algorithm World" -msgstr "" +msgstr "アルゴリズムワールド" +#: Game.Levels.Tutorial.L07add_succ #. §0: `add_succ a b` #. §1: `a + succ b = succ (a + b)` -#: Game.Levels.Tutorial.L07add_succ msgid "§0 is the proof of §1." -msgstr "" +msgstr "§0は§1の証明です。" #: Game.Levels.Power.L10FLT msgid "" @@ -4896,20 +7127,34 @@ msgid "" "\n" "Either that, or you used magic..." msgstr "" +" Congratulations! あなたはフェルマーの最終定理を証明しました!\n" +"\n" +"もしくは、魔法を使用したかもしれません...\n" +"\n" +"\n" +"## 日本語翻訳\n" +#: Game.Levels.Multiplication.L04mul_comm #. §0: `mul_comm` #. §1: `mul_comm a b` #. §2: `a * b = b * a` -#: Game.Levels.Multiplication.L04mul_comm msgid "" "§0 is the proof that multiplication is commutative. More precisely,\n" "§1 is the proof that §2." msgstr "" +"§0は乗法が交換律を満たすことを示す証明です。より正確には,\n" +"§1は§2が交換律を満たすことを示す証明です。" #: Game.Levels.Tutorial.L04rw_backwards msgid "rewriting backwards" msgstr "" +"反転して書き換えます\n" +"\n" +"\n" +"## 参考訳\n" +"反転して書き換えます" +#: Game.Levels.LessOrEqual.L01le_refl #. §0: `use` #. §1: `x` #. §2: `x = 37` @@ -4925,7 +7170,6 @@ msgstr "" #. §12: `use 37` #. §13: `use a` #. §14: `use a * a + 1` -#: Game.Levels.LessOrEqual.L01le_refl msgid "" "## Summary\n" "\n" @@ -4944,14 +7188,27 @@ msgid "" "- §13\n" "- §14" msgstr "" +"## 結論\n" +"\n" +"§0 タクティクは、何かが存在することを主張する目標に対して進展を遂げます。\n" +"もし目標が何かが特定の性質を持つ存在することを主張し、その存在を知る方法が §2 である場合、§3 は進展を遂げます。\n" +"\n" +"§4 は \"存在する §5 が §6 である\" という主張を表す記号であり、目標が §7 のような形の場合、§8 することで、道徳的に §9 " +"(つまり §10) とみなされる番号で進展を遂げることができます。\n" +"\n" +"以下の例のいずれかが可能であると仮定して、§11 関数に渡される引数の型が正確である場合:\n" +"\n" +"- §12\n" +"- §13\n" +"- §14" +#: Game.Levels.Addition.L01zero_add #. §0: `x + y = y + x` #. §1: `add_comm` #. §2: `add_zero` #. §3: `zero_add` #. §4: `add_comm` #. §5: `x + y = y + x` -#: Game.Levels.Addition.L01zero_add msgid "" "This lemma would have been easy if we had known that §0. That theorem\n" " is called §1 and it is *true*, but unfortunately its proof *uses* both\n" @@ -4959,3 +7216,7 @@ msgid "" "\n" " Let's continue on our journey to §4, the proof of §5." msgstr "" +"この補題は、§0を知っていたら簡単だったでしょう。その定理は§1と呼ばれ、**真**です。しかし、残念ながらその証明は§2と§3を**使用**" +"しています!\n" +"\n" +"§4の証明へと進みましょう、§5の証明に。" From 2110f32b0d9984f282ece7011c732b15e45d6149 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Tue, 14 Apr 2026 01:43:50 +0900 Subject: [PATCH 003/147] improve top page translation --- .i18n/ja/Game.json | 4 ++-- .i18n/ja/Game.po | 12 ++++-------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/.i18n/ja/Game.json b/.i18n/ja/Game.json index f3d85499..131e3ba9 100644 --- a/.i18n/ja/Game.json +++ b/.i18n/ja/Game.json @@ -403,7 +403,7 @@ "Nice!\n\n順序理論の開発の次のステップは、§0と乗算の相互作用の理論を発展させることがです。既に乗算ワールドを学習した場合、現在では高度な乗算ワールドに進むことができます。\"Home\"をクリックしてアクセスしてください。", "Nice!": "nice!", "Next turn §0 into §1 with §2.": "次に、§0 を §1 に変更し、§2 を実行します。", - "Natural Number Game": "自然数ゲーム\n\n\n## 日本語翻訳\n", + "Natural Number Game": "自然数ゲーム", "My proof:\n§0": "私の証明:\n§0\n\n\n##", "Multiplication usually makes a number bigger, but multiplication by zero can make\nit smaller. Thus many lemmas about inequalities and multiplication need the\nhypothesis §0. Here is a key lemma that enables us to use this hypothesis.\nTo help us with the proof, we can use the §1 tactic. Click on the tactic's name\non the right to see what it does.": "乗算は通常、数値を大きくしますが、ゼロによる乗算はその数値を小さくすることがあります。そのため、不等式や乗算に関する多くの補題では、§0 の仮定が必要です。この仮定を使用するための重要な補題があります。証明の助けとなるために、§1 のタクティクを使用できます。タクティクの名前を右側でクリックすると、その機能が表示されます。", @@ -659,7 +659,7 @@ "## Precision rewriting\n\nIn the last level, there was §0 and §1,\nand §2 changed the first one it saw,\nwhich was §3. Let's learn how to tell Lean\nto change §4 first by giving §5 an\nexplicit input.": "## 精度の再編纂\n\n最後のレベルでは、§0 と §1 があり、\n§2 は最初に見つけたものを §3 に変更しました。\nLean に §4 を最初に変更させる方法を学びましょう。\n§5 に明示的な入力を与えることで実現します。", "# Welcome to the Natural Number Game\n#### An introduction to mathematical proof.\n\nIn this game, we will build the basic theory of the natural\nnumbers §0 from scratch. Our first goal is to prove\nthat §1. Next we'll prove that §2.\nAnd at the end we'll see if we can prove Fermat's Last Theorem.\nWe'll do this by solving levels of a computer puzzle game called Lean.\n\n# Read this.\n\nLearning how to use an interactive theorem prover takes time.\nTests show that the people who get the most out of this game are\nthose who read the help texts like this one.\n\nTo start, click on \"Tutorial World\".\n\nNote: this is a new Lean 4 version of the game containing several\nworlds which were not present in the old Lean 3 version. More new worlds\nsuch as Strong Induction World, Even/Odd World and Prime Number World\nare in development; if you want to see their state or even help out, checkout\nout the [issues in the github repo](https://github.com/leanprover-community/NNG4/issues).\n\n## More\n\nClick on the three lines in the top right and select \"Game Info\" for resources,\nlinks, and ways to interact with the Lean community.": - "# 自然数ゲームへようこそ\n#### 数学的証明への入門\n\nこのゲームでは、自然数 §0 の基本理論をゼロから構築します。最初の目標は §1 を証明することです。次に §2 を証明します。そして最後には、フェルマーの最終定理を証明できるかどうかを見ていきます。これらの目標を達成するために、コンピュータパズルゲーム「Lean」のレベルを解いていきます。\n\n# 読んでください。\n\nインタラクティブ証明システムの使い方を学ぶには時間がかかります。テスト結果によれば、このゲームで最も効果的なのは、このようなヘルプテキストを読む人です。\n\n開始するには、「チュートリアルワールド」をクリックしてください。\n\n注意:これは、旧Lean 3版に存在しなかった複数のワールドを含む新しいLean 4版のゲームです。強 induc 世界、偶数/奇数世界、素数世界などの新しいワールドの開発が進行中です;これらの状態を確認したいか、甚至は協力したい場合は、[githubリポジトリのissues](https://github.com/leanprover-community/NNG4/issues) をチェックしてください。\n\n## 追加情報\n\n右上隅の三本線をクリックし、「ゲーム情報」を選択してリソース、リンク、Leanコミュニティとの互动方法を確認してください。", + "# 自然数ゲームへようこそ\n#### 数学的証明への入門\n\nこのゲームでは、自然数 §0 の基本理論をゼロから構築します。最初の目標は §1 を証明することです。次に §2 を証明します。そして最後には、フェルマーの最終定理を証明できるかどうかを見ていきます。これらの目標を達成するために、コンピュータパズルゲーム「Lean」のレベルを解いていきます。\n\n# 読んでください。\n\nインタラクティブ証明システムの使い方を学ぶには時間がかかります。テスト結果によれば、このゲームで最も効果的なのは、このようなヘルプテキストを読む人です。\n\n開始するには、「チュートリアルワールド」をクリックしてください。\n\n注意:これは、旧Lean 3版に存在しなかった複数のワールドを含む新しいLean 4版のゲームです。強い帰納法ワールド、偶数/奇数ワールド、素数ワールドなどの新しいワールドの開発が進行中です;これらの状態を確認したいか、協力したい場合は、[githubリポジトリのissues](https://github.com/leanprover-community/NNG4/issues) をチェックしてください。\n\n## 追加情報\n\n右上隅の三本線をクリックし、「ゲーム情報」を選択してリソース、リンク、Leanコミュニティとの交流方法を確認してください。", "# Summary\nThe §0 tactic changes a goal of §1 into a goal of §2.\nUse it when your hypotheses guarantee that the reason that §3\nis true is because in fact §4 is true.\n\nInternally this tactic is just §5ing a theorem\nsaying that §6\n\nNote that this tactic can turn a solvable goal into an unsolvable\none.": "### 翻訳\n# まとめ\n§0 タクティクは、目標 §1 を §2 に変更します。\n仮定が §3 が真である理由は実際には §4 が真であるからである場合に使用します。\n\n内部的には、このタクティクは §6 という定理を §5 し、\n§6\n\n注意していただきたいのは、このタクティクが解決可能な目標を解決不能な目標に変更する可能性があることです。", "# Summary\n\n§0 will solve the goal §1.": "# 結果\n\n§0 は目標 §1 を解決します。", diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 5a48bcfe..52380ab9 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -2366,14 +2366,14 @@ msgstr "" "\n" "開始するには、「チュートリアルワールド」をクリックしてください。\n" "\n" -"注意:これは、旧Lean 3版に存在しなかった複数のワールドを含む新しいLean 4版のゲームです。強 induc " -"世界、偶数/奇数世界、素数世界などの新しいワールドの開発が進行中です;これらの状態を確認したいか、甚至は協力したい場合は、[" +"注意:これは、旧Lean 3版に存在しなかった複数のワールドを含む新しいLean 4版のゲームです。強い帰納法" +"ワールド、偶数/奇数ワールド、素数ワールドなどの新しいワールドの開発が進行中です;これらの状態を確認したいか、協力したい場合は、[" "githubリポジトリのissues](https://github.com/leanprover-community/NNG4/issues) " "をチェックしてください。\n" "\n" "## 追加情報\n" "\n" -"右上隅の三本線をクリックし、「ゲーム情報」を選択してリソース、リンク、Leanコミュニティとの互动方法を確認してください。" +"右上隅の三本線をクリックし、「ゲーム情報」を選択してリソース、リンク、Leanコミュニティとの交流方法を確認してください。" #: Game.Levels.Power.L03pow_one Game.Levels.Power.L04one_pow #: Game.Levels.Power.L05pow_two @@ -3988,11 +3988,7 @@ msgstr "你现在可以完成 §0。" #: Game msgid "Natural Number Game" -msgstr "" -"自然数ゲーム\n" -"\n" -"\n" -"## 日本語翻訳\n" +msgstr "自然数ゲーム" #: Game.Levels.AdvAddition.L05add_right_eq_zero #. §0: `n` From ff338cd5b109dec9e668b3f539b374b2a0b6246c Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Tue, 14 Apr 2026 01:54:09 +0900 Subject: [PATCH 004/147] improve game info translation --- .i18n/ja/Game.json | 2 +- .i18n/ja/Game.po | 71 +++++++--------------------------------------- 2 files changed, 11 insertions(+), 62 deletions(-) diff --git a/.i18n/ja/Game.json b/.i18n/ja/Game.json index 131e3ba9..4166f980 100644 --- a/.i18n/ja/Game.json +++ b/.i18n/ja/Game.json @@ -629,7 +629,7 @@ "1 ≠ 0": "1 ≠ 0", "0 ≤ x": "0 ≤ x", "*Game version: 4.3*\n\n*Recent additions: bug fixes*\n\n## Progress saving\n\nThe game stores your progress in your local browser storage.\nIf you delete it, your progress will be lost!\n\nWarning: In most browsers, deleting cookies will also clear the local storage\n(or \"local site data\"). Make sure to download your game progress first!\n\n## Credits\n\n* **Creators:** Kevin Buzzard, Jon Eugster\n* **Original Lean3-version:** Kevin Buzzard, Mohammad Pedramfar\n* **Game Engine:** Alexander Bentkamp, Jon Eugster, Patrick Massot\n* **Additional levels:** Sian Carey, Ivan Farabella, Archie Browne.\n* **Additional thanks:** All the student beta testers, all the schools\nwho invited Kevin to speak, and all the schoolkids who asked him questions\nabout the material.\n\n## Resources\n\n* The [Lean Zulip chat](https://leanprover.zulipchat.com/) forum\n* [Original Lean3 version](https://github.com/ImperialCollegeLondon/natural_number_game/) (no longer maintained)\n\n## Problems?\n\nPlease ask any questions about this game in the\n[Lean Zulip chat](https://leanprover.zulipchat.com/) forum, for example in\nthe stream \"New Members\". The community will happily help. Note that\nthe Lean Zulip chat is a professional research forum.\nPlease use your full real name there, stay on topic, and be nice. If you're\nlooking for somewhere less formal (e.g. you want to post natural number\ngame memes) then head on over to the [Lean Discord](https://discord.gg/WZ9bs9UCvx).\n\nAlternatively, if you experience issues / bugs you can also open github issues:\n\n* For issues with the game engine, please open an\n[issue at the lean4game](https://github.com/leanprover-community/lean4game/issues) repo.\n* For issues about the game's content, please open an\n[issue at the NNG](https://github.com/hhu-adam/NNG4/issues) repo.": - "### 原文 (English)\n*Game version: 4.3*\n\n*Recent additions: bug fixes*\n\n## Progress saving\n\nThe game stores your progress in your local browser storage.\nIf you delete it, your progress will be lost!\n\nWarning: In most browsers, deleting cookies will also clear the local storage\n(or \"local site data\"). Make sure to download your game progress first!\n\n## Credits\n\n* **Creators:** Kevin Buzzard, Jon Eugster\n* **Original Lean3-version:** Kevin Buzzard, Mohammad Pedramfar\n* **Game Engine:** Alexander Bentkamp, Jon Eugster, Patrick Massot\n* **Additional levels:** Sian Carey, Ivan Farabella, Archie Browne.\n* **Additional thanks:** All the student beta testers, all the schools\nwho invited Kevin to speak, and all the schoolkids who asked him questions\nabout the material.\n\n## Resources\n\n* The [Lean Zulip chat](https://leanprover.zulipchat.com/) forum\n* [Original Lean3 version](https://github.com/ImperialCollegeLondon/natural_number_game/) (no longer maintained)\n\n## Problems?\n\nPlease ask any questions about this game in the\n[Lean Zulip chat](https://leanprover.zulipchat.com/) forum, for example in\nthe stream \"New Members\". The community will happily help. Note that\nthe Lean Zulip chat is a professional research forum.\nPlease use your full real name there, stay on topic, and be nice. If you're\nlooking for somewhere less formal (e.g. you want to post natural number\ngame memes) then head on over to the [Lean Discord](https://discord.gg/WZ9bs9UCvx).\n\nAlternatively, if you experience issues / bugs you can also open github issues:\n\n* For issues with the game engine, please open an\n[issue at the lean4game](https://github.com/leanprover-community/lean4game/issues) repo.\n* For issues about the game's content, please open an\n[issue at the NNG](https://github.com/hhu-adam/NNG4/issues) repo.\n\n### 翻訳 (Japanese)\n*ゲームバージョン: 4.3*\n\n*最近の追加: バグ修正*\n\n## プログレス保存\n\nゲームはあなたのプログレスをローカルブラウザストレージに保存します。\nこれを削除すると、プログレスは失われます!\n\n注意: 多くのブラウザでは、クッキーを削除するとローカルストレージ(または「ローカルサイトデータ」)もクリアされます。プログレスをダウンロードしてから削除することを確認してください!\n\n## 謝辞\n\n* **クリエイター:** ケビン・バズラー、ジョン・ユージストー\n* **元のLean3版:** ケビン・バズラー、モハマド・ペドラムファール\n* **ゲームエンジン:** アレクサンダー・バンクトamp、ジョン・ユージストー、パトリック・マッソット\n* **追加レベル:** シアン・ケアリー、イバン・ファラベラ、アーチー・ブラウン\n* **追加感謝:** 全ての学生ベータテスト者、ケビンを講演に招待した全ての学校、質問をした全ての学校の子供たち\n\n## リソース\n\n* [Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラム\n* [元のLean3版](https://github.com/ImperialCollegeLondon/natural_number_game/)(現在メンテナンスされていません)\n\n## お困りですか?\n\nこのゲームに関する質問は、[Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラムで質問してください。例えば、「New Members」ストリームで質問できます。コミュニティは喜んでお手伝いします。注意: Lean Zulipチャットはプロフェッショナルな研究フォーラムです。そこでフルネームを使用し、トピックに集中し、丁寧に接してください。より非公式な場所(例えば、自然数ゲームのメモを投稿したい場合)を探している場合は、[Lean Discord](https://discord.gg/WZ9bs9UCvx) に移動してください。\n\nまたは、問題やバグが発生した場合は、GitHubの問題をオープンすることもできます:\n\n* ゲームエンジンに関する問題は、[lean4game](https://github.com/leanprover-community/lean4game/issues) リポジトリで問題をオープンしてください。\n* ゲームの内容に関する問題は、[NNG](https://github.com/hhu-adam/NNG4/issues) リポジトリで問題をオープンしてください。", + "*ゲームバージョン: 4.3*\n\n*最近の追加: バグ修正*\n\n## 進捗保存\n\nゲームはあなたの進捗をローカルブラウザストレージに保存します。\nこれを削除すると、進捗は失われます!\n\n注意: 多くのブラウザでは、クッキーを削除するとローカルストレージ(または「ローカルサイトデータ」)もクリアされます。進捗をダウンロードしてから削除することを確認してください!\n\n## 謝辞\n\n* **クリエイター:** Kevin Buzzard, Jon Eugster\n* **オリジナルLean3バージョン:** Kevin Buzzard, Mohammad Pedramfar\n* **ゲームエンジン:** Alexander Bentkamp, Jon Eugster, Patrick Massot\n* **追加レベル:** Sian Carey, Ivan Farabella, Archie Browne.\n* **追加の感謝:** 全ての学生ベータテスト者、Kevinを講演に招待した全ての学校、質問をした全ての学校の子供たち\n\n## リソース\n\n* [Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラム\n* [元のLean3版](https://github.com/ImperialCollegeLondon/natural_number_game/)(現在メンテナンスされていません)\n\n## お困りですか?\n\nこのゲームに関する質問は、[Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラムで質問してください。例えば、「New Members」ストリームで質問できます。コミュニティは喜んでお手伝いします。注意: Lean Zulipチャットはプロフェッショナルな研究フォーラムです。そこでフルネームを使用し、トピックに集中し、丁寧に接してください。より非公式な場所(例えば、自然数ゲームのメモを投稿したい場合)を探している場合は、[Lean Discord](https://discord.gg/WZ9bs9UCvx) に移動してください。\n(訳注: これらはいずれも外国語のコミュニティです。もし日本語で質問をしたいのであれば、[Lean の日本語コミュニティ](https://lean-ja.github.io/about/)上で質問すると良いでしょう。)\n\nまたは、問題やバグが発生した場合は、GitHubの問題をオープンすることもできます:\n\n* ゲームエンジンに関する問題は、[lean4game](https://github.com/leanprover-community/lean4game/issues) リポジトリで問題をオープンしてください。\n* ゲームの内容に関する問題は、[NNG](https://github.com/hhu-adam/NNG4/issues) リポジトリで問題をオープンしてください。", "## The birth of number.\n\nNumbers in Lean are defined by two rules.\n\n* §0 is a number.\n* If §1 is a number, then the *successor* §2 of §3 is a number.\n\nThe successor of §4 means the number after §5. Let's learn to\ncount, and name a few small numbers.\n\n## Counting to four.\n\n§6 is a number, so §7 is a number. Let's call this new number §8.\nSimilarly let's define §9, §10 and §11.\nThis gives us plenty of numbers to be getting along with.\n\nThe *proof* that §12 is called §13.\nCheck out the \"012\" tab in the list of lemmas on the right\nfor this and other proofs.\n\nLet's prove that §14 is the number after the number after zero.": "## 数字の誕生。\n\nLeanにおける数字は2つのルールで定義されます。\n\n* §0 は数字です。\n* §1 が数字である場合、§2 の *後続* §3 は数字です。\n\n§4 の後続とは §5 の次の数字を意味します。数を数えることと、いくつかの小さな数字の名前を学びましょう。\n\n## 4まで数える。\n\n§6 が数字であるため、§7 も数字です。この新しい数字を §8 と呼びましょう。同様に §9, §10, §11 を定義します。これで十分な数を手に入れました。\n\n§12 が数字であることを証明する *証明* §13 があります。証明リストの右側の「012」タブを確認してください。\n\n次に、0の後ろの後ろの数字である §14 を証明しましょう。", "## Summary\n\n§0 repeatedly applies the tactic §1\nto the goal. You don't need to use this\ntactic, it just speeds things up sometimes.\n\n## Example\n\n§2 will turn the goal\n§3\ninto the goal\n§4.\n\"\n\nTacticDoc nth_rewrite \"\n## Summary\n\nIf §5 and there are several §6s in the goal, then\n§7 will just change the third §8 to a §9.\n\n## Example\n\nIf the goal is §10 then §11\nwill change the goal to §12. In contrast, §13\nwill change the goal to §14.": diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 52380ab9..c474bacb 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -3341,78 +3341,26 @@ msgid "" "* For issues about the game's content, please open an\n" "[issue at the NNG](https://github.com/hhu-adam/NNG4/issues) repo." msgstr "" -"### 原文 (English)\n" -"*Game version: 4.3*\n" -"\n" -"*Recent additions: bug fixes*\n" -"\n" -"## Progress saving\n" -"\n" -"The game stores your progress in your local browser storage.\n" -"If you delete it, your progress will be lost!\n" -"\n" -"Warning: In most browsers, deleting cookies will also clear the local " -"storage\n" -"(or \"local site data\"). Make sure to download your game progress first!\n" -"\n" -"## Credits\n" -"\n" -"* **Creators:** Kevin Buzzard, Jon Eugster\n" -"* **Original Lean3-version:** Kevin Buzzard, Mohammad Pedramfar\n" -"* **Game Engine:** Alexander Bentkamp, Jon Eugster, Patrick Massot\n" -"* **Additional levels:** Sian Carey, Ivan Farabella, Archie Browne.\n" -"* **Additional thanks:** All the student beta testers, all the schools\n" -"who invited Kevin to speak, and all the schoolkids who asked him questions\n" -"about the material.\n" -"\n" -"## Resources\n" -"\n" -"* The [Lean Zulip chat](https://leanprover.zulipchat.com/) forum\n" -"* [Original Lean3 " -"version](https://github.com/ImperialCollegeLondon/natural_number_game/) (no " -"longer maintained)\n" -"\n" -"## Problems?\n" -"\n" -"Please ask any questions about this game in the\n" -"[Lean Zulip chat](https://leanprover.zulipchat.com/) forum, for example in\n" -"the stream \"New Members\". The community will happily help. Note that\n" -"the Lean Zulip chat is a professional research forum.\n" -"Please use your full real name there, stay on topic, and be nice. If you're\n" -"looking for somewhere less formal (e.g. you want to post natural number\n" -"game memes) then head on over to the [Lean " -"Discord](https://discord.gg/WZ9bs9UCvx).\n" -"\n" -"Alternatively, if you experience issues / bugs you can also open github " -"issues:\n" -"\n" -"* For issues with the game engine, please open an\n" -"[issue at the " -"lean4game](https://github.com/leanprover-community/lean4game/issues) repo.\n" -"* For issues about the game's content, please open an\n" -"[issue at the NNG](https://github.com/hhu-adam/NNG4/issues) repo.\n" -"\n" -"### 翻訳 (Japanese)\n" "*ゲームバージョン: 4.3*\n" "\n" "*最近の追加: バグ修正*\n" "\n" -"## プログレス保存\n" +"## 進捗保存\n" "\n" -"ゲームはあなたのプログレスをローカルブラウザストレージに保存します。\n" -"これを削除すると、プログレスは失われます!\n" +"ゲームはあなたの進捗をローカルブラウザストレージに保存します。\n" +"これを削除すると、進捗は失われます!\n" "\n" "注意: " -"多くのブラウザでは、クッキーを削除するとローカルストレージ(または「ローカルサイトデータ」)もクリアされます。プログレスをダウンロードしてから削除するこ" +"多くのブラウザでは、クッキーを削除するとローカルストレージ(または「ローカルサイトデータ」)もクリアされます。進捗をダウンロードしてから削除するこ" "とを確認してください!\n" "\n" "## 謝辞\n" "\n" -"* **クリエイター:** ケビン・バズラー、ジョン・ユージストー\n" -"* **元のLean3版:** ケビン・バズラー、モハマド・ペドラムファール\n" -"* **ゲームエンジン:** アレクサンダー・バンクトamp、ジョン・ユージストー、パトリック・マッソット\n" -"* **追加レベル:** シアン・ケアリー、イバン・ファラベラ、アーチー・ブラウン\n" -"* **追加感謝:** 全ての学生ベータテスト者、ケビンを講演に招待した全ての学校、質問をした全ての学校の子供たち\n" +"* **クリエイター:** Kevin Buzzard, Jon Eugster\n" +"* **オリジナルLean3バージョン:** Kevin Buzzard, Mohammad Pedramfar\n" +"* **ゲームエンジン:** Alexander Bentkamp, Jon Eugster, Patrick Massot\n" +"* **追加レベル:** Sian Carey, Ivan Farabella, Archie Browne.\n" +"* **追加の感謝:** 全ての学生ベータテスト者、Kevinを講演に招待した全ての学校、質問をした全ての学校の子供たち\n" "\n" "## リソース\n" "\n" @@ -3428,6 +3376,7 @@ msgstr "" "Zulipチャットはプロフェッショナルな研究フォーラムです。そこでフルネームを使用し、トピックに集中し、丁寧に接してください。より非公式な場所(例えば、" "自然数ゲームのメモを投稿したい場合)を探している場合は、[Lean Discord](https://discord.gg/WZ9bs9UCvx) " "に移動してください。\n" +"(訳注: これらはいずれも外国語のコミュニティです。もし日本語で質問をしたいのであれば、[Lean の日本語コミュニティ](https://lean-ja.github.io/about/)上で質問すると良いでしょう。)\n" "\n" "または、問題やバグが発生した場合は、GitHubの問題をオープンすることもできます:\n" "\n" From 34f7c9c9cc80527fe80ff8b020281bbd0094fa58 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Tue, 14 Apr 2026 01:59:36 +0900 Subject: [PATCH 005/147] improve translation Tutorial Level 0 --- .i18n/ja/Game.json | 2 +- .i18n/ja/Game.po | 16 +--------------- 2 files changed, 2 insertions(+), 16 deletions(-) diff --git a/.i18n/ja/Game.json b/.i18n/ja/Game.json index 4166f980..2d2a0d97 100644 --- a/.i18n/ja/Game.json +++ b/.i18n/ja/Game.json @@ -195,7 +195,7 @@ " WELL DONE! あなたはこのレベルの主要ボスに挑むための十分なツールを手に入れました。", "Well done!": " WELL DONE!", "Welcome to tutorial world! In this world we learn the basics\nof proving theorems. The boss level of this world\nis the theorem §0.\n\nYou prove theorems by solving puzzles using tools called *tactics*.\nThe aim is to prove the theorem by applying tactics\nin the right order.\n\nLet's learn some basic tactics. Click on \"Start\" below\nto begin your quest.": - "### 原文 (English)\nWelcome to tutorial world! In this world we learn the basics\nof proving theorems. The boss level of this world\nis the theorem §0.\n\nYou prove theorems by solving puzzles using tools called *tactics*.\nThe aim is to prove the theorem by applying tactics\nin the right order.\n\nLet's learn some basic tactics. Click on \"Start\" below\nto begin your quest.\n\n\n### 翻訳 (Japanese)\n welcomes to tutorial world! この世界では定理を証明する基本を学びます。この世界のボスレベルは定理§0です。\n\n定理を証明するには、*タクティク*というツールを使ってパズルを解きます。目標は、適切な順序でタクティクを適用して定理を証明することです。\n\n基本的なタクティクについて学んでみましょう。以下の \"開始\" をクリックして冒険を始めてください。", + "チュートリアルワールドにようこそ! この世界では定理を証明する基本を学びます。この世界のボスレベルは定理§0です。\n\n定理を証明するには、*タクティク*というツールを使ってパズルを解きます。目標は、適切な順序でタクティクを適用して定理を証明することです。\n\n基本的なタクティクについて学んでみましょう。以下の \"開始\" をクリックして冒険を始めてください。", "Welcome to Addition World! In this world we'll learn the §0 tactic.\nThis will enable us to defeat the boss level of this world, namely §1.\n\nThe tactics §2, §3 and §4 are the only tactics you'll need to\nbeat all the levels in Addition World, Multiplication World, and Power World.\nPower World contains the final boss of the game.\n\nThere are plenty more tactics in this game, but you'll only need to know them if you\nwant to explore the game further (for example if you decide to 100%\nthe game).": "### 原文 (English)\nWelcome to Addition World! In this world we'll learn the §0 tactic.\nThis will enable us to defeat the boss level of this world, namely §1.\n\nThe tactics §2, §3 and §4 are the only tactics you'll need to\nbeat all the levels in Addition World, Multiplication World, and Power World.\nPower World contains the final boss of the game.\n\nThere are plenty more tactics in this game, but you'll only need to know them if you\nwant to explore the game further (for example if you decide to 100%\nthe game).\n\n\n### 翻訳 (Japanese)\n Additionワールドへようこそ!このワールドでは§0 タクティクを学びます。\nこれにより、このワールドのボスレベルを攻略することができます、すなわち§1です。\n\n§2, §3, §4 のタクティクのみが必要で、これらを用いて\n加算ワールド、乗算ワールド、乗方ワールドのすべてのレベルを攻略することができます。\n乗方ワールドにはゲームの最終ボスが含まれています。\n\nこのゲームにはもっと多くのタクティクがありますが、それらを知る必要はなく、\nゲームをさらに探索したい場合(例えば、ゲームを100%攻略したい場合)にのみ必要となります。", "We've seen §0, the proof that if §1 then §2.\nNow we'll prove that if §3 then §4 or §5.": diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index c474bacb..61312bf0 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -287,21 +287,7 @@ msgid "" "Let's learn some basic tactics. Click on \"Start\" below\n" "to begin your quest." msgstr "" -"### 原文 (English)\n" -"Welcome to tutorial world! In this world we learn the basics\n" -"of proving theorems. The boss level of this world\n" -"is the theorem §0.\n" -"\n" -"You prove theorems by solving puzzles using tools called *tactics*.\n" -"The aim is to prove the theorem by applying tactics\n" -"in the right order.\n" -"\n" -"Let's learn some basic tactics. Click on \"Start\" below\n" -"to begin your quest.\n" -"\n" -"\n" -"### 翻訳 (Japanese)\n" -" welcomes to tutorial world! この世界では定理を証明する基本を学びます。この世界のボスレベルは定理§0です。\n" +"チュートリアルワールドにようこそ! この世界では定理を証明する基本を学びます。この世界のボスレベルは定理§0です。\n" "\n" "定理を証明するには、*タクティク*というツールを使ってパズルを解きます。目標は、適切な順序でタクティクを適用して定理を証明することです。\n" "\n" From 1ac6268610fe6a8697cb9688d7b44f4f3dda9760 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Tue, 14 Apr 2026 02:56:01 +0900 Subject: [PATCH 006/147] ja: improve Tutorial level 1 --- .i18n/ja/Game.json | 4 ++-- .i18n/ja/Game.po | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.i18n/ja/Game.json b/.i18n/ja/Game.json index 2d2a0d97..7384fbf1 100644 --- a/.i18n/ja/Game.json +++ b/.i18n/ja/Game.json @@ -271,7 +271,7 @@ "The §0 tactic.": "The タクティク tactic.", "The §0 tactic": "The タクティク §0\n\n\n## 日本語翻訳\nタクティク §0", "The way to start this proof is §0.": "この証明を始める方法は §0。", - "The rfl tactic": "The rfl タクティク", + "The rfl tactic": "rfl タクティク", "The reason §0 is because §1.\nSo you should start this proof with §2.": "The reason §0 is because §1.\nSo you should start this proof with §2.\n\n\n## 翻訳\n理由§0は§1である。\n従って、この証明は§2から始めるべきである。", "The previous lemma can be used to prove this one.": @@ -674,7 +674,7 @@ "# Statement\n\nIf §0 and §1 are numbers, then\n§2 is the proof that\n§3.\n\n## More technical details\n\nThere are other ways to think about §4.\n\nYou can think about §5 itself as a function which takes two\nnumbers §6 and §7 as input, and outputs a proof of\n§8.\n\nYou can think of §9 itself as a proof; it is the proof\nthat §10 is an injective function. In other words,\n§11 is a proof of\n§12.\n\n§13 was postulated as an axiom by Peano, but\nin Lean it can be proved using §14, a mathematically\npathological function.": "### 原文 (English)\n# Statement\n\nIf §0 and §1 are numbers, then\n§2 is the proof that\n§3.\n\n## More technical details\n\nThere are other ways to think about §4.\n\nYou can think about §5 itself as a function which takes two\nnumbers §6 and §7 as input, and outputs a proof of\n§8.\n\nYou can think of §9 itself as a proof; it is the proof\nthat §10 is an injective function. In other words,\n§11 is a proof of\n§12.\n\n§13 was postulated as an axiom by Peano, but\nin Lean it can be proved using §14, a mathematically\npathological function.\n\n\n## 翻訳 (Japanese)\n# 陳述\n\n§0 と §1 が数値である場合、\n§2 は §3 の証明です。\n\n## さらなる技術的な詳細\n\n§4 を考える方法は他にもあります。\n\n§5 は、2 つの数値 §6 と §7 を入力として取り、\n§8 の証明を出力する関数として考えることができます。\n\n§9 は自身が証明であり、これは §10 が単射関数であることを示す証明です。つまり、\n§11 は §12 の証明です。\n\nペアノによって公理として導入された §13 ですが、\nLean では §14、すなわち数学的に病理的な関数を使用して証明できます。", "# Read this first\n\nEach level in this game involves proving a mathematical theorem (the \"Goal\").\nThe goal will be a statement about *numbers*. Some numbers in this game have known values.\nThose numbers have names like §0. Other numbers will be secret. They're called things\nlike §1 and §2. We know §3 is a number, we just don't know which one.\n\nIn this first level we're going to prove the theorem that §4.\nYou can see §5 in the *Objects* below, which means that §6 and §7\nare numbers.\n\nWe solve goals in Lean using *Tactics*, and the first tactic we're\ngoing to learn is called §8, which proves all theorems of the form §9.\n\nProve that §10 by executing the §11 tactic.": - "# まずはこちらを読む\n\nこのゲームの各レベルでは、数学的定理(「目標」)を証明します。\n目標は数に関する主張です。このゲームには既知の値を持つ数がいくつかあります。\nその数には§0のような名前がついています。他の数は秘密です。§1や§2のような名前で呼ばれます。§3は数であることは分かっていますが、具体的にはどの数かは分かりません。\n\nこの最初のレベルでは、§4という定理を証明します。\n下の*Objects*に§5が表示されているので、§6と§7は数であることが分かります。\n\nLeanで目標を解決するには*tactics*を使用します。最初に学ぶtacticは§8で、これは§9のような形式の定理を証明します。\n\n§10を証明するために§11 tacticを実行してください。", + "# まずはこちらを読む\n\nこのゲームの各レベルでは、数学的定理(「目標」)を証明します。\n目標は数に関する主張です。このゲームには既知の値を持つ数がいくつかあります。\nその数には§0のような名前がついています。他の数は秘密です。§1や§2のような名前で呼ばれます。§3は数であることは分かっていますが、具体的にはどの数かは分かりません。\n\nこの最初のレベルでは、§4という定理を証明します。\n下の*対象*に§5が表示されているので、§6と§7は数であることが分かります。\n\nLeanで目標を解決するには*タクティク*を使用します。最初に学ぶタクティクは§8で、これは§9のような形式の定理を証明します。\n\n§10を証明するために§11 タクティクを実行してください。", "# Overview\n\nOur home-made tactic §0 will solve arbitrary goals of\nthe form §1.": "# 概要\n\n私たちが作成したタクティク §0 は、§1 のような任意の目標を解決します。", "# Overview\n\nLean's simplifier, §0, will rewrite every lemma\ntagged with §1 and every lemma fed to it by the user, as much as it can.\nFurthermore, it will attempt to order variables into an internal order if fed\nlemmas such as §2, so that it does not go into an infinite loop.": diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 61312bf0..ce533ca7 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1182,11 +1182,11 @@ msgstr "" "は数であることは分かっていますが、具体的にはどの数かは分かりません。\n" "\n" "この最初のレベルでは、§4という定理を証明します。\n" -"下の*Objects*に§5が表示されているので、§6と§7は数であることが分かります。\n" +"下の*対象*に§5が表示されているので、§6と§7は数であることが分かります。\n" "\n" -"Leanで目標を解決するには*tactics*を使用します。最初に学ぶtacticは§8で、これは§9のような形式の定理を証明します。\n" +"Leanで目標を解決するには*タクティク*を使用します。最初に学ぶタクティクは§8で、これは§9のような形式の定理を証明します。\n" "\n" -"§10を証明するために§11 tacticを実行してください。" +"§10を証明するために§11 タクティクを実行してください。" #: Game.Levels.Implication.L02exact2 #. §0: ``` @@ -2503,7 +2503,7 @@ msgstr "" #: Game.Levels.Tutorial.L01rfl msgid "The rfl tactic" -msgstr "The rfl タクティク" +msgstr "rfl タクティク" #: Game.Levels.Algorithm.L04add_algo3 #. §0: ``` From f3f2285b2f819cb623f147de499e2127be33424b Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Fri, 24 Apr 2026 22:13:50 +0900 Subject: [PATCH 007/147] ja: improve Tutorial level 2 --- .i18n/ja/Game.po | 61 +++++++----------------------------------------- 1 file changed, 8 insertions(+), 53 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index ce533ca7..12dc857d 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -253,7 +253,7 @@ msgstr "開始するには、§0 を unravel してください。" #: Game.Levels.Tutorial.L02rw msgid "the rw tactic" -msgstr "the rw タクティク" +msgstr "rw タクティク" #: Game.Levels.AdvMultiplication.L02mul_left_ne_zero msgid "mul_left_ne_zero" @@ -2404,7 +2404,7 @@ msgstr "" msgid "" "Now let's §0 our new theorem. Execute §1\n" "to change §2 to a proof of §3." -msgstr "現在、新しい定理を証明しましょう。§0を実行して§1を変更し、§2を§3の証明にします。" +msgstr "それでは、新しい定理を証明しましょう。§0を実行して§1を変更し、§2を§3の証明にします。" #: Game.Levels.Tutorial.L02rw #. §0: `repeat t` @@ -2449,35 +2449,6 @@ msgid "" "will change the goal to §12. In contrast, §13\n" "will change the goal to §14." msgstr "" -"### 原文 (English)\n" -"## Summary\n" -"\n" -"§0 repeatedly applies the tactic §1\n" -"to the goal. You don't need to use this\n" -"tactic, it just speeds things up sometimes.\n" -"\n" -"## Example\n" -"\n" -"§2 will turn the goal\n" -"§3\n" -"into the goal\n" -"§4.\n" -"\"\n" -"\n" -"TacticDoc nth_rewrite \"\n" -"## Summary\n" -"\n" -"If §5 and there are several §6s in the goal, then\n" -"§7 will just change the third §8 to a §9.\n" -"\n" -"## Example\n" -"\n" -"If the goal is §10 then §11\n" -"will change the goal to §12. In contrast, §13\n" -"will change the goal to §14.\n" -"\n" -"\n" -"### 翻訳 (Japanese)\n" "## 結論\n" "\n" "§0 は目標に対して §1 のタクティクを繰り返し適用します。このタクティクを使用する必要はありませんが、時々処理が早くなります。\n" @@ -4503,19 +4474,7 @@ msgid "" "We do this in Lean by *rewriting* the goal with §8,\n" "using the §9 tactic." msgstr "" -"### 原文 (English)\n" -"In this level the *goal* is §0 but to help us we\n" -"have an *assumption* §1 saying that §2. Check that you can see §3 in\n" -"your list of assumptions. Lean thinks of §4 as being a secret proof of the\n" -"assumption, rather like §5 is a secret number.\n" -"\n" -"Before we can use §6, we have to \"substitute in for §7\".\n" -"We do this in Lean by *rewriting* the goal with §8,\n" -"using the §9 tactic.\n" -"\n" -"\n" -"### 日本語翻訳\n" -"このレベルでは、目標は§0ですが、それを手助けするために、§1という仮定があります。§2がその内容です。§3" +"このレベルでは、目標は§0ですが、それを手助けするために、§1という*仮定*があります。§2がその内容です。§3" "が仮定リストに表示されていることを確認してください。Leanは§4を仮定の秘密の証明と見なし、§5は秘密の数値に似ています。\n" "\n" "§6を使用する前に、「§7に置き換える」必要があります。Leanでは、§8を使用して目標を書き換え、§9タクティクを使用してこれを実行します。" @@ -4852,11 +4811,11 @@ msgid "" "\n" "Now click on \"Next\" to learn about the §3 tactic." msgstr "" -" Congratulations! あなたは初めての検証証明を完了しました!\n" +"おめでとうございます! あなたは初めての検証証明を完了しました!\n" "\n" -"記憶に留めておきましょう。§0は*tactic*です。§1のtacticについての情報が必要な場合は、右側のtactic一覧の§2をクリックできます。\n" +"記憶に留めておきましょう。§0は*タクティク*です。§1のタクティクについての情報が必要な場合は、右側のタクティク一覧の§2をクリックできます。\n" "\n" -"今、\"Next\"をクリックして§3のtacticについて学びましょう。" +"\"次\"をクリックして§3のタクティクについて学びましょう。" #: Game.Levels.Implication.L02exact2 #. §0: $0+x=(0+y)+2$ @@ -5073,11 +5032,7 @@ msgstr "x ≤ succ x" #: Game.Levels.Tutorial.L02rw msgid "Can you take it from here? Click on \"Show more help!\" if you need a hint." msgstr "" -"Can you take it from here? Click on \"Show more help!\" if you need a hint.\n" -"\n" -"\n" -"## 日本語翻訳\n" -"ここから続けられますか?ヒントが必要な場合は「もっと手助けを表示!」とクリックしてください。" +"ここから続けられますか?ヒントが必要な場合は「より多くのヘルプを表示!」をクリックしてください。" #: Game.Levels.Algorithm.L07succ_ne_succ #. §0: `contrapose! h` @@ -6846,7 +6801,7 @@ msgstr "§0は§1の後の数値の後の数値です。" #: Game.Levels.Tutorial.L02rw #. §0: `2 + 2 = 4` msgid "You now know enough tactics to prove §0! Let's begin the journey." -msgstr "あなたはすでに十分なタクティクを習得し、§0を証明することができます!旅程の始まりです。" +msgstr "あなたはすでに十分なタクティクを習得し、§0を証明することができます!旅の始まりです。" #: Game.Levels.Multiplication.L03succ_mul #. §0: `succ_mul a b` From 586702e73557d614d668261788d96513e0f224b9 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sat, 25 Apr 2026 00:50:42 +0900 Subject: [PATCH 008/147] ja: improve Tutorial level 3 --- .i18n/ja/Game.po | 35 +++++------------------------------ 1 file changed, 5 insertions(+), 30 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 12dc857d..8a18a40f 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1395,23 +1395,6 @@ msgid "" "It is distinct from the Lean natural numbers §5, which should hopefully\n" "never leak into the natural number game.*" msgstr "" -"### 原文 (English)\n" -"§0 is the natural numbers, just called \\\\\"numbers\\\\\" in this game. " -"It's\n" -"defined via two rules:\n" -"\n" -"* §1 (zero is a number)\n" -"* §2 (the successor of a number is a number)\n" -"\n" -"## Game Implementation\n" -"\n" -"*The game uses its own copy of the natural numbers, called §3 with notation " -"§4.\n" -"It is distinct from the Lean natural numbers §5, which should hopefully\n" -"never leak into the natural number game.*\n" -"\n" -"\n" -"### 翻訳 (Japanese)\n" "§0は自然数で、このゲームでは単に「数」呼ばれる。これは以下の2つのルールにより定義される:\n" "\n" "* §1(ゼロは数)\n" @@ -1857,7 +1840,7 @@ msgstr "" msgid "" "Can you take it from here? (note: if you try §0 again, it will\n" "take you back to where you started!)" -msgstr "Can you continue from here? (注: §0を再度試すと、元の場所に戻ってしまいます!)" +msgstr "ここから続けられますか?(注: §0を再度試すと、元の場所に戻ってしまいます!)" #: Game.Levels.Power.L05pow_two #. §0: `pow_two a` @@ -3087,11 +3070,7 @@ msgstr "" #. §0: `rfl` msgid "Now finish the job with §0." msgstr "" -"現在の作業を完了してください。§0\n" -"\n" -"\n" -"## 参考訳\n" -"現在の作業を完了してください。§0" +"§0で現在の作業を完了してください。\n" #: Game.Levels.AdvMultiplication.L10mul_right_eq_self #. §0: `nth_rewrite 2 [← mul_one a] at h` @@ -5237,7 +5216,7 @@ msgstr "" #: Game.Levels.Tutorial.L03two_eq_ss0 msgid "Can you take it from here?" -msgstr "您可以继续了吗?" +msgstr "ここから続けられますか?" #: Game.Levels.Power.L07mul_pow msgid "mul_pow" @@ -6060,11 +6039,7 @@ msgstr "" #: Game.Levels.Tutorial.L03two_eq_ss0 msgid "Numbers" -msgstr "" -"数値\n" -"\n" -"\n" -"##" +msgstr "数値" #: Game.Levels.Tutorial.L07add_succ #. §0: `rfl` @@ -6914,7 +6889,7 @@ msgstr "" msgid "" "Note that you can do §0\n" "and then §1 to solve this level in two lines." -msgstr "注文しますと、§0 を実行し、その後 §1 を実行することで、このレベルを二行で解くことができます。" +msgstr "§0 を実行し、その後 §1 を実行することで、このレベルを二行で解くことができることを留意してください。" #: Game.Levels.AdvAddition.L05add_right_eq_zero msgid "add_right_eq_zero" From 50f8a2a7f8a817c3bb5651779a1daa65009fefef Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sat, 25 Apr 2026 01:21:53 +0900 Subject: [PATCH 009/147] ja: improve Tutorial level 4 --- .i18n/ja/Game.po | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 8a18a40f..c9ba80b4 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -150,7 +150,7 @@ msgid "" "after §11 again, this time by changing §12\n" "into §13." msgstr "" -"もし§0が§1の証明であるなら、§2は§3を§4に変換します。しかし、§5を§6に変換したい場合怎么办?§7" +"もし§0が§1の証明であるなら、§2は§3を§4に変換します。しかし、§5を§6に変換したい場合は?§7" "タクティクに私たちがこの変換を指示するには、左矢印§8を使用します。型§9を入力し、スペースバーを押すとこの矢印が得られます。\n" "\n" "次の証明で、§10が§11の後ろの数値の後ろの数値であることを証明しましょう。今回は§12を§13に変換して証明します。" @@ -244,7 +244,7 @@ msgstr "" #. §1: `succ 0` #. §2: `1` msgid "Try §0 to change §1 into §2." -msgstr "試してみて §0 を使用し、§1 を §2 に変換してください。" +msgstr "§0 を使用し、§1 を §2 に変換してみてください。" #: Game.Levels.Tutorial.L07add_succ #. §0: `1` @@ -1954,7 +1954,7 @@ msgstr "" #. §1: `succ 1` #. §2: `2` msgid "Now §0 will change §1 into §2." -msgstr "現在、§0は§1を§2に変換します。" +msgstr "§0は§1を§2に変換します。" #: Game.Levels.Implication.L07intro2 #. §0: ``` @@ -6258,7 +6258,7 @@ msgstr "" #: Game.Levels.Tutorial.L04rw_backwards #. §0: `2 = 2` msgid "Can you now change the goal into §0?" -msgstr "現在、目標を§0に変更できますか?" +msgstr "目標を§0に変更できますか?" #: Game.Levels.Power.L09add_sq msgid "add_sq" @@ -7008,12 +7008,7 @@ msgstr "" #: Game.Levels.Tutorial.L04rw_backwards msgid "rewriting backwards" -msgstr "" -"反転して書き換えます\n" -"\n" -"\n" -"## 参考訳\n" -"反転して書き換えます" +msgstr "反転して書き換え\n" #: Game.Levels.LessOrEqual.L01le_refl #. §0: `use` From d7b1a0bad08aca00af89d73a8e454cd824f76f8e Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sat, 25 Apr 2026 01:36:01 +0900 Subject: [PATCH 010/147] ja: improve Tutorial level 5 --- .i18n/ja/Game.po | 48 +++++------------------------------------------- 1 file changed, 5 insertions(+), 43 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index c9ba80b4..6b01211c 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1027,34 +1027,8 @@ msgid "" "\n" "We write §20, so §21." msgstr "" -"### 原文 (English)\n" -"We'd like to prove §0 but right now\n" -"we can't even *state* it\n" -"because we haven't yet defined addition.\n" -"\n" -"## Defining addition.\n" -"\n" -"How are we going to add §1 to an arbitrary number §2? Well,\n" -"there are only two ways to make numbers in this game: §3\n" -"and successors. So to define §4 we will need\n" -"to know what §5 is and what §6 is.\n" -"Let's start with adding §7.\n" -"\n" -"### Adding 0\n" -"\n" -"To make addition agree with our intuition, we should *define* §8\n" -"to be §9. More generally, we should define §10 to be §11 for\n" -"any number §12. The name of this proof in Lean is §13.\n" -"For example §14 is a proof of §15,\n" -"§16 is a proof of §17, and §18 is a proof\n" -"of §19.\n" -"\n" -"We write §20, so §21.\n" -"\n" -"\n" -"### 翻訳 (Japanese)\n" -"私たちは§0を証明したいですが、現在ではすら\n" -"その定理を述べることができません。\n" +"私たちは§0を証明したいですが、現在では\n" +"その定理を*述べること*すらできません。\n" "なぜなら、加法をまだ定義していないからです。\n" "\n" "## 加法の定義\n" @@ -2556,14 +2530,7 @@ msgstr "帰納法は§0が最も難しい然後に§1で、§2は最も簡単で #: Game.Levels.AdvAddition.L03add_left_eq_self #. §0: $a+(b+0)+(c+0)=a+b+c.$ msgid "§0" -msgstr "" -"## \n" -"\n" -"§0\n" -"\n" -"\n" -"## 日本語翻訳\n" -"タクティクは証明手法を指し、定理は命題の証明を含む数学的命題を表します。Lean 4では、対話型の証明環境でこれらの要素を操作します。" +msgstr "§0" #: Game.Levels.Implication.L11two_add_two_ne_five #. §0: `zero_ne_succ` @@ -3347,7 +3314,7 @@ msgstr "" msgid "" "Those of you interested in speedrunning the game may want to know\n" "that §0 will do both rewrites at once." -msgstr "ゲームの速 Exterior に興味がある方は、§0 が一度に両方のリライトを行うことを知るかもしれません。" +msgstr "ゲームのスピードランに興味がある方は、§0 が一度に両方のリライトを行うことを知っておくと良いでしょう。" #: Game.Levels.Tutorial.L07add_succ #. §0: $0$ @@ -6897,12 +6864,7 @@ msgstr "add_right_eq_zero" #: Game.Levels.Tutorial.L05add_zero msgid "Adding zero" -msgstr "" -"追加するゼロ\n" -"\n" -"\n" -"## 参考訳\n" -"追加するゼロ" +msgstr "0を加える" #: Game.Levels.Addition.L03add_comm msgid "" From e56b8003871ebc39cad5af3d6f22ad18613ff4ed Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sat, 25 Apr 2026 01:53:53 +0900 Subject: [PATCH 011/147] ja: improve Tutorial level 6 --- .i18n/ja/Game.po | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 6b01211c..fef56223 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -2103,7 +2103,7 @@ msgid "" "can usually stick to §6 unless you need real precision." msgstr "" "§0は§1の証明なので、それが書き換えられた理由です。\n" -"現在、§2を§3に変更することができます。通常は§6を使用していれば問題ありませんが、実際の精度が必要な場合は§4や§5を使用してください。" +"さて、§4や§5を使用して§2を§3に変更することができます。よほどの精度が必要でなければ通常は§6を使用していれば問題ありません。" #: Game.Levels.AdvAddition.L01add_right_cancel msgid "add_right_cancel" @@ -2257,7 +2257,7 @@ msgstr "pow_add" #: Game.Levels.Tutorial.L06add_zero2 Game.Levels.LessOrEqual.L08le_total #. §0: `rw [add_zero c]` msgid "Try §0." -msgstr "試してみましょう§0。" +msgstr "§0を試しましょう。" #: Game #. §0: `{0,1,2,3,4,...}` @@ -2773,7 +2773,7 @@ msgstr "推論ワールド" #: Game.Levels.Tutorial.L06add_zero2 #. §0: `add_succ` msgid "Let's now learn about Peano's second axiom for addition, §0." -msgstr "## ペアノの加法に関する第2の公理について、§0 を学んでみましょう。" +msgstr "ペアノの加法に関する第2の公理について、§0 を学んでみましょう。" #: Game.Levels.Algorithm.L03add_algo2 Game.Levels.Algorithm.L04add_algo3 #. §0: $a, b,\\ldots h$ @@ -3959,10 +3959,10 @@ msgid "" "to change §4 first by giving §5 an\n" "explicit input." msgstr "" -"## 精度の再編纂\n" +"## 精密な書き換え\n" "\n" -"最後のレベルでは、§0 と §1 があり、\n" -"§2 は最初に見つけたものを §3 に変更しました。\n" +"前のレベルでは、§0 と §1 があり、\n" +"§2 は最初に見つけた§3を変更しました。\n" "Lean に §4 を最初に変更させる方法を学びましょう。\n" "§5 に明示的な入力を与えることで実現します。" @@ -6542,10 +6542,7 @@ msgstr " WELL DONE!" #: Game.Levels.Tutorial.L06add_zero2 msgid "Precision rewriting" -msgstr "" -"精密な書き換え\n" -"\n" -"##" +msgstr "精密な書き換え" #: Game.Levels.Multiplication.L07mul_add #. §0: $a(b+c)=ab+ac$ From f307b8efd5785c5c14cac9fd547139f781f5fc3c Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sat, 25 Apr 2026 02:17:29 +0900 Subject: [PATCH 012/147] ja: improve Tutorial level 7 --- .i18n/ja/Game.po | 56 +++++++----------------------------------------- 1 file changed, 8 insertions(+), 48 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index fef56223..d3fdbffa 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -249,7 +249,7 @@ msgstr "§0 を使用し、§1 を §2 に変換してみてください。" #: Game.Levels.Tutorial.L07add_succ #. §0: `1` msgid "Start by unravelling the §0." -msgstr "開始するには、§0 を unravel してください。" +msgstr "§0 を解いて開始してください。" #: Game.Levels.Tutorial.L02rw msgid "the rw tactic" @@ -2889,7 +2889,7 @@ msgstr "開始します。§0を入力すると、§1が§2に変更されます #: Game.Levels.Tutorial.L07add_succ msgid "[dramatic music]. Now are you ready to face the first boss of the game?" -msgstr "[dramatic music]. 今でしょ、ゲーム最初のボス戦に臨む準備はできていますか?" +msgstr "[ドラマティックな音楽] さあ、ゲーム最初のボス戦に臨む準備はできていますか?" #: Game.Levels.AdvAddition #. §0: $x+y=x\\implies y=0$ @@ -3354,28 +3354,8 @@ msgid "" "§18 (numerals) tabs under \"Theorems\" on the right to\n" "see which proofs you can rewrite." msgstr "" -"### 原文 (English)\n" -"Every number in Lean is either §0 or a successor. We know how to add §1,\n" -"but we need to figure out how to add successors. Let's say we already know\n" -"that §2. What should the answer to §3 be? Well,\n" -"§4 is one bigger than §5, so §6 should be §7,\n" -"the number one bigger than §8. More generally §9 should\n" -"be §10. Let's add this as a lemma.\n" -"\n" -"* §11\n" -"\n" -"If you ever see §12 in your goal, §13 is\n" -"normally a good idea.\n" -"\n" -"Let's now prove that §14. Figure out how to get §15 into\n" -"the picture, and then §16. Switch between the §17 (addition) and\n" -"§18 (numerals) tabs under \"Theorems\" on the right to\n" -"see which proofs you can rewrite.\n" -"\n" -"\n" -"### 翻訳 (Japanese)\n" "Leanの数は、§0 " -"または後続数のいずれかです。§1を加算する方法は分かっていますが、後続数を加算する方法はまだ分かりません。例えば、§2が分かっているとします。那么,§3" +"または後続数のいずれかです。§1を加算する方法は分かっていますが、後続数を加算する方法はまだ分かりません。例えば、§2が分かっているとします。では、§3" "の答えは何になるべきでしょうか? §4は §5よりも1大きいので、§6は §7、つまり §8よりも1大きい数になるべきです。より一般的には、§9は " "§10になります。この事実を補題として追加しましょう。\n" "\n" @@ -3383,8 +3363,8 @@ msgstr "" "\n" "もし目標に §12が見つかったら、通常 §13は良いアイデアです。\n" "\n" -"次に、§14を証明しましょう。§15を図に取り入れる方法を考え、その後 §16を証明します。\"Theorems\" の右側にある \"追加\" と " -"\"数\" のタブを切り替えて、どの証明を書き換えることができるか確認します。" +"次に、§14を証明しましょう。§15を図に取り入れる方法を考え、その後 §16を証明します。\"Theorems\" の右側にある `+` (加算) と " +"`012` (数字) のタブを切り替えて、どの証明を書き換えることができるか確認します。" #: Game.Levels.Algorithm.L06is_zero #. §0: `trivial` @@ -3809,15 +3789,7 @@ msgstr "add_left_eq_zero" #: Game.Levels.Tutorial.L07add_succ Game.Levels.Tutorial.L08twoaddtwo #. §0: `rw [add_succ]` msgid "Now you can §0" -msgstr "" -"現在、§0\n" -"\n" -"\n" -"## 原文 (English)\n" -"Now you can use the tactic `§1` to prove `§2` by applying it to `§3`.\n" -"\n" -"### 日本語翻訳\n" -"現在、`§1` タクティクを用いて`§2`を`§3`に適用して証明することができます。" +msgstr "§0ができます。" #: Game.Levels.Implication.L04succ_inj #. §0: `←` @@ -6341,14 +6313,7 @@ msgstr "" #: Game.Levels.Tutorial.L07add_succ #. §0: `rw [add_zero]` msgid "And now §0" -msgstr "" -"```html\n" -"And now §0\n" -"\n" -"```\n" -"```html\n" -"現在 §0\n" -"```" +msgstr "§0をしましょう。" #: Game.Levels.Power.L06pow_add Game.Levels.Power.L07mul_pow #: Game.Levels.Power.L08pow_pow @@ -6799,12 +6764,7 @@ msgstr "### 基本的なケースでは、仮定§0が存在します。偽の #: Game.Levels.Tutorial.L07add_succ msgid "add_succ" -msgstr "" -"add_succ\n" -"\n" -"\n" -"## 日本語翻訳\n" -"自然数の加算に関する定理を証明するタクティクです。" +msgstr "add_succ" #: Game.Levels.Power.L03pow_one msgid "pow_one" From 471ce9eec3152a02a70a826ba24e056f15019240 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sat, 25 Apr 2026 02:29:25 +0900 Subject: [PATCH 013/147] ja: improve Tutorial level 8 --- .i18n/ja/Game.po | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index d3fdbffa..ab686278 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -941,7 +941,7 @@ msgid "" " If you only want to change one of them, say the 3rd one, then use\n" " §4." msgstr "" -"Good luck!\n" +"幸運を!\n" "\n" "最後のヒント。もし§0であれば、§1はすべての§2を§3に変換します。\n" "一方で、一つだけ変換したい場合(例えば3番目のもの)、§4を使用します。" @@ -4215,10 +4215,10 @@ msgstr "" "オプション:自分でこの証明を実行することもできます。右上の§1" "ボタンをクリックしてゲームを「エディタモード」に切り替えることができます。現在の証明は、複数行のコードとして表示されます。行の間でカーソルを動かすことで" "、任意のポイントでの目標状態を確認できます。証明を保存したい場合は、コードを他の場所に切り貼りし、上の証明を代入できます。カーソルを動かして調査してくだ" -"さい。終了したら、右上の§2ボタンをクリックして「タイピングモード」に戻ります。\n" +"さい。終了したら、右上の§2ボタンをクリックして「タイプライターモード」に戻ります。\n" "\n" "チュートリアルワールドを終了しました!\n" -"「ホーム」をクリックしてオーバワールドに戻り、加算ワールドを選択して§3タクティクについて学びます。" +"「ホーム」をクリックしてオーバーワールドに戻り、加算ワールドを選択して§3タクティクについて学びます。" #: Game.Levels.Power.L01zero_pow_zero #. §0: `Pow a b` @@ -4849,13 +4849,7 @@ msgstr "現在、存在文 §0 を分解します。" #: Game.Levels.AdvAddition.L04add_right_eq_self #. §0: $2+2=4$ msgid "§0." -msgstr "" -"### 原文 (English)\n" -"§0.\n" -"\n" -"\n" -"## 日本語翻訳\n" -"§0." +msgstr "§0." #: Game.Levels.Power.L10FLT #. §0: $x,y,z>0$ From d4b45d9c74b71d8fb7407f69a62b9fa21c6bc2db Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sat, 25 Apr 2026 02:33:33 +0900 Subject: [PATCH 014/147] ja: fix translation addition world --- .i18n/ja/Game.po | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index ab686278..a4f7ab08 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -575,11 +575,7 @@ msgstr "" #: Game.Levels.Addition msgid "Addition World" -msgstr "" -" Addition World\n" -"\n" -"## 日本語翻訳\n" -"ワールド::加算" +msgstr "加算ワールド" #: Game.Levels.Implication.L01exact #. §0: `P` From b8b7e5ef5f30d9485e8b9d481bf066e27d59a586 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sat, 25 Apr 2026 02:36:31 +0900 Subject: [PATCH 015/147] ja: fix improve addition world introduction --- .i18n/ja/Game.po | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index a4f7ab08..31d02583 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -675,28 +675,12 @@ msgid "" "want to explore the game further (for example if you decide to 100%\n" "the game)." msgstr "" -"### 原文 (English)\n" -"Welcome to Addition World! In this world we'll learn the §0 tactic.\n" -"This will enable us to defeat the boss level of this world, namely §1.\n" -"\n" -"The tactics §2, §3 and §4 are the only tactics you'll need to\n" -"beat all the levels in Addition World, Multiplication World, and Power " -"World.\n" -"Power World contains the final boss of the game.\n" -"\n" -"There are plenty more tactics in this game, but you'll only need to know " -"them if you\n" -"want to explore the game further (for example if you decide to 100%\n" -"the game).\n" -"\n" -"\n" -"### 翻訳 (Japanese)\n" -" Additionワールドへようこそ!このワールドでは§0 タクティクを学びます。\n" +" 加算ワールドへようこそ!このワールドでは§0 タクティクを学びます。\n" "これにより、このワールドのボスレベルを攻略することができます、すなわち§1です。\n" "\n" "§2, §3, §4 のタクティクのみが必要で、これらを用いて\n" -"加算ワールド、乗算ワールド、乗方ワールドのすべてのレベルを攻略することができます。\n" -"乗方ワールドにはゲームの最終ボスが含まれています。\n" +"加算ワールド、乗算ワールド、冪乗ワールドのすべてのレベルを攻略することができます。\n" +"冪乗ワールドにはゲームの最終ボスが含まれています。\n" "\n" "このゲームにはもっと多くのタクティクがありますが、それらを知る必要はなく、\n" "ゲームをさらに探索したい場合(例えば、ゲームを100%攻略したい場合)にのみ必要となります。" From f0909f6450ea3b4c4233dae8f307de28cb6793cb Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sat, 25 Apr 2026 03:04:49 +0900 Subject: [PATCH 016/147] ja: fix improve addition world Level 1 --- .i18n/ja/Game.po | 50 ++++++++---------------------------------------- 1 file changed, 8 insertions(+), 42 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 31d02583..88c1ab28 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -366,30 +366,6 @@ msgid "" "you can swap\n" "back to \"Typewriter mode\" by clicking the §16 button in the top right.)" msgstr "" -"### 原文 (English)\n" -"In this level we're going to prove that §0, where §1 is a secret natural " -"number.\n" -"\n" -"Wait, don't we already know that? No! We know that §2, but that's §3.\n" -"This is §4, which is different.\n" -"\n" -"The difficulty with proving §5 is that we do not have a *formula* for\n" -"§6 in general, we can only use §7 and §8 once\n" -"we know whether §9 is §10 or a successor. The §11 tactic splits into these " -"two cases.\n" -"\n" -"The base case will require us to prove §12, and the inductive step\n" -"will ask us to show that if §13 then §14. Because\n" -"§15 and successor are the only way to make numbers, this will cover all the " -"cases.\n" -"\n" -"See if you can do your first induction proof in Lean.\n" -"\n" -"(By the way, if you are still in the \"Editor mode\" from the last world, " -"you can swap\n" -"back to \"Typewriter mode\" by clicking the §16 button in the top right.)\n" -"\n" -"### 翻訳 (Japanese)\n" "このレベルでは、§1 という秘密の自然数について §0 を証明します。\n" "\n" "待って、それでは既に知っていることではないですか?いいえ!§2 は分かっていますが、それが §3 です。\n" @@ -2051,7 +2027,7 @@ msgstr "" "現在、2つの目標があります。最初の目標を証明すると、次の目標に移ります。\n" "この最初の目標は基本ケース §0 です。\n" "\n" -"あなたのインベントリで表示されている任意の補題の証明、または目標の上に表示されている任意の仮定の証明を再書き換えることができます。ただし、その形式は " +"あなたのインベントリで表示されている任意の補題の証明、または目標の上に表示されている任意の仮定の証明を再書き換えすることができます。ただし、その形式は " "§1 である必要があります。" #: Game.Levels.Implication.L05succ_inj2 @@ -3411,7 +3387,7 @@ msgstr "任意の3つの変数について帰納法を適用できます。い msgid "" "At this point you see the term §0, so you can use the\n" "induction hypothesis with §1." -msgstr "現在、項§0が表示されているので、項§1を使用してインベントリ仮定を適用することができます。" +msgstr "現在、項§0が表示されているので、項§1を使用して帰納法の仮定を適用することができます。" #: Game.Levels.Power.L01zero_pow_zero #. §0: `0 ^ 0` @@ -4147,12 +4123,7 @@ msgid "" "You can start a proof by induction on §0 by typing:\n" "§1." msgstr "" -"You can start a proof by induction on §0 by typing:\n" -"§1.\n" -"\n" -"\n" -"## 日本語翻訳\n" -" induksi法による証明を開始するには、§0について帰納法で証明を開始するためには以下のように入力します:\n" +"§0について帰納法で証明を開始するためには以下のように入力します:\n" "§1." #: Game.Levels.Tutorial.L08twoaddtwo @@ -4295,12 +4266,7 @@ msgstr "§0は§1の証明です。" #: Game.Levels.Addition.L01zero_add msgid "zero_add" -msgstr "" -"zero_add\n" -"\n" -"\n" -"## 日本語翻訳\n" -"0との加算" +msgstr "zero_add" #: Game.Levels.AdvMultiplication.L09mul_left_cancel #. §0: `induction b with d hd generalizing c` @@ -5000,7 +4966,7 @@ msgstr "生活をより簡単に" #: Game.Levels.Addition.L01zero_add #. §0: `add_succ` msgid "Use §0." -msgstr "使用してください §0。" +msgstr "§0を使用してください。" #: Game.Levels.LessOrEqual.L07or_symm #. §0: `or` @@ -5199,7 +5165,7 @@ msgstr "" msgid "" "Now for the second goal. Here you have the induction hypothesis\n" "§0, and you need to prove that §1." -msgstr "現在、第二の目標に移ります。ここでは、 induksiion hypothesis §0 が与えられており、 §1 を証明する必要があります。" +msgstr "では、第二の目標に移ります。ここでは、 帰納法の仮定 §0 が与えられており、 §1 を証明する必要があります。" #: Game.Levels.Algorithm.L05pred msgid "pred" @@ -5260,7 +5226,7 @@ msgstr "" #: Game.Levels.Addition.L01zero_add #. §0: `add_zero` msgid "try rewriting §0." -msgstr "try rewriting §0." +msgstr "§0で書き換えてみてください." #: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero msgid "one_le_of_ne_zero" @@ -6968,4 +6934,4 @@ msgstr "" "この補題は、§0を知っていたら簡単だったでしょう。その定理は§1と呼ばれ、**真**です。しかし、残念ながらその証明は§2と§3を**使用**" "しています!\n" "\n" -"§4の証明へと進みましょう、§5の証明に。" +"§4へと進みましょう、§5の証明に。" From ebc5c01685272ef4218b6e3342aa3d20f0a2675a Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sat, 25 Apr 2026 23:59:47 +0900 Subject: [PATCH 017/147] ja: improve addition world Level 2 --- .i18n/ja/Game.po | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 88c1ab28..ebb74215 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -117,11 +117,6 @@ msgid "" "§1." msgstr "" "すべての自然数 §0 に対して、\n" -"§1.\n" -"\n" -"\n" -"## 参考訳\n" -"すべての自然数 §0 に対して、\n" "§1." #: Game.Levels.Tutorial.L04rw_backwards @@ -2420,12 +2415,7 @@ msgstr "もし§0であるなら、§1または§2のいずれかである。" #: Game.Levels.Addition.L02succ_add msgid "succ_add" -msgstr "" -"succ_add\n" -"\n" -"\n" -"## 日本語翻訳\n" -"成功加算" +msgstr "succ_add" #: Game.Levels.Algorithm.L02add_algo1 #. §0: `add_comm` @@ -4758,9 +4748,9 @@ msgid "" "we have the problem that we are adding §7 to things, so we need\n" "to use induction to split into the cases where §8 and §9 is a successor." msgstr "" -"Oh no! §0 に向かう途中で、野生の §1 が現れました。 §2 は、 §3 が §4 と §5 " +"うわあ! §0 に向かう途中で、野生の §1 が現れました。 §2 は、 §3 が §4 と §5 " "の数値に対して成り立つことを証明しています。この結果が §6 の道を阻んでいます。また\n" -"私たちは §7 を何かに加算している問題に直面しており、そのためには §8 と §9 が後继者である場合に分けて帰納法を使用する必要があります。" +"私たちは §7 を何かに加算している問題に直面しており、そのためには §8 と §9 が後者である場合に分けて帰納法を使用する必要があります。" #: Game.Levels.Algorithm.L03add_algo2 #. §0: `simp` @@ -5828,7 +5818,7 @@ msgstr "" #: Game.Levels.Addition.L02succ_add msgid "Well done! You now have enough tools to tackle the main boss of this level." -msgstr " WELL DONE! あなたはこのレベルの主要ボスに挑むための十分なツールを手に入れました。" +msgstr "よくできました! あなたはこのレベルのメインボスに挑むための十分なツールを手に入れました。" #: Game.Levels.LessOrEqual.L03le_succ_self #. §0: `use` From f3bc9743296b80d523caa301dd990aa6b56221db Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 00:00:20 +0900 Subject: [PATCH 018/147] ja: improve addition world Level 3 --- .i18n/ja/Game.po | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index ebb74215..0b15c167 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1211,12 +1211,6 @@ msgid "" msgstr "" "自然数の集合において、加算は交換律を満たします。\n" "つまり、任意の自然数 §0 と §1 に対して、\n" -"§2.\n" -"\n" -"\n" -"## 参考訳\n" -"自然数の集合において、加算は交換律を満たします。\n" -"つまり、任意の自然数 §0 と §1 に対して、\n" "§2." #: Game.Levels.AdvMultiplication.L09mul_left_cancel @@ -4458,13 +4452,7 @@ msgstr "" #: Game.Levels.Addition.L03add_comm msgid "add_comm (level boss)" -msgstr "" -"add_comm (レベルボス)\n" -"\n" -"\n" -"## 備考\n" -"- `add_comm` は「加算の交換律を追加する」という意味です。\n" -"- `level boss` は「レベルボス」と翻訳しています。" +msgstr "add_comm (レベルボス)\n" #: Game.Levels.Multiplication.L02zero_mul #. §0: `mul_comm x y : x * y = y * x` @@ -6760,7 +6748,7 @@ msgid "" "Look in your inventory to see the proofs you have available.\n" "These should be enough." msgstr "" -"[boss battle music]\n" +"[ボスバトルミュージック]\n" "\n" "あなたのインベントリを確認して、利用可能な証明を確認してください。\n" "これらの証明は十分なはずです。" From 194fe4e163904b78bd7670a7a89cbc0e32ab383f Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 00:17:47 +0900 Subject: [PATCH 019/147] ja: improve addition world Level 4 --- .i18n/ja/Game.po | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 0b15c167..add622da 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -230,9 +230,9 @@ msgid "" "hover over both §2 symbols on the left hand side of the goal and\n" "you'll see where the invisible brackets are." msgstr "" -"Remember that when Lean writes §0, it means §1.\n" -"もし式内の括弧の位置が不明な場合は、カーソルをその位置に-hover " -"して表示されるハイライトを確認してください。例えば、目標の左側の両方の§2をhoverすると、見えない括弧の位置がわかります。" +"Lean において§0と表示されたとき、§1を意味することを覚えておいてください。.\n" +"もし式内の括弧の位置が不明な場合は、カーソルをその位置にホバー" +"して表示されるハイライトを確認してください。例えば、目標の左側の両方の§2をホバーすると、見えない括弧の位置がわかります。" #: Game.Levels.Tutorial.L04rw_backwards #. §0: `rw [← one_eq_succ_zero]` @@ -907,9 +907,9 @@ msgid "" "Let's practice using §0 and §1 in one more level,\n" "before we leave addition world." msgstr "" -"A 通りすがりの数学者は、自然数が加法的交換半群であることを証明したことに称賛の意を表します。\n" +"通りすがりの数学者は、自然数が加法的交換半群であることを証明したことに称賛の意を表します。\n" "\n" -"加法的世界を去る前に、§0 と §1 の使用をもう一回練習しましょう。" +"加算ワールドを去る前に、§0 と §1 の使用をもう一回練習しましょう。" #: Game.Levels.Implication.L05succ_inj2 msgid "Arguing backwards" @@ -1529,25 +1529,13 @@ msgid "" "\n" " That's true, but we didn't prove it yet. Let's prove it now by induction." msgstr "" -"### 原文 (English)\n" -"We've been adding up two numbers; in this level we will add up three.\n" -"\n" -" What does §0 *mean*? It could either mean §1, or it\n" -" could mean §2. In Lean, §3 means §4.\n" -"\n" -" But why do we care which one it means; §5 and §6 are *equal*!\n" -"\n" -" That's true, but we didn't prove it yet. Let's prove it now by induction.\n" -"\n" -"\n" -"### 翻訳 (Japanese)\n" "二つの数を足し合わせてきました;このレベルでは三つの数を足し合わせます。\n" "\n" " §0は何を意味するのでしょうか?それは §1 か §2 のどちらかです。Leanでは、§3 は §4 と意味が同じです。\n" "\n" " しかし、どの意味を持つべきかを気にする必要があるのでしょうか;§5 と §6 は *等しい* のです!\n" "\n" -" その通りですが、まだ証明していません。 inducution で証明しましょう。" +" その通りですが、まだ証明していません。帰納法 (`inducution`) で証明しましょう。" #: Game.Levels.AdvAddition.L04add_right_eq_self #. §0: `add_left_eq_self` From 4f8bd1bde0a786a3c7955343429eb6a2c8100334 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 00:24:53 +0900 Subject: [PATCH 020/147] ja: improve addition world Level 5 --- .i18n/ja/Game.po | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index add622da..68a36833 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -5182,12 +5182,7 @@ msgstr "§0は§1の証明です。" #: Game.Levels.Addition.L05add_right_comm msgid "add_right_comm" -msgstr "" -"add_right_comm\n" -"\n" -"\n" -"## 日本語翻訳\n" -"右側加算の交換律(add_right_comm)" +msgstr "add_right_comm" #: Game.Levels.Addition.L01zero_add #. §0: `add_zero` @@ -6594,13 +6589,13 @@ msgid "" "Click \"Home\" and make your choice." msgstr "" "以下の最終ボスを倒すためのタクティクスを全部学びました。\n" -"ゲームの最終ボスに向かう旅を始めるには、Multiplication Worldに入り始めることができます。\n" +"ゲームの最終ボスに向かう旅を始めるには、乗算ワールドに入り始めることができます。\n" "\n" -"または、Implication " -"Worldで新しいタクティクスを学んでみるのも良いでしょう。これらのタクティクスは、加算に関するより多くの事実を証明するのに役立ちます。例えば、§0" +"または、Implication Worldで" +"新しいタクティクを学んでみるのも良いでしょう。これらのタクティクは、加算に関するより多くの事実を証明するのに役立ちます。例えば、§0" "から§1を導き出す方法を学ぶことができます。\n" "\n" -"\"Home\"をクリックして選択してください。" +"\"ホーム\"をクリックして選択してください。" #: Game.Levels.Tutorial.L03two_eq_ss0 Game.Levels.Tutorial.L04rw_backwards #. §0: $2$ From b5ffb3d0064360bddcaf06e84b5b0e7c209540d0 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 00:34:21 +0900 Subject: [PATCH 021/147] ja: improve multiplicaton introduction --- .i18n/ja/Game.po | 26 +++----------------------- 1 file changed, 3 insertions(+), 23 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 68a36833..c199f591 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -5919,31 +5919,11 @@ msgid "" "like §13.\n" "Let's get started." msgstr "" -"### 原文 (English)\n" -"How should we define §0? Just like addition, we need to give definitions\n" -"when §1 and when §2 is a successor.\n" -"\n" -"The zero case is easy: we define §3 to be §4. Now say we know\n" -"§5. What should §6 be? Well, that's §7 §8s,\n" -"so it should be §9.\n" -"\n" -"Here are the definitions in Lean.\n" -"\n" -" * §10\n" -" * §11\n" -"\n" -"In this world, we must not only prove facts about multiplication like §12,\n" -"we must also prove facts about how multiplication interacts with addition, " -"like §13.\n" -"Let's get started.\n" -"\n" -"\n" -"### 翻訳 (Japanese)\n" -"どのように §0 を定義すべきでしょうか?加法と同様に、§1 が successor であるときと §2 が successor " +"どのように §0 を定義すべきでしょうか?加法と同様に、§1 であるときと §2 が successor " "であるときそれぞれに定義を提供する必要があります。\n" "\n" -"零の場合は簡単です:§3 を §4 で定義します。次に §5 を仮定します。那么 §6 应该是什么呢?嗯,那是 §7 §8s,\n" -"所以应该定义为 §9。\n" +"ゼロの場合は簡単です:§3 を §4 で定義します。次に §5 を仮定します。§6 のときはどうでしょうか?そうですね、§7 §8 になるので、\n" +"§9になるべきでしょう。。\n" "\n" "Lean での定義は以下の通りです。\n" "\n" From d5748b3e8ccf2424e90e05a33710f0dcc64e5e26 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 00:38:36 +0900 Subject: [PATCH 022/147] ja: improve multiplication level 1 --- .i18n/ja/Game.po | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index c199f591..eb7facd0 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -4341,12 +4341,7 @@ msgstr "" #: Game.Levels.Multiplication.L01mul_one msgid "mul_one" -msgstr "" -"mul_one\n" -"\n" -"\n" -"## 日本語翻訳\n" -"乗法の単位元定理です。" +msgstr "mul_one" #: Game.Levels.AdvAddition.L02add_left_cancel #. §0: `add_left_cancel a b n` @@ -5288,10 +5283,10 @@ msgid "" msgstr "" "新しい \"*\" タブを確認してください。そこで §0 と §1 が表示されています。\n" "現在、これらは乗算について知っている唯一の事実です。\n" -"9つ更多的の証明を行いましょう。\n" +"あと9つの証明を行いましょう。\n" "\n" "まずはウォームアップから始めましょう。この場合は inducition は必要ありません。\n" -"なぜなら §2 は後继であることが分かっているからです。" +"なぜなら §2 は後者であることが分かっているからです。" #: Game.Levels.Implication.L09zero_ne_succ #: Game.Levels.AdvAddition.L01add_right_cancel From 769e1b2c340c6d08562ece5911ecde6fbd1df74e Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 00:43:40 +0900 Subject: [PATCH 023/147] ja: improve multiplicaton level 2 --- .i18n/ja/Game.po | 31 +++---------------------------- 1 file changed, 3 insertions(+), 28 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index eb7facd0..b01c7ad0 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -4448,19 +4448,10 @@ msgid "" "and §2 (which we don't), so let's\n" "start with this." msgstr "" -"## 原文 (English)\n" -"Our first challenge is §0,\n" -"and we want to prove it by induction. The zero\n" -"case will need §1 (which we have)\n" -"and §2 (which we don't), so let's\n" -"start with this.\n" -"\n" -"\n" -"## 日本語翻訳\n" "私たちの最初の挑戦は§0です。\n" "これは帰納法によって証明したいと思います。\n" -"零の場合には§1(持っています)\n" -"と§2(持っていない)が必要なので、まずはこれから始めましょう。" +"ゼロの場合には§1(持っています)\n" +"と§2(持っていません)が必要なので、まずはこれから始めましょう。" #: Game.Levels.Algorithm.L04add_algo3 #. §0: `simp_add` @@ -5036,23 +5027,7 @@ msgstr "開始するには、§0 を使用して §1 を *目標* に適用し #: Game.Levels.Multiplication.L02zero_mul msgid "zero_mul" -msgstr "" -"零乗\n" -"\n" -"\n" -"## 備考\n" -"- **tactic(s)**: タクティク\n" -"- **theorem**: 定理\n" -"- **proposition / Prop**: 命題\n" -"- **proof**: 証明\n" -"- **hypothesis**: 仮定\n" -"- **type**: 型\n" -"- **term**: 項\n" -"- **interactive**: 対話型\n" -"- **inventory**: インベントリ\n" -"- **world**: ワールド\n" -"- **start**: 開始\n" -"- **editor mode**: エディタモード" +msgstr "zero_mul" #: Game.Levels.Tutorial.L03two_eq_ss0 msgid "Can you take it from here?" From a3035c5f4b1048bde06efb05e3e4d3405beaa611 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 01:53:05 +0900 Subject: [PATCH 024/147] ja: improve multiplicaton level 3 --- .i18n/ja/Game.po | 30 +++++++----------------------- 1 file changed, 7 insertions(+), 23 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index b01c7ad0..8c8fa7f9 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -5516,18 +5516,7 @@ msgid "" "§2." msgstr "" "すべての自然数 §0 および §1 に対して、\n" -"§2.\n" -"\n" -"\n" -"## 参考訳\n" -"すべての自然数 §0 および §1 に対して、\n" -"§2.\n" -"\n" -"\n" -"### 説明\n" -"- `§0`, `§1`, `§2` はコードブロックやLaTeX数式を表すプレースホルダーであり、位置を維持しています。\n" -"- `<##>` などのタグは使用されていません。\n" -"- トーンはLean 4学習者向けで、丁寧かつ簡潔な表現にしています。" +"§2。" #: Game.Levels.AdvAddition.L05add_right_eq_zero #: Game.Levels.AdvAddition.L06add_left_eq_zero @@ -5790,12 +5779,12 @@ msgid "" "home screen by clicking the house icon and then taking a look.\n" "You won't lose any progress." msgstr "" -"Similarly we have §0\n" -"but we're going to need §1 (guess what it says -- maybe you\n" -"are getting the hang of Lean's naming conventions).\n" +"同様に §0 もありますが、§1 が必要になります\n" +"(何と書いてあるか想像してみてください。\n" +"Lean の命名規則が分かってきたかもしれません)。\n" "\n" -"最後のレベルから加算ワールドが提供されるかもしれません。\n" -"記憶が曖昧な場合は、家アイコンをクリックしてホーム画面に戻り、確認してください。\n" +"加算ワールドの最後のレベルがこのレベルを攻略するのに役立つかもしれません。\n" +"記憶が曖昧な場合は、ホームアイコンをクリックしてホーム画面に戻り、確認してください。\n" "進捗は失われません。" #: Game.Levels.Implication.L09zero_ne_succ Game.Levels.LessOrEqual.L04le_trans @@ -5808,12 +5797,7 @@ msgstr "開始します。§0。" #: Game.Levels.Multiplication.L03succ_mul msgid "succ_mul" -msgstr "" -"succ_mul\n" -"\n" -"\n" -"## 日本語翻訳\n" -"成功倍加" +msgstr "succ_mul" #: Game.Levels.Algorithm.L01add_left_comm #. §0: `add_left_comm` From eaac993baa12a573fb993fec0ab755c34d1a6cd3 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 02:01:13 +0900 Subject: [PATCH 025/147] ja: improve multiplicaton level 4 --- .i18n/ja/Game.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 8c8fa7f9..b8fb48a7 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -476,7 +476,7 @@ msgid "" "But we'll keep hold of these proofs anyway, because it's convenient\n" "to have exactly the right tool for a job." msgstr "" -"The first sub-boss of Multiplication Worldは§0です。\n" +"乗算ワールドの最初のサブボスは§0です。\n" "\n" "この定理を証明すると、「余裕」のある証明が得られます。\n" "例えば、§2から容易に導かれる§1があります。\n" From b0fac51c2af1086432355d537e2b9e1337317f3a Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 02:21:48 +0900 Subject: [PATCH 026/147] ja: improve multiplicaton level 5 --- .i18n/ja/Game.po | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index b8fb48a7..93269e68 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1678,9 +1678,9 @@ msgid "" "Either by induction, or by using §1, or\n" "by using commutativity. Which do you think is quickest?" msgstr "" -"您は§0を証明する方法として、少なくとも3つの方法があります。\n" -" induksiонで証明するか、§1を使用するか、または交換律を使用するかです。\n" -"どの方法が最も速いかどうか、どのように思われますか?" +"§0を証明する方法として、少なくとも3つの方法があります。\n" +"帰納法で証明するか、§1を使用するか、または交換律を使用するかです。\n" +"どの方法が最も速いと思いますか?" #: Game.Levels.Addition.L02succ_add #. §0: `succ a + «{d}»` @@ -1942,7 +1942,7 @@ msgstr "" #. §0: `one_mul m` #. §1: `1 * m = m` msgid "§0 is the proof §1." -msgstr "§0は証明§1です。" +msgstr "§0は§1の証明です。" #: Game.Levels.Algorithm.L03add_algo2 msgid "making life simple" @@ -5088,12 +5088,7 @@ msgstr "" #: Game.Levels.Multiplication.L05one_mul msgid "one_mul" -msgstr "" -"one_mul\n" -"\n" -"\n" -"## 日本語翻訳\n" -"単位元と乗算に関する定理です。" +msgstr "one_mul" #: Game.Levels.Addition.L01zero_add #. §0: `«{hd}» : 0 + «{d}» = «{d}»` @@ -6175,11 +6170,8 @@ msgid "" "Here's my solution:\n" "§0" msgstr "" -"以下是我的解決方法:\n" -"§0\n" -"\n" -"\n" -"##" +"私の解法:\n" +"§0" #: Game.Levels.Algorithm.L07succ_ne_succ msgid "An algorithm for equality" From 62d738667e2eef2fc055d957919ccf8176b07d0b Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 02:23:59 +0900 Subject: [PATCH 027/147] ja: improve multiplicaton level 6 --- .i18n/ja/Game.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 93269e68..7f0b936a 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -6210,7 +6210,7 @@ msgstr "" #: Game.Levels.Multiplication.L06two_mul msgid "two_mul" -msgstr "二倍定理" +msgstr "two_mul" #: Game.Levels.Algorithm.L04add_algo3 msgid "the simplest approach" From a0efeb231c0d9ed86b6d97be7127cf3925bd20bb Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 02:52:40 +0900 Subject: [PATCH 028/147] ja: improve multiplicaton level 7 --- .i18n/ja/Game.po | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 7f0b936a..d81385d1 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -2451,7 +2451,7 @@ msgstr "" msgid "" "Induction on §0 is the most troublesome, then §1,\n" "and §2 is the easiest." -msgstr "帰納法は§0が最も難しい然後に§1で、§2は最も簡単です。" +msgstr "帰納法は§0が最も難しく、次いで§1で、§2は最も簡単です。" #: Game.Levels.Tutorial.L05add_zero Game.Levels.Tutorial.L06add_zero2 #: Game.Levels.Power.L01zero_pow_zero Game.Levels.Algorithm.L09decide2 @@ -4855,12 +4855,7 @@ msgstr "開始するには、§0 から始めて、目標を対偶に変更し #: Game.Levels.Multiplication.L07mul_add msgid "mul_add" -msgstr "" -"mul_add\n" -"\n" -"\n" -"## 日本語翻訳\n" -"乘加法則" +msgstr "mul_add" #: Game.Levels.Addition.L02succ_add #. §0: `a` @@ -5011,13 +5006,10 @@ msgid "" "\n" "Inducting on §1 or §2 also works, but might take longer." msgstr "" -"以下は私の解決策です:\n" +"私の解法:\n" "§0\n" "\n" -"§1 や §2 について帰納法を用いても構いませんが、時間がかかるかもしれません。\n" -"\n" -"\n" -"##" +"§1 や §2 について帰納法を用いても構いませんが、時間がかかるかもしれません。" #: Game.Levels.Implication.L05succ_inj2 #. §0: `apply succ_inj` @@ -6350,8 +6342,8 @@ msgid "" "Note that the left hand side contains a multiplication\n" "and then an addition." msgstr "" -"次々目標は「左側と右側の分配律」です、つまり§0と§1。これらのやや冠礼的な名前とは異なり、Leanの証明の名前は説明的です。まずは§2" -"から始めましょう、§3の証明です。注意してほしいのは、左辺に乘算が含まれていて、その後に加算があることです。" +"次の目標は「左側と右側の分配律」です、つまり§0と§1。こうしたやや大げさな名前とは異なり、Leanの証明の名前は説明的です。まずは§3の証明である、§2" +"から始めましょう。注意してほしいのは、左辺に乗算が含まれていて、その後に加算があることです。" #: Game.Levels.Power.L10FLT #. §0: `xyzzy` From 88514b879d1866b0b26c51c0599d21e118ffd68f Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 03:00:40 +0900 Subject: [PATCH 029/147] ja: improve multiplicaton level 8 --- .i18n/ja/Game.po | 30 ++++++++---------------------- 1 file changed, 8 insertions(+), 22 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index d81385d1..91eab9cd 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1770,11 +1770,8 @@ msgid "" "Here's my proof:\n" "§0" msgstr "" -"以下は私の証明です:\n" -"§0\n" -"\n" -"\n" -"## 日本語翻訳\n" +"私の証明:\n" +"§0" #: Game.Levels.Implication.L03apply #. §0: `exact` @@ -1930,13 +1927,7 @@ msgid "" msgstr "" "加法は乗法に対して分配法則を満たします。\n" "つまり、すべての自然数 §0, §1, §2 に対して\n" -"§3.\n" -"\n" -"\n" -"## 参考訳\n" -"加法は乗法に対して分配法則を満たします。\n" -"つまり、すべての自然数 §0, §1, §2 に対して\n" -"§3." +"§3。" #: Game.Levels.Multiplication.L05one_mul #. §0: `one_mul m` @@ -4050,7 +4041,7 @@ msgstr "現在、§0。" msgid "" "§0 is just as fiddly to prove by induction; but there's a trick\n" "which avoids it. Can you spot it?" -msgstr "§0は帰納法で証明するのと同じくらい手間がかかるが、回避するトリックがある。見つけることができるだろうか?" +msgstr "§0は帰納法で証明するのと同じくらい手間がかかりますが、回避するトリックがあります。見つけることができますか?" #: Game.Levels.Implication.L07intro2 #. §0: `repeat rw [← succ_eq_add_one] at h` @@ -5069,7 +5060,7 @@ msgid "" "that §3 is a total order. Let's learn two more easy tactics\n" "first." msgstr "" -"以下は私の証明です:\n" +"私の証明:\n" "§0\n" "\n" "数学的な通りすがりの人々が言います。反対称性も考慮すると、\n" @@ -5211,12 +5202,7 @@ msgstr "" #: Game.Levels.Multiplication.L08add_mul msgid "add_mul" -msgstr "" -"add_mul\n" -"\n" -"\n" -"## 日本語翻訳\n" -"加法と乗法の相互作用に関する定理や証明を扱うためのタクティクです。" +msgstr "add_mul" #: Game.Levels.AdvMultiplication.L07mul_ne_zero #. §0: `apply eq_succ_of_ne_zero at ha` @@ -6011,7 +5997,7 @@ msgid "" "\n" "If you solved this level then you should be fine with the next level!" msgstr "" -"以下は私の証明です:\n" +"私の証明:\n" "§0\n" "\n" "このレベルを解いたなら、次のレベルでも大丈夫です!" @@ -6618,7 +6604,7 @@ msgid "" "and\n" "decide your route." msgstr "" -"以下は私の証明です:\n" +"私の証明:\n" "§0\n" "\n" "Leanは定理証明システムですが、現在では十分な量の理論が開発されておらず、適切な計算機としての機能を発揮するまでには至っていません。アルゴリズムワール" From 0ec44e3e5681711b040045605fab0556636ea124 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 03:15:18 +0900 Subject: [PATCH 030/147] ja: improve multiplicaton level 9 --- .i18n/ja/Game.po | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 91eab9cd..bf4e4e17 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -23,7 +23,7 @@ msgstr "§0はこの目標を解決するのに十分です。" #: Game.Levels.Multiplication.L09mul_assoc msgid "mul_assoc" -msgstr "乗法の結合律" +msgstr "mul_assoc" #: Game.Levels.Implication.L04succ_inj #. §0: $a$ @@ -439,9 +439,9 @@ msgid "" "\n" "If you want to begin your journey to the final boss, head for Power World." msgstr "" -"数学的な通り路人は、自然数が可換半環であることを証明したことを指摘しました。\n" +"通りすがりの数学者は、自然数が可換半環であることを証明したことを指摘しました。\n" "\n" -"最終ボスへの旅を始めるなら、Power Worldへ向かってください。" +"最終ボスへの旅を始めるなら、乗法ワールドへ向かってください。" #: Game.Levels.Power.L08pow_pow #. §0: `pow_pow` @@ -4472,7 +4472,7 @@ msgstr "" msgid "" "We now have enough to prove that multiplication is associative,\n" "the boss level of multiplication world. Good luck!" -msgstr "現在、乗算が結合的であることを証明できるようになりました。これは乗算ワールドのボスレベルです。お運びください!" +msgstr "乗算が結合的であることを証明できるようになりました。これは乗算ワールドのボスレベルです。幸運を!" #: Game.Levels.Power.L08pow_pow msgid "pow_pow" @@ -5410,15 +5410,9 @@ msgid "" "In other words, for all natural numbers §0, §1 and §2, we have\n" "§3." msgstr "" -"乗算は結びつきを持つ。\n" +"乗算は結びつきを持ちます。\n" "つまり、すべての自然数 §0, §1, §2 に対して、\n" -"§3.\n" -"\n" -"\n" -"### 参考訳\n" -"乗算は結びつきを持つ。\n" -"つまり、すべての自然数 §0, §1, §2 に対して、\n" -"§3." +"§3。" #: Game.Levels.Algorithm.L03add_algo2 #. §0: `simp` From 57d2b8d904350d440bd1228fd4287544ab79e5e7 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 03:18:03 +0900 Subject: [PATCH 031/147] ja: translate "Implication World" --- .i18n/ja/Game.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index bf4e4e17..9c470fde 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -2687,7 +2687,7 @@ msgstr "現在、§0 を使用して左側の §1 と §2 を入れ替えます #: Game.Levels.Implication msgid "Implication World" -msgstr "推論ワールド" +msgstr "含意ワールド" #: Game.Levels.Tutorial.L06add_zero2 #. §0: `add_succ` @@ -5290,7 +5290,7 @@ msgstr "" "\n" "\n" "### 翻訳 (Japanese)\n" -"私たちは§0を証明しました; Implikationワールドでは、§1を証明する方法を学びます。\n" +"私たちは§0を証明しました; 含意ワールドでは、§1を証明する方法を学びます。\n" "\n" "加法ワールドでは、§2のような等式を証明しました。\n" "この二つ目のチュートリアルワールドでは、新しいタクティクを学び、\n" @@ -6489,7 +6489,7 @@ msgstr "" "以下の最終ボスを倒すためのタクティクスを全部学びました。\n" "ゲームの最終ボスに向かう旅を始めるには、乗算ワールドに入り始めることができます。\n" "\n" -"または、Implication Worldで" +"または、含意ワールドで" "新しいタクティクを学んでみるのも良いでしょう。これらのタクティクは、加算に関するより多くの事実を証明するのに役立ちます。例えば、§0" "から§1を導き出す方法を学ぶことができます。\n" "\n" From 929826e4773b5a6f607a51b93c9d6ea670e036b0 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 03:19:16 +0900 Subject: [PATCH 032/147] ja: improve Implication World Introduction --- .i18n/ja/Game.po | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 9c470fde..f5ca4a6c 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -5274,22 +5274,6 @@ msgid "" "\n" "Click on \"Start\" to proceed." msgstr "" -"### 原文 (English)\n" -"We've proved that §0; in Implication World we'll learn\n" -"how to prove §1.\n" -"\n" -"In Addition World we proved *equalities* like §2.\n" -"In this second tutorial world we'll learn some new tactics,\n" -"enabling us to prove *implications*\n" -"like §3\n" -"\n" -"We'll also learn two new fundamental facts about\n" -"natural numbers, which Peano introduced as axioms.\n" -"\n" -"Click on \"Start\" to proceed.\n" -"\n" -"\n" -"### 翻訳 (Japanese)\n" "私たちは§0を証明しました; 含意ワールドでは、§1を証明する方法を学びます。\n" "\n" "加法ワールドでは、§2のような等式を証明しました。\n" From a446ad138a5c2a39cfff1fa9aa38ae402fbfee1b Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 03:25:15 +0900 Subject: [PATCH 033/147] ja: improve implication level 1 --- .i18n/ja/Game.po | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index f5ca4a6c..a74c019b 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1198,7 +1198,7 @@ msgstr "" #. §1: $3x+z=42$ #. §2: $x+y=37$ msgid "Assuming §0 and §1, we have §2." -msgstr "仮定§0と§1を仮定すると、§2が得られます。" +msgstr "§0と§1ならば、§2。" #: Game.Levels.Addition.L03add_comm #. §0: `a` @@ -5088,12 +5088,7 @@ msgstr "前提" #: Game.Levels.Implication.L01exact Game.Levels.LessOrEqual.L01le_refl #. §0: `exact` msgid "The §0 tactic" -msgstr "" -"The タクティク §0\n" -"\n" -"\n" -"## 日本語翻訳\n" -"タクティク §0" +msgstr "タクティク §0" #: Game.Levels.Tutorial.L04rw_backwards #. §0: `succ n` @@ -6187,17 +6182,6 @@ msgid "" "The §3 tactic can be used to close a goal which is exactly one of\n" "the hypotheses. It takes the name of the hypothesis as argument: §4." msgstr "" -"### 原文 (English)\n" -"In this world we'll learn how to prove theorems of the form §0.\n" -"In other words, how to prove theorems of the form \"if §1 is true, then §2 " -"is true.\"\n" -"To do that we need to learn some more tactics.\n" -"\n" -"The §3 tactic can be used to close a goal which is exactly one of\n" -"the hypotheses. It takes the name of the hypothesis as argument: §4.\n" -"\n" -"\n" -"### 翻訳 (Japanese)\n" "このワールドでは、形式 §0 の定理を証明する方法を学びます。\n" "つまり、「§1 が真なら、§2 が真である」という形式の定理を証明する方法です。\n" "そのためには、いくつかのタクティクを学ぶ必要があります。\n" From 6e20e4fbfc82a4601e6508adbdb6a50b450cbda2 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 03:41:35 +0900 Subject: [PATCH 034/147] ja: improve implication level 2 --- .i18n/ja/Game.po | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index a74c019b..e7535a01 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -510,11 +510,7 @@ msgid "" "You can use §0 to rewrite at §1 instead\n" "of at the goal." msgstr "" -"您可以在§0处重写代码,而不是在目标处进行重写。\n" -"\n" -"\n" -"## 日本語翻訳\n" -"您可以在§0でコードを改訂し、目標处の重写を避けることができます。" +"§0で、目標ではなく、§1を書き換えることができます。" #: Game.Levels.Tutorial.L05add_zero #. §0: `repeat t` @@ -1124,13 +1120,6 @@ msgid "" msgstr "" "以下は二行の証明です:\n" "§0\n" -"\n" -"\n" -"## 日本語翻訳\n" -"```html\n" -"

以下は二行の証明です:

\n" -"<§0>\n" -"```" #: Game.Levels.Addition.L01zero_add #. §0: `zero_add x` @@ -2433,7 +2422,12 @@ msgid "" msgstr "" "再度やってみましょう!\n" "\n" -"§0は§1の引数を埋めようとします(§2を見つけます)然後,它会替换找到的所有§3。因此,它还没有重写§4。" +"§0は§1の引数を埋めようとします(§2を見つけます)。その後§3。因此,它还没有重写§4。" +"もう一度実行してください!\n" +"\n" +"§0 は、§1 の引数を埋める(§2 を見つける)ことを試み、\n" +"見つけたすべての §3 を置き換えます。そのため、\n" +"§4 はまだ書き換えられていません。" #: Game.Levels.Multiplication.L07mul_add #. §0: `a` @@ -5651,7 +5645,7 @@ msgstr "x ≤ y と y ≤ z から x ≤ z が導かれる。" #: Game.Levels.Implication.L02exact2 #. §0: `exact` msgid "§0 practice." -msgstr "§0 プラクティス。" +msgstr "§0 練習。" #: Game.Levels.Implication.L10one_ne_zero #. §0: `zero_ne_succ n` @@ -5876,7 +5870,7 @@ msgstr "" msgid "" "Now you could finish with §0 then §1, but §2\n" "does it in one line." -msgstr "現在、§0 から §1 までで終了できますが、§2 では一行で完了します。" +msgstr "§0 から §1 までで終了できますが、§2 では一行で完了します。" #: Game.Levels.Addition.L05add_right_comm #. §0: `add_comm b c` From 6eb2700d19188fe142996c16be53ccf62ee6f7da Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 03:45:58 +0900 Subject: [PATCH 035/147] ja: improve implication level 3 --- .i18n/ja/Game.po | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index e7535a01..99e9aa19 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -760,7 +760,7 @@ msgstr "" #: Game.Levels.Implication.L03apply #. §0: `apply` msgid "The §0 tactic." -msgstr "The タクティク tactic." +msgstr "タクティク §0" #: Game.Levels.Implication.L01exact #. §0: `exact h1` @@ -1059,8 +1059,8 @@ msgid "" "§4 or any other tactic on the right to see a detailed explanation\n" "of what it does, with examples." msgstr "" -"このレベルでは、仮定§0は「 implication( implication)」です。これは「§1 ならば §2」という意味です。この仮定は§3 " -"tacticを使用して利用できます。右側の任意のtactic(例:§4)をクリックすることで、その詳細な説明と例を見ることができます。" +"このレベルでは、仮定§0は *含意* です。これは「§1 ならば §2」という意味です。この仮定は§3 " +"タクティクを使用して利用できます。右側の任意のタクティク(例:§4)をクリックすることで、その詳細な説明と例を見ることができます。" #: Game.Levels.Tutorial.L01rfl #. §0: $37$ @@ -1765,7 +1765,7 @@ msgstr "" #: Game.Levels.Implication.L03apply #. §0: `exact` msgid "Now finish using the §0 tactic." -msgstr "現在、§0 タクティクを使用して完了してください。" +msgstr "§0 タクティクを使用して完了してください。" #: Game.Levels.Power #. §0: `37 ^ n` @@ -2798,7 +2798,7 @@ msgstr "§0は§1を§2に変換します。" #. §1: `h1` #. §2: `y = 42` msgid "Start with §0. This will change §1 to §2." -msgstr "開始します。§0を入力すると、§1が§2に変更されます。" +msgstr "0を入力して開始します。すると、§1が§2に変更されます。" #: Game.Levels.Tutorial.L07add_succ msgid "[dramatic music]. Now are you ready to face the first boss of the game?" From c2ef58ce276d27418bcb3581b62adea5d11c10bf Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 04:01:12 +0900 Subject: [PATCH 036/147] ja: improve implication level 4 --- .i18n/ja/Game.po | 52 ++++++++++-------------------------------------- 1 file changed, 11 insertions(+), 41 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 99e9aa19..121278d1 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -65,33 +65,7 @@ msgid "" "in Lean it can be proved using §14, a mathematically\n" "pathological function." msgstr "" -"### 原文 (English)\n" -"# Statement\n" -"\n" -"If §0 and §1 are numbers, then\n" -"§2 is the proof that\n" -"§3.\n" -"\n" -"## More technical details\n" -"\n" -"There are other ways to think about §4.\n" -"\n" -"You can think about §5 itself as a function which takes two\n" -"numbers §6 and §7 as input, and outputs a proof of\n" -"§8.\n" -"\n" -"You can think of §9 itself as a proof; it is the proof\n" -"that §10 is an injective function. In other words,\n" -"§11 is a proof of\n" -"§12.\n" -"\n" -"§13 was postulated as an axiom by Peano, but\n" -"in Lean it can be proved using §14, a mathematically\n" -"pathological function.\n" -"\n" -"\n" -"## 翻訳 (Japanese)\n" -"# 陳述\n" +"# 提示\n" "\n" "§0 と §1 が数値である場合、\n" "§2 は §3 の証明です。\n" @@ -1158,8 +1132,8 @@ msgid "" msgstr "" "もし§0と§1が数値である場合、§2は§3が§4を導く証明です。*Peano*タブでこの定理について詳しく知ることができます。\n" "\n" -"Peanoはこの定理を公理としていましたが、Algorithm " -"WorldではLeanを使ってこの定理を証明する方法を示すことにします。現在はこの定理を仮定し、§5" +"Peanoはこの定理を公理としていましたが、アルゴリズムワールド" +"ではLeanを使ってこの定理を証明する方法を示すことにします。現在はこの定理を仮定し、§5" "を用いて証明しましょう。また、証明は仮定を操作して目標に近づけることで進めていきます。このレベルを一緒に進めていきましょう。" #: Game.Levels.Implication.L09zero_ne_succ @@ -1498,7 +1472,7 @@ msgstr "" #. §0: $x+1=4$ #. §1: $x=3$ msgid "If §0 then §1." -msgstr "もし§0 then §1。" +msgstr "§0 ならば §1。" #: Game.Levels.Addition.L04add_assoc #. §0: $x+y+z$ @@ -1834,13 +1808,8 @@ msgid "" "apply §2. First execute §3\n" "to change the 4 on the right hand side." msgstr "" -"Let's first get §0 into the form §1 so we can\n" -"apply §2. First execute §3\n" -"to change the 4 on the right hand side.\n" -"\n" -"\n" -"## 翻訳\n" -"§0 を §1 の形式に変更してから、§2 を適用することができます。まず、§3 を実行して右辺の 4 を変更します。" +"§0 を §1 の形式に変更してから、§2 を適用することができます。\n" +"まず、§3 を実行して右辺の 4 を変更します。" #: Game.Levels.Tutorial.L04rw_backwards Game.Levels.Tutorial.L05add_zero #. §0: `rw [← two_eq_succ_one]` @@ -2034,7 +2003,7 @@ msgid "" "Now rewrite §0 backwards at §1\n" "to get the right hand side." msgstr "" -"現在、§1 に §0 を逆順で書き換え\n" +"§1 に §0 を逆順で書き換え\n" "右辺を得ます。" #: Game.Levels.Algorithm.L08decide @@ -3715,7 +3684,8 @@ msgid "" "the other way around. Look at the docs for §2 for an explanation. Type §3 " "with §4." msgstr "" -"以下の定理を任意の §0 に先頭に付けることで、逆方向に書き換えることができます。詳細は §1 のドキュメントを参照してください。型 §2 " +"任意の定理 §1 に §0 を先頭に付けることで、逆方向に書き換えることができます。" +"詳細は §2 のドキュメントを参照してください。§4をタイプして §3" "を入力してください。" #: Game.Levels.Implication.L05succ_inj2 @@ -3826,7 +3796,7 @@ msgstr "現在、§0 は §1 の証明です。また、§2 は消えました #: Game.Levels.Implication.L04succ_inj msgid "succ_inj : the successor function is injective" -msgstr " successor_function_inj : サクセッサー関数は単射です" +msgstr "succ_inj : 後者関数は単射" #: Game.Levels.Tutorial.L06add_zero2 #. §0: `b + 0` @@ -4474,7 +4444,7 @@ msgstr "pow_pow" #: Game.Levels.Implication.L04succ_inj msgid "Now finish in one line." -msgstr "今、一行で完了してください。" +msgstr "一行で証明を完成させましょう。" #: Game.Levels.LessOrEqual.L11le_two #. §0: `le_two x` From a7c2af2ff254201f33e19aff6346d62d7e814f5b Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 04:07:04 +0900 Subject: [PATCH 037/147] ja: improve implication level 5 --- .i18n/ja/Game.po | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 121278d1..168508ff 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -883,7 +883,7 @@ msgstr "" #: Game.Levels.Implication.L05succ_inj2 msgid "Arguing backwards" -msgstr "反論する" +msgstr "逆向きの議論" #: Game.Levels.AdvMultiplication.L06mul_right_eq_one msgid "mul_right_eq_one" @@ -1902,7 +1902,7 @@ msgstr "生活を単純にする" msgid "" "Now rewrite §0 backwards to make the goal\n" "equal to the hypothesis." -msgstr "現在、§0 を逆順に書き換えることで、目標を仮定に等しくします。" +msgstr "§0 を逆順に書き換えることで、目標を仮定に等しくします。" #: Game.Levels.Addition.L04add_assoc msgid "add_assoc (associativity of addition)" @@ -1968,7 +1968,7 @@ msgid "" " Again I will walk you through this one (assuming you're in\n" " command line mode)." msgstr "" -"最後のレベルでは、仮定§0を操作して目標§1にしました。このレベルでは、目標を操作して仮定にします!つまり、「逆向きに議論」することです。§2 " +"先程のレベルでは、仮定§0を操作して目標§1にしました。このレベルでは、目標を操作して仮定にします!つまり、「逆向きに議論」することです。§2 " "タクティクもこれを行うことができます。また、コマンドラインモードで操作していると仮定して、この例を一緒に見ていきましょう。" #: Game.Levels.Tutorial.L06add_zero2 @@ -3691,7 +3691,7 @@ msgstr "" #: Game.Levels.Implication.L05succ_inj2 #. §0: `exact h` msgid "You can now finish with §0." -msgstr "你现在可以完成 §0。" +msgstr "§0 で完了しましょう。" #: Game msgid "Natural Number Game" @@ -5414,7 +5414,7 @@ msgid "" "Applying a proof of §0 to the *goal* changes §1 to §2.\n" "Now try §3 to make the goal more like the hypothesis." msgstr "" -"証明 §0 を目標に適用すると、§1 は §2 に変更されます。\n" +"証明 §0 を *目標* に適用すると、§1 は §2 に変更されます。\n" "次に §3 を試して、目標を仮定に近づけてみましょう。" #: Game.Levels.Multiplication.L03succ_mul From 5c331fbf4ede093ca30d59a3e066090d98132879 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 04:15:53 +0900 Subject: [PATCH 038/147] ja: improve implication level 6 --- .i18n/ja/Game.po | 29 ++++++----------------------- 1 file changed, 6 insertions(+), 23 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 168508ff..ba633c4b 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -390,16 +390,7 @@ msgstr "この補題は最終ボス戦で役立つでしょう!" #: Game.Levels.Implication.L06intro msgid "intro" -msgstr "" -"## はじめに\n" -"\n" -"\n" -"## 参考訳\n" -"## はじめに\n" -"\n" -"\n" -"## 翻訳\n" -"## はじめに" +msgstr "intro" #: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero #. §0: `apply eq_succ_of_ne_zero at ha` @@ -2746,7 +2737,7 @@ msgid "" "then §9 will give you a hypothesis §10 named §11, and the goal\n" "will change to §12." msgstr "" -"## 結論\n" +"## 概要\n" "\n" "もし目標が§0である場合、§1は§2を仮定として導入し、目標を§3に変更します。数学的には、§4を証明するためには、§5を仮定し、その後§6" "を証明すればよいということです。\n" @@ -3847,7 +3838,7 @@ msgstr "" #: Game.Levels.Implication.L06intro #. §0: `exact h` msgid "Now §0 finishes the job." -msgstr "現在、§0 が仕事の完了を告げる。" +msgstr "§0 で完了させましょう。" #: Game.Levels.LessOrEqual.L01le_refl #. §0: `«{x}» ≤ «{x}»` @@ -4641,7 +4632,7 @@ msgstr "ケース分けして §0 と §1 に分ける。" #. §0: `intro h` #. §1: `h` msgid "Start with §0 to assume the hypothesis and call its proof §1." -msgstr "開始する際は、§0 を使用して仮定を仮定し、その証明を§1と呼びます。" +msgstr "§0 を使用して仮定を§1とし、開始します。" #: Game.Levels.AdvMultiplication.L10mul_right_eq_self msgid "mul_right_eq_self" @@ -5897,16 +5888,8 @@ msgid "" "§4\"\n" "in Lean. We do this with the §5 tactic." msgstr "" -"### 原文 (English)\n" -"We have seen how to §0 theorems and assumptions\n" -"of the form §1. But what if our *goal* is of the form §2?\n" -"To prove this goal, we need to know how to say \"let's assume §3 and deduce " -"§4\"\n" -"in Lean. We do this with the §5 tactic.\n" -"\n" -"\n" -"### 翻訳 (Japanese)\n" -"私たちは、形式 §1 の定理や仮定の §0 の方法を見ました。しかし、もし私たちの *目標* が形式 §2 の場合、この目標を証明するには、Lean " +"私たちは、形式 §1 の定理や仮定の §0 の方法を見ました。しかし、もし私たちの *目標* が形式 §2 の場合は、どうすれば良いでしょうか? +この目標を証明するには、Lean " "で \"§3 という仮定を設け、 §4 を導く\" という方法を知る必要があります。これを行うためには、§5 タクティクを使用します。" #: Game.Levels.LessOrEqual.L01le_refl Game.Levels.LessOrEqual.L02zero_le From 14ae1898a2c7fb349ba0388f82f0e01bd3ea6278 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 04:25:31 +0900 Subject: [PATCH 039/147] ja: improve implication level 7 --- .i18n/ja/Game.po | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index ba633c4b..b3740ab5 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -585,7 +585,7 @@ msgstr "" #. §0: `apply succ_inj at h` #. §1: `succ` msgid "Now §0 to cancel the §1s." -msgstr "現在、§0を用いて§1sをキャンセルします。" +msgstr "§0を用いて§1を消去します。" #: Game.Levels.Addition #. §0: `induction` @@ -997,13 +997,8 @@ msgid "" "Try this one by yourself; if you need help then click on \"Show more " "help!\"." msgstr "" -"Let's see if you can use the tactics we've learnt to prove §0.\n" -"Try this one by yourself; if you need help then click on \"Show more " -"help!\".\n" -"\n" -"## 翻訳\n" "タクティクを用いて§0を証明できるかどうか試してみてください。\n" -"自分で試してみてください;手助けが必要であれば「詳細な手助けを表示!」をクリックしてください。" +"自分で試してみてください;手助けが必要であれば「より多くのヘルプを表示!」をクリックしてください。" #: Game.Levels.Implication.L09zero_ne_succ #: Game.Levels.AdvMultiplication.L06mul_right_eq_one @@ -1552,12 +1547,7 @@ msgstr "次に、§0 を §1 に変更し、§2 を実行します。" #: Game.Levels.Implication.L07intro2 msgid "intro practice" -msgstr "" -"## intro practice\n" -"\n" -"\n" -"## 参考訳\n" -"入門練習" +msgstr "intro 練習" #: Game.Levels.Addition.L01zero_add #. §0: `n : ℕ` @@ -1821,10 +1811,7 @@ msgid "" "§0" msgstr "" "以下は完全に逆順の証明です:\n" -"§0\n" -"\n" -"\n" -"## 日本語翻訳\n" +"§0" #: Game.Levels.LessOrEqual.L05le_zero msgid "x ≤ 0 → x = 0" @@ -1916,7 +1903,7 @@ msgstr "" #: Game.Levels.Implication.L07intro2 #. §0: `intro h` msgid "Start with §0 to assume the hypothesis." -msgstr "開始するには、§0 を使用して仮定を仮定します。" +msgstr "§0 を使用して仮定を導入します。" #: Game.Levels.Multiplication.L04mul_comm msgid "mul_comm" @@ -4005,7 +3992,7 @@ msgstr "§0は帰納法で証明するのと同じくらい手間がかかりま msgid "" "Now §0 is the quickest way to\n" "change §1 to §2." -msgstr "現在、§0は§1を§2に変更する最も迅速な方法です。" +msgstr "§0は§1を§2に変更する最も迅速な方法です。" #: Game.Levels.LessOrEqual.L03le_succ_self #. §0: ``` @@ -4364,7 +4351,7 @@ msgstr "" #. §1: `rfl` #. §2: `exact h` msgid "Now §0 then §1 works, but §2 is quicker." -msgstr "現在、§0 と §1 は正常に動作しますが、§2 はより速いです。" +msgstr "§0 と §1 は正常に動作しますが、§2 はより速いです。" #: Game.Levels.LessOrEqual.L01le_refl #. §0: `le_refl x` From 00deefd39c0391218ba49fbbc62979cdfa6b1378 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 04:41:37 +0900 Subject: [PATCH 040/147] ja: improve implication level 8 --- .i18n/ja/Game.po | 33 +++++---------------------------- 1 file changed, 5 insertions(+), 28 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index b3740ab5..9d0d934f 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -283,7 +283,7 @@ msgstr "2+2=4" #. §0: `x ≠ y` #. §1: `x = y → False` msgid "Remember, §0 is *notation* for §1." -msgstr "記憶しておいてください、§0は§1の*表記*です。" +msgstr "覚えておいてください、§0は§1の*表記*です。" #: Game.Levels.AdvMultiplication.L08mul_eq_zero #. §0: `a * b = 0` @@ -2078,8 +2078,8 @@ msgid "" "Remember that §0 is a proof of §1. Try\n" "§2ing §3 either §4 or directly to the goal." msgstr "" -"Remember that §0は§1の証明です。試してみてください。\n" -"§2ing §3 は目標に直接または§4から行うことができます。" +"§0は§1の証明であることを覚えておいてください。\n" +"§3 の §2 は目標に直接または§4から行うことができます。" #: Game.Levels.AdvMultiplication.L10mul_right_eq_self #. §0: `apply mul_left_cancel at h` @@ -4601,12 +4601,7 @@ msgstr "§0は、§1ならば§2であることを証明します。" #: Game.Levels.Implication.L08ne msgid "≠" -msgstr "" -"≠\n" -"\n" -"\n" -"## 日本語翻訳\n" -"不等号" +msgstr "≠" #: Game.Levels.AdvMultiplication.L09mul_left_cancel #. §0: `c = 0` @@ -5558,29 +5553,11 @@ msgid "" "So if your goal is §12 then you had better hope that your hypotheses\n" "are contradictory, which they are in this level." msgstr "" -"### 原文 (English)\n" -"We still can't prove §0 because we have not talked about the\n" -"definition of §1. In Lean, §2 is *notation* for §3.\n" -"Here §4 is a generic false proposition, and §5 is Lean's notation\n" -"for \"implies\". In logic we learn\n" -"that §6 is false, but §7 is true. Hence\n" -"§8 is the logical opposite of §9.\n" -"\n" -"Even though §10 does not look like an implication,\n" -"you should treat it as an implication. The next two levels will show you " -"how.\n" -"\n" -"§11 is a goal which you cannot deduce from a consistent set of assumptions!\n" -"So if your goal is §12 then you had better hope that your hypotheses\n" -"are contradictory, which they are in this level.\n" -"\n" -"\n" -"### 翻訳 (Japanese)\n" "まだ §0 を証明することができません。なぜなら §1 の定義について話していなかったからです。Lean では §2 は §3 の *表記* です。\n" "ここでは §4 は一般的な偽命題、§5 は Lean の \"implies\" の表記です。論理学では §6 は偽であり、§7 は真です。したがって\n" "§8 は §9 の論理的対偶です。\n" "\n" -"§10 は直感上 implication に見えないかもしれませんが、 implication として扱うべきです。次の 2 " +"§10 は含意に見えないかもしれませんが、含意 として扱うべきです。次の 2 " "つのレベルでその方法を学びます。\n" "\n" "§11 は一貫性のある仮定から導き出せない目標です!したがって、目標が §12 " From 6594ba3992b2cf1ed199cba246777950ffa3036d Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 04:47:00 +0900 Subject: [PATCH 041/147] ja: improve implication level 9 --- .i18n/ja/Game.po | 32 +++++++------------------------- 1 file changed, 7 insertions(+), 25 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 9d0d934f..6696f091 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1004,7 +1004,7 @@ msgstr "" #: Game.Levels.AdvMultiplication.L06mul_right_eq_one #. §0: `apply zero_ne_succ at h` msgid "Now you can §0." -msgstr "現在、§0 です。" +msgstr "§0 が出来ます。" #: Game.Levels.Implication.L03apply #. §0: `h2` @@ -1132,14 +1132,7 @@ msgid "" "introduce Peano's last axiom §2, a proof that §3.\n" "To learn about this result, click on it in the list of lemmas on the right." msgstr "" -"### 原文 (English)\n" -"As warm-up for §0 let's prove §1. To do this we need to\n" -"introduce Peano's last axiom §2, a proof that §3.\n" -"To learn about this result, click on it in the list of lemmas on the right.\n" -"\n" -"\n" -"## 日本語翻訳\n" -"§0 の前準備として、§1 を証明しましょう。これを行うために、ペアノの最後の公理 §2 を導入し、§3 " +"§0 の前準備として、§1 を証明しましょう。これを行うために、ペアノの最後の公理 §2、§3 " "の証明が必要です。この結果について学ぶには、右側の定理一覧から該当項目をクリックしてください。" #: Game.Levels.Implication.L01exact @@ -1607,12 +1600,7 @@ msgstr "" #: Game.Levels.Implication.L09zero_ne_succ msgid "zero_ne_succ" -msgstr "" -"zero_ne_succ\n" -"\n" -"\n" -"## 日本語翻訳\n" -"零と成功の命題は異なる(zero_ne_succ)" +msgstr "zero_ne_succ" #: Game.Levels.Multiplication.L05one_mul #. §0: $1\\times m=m$ @@ -3314,13 +3302,7 @@ msgstr "" #. §1: `succ 0` #. §2: `h` msgid "Now change §0 to §1 in §2." -msgstr "" -"現在、§0 を §1 に変更してください。\n" -"\n" -"\n" -"```html\n" -"

現在、§0 を §1 に変更してください。

\n" -"```" +msgstr "0 を §1 に変更してください。" #: Game.Levels.Implication.L05succ_inj2 #. §0: `apply t at h` @@ -4270,7 +4252,7 @@ msgstr "" "§0は§1の証明です。\n" "\n" "Leanでは、§2は§3に*定義されており*、 " -"§§4は実質的に§5の証明です。ここで§6は一般的な偽の命題です。つまり、§8が§9の証明である場合、§7を行うことができます。" +"§4は実質的に§5の証明です。ここで§6は一般的な偽の命題です。つまり、§8が§9の証明である場合、§7を行うことができます。" #: Game.Levels.Multiplication.L01mul_one msgid "mul_one" @@ -5171,7 +5153,7 @@ msgstr "" #: Game.Levels.Implication.L09zero_ne_succ #: Game.Levels.AdvAddition.L01add_right_cancel msgid "Nice!" -msgstr "nice!" +msgstr "ナイス!" #: Game.Levels.Multiplication.L01mul_one Game.Levels.Multiplication.L05one_mul #: Game.Levels.Multiplication.L06two_mul @@ -5658,7 +5640,7 @@ msgstr "" #: Game.Levels.AdvMultiplication.L08mul_eq_zero #. §0: `intro h` msgid "Start with §0." -msgstr "開始します。§0。" +msgstr "§0 で開始します。" #: Game.Levels.Multiplication.L03succ_mul msgid "succ_mul" From 8711ba2cabb3af2fe4145255658282dca8cea162 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 12:47:45 +0900 Subject: [PATCH 042/147] ja: improve implication level 10 --- .i18n/ja/Game.po | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 6696f091..6f826331 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -696,7 +696,7 @@ msgid "" "\n" "If §8 then §9 will change §10 to §11." msgstr "" -"## 結論\n" +"## 概要\n" "\n" "タクティク §0 は、目標や仮定が §1 の形式の場合を §2 に変更します。また、§3 や §4 も対象となります。\n" "\n" @@ -5577,21 +5577,14 @@ msgid "" "does the same for a hypothesis §9. We've proved §10 and called\n" "the proof §11; now try proving §12." msgstr "" -"### 原文 (English)\n" -"We know §0 is a proof of §1 -- but what\n" -"if we have a hypothesis §2? It's the wrong way around!\n" +"§0 が §1 の証明であることを知っています。しかし、\n" +"もし §2 という仮定がある場合、それは逆になってしまいます。\n" "\n" -"The §3 tactic changes a goal §4 to §5, and a goal §6\n" -"to §7. And §8\n" -"does the same for a hypothesis §9. We've proved §10 and called\n" -"the proof §11; now try proving §12.\n" -"\n" -"\n" -"### 翻訳 (Japanese)\n" -"我们知道 §0 是 §1 的证明 -- 但如果有一个假设 §2 呢?顺序正好相反!\n" +"§3 のタクティクは、目標 §4 を §5 に、目標 §6 を §7 に変更します。\n" +"また、§8 も仮定 §9 に対して同様の操作を行います。\n" "\n" -"§3 のタクティクは、目標 §4 を §5 に変更し、目標 §6 を §7 に変更します。そして §8 は、假设 §9 " -"について同じ操作を行います。我们已经证明了 §10,并将其证明称为 §11;现在试着证明 §12。" +"§10 を証明し、その証明を §11 と命名しました。\n" +"次に §12 を証明してみてください。" #: Game.Levels.Addition.L02succ_add msgid "Well done! You now have enough tools to tackle the main boss of this level." @@ -5748,10 +5741,10 @@ msgid "" "§1 doesn't just take hypotheses, it will eat any proof which exists\n" "in the system." msgstr "" -"この二行は何をお考えですか:\n" +"この2行についてどう思いますか:\n" "§0\n" "\n" -"§1 は仮定だけを取るわけではありません。システム内に存在する任意の証明も食べます。" +"§1 は、単に仮定を受け取るだけでなく、システム内に存在する任意の証明を処理します。" #: Game.Levels.LessOrEqual.L09succ_le_succ msgid "succ x ≤ succ y → x ≤ y" From 1c6a39b21b08cf8f385bc6aa79c3ea0b9b934255 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 13:27:09 +0900 Subject: [PATCH 043/147] ja: fix translate "Power World" --- .i18n/ja/Game.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 6f826331..2f304dd1 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -406,7 +406,7 @@ msgid "" msgstr "" "通りすがりの数学者は、自然数が可換半環であることを証明したことを指摘しました。\n" "\n" -"最終ボスへの旅を始めるなら、乗法ワールドへ向かってください。" +"最終ボスへの旅を始めるなら、冪乗ワールドへ向かってください。" #: Game.Levels.Power.L08pow_pow #. §0: `pow_pow` @@ -6024,7 +6024,7 @@ msgstr "" #: Game.Levels.Power msgid "Power World" -msgstr "パワー・ワールド" +msgstr "冪乗ワールド" #: Game.Levels.AdvMultiplication.L10mul_right_eq_self #. §0: ``` From eded69683dd159e8a579312366bd5ed89938966e Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 13:34:49 +0900 Subject: [PATCH 044/147] ja: improve power introduction --- .i18n/ja/Game.po | 25 +++---------------------- 1 file changed, 3 insertions(+), 22 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 2f304dd1..03b4b52c 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1734,26 +1734,7 @@ msgid "" "in the summer of 2019. Thanks to Sian and also thanks to Imperial\n" "College for funding her." msgstr "" -"### 原文 (English)\n" -"This world introduces exponentiation. If you want to define §0\n" -"then, as always, you will need to know what §1 is, and\n" -"what §2 is, given only §3.\n" -"\n" -"You can probably guess the names of the general theorems:\n" -"\n" -" * §4\n" -" * §5\n" -"\n" -"Using only these, can you get past the final boss level?\n" -"\n" -"The levels in this world were designed by Sian Carey, a UROP student\n" -"at Imperial College London, funded by a Mary Lister McCammon Fellowship\n" -"in the summer of 2019. Thanks to Sian and also thanks to Imperial\n" -"College for funding her.\n" -"\n" -"\n" -"### 翻訳 (Japanese)\n" -"この世界では指数演算が導入されます。§0を定義するには、常に §1 と §2 が何であるかを知る必要があります。そして、それらを §3 " +"このワールドでは指数演算が導入されます。§0を定義するには、常に §1 と §2 が何であるかを知る必要があります。そして、それらを §3 " "だけを使って推測する必要があります。\n" "\n" "一般的な定理の名前はおそらく予想できるでしょう:\n" @@ -1764,8 +1745,8 @@ msgstr "" "これらのものだけを使って最終ボスレベルを突破できるでしょうか?\n" "\n" "この世界のレベルは、2019" -"年夏にマリー・リスト・マッカモン助成金によりインペリアルコロッゲン・ロンドン大学のUROP学生であるシアン・ケアリーによって設計されました。シアンに感謝" -"します。また、インペリアルコロッゲンの助成にも感謝します。" +"年夏にMary Lister McCammon助成金によりImperial College LopndonのUROP学生であるSian Careyによって設計されました。Sianに感謝" +"します。また、Imperial Collegeの助成にも感謝します。" #: Game.Levels.Implication.L04succ_inj #. §0: `h` From 5f2494a21cf3739cb350f56142cbb66ee9f3c8e3 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 13:44:49 +0900 Subject: [PATCH 045/147] ja: improve power level 1 --- .i18n/ja/Game.po | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 03b4b52c..54000650 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -371,12 +371,7 @@ msgstr "" #: Game.Levels.Power.L01zero_pow_zero msgid "zero_pow_zero" -msgstr "" -"零乗零\n" -"\n" -"\n" -"## 参考訳\n" -"零乗零" +msgstr "zero_pow_zero" #: Game.Levels.Addition.L03add_comm #. §0: `a` @@ -3273,10 +3268,10 @@ msgid "" "Check out the *Pow* tab in your list of theorems\n" "to see the new proofs which are available." msgstr "" -"数学家中で、§0 は何であるかについて時々議論があります;\n" +"数学者の間で、§0 は何であるかについて時々議論があります;\n" "その答えは、もちろん、定義によって異なります。このゲームでは、§1 です。証明できるか試してみてください。\n" "\n" -"証明一覧のタブから *Pow* をチェックして、利用可能な新しい証明を確認してください。" +"証明一覧のタブから *Pow* (訳注: `^`) をチェックして、利用可能な新しい証明を確認してください。" #: Game.Levels.Implication.L09zero_ne_succ #. §0: `1` From 2a504587e4f87607c31b6af0097f2207377d457e Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 13:53:18 +0900 Subject: [PATCH 046/147] ja: improve power level 2 --- .i18n/ja/Game.po | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 54000650..57d89602 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -2885,7 +2885,7 @@ msgstr "" #. §0: $m$ #. §1: $0 ^{\\operatorname{succ} (m)} = 0$ msgid "For all numbers §0, §1." -msgstr "すべての数 §0, §1 について。" +msgstr "すべての数 §0 について、 §1 。" #: Game.Levels.AdvAddition.L01add_right_cancel #. §0: `n` @@ -3211,13 +3211,7 @@ msgid "" "Although §0 in this game, §1 if §2, i.e., if\n" "§3 is a successor." msgstr "" -"### 原文 (English)\n" -"Although §0 in this game, §1 if §2, i.e., if\n" -"§3 is a successor.\n" -"\n" -"\n" -"## 日本語翻訳\n" -"このゲームにおいて §0 であり、§1 は §2 である場合、すなわち §3 が後继者である場合。" +"このゲームにおいて §0 であり、§1 は §2 である場合、すなわち §3 が後者である場合。" #: Game.Levels.AdvAddition.L05add_right_eq_zero #. §0: `b = 0` @@ -4143,7 +4137,7 @@ msgstr "この証明を始める方法は §0。" msgid "" "We've just seen that §0, but if §1\n" "is a successor, then §2. We prove that here." -msgstr "We've just seen that §0, ですが、もし §1 が後继者である場合、則 §2。ここではそのことを証明します。" +msgstr "§0 について見てきました。 ですが、もし §1 が後者である場合、 §2 になります。ここではそのことを証明します。" #: Game.Levels.Multiplication.L02zero_mul #. §0: `zero_mul x` @@ -6496,12 +6490,7 @@ msgstr "" #: Game.Levels.Power.L02zero_pow_succ msgid "zero_pow_succ" -msgstr "" -"零冪乗成功\n" -"\n" -"\n" -"## 参考訳\n" -"零冪乗成功" +msgstr "zero_pow_succ" #: Game.Levels.LessOrEqual.L07or_symm msgid "Ready for the boss level of this world?" From 43f11b62cbb6c88084d0a5994cc40d10476f209b Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 14:07:18 +0900 Subject: [PATCH 047/147] ja: improve power level 3 --- .i18n/ja/Game.po | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 57d89602..6fde50cc 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -2147,7 +2147,7 @@ msgstr "" #. §0: $a$ #. §1: $a ^ 1 = a$ msgid "For all naturals §0, §1." -msgstr "すべての自然数 §0, §1 について。" +msgstr "すべての自然数 §0 について、 §1 。" #: Game.Levels.Algorithm.L08decide #. §0: `decide` @@ -5797,8 +5797,9 @@ msgid "" "§4\"\n" "in Lean. We do this with the §5 tactic." msgstr "" -"私たちは、形式 §1 の定理や仮定の §0 の方法を見ました。しかし、もし私たちの *目標* が形式 §2 の場合は、どうすれば良いでしょうか? -この目標を証明するには、Lean " +"私たちは、形式 §1 の定理や仮定の §0 の方法を見ました。\n" +"しかし、もし私たちの *目標* が形式 §2 の場合は、どうすれば良いでしょうか?\n" +"この目標を証明するには、Lean \n" "で \"§3 という仮定を設け、 §4 を導く\" という方法を知る必要があります。これを行うためには、§5 タクティクを使用します。" #: Game.Levels.LessOrEqual.L01le_refl Game.Levels.LessOrEqual.L02zero_le @@ -6391,12 +6392,7 @@ msgstr "add_succ" #: Game.Levels.Power.L03pow_one msgid "pow_one" -msgstr "" -"pow_one\n" -"\n" -"\n" -"## 日本語翻訳\n" -"べき一度" +msgstr "pow_one" #: Game.Levels.Implication.L11two_add_two_ne_five #. §0: ``` From eb0fb772355d8087aa5975cf43ebe72648d3f6bf Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 14:10:58 +0900 Subject: [PATCH 048/147] ja: improve power level 4 --- .i18n/ja/Game.po | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 6fde50cc..b98fd2d5 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -5036,12 +5036,7 @@ msgstr "§0は§1の定理です。" #: Game.Levels.Power.L04one_pow msgid "one_pow" -msgstr "" -"one_pow\n" -"\n" -"\n" -"## 日本語翻訳\n" -"1の累乗" +msgstr "one_pow" #: Game.Levels.Algorithm.L01add_left_comm #. §0: $a, b, c$ From 94874bf262f42c490330b403b47589f39ba5b757 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 14:18:05 +0900 Subject: [PATCH 049/147] ja: improve power level 6 --- .i18n/ja/Game.json | 318 ++++++++++++++++++++++----------------------- .i18n/ja/Game.po | 6 +- 2 files changed, 156 insertions(+), 168 deletions(-) diff --git a/.i18n/ja/Game.json b/.i18n/ja/Game.json index 7384fbf1..1e376349 100644 --- a/.i18n/ja/Game.json +++ b/.i18n/ja/Game.json @@ -1,6 +1,6 @@ {"≤ World": "≤ ワールド\n\n\n## 日本語翻訳\nワールド", - "≠": "≠\n\n\n## 日本語翻訳\n不等号", - "§0.": "### 原文 (English)\n§0.\n\n\n## 日本語翻訳\n§0.", + "≠": "≠", + "§0.": "§0.", "§0, with notation §1, is the usual\n product of natural numbers. Internally it is\n via two axioms:\n\n * §2\n\n * §3\n\nOther theorems about naturals, such as §4,\nare proved by induction from these two basic theorems.": "§0、符号§1を用いたものは、通常の自然数の積です。内部的には、以下の2つの公理によって定義されます:\n\n* §2\n\n* §3\n\n他の自然数に関する定理、例えば§4は、これらの2つの基本定理から帰納的に証明されます。", "§0, with notation §1, is the usual\n exponentiation of natural numbers. Internally it is\n defined via two axioms:\n\n * §2\n\n * §3\n\nNote in particular that §4.": @@ -11,21 +11,21 @@ "§0 will change §1 into §2.": "§0は§1を§2に変換します。", "§0 says that §1.\n\nNote that this is not quite true by definition: §2 is\ndefined to be §3 so it's §4, and to prove\nthat this is equal to §5 you need to use induction somewhere.": "§0 は §1 です。\n\nただし、これは定義によって正確には真ではありません:§2 は §3 と定義されており、§4 となります。この等しいことを証明するには、どこかで帰納法を使用する必要があります。", - "§0 says that §1.": "§0 は §1 を言います。", - "§0 practice.": "§0 プラクティス。", + "§0 says that §1.": "§0 は §1 を意味します。", + "§0 practice.": "§0 練習。", "§0 is the theorem that §1.\nYou can prove it by induction on §2 or you can deduce it from §3.": "§0は§1の定理です。\nこれを証明するには、§2についての帰納法を使用するか、§3から導き出せます。", "§0 is the theorem that §1\nTwo ways to do it spring to mind; I'll mention them when you've solved it.": "§0は、§1の定理です。\n二つの方法が思い浮かびますが、あなたがそれを解いた後で述べます。", "§0 is the theorem that §1": "§0は§1の定理です。", "§0 is the statement that §1": "§0は§1のステートメントです。", - "§0 is the proof §1.": "§0は証明§1です。", + "§0 is the proof §1.": "§0は§1の証明です。", "§0 is the proof that §1.\n\nNote: §2 is a §3 lemma.": "§0は§1の証明です。\n\nNote: §2は§3の補題です。", "§0 is the proof that §1.\n\nIt could be deduced from §2 and §3, however this argument\nwould be circular because the proof of §4 uses §5.": "§0は§1の証明です。\n\nしかし、§2と§3から導くことはできますが、この議論は円環的で、§4の証明は§5を使用しているためです。", "§0 is the proof that §1.\n\nIn Lean, §2 is *defined to mean* §3. Hence\n§4 is really a proof of §5.\nHere §6 is a generic false statement. This means that\nyou can §7 if §8 is a proof of §9.": - "§0は§1の証明です。\n\nLeanでは、§2は§3に*定義されており*、 §§4は実質的に§5の証明です。ここで§6は一般的な偽の命題です。つまり、§8が§9の証明である場合、§7を行うことができます。", + "§0は§1の証明です。\n\nLeanでは、§2は§3に*定義されており*、 §4は実質的に§5の証明です。ここで§6は一般的な偽の命題です。つまり、§8が§9の証明である場合、§7を行うことができます。", "§0 is the proof that §1.": "§0は§1の証明です。", "§0 is the proof that multiplication is commutative. More precisely,\n§1 is the proof that §2.": "§0は乗法が交換律を満たすことを示す証明です。より正確には,\n§1は§2が交換律を満たすことを示す証明です。", @@ -34,13 +34,13 @@ "§0 is the proof of §1.": "§0は§1の証明です。", "§0 is the number after the number after §1.": "§0は§1の後の数値の後の数値です。", "§0 is the natural numbers, just called \\\\\"numbers\\\\\" in this game. It's\ndefined via two rules:\n\n* §1 (zero is a number)\n* §2 (the successor of a number is a number)\n\n## Game Implementation\n\n*The game uses its own copy of the natural numbers, called §3 with notation §4.\nIt is distinct from the Lean natural numbers §5, which should hopefully\nnever leak into the natural number game.*": - "### 原文 (English)\n§0 is the natural numbers, just called \\\\\"numbers\\\\\" in this game. It's\ndefined via two rules:\n\n* §1 (zero is a number)\n* §2 (the successor of a number is a number)\n\n## Game Implementation\n\n*The game uses its own copy of the natural numbers, called §3 with notation §4.\nIt is distinct from the Lean natural numbers §5, which should hopefully\nnever leak into the natural number game.*\n\n\n### 翻訳 (Japanese)\n§0は自然数で、このゲームでは単に「数」呼ばれる。これは以下の2つのルールにより定義される:\n\n* §1(ゼロは数)\n* §2(数の後続も数)\n\n## ゲーム実装\n\n* このゲームは、自身の自然数のコピーを使用し、その自然数は「§3」として呼び、記号は「§4」で表される。これはLeanの自然数「§5」とは異なるもので、希望するとおり自然数ゲームには流入することはない。", + "§0は自然数で、このゲームでは単に「数」呼ばれる。これは以下の2つのルールにより定義される:\n\n* §1(ゼロは数)\n* §2(数の後続も数)\n\n## ゲーム実装\n\n* このゲームは、自身の自然数のコピーを使用し、その自然数は「§3」として呼び、記号は「§4」で表される。これはLeanの自然数「§5」とは異なるもので、希望するとおり自然数ゲームには流入することはない。", "§0 is one of the two axioms\ndefining exponentiation in this game.": "§0はこのゲームで指数関数を定義する2つの公理の1つです。", "§0 is one of the\ntwo axioms defining exponentiation in this game.": "§0はこのゲームで指数関数を定義する2つの公理の1つです。", "§0 is just as fiddly to prove by induction; but there's a trick\nwhich avoids it. Can you spot it?": - "§0は帰納法で証明するのと同じくらい手間がかかるが、回避するトリックがある。見つけることができるだろうか?", + "§0は帰納法で証明するのと同じくらい手間がかかりますが、回避するトリックがあります。見つけることができますか?", "§0 is good enough to solve this goal.": "§0はこの目標を解決するのに十分です。", "§0 is an ancient magic spell, believed to be the origin of the\nmodern word §1. The game won't complain - or notice - if you\nprove anything with §2.": "§0は古くから伝わる魔法の呪文で、現代の単語§1の起源とされています。ゲームはあなたの証明に関わらず、§2で何を証明しても文句を言わなかったり、気づかないでしょう。", @@ -69,7 +69,7 @@ "§0は§1の証明です。\n\nこの名前の理由は、この補題が\"§2の反射性\"であるためです。", "§0 is a proof of §1.": "§0は§1の証明です。", "§0 is a proof of §1 so that was what got rewritten.\nYou can now change §2 to §3 with §4 or §5. You\ncan usually stick to §6 unless you need real precision.": - "§0は§1の証明なので、それが書き換えられた理由です。\n現在、§2を§3に変更することができます。通常は§6を使用していれば問題ありませんが、実際の精度が必要な場合は§4や§5を使用してください。", + "§0は§1の証明なので、それが書き換えられた理由です。\nさて、§4や§5を使用して§2を§3に変更することができます。よほどの精度が必要でなければ通常は§6を使用していれば問題ありません。", "§0 is a proof of the implication §1.": "§0 は §1 から導かれる命題の証明です。", "§0 is a proof\nthat §1. Note that in Lean §2 prints\nas §3, because the notation for addition is defined to be left\nassociative.": "§0は§1の証明です。\nLeanでは§2は左結合的に定義されるため、§3として表示されます。", @@ -80,51 +80,48 @@ "§0は§1の*表記*です。\n\nこの数学的に有効な理由は、§2が真偽の主張であれば、§3は§4の論理的否定であるからです。実際、§5は偽であり、§6は真です!\n\nこのことから、§7は任意の推論§8と同じように扱うことができます。例えば、あなたの*目標*が§9のような形であれば、§10で進展が可能です。また、仮定§11が§12のような形であれば、§13を行うことができます(ただし、§14が§15の証明である場合)です。", "§0 is *notation* for §1.\n\nBecause this game doesn't have negative numbers, this definition\nis mathematically valid.\n\nThis means that if you have a goal of the form §2 you can\nmake progress with the §3 tactic, and if you have a hypothesis\n§4, you can make progress with §5.": "§0は§1の記号表記です。\n\nこのゲームには負の数が存在しないので、この定義は数学的に有効です。\n\n这意味着如果你的目标形式为§2,你可以使用§3タクティク進展,如果你有仮定§4,你可以使用§5タクティク進展。", - "§0": - "## \n\n§0\n\n\n## 日本語翻訳\nタクティクは証明手法を指し、定理は命題の証明を含む数学的命題を表します。Lean 4では、対話型の証明環境でこれらの要素を操作します。", - "zero_pow_zero": "零乗零\n\n\n## 参考訳\n零乗零", - "zero_pow_succ": "零冪乗成功\n\n\n## 参考訳\n零冪乗成功", - "zero_ne_succ": "zero_ne_succ\n\n\n## 日本語翻訳\n零と成功の命題は異なる(zero_ne_succ)", - "zero_mul": - "零乗\n\n\n## 備考\n- **tactic(s)**: タクティク\n- **theorem**: 定理\n- **proposition / Prop**: 命題\n- **proof**: 証明\n- **hypothesis**: 仮定\n- **type**: 型\n- **term**: 項\n- **interactive**: 対話型\n- **inventory**: インベントリ\n- **world**: ワールド\n- **start**: 開始\n- **editor mode**: エディタモード", - "zero_add": "zero_add\n\n\n## 日本語翻訳\n0との加算", + "§0": "§0", + "zero_pow_zero": "zero_pow_zero", + "zero_pow_succ": "zero_pow_succ", + "zero_ne_succ": "zero_ne_succ", + "zero_mul": "zero_mul", + "zero_add": "zero_add", "x ≤ y or y ≤ x": "x ≤ y または y ≤ x", "x ≤ y and y ≤ z implies x ≤ z": "x ≤ y と y ≤ z から x ≤ z が導かれる。", "x ≤ y and y ≤ x implies x = y": "x ≤ y と y ≤ x は x = y を意味します。", "x ≤ succ x": "x ≤ succ x", "x ≤ 1": "x ≤ 1", "x ≤ 0 → x = 0": "x ≤ 0 → x = 0", - "two_mul": "二倍定理", - "try rewriting §0.": "try rewriting §0.", + "two_mul": "two_mul", + "try rewriting §0.": "§0で書き換えてみてください.", "the simplest approach": "最简单的方法", - "the rw tactic": "the rw タクティク", - "succ_mul": "succ_mul\n\n\n## 日本語翻訳\n成功倍加", - "succ_inj : the successor function is injective": - " successor_function_inj : サクセッサー関数は単射です", - "succ_add": "succ_add\n\n\n## 日本語翻訳\n成功加算", + "the rw tactic": "rw タクティク", + "succ_mul": "succ_mul", + "succ_inj : the successor function is injective": "succ_inj : 後者関数は単射", + "succ_add": "succ_add", "succ x ≤ succ y → x ≤ y": " succ x ≤ succ y → x ≤ y\n\n\n## 日本語翻訳\n succ x ≤ succ y → x ≤ y", - "rewriting backwards": "反転して書き換えます\n\n\n## 参考訳\n反転して書き換えます", + "rewriting backwards": "反転して書き換え\n", "pred": "前提", "pow_two": "pow_two", "pow_pow": "pow_pow", - "pow_one": "pow_one\n\n\n## 日本語翻訳\nべき一度", + "pow_one": "pow_one", "pow_add": "pow_add", - "one_pow": "one_pow\n\n\n## 日本語翻訳\n1の累乗", - "one_mul": "one_mul\n\n\n## 日本語翻訳\n単位元と乗算に関する定理です。", + "one_pow": "one_pow", + "one_mul": "one_mul", "one_le_of_ne_zero": "one_le_of_ne_zero", "mul_right_eq_self": "mul_right_eq_self", "mul_right_eq_one": "mul_right_eq_one", "mul_pow": "mul_pow\n\n\n## 日本語翻訳\n乗法の累乗定理", - "mul_one": "mul_one\n\n\n## 日本語翻訳\n乗法の単位元定理です。", + "mul_one": "mul_one", "mul_ne_zero": "mul_ne_zero\n\n\n## 日本語翻訳\n乗算が零でない(mul_ne_zero)", "mul_left_ne_zero": "mul_left_ne_zero\n\n\n## 日本語翻訳\n左側 multiplicand が非零である定理", "mul_left_cancel": "mul_left_cancel", "mul_le_mul_right": "乗法の右側への乗算の不等式定理", "mul_eq_zero": "乗算が零に等しい", "mul_comm": "mul_comm", - "mul_assoc": "乗法の結合律", - "mul_add": "mul_add\n\n\n## 日本語翻訳\n乘加法則", + "mul_assoc": "mul_assoc", + "mul_add": "mul_add", "making life simple": "生活を単純にする", "making life easier": "生活をより簡単に", "level completed! 🎉": "レベル完成しました!🎉", @@ -132,55 +129,54 @@ "le_two": "le_two", "le_mul_right": "le_mul_right\n\n## 日本語翻訳\n右側乗算に関する定理です。", "is_zero": "is_zero\n\n\n## 日本語翻訳\n零判定", - "intro practice": "## intro practice\n\n\n## 参考訳\n入門練習", - "intro": "## はじめに\n\n\n## 参考訳\n## はじめに\n\n\n## 翻訳\n## はじめに", + "intro practice": "intro 練習", + "intro": "intro", "intermediate goal solved! 🎉": "中間目標解決しました!🎉", "eq_succ_of_ne_zero": "eq_succ_of_ne_zero", "decide again": "再決定", "decide": "決定", - "add_succ": "add_succ\n\n\n## 日本語翻訳\n自然数の加算に関する定理を証明するタクティクです。", + "add_succ": "add_succ", "add_sq": "add_sq\n\n\n## 日本語翻訳\n平方を追加します。", "add_right_eq_zero": "add_right_eq_zero", "add_right_eq_self": "add_right_eq_self\n\n\n## 日本語翻訳\n右側への加算が自身と等しいこと", - "add_right_comm": "add_right_comm\n\n\n## 日本語翻訳\n右側加算の交換律(add_right_comm)", + "add_right_comm": "add_right_comm", "add_right_cancel": "add_right_cancel\n\n\n## 日本語翻訳\n右側キャンセル定理", - "add_mul": "add_mul\n\n\n## 日本語翻訳\n加法と乗法の相互作用に関する定理や証明を扱うためのタクティクです。", + "add_mul": "add_mul", "add_left_eq_zero": "add_left_eq_zero", "add_left_eq_self": "add_left_eq_self\n\n\n## 日本語翻訳\n左側への追加が自身と等しいという命題の定理です。", "add_left_comm": "add_left_comm\n\n\n## 日本語翻訳\n左側交換律(add_left_comm)", "add_left_cancel": "add_left_cancel\n\n\n## 日本語翻訳\n左-cancel 付加律", - "add_comm (level boss)": - "add_comm (レベルボス)\n\n\n## 備考\n- `add_comm` は「加算の交換律を追加する」という意味です。\n- `level boss` は「レベルボス」と翻訳しています。", + "add_comm (level boss)": "add_comm (レベルボス)\n", "add_assoc (associativity of addition)": "add_assoc (加法の結合律)", "[final boss music]": "### 原文 (English)\n[final boss music]\n\n\n## 日本語翻訳\n[最終ボスのテーマ]", "[dramatic music]. Now are you ready to face the first boss of the game?": - "[dramatic music]. 今でしょ、ゲーム最初のボス戦に臨む準備はできていますか?", + "[ドラマティックな音楽] さあ、ゲーム最初のボス戦に臨む準備はできていますか?", "[boss battle music]\n\nLook in your inventory to see the proofs you have available.\nThese should be enough.": - "[boss battle music]\n\nあなたのインベントリを確認して、利用可能な証明を確認してください。\nこれらの証明は十分なはずです。", + "[ボスバトルミュージック]\n\nあなたのインベントリを確認して、利用可能な証明を確認してください。\nこれらの証明は十分なはずです。", "You've now seen all the tactics you need to beat the final boss of the game.\nYou can begin the journey towards this boss by entering Multiplication World.\n\nOr you can go off the beaten track and learn some new tactics in Implication\nWorld. These tactics let you prove more facts about addition, such as\nhow to deduce §0 from §1.\n\nClick \"Home\" and make your choice.": - "以下の最終ボスを倒すためのタクティクスを全部学びました。\nゲームの最終ボスに向かう旅を始めるには、Multiplication Worldに入り始めることができます。\n\nまたは、Implication Worldで新しいタクティクスを学んでみるのも良いでしょう。これらのタクティクスは、加算に関するより多くの事実を証明するのに役立ちます。例えば、§0から§1を導き出す方法を学ぶことができます。\n\n\"Home\"をクリックして選択してください。", + "以下の最終ボスを倒すためのタクティクスを全部学びました。\nゲームの最終ボスに向かう旅を始めるには、乗算ワールドに入り始めることができます。\n\nまたは、含意ワールドで新しいタクティクを学んでみるのも良いでしょう。これらのタクティクは、加算に関するより多くの事実を証明するのに役立ちます。例えば、§0から§1を導き出す方法を学ぶことができます。\n\n\"ホーム\"をクリックして選択してください。", "You want to use §0, which you already\nproved, but you'll have to start with §1 your hypothesis.": "あなたは既に証明した§0を使用したいですが、仮定から始める必要がありますので、§1から始めなければなりません。", "You still don't know which way to go, so do §0.": "You still don't know which way to go, so do §0.\n\n\n## 日本語翻訳\nまだ進むべき道がわからないので、§0の指示に従いましょう。", "You now know enough tactics to prove §0! Let's begin the journey.": - "あなたはすでに十分なタクティクを習得し、§0を証明することができます!旅程の始まりです。", + "あなたはすでに十分なタクティクを習得し、§0を証明することができます!旅の始まりです。", "You might want to think about whether induction\non §0 or §1 is the best idea.": " inductions on §0 や §1 は最良のアイデアでしょうか。", "You can use §0 to rewrite at §1 instead\nof at the goal.": - "您可以在§0处重写代码,而不是在目标处进行重写。\n\n\n## 日本語翻訳\n您可以在§0でコードを改訂し、目標处の重写を避けることができます。", + "§0で、目標ではなく、§1を書き換えることができます。", "You can start a proof by induction on §0 by typing:\n§1.": - "You can start a proof by induction on §0 by typing:\n§1.\n\n\n## 日本語翻訳\n induksi法による証明を開始するには、§0について帰納法で証明を開始するためには以下のように入力します:\n§1.", + "§0について帰納法で証明を開始するためには以下のように入力します:\n§1.", "You can read more about the §0 tactic by clicking\non it in the top right.": "以下の§0 タクティクについて詳しく知るには、右上にクリックしてください。", "You can put a §0 in front of any theorem provided to §1 to rewrite\nthe other way around. Look at the docs for §2 for an explanation. Type §3 with §4.": - "以下の定理を任意の §0 に先頭に付けることで、逆方向に書き換えることができます。詳細は §1 のドキュメントを参照してください。型 §2 を入力してください。", + "任意の定理 §1 に §0 を先頭に付けることで、逆方向に書き換えることができます。詳細は §2 のドキュメントを参照してください。§4をタイプして §3を入力してください。", "You can prove §0 in at least three ways.\nEither by induction, or by using §1, or\nby using commutativity. Which do you think is quickest?": - "您は§0を証明する方法として、少なくとも3つの方法があります。\n induksiонで証明するか、§1を使用するか、または交換律を使用するかです。\nどの方法が最も速いかどうか、どのように思われますか?", + "§0を証明する方法として、少なくとも3つの方法があります。\n帰納法で証明するか、§1を使用するか、または交換律を使用するかです。\nどの方法が最も速いと思いますか?", "You can probably take it from here.": "您可能已经可以继续了。", "You can now §0": "你现在可以 §0\n\n\n## 日本語翻訳\n你现在可以 §0", - "You can now finish with §0.": "你现在可以完成 §0。", + "You can now finish with §0.": "§0 で完了しましょう。", "You can make your own tactics in Lean.\nThis code here\n§0\nwas used to create a new tactic §1, which runs\n§2.\nTry running §3 to solve this level!": "Leanで独自のタクティクを作成することができます。\n以下のコード\n§0\nは新しいタクティク§1の作成に使用され、§2を実行します。\n§3を実行してこのレベルを解いてみてください!", "You can just mimic the previous proof to do this one -- or you can figure out a way\nof using it.": @@ -190,46 +186,46 @@ "Why did we not just define §0 to be §1? Because we have not\neven *defined* addition yet! We'll do that in the next level.": "なぜ §0 を §1 に定義しなかったのか?まだ足し算そのものを定義していないからです。次レベルでその定義を行います。", "What do you think of this two-liner:\n§0\n\n§1 doesn't just take hypotheses, it will eat any proof which exists\nin the system.": - "この二行は何をお考えですか:\n§0\n\n§1 は仮定だけを取るわけではありません。システム内に存在する任意の証明も食べます。", + "この2行についてどう思いますか:\n§0\n\n§1 は、単に仮定を受け取るだけでなく、システム内に存在する任意の証明を処理します。", "Well done! You now have enough tools to tackle the main boss of this level.": - " WELL DONE! あなたはこのレベルの主要ボスに挑むための十分なツールを手に入れました。", + "よくできました! あなたはこのレベルのメインボスに挑むための十分なツールを手に入れました。", "Well done!": " WELL DONE!", "Welcome to tutorial world! In this world we learn the basics\nof proving theorems. The boss level of this world\nis the theorem §0.\n\nYou prove theorems by solving puzzles using tools called *tactics*.\nThe aim is to prove the theorem by applying tactics\nin the right order.\n\nLet's learn some basic tactics. Click on \"Start\" below\nto begin your quest.": "チュートリアルワールドにようこそ! この世界では定理を証明する基本を学びます。この世界のボスレベルは定理§0です。\n\n定理を証明するには、*タクティク*というツールを使ってパズルを解きます。目標は、適切な順序でタクティクを適用して定理を証明することです。\n\n基本的なタクティクについて学んでみましょう。以下の \"開始\" をクリックして冒険を始めてください。", "Welcome to Addition World! In this world we'll learn the §0 tactic.\nThis will enable us to defeat the boss level of this world, namely §1.\n\nThe tactics §2, §3 and §4 are the only tactics you'll need to\nbeat all the levels in Addition World, Multiplication World, and Power World.\nPower World contains the final boss of the game.\n\nThere are plenty more tactics in this game, but you'll only need to know them if you\nwant to explore the game further (for example if you decide to 100%\nthe game).": - "### 原文 (English)\nWelcome to Addition World! In this world we'll learn the §0 tactic.\nThis will enable us to defeat the boss level of this world, namely §1.\n\nThe tactics §2, §3 and §4 are the only tactics you'll need to\nbeat all the levels in Addition World, Multiplication World, and Power World.\nPower World contains the final boss of the game.\n\nThere are plenty more tactics in this game, but you'll only need to know them if you\nwant to explore the game further (for example if you decide to 100%\nthe game).\n\n\n### 翻訳 (Japanese)\n Additionワールドへようこそ!このワールドでは§0 タクティクを学びます。\nこれにより、このワールドのボスレベルを攻略することができます、すなわち§1です。\n\n§2, §3, §4 のタクティクのみが必要で、これらを用いて\n加算ワールド、乗算ワールド、乗方ワールドのすべてのレベルを攻略することができます。\n乗方ワールドにはゲームの最終ボスが含まれています。\n\nこのゲームにはもっと多くのタクティクがありますが、それらを知る必要はなく、\nゲームをさらに探索したい場合(例えば、ゲームを100%攻略したい場合)にのみ必要となります。", + " 加算ワールドへようこそ!このワールドでは§0 タクティクを学びます。\nこれにより、このワールドのボスレベルを攻略することができます、すなわち§1です。\n\n§2, §3, §4 のタクティクのみが必要で、これらを用いて\n加算ワールド、乗算ワールド、冪乗ワールドのすべてのレベルを攻略することができます。\n冪乗ワールドにはゲームの最終ボスが含まれています。\n\nこのゲームにはもっと多くのタクティクがありますが、それらを知る必要はなく、\nゲームをさらに探索したい場合(例えば、ゲームを100%攻略したい場合)にのみ必要となります。", "We've seen §0, the proof that if §1 then §2.\nNow we'll prove that if §3 then §4 or §5.": "We've seen §0, 仮定§1 から §2 が成り立つことを証明した。\n次に、仮定§3 から §4 または §5 が成り立つことを証明する。", "We've proved that §0; in Implication World we'll learn\nhow to prove §1.\n\nIn Addition World we proved *equalities* like §2.\nIn this second tutorial world we'll learn some new tactics,\nenabling us to prove *implications*\nlike §3\n\nWe'll also learn two new fundamental facts about\nnatural numbers, which Peano introduced as axioms.\n\nClick on \"Start\" to proceed.": - "### 原文 (English)\nWe've proved that §0; in Implication World we'll learn\nhow to prove §1.\n\nIn Addition World we proved *equalities* like §2.\nIn this second tutorial world we'll learn some new tactics,\nenabling us to prove *implications*\nlike §3\n\nWe'll also learn two new fundamental facts about\nnatural numbers, which Peano introduced as axioms.\n\nClick on \"Start\" to proceed.\n\n\n### 翻訳 (Japanese)\n私たちは§0を証明しました; Implikationワールドでは、§1を証明する方法を学びます。\n\n加法ワールドでは、§2のような等式を証明しました。\nこの二つ目のチュートリアルワールドでは、新しいタクティクを学び、\nこれを使って§3のような推論を証明できるようになります。\n\nまた、ペアノが公理として導入した自然数に関する二つの新しい基本的事実も学びます。\n\n\"開始\"をクリックして進みましょう。", + "私たちは§0を証明しました; 含意ワールドでは、§1を証明する方法を学びます。\n\n加法ワールドでは、§2のような等式を証明しました。\nこの二つ目のチュートリアルワールドでは、新しいタクティクを学び、\nこれを使って§3のような推論を証明できるようになります。\n\nまた、ペアノが公理として導入した自然数に関する二つの新しい基本的事実も学びます。\n\n\"開始\"をクリックして進みましょう。", "We've proved that §0 implies §1. The last two levels\nin this world will prove which numbers are §2 and §3.\nThis lemma will be helpful for them.": "We've proved that §0 から §1 が導かれる。このワールドの最後の2つのレベルでは、どの数が §2 と §3 であるかを証明する。この補題は彼らにとって役立つだろう。", "We've just seen that §0, but if §1\nis a successor, then §2. We prove that here.": - "We've just seen that §0, ですが、もし §1 が後继者である場合、則 §2。ここではそのことを証明します。", + "§0 について見てきました。 ですが、もし §1 が後者である場合、 §2 になります。ここではそのことを証明します。", "We've been adding up two numbers; in this level we will add up three.\n\n What does §0 *mean*? It could either mean §1, or it\n could mean §2. In Lean, §3 means §4.\n\n But why do we care which one it means; §5 and §6 are *equal*!\n\n That's true, but we didn't prove it yet. Let's prove it now by induction.": - "### 原文 (English)\nWe've been adding up two numbers; in this level we will add up three.\n\n What does §0 *mean*? It could either mean §1, or it\n could mean §2. In Lean, §3 means §4.\n\n But why do we care which one it means; §5 and §6 are *equal*!\n\n That's true, but we didn't prove it yet. Let's prove it now by induction.\n\n\n### 翻訳 (Japanese)\n二つの数を足し合わせてきました;このレベルでは三つの数を足し合わせます。\n\n §0は何を意味するのでしょうか?それは §1 か §2 のどちらかです。Leanでは、§3 は §4 と意味が同じです。\n\n しかし、どの意味を持つべきかを気にする必要があるのでしょうか;§5 と §6 は *等しい* のです!\n\n その通りですが、まだ証明していません。 inducution で証明しましょう。", + "二つの数を足し合わせてきました;このレベルでは三つの数を足し合わせます。\n\n §0は何を意味するのでしょうか?それは §1 か §2 のどちらかです。Leanでは、§3 は §4 と意味が同じです。\n\n しかし、どの意味を持つべきかを気にする必要があるのでしょうか;§5 と §6 は *等しい* のです!\n\n その通りですが、まだ証明していません。帰納法 (`inducution`) で証明しましょう。", "We're going to change that §0 into §1. Start by changing it into\n§2 by executing §3.": "We're going to change that §0 into §1. Start by changing it into\n§2 by executing §3.\n\n\n## 日本語翻訳\n§0 を §1 に変更します。まず、§3 を実行して §0 を §2 に変更します。", "We'll need this lemma to prove that two is prime!\n\nYou'll need to know that §0 is right associative. This means that\n§1 actually means §2.\nThis affects how §3 and §4 work.": "We'll need this lemma to prove that two is prime!\n\nYou'll need to know that §0 is right associative. This means that\n§1 actually means §2.\nThis affects how §3 and §4 work.", "We'd like to prove §0 but right now\nwe can't even *state* it\nbecause we haven't yet defined addition.\n\n## Defining addition.\n\nHow are we going to add §1 to an arbitrary number §2? Well,\nthere are only two ways to make numbers in this game: §3\nand successors. So to define §4 we will need\nto know what §5 is and what §6 is.\nLet's start with adding §7.\n\n### Adding 0\n\nTo make addition agree with our intuition, we should *define* §8\nto be §9. More generally, we should define §10 to be §11 for\nany number §12. The name of this proof in Lean is §13.\nFor example §14 is a proof of §15,\n§16 is a proof of §17, and §18 is a proof\nof §19.\n\nWe write §20, so §21.": - "### 原文 (English)\nWe'd like to prove §0 but right now\nwe can't even *state* it\nbecause we haven't yet defined addition.\n\n## Defining addition.\n\nHow are we going to add §1 to an arbitrary number §2? Well,\nthere are only two ways to make numbers in this game: §3\nand successors. So to define §4 we will need\nto know what §5 is and what §6 is.\nLet's start with adding §7.\n\n### Adding 0\n\nTo make addition agree with our intuition, we should *define* §8\nto be §9. More generally, we should define §10 to be §11 for\nany number §12. The name of this proof in Lean is §13.\nFor example §14 is a proof of §15,\n§16 is a proof of §17, and §18 is a proof\nof §19.\n\nWe write §20, so §21.\n\n\n### 翻訳 (Japanese)\n私たちは§0を証明したいですが、現在ではすら\nその定理を述べることができません。\nなぜなら、加法をまだ定義していないからです。\n\n## 加法の定義\n\n任意の数§2に§1を加える方法はどのようなものでしょうか?\nこのゲームでは数を生成する方法は2つしかありません:§3\nと後続数。したがって、§4を定義するには\n§5と§6がどのようなものかを知る必要があります。\nまずは§7を加えることにしましょう。\n\n### 0を加える\n\n加法が直感に合致するようにするためには、§8を\n§9とするべきです。より一般的には、任意の数§12に対して\n§10を§11とするべきです。Leanでのこの証明の名前は§13です。\n例えば、§14は§15の証明、§16は§17の証明、§18は§19の証明です。\n\n私たちは§20と書きます、つまり§21です。", + "私たちは§0を証明したいですが、現在では\nその定理を*述べること*すらできません。\nなぜなら、加法をまだ定義していないからです。\n\n## 加法の定義\n\n任意の数§2に§1を加える方法はどのようなものでしょうか?\nこのゲームでは数を生成する方法は2つしかありません:§3\nと後続数。したがって、§4を定義するには\n§5と§6がどのようなものかを知る必要があります。\nまずは§7を加えることにしましょう。\n\n### 0を加える\n\n加法が直感に合致するようにするためには、§8を\n§9とするべきです。より一般的には、任意の数§12に対して\n§10を§11とするべきです。Leanでのこの証明の名前は§13です。\n例えば、§14は§15の証明、§16は§17の証明、§18は§19の証明です。\n\n私たちは§20と書きます、つまり§21です。", "We want to use §0, but we need a hypothesis §1\nwhich we don't have. Yet. Execute §2 (you can type §3 with §4).\nYou'll be asked to\nprove it, and then you'll have a new hypothesis which you can apply\n§5 to.": "We want to use §0, ですが、§1 という仮定が必要で、現在持正在りません。まだありません。§2 を実行してください(§3 を §4 で入力できます)。\n求められるまでは証明が必要ですが、証明後には新しい仮定が得られ、それを §5 で適用できます。", "We want to reduce this to a hypothesis §0 and a goal §1,\nwhich is logically equivalent but much easier to prove. Remember that §2\nis notation for §3. Click on §4 if you need hints.": "We want to reduce this to a hypothesis §0 and a goal §1,\nwhich is logically equivalent but much easier to prove. Remember that §2\nis notation for §3. Click on §4 if you need hints.\n\n\n## 日本語翻訳\nこの部分を仮定§0と目標§1に簡略化したいです。これは論理的に同等ですが、証明がはるかに簡単になります。§2は§3の表記法です。ヒントが必要な場合は§4をクリックしてください。", "We still can't prove §0 because we have not talked about the\ndefinition of §1. In Lean, §2 is *notation* for §3.\nHere §4 is a generic false proposition, and §5 is Lean's notation\nfor \"implies\". In logic we learn\nthat §6 is false, but §7 is true. Hence\n§8 is the logical opposite of §9.\n\nEven though §10 does not look like an implication,\nyou should treat it as an implication. The next two levels will show you how.\n\n§11 is a goal which you cannot deduce from a consistent set of assumptions!\nSo if your goal is §12 then you had better hope that your hypotheses\nare contradictory, which they are in this level.": - "### 原文 (English)\nWe still can't prove §0 because we have not talked about the\ndefinition of §1. In Lean, §2 is *notation* for §3.\nHere §4 is a generic false proposition, and §5 is Lean's notation\nfor \"implies\". In logic we learn\nthat §6 is false, but §7 is true. Hence\n§8 is the logical opposite of §9.\n\nEven though §10 does not look like an implication,\nyou should treat it as an implication. The next two levels will show you how.\n\n§11 is a goal which you cannot deduce from a consistent set of assumptions!\nSo if your goal is §12 then you had better hope that your hypotheses\nare contradictory, which they are in this level.\n\n\n### 翻訳 (Japanese)\nまだ §0 を証明することができません。なぜなら §1 の定義について話していなかったからです。Lean では §2 は §3 の *表記* です。\nここでは §4 は一般的な偽命題、§5 は Lean の \"implies\" の表記です。論理学では §6 は偽であり、§7 は真です。したがって\n§8 は §9 の論理的対偶です。\n\n§10 は直感上 implication に見えないかもしれませんが、 implication として扱うべきです。次の 2 つのレベルでその方法を学びます。\n\n§11 は一貫性のある仮定から導き出せない目標です!したがって、目標が §12 の場合、仮定が矛盾していることを願うべきで、このレベルではそうしています。", + "まだ §0 を証明することができません。なぜなら §1 の定義について話していなかったからです。Lean では §2 は §3 の *表記* です。\nここでは §4 は一般的な偽命題、§5 は Lean の \"implies\" の表記です。論理学では §6 は偽であり、§7 は真です。したがって\n§8 は §9 の論理的対偶です。\n\n§10 は含意に見えないかもしれませんが、含意 として扱うべきです。次の 2 つのレベルでその方法を学びます。\n\n§11 は一貫性のある仮定から導き出せない目標です!したがって、目標が §12 の場合、仮定が矛盾していることを願うべきで、このレベルではそうしています。", "We now start work on an algorithm to do addition more efficiently. Recall that\nwe defined addition by recursion, saying what it did on §0 and successors.\nIt is an axiom of Lean that recursion is a valid\nway to define functions from types such as the naturals.\n\nLet's define a new function §1 from the naturals to the naturals, which\nattempts to subtract 1 from the input. The definition is this:\n\n§2\n\nWe cannot subtract one from 0, so we just return a junk value. As well as this\ndefinition, we also create a new lemma §3, which says that §4.\nLet's use this lemma to prove §5, the theorem which\nPeano assumed as an axiom and which we have already used extensively without justification.": "### 原文 (English)\nWe now start work on an algorithm to do addition more efficiently. Recall that\nwe defined addition by recursion, saying what it did on §0 and successors.\nIt is an axiom of Lean that recursion is a valid\nway to define functions from types such as the naturals.\n\nLet's define a new function §1 from the naturals to the naturals, which\nattempts to subtract 1 from the input. The definition is this:\n\n§2\n\nWe cannot subtract one from 0, so we just return a junk value. As well as this\ndefinition, we also create a new lemma §3, which says that §4.\nLet's use this lemma to prove §5, the theorem which\nPeano assumed as an axiom and which we have already used extensively without justification.\n\n\n### 翻訳 (Japanese)\n現在、効率的な加算を行うアルゴリズムの作成を開始します。再帰によって加算を定義したことを思い出してください。具体的には、0と後続者に対して何を行うかを定義しました。\nLeanの公理として、再帰は自然数などの型から関数を定義する有効な方法であるとされています。\n\n自然数から自然数への新しい関数§1を定義します。これは、入力から1を引こうとする関数です。その定義は以下の通りです:\n\n§2\n\n0から1を引くことはできませんので、無効な値を返します。この定義とともに、新しい補題§3も定義します。これは§4を述べています。\nこの補題を使って、§5(ペアノが公理として仮定し、以前にも正当化せずに頻繁に使用した定理)を証明しましょう。", "We now have enough to state a mathematically accurate, but slightly\nclunky, version of Fermat's Last Theorem.\n\nFermat's Last Theorem states that if §0 and §1 then §2.\nIf you didn't do inequality world yet then we can't talk about §3,\nso we have to resort to the hack of using §4 for §5,\nwhich guarantees it's big enough. Similarly instead of §6 we\nuse §7.\n\nThis level looks superficially like other levels we have seen,\nbut the shortest solution known to humans would translate into\nmany millions of lines of Lean code. The author of this game,\nKevin Buzzard, is working on translating the proof by Wiles\nand Taylor into Lean, although this task will take many years.\n\n## CONGRATULATIONS!\n\nYou've finished the main quest of the natural number game!\nIf you would like to learn more about how to use Lean to\nprove theorems in mathematics, then take a look\nat [Mathematics In Lean](https://leanprover-community.github.io/mathematics_in_lean/),\nan interactive textbook which you can read in your browser,\nand which explains how to work with many more mathematical concepts in Lean.": "### 原文 (English)\nWe now have enough to state a mathematically accurate, but slightly\nclunky, version of Fermat's Last Theorem.\n\nFermat's Last Theorem states that if §0 and §1 then §2.\nIf you didn't do inequality world yet then we can't talk about §3,\nso we have to resort to the hack of using §4 for §5,\nwhich guarantees it's big enough. Similarly instead of §6 we\nuse §7.\n\nThis level looks superficially like other levels we have seen,\nbut the shortest solution known to humans would translate into\nmany millions of lines of Lean code. The author of this game,\nKevin Buzzard, is working on translating the proof by Wiles\nand Taylor into Lean, although this task will take many years.\n\n## CONGRATULATIONS!\n\nYou've finished the main quest of the natural number game!\nIf you would like to learn more about how to use Lean to\nprove theorems in mathematics, then take a look\nat [Mathematics In Lean](https://leanprover-community.github.io/mathematics_in_lean/),\nan interactive textbook which you can read in your browser,\nand which explains how to work with many more mathematical concepts in Lean.\n\n\n### 翻訳 (Japanese)\n我们现在有足够的知识来陈述一个数学上准确但略显笨拙的费马大定理。\n\n费马大定理指出,如果§0 且 §1,则 §2。\n如果你还没有完成不等式世界,则无法讨论 §3,\n所以我们不得不使用 §4 代替 §5,这保证了它的大小足够。类似地,我们使用 §7 代替 §6。\n\n这一关看起来与其他关卡相似,\n但人类已知的最短解决方案会转化为数以百万计的Lean代码行。这款游戏的作者Kevin Buzzard正在努力将威尔斯和泰勒的证明翻译成Lean,\n尽管这项任务将需要很多年的时间。\n\n## おめでとう!\n\n自然数ゲームの主要な冒険を終えました!\nLeanを使用して数学の定理を証明する方法をさらに学びたい場合は、\n[Leanで数学](https://leanprover-community.github.io/mathematics_in_lean/) を参照してください。\nこれはブラウザで読むことができる対話型教科書で、Leanでより多くの数学的概念を扱う方法を説明しています。", "We now have enough to prove that multiplication is associative,\nthe boss level of multiplication world. Good luck!": - "現在、乗算が結合的であることを証明できるようになりました。これは乗算ワールドのボスレベルです。お運びください!", + "乗算が結合的であることを証明できるようになりました。これは乗算ワールドのボスレベルです。幸運を!", "We know §0 is a proof of §1 -- but what\nif we have a hypothesis §2? It's the wrong way around!\n\nThe §3 tactic changes a goal §4 to §5, and a goal §6\nto §7. And §8\ndoes the same for a hypothesis §9. We've proved §10 and called\nthe proof §11; now try proving §12.": - "### 原文 (English)\nWe know §0 is a proof of §1 -- but what\nif we have a hypothesis §2? It's the wrong way around!\n\nThe §3 tactic changes a goal §4 to §5, and a goal §6\nto §7. And §8\ndoes the same for a hypothesis §9. We've proved §10 and called\nthe proof §11; now try proving §12.\n\n\n### 翻訳 (Japanese)\n我们知道 §0 是 §1 的证明 -- 但如果有一个假设 §2 呢?顺序正好相反!\n\n§3 のタクティクは、目標 §4 を §5 に変更し、目標 §6 を §7 に変更します。そして §8 は、假设 §9 について同じ操作を行います。我们已经证明了 §10,并将其证明称为 §11;现在试着证明 §12。", + "§0 が §1 の証明であることを知っています。しかし、\nもし §2 という仮定がある場合、それは逆になってしまいます。\n\n§3 のタクティクは、目標 §4 を §5 に、目標 §6 を §7 に変更します。\nまた、§8 も仮定 §9 に対して同様の操作を行います。\n\n§10 を証明し、その証明を §11 と命名しました。\n次に §12 を証明してみてください。", "We have seen how to §0 theorems and assumptions\nof the form §1. But what if our *goal* is of the form §2?\nTo prove this goal, we need to know how to say \"let's assume §3 and deduce §4\"\nin Lean. We do this with the §5 tactic.": - "### 原文 (English)\nWe have seen how to §0 theorems and assumptions\nof the form §1. But what if our *goal* is of the form §2?\nTo prove this goal, we need to know how to say \"let's assume §3 and deduce §4\"\nin Lean. We do this with the §5 tactic.\n\n\n### 翻訳 (Japanese)\n私たちは、形式 §1 の定理や仮定の §0 の方法を見ました。しかし、もし私たちの *目標* が形式 §2 の場合、この目標を証明するには、Lean で \"§3 という仮定を設け、 §4 を導く\" という方法を知る必要があります。これを行うためには、§5 タクティクを使用します。", + "私たちは、形式 §1 の定理や仮定の §0 の方法を見ました。\nしかし、もし私たちの *目標* が形式 §2 の場合は、どうすれば良いでしょうか?\nこの目標を証明するには、Lean \nで \"§3 という仮定を設け、 §4 を導く\" という方法を知る必要があります。これを行うためには、§5 タクティクを使用します。", "We gave a pretty unsatisfactory proof of §0 earlier on; now give a nicer one.": "## 前回の証明は不十分でしたので、今回はより良い証明方法を示します。", "We don't know whether to go left or right yet. So start with §0.": @@ -238,21 +234,21 @@ "### 原文 (English)\nWe define a function §0 thus:\n\n§1\n\nWe also create two lemmas, §2 and §3, saying that §4\nand §5. Let's use these lemmas to prove §6, Peano's\nLast Axiom. Actually, we have been using §7 before, but it's handy to have\nthis opposite version too, which can be proved in the same way. Note: you can\ncheat here by using §8 but the point of this world is to show\nyou how to *prove* results like that.\n\nIf you can turn your goal into §9, then the §10 tactic will solve it.\n\n\n### 日本語翻訳\n関数 §0 を定義します:\n\n§1\n\nまた、命題 §2 と §3 を作成し、§4\nと §5 を言います。これらの命題を使って、ペアノの最終公理 §6 を証明しましょう。実際、§7 は以前から使用していましたが、同じ方法で証明できる逆の命題も用意しておくと便利です。注意:ここでは §8 を使用して cheat することができますが、このワールドの目的は、そのような結果を証明する方法を示すことです。\n\n目標を §9 に変換できるなら、§10 タクティクで解決できます。", "Very well done.\n\nA passing mathematician remarks that with you've just proved that §0 is totally\nordered.\n\nThe final few levels in this world are much easier.": "Very well done.\n\n数学的な見地から言えば、あなたが証明したところでは、§0 は完全に順序付けられています。\n\nこのワールドの最後の数レベルははるかに簡単です。", - "Use §0.": "使用してください §0。", + "Use §0.": "§0を使用してください。", "Use §0 and remember that §1 will solve a goal\nif there are hypotheses §2 and §3.": "使用する§0と、仮定§2と§3がある場合、§1は目標を解決します。", "Use the previous lemma with §0.": "前の補題を使用し、§0を適用してください。", "Tutorial World": "チュートリアルワールド", - "Try §0.": "試してみましょう§0。", - "Try §0 to change §1 into §2.": "試してみて §0 を使用し、§1 を §2 に変換してください。", + "Try §0.": "§0を試しましょう。", + "Try §0 to change §1 into §2.": "§0 を使用し、§1 を §2 に変換してみてください。", "Totality of §0 is the boss level of this world, and it's coming up next. It says that\nif §1 and §2 are naturals then either §3 or §4.\nBut we haven't talked about §5 at all. Here's a run-through.\n\n1) The notation for \"or\" is §6. You won't need to type it, but you can\ntype it with §7.\n\n2) If you have an \"or\" statement in the *goal*, then two tactics make\nprogress: §8 and §9. But don't choose a direction unless your\nhypotheses guarantee that it's the correct one.\n\n3) If you have an \"or\" statement as a *hypothesis* §10, then\n§11 will create two goals, one where you went left,\nand the other where you went right.": "### 原文 (English)\nTotality of §0 is the boss level of this world, and it's coming up next. It says that\nif §1 and §2 are naturals then either §3 or §4.\nBut we haven't talked about §5 at all. Here's a run-through.\n\n1) The notation for \"or\" is §6. You won't need to type it, but you can\ntype it with §7.\n\n2) If you have an \"or\" statement in the *goal*, then two tactics make\nprogress: §8 and §9. But don't choose a direction unless your\nhypotheses guarantee that it's the correct one.\n\n3) If you have an \"or\" statement as a *hypothesis* §10, then\n§11 will create two goals, one where you went left,\nand the other where you went right.\n\n\n### 翻訳 (Japanese)\n完全性の §0 はこのワールドのボスレベルであり、次に登場します。これは、§1 と §2 が自然数である場合、§3 または §4 であることを言います。\nしかし、§5 については全く話していません。以下は概要です。\n\n1) \"または\" の表記は §6 です。直接入力する必要はありませんが、§7 で入力することができます。\n\n2) 目的 §8 に \"または\" の文がある場合、2 つのタクティク §9 が進行します。ただし、方向を選択する前に、仮定が正しい方向を保証していることを確認してください。\n\n3) 仮定 §10 に \"または\" の文がある場合、§11 は 2 つの目的を作成します。一つは左に進んだ場合、もう一つは右に進んだ場合です。", "To solve this level, you need to §0 a number §1 such that §2.": "このレベルを解くためには、§0 に数字 §1 を §2 する必要があります。", "Those of you interested in speedrunning the game may want to know\nthat §0 will do both rewrites at once.": - "ゲームの速 Exterior に興味がある方は、§0 が一度に両方のリライトを行うことを知るかもしれません。", + "ゲームのスピードランに興味がある方は、§0 が一度に両方のリライトを行うことを知っておくと良いでしょう。", "This world introduces exponentiation. If you want to define §0\nthen, as always, you will need to know what §1 is, and\nwhat §2 is, given only §3.\n\nYou can probably guess the names of the general theorems:\n\n * §4\n * §5\n\nUsing only these, can you get past the final boss level?\n\nThe levels in this world were designed by Sian Carey, a UROP student\nat Imperial College London, funded by a Mary Lister McCammon Fellowship\nin the summer of 2019. Thanks to Sian and also thanks to Imperial\nCollege for funding her.": - "### 原文 (English)\nThis world introduces exponentiation. If you want to define §0\nthen, as always, you will need to know what §1 is, and\nwhat §2 is, given only §3.\n\nYou can probably guess the names of the general theorems:\n\n * §4\n * §5\n\nUsing only these, can you get past the final boss level?\n\nThe levels in this world were designed by Sian Carey, a UROP student\nat Imperial College London, funded by a Mary Lister McCammon Fellowship\nin the summer of 2019. Thanks to Sian and also thanks to Imperial\nCollege for funding her.\n\n\n### 翻訳 (Japanese)\nこの世界では指数演算が導入されます。§0を定義するには、常に §1 と §2 が何であるかを知る必要があります。そして、それらを §3 だけを使って推測する必要があります。\n\n一般的な定理の名前はおそらく予想できるでしょう:\n\n * §4\n * §5\n\nこれらのものだけを使って最終ボスレベルを突破できるでしょうか?\n\nこの世界のレベルは、2019年夏にマリー・リスト・マッカモン助成金によりインペリアルコロッゲン・ロンドン大学のUROP学生であるシアン・ケアリーによって設計されました。シアンに感謝します。また、インペリアルコロッゲンの助成にも感謝します。", + "このワールドでは指数演算が導入されます。§0を定義するには、常に §1 と §2 が何であるかを知る必要があります。そして、それらを §3 だけを使って推測する必要があります。\n\n一般的な定理の名前はおそらく予想できるでしょう:\n\n * §4\n * §5\n\nこれらのものだけを使って最終ボスレベルを突破できるでしょうか?\n\nこの世界のレベルは、2019年夏にMary Lister McCammon助成金によりImperial College LopndonのUROP学生であるSian Careyによって設計されました。Sianに感謝します。また、Imperial Collegeの助成にも感謝します。", "This time, use the §0 tactic.": "この回は、§0 タクティクを使用します。", "This level proves §0, the multiplicative analogue of Advanced Addition\nWorld's §1. The strategy is to prove that §2 and then use the\nlemma §3 from §4 world.\n\nWe'll prove it using a new and very useful tactic called §5.": "このレベルでは、進んだ加算ワールドの§1の乗法的な類似物である§0を証明します。戦略は、§2を証明し、その後、§4ワールドから§3の補題を使用することです。\n\n新しい非常に有用なタクティク§5を使用して証明します。", @@ -265,11 +261,11 @@ "This level asks you to prove *antisymmetry* of §0.\nIn other words, if §1 and §2 then §3.\nIt's the trickiest one so far. Good luck!": "このレベルでは、§0 の *反対称性* を証明する必要があります。\nつまり、§1 かつ §2 ならば §3 です。\nこれまでで最も難しい問題です。運を祈ります!", "This lemma would have been easy if we had known that §0. That theorem\n is called §1 and it is *true*, but unfortunately its proof *uses* both\n §2 and §3!\n\n Let's continue on our journey to §4, the proof of §5.": - "この補題は、§0を知っていたら簡単だったでしょう。その定理は§1と呼ばれ、**真**です。しかし、残念ながらその証明は§2と§3を**使用**しています!\n\n§4の証明へと進みましょう、§5の証明に。", + "この補題は、§0を知っていたら簡単だったでしょう。その定理は§1と呼ばれ、**真**です。しかし、残念ながらその証明は§2と§3を**使用**しています!\n\n§4へと進みましょう、§5の証明に。", "This is I think the toughest level yet. Tips: if §0 is a number\nthen §1 will split into cases §2 and §3.\nAnd don't go left or right until your hypotheses guarantee that\nyou can prove the resulting goal!\n\nI've left hidden hints; if you need them, retry from the beginning\nand click on \"Show more help!\"": "これは今までで最も難しいレベルかもしれません。ヒント:もし§0が数値であれば、§1は§2と§3に分岐します。\nそして、仮定が結果の目標を証明できる保証がない限りは左や右には移動しないでください!\n\n隠されたヒントを残しています;必要であれば、最初からやり直し、「もっと手助けを表示!」とクリックしてください。", - "The §0 tactic.": "The タクティク tactic.", - "The §0 tactic": "The タクティク §0\n\n\n## 日本語翻訳\nタクティク §0", + "The §0 tactic.": "タクティク §0", + "The §0 tactic": "タクティク §0", "The way to start this proof is §0.": "この証明を始める方法は §0。", "The rfl tactic": "rfl タクティク", "The reason §0 is because §1.\nSo you should start this proof with §2.": @@ -289,11 +285,11 @@ "The goal in this level is one of our hypotheses. Solve the goal by executing §0.": "このレベルの目標は、私たちの仮定の一つです。目標を達成するには、§0 を実行してください。", "The first sub-boss of Multiplication World is §0.\n\nWhen you've proved this theorem we will have \"spare\" proofs\nsuch as §1, which is now easily deducible from §2.\nBut we'll keep hold of these proofs anyway, because it's convenient\nto have exactly the right tool for a job.": - "The first sub-boss of Multiplication Worldは§0です。\n\nこの定理を証明すると、「余裕」のある証明が得られます。\n例えば、§2から容易に導かれる§1があります。\nしかし、これらの証明は手元に置いておくことにします。\n必要な仕事に適切な道具を持つためです。", + "乗算ワールドの最初のサブボスは§0です。\n\nこの定理を証明すると、「余裕」のある証明が得られます。\n例えば、§2から容易に導かれる§1があります。\nしかし、これらの証明は手元に置いておくことにします。\n必要な仕事に適切な道具を持つためです。", "The classical introduction game for Lean.": "The classical introduction game for Lean 4。\n\n## 日本語翻訳\nLean 4 の古典的な導入ゲーム。", - "Start with §0. This will change §1 to §2.": "開始します。§0を入力すると、§1が§2に変更されます。", - "Start with §0.": "開始します。§0。", + "Start with §0. This will change §1 to §2.": "0を入力して開始します。すると、§1が§2に変更されます。", + "Start with §0.": "§0 で開始します。", "Start with §0, to change the goal into its\ncontrapositive, namely a hypothesis of §1 and a goal of §2.": "開始するには、§0 から始めて、目標を対偶に変更し、具体的には§1 の仮定と§2 の目標にします。", "Start with §0 to push all the brackets to the right.": "開始は§0から全括弧を右に移動させます。", @@ -301,9 +297,9 @@ "開始するには、§0 を使用して §1 と §2 に対してケース分割を行います。", "Start with §0 to begin to break §1 down into its definition.": "開始は§0から始めて、§1を定義に分解するところから始めます。", - "Start with §0 to assume the hypothesis.": "開始するには、§0 を使用して仮定を仮定します。", + "Start with §0 to assume the hypothesis.": "§0 を使用して仮定を導入します。", "Start with §0 to assume the hypothesis and call its proof §1.": - "開始する際は、§0 を使用して仮定を仮定し、その証明を§1と呼びます。", + "§0 を使用して仮定を§1とし、開始します。", "Start with §0 to apply §1 to the *goal*.": "開始するには、§0 を使用して §1 を *目標* に適用します。", "Start with §0 and §1": "開始するには、§0 と §1 を使用します。", @@ -311,66 +307,63 @@ "Start with §0 (remembering that §1 is just notation\nfor §2).": "開始は §0 から (§1 は §2 の表記法であることを覚えておいてください)。", "Start with induction on §0.": "開始は §0 に対する帰納法からです。", - "Start by unravelling the §0.": "開始するには、§0 を unravel してください。", + "Start by unravelling the §0.": "§0 を解いて開始してください。", "Split into cases §0 and §1 with §2.": "ケース分けして §0 と §1 に分ける。", "Solve this level in one line with §0": "このレベルを一行で解いてください§0", "So that's the algorithm: now let's use automation to perform it\nautomatically.": "そのアルゴリズムはこれです:今度は自動化を使って自動的に実行させましょう。", "Similarly we have §0\nbut we're going to need §1 (guess what it says -- maybe you\nare getting the hang of Lean's naming conventions).\n\nThe last level from addition world might help you in this level.\nIf you can't remember what it is, you can go back to the\nhome screen by clicking the house icon and then taking a look.\nYou won't lose any progress.": - "Similarly we have §0\nbut we're going to need §1 (guess what it says -- maybe you\nare getting the hang of Lean's naming conventions).\n\n最後のレベルから加算ワールドが提供されるかもしれません。\n記憶が曖昧な場合は、家アイコンをクリックしてホーム画面に戻り、確認してください。\n進捗は失われません。", + "同様に §0 もありますが、§1 が必要になります\n(何と書いてあるか想像してみてください。\nLean の命名規則が分かってきたかもしれません)。\n\n加算ワールドの最後のレベルがこのレベルを攻略するのに役立つかもしれません。\n記憶が曖昧な場合は、ホームアイコンをクリックしてホーム画面に戻り、確認してください。\n進捗は失われません。", "See the new \"*\" tab in your lemmas, containing §0 and §1.\nRight now these are the only facts we know about multiplication.\nLet's prove nine more.\n\nLet's start with a warm-up: no induction needed for this one,\nbecause we know §2 is a successor.": - "新しい \"*\" タブを確認してください。そこで §0 と §1 が表示されています。\n現在、これらは乗算について知っている唯一の事実です。\n9つ更多的の証明を行いましょう。\n\nまずはウォームアップから始めましょう。この場合は inducition は必要ありません。\nなぜなら §2 は後继であることが分かっているからです。", + "新しい \"*\" タブを確認してください。そこで §0 と §1 が表示されています。\n現在、これらは乗算について知っている唯一の事実です。\nあと9つの証明を行いましょう。\n\nまずはウォームアップから始めましょう。この場合は inducition は必要ありません。\nなぜなら §2 は後者であることが分かっているからです。", "See if you can take it from here. Look at the new lemmas and tactic\navailable on the right.": "見られる範囲で新しい命題とタクティクが追加されています。それらを活用してみてください。", - "Remember, §0 is *notation* for §1.": "記憶しておいてください、§0は§1の*表記*です。", + "Remember, §0 is *notation* for §1.": "覚えておいてください、§0は§1の*表記*です。", "Remember that §0 is a proof of §1. Try\n§2ing §3 either §4 or directly to the goal.": - "Remember that §0は§1の証明です。試してみてください。\n§2ing §3 は目標に直接または§4から行うことができます。", + "§0は§1の証明であることを覚えておいてください。\n§3 の §2 は目標に直接または§4から行うことができます。", "Remember that when Lean writes §0, it means §1.\nIf you are not sure where the brackets are in an expression, just hover\nyour cursor over it and look at what gets highlighted. For example,\nhover over both §2 symbols on the left hand side of the goal and\nyou'll see where the invisible brackets are.": - "Remember that when Lean writes §0, it means §1.\nもし式内の括弧の位置が不明な場合は、カーソルをその位置に-hover して表示されるハイライトを確認してください。例えば、目標の左側の両方の§2をhoverすると、見えない括弧の位置がわかります。", + "Lean において§0と表示されたとき、§1を意味することを覚えておいてください。.\nもし式内の括弧の位置が不明な場合は、カーソルをその位置にホバーして表示されるハイライトを確認してください。例えば、目標の左側の両方の§2をホバーすると、見えない括弧の位置がわかります。", "Reduce to the previous lemma with §0": "以前の補題に §0 をReduceします。", "Ready for the boss level of this world?": "このワールドのボスレベルに備えていますか?", "Proofs like §0 and §1 are very tedious to do by hand.\nIn Algorithm World we learn how to get the computer to do them for us.\n\nClick on \"Start\" to proceed.": "証明如き§0や§1は手作業で行うと非常に退屈です。\nAlgorithm Worldでは、コンピュータにその作業を任せることを学びます。\n\n\"開始\"をクリックして進みましょう。", - "Precision rewriting": "精密な書き換え\n\n##", - "Power World": "パワー・ワールド", + "Precision rewriting": "精密な書き換え", + "Power World": "冪乗ワールド", "Our next goal is \"left and right distributivity\",\nmeaning §0 and §1. Rather than\nthese slightly pompous names, the name of the proofs\nin Lean are descriptive. Let's start with\n§2, the proof of §3.\nNote that the left hand side contains a multiplication\nand then an addition.": - "次々目標は「左側と右側の分配律」です、つまり§0と§1。これらのやや冠礼的な名前とは異なり、Leanの証明の名前は説明的です。まずは§2から始めましょう、§3の証明です。注意してほしいのは、左辺に乘算が含まれていて、その後に加算があることです。", + "次の目標は「左側と右側の分配律」です、つまり§0と§1。こうしたやや大げさな名前とは異なり、Leanの証明の名前は説明的です。まずは§3の証明である、§2から始めましょう。注意してほしいのは、左辺に乗算が含まれていて、その後に加算があることです。", "Our first challenge is §0,\nand we want to prove it by induction. The zero\ncase will need §1 (which we have)\nand §2 (which we don't), so let's\nstart with this.": - "## 原文 (English)\nOur first challenge is §0,\nand we want to prove it by induction. The zero\ncase will need §1 (which we have)\nand §2 (which we don't), so let's\nstart with this.\n\n\n## 日本語翻訳\n私たちの最初の挑戦は§0です。\nこれは帰納法によって証明したいと思います。\n零の場合には§1(持っています)\nと§2(持っていない)が必要なので、まずはこれから始めましょう。", + "私たちの最初の挑戦は§0です。\nこれは帰納法によって証明したいと思います。\nゼロの場合には§1(持っています)\nと§2(持っていません)が必要なので、まずはこれから始めましょう。", "One of the best named levels in the game, a savage §0\nsub-boss appears as the music reaches a frenzy. What\nelse could there be to prove about powers after this?": "ゲームで最も適切に名付けられたレベルの一つとして知られる場面で、音楽が狂熱に達すると凶暴な§0\nサブボスが登場します。それ以降の力について何を証明できるでしょうか?", "One day this game will have a Prime Number World, with a final boss\nof proving that §0 is prime.\nTo do this, we will have to rule out things like §1\nWe will do this by proving that any factor of §2 is at most §3,\nwhich we will do using this lemma. The proof I have in mind manipulates the hypothesis\nuntil it becomes the goal, using §4, §5 and\n§6.": "One dayこのゲームには素数ワールドが存在し、最終ボスは§0が素数であることを証明することになる。\nこれを達成するためには、§1のようなものを排除する必要がある。\nこれは、§2の任意の約数が最多§3であることを証明することで行う。その証明はこの補題を使用する。私は考えている証明は、仮定を操作し、最終的に目標になるようにする。これには§4、§5、§6を使用する。", "On the set of natural numbers, addition is commutative.\nIn other words, if §0 and §1 are arbitrary natural numbers, then\n§2.": - "自然数の集合において、加算は交換律を満たします。\nつまり、任意の自然数 §0 と §1 に対して、\n§2.\n\n\n## 参考訳\n自然数の集合において、加算は交換律を満たします。\nつまり、任意の自然数 §0 と §1 に対して、\n§2.", + "自然数の集合において、加算は交換律を満たします。\nつまり、任意の自然数 §0 と §1 に対して、\n§2.", "On the set of natural numbers, addition is associative.\nIn other words, if §0 and §1 are arbitrary natural numbers, we have\n§2": "自然数の集合において、加法は結合法則を満たします。\nつまり、任意の自然数 §0 と §1 に対して、以下の関係が成り立ちます。\n§2", "Oh no! On the way to §0, a wild §1 appears. §2\nis the proof that §3 for §4 and §5 numbers.\nThis result is what's standing in the way of §6. Again\nwe have the problem that we are adding §7 to things, so we need\nto use induction to split into the cases where §8 and §9 is a successor.": - "Oh no! §0 に向かう途中で、野生の §1 が現れました。 §2 は、 §3 が §4 と §5 の数値に対して成り立つことを証明しています。この結果が §6 の道を阻んでいます。また\n私たちは §7 を何かに加算している問題に直面しており、そのためには §8 と §9 が後继者である場合に分けて帰納法を使用する必要があります。", - "Numbers": "数値\n\n\n##", + "うわあ! §0 に向かう途中で、野生の §1 が現れました。 §2 は、 §3 が §4 と §5 の数値に対して成り立つことを証明しています。この結果が §6 の道を阻んでいます。また\n私たちは §7 を何かに加算している問題に直面しており、そのためには §8 と §9 が後者である場合に分けて帰納法を使用する必要があります。", + "Numbers": "数値", "Now §0.": "現在、§0。", "Now §0 will work.": "現在、§0 が動作するようになります。", - "Now §0 will change §1 into §2.": "現在、§0は§1を§2に変換します。", - "Now §0 to cancel the §1s.": "現在、§0を用いて§1sをキャンセルします。", - "Now §0 then §1 works, but §2 is quicker.": - "現在、§0 と §1 は正常に動作しますが、§2 はより速いです。", + "Now §0 will change §1 into §2.": "§0は§1を§2に変換します。", + "Now §0 to cancel the §1s.": "§0を用いて§1を消去します。", + "Now §0 then §1 works, but §2 is quicker.": "§0 と §1 は正常に動作しますが、§2 はより速いです。", "Now §0 so you can §1.": "現在 §0 なので、§1 です。", - "Now §0 is the quickest way to\nchange §1 to §2.": - "現在、§0は§1を§2に変更する最も迅速な方法です。", + "Now §0 is the quickest way to\nchange §1 to §2.": "§0は§1を§2に変更する最も迅速な方法です。", "Now §0 is a proof that §1, and §2 has vanished. Similarly, you can destruct\n§3 into its parts with §4.": "現在、§0 は §1 の証明です。また、§2 は消えました。同様に、§4 を使用して §3 をその部分に分解できます。", - "Now §0 finishes the job.": "現在、§0 が仕事の完了を告げる。", + "Now §0 finishes the job.": "§0 で完了させましょう。", "Now §0 and you can probably take it from here.": "現在、§0 です。ここから大丈夫でしょう。", "Now §0 and deal with the two\ncases separately.": "現在、§0 で、二つの場合を別々に処理します。", "Now you need to figure out which number to §0. See if you can take it from here.": "今度は §0 の部分に何を入力するか考えなさい。ここから進められるようなら自分で進めてみてください。", "Now you have two goals. Once you proved the first, you will jump to the second one.\nThis first goal is the base case §0.\n\nRecall that you can rewrite the proof of any lemma which is visible\nin your inventory, or of any assumption displayed above the goal,\nas long as it is of the form §1.": - "現在、2つの目標があります。最初の目標を証明すると、次の目標に移ります。\nこの最初の目標は基本ケース §0 です。\n\nあなたのインベントリで表示されている任意の補題の証明、または目標の上に表示されている任意の仮定の証明を再書き換えることができます。ただし、その形式は §1 である必要があります。", + "現在、2つの目標があります。最初の目標を証明すると、次の目標に移ります。\nこの最初の目標は基本ケース §0 です。\n\nあなたのインベントリで表示されている任意の補題の証明、または目標の上に表示されている任意の仮定の証明を再書き換えすることができます。ただし、その形式は §1 である必要があります。", "Now you could finish with §0 then §1, but §2\ndoes it in one line.": - "現在、§0 から §1 までで終了できますが、§2 では一行で完了します。", - "Now you can §0.": "現在、§0 です。", - "Now you can §0": - "現在、§0\n\n\n## 原文 (English)\nNow you can use the tactic `§1` to prove `§2` by applying it to `§3`.\n\n### 日本語翻訳\n現在、`§1` タクティクを用いて`§2`を`§3`に適用して証明することができます。", + "§0 から §1 までで終了できますが、§2 では一行で完了します。", + "Now you can §0.": "§0 が出来ます。", + "Now you can §0": "§0ができます。", "Now we can prove the §0 statement by proving the statement on the right,\nso use the §1 tactic.": "現在、§0の命題を証明するために、右側の命題を証明することができるため、§1のタクティクを使用します。", "Now use §0 to switch §1 and §2 on the left\nhand side.": @@ -379,29 +372,27 @@ "現在の目標は、§0 から純粋な論理で導き出せますので、§1 のタクティクを使用します。", "Now take apart the existence statement with §0.": "現在、存在文 §0 を分解します。", "Now rewrite §0 backwards to make the goal\nequal to the hypothesis.": - "現在、§0 を逆順に書き換えることで、目標を仮定に等しくします。", + "§0 を逆順に書き換えることで、目標を仮定に等しくします。", "Now rewrite §0 backwards at §1\nto get the right hand side.": - "現在、§1 に §0 を逆順で書き換え\n右辺を得ます。", + "§1 に §0 を逆順で書き換え\n右辺を得ます。", "Now let's §0 our new theorem. Execute §1\nto change §2 to a proof of §3.": - "現在、新しい定理を証明しましょう。§0を実行して§1を変更し、§2を§3の証明にします。", + "それでは、新しい定理を証明しましょう。§0を実行して§1を変更し、§2を§3の証明にします。", "Now for the second goal. Here you have the induction hypothesis\n§0, and you need to prove that §1.": - "現在、第二の目標に移ります。ここでは、 induksiion hypothesis §0 が与えられており、 §1 を証明する必要があります。", - "Now finish using the §0 tactic.": "現在、§0 タクティクを使用して完了してください。", - "Now finish the job with §0.": - "現在の作業を完了してください。§0\n\n\n## 参考訳\n現在の作業を完了してください。§0", - "Now finish in one line.": "今、一行で完了してください。", - "Now change §0 to §1 in §2.": - "現在、§0 を §1 に変更してください。\n\n\n```html\n

現在、§0 を §1 に変更してください。

\n```", + "では、第二の目標に移ります。ここでは、 帰納法の仮定 §0 が与えられており、 §1 を証明する必要があります。", + "Now finish using the §0 tactic.": "§0 タクティクを使用して完了してください。", + "Now finish the job with §0.": "§0で現在の作業を完了してください。\n", + "Now finish in one line.": "一行で証明を完成させましょう。", + "Now change §0 to §1 in §2.": "0 を §1 に変更してください。", "Note: this lemma will be useful for the final boss!": "この補題は最終ボス戦で役立つでしょう!", "Note that §0 means §1. Put your cursor\non any §2 in the goal or assumptions to see what exactly it's eating.": "ノート:§0は§1を意味します。目標や仮定内の任意の§2にカーソルを置くと、それが何を食べているかがわかります。", "Note that you can do §0\nand then §1 to solve this level in two lines.": - "注文しますと、§0 を実行し、その後 §1 を実行することで、このレベルを二行で解くことができます。", + "§0 を実行し、その後 §1 を実行することで、このレベルを二行で解くことができることを留意してください。", "Nice! You've proved §0!\nLet's now prove Peano's other axiom, that successors can't be §1.": "Nice! あなたは§0を証明しました!\n\n今度はペアノの他の公理、すなわち後続が§1にならないことを証明しましょう。", "Nice!\n\nThe next step in the development of order theory is to develop\nthe theory of the interplay between §0 and multiplication.\nIf you've already done Multiplication World, you're now ready for\nAdvanced Multiplication World. Click on \"Home\" to access it.": "Nice!\n\n順序理論の開発の次のステップは、§0と乗算の相互作用の理論を発展させることがです。既に乗算ワールドを学習した場合、現在では高度な乗算ワールドに進むことができます。\"Home\"をクリックしてアクセスしてください。", - "Nice!": "nice!", + "Nice!": "ナイス!", "Next turn §0 into §1 with §2.": "次に、§0 を §1 に変更し、§2 を実行します。", "Natural Number Game": "自然数ゲーム", "My proof:\n§0": "私の証明:\n§0\n\n\n##", @@ -411,12 +402,12 @@ "乗算は左側で加算に対して分配律を満たします。\nつまり、すべての自然数 §0, §1, §2 に対して、以下の関係が成り立ちます。\n§3.", "Multiplication is commutative.": "乗算は交換律を満たします。", "Multiplication is associative.\nIn other words, for all natural numbers §0, §1 and §2, we have\n§3.": - "乗算は結びつきを持つ。\nつまり、すべての自然数 §0, §1, §2 に対して、\n§3.\n\n\n### 参考訳\n乗算は結びつきを持つ。\nつまり、すべての自然数 §0, §1, §2 に対して、\n§3.", + "乗算は結びつきを持ちます。\nつまり、すべての自然数 §0, §1, §2 に対して、\n§3。", "Multiplication distributes\nover addition on the left.\n\n§0 is the proof that §1.": "乗算は左側で加算に分配します。\n\n§0は§1の証明です。", "Multiplication World": "乗算ワールド", "Mathematicians sometimes debate what §0 is;\nthe answer depends, of course, on your definitions. In this\ngame, §1. See if you can prove it.\n\nCheck out the *Pow* tab in your list of theorems\nto see the new proofs which are available.": - "数学家中で、§0 は何であるかについて時々議論があります;\nその答えは、もちろん、定義によって異なります。このゲームでは、§1 です。証明できるか試してみてください。\n\n証明一覧のタブから *Pow* をチェックして、利用可能な新しい証明を確認してください。", + "数学者の間で、§0 は何であるかについて時々議論があります;\nその答えは、もちろん、定義によって異なります。このゲームでは、§1 です。証明できるか試してみてください。\n\n証明一覧のタブから *Pow* (訳注: `^`) をチェックして、利用可能な新しい証明を確認してください。", "Mathematicians sometimes argue that §0 is also\na good convention. But it is not a good convention in this\ngame; all the later levels come out beautifully with the\nconvention that §1.": "数学的には、§0 も良い慣習であると主張する学者もいます。しかし、このゲームではその慣習は適切ではありません;§1 の慣習を採用すると、後のすべてのレベルが美しく解決されます。", "Many people find §0 easy, but some find §1 confusing.\nIf you find it confusing, then just argue forwards.\n\nYou can read more about the §2 tactic in its documentation, which you can view by\nclicking on the tactic in the list on the right.": @@ -424,17 +415,17 @@ "Let's warm up with an easy one, which works even if §0.": "## 簡単な例題(§0 に関わらず動作します)\n\n```lean\nexample : Prop := true\n```\n\n```lean\n-- 例題: 命題です\nexample : Prop := true\n```\n\n```lean\n-- 仮定\nvariable (p : Prop)\n\n-- 証明\nexample : p → p := assume hp : p, hp\n```\n\n```lean\n-- タクティクを使用した証明\nexample : p → p := by\n intro hp\n exact hp\n```", "Let's see if you can use the tactics we've learnt to prove §0.\nTry this one by yourself; if you need help then click on \"Show more help!\".": - "Let's see if you can use the tactics we've learnt to prove §0.\nTry this one by yourself; if you need help then click on \"Show more help!\".\n\n## 翻訳\nタクティクを用いて§0を証明できるかどうか試してみてください。\n自分で試してみてください;手助けが必要であれば「詳細な手助けを表示!」をクリックしてください。", + "タクティクを用いて§0を証明できるかどうか試してみてください。\n自分で試してみてください;手助けが必要であれば「より多くのヘルプを表示!」をクリックしてください。", "Let's now move on to a more efficient approach to questions\ninvolving numerals, such as §0.": "## 数値に関連する質問に対するより効率的なアプローチ\n\n### 参考訳\n数値に関連する質問、例えば§0 に対するより効率的なアプローチについて見ていきましょう。", "Let's now make our own tactic to do this.": "Let's now make our own tactic to do this.\n\n\n## 日本語翻訳\n自分独自のタクティクを作成しましょう。", "Let's now learn about Peano's second axiom for addition, §0.": - "## ペアノの加法に関する第2の公理について、§0 を学んでみましょう。", + "ペアノの加法に関する第2の公理について、§0 を学んでみましょう。", "Let's now begin our approach to the final boss,\nby proving some more subtle facts about powers.": "## 最終ボスへのアプローチ\npowersに関するより細かい事実を証明することで始めましょう。", "Let's first get §0 into the form §1 so we can\napply §2. First execute §3\nto change the 4 on the right hand side.": - "Let's first get §0 into the form §1 so we can\napply §2. First execute §3\nto change the 4 on the right hand side.\n\n\n## 翻訳\n§0 を §1 の形式に変更してから、§2 を適用することができます。まず、§3 を実行して右辺の 4 を変更します。", + "§0 を §1 の形式に変更してから、§2 を適用することができます。\nまず、§3 を実行して右辺の 4 を変更します。", "Lean's simplifier, §0, is \"§1 on steroids\". It will rewrite every lemma\ntagged with §2 and every lemma fed to it by the user, as much as it can.\n\nThis level is not a level which you want to solve by hand.\nGet the simplifier to solve it for you.": "Leanの簡約化器、§0は「§1を強化版」です。これは、§2でタグ付けされたすべての lemme およびユーザーによって与えられたすべての lemme をできる限り簡約化します。\n\nこのレベルは手作業で解くべきレベルではありません。\n簡約化器に任せて解いてください。", "It's all over! You have proved a theorem which has tripped up\nschoolkids for generations (some of them think §0:\nthis is \"the freshman's dream\").\n\nHow many rewrites did you use? I can do it in 12.\n\nBut wait! This boss is stirring...and mutating into a second more powerful form!": @@ -444,9 +435,9 @@ "Induction on §0 or §1 -- it's all the same in this one.": "帰納法を用いて §0 または §1 に適用する -- どちらも同じことです。", "Induction on §0 is the most troublesome, then §1,\nand §2 is the easiest.": - "帰納法は§0が最も難しい然後に§1で、§2は最も簡単です。", + "帰納法は§0が最も難しく、次いで§1で、§2は最も簡単です。", "In this world we'll learn how to prove theorems of the form §0.\nIn other words, how to prove theorems of the form \"if §1 is true, then §2 is true.\"\nTo do that we need to learn some more tactics.\n\nThe §3 tactic can be used to close a goal which is exactly one of\nthe hypotheses. It takes the name of the hypothesis as argument: §4.": - "### 原文 (English)\nIn this world we'll learn how to prove theorems of the form §0.\nIn other words, how to prove theorems of the form \"if §1 is true, then §2 is true.\"\nTo do that we need to learn some more tactics.\n\nThe §3 tactic can be used to close a goal which is exactly one of\nthe hypotheses. It takes the name of the hypothesis as argument: §4.\n\n\n### 翻訳 (Japanese)\nこのワールドでは、形式 §0 の定理を証明する方法を学びます。\nつまり、「§1 が真なら、§2 が真である」という形式の定理を証明する方法です。\nそのためには、いくつかのタクティクを学ぶ必要があります。\n\n§3 のタクティクは、仮定のうち厳密に一つの目標を閉じるために使用できます。このタクティクには仮定の名前が引数として与えられます:§4。", + "このワールドでは、形式 §0 の定理を証明する方法を学びます。\nつまり、「§1 が真なら、§2 が真である」という形式の定理を証明する方法です。\nそのためには、いくつかのタクティクを学ぶ必要があります。\n\n§3 のタクティクは、仮定のうち厳密に一つの目標を閉じるために使用できます。このタクティクには仮定の名前が引数として与えられます:§4。", "In this world we define §0 and prove standard facts\nabout it, such as \"if §1 and §2 then §3.\"\n\nThe definition of §4 is \"there exists a number §5\nsuch that §6. \" So we're going to have to learn\na tactic to prove \"exists\" theorems, and another one\nto use \"exists\" hypotheses.\n\nClick on \"Start\" to proceed.": "### 原文 (English)\nIn this world we define §0 and prove standard facts\nabout it, such as \"if §1 and §2 then §3.\"\n\nThe definition of §4 is \"there exists a number §5\nsuch that §6. \" So we're going to have to learn\na tactic to prove \"exists\" theorems, and another one\nto use \"exists\" hypotheses.\n\nClick on \"Start\" to proceed.\n\n\n### 翻訳 (Japanese)\nこのワールドで §0 を定義し、その標準的な事実を証明します。例えば、「§1 と §2 が成り立つなら §3 が成り立つ」などです。\n\n§4 の定義は「ある数 §5 が存在して、§6 が成り立つ」です。そのため、「存在」に関する定理を証明するタクティクと、「存在」に関する仮定を使うタクティクを学ぶ必要があります。\n\n\"開始\" をクリックして進みましょう。", "In this world I will mostly leave you on your own.\n\n§0 is the theorem that §1.": @@ -454,19 +445,19 @@ "In this level, we see inequalities as *hypotheses*. We have not seen this before.\nThe §0 tactic can be used to take §1 apart.": "このレベルでは、不等式が仮定(*hypothesis*)として扱われます。これまでに見られなかった手法です。\n§0 タクティクは、§1 を分解するのに使用できます。", "In this level, the hypothesis §0 is an *implication*. It says\nthat *if* §1 *then* §2. We can use this\nhypothesis with the §3 tactic. Remember you can click on\n§4 or any other tactic on the right to see a detailed explanation\nof what it does, with examples.": - "このレベルでは、仮定§0は「 implication( implication)」です。これは「§1 ならば §2」という意味です。この仮定は§3 tacticを使用して利用できます。右側の任意のtactic(例:§4)をクリックすることで、その詳細な説明と例を見ることができます。", + "このレベルでは、仮定§0は *含意* です。これは「§1 ならば §2」という意味です。この仮定は§3 タクティクを使用して利用できます。右側の任意のタクティク(例:§4)をクリックすることで、その詳細な説明と例を見ることができます。", "In this level we're going to prove that §0, where §1 is a secret natural number.\n\nWait, don't we already know that? No! We know that §2, but that's §3.\nThis is §4, which is different.\n\nThe difficulty with proving §5 is that we do not have a *formula* for\n§6 in general, we can only use §7 and §8 once\nwe know whether §9 is §10 or a successor. The §11 tactic splits into these two cases.\n\nThe base case will require us to prove §12, and the inductive step\nwill ask us to show that if §13 then §14. Because\n§15 and successor are the only way to make numbers, this will cover all the cases.\n\nSee if you can do your first induction proof in Lean.\n\n(By the way, if you are still in the \"Editor mode\" from the last world, you can swap\nback to \"Typewriter mode\" by clicking the §16 button in the top right.)": - "### 原文 (English)\nIn this level we're going to prove that §0, where §1 is a secret natural number.\n\nWait, don't we already know that? No! We know that §2, but that's §3.\nThis is §4, which is different.\n\nThe difficulty with proving §5 is that we do not have a *formula* for\n§6 in general, we can only use §7 and §8 once\nwe know whether §9 is §10 or a successor. The §11 tactic splits into these two cases.\n\nThe base case will require us to prove §12, and the inductive step\nwill ask us to show that if §13 then §14. Because\n§15 and successor are the only way to make numbers, this will cover all the cases.\n\nSee if you can do your first induction proof in Lean.\n\n(By the way, if you are still in the \"Editor mode\" from the last world, you can swap\nback to \"Typewriter mode\" by clicking the §16 button in the top right.)\n\n### 翻訳 (Japanese)\nこのレベルでは、§1 という秘密の自然数について §0 を証明します。\n\n待って、それでは既に知っていることではないですか?いいえ!§2 は分かっていますが、それが §3 です。\nこれは §4 で、異なるものです。\n\n§5 を証明する難しさは、一般の §6 に対する *公式* が存在しないことです。§7 と §8 は §9 が §10 か後続数であることを知ったときにのみ使用できます。§11 のタクティクはこれらの2つの場合に分岐します。\n\n基本的な場合では §12 を証明する必要がありますし、帰納的なステップでは §13 が真なら §14 を示す必要があります。§15 と後続数が数を作る唯一の方法であるため、これで全てのケースをカバーします。\n\nLeanで初めての帰納法証明を試みることができますか?\n\n(ちなみに、最後のワールドで「エディタモード」にいた場合、右上にある §16 ボタンをクリックして「タイプライターモード」に戻ることができます。)", + "このレベルでは、§1 という秘密の自然数について §0 を証明します。\n\n待って、それでは既に知っていることではないですか?いいえ!§2 は分かっていますが、それが §3 です。\nこれは §4 で、異なるものです。\n\n§5 を証明する難しさは、一般の §6 に対する *公式* が存在しないことです。§7 と §8 は §9 が §10 か後続数であることを知ったときにのみ使用できます。§11 のタクティクはこれらの2つの場合に分岐します。\n\n基本的な場合では §12 を証明する必要がありますし、帰納的なステップでは §13 が真なら §14 を示す必要があります。§15 と後続数が数を作る唯一の方法であるため、これで全てのケースをカバーします。\n\nLeanで初めての帰納法証明を試みることができますか?\n\n(ちなみに、最後のワールドで「エディタモード」にいた場合、右上にある §16 ボタンをクリックして「タイプライターモード」に戻ることができます。)", "In this level we prove that if §0 and §1 then §2. It is tricky, for\nseveral reasons. One of these is that\nwe need to introduce a new idea: we will need to understand the concept of\nmathematical induction a little better.\n\nStarting with §3 is too naive, because in the inductive step\nthe hypothesis is §4 but what we know is §5,\nso the induction hypothesis does not apply!\n\nAssume §6 is fixed. The actual statement we want to prove by induction on §7 is\n\"for all §8, if §9 then §10\". This *can* be proved by induction,\nbecause we now have the flexibility to change §11.": "### 原文 (English)\nIn this level we prove that if §0 and §1 then §2. It is tricky, for\nseveral reasons. One of these is that\nwe need to introduce a new idea: we will need to understand the concept of\nmathematical induction a little better.\n\nStarting with §3 is too naive, because in the inductive step\nthe hypothesis is §4 but what we know is §5,\nso the induction hypothesis does not apply!\n\nAssume §6 is fixed. The actual statement we want to prove by induction on §7 is\n\"for all §8, if §9 then §10\". This *can* be proved by induction,\nbecause we now have the flexibility to change §11.\n\n\n### 翻訳 (Japanese)\nこのレベルでは、§0 と §1 が成り立つ場合、§2 が成り立つことを証明します。これは複雑な理由で、\nいくつかの理由からです。その一つは、新しいアイデアを導入する必要があるためです:\n数学的帰納法の概念をもう少し理解する必要があります。\n\n§3 から始めることは単純すぎるため、帰納的ステップでは仮定は §4 ですが、実際に知っていることは §5 であり、\n従って帰納仮定が適用されません!\n\n§6 を固定します。実際には、§7 による帰納法で証明したい主張は\n「全ての §8 について、§9 が成り立つ場合、§10 が成り立つ」です。これは *可能* に帰納法で証明できます。\nなぜなら、今では §11 を変更できる柔軟性があるからです。", "In this level the *goal* is §0 but to help us we\nhave an *assumption* §1 saying that §2. Check that you can see §3 in\nyour list of assumptions. Lean thinks of §4 as being a secret proof of the\nassumption, rather like §5 is a secret number.\n\nBefore we can use §6, we have to \"substitute in for §7\".\nWe do this in Lean by *rewriting* the goal with §8,\nusing the §9 tactic.": - "### 原文 (English)\nIn this level the *goal* is §0 but to help us we\nhave an *assumption* §1 saying that §2. Check that you can see §3 in\nyour list of assumptions. Lean thinks of §4 as being a secret proof of the\nassumption, rather like §5 is a secret number.\n\nBefore we can use §6, we have to \"substitute in for §7\".\nWe do this in Lean by *rewriting* the goal with §8,\nusing the §9 tactic.\n\n\n### 日本語翻訳\nこのレベルでは、目標は§0ですが、それを手助けするために、§1という仮定があります。§2がその内容です。§3が仮定リストに表示されていることを確認してください。Leanは§4を仮定の秘密の証明と見なし、§5は秘密の数値に似ています。\n\n§6を使用する前に、「§7に置き換える」必要があります。Leanでは、§8を使用して目標を書き換え、§9タクティクを使用してこれを実行します。", + "このレベルでは、目標は§0ですが、それを手助けするために、§1という*仮定*があります。§2がその内容です。§3が仮定リストに表示されていることを確認してください。Leanは§4を仮定の秘密の証明と見なし、§5は秘密の数値に似ています。\n\n§6を使用する前に、「§7に置き換える」必要があります。Leanでは、§8を使用して目標を書き換え、§9タクティクを使用してこれを実行します。", "In this game you recreate the natural numbers §0 from the Peano axioms,\nlearning the basics about theorem proving in Lean.\n\nThis is a good first introduction to Lean!": "このゲームでは、ペanoの公理から自然数§0を再構築し、Leanでの定理証明の基本を学びます。\n\nこれはLeanへの良い初歩的な入門となります!", "In the next level, we'll do the same proof but backwards.": "次のレベルでは、証明を逆方向に進める同じ手続きを行います。", "In the last level, we manipulated the hypothesis §0\n until it became the goal §1. In this level we'll manipulate\n the goal until it becomes our hypothesis! In other words, we\n will \"argue backwards\". The §2 tactic can do this too.\n Again I will walk you through this one (assuming you're in\n command line mode).": - "最後のレベルでは、仮定§0を操作して目標§1にしました。このレベルでは、目標を操作して仮定にします!つまり、「逆向きに議論」することです。§2 タクティクもこれを行うことができます。また、コマンドラインモードで操作していると仮定して、この例を一緒に見ていきましょう。", + "先程のレベルでは、仮定§0を操作して目標§1にしました。このレベルでは、目標を操作して仮定にします!つまり、「逆向きに議論」することです。§2 タクティクもこれを行うことができます。また、コマンドラインモードで操作していると仮定して、この例を一緒に見ていきましょう。", "In the \"base case\" we have a hypothesis §0, and you can deduce anything\nfrom a false statement. The §1 tactic will close this goal.": "### 基本的なケースでは、仮定§0が存在します。偽の文から何でも導くことができます。タクティク§1はこの目標を閉じます。", "In some later worlds, we're going to see some much nastier levels,\nlike §0.\nBrackets need to be moved around, and variables need to be swapped.\n\nIn this level, §1,\nlet's forget about the brackets and just think about\nthe variable order.\nTo turn §2 into §3 we need to swap §4 and §5,\nand then swap §6 and §7. But this is easier than you\nthink with §8.": @@ -475,18 +466,18 @@ "タクティク §0 を使用するには、目標の下のテキストボックスに入力し、「実行」をクリックしてください。", "In Advanced Addition World we will prove some basic\naddition facts such as §0. The theorems\nproved in this world will be used to build\na theory of inequalities in §1 World.\n\nClick on \"Start\" to proceed.": "### Advanced Addition World では、基本的な加法に関するいくつかの事実(§0)を証明します。このワールドで証明された定理は、§1 世界で不等式の理論を構築するために使用されます。\n\n「開始」をクリックして進みましょう。", - "Implication World": "推論ワールド", + "Implication World": "含意ワールド", "Implementing the algorithm for equality of naturals, and the proof that it is correct,\nlooks like this:\n\n§0\n\nThis Lean code is a formally verified algorithm for deciding equality\nbetween two naturals. I've typed it in already, behind the scenes.\nBecause the algorithm is formally verified to be correct, we can\nuse it in Lean proofs. You can run the algorithm with the §1 tactic.": "自然数の等価性アルゴリズムの実装とその正確性の証明は、以下のようになります:\n\n§0\n\nこのLeanコードは、二つの自然数間の等価性を決定する形式的に検証されたアルゴリズムです。私たちは既にこのコードをバックヤードで入力しています。アルゴリズムが形式的に正確性を保証されているため、Leanの証明内で使用できます。§1タクティクでアルゴリズムを実行できます。", "If §0, §1 and §2 are numbers, we have\n§3": "もし§0, §1, §2 が数値である場合、以下のようになります。\n§3", "If §0, then §1.": "もし§0であるなら、§1です。", - "If §0 then §1.": "もし§0 then §1。", + "If §0 then §1.": "§0 ならば §1。", "If §0 then §1 or §2 or §3.": "もし§0 then §1または§2または§3。", "If §0 then either §1 or §2.": "もし§0であるなら、§1または§2のいずれかである。", "If §0 or §1, then §2 or §3.": "もし§0 または §1 ならば, §2 または §3 です。", "If §0 is a proof of §1 then §2 will\nturn §3s into §4s. But what if we want to\nturn §5s into §6s? To tell the §7 tactic\nwe want this, we use a left arrow §8. Type\n§9 and then hit the space bar to get this arrow.\n\nLet's prove that §10 is the number after the number\nafter §11 again, this time by changing §12\ninto §13.": - "もし§0が§1の証明であるなら、§2は§3を§4に変換します。しかし、§5を§6に変換したい場合怎么办?§7タクティクに私たちがこの変換を指示するには、左矢印§8を使用します。型§9を入力し、スペースバーを押すとこの矢印が得られます。\n\n次の証明で、§10が§11の後ろの数値の後ろの数値であることを証明しましょう。今回は§12を§13に変換して証明します。", + "もし§0が§1の証明であるなら、§2は§3を§4に変換します。しかし、§5を§6に変換したい場合は?§7タクティクに私たちがこの変換を指示するには、左矢印§8を使用します。型§9を入力し、スペースバーを押すとこの矢印が得られます。\n\n次の証明で、§10が§11の後ろの数値の後ろの数値であることを証明しましょう。今回は§12を§13に変換して証明します。", "If §0 is a number, then §1.": "もし§0が数値である場合、§1。", "If §0 are numbers, then §1.": "もし§0が数値である場合、§1。", "If §0 are arbitrary natural numbers, we have\n§1.": @@ -495,7 +486,7 @@ "If §0 and §1 then we can deduce a contradiction.": "もし§0 と §1 ならば、矛盾を導き出すことができます。", "If §0 and §1 are numbers, then §2 is a proof\nthat §3 implies §4. Click on this theorem in the *Peano*\ntab for more information.\n\nPeano had this theorem as an axiom, but in Algorithm World\nwe will show how to prove it in Lean. Right now let's just assume it,\nand let's prove §5 using it. Again, we will proceed\nby manipulating our hypothesis until it becomes the goal. I will\nwalk you through this level.": - "もし§0と§1が数値である場合、§2は§3が§4を導く証明です。*Peano*タブでこの定理について詳しく知ることができます。\n\nPeanoはこの定理を公理としていましたが、Algorithm WorldではLeanを使ってこの定理を証明する方法を示すことにします。現在はこの定理を仮定し、§5を用いて証明しましょう。また、証明は仮定を操作して目標に近づけることで進めていきます。このレベルを一緒に進めていきましょう。", + "もし§0と§1が数値である場合、§2は§3が§4を導く証明です。*Peano*タブでこの定理について詳しく知ることができます。\n\nPeanoはこの定理を公理としていましたが、アルゴリズムワールドではLeanを使ってこの定理を証明する方法を示すことにします。現在はこの定理を仮定し、§5を用いて証明しましょう。また、証明は仮定を操作して目標に近づけることで進めていきます。このレベルを一緒に進めていきましょう。", "If §0 and §1 are numbers, then either §2 or §3.": "もし§0と§1が数値である場合、§2または§3が成り立つ。", "If §0 and §1 are natural numbers, and §2, then §3.": @@ -513,7 +504,7 @@ "If the goal is not *exactly* a hypothesis, we can sometimes\nuse rewrites to fix things up.": "もし目標が*正確に*仮定でない場合、時としてリライトを使用して修正することができます。", "How should we define §0? Just like addition, we need to give definitions\nwhen §1 and when §2 is a successor.\n\nThe zero case is easy: we define §3 to be §4. Now say we know\n§5. What should §6 be? Well, that's §7 §8s,\nso it should be §9.\n\nHere are the definitions in Lean.\n\n * §10\n * §11\n\nIn this world, we must not only prove facts about multiplication like §12,\nwe must also prove facts about how multiplication interacts with addition, like §13.\nLet's get started.": - "### 原文 (English)\nHow should we define §0? Just like addition, we need to give definitions\nwhen §1 and when §2 is a successor.\n\nThe zero case is easy: we define §3 to be §4. Now say we know\n§5. What should §6 be? Well, that's §7 §8s,\nso it should be §9.\n\nHere are the definitions in Lean.\n\n * §10\n * §11\n\nIn this world, we must not only prove facts about multiplication like §12,\nwe must also prove facts about how multiplication interacts with addition, like §13.\nLet's get started.\n\n\n### 翻訳 (Japanese)\nどのように §0 を定義すべきでしょうか?加法と同様に、§1 が successor であるときと §2 が successor であるときそれぞれに定義を提供する必要があります。\n\n零の場合は簡単です:§3 を §4 で定義します。次に §5 を仮定します。那么 §6 应该是什么呢?嗯,那是 §7 §8s,\n所以应该定义为 §9。\n\nLean での定義は以下の通りです。\n\n * §10\n * §11\n\nこのワールドでは、乗法に関する事実だけでなく、乗法と加法の相互作用に関する事実も証明する必要があります。例えば §12 など。そして §13 なども証明する必要があります。\n始めましょう。", + "どのように §0 を定義すべきでしょうか?加法と同様に、§1 であるときと §2 が successor であるときそれぞれに定義を提供する必要があります。\n\nゼロの場合は簡単です:§3 を §4 で定義します。次に §5 を仮定します。§6 のときはどうでしょうか?そうですね、§7 §8 になるので、\n§9になるべきでしょう。。\n\nLean での定義は以下の通りです。\n\n * §10\n * §11\n\nこのワールドでは、乗法に関する事実だけでなく、乗法と加法の相互作用に関する事実も証明する必要があります。例えば §12 など。そして §13 なども証明する必要があります。\n始めましょう。", "How about this for a proof:\n§0": "以下は証明です:\n§0", "How about this for a proof:\n\n§0\n\nThat's the end of Advanced Addition World! You'll need these theorems\nfor the next world, §1 World. Click on \"Home\" to access it.": "以下の訳文です:\n\n### 日本語\n証明としては、以下のようなものはどうでしょうか:\n\n§0\n\nこの「進階加算ワールド」は終了しました。次の「§1ワールド」では、これらの定理が必要になるでしょう。\"ホーム\"をクリックしてアクセスしてください。\n\n\n##", @@ -522,56 +513,53 @@ "Here's the short proof:\n§0\nThis works because, given §1,\nthe argument is reduced to pure logic.": "以下は短い証明です:\n§0\nこれは、与えられた §1 から\n議論が純粋な論理に簡約されるためです。", "Here's my solution:\n§0\n\nInducting on §1 or §2 also works, but might take longer.": - "以下は私の解決策です:\n§0\n\n§1 や §2 について帰納法を用いても構いませんが、時間がかかるかもしれません。\n\n\n##", - "Here's my solution:\n§0": "以下是我的解決方法:\n§0\n\n\n##", + "私の解法:\n§0\n\n§1 や §2 について帰納法を用いても構いませんが、時間がかかるかもしれません。", + "Here's my solution:\n§0": "私の解法:\n§0", "Here's my proof:\n§0\n\nIf you solved this level then you should be fine with the next level!": - "以下は私の証明です:\n§0\n\nこのレベルを解いたなら、次のレベルでも大丈夫です!", + "私の証明:\n§0\n\nこのレベルを解いたなら、次のレベルでも大丈夫です!", "Here's my proof:\n§0\n\nEven though Lean is a theorem prover, right now it's pretty clear that we have not\ndeveloped enough material to make it an adequate calculator. In Algorithm\nWorld, a more computer-sciency world, we will develop machinery which makes\nquestions like this much easier, and goals like §1 feasible.\nAlternatively you can do more mathematics in Advanced Addition World, where we prove\nthe lemmas needed to get a working theory of inequalities. Click \"Home\" and\ndecide your route.": - "以下は私の証明です:\n§0\n\nLeanは定理証明システムですが、現在では十分な量の理論が開発されておらず、適切な計算機としての機能を発揮するまでには至っていません。アルゴリズムワールドでは、よりコンピュータサイエンス寄りのワールドで、このような問題を扱うための機械を開発し、§1のような目標を達成することが可能になります。あるいは、不等式の理論を実現するための補題を証明する高度な加算ワールドでより多くの数学を学ぶこともできます。\"ホーム\"をクリックし、あなたのルートを選択してください。", + "私の証明:\n§0\n\nLeanは定理証明システムですが、現在では十分な量の理論が開発されておらず、適切な計算機としての機能を発揮するまでには至っていません。アルゴリズムワールドでは、よりコンピュータサイエンス寄りのワールドで、このような問題を扱うための機械を開発し、§1のような目標を達成することが可能になります。あるいは、不等式の理論を実現するための補題を証明する高度な加算ワールドでより多くの数学を学ぶこともできます。\"ホーム\"をクリックし、あなたのルートを選択してください。", "Here's my proof:\n§0\n\nA passing mathematician remarks that with antisymmetry as well,\nyou have proved that §1 is a *partial order* on §2.\n\nThe boss level of this world is to prove\nthat §3 is a total order. Let's learn two more easy tactics\nfirst.": - "以下は私の証明です:\n§0\n\n数学的な通りすがりの人々が言います。反対称性も考慮すると、\nあなたは§1が§2上の*部分順序*であることを証明しました。\n\nこのワールドのボスレベルは、§3が完全順序であることを証明することです。\nまずは2つの簡単なタクティクを学んでからしましょう。", - "Here's my proof:\n§0": "以下は私の証明です:\n§0\n\n\n## 日本語翻訳\n", + "私の証明:\n§0\n\n数学的な通りすがりの人々が言います。反対称性も考慮すると、\nあなたは§1が§2上の*部分順序*であることを証明しました。\n\nこのワールドのボスレベルは、§3が完全順序であることを証明することです。\nまずは2つの簡単なタクティクを学んでからしましょう。", + "Here's my proof:\n§0": "私の証明:\n§0", "Here's a two-liner:\n§0\n\nThis works because §1 is a proof of §2.": "以下は二行分です:\n§0\n\nこれは §1 が §2 の証明であるため Works します。", - "Here's a two-line proof:\n§0": - "以下は二行の証明です:\n§0\n\n\n## 日本語翻訳\n```html\n

以下は二行の証明です:

\n<§0>\n```", + "Here's a two-line proof:\n§0": "以下は二行の証明です:\n§0\n", "Here's a proof using §0:\n§1\n\nand here's an even shorter one using the same idea:\n§2\n\nAlternatively you can just prove it by induction on §3:\n\n§4": "以下は§0を使用した証明です:\n§1\n\nそして、同じアイデアを使用したさらに短い証明は以下の通りです:\n§2\n\nあるいは、§3 について帰納法で証明することができます:\n§4", - "Here's a completely backwards proof:\n§0": - "以下は完全に逆順の証明です:\n§0\n\n\n## 日本語翻訳\n", + "Here's a completely backwards proof:\n§0": "以下は完全に逆順の証明です:\n§0", "Here we want to deal with the cases §0 and §1 separately,\nso start with §2.": "ここでは§0と§1のケースを別々に扱いたいので、まずは§2から始めます。", "Here we begin to\ndevelop an algorithm which, given two naturals §0 and §1, returns the answer\nto \"does §2?\"\n\nHere is the algorithm. First note that §3 and §4 are numbers, and hence\nare either §5 or successors.\n\n*) If §6 and §7 are both §8, return \"yes\".\n\n*) If one is §9 and the other is §10, return \"no\".\n\n*) If §11 and §12, then return the answer to \"does §13?\"\n\nOur job now is to *prove* that this algorithm always gives the correct answer. The proof that\n§14 is §15. The proof that §16 is §17, and the proof\nthat §18 is §19. The proof that if §20 then\n§21 is §22 and then §23. This level is a proof of the one\nremaining job we have to do: if §24 then §25.": "### 原文 (English)\nHere we begin to\ndevelop an algorithm which, given two naturals §0 and §1, returns the answer\nto \"does §2?\"\n\nHere is the algorithm. First note that §3 and §4 are numbers, and hence\nare either §5 or successors.\n\n*) If §6 and §7 are both §8, return \"yes\".\n\n*) If one is §9 and the other is §10, return \"no\".\n\n*) If §11 and §12, then return the answer to \"does §13?\"\n\nOur job now is to *prove* that this algorithm always gives the correct answer. The proof that\n§14 is §15. The proof that §16 is §17, and the proof\nthat §18 is §19. The proof that if §20 then\n§21 is §22 and then §23. This level is a proof of the one\nremaining job we have to do: if §24 then §25.\n\n\n### 翻訳 (Japanese)\nここでは、与えられた二つの自然数 §0 と §1 に対して、\"§2?\" という質問の答えを返すアルゴリズムを開発します。\n\nこのアルゴリズムは以下のようになっています。まず、§3 と §4 は数であり、したがって §5 または §5 の後継者です。\n\n1. §6 と §7 が両方とも §8 の場合、\"yes\" を返す。\n2. 一方が §9 で他方が §10 の場合、\"no\" を返す。\n3. §11 と §12 の場合、\"§13?\" という質問の答えを返す。\n\n現在の仕事は、このアルゴリズムが常に正しい答えを返すことを証明することです。§14 が §15 であることを証明します。§16 が §17 であることを証明します。§18 が §19 であることを証明します。§20 が真である場合、§21 が §22 であり、さらに §23 であることを証明します。このレベルでは、残る一つの仕事であることを証明します:§24 が真である場合、§25 であることを。", "Here is an example proof of 2+2=4 showing off various techniques.\n\n§0\n\nOptional extra: you can run this proof yourself. Switch the game into \"Editor mode\" by clicking\non the §1 button in the top right. You can now see your proof\nwritten as several lines of code. Move your cursor between lines to see\nthe goal state at any point. Now cut and paste your code elsewhere if you\nwant to save it, and paste the above proof in instead. Move your cursor\naround to investigate. When you've finished, click the §2 button in the top right to\nmove back into \"Typewriter mode\".\n\nYou have finished tutorial world!\nClick \"Home\" to go back to the\noverworld, and select Addition World, where you will learn\nabout the §3 tactic.": - "以下は2+2=4を示す証明の例で、様々な手法を披露しています。\n\n§0\n\nオプション:自分でこの証明を実行することもできます。右上の§1ボタンをクリックしてゲームを「エディタモード」に切り替えることができます。現在の証明は、複数行のコードとして表示されます。行の間でカーソルを動かすことで、任意のポイントでの目標状態を確認できます。証明を保存したい場合は、コードを他の場所に切り貼りし、上の証明を代入できます。カーソルを動かして調査してください。終了したら、右上の§2ボタンをクリックして「タイピングモード」に戻ります。\n\nチュートリアルワールドを終了しました!\n「ホーム」をクリックしてオーバワールドに戻り、加算ワールドを選択して§3タクティクについて学びます。", + "以下は2+2=4を示す証明の例で、様々な手法を披露しています。\n\n§0\n\nオプション:自分でこの証明を実行することもできます。右上の§1ボタンをクリックしてゲームを「エディタモード」に切り替えることができます。現在の証明は、複数行のコードとして表示されます。行の間でカーソルを動かすことで、任意のポイントでの目標状態を確認できます。証明を保存したい場合は、コードを他の場所に切り貼りし、上の証明を代入できます。カーソルを動かして調査してください。終了したら、右上の§2ボタンをクリックして「タイプライターモード」に戻ります。\n\nチュートリアルワールドを終了しました!\n「ホーム」をクリックしてオーバーワールドに戻り、加算ワールドを選択して§3タクティクについて学びます。", "Having to rearrange variables manually using commutativity and\nassociativity is very tedious. We start by reminding you of this. §0\nis a key component in the first algorithm which we'll explain, but we need\nto prove it manually.\n\nRemember that you can do precision commutativity rewriting\nwith things like §1. And remember that\n§2 means §3.": "### 原文 (English)\nHaving to rearrange variables manually using commutativity and\nassociativity is very tedious. We start by reminding you of this. §0\nis a key component in the first algorithm which we'll explain, but we need\nto prove it manually.\n\nRemember that you can do precision commutativity rewriting\nwith things like §1. And remember that\n§2 means §3.\n\n\n### 翻訳 (Japanese)\n手動で交換律と結合律を使って変数を再配置する必要があることは非常に面倒です。まず、これについて再確認します。§0は、最初の説明するアルゴリズムにおいて重要な成分ですが、手動で証明する必要があります。\n\n交換律に基づいた精密な再配置は、§1のようなもので行うことができます。また、§2は§3を意味します。", "Good luck!\n\n One last hint. If §0 then §1 will change *all* §2s into §3s.\n If you only want to change one of them, say the 3rd one, then use\n §4.": - "Good luck!\n\n最後のヒント。もし§0であれば、§1はすべての§2を§3に変換します。\n一方で、一つだけ変換したい場合(例えば3番目のもの)、§4を使用します。", + "幸運を!\n\n最後のヒント。もし§0であれば、§1はすべての§2を§3に変換します。\n一方で、一つだけ変換したい場合(例えば3番目のもの)、§4を使用します。", "For any natural number §0, we have §1.": "任意の自然数§0に対して、§1です。", - "For all numbers §0, §1.": "すべての数 §0, §1 について。", + "For all numbers §0, §1.": "すべての数 §0 について、 §1 。", "For all numbers §0 and §1, we have\n§2": "すべての数値 §0 と §1 に対して、\n§2\n\n\n## 参考訳\nすべての数値 §0 と §1 に対して、\n§2", - "For all naturals §0, §1.": "すべての自然数 §0, §1 について。", + "For all naturals §0, §1.": "すべての自然数 §0 について、 §1 。", "For all naturals §0, §1, §2, we have §3.": "すべての自然数 §0, §1, §2 について、§3 が成り立ちます。", "For all naturals §0 §1 §2 and §3, we have\n§4": "すべての自然数 §0, §1, §2, §3 に対して、以下の関係が成り立ちます。\n§4", "For all natural numbers §0, we have §1.": "すべての自然数 §0 に対して、§1 が成り立ちます。", - "For all natural numbers §0, we have\n§1.": - "すべての自然数 §0 に対して、\n§1.\n\n\n## 参考訳\nすべての自然数 §0 に対して、\n§1.", + "For all natural numbers §0, we have\n§1.": "すべての自然数 §0 に対して、\n§1.", "For all natural numbers §0 and §1, we have\n§2.": - "すべての自然数 §0 および §1 に対して、\n§2.\n\n\n## 参考訳\nすべての自然数 §0 および §1 に対して、\n§2.\n\n\n### 説明\n- `§0`, `§1`, `§2` はコードブロックやLaTeX数式を表すプレースホルダーであり、位置を維持しています。\n- `<##>` などのタグは使用されていません。\n- トーンはLean 4学習者向けで、丁寧かつ簡潔な表現にしています。", + "すべての自然数 §0 および §1 に対して、\n§2。", "First execute §0 to replace the §1 with §2.": "まず §0 を実行して §1 を §2 に置き換えてください。", "Finally use a targeted §0 to switch §1 and §2.": "Finally use a targeted §0 to switch §1 and §2.\n\n\n## 日本語翻訳\n最終的に、§0を使用して§1と§2を切り替えてください。", "Fermat's Last Theorem": "フェルマーの最終定理", "Every number in Lean is either §0 or a successor. We know how to add §1,\nbut we need to figure out how to add successors. Let's say we already know\nthat §2. What should the answer to §3 be? Well,\n§4 is one bigger than §5, so §6 should be §7,\nthe number one bigger than §8. More generally §9 should\nbe §10. Let's add this as a lemma.\n\n* §11\n\nIf you ever see §12 in your goal, §13 is\nnormally a good idea.\n\nLet's now prove that §14. Figure out how to get §15 into\nthe picture, and then §16. Switch between the §17 (addition) and\n§18 (numerals) tabs under \"Theorems\" on the right to\nsee which proofs you can rewrite.": - "### 原文 (English)\nEvery number in Lean is either §0 or a successor. We know how to add §1,\nbut we need to figure out how to add successors. Let's say we already know\nthat §2. What should the answer to §3 be? Well,\n§4 is one bigger than §5, so §6 should be §7,\nthe number one bigger than §8. More generally §9 should\nbe §10. Let's add this as a lemma.\n\n* §11\n\nIf you ever see §12 in your goal, §13 is\nnormally a good idea.\n\nLet's now prove that §14. Figure out how to get §15 into\nthe picture, and then §16. Switch between the §17 (addition) and\n§18 (numerals) tabs under \"Theorems\" on the right to\nsee which proofs you can rewrite.\n\n\n### 翻訳 (Japanese)\nLeanの数は、§0 または後続数のいずれかです。§1を加算する方法は分かっていますが、後続数を加算する方法はまだ分かりません。例えば、§2が分かっているとします。那么,§3の答えは何になるべきでしょうか? §4は §5よりも1大きいので、§6は §7、つまり §8よりも1大きい数になるべきです。より一般的には、§9は §10になります。この事実を補題として追加しましょう。\n\n* §11\n\nもし目標に §12が見つかったら、通常 §13は良いアイデアです。\n\n次に、§14を証明しましょう。§15を図に取り入れる方法を考え、その後 §16を証明します。\"Theorems\" の右側にある \"追加\" と \"数\" のタブを切り替えて、どの証明を書き換えることができるか確認します。", + "Leanの数は、§0 または後続数のいずれかです。§1を加算する方法は分かっていますが、後続数を加算する方法はまだ分かりません。例えば、§2が分かっているとします。では、§3の答えは何になるべきでしょうか? §4は §5よりも1大きいので、§6は §7、つまり §8よりも1大きい数になるべきです。より一般的には、§9は §10になります。この事実を補題として追加しましょう。\n\n* §11\n\nもし目標に §12が見つかったら、通常 §13は良いアイデアです。\n\n次に、§14を証明しましょう。§15を図に取り入れる方法を考え、その後 §16を証明します。\"Theorems\" の右側にある `+` (加算) と `012` (数字) のタブを切り替えて、どの証明を書き換えることができるか確認します。", "Do that again!\n\n§0 tries to fill in\nthe arguments to §1 (finding §2) then it replaces all occurrences of\n§3 it finds. Therefor, it did not rewrite §4, yet.": - "再度やってみましょう!\n\n§0は§1の引数を埋めようとします(§2を見つけます)然後,它会替换找到的所有§3。因此,它还没有重写§4。", + "再度やってみましょう!\n\n§0は§1の引数を埋めようとします(§2を見つけます)。その後§3。因此,它还没有重写§4。もう一度実行してください!\n\n§0 は、§1 の引数を埋める(§2 を見つける)ことを試み、\n見つけたすべての §3 を置き換えます。そのため、\n§4 はまだ書き換えられていません。", "Did you use induction on §0?\nHere's a two-line proof of §1 which uses §2.\nIf you want to inspect it, you can go into editor mode by clicking §3 in the top right\nand then just cut and paste the proof and move your cursor around it\nto see the hypotheses and goal at any given point\n(although you'll lose your own proof this way). Click §4 to get\nback to command line mode.\n§5": "Did you use induction on §0?\nHere's a two-line proof of §1 which uses §2.\nIf you want to inspect it, you can go into editor mode by clicking §3 in the top right\nand then just cut and paste the proof and move your cursor around it\nto see the hypotheses and goal at any given point\n(although you'll lose your own proof this way). Click §4 to get\nback to command line mode.\n§5\n\n\n### 翻訳\n§0について帰納法を使ったでしょうか?\n§2を使用して§1の二行証明があります。\n証明を確認したい場合は、右上にある§3をクリックしてエディタモードに入り、\nその後証明を切り取り、貼り付け、カーソルを動かして任意のポイントでの仮定と目標を確認できます。\n(ただし、この方法で自分の証明は失われます)。§4をクリックして\nコマンドラインモードに戻りましょう。\n§5", "Dealing with §0": "### 原文 (English)\nDealing with §0\n\n## 日本語翻訳\n§0 を扱う方法", @@ -580,48 +568,48 @@ "Congratulations! You have proved Fermat's Last Theorem!\n\nEither that, or you used magic...": " Congratulations! あなたはフェルマーの最終定理を証明しました!\n\nもしくは、魔法を使用したかもしれません...\n\n\n## 日本語翻訳\n", "Congratulations! You completed your first verified proof!\n\nRemember that §0 is a *tactic*. If you ever want information about the §1 tactic,\nyou can click on §2 in the list of tactics on the right.\n\nNow click on \"Next\" to learn about the §3 tactic.": - " Congratulations! あなたは初めての検証証明を完了しました!\n\n記憶に留めておきましょう。§0は*tactic*です。§1のtacticについての情報が必要な場合は、右側のtactic一覧の§2をクリックできます。\n\n今、\"Next\"をクリックして§3のtacticについて学びましょう。", + "おめでとうございます! あなたは初めての検証証明を完了しました!\n\n記憶に留めておきましょう。§0は*タクティク*です。§1のタクティクについての情報が必要な場合は、右側のタクティク一覧の§2をクリックできます。\n\n\"次\"をクリックして§3のタクティクについて学びましょう。", "Concretely: §0.": "具体的には: §0.", "Can you take it from here? Click on \"Show more help!\" if you need a hint.": - "Can you take it from here? Click on \"Show more help!\" if you need a hint.\n\n\n## 日本語翻訳\nここから続けられますか?ヒントが必要な場合は「もっと手助けを表示!」とクリックしてください。", + "ここから続けられますか?ヒントが必要な場合は「より多くのヘルプを表示!」をクリックしてください。", "Can you take it from here? (note: if you try §0 again, it will\ntake you back to where you started!)": - "Can you continue from here? (注: §0を再度試すと、元の場所に戻ってしまいます!)", - "Can you take it from here?": "您可以继续了吗?", - "Can you now change the goal into §0?": "現在、目標を§0に変更できますか?", + "ここから続けられますか?(注: §0を再度試すと、元の場所に戻ってしまいます!)", + "Can you take it from here?": "ここから続けられますか?", + "Can you now change the goal into §0?": "目標を§0に変更できますか?", "At this point you see the term §0, so you can use the\ninduction hypothesis with §1.": - "現在、項§0が表示されているので、項§1を使用してインベントリ仮定を適用することができます。", + "現在、項§0が表示されているので、項§1を使用して帰納法の仮定を適用することができます。", "Assuming §0, we have §1.": "仮定§0を仮定すると、§1が成り立ちます。", - "Assuming §0 and §1, we have §2.": "仮定§0と§1を仮定すると、§2が得られます。", + "Assuming §0 and §1, we have §2.": "§0と§1ならば、§2。", "As warm-up for §0 let's prove §1. To do this we need to\nintroduce Peano's last axiom §2, a proof that §3.\nTo learn about this result, click on it in the list of lemmas on the right.": - "### 原文 (English)\nAs warm-up for §0 let's prove §1. To do this we need to\nintroduce Peano's last axiom §2, a proof that §3.\nTo learn about this result, click on it in the list of lemmas on the right.\n\n\n## 日本語翻訳\n§0 の前準備として、§1 を証明しましょう。これを行うために、ペアノの最後の公理 §2 を導入し、§3 の証明が必要です。この結果について学ぶには、右側の定理一覧から該当項目をクリックしてください。", - "Arguing backwards": "反論する", + "§0 の前準備として、§1 を証明しましょう。これを行うために、ペアノの最後の公理 §2、§3 の証明が必要です。この結果について学ぶには、右側の定理一覧から該当項目をクリックしてください。", + "Arguing backwards": "逆向きの議論", "Applying a proof of §0 to the *goal* changes §1 to §2.\nNow try §3 to make the goal more like the hypothesis.": - "証明 §0 を目標に適用すると、§1 は §2 に変更されます。\n次に §3 を試して、目標を仮定に近づけてみましょう。", - "And now §0": "```html\nAnd now §0\n\n```\n```html\n現在 §0\n```", + "証明 §0 を *目標* に適用すると、§1 は §2 に変更されます。\n次に §3 を試して、目標を仮定に近づけてみましょう。", + "And now §0": "§0をしましょう。", "And now we've deduced what we wanted to prove: the goal is one of our assumptions.\nFinish the level with §0.": "そして、証明したい命題を導き出しました:目標は私たちの仮定の一つです。\nレベルを終了するには、§0 を使用してください。", "And finally §0.": "最後に、§0。", "An algorithm for equality": "等価性のアルゴリズム", "Although §0 in this game, §1 if §2, i.e., if\n§3 is a successor.": - "### 原文 (English)\nAlthough §0 in this game, §1 if §2, i.e., if\n§3 is a successor.\n\n\n## 日本語翻訳\nこのゲームにおいて §0 であり、§1 は §2 である場合、すなわち §3 が後继者である場合。", + "このゲームにおいて §0 であり、§1 は §2 である場合、すなわち §3 が後者である場合。", "Algorithm World": "アルゴリズムワールド", "Advanced Multiplication World": "高度な乗算ワールド", "Advanced Addition World": "高度な追加ワールド", "Advanced *Addition* World proved various implications\ninvolving addition, such as §0 and §1.\nThese lemmas were used to prove basic facts about ≤ in ≤ World.\n\nIn Advanced Multiplication World we prove analogous\nfacts about multiplication, such as §2, and\n§3 (assuming §4 in the latter result). This will prepare\nus for Divisibility World.\n\nMultiplication World is more complex than Addition World. In the same\nway, Advanced Multiplication world is more complex than Advanced Addition\nWorld. One reason for this is that certain intermediate results are only\ntrue under the additional hypothesis that one of the variables is non-zero.\nThis causes some unexpected extra twists.": "### 原文 (English)\nAdvanced *Addition* World proved various implications\ninvolving addition, such as §0 and §1.\nThese lemmas were used to prove basic facts about ≤ in ≤ World.\n\nIn Advanced Multiplication World we prove analogous\nfacts about multiplication, such as §2, and\n§3 (assuming §4 in the latter result). This will prepare\nus for Divisibility World.\n\nMultiplication World is more complex than Addition World. In the same\nway, Advanced Multiplication world is more complex than Advanced Addition\nWorld. One reason for this is that certain intermediate results are only\ntrue under the additional hypothesis that one of the variables is non-zero.\nThis causes some unexpected extra twists.\n\n\n## 日本語翻訳\nAdvanced *加算*ワールドでは、加算に関する様々な命題(§0, §1など)が証明されました。\nこれらの補題は、≤ワールドにおける≤に関する基本的な事実の証明に使用されました。\n\nAdvanced *乗算*ワールドでは、乗算に関する類似した事実(§2など)が証明され、\n§3(後者の結果では§4を仮定)も証明されました。これにより、*除算*ワールドに備えることができます。\n\n*乗算*ワールドは、*加算*ワールドよりも複雑です。同様に、Advanced *乗算*ワールドは、Advanced *加算*ワールドよりも複雑です。これは、ある変数が非零であるという追加の仮定の下でのみ成り立つ特定の中間結果があるためです。これにより、予想外の追加の複雑さが生じます。", "Addition is distributive over multiplication.\nIn other words, for all natural numbers §0, §1 and §2, we have\n§3.": - "加法は乗法に対して分配法則を満たします。\nつまり、すべての自然数 §0, §1, §2 に対して\n§3.\n\n\n## 参考訳\n加法は乗法に対して分配法則を満たします。\nつまり、すべての自然数 §0, §1, §2 に対して\n§3.", - "Addition World": " Addition World\n\n## 日本語翻訳\nワールド::加算", - "Adding zero": "追加するゼロ\n\n\n## 参考訳\n追加するゼロ", + "加法は乗法に対して分配法則を満たします。\nつまり、すべての自然数 §0, §1, §2 に対して\n§3。", + "Addition World": "加算ワールド", + "Adding zero": "0を加える", "A two-line proof is\n\n§0\n\nWe now have all the tools necessary to set up the basic theory of divisibility of naturals.": "二行の証明は\n\n§0\n\n現在、自然数の除法の基本理論を設定するために必要なすべてのツールを備えています。", "A proof that §0.": "A proof that §0.\n\n\n## 日本語翻訳\n証明: §0.", "A passing mathematician remarks that with reflexivity and transitivity out of the way,\nyou have proved that §0 is a *preorder* on §1.": "一過性の数学者が言及し、反射律と伝搬律を除けば、§0 は §1 上の *前順序* を証明したと述べています。", "A passing mathematician notes that you've proved\nthat the natural numbers are a commutative semiring.\n\nIf you want to begin your journey to the final boss, head for Power World.": - "数学的な通り路人は、自然数が可換半環であることを証明したことを指摘しました。\n\n最終ボスへの旅を始めるなら、Power Worldへ向かってください。", + "通りすがりの数学者は、自然数が可換半環であることを証明したことを指摘しました。\n\n最終ボスへの旅を始めるなら、冪乗ワールドへ向かってください。", "A passing mathematician congratulates you on proving that naturals\nare an additive commutative monoid.\n\nLet's practice using §0 and §1 in one more level,\nbefore we leave addition world.": - "A 通りすがりの数学者は、自然数が加法的交換半群であることを証明したことに称賛の意を表します。\n\n加法的世界を去る前に、§0 と §1 の使用をもう一回練習しましょう。", + "通りすがりの数学者は、自然数が加法的交換半群であることを証明したことに称賛の意を表します。\n\n加算ワールドを去る前に、§0 と §1 の使用をもう一回練習しましょう。", "2+2=4": "2+2=4", "2 + 2 ≠ 5 is boring to prove in full, given only the tools we have currently.\nTo make it a bit less painful, I have unfolded all of the numerals for you.\nSee if you can use §0 and §1 to prove this.": "2 + 2 ≠ 5 を完全に証明するのは、現在のツールで与えられた限りでは退屈です。\n少し痛みが減るよう、すべての数値を展開しました。\n§0 と §1 を使ってこの証明ができるか試してみてください。", @@ -633,13 +621,13 @@ "## The birth of number.\n\nNumbers in Lean are defined by two rules.\n\n* §0 is a number.\n* If §1 is a number, then the *successor* §2 of §3 is a number.\n\nThe successor of §4 means the number after §5. Let's learn to\ncount, and name a few small numbers.\n\n## Counting to four.\n\n§6 is a number, so §7 is a number. Let's call this new number §8.\nSimilarly let's define §9, §10 and §11.\nThis gives us plenty of numbers to be getting along with.\n\nThe *proof* that §12 is called §13.\nCheck out the \"012\" tab in the list of lemmas on the right\nfor this and other proofs.\n\nLet's prove that §14 is the number after the number after zero.": "## 数字の誕生。\n\nLeanにおける数字は2つのルールで定義されます。\n\n* §0 は数字です。\n* §1 が数字である場合、§2 の *後続* §3 は数字です。\n\n§4 の後続とは §5 の次の数字を意味します。数を数えることと、いくつかの小さな数字の名前を学びましょう。\n\n## 4まで数える。\n\n§6 が数字であるため、§7 も数字です。この新しい数字を §8 と呼びましょう。同様に §9, §10, §11 を定義します。これで十分な数を手に入れました。\n\n§12 が数字であることを証明する *証明* §13 があります。証明リストの右側の「012」タブを確認してください。\n\n次に、0の後ろの後ろの数字である §14 を証明しましょう。", "## Summary\n\n§0 repeatedly applies the tactic §1\nto the goal. You don't need to use this\ntactic, it just speeds things up sometimes.\n\n## Example\n\n§2 will turn the goal\n§3\ninto the goal\n§4.\n\"\n\nTacticDoc nth_rewrite \"\n## Summary\n\nIf §5 and there are several §6s in the goal, then\n§7 will just change the third §8 to a §9.\n\n## Example\n\nIf the goal is §10 then §11\nwill change the goal to §12. In contrast, §13\nwill change the goal to §14.": - "### 原文 (English)\n## Summary\n\n§0 repeatedly applies the tactic §1\nto the goal. You don't need to use this\ntactic, it just speeds things up sometimes.\n\n## Example\n\n§2 will turn the goal\n§3\ninto the goal\n§4.\n\"\n\nTacticDoc nth_rewrite \"\n## Summary\n\nIf §5 and there are several §6s in the goal, then\n§7 will just change the third §8 to a §9.\n\n## Example\n\nIf the goal is §10 then §11\nwill change the goal to §12. In contrast, §13\nwill change the goal to §14.\n\n\n### 翻訳 (Japanese)\n## 結論\n\n§0 は目標に対して §1 のタクティクを繰り返し適用します。このタクティクを使用する必要はありませんが、時々処理が早くなります。\n\n## 例\n\n§2 は目標\n§3\nを\n§4\nに変更します。\n\n---\n\n## 結論\n\n§5 が成り立つ場合で、目標に複数の §6 がある場合、\n§7 は第三の §8 を §9 に変更します。\n\n## 例\n\n目標が §10 の場合、§11 は目標を §12 に変更します。一方で、§13 は目標を §14 に変更します。", + "## 結論\n\n§0 は目標に対して §1 のタクティクを繰り返し適用します。このタクティクを使用する必要はありませんが、時々処理が早くなります。\n\n## 例\n\n§2 は目標\n§3\nを\n§4\nに変更します。\n\n---\n\n## 結論\n\n§5 が成り立つ場合で、目標に複数の §6 がある場合、\n§7 は第三の §8 を §9 に変更します。\n\n## 例\n\n目標が §10 の場合、§11 は目標を §12 に変更します。一方で、§13 は目標を §14 に変更します。", "## Summary\n\n§0 repeatedly applies the tactic §1\nto the goal. You don't need to use this\ntactic, it just speeds things up sometimes.\n\n## Example\n\n§2 will turn the goal\n§3\ninto the goal\n§4.": "## 結論\n\n§0はタクティク§1を繰り返し適用し、目標を処理します。このタクティクを使用する必要はありませんが、時々処理速度を向上させることがあります。\n\n## 例\n\n§2を使用すると、目標§3は§4に変更されます。", "## Summary\n\n§0 proves goals of the form §1.\n\nIn other words, the §2 tactic will close any goal of the\nform §3 if §4 and §5 are *identical*.\n\n§6 is short for \\\\\"reflexivity (of equality)\\\\\".\n\n## Example:\n\nIf the goal looks like this:\n\n§7\n\nthen §8 will close it. But if it looks like §9 then §10 won't work, because even\nthough §11 and §12 are always equal as *numbers*, they are not equal as *terms*.\nThe only term which is identical to §13 is §14.\n\n## Details\n\n§15 is short for \\\\\"reflexivity of equality\\\\\".\n\n## Game Implementation\n\n*Note that our §16 is weaker than the version used in core Lean and §17,\nfor pedagogical purposes; mathematicians do not distinguish between propositional\nand definitional equality because they think about definitions in a different way\nto type theorists (§18 and §19 are both \\\\\"facts\\\\\" as far\nas mathematicians are concerned, and who cares what the definition of addition is).*": "## 結論\n\n§0は、形式§1の目標を証明します。\n\nつまり、§2タクティクは、§4と§5が*完全に一致*する場合、形式§3の任意の目標を閉じます。\n\n§6は、「等号の反射律」の略です。\n\n## 例\n\nもし目標が以下のようであれば:\n\n§7\n\n§8はそれを閉じます。しかし、もし目標が§9のように見える場合、§10は機能しません。なぜなら、§11と§12は常に数値としては等しいですが、項としては等しくないからです。§13と完全に一致する項は§14だけです。\n\n## 詳細\n\n§15は「等号の反射律」の略です。\n\n## ゲーム実装\n\n注意していただきたいのは、当の§16は、コア Lean と§17で使用されるバージョンよりも弱く、教育的な目的のためにそう設計されていることです。数学的には、論理的等価と定義的等価を区別しない理由は、定義の考え方がタイプ理論家と異なるからです(数学的には§18と§19はどちらも「事実」であり、加法の定義などは誰がどう思っても構いません)。", "## Summary\n\nThe §0 tactic will change a goal or hypothesis of\nthe form §1 to §2. It will also work on §3\nand on §4.\n\n### Example\n\nIf the goal is §5 then §6 will change it to §7.\n\n### Example\n\nIf §8 then §9 will change §10 to §11.": - "## 結論\n\nタクティク §0 は、目標や仮定が §1 の形式の場合を §2 に変更します。また、§3 や §4 も対象となります。\n\n### 例\n\nもし目標が §5 の場合、§6 はそれを §7 に変更します。\n\n### 例\n\nもし §8 の場合、§9 は §10 を §11 に変更します。", + "## 概要\n\nタクティク §0 は、目標や仮定が §1 の形式の場合を §2 に変更します。また、§3 や §4 も対象となります。\n\n### 例\n\nもし目標が §5 の場合、§6 はそれを §7 に変更します。\n\n### 例\n\nもし §8 の場合、§9 は §10 を §11 に変更します。", "## Summary\n\nThe §0 tactic makes progress with goals which claim something *exists*.\nIf the goal claims that some §1 exists with some property, and you know\nthat §2 will work, then §3 will make progress.\n\nBecause §4 is notation for \\\\\"there exists §5 such that §6\\\\\",\nyou can make progress on goals of the form §7 by §8ing the\nnumber which is morally §9 (i.e. §10)\n\nAny of the following examples is possible assuming the type of the argument passed to the §11 function is accurate:\n\n- §12\n- §13\n- §14": "## 結論\n\n§0 タクティクは、何かが存在することを主張する目標に対して進展を遂げます。\nもし目標が何かが特定の性質を持つ存在することを主張し、その存在を知る方法が §2 である場合、§3 は進展を遂げます。\n\n§4 は \"存在する §5 が §6 である\" という主張を表す記号であり、目標が §7 のような形の場合、§8 することで、道徳的に §9 (つまり §10) とみなされる番号で進展を遂げることができます。\n\n以下の例のいずれかが可能であると仮定して、§11 関数に渡される引数の型が正確である場合:\n\n- §12\n- §13\n- §14", "## Summary\n\nIf §0 is an object, and the goal mentions §1, then §2\nattempts to prove the goal by induction on §3, with the inductive\nvariable in the successor case being §4, and the inductive hypothesis being §5.\n\n### Example:\nIf the goal is\n§6\n\nthen\n\n§7\n\nwill turn it into two goals. The first is §8;\nthe second has an assumption §9 and goal\n§10.\n\nNote that you must prove the first\ngoal before you can access the second one.": @@ -653,11 +641,11 @@ "## Summary\n\nIf §0 and there are several §1s in the goal, then\n§2 will just change the third §3 to a §4.\n\n## Example\n\nIf the goal is §5 then §6\nwill change the goal to §7. In contrast, §8\nwill change the goal to §9.": "## 結論\n\nもし目標に §0 があり、目標に複数の §1 が存在する場合、§2 は第三の §3 を §4 に変更します。\n\n## 例\n\nもし目標が §5 である場合、§6 は目標を §7 に変更します。一方で、§8 は目標を §9 に変更します。", "## Summary\n\nIf the goal is §0, then §1 will introduce §2 as a hypothesis,\nand change the goal to §3. Mathematically, it says that to prove §4,\nwe can assume §5 and then prove §6.\n\n### Example:\n\nIf your goal is §7 (the way Lean writes §8)\nthen §9 will give you a hypothesis §10 named §11, and the goal\nwill change to §12.": - "## 結論\n\nもし目標が§0である場合、§1は§2を仮定として導入し、目標を§3に変更します。数学的には、§4を証明するためには、§5を仮定し、その後§6を証明すればよいということです。\n\n### 例:\n\nもし目標が§7(Leanで書かれた§8)である場合、§9は§10という名前の仮定§11を導入し、目標は§12に変更されます。", + "## 概要\n\nもし目標が§0である場合、§1は§2を仮定として導入し、目標を§3に変更します。数学的には、§4を証明するためには、§5を仮定し、その後§6を証明すればよいということです。\n\n### 例:\n\nもし目標が§7(Leanで書かれた§8)である場合、§9は§10という名前の仮定§11を導入し、目標は§12に変更されます。", "## Summary\n\nIf the goal is a statement §0, then §1 will close the goal if §2 is a proof of §3.\n\n### Example\n\nIf the goal is §4 and you have a hypothesis §5\nthen §6 will solve the goal.\n\n### Example\n\nIf the goal is §7 then §8 will close the goal.\n\n### Exact needs to be exactly right\n\nNote that §9 will *not work* in the previous example;\nfor §10 to work, §11 has to be *exactly* a proof of the goal.\n§12 is a proof of §13 or, if you like,\na proof of §14 where §15 needs to be supplied by the user.\nThis is in contrast to §16 and §17, which will \\\\\"guess the inputs\\\\\"\nif necessary. If the goal is §18 then §19\nand §20 will both change the goal to §21,\nbecause §22 guesses the input to the function §23.": "## 結論\n\nもし目標が §0 の文である場合、§2 が §3 の証明であれば、目標は §1 で閉じます。\n\n### 例\n\nもし目標が §4 で、仮定 §5 がある場合、§6 は目標を解決します。\n\n### 例\n\nもし目標が §7 である場合、§8 は目標を閉じます。\n\n### 必ず正確に\n\n注意してほしいのは、前の例では §9 は *機能しません*;\n§10 が機能するためには、§11 は目標の *正確な* 証明である必要があります。\n§12 は目標の §13 の証明であるか、あるいは §14 の証明で、§15 はユーザーによって提供される必要があります。\nこれは §16 と §17 とは異なり、必要に応じてこれらの関数は *入力の推測* を行います。もし目標が §18 である場合、§19 と §20 は両方とも目標を §21 に変更します。\nこれは §22 が関数 §23 の入力を推測するからです。", "## Precision rewriting\n\nIn the last level, there was §0 and §1,\nand §2 changed the first one it saw,\nwhich was §3. Let's learn how to tell Lean\nto change §4 first by giving §5 an\nexplicit input.": - "## 精度の再編纂\n\n最後のレベルでは、§0 と §1 があり、\n§2 は最初に見つけたものを §3 に変更しました。\nLean に §4 を最初に変更させる方法を学びましょう。\n§5 に明示的な入力を与えることで実現します。", + "## 精密な書き換え\n\n前のレベルでは、§0 と §1 があり、\n§2 は最初に見つけた§3を変更しました。\nLean に §4 を最初に変更させる方法を学びましょう。\n§5 に明示的な入力を与えることで実現します。", "# Welcome to the Natural Number Game\n#### An introduction to mathematical proof.\n\nIn this game, we will build the basic theory of the natural\nnumbers §0 from scratch. Our first goal is to prove\nthat §1. Next we'll prove that §2.\nAnd at the end we'll see if we can prove Fermat's Last Theorem.\nWe'll do this by solving levels of a computer puzzle game called Lean.\n\n# Read this.\n\nLearning how to use an interactive theorem prover takes time.\nTests show that the people who get the most out of this game are\nthose who read the help texts like this one.\n\nTo start, click on \"Tutorial World\".\n\nNote: this is a new Lean 4 version of the game containing several\nworlds which were not present in the old Lean 3 version. More new worlds\nsuch as Strong Induction World, Even/Odd World and Prime Number World\nare in development; if you want to see their state or even help out, checkout\nout the [issues in the github repo](https://github.com/leanprover-community/NNG4/issues).\n\n## More\n\nClick on the three lines in the top right and select \"Game Info\" for resources,\nlinks, and ways to interact with the Lean community.": "# 自然数ゲームへようこそ\n#### 数学的証明への入門\n\nこのゲームでは、自然数 §0 の基本理論をゼロから構築します。最初の目標は §1 を証明することです。次に §2 を証明します。そして最後には、フェルマーの最終定理を証明できるかどうかを見ていきます。これらの目標を達成するために、コンピュータパズルゲーム「Lean」のレベルを解いていきます。\n\n# 読んでください。\n\nインタラクティブ証明システムの使い方を学ぶには時間がかかります。テスト結果によれば、このゲームで最も効果的なのは、このようなヘルプテキストを読む人です。\n\n開始するには、「チュートリアルワールド」をクリックしてください。\n\n注意:これは、旧Lean 3版に存在しなかった複数のワールドを含む新しいLean 4版のゲームです。強い帰納法ワールド、偶数/奇数ワールド、素数ワールドなどの新しいワールドの開発が進行中です;これらの状態を確認したいか、協力したい場合は、[githubリポジトリのissues](https://github.com/leanprover-community/NNG4/issues) をチェックしてください。\n\n## 追加情報\n\n右上隅の三本線をクリックし、「ゲーム情報」を選択してリソース、リンク、Leanコミュニティとの交流方法を確認してください。", "# Summary\nThe §0 tactic changes a goal of §1 into a goal of §2.\nUse it when your hypotheses guarantee that the reason that §3\nis true is because in fact §4 is true.\n\nInternally this tactic is just §5ing a theorem\nsaying that §6\n\nNote that this tactic can turn a solvable goal into an unsolvable\none.": @@ -672,7 +660,7 @@ "# Summary\n\nIf you have a hypothesis\n\n§0\n\nand goal\n\n§1\n\nthen §2 replaces the set-up with its so-called \\\\\"contrapositive\\\\\":\na hypothesis\n\n§3\n\nand goal\n\n§4.": "### 翻訳\n\n# 概要\n\n仮定\n\n§0\n\nと目標\n\n§1\n\nがある場合、§2 はセットアップを反論と呼ばれるものに置き換える:\n仮定\n\n§3\n\nと目標\n\n§4\n\nになります。", "# Statement\n\nIf §0 and §1 are numbers, then\n§2 is the proof that\n§3.\n\n## More technical details\n\nThere are other ways to think about §4.\n\nYou can think about §5 itself as a function which takes two\nnumbers §6 and §7 as input, and outputs a proof of\n§8.\n\nYou can think of §9 itself as a proof; it is the proof\nthat §10 is an injective function. In other words,\n§11 is a proof of\n§12.\n\n§13 was postulated as an axiom by Peano, but\nin Lean it can be proved using §14, a mathematically\npathological function.": - "### 原文 (English)\n# Statement\n\nIf §0 and §1 are numbers, then\n§2 is the proof that\n§3.\n\n## More technical details\n\nThere are other ways to think about §4.\n\nYou can think about §5 itself as a function which takes two\nnumbers §6 and §7 as input, and outputs a proof of\n§8.\n\nYou can think of §9 itself as a proof; it is the proof\nthat §10 is an injective function. In other words,\n§11 is a proof of\n§12.\n\n§13 was postulated as an axiom by Peano, but\nin Lean it can be proved using §14, a mathematically\npathological function.\n\n\n## 翻訳 (Japanese)\n# 陳述\n\n§0 と §1 が数値である場合、\n§2 は §3 の証明です。\n\n## さらなる技術的な詳細\n\n§4 を考える方法は他にもあります。\n\n§5 は、2 つの数値 §6 と §7 を入力として取り、\n§8 の証明を出力する関数として考えることができます。\n\n§9 は自身が証明であり、これは §10 が単射関数であることを示す証明です。つまり、\n§11 は §12 の証明です。\n\nペアノによって公理として導入された §13 ですが、\nLean では §14、すなわち数学的に病理的な関数を使用して証明できます。", + "# 提示\n\n§0 と §1 が数値である場合、\n§2 は §3 の証明です。\n\n## さらなる技術的な詳細\n\n§4 を考える方法は他にもあります。\n\n§5 は、2 つの数値 §6 と §7 を入力として取り、\n§8 の証明を出力する関数として考えることができます。\n\n§9 は自身が証明であり、これは §10 が単射関数であることを示す証明です。つまり、\n§11 は §12 の証明です。\n\nペアノによって公理として導入された §13 ですが、\nLean では §14、すなわち数学的に病理的な関数を使用して証明できます。", "# Read this first\n\nEach level in this game involves proving a mathematical theorem (the \"Goal\").\nThe goal will be a statement about *numbers*. Some numbers in this game have known values.\nThose numbers have names like §0. Other numbers will be secret. They're called things\nlike §1 and §2. We know §3 is a number, we just don't know which one.\n\nIn this first level we're going to prove the theorem that §4.\nYou can see §5 in the *Objects* below, which means that §6 and §7\nare numbers.\n\nWe solve goals in Lean using *Tactics*, and the first tactic we're\ngoing to learn is called §8, which proves all theorems of the form §9.\n\nProve that §10 by executing the §11 tactic.": "# まずはこちらを読む\n\nこのゲームの各レベルでは、数学的定理(「目標」)を証明します。\n目標は数に関する主張です。このゲームには既知の値を持つ数がいくつかあります。\nその数には§0のような名前がついています。他の数は秘密です。§1や§2のような名前で呼ばれます。§3は数であることは分かっていますが、具体的にはどの数かは分かりません。\n\nこの最初のレベルでは、§4という定理を証明します。\n下の*対象*に§5が表示されているので、§6と§7は数であることが分かります。\n\nLeanで目標を解決するには*タクティク*を使用します。最初に学ぶタクティクは§8で、これは§9のような形式の定理を証明します。\n\n§10を証明するために§11 タクティクを実行してください。", "# Overview\n\nOur home-made tactic §0 will solve arbitrary goals of\nthe form §1.": diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index b98fd2d5..ebf271bc 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1680,7 +1680,7 @@ msgstr "ここから続けられますか?(注: §0を再度試すと、元の #. §0: `pow_two a` #. §1: `a ^ 2 = a * a` msgid "§0 says that §1." -msgstr "§0 は §1 を言います。" +msgstr "§0 は §1 を意味します。" #: Game.Levels.Implication.L04succ_inj msgid "In the next level, we'll do the same proof but backwards." @@ -4541,8 +4541,8 @@ msgid "" "Let's now begin our approach to the final boss,\n" "by proving some more subtle facts about powers." msgstr "" -"## 最終ボスへのアプローチ\n" -"powersに関するより細かい事実を証明することで始めましょう。" +"冪乗に関するより細かい事実を証明して、\n" +"最終ボスへのアプローチをしましょう。" #: Game.Levels.LessOrEqual.L09succ_le_succ #. §0: `succ_le_succ x y` From a31aae0d3ef9411a555b6df9d8192203fd804b49 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 20:48:19 +0900 Subject: [PATCH 050/147] ja: improve power level 7 --- .i18n/ja/Game.po | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index ebf271bc..cea7ad2d 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -4907,12 +4907,7 @@ msgstr "ここから続けられますか?" #: Game.Levels.Power.L07mul_pow msgid "mul_pow" -msgstr "" -"mul_pow\n" -"\n" -"\n" -"## 日本語翻訳\n" -"乗法の累乗定理" +msgstr "mul_pow" #: Game.Levels.LessOrEqual.L04le_trans #. §0: `≤` @@ -6359,8 +6354,8 @@ msgid "" "because §1 swaps the wrong multiplication,\n" "then read the documentation of §2 for tips on how to fix this." msgstr "" -"The music gets ever more dramatic, as we explore\n" -"指数乗と乗算の相互作用。\n" +"音楽はますますドラマチックになり、\n" +"指数演算と乗算の相互作用を探求します。\n" "\n" "もし指数乗と乗算の順序を正しく交換できずに\n" "§1 が誤った乗算を交換してしまう場合、\n" From 9f9a4fbd073347c2f2dcaa169b05a9ab84d4e67a Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 20:55:07 +0900 Subject: [PATCH 051/147] ja: improve power level 8 --- .i18n/ja/Game.po | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index cea7ad2d..b5f2085f 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -411,7 +411,7 @@ msgid "" "else could there be to prove about powers after this?" msgstr "" "ゲームで最も適切に名付けられたレベルの一つとして知られる場面で、音楽が狂熱に達すると凶暴な§0\n" -"サブボスが登場します。それ以降の力について何を証明できるでしょうか?" +"サブボスが登場します。それ以降の冪乗について何を証明できるでしょうか?" #: Game.Levels.LessOrEqual.L05le_zero #. §0: $x \\leq 0$ @@ -6232,13 +6232,13 @@ msgid "" "\n" "Suddenly the music starts up again. This really is the final boss." msgstr "" -"音楽が静まり返る。これで終わり?\n" +"音楽が静まり返ります。これで終わりですか?\n" "\n" -"まだ二つ目のレベルが残っていることは明らかだ。\n" +"まだレベルが2つ残っていることは明らかです。\n" "\n" -"通りすがりの数学者が言うには、あなたが構築した構造には数学の名前がないらしい。だまされた気分だ。\n" +"通りすがりの数学者が言うには、あなたが構築した構造には数学の名前がないらしいです。だまされた気分です。\n" "\n" -"突然、音楽が再開する。これで本当に最終ボスだ。" +"突然、音楽が再開します。これで本当に最終ボスです。" #: Game.Levels.LessOrEqual.L10le_one #: Game.Levels.AdvMultiplication.L08mul_eq_zero From 03b834c6d52f99d80dfad1dc17e75ce97db277f5 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 21:11:18 +0900 Subject: [PATCH 052/147] ja: improve power level 9 --- .i18n/ja/Game.po | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index b5f2085f..be4f714b 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -4491,11 +4491,6 @@ msgid "" "§2" msgstr "" "すべての数値 §0 と §1 に対して、\n" -"§2\n" -"\n" -"\n" -"## 参考訳\n" -"すべての数値 §0 と §1 に対して、\n" "§2" #: Game.Levels.Tutorial.L01rfl @@ -4992,13 +4987,7 @@ msgstr "もし§0と§1が自然数であり、かつ§2である場合、§3で #: Game.Levels.Power.L09add_sq msgid "[final boss music]" -msgstr "" -"### 原文 (English)\n" -"[final boss music]\n" -"\n" -"\n" -"## 日本語翻訳\n" -"[最終ボスのテーマ]" +msgstr "[最終ボスのテーマ]" #: Game.Levels.Tutorial.L07add_succ Game.Levels.Multiplication.L01mul_one #: Game.Levels.Multiplication.L06two_mul Game.Levels.Algorithm.L07succ_ne_succ @@ -5829,12 +5818,7 @@ msgstr "目標を§0に変更できますか?" #: Game.Levels.Power.L09add_sq msgid "add_sq" -msgstr "" -"add_sq\n" -"\n" -"\n" -"## 日本語翻訳\n" -"平方を追加します。" +msgstr "add_sq" #: Game.Levels.LessOrEqual.L08le_total #. §0: `a` From c8ff7dc2b5b69ba434e0d1de01bd36f25ffcfe4a Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 21:29:40 +0900 Subject: [PATCH 053/147] ja: improve power level 10 --- .i18n/ja/Game.po | 59 ++++++++++++++---------------------------------- 1 file changed, 17 insertions(+), 42 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index be4f714b..38575567 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -4659,44 +4659,22 @@ msgid "" "an interactive textbook which you can read in your browser,\n" "and which explains how to work with many more mathematical concepts in Lean." msgstr "" -"### 原文 (English)\n" -"We now have enough to state a mathematically accurate, but slightly\n" -"clunky, version of Fermat's Last Theorem.\n" -"\n" -"Fermat's Last Theorem states that if §0 and §1 then §2.\n" -"If you didn't do inequality world yet then we can't talk about §3,\n" -"so we have to resort to the hack of using §4 for §5,\n" -"which guarantees it's big enough. Similarly instead of §6 we\n" -"use §7.\n" -"\n" -"This level looks superficially like other levels we have seen,\n" -"but the shortest solution known to humans would translate into\n" -"many millions of lines of Lean code. The author of this game,\n" -"Kevin Buzzard, is working on translating the proof by Wiles\n" -"and Taylor into Lean, although this task will take many years.\n" -"\n" -"## CONGRATULATIONS!\n" -"\n" -"You've finished the main quest of the natural number game!\n" -"If you would like to learn more about how to use Lean to\n" -"prove theorems in mathematics, then take a look\n" -"at [Mathematics In " -"Lean](https://leanprover-community.github.io/mathematics_in_lean/),\n" -"an interactive textbook which you can read in your browser,\n" -"and which explains how to work with many more mathematical concepts in " -"Lean.\n" -"\n" -"\n" -"### 翻訳 (Japanese)\n" -"我们现在有足够的知识来陈述一个数学上准确但略显笨拙的费马大定理。\n" -"\n" -"费马大定理指出,如果§0 且 §1,则 §2。\n" -"如果你还没有完成不等式世界,则无法讨论 §3,\n" -"所以我们不得不使用 §4 代替 §5,这保证了它的大小足够。类似地,我们使用 §7 代替 §6。\n" -"\n" -"这一关看起来与其他关卡相似,\n" -"但人类已知的最短解决方案会转化为数以百万计的Lean代码行。这款游戏的作者Kevin Buzzard正在努力将威尔斯和泰勒的证明翻译成Lean,\n" -"尽管这项任务将需要很多年的时间。\n" +"現在、フェルマーの最終定理の数学的に正確だが、\n" +"やや冗長なバージョンを記述するのに十分な情報があります。\n" +"\n" +"フェルマーの最終定理は、§0 と §1 が成り立つならば、§2 が成り立つ、\n" +"と述べることができます。\n" +"もし「不等式世界」をまだ実装していない場合は、\n" +"§3 について議論できません。そのため、§4 を §5 の" +"代わりに使うという「ハック」に頼る必要があります。\n" +"これにより、十分な大きさになることが保証されます。\n" +"同様に、§6 の代わりに §7 を使用します。\n" +"\n" +"このレベルは、これまでに見た他のレベルと似ていますが、\n" +"人間が知っている最も短い解は、数百万行の \n" +"Lean コードに変換されます。このゲームの作者である Kevin Buzzard は、\n" +"ウィルズとテイラーの証明を Lean に翻訳する作業に取り組んでいますが、\n" +"この作業には数年かかるでしょう。\n" "\n" "## おめでとう!\n" "\n" @@ -6495,12 +6473,9 @@ msgid "" "\n" "Either that, or you used magic..." msgstr "" -" Congratulations! あなたはフェルマーの最終定理を証明しました!\n" +" おめでとうございます! あなたはフェルマーの最終定理を証明しました!\n" "\n" "もしくは、魔法を使用したかもしれません...\n" -"\n" -"\n" -"## 日本語翻訳\n" #: Game.Levels.Multiplication.L04mul_comm #. §0: `mul_comm` From 211020c31bfe54a0f75681c30892145c47befdae Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 21:32:54 +0900 Subject: [PATCH 054/147] ja: improve algorithm introduction --- .i18n/ja/Game.json | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/.i18n/ja/Game.json b/.i18n/ja/Game.json index 1e376349..5c35ad1e 100644 --- a/.i18n/ja/Game.json +++ b/.i18n/ja/Game.json @@ -112,7 +112,7 @@ "one_le_of_ne_zero": "one_le_of_ne_zero", "mul_right_eq_self": "mul_right_eq_self", "mul_right_eq_one": "mul_right_eq_one", - "mul_pow": "mul_pow\n\n\n## 日本語翻訳\n乗法の累乗定理", + "mul_pow": "mul_pow", "mul_one": "mul_one", "mul_ne_zero": "mul_ne_zero\n\n\n## 日本語翻訳\n乗算が零でない(mul_ne_zero)", "mul_left_ne_zero": "mul_left_ne_zero\n\n\n## 日本語翻訳\n左側 multiplicand が非零である定理", @@ -136,7 +136,7 @@ "decide again": "再決定", "decide": "決定", "add_succ": "add_succ", - "add_sq": "add_sq\n\n\n## 日本語翻訳\n平方を追加します。", + "add_sq": "add_sq", "add_right_eq_zero": "add_right_eq_zero", "add_right_eq_self": "add_right_eq_self\n\n\n## 日本語翻訳\n右側への加算が自身と等しいこと", "add_right_comm": "add_right_comm", @@ -148,8 +148,7 @@ "add_left_cancel": "add_left_cancel\n\n\n## 日本語翻訳\n左-cancel 付加律", "add_comm (level boss)": "add_comm (レベルボス)\n", "add_assoc (associativity of addition)": "add_assoc (加法の結合律)", - "[final boss music]": - "### 原文 (English)\n[final boss music]\n\n\n## 日本語翻訳\n[最終ボスのテーマ]", + "[final boss music]": "[最終ボスのテーマ]", "[dramatic music]. Now are you ready to face the first boss of the game?": "[ドラマティックな音楽] さあ、ゲーム最初のボス戦に臨む準備はできていますか?", "[boss battle music]\n\nLook in your inventory to see the proofs you have available.\nThese should be enough.": @@ -219,7 +218,7 @@ "We now start work on an algorithm to do addition more efficiently. Recall that\nwe defined addition by recursion, saying what it did on §0 and successors.\nIt is an axiom of Lean that recursion is a valid\nway to define functions from types such as the naturals.\n\nLet's define a new function §1 from the naturals to the naturals, which\nattempts to subtract 1 from the input. The definition is this:\n\n§2\n\nWe cannot subtract one from 0, so we just return a junk value. As well as this\ndefinition, we also create a new lemma §3, which says that §4.\nLet's use this lemma to prove §5, the theorem which\nPeano assumed as an axiom and which we have already used extensively without justification.": "### 原文 (English)\nWe now start work on an algorithm to do addition more efficiently. Recall that\nwe defined addition by recursion, saying what it did on §0 and successors.\nIt is an axiom of Lean that recursion is a valid\nway to define functions from types such as the naturals.\n\nLet's define a new function §1 from the naturals to the naturals, which\nattempts to subtract 1 from the input. The definition is this:\n\n§2\n\nWe cannot subtract one from 0, so we just return a junk value. As well as this\ndefinition, we also create a new lemma §3, which says that §4.\nLet's use this lemma to prove §5, the theorem which\nPeano assumed as an axiom and which we have already used extensively without justification.\n\n\n### 翻訳 (Japanese)\n現在、効率的な加算を行うアルゴリズムの作成を開始します。再帰によって加算を定義したことを思い出してください。具体的には、0と後続者に対して何を行うかを定義しました。\nLeanの公理として、再帰は自然数などの型から関数を定義する有効な方法であるとされています。\n\n自然数から自然数への新しい関数§1を定義します。これは、入力から1を引こうとする関数です。その定義は以下の通りです:\n\n§2\n\n0から1を引くことはできませんので、無効な値を返します。この定義とともに、新しい補題§3も定義します。これは§4を述べています。\nこの補題を使って、§5(ペアノが公理として仮定し、以前にも正当化せずに頻繁に使用した定理)を証明しましょう。", "We now have enough to state a mathematically accurate, but slightly\nclunky, version of Fermat's Last Theorem.\n\nFermat's Last Theorem states that if §0 and §1 then §2.\nIf you didn't do inequality world yet then we can't talk about §3,\nso we have to resort to the hack of using §4 for §5,\nwhich guarantees it's big enough. Similarly instead of §6 we\nuse §7.\n\nThis level looks superficially like other levels we have seen,\nbut the shortest solution known to humans would translate into\nmany millions of lines of Lean code. The author of this game,\nKevin Buzzard, is working on translating the proof by Wiles\nand Taylor into Lean, although this task will take many years.\n\n## CONGRATULATIONS!\n\nYou've finished the main quest of the natural number game!\nIf you would like to learn more about how to use Lean to\nprove theorems in mathematics, then take a look\nat [Mathematics In Lean](https://leanprover-community.github.io/mathematics_in_lean/),\nan interactive textbook which you can read in your browser,\nand which explains how to work with many more mathematical concepts in Lean.": - "### 原文 (English)\nWe now have enough to state a mathematically accurate, but slightly\nclunky, version of Fermat's Last Theorem.\n\nFermat's Last Theorem states that if §0 and §1 then §2.\nIf you didn't do inequality world yet then we can't talk about §3,\nso we have to resort to the hack of using §4 for §5,\nwhich guarantees it's big enough. Similarly instead of §6 we\nuse §7.\n\nThis level looks superficially like other levels we have seen,\nbut the shortest solution known to humans would translate into\nmany millions of lines of Lean code. The author of this game,\nKevin Buzzard, is working on translating the proof by Wiles\nand Taylor into Lean, although this task will take many years.\n\n## CONGRATULATIONS!\n\nYou've finished the main quest of the natural number game!\nIf you would like to learn more about how to use Lean to\nprove theorems in mathematics, then take a look\nat [Mathematics In Lean](https://leanprover-community.github.io/mathematics_in_lean/),\nan interactive textbook which you can read in your browser,\nand which explains how to work with many more mathematical concepts in Lean.\n\n\n### 翻訳 (Japanese)\n我们现在有足够的知识来陈述一个数学上准确但略显笨拙的费马大定理。\n\n费马大定理指出,如果§0 且 §1,则 §2。\n如果你还没有完成不等式世界,则无法讨论 §3,\n所以我们不得不使用 §4 代替 §5,这保证了它的大小足够。类似地,我们使用 §7 代替 §6。\n\n这一关看起来与其他关卡相似,\n但人类已知的最短解决方案会转化为数以百万计的Lean代码行。这款游戏的作者Kevin Buzzard正在努力将威尔斯和泰勒的证明翻译成Lean,\n尽管这项任务将需要很多年的时间。\n\n## おめでとう!\n\n自然数ゲームの主要な冒険を終えました!\nLeanを使用して数学の定理を証明する方法をさらに学びたい場合は、\n[Leanで数学](https://leanprover-community.github.io/mathematics_in_lean/) を参照してください。\nこれはブラウザで読むことができる対話型教科書で、Leanでより多くの数学的概念を扱う方法を説明しています。", + "現在、フェルマーの最終定理の数学的に正確だが、\nやや冗長なバージョンを記述するのに十分な情報があります。\n\nフェルマーの最終定理は、§0 と §1 が成り立つならば、§2 が成り立つ、\nと述べることができます。\nもし「不等式世界」をまだ実装していない場合は、\n§3 について議論できません。そのため、§4 を §5 の代わりに使うという「ハック」に頼る必要があります。\nこれにより、十分な大きさになることが保証されます。\n同様に、§6 の代わりに §7 を使用します。\n\nこのレベルは、これまでに見た他のレベルと似ていますが、\n人間が知っている最も短い解は、数百万行の \nLean コードに変換されます。このゲームの作者である Kevin Buzzard は、\nウィルズとテイラーの証明を Lean に翻訳する作業に取り組んでいますが、\nこの作業には数年かかるでしょう。\n\n## おめでとう!\n\n自然数ゲームの主要な冒険を終えました!\nLeanを使用して数学の定理を証明する方法をさらに学びたい場合は、\n[Leanで数学](https://leanprover-community.github.io/mathematics_in_lean/) を参照してください。\nこれはブラウザで読むことができる対話型教科書で、Leanでより多くの数学的概念を扱う方法を説明しています。", "We now have enough to prove that multiplication is associative,\nthe boss level of multiplication world. Good luck!": "乗算が結合的であることを証明できるようになりました。これは乗算ワールドのボスレベルです。幸運を!", "We know §0 is a proof of §1 -- but what\nif we have a hypothesis §2? It's the wrong way around!\n\nThe §3 tactic changes a goal §4 to §5, and a goal §6\nto §7. And §8\ndoes the same for a hypothesis §9. We've proved §10 and called\nthe proof §11; now try proving §12.": @@ -275,9 +274,9 @@ "The next result we'll need in §0 World is that if §1 then §2 and §3.\nLet's prove one of these facts in this level, and the other in the next.\n\n## A new tactic: §4\n\nThe §5 tactic will split an object or hypothesis up into the possible ways\nthat it could have been created.\n\nFor example, sometimes you want to deal with the two cases §6 and §7 separately,\nbut don't need the inductive hypothesis §8 that comes with §9.\nIn this situation you can use §10 instead. There are two ways to make\na number: it's either zero or a successor. So you will end up with two goals, one\nwith §11 and one with §12.\n\nAnother example: if you have a hypothesis §13 then you are done, because a false statement implies\nany statement. Here §14 will close the goal, because there are *no* ways to\nmake a proof of §15! So you will end up with no goals, meaning you have proved everything.": "### 原文 (English)\nThe next result we'll need in §0 World is that if §1 then §2 and §3.\nLet's prove one of these facts in this level, and the other in the next.\n\n## A new tactic: §4\n\nThe §5 tactic will split an object or hypothesis up into the possible ways\nthat it could have been created.\n\nFor example, sometimes you want to deal with the two cases §6 and §7 separately,\nbut don't need the inductive hypothesis §8 that comes with §9.\nIn this situation you can use §10 instead. There are two ways to make\na number: it's either zero or a successor. So you will end up with two goals, one\nwith §11 and one with §12.\n\nAnother example: if you have a hypothesis §13 then you are done, because a false statement implies\nany statement. Here §14 will close the goal, because there are *no* ways to\nmake a proof of §15! So you will end up with no goals, meaning you have proved everything.\n\n\n### 翻訳 (Japanese)\n次に §0 ワールドで必要になる結果は、もし §1 なら §2 と §3 です。\nこのレベルで一つの事実を証明し、次のレベルでもう一つの事実を証明しましょう。\n\n## 新しいタクティク: §4\n\n§5 タクティクは、オブジェクトや仮定を生成された可能性のある方法に分割します。\n\n例えば、時々 §6 と §7 の二つのケースを個別に扱いたい場合がありますが、§9 が伴う §8 の帰納的仮定は必要ありません。\nこの状況では、§10 を使用することができます。数を作る方法は二つあります:ゼロか後続です。したがって、二つの目標が残ります。一つには §11 があり、もう一つには §12 があります。\n\n別の例:仮定 §13 がある場合、証明は完了します。偽の命題は任意の命題を導くからです。ここでは §14 が目標を閉じます。なぜなら §15 の証明を作る方法は *ありません*!したがって、目標が残らないため、すべてを証明したということになります。", "The music gets ever more dramatic, as we explore\nthe interplay between exponentiation and multiplication.\n\nIf you're having trouble exchanging the right §0\nbecause §1 swaps the wrong multiplication,\nthen read the documentation of §2 for tips on how to fix this.": - "The music gets ever more dramatic, as we explore\n指数乗と乗算の相互作用。\n\nもし指数乗と乗算の順序を正しく交換できずに\n§1 が誤った乗算を交換してしまう場合、\n§2 のドキュメンテーションを参照して修正方法を確認してください。", + "音楽はますますドラマチックになり、\n指数演算と乗算の相互作用を探求します。\n\nもし指数乗と乗算の順序を正しく交換できずに\n§1 が誤った乗算を交換してしまう場合、\n§2 のドキュメンテーションを参照して修正方法を確認してください。", "The music dies down. Is that it?\n\nCourse it isn't, you can\nclearly see that there are two levels left.\n\nA passing mathematician says that mathematicians don't have a name\nfor the structure you just constructed. You feel cheated.\n\nSuddenly the music starts up again. This really is the final boss.": - "音楽が静まり返る。これで終わり?\n\nまだ二つ目のレベルが残っていることは明らかだ。\n\n通りすがりの数学者が言うには、あなたが構築した構造には数学の名前がないらしい。だまされた気分だ。\n\n突然、音楽が再開する。これで本当に最終ボスだ。", + "音楽が静まり返ります。これで終わりですか?\n\nまだレベルが2つ残っていることは明らかです。\n\n通りすがりの数学者が言うには、あなたが構築した構造には数学の名前がないらしいです。だまされた気分です。\n\n突然、音楽が再開します。これで本当に最終ボスです。", "The lemma proved in the final level of this world will be helpful\nin Divisibility World.": "最終レベルで証明された補題は、整除世界で役立つでしょう。", "The inductive hypothesis §0 is \"For all natural numbers §1, §2\".\nYou can §3 it §4 any hypothesis of the form §5.": @@ -326,7 +325,7 @@ "Reduce to the previous lemma with §0": "以前の補題に §0 をReduceします。", "Ready for the boss level of this world?": "このワールドのボスレベルに備えていますか?", "Proofs like §0 and §1 are very tedious to do by hand.\nIn Algorithm World we learn how to get the computer to do them for us.\n\nClick on \"Start\" to proceed.": - "証明如き§0や§1は手作業で行うと非常に退屈です。\nAlgorithm Worldでは、コンピュータにその作業を任せることを学びます。\n\n\"開始\"をクリックして進みましょう。", + "§0や§1のような証明は手作業で行うと非常に退屈です。\nアルゴリズムワールドでは、コンピュータにその作業を任せることを学びます。\n\n\"開始\"をクリックして進みましょう。", "Precision rewriting": "精密な書き換え", "Power World": "冪乗ワールド", "Our next goal is \"left and right distributivity\",\nmeaning §0 and §1. Rather than\nthese slightly pompous names, the name of the proofs\nin Lean are descriptive. Let's start with\n§2, the proof of §3.\nNote that the left hand side contains a multiplication\nand then an addition.": @@ -334,7 +333,7 @@ "Our first challenge is §0,\nand we want to prove it by induction. The zero\ncase will need §1 (which we have)\nand §2 (which we don't), so let's\nstart with this.": "私たちの最初の挑戦は§0です。\nこれは帰納法によって証明したいと思います。\nゼロの場合には§1(持っています)\nと§2(持っていません)が必要なので、まずはこれから始めましょう。", "One of the best named levels in the game, a savage §0\nsub-boss appears as the music reaches a frenzy. What\nelse could there be to prove about powers after this?": - "ゲームで最も適切に名付けられたレベルの一つとして知られる場面で、音楽が狂熱に達すると凶暴な§0\nサブボスが登場します。それ以降の力について何を証明できるでしょうか?", + "ゲームで最も適切に名付けられたレベルの一つとして知られる場面で、音楽が狂熱に達すると凶暴な§0\nサブボスが登場します。それ以降の冪乗について何を証明できるでしょうか?", "One day this game will have a Prime Number World, with a final boss\nof proving that §0 is prime.\nTo do this, we will have to rule out things like §1\nWe will do this by proving that any factor of §2 is at most §3,\nwhich we will do using this lemma. The proof I have in mind manipulates the hypothesis\nuntil it becomes the goal, using §4, §5 and\n§6.": "One dayこのゲームには素数ワールドが存在し、最終ボスは§0が素数であることを証明することになる。\nこれを達成するためには、§1のようなものを排除する必要がある。\nこれは、§2の任意の約数が最多§3であることを証明することで行う。その証明はこの補題を使用する。私は考えている証明は、仮定を操作し、最終的に目標になるようにする。これには§4、§5、§6を使用する。", "On the set of natural numbers, addition is commutative.\nIn other words, if §0 and §1 are arbitrary natural numbers, then\n§2.": @@ -423,7 +422,7 @@ "Let's now learn about Peano's second axiom for addition, §0.": "ペアノの加法に関する第2の公理について、§0 を学んでみましょう。", "Let's now begin our approach to the final boss,\nby proving some more subtle facts about powers.": - "## 最終ボスへのアプローチ\npowersに関するより細かい事実を証明することで始めましょう。", + "冪乗に関するより細かい事実を証明して、\n最終ボスへのアプローチをしましょう。", "Let's first get §0 into the form §1 so we can\napply §2. First execute §3\nto change the 4 on the right hand side.": "§0 を §1 の形式に変更してから、§2 を適用することができます。\nまず、§3 を実行して右辺の 4 を変更します。", "Lean's simplifier, §0, is \"§1 on steroids\". It will rewrite every lemma\ntagged with §2 and every lemma fed to it by the user, as much as it can.\n\nThis level is not a level which you want to solve by hand.\nGet the simplifier to solve it for you.": @@ -500,7 +499,7 @@ "If you §0 the wrong number, you get stuck with a goal you can't prove.\nWhat number will you §1 here?": "もし間違ったタクティクを §0 选用,则会陷入无法证明的目标 §1 中。\n\n\n何を §1 选用?", "If you have completed Algorithm World then you can use the §0 tactic\nhere. If not then I'll talk you through a manual approach.": - "もしAlgorithm Worldを完了しているなら、ここでは§0タクティクを使用できます。もし完了していなければ、手動のアプローチを説明します。", + "もしアルゴリズムワールドを完了しているなら、ここでは§0タクティクを使用できます。もし完了していなければ、手動のアプローチを説明します。", "If the goal is not *exactly* a hypothesis, we can sometimes\nuse rewrites to fix things up.": "もし目標が*正確に*仮定でない場合、時としてリライトを使用して修正することができます。", "How should we define §0? Just like addition, we need to give definitions\nwhen §1 and when §2 is a successor.\n\nThe zero case is easy: we define §3 to be §4. Now say we know\n§5. What should §6 be? Well, that's §7 §8s,\nso it should be §9.\n\nHere are the definitions in Lean.\n\n * §10\n * §11\n\nIn this world, we must not only prove facts about multiplication like §12,\nwe must also prove facts about how multiplication interacts with addition, like §13.\nLet's get started.": @@ -540,8 +539,7 @@ "幸運を!\n\n最後のヒント。もし§0であれば、§1はすべての§2を§3に変換します。\n一方で、一つだけ変換したい場合(例えば3番目のもの)、§4を使用します。", "For any natural number §0, we have §1.": "任意の自然数§0に対して、§1です。", "For all numbers §0, §1.": "すべての数 §0 について、 §1 。", - "For all numbers §0 and §1, we have\n§2": - "すべての数値 §0 と §1 に対して、\n§2\n\n\n## 参考訳\nすべての数値 §0 と §1 に対して、\n§2", + "For all numbers §0 and §1, we have\n§2": "すべての数値 §0 と §1 に対して、\n§2", "For all naturals §0, §1.": "すべての自然数 §0 について、 §1 。", "For all naturals §0, §1, §2, we have §3.": "すべての自然数 §0, §1, §2 について、§3 が成り立ちます。", @@ -564,9 +562,9 @@ "Did you use induction on §0?\nHere's a two-line proof of §1 which uses §2.\nIf you want to inspect it, you can go into editor mode by clicking §3 in the top right\nand then just cut and paste the proof and move your cursor around it\nto see the hypotheses and goal at any given point\n(although you'll lose your own proof this way). Click §4 to get\nback to command line mode.\n§5\n\n\n### 翻訳\n§0について帰納法を使ったでしょうか?\n§2を使用して§1の二行証明があります。\n証明を確認したい場合は、右上にある§3をクリックしてエディタモードに入り、\nその後証明を切り取り、貼り付け、カーソルを動かして任意のポイントでの仮定と目標を確認できます。\n(ただし、この方法で自分の証明は失われます)。§4をクリックして\nコマンドラインモードに戻りましょう。\n§5", "Dealing with §0": "### 原文 (English)\nDealing with §0\n\n## 日本語翻訳\n§0 を扱う方法", "Congratulations! You've finished Algorithm World. These algorithms\nwill be helpful for you in Even-Odd World (when someone gets around to\nimplementing it).": - " Congratulations! あなたはAlgorithm Worldを完了しました。これらのアルゴリズムは、Even-Odd Worldが実装されるまで、あなたにとって役立つでしょう。\n\n\n## 日本語翻訳\n", + " Congratulations! あなたはアルゴリズムワールドを完了しました。これらのアルゴリズムは、Even-Odd Worldが実装されるまで、あなたにとって役立つでしょう。\n\n\n## 日本語翻訳\n", "Congratulations! You have proved Fermat's Last Theorem!\n\nEither that, or you used magic...": - " Congratulations! あなたはフェルマーの最終定理を証明しました!\n\nもしくは、魔法を使用したかもしれません...\n\n\n## 日本語翻訳\n", + " おめでとうございます! あなたはフェルマーの最終定理を証明しました!\n\nもしくは、魔法を使用したかもしれません...\n", "Congratulations! You completed your first verified proof!\n\nRemember that §0 is a *tactic*. If you ever want information about the §1 tactic,\nyou can click on §2 in the list of tactics on the right.\n\nNow click on \"Next\" to learn about the §3 tactic.": "おめでとうございます! あなたは初めての検証証明を完了しました!\n\n記憶に留めておきましょう。§0は*タクティク*です。§1のタクティクについての情報が必要な場合は、右側のタクティク一覧の§2をクリックできます。\n\n\"次\"をクリックして§3のタクティクについて学びましょう。", "Concretely: §0.": "具体的には: §0.", From e4f4a289ec42ee94314d936467fb6c17bdd12a93 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 21:37:30 +0900 Subject: [PATCH 055/147] ja: improve algorithm level 1 --- .i18n/ja/Game.po | 32 ++++++++------------------------ 1 file changed, 8 insertions(+), 24 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 38575567..1a767217 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -656,12 +656,7 @@ msgstr "" #: Game.Levels.Algorithm.L01add_left_comm msgid "add_left_comm" -msgstr "" -"add_left_comm\n" -"\n" -"\n" -"## 日本語翻訳\n" -"左側交換律(add_left_comm)" +msgstr "add_left_comm" #: Game.Levels.Implication.L10one_ne_zero #. §0: `symm` @@ -829,7 +824,7 @@ msgid "" "will be helpful for you in Even-Odd World (when someone gets around to\n" "implementing it)." msgstr "" -" Congratulations! あなたはAlgorithm Worldを完了しました。これらのアルゴリズムは、Even-Odd " +" Congratulations! あなたはアルゴリズムワールドを完了しました。これらのアルゴリズムは、Even-Odd " "Worldが実装されるまで、あなたにとって役立つでしょう。\n" "\n" "\n" @@ -2564,8 +2559,8 @@ msgid "" "\n" "Click on \"Start\" to proceed." msgstr "" -"証明如き§0や§1は手作業で行うと非常に退屈です。\n" -"Algorithm Worldでは、コンピュータにその作業を任せることを学びます。\n" +"§0や§1のような証明は手作業で行うと非常に退屈です。\n" +"アルゴリズムワールドでは、コンピュータにその作業を任せることを学びます。\n" "\n" "\"開始\"をクリックして進みましょう。" @@ -4172,7 +4167,7 @@ msgstr "" msgid "" "If you have completed Algorithm World then you can use the §0 tactic\n" "here. If not then I'll talk you through a manual approach." -msgstr "もしAlgorithm Worldを完了しているなら、ここでは§0タクティクを使用できます。もし完了していなければ、手動のアプローチを説明します。" +msgstr "もしアルゴリズムワールドを完了しているなら、ここでは§0タクティクを使用できます。もし完了していなければ、手動のアプローチを説明します。" #: Game.Levels.Tutorial.L02rw #. §0: $2y=2(x+7)$ @@ -5004,7 +4999,7 @@ msgstr "one_pow" #. §0: $a, b, c$ #. §1: $a+(b+c)=b+(a+c)$ msgid "If §0 are numbers, then §1." -msgstr "もし§0が数値である場合、§1。" +msgstr "もし§0が数値ならば、§1。" #: Game.Levels.LessOrEqual.L01le_refl #. §0: `a ≤ b` @@ -5581,19 +5576,8 @@ msgid "" "with things like §1. And remember that\n" "§2 means §3." msgstr "" -"### 原文 (English)\n" -"Having to rearrange variables manually using commutativity and\n" -"associativity is very tedious. We start by reminding you of this. §0\n" -"is a key component in the first algorithm which we'll explain, but we need\n" -"to prove it manually.\n" -"\n" -"Remember that you can do precision commutativity rewriting\n" -"with things like §1. And remember that\n" -"§2 means §3.\n" -"\n" -"\n" -"### 翻訳 (Japanese)\n" -"手動で交換律と結合律を使って変数を再配置する必要があることは非常に面倒です。まず、これについて再確認します。§0" +"手動で交換律と結合律を使って変数を再配置する必要があることは非常に面倒です。\n" +"まず、これについて再確認します。§0\n" "は、最初の説明するアルゴリズムにおいて重要な成分ですが、手動で証明する必要があります。\n" "\n" "交換律に基づいた精密な再配置は、§1のようなもので行うことができます。また、§2は§3を意味します。" From 682d5a39a2e1c3cf6ae8c5af798c7ea6c55c6367 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 21:41:36 +0900 Subject: [PATCH 056/147] ja: improve algorithm level 2 --- .i18n/ja/Game.po | 27 ++++----------------------- 1 file changed, 4 insertions(+), 23 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 1a767217..fb33e6f3 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -634,24 +634,10 @@ msgid "" "and then swap §6 and §7. But this is easier than you\n" "think with §8." msgstr "" -"### 原文 (English)\n" -"In some later worlds, we're going to see some much nastier levels,\n" -"like §0.\n" -"Brackets need to be moved around, and variables need to be swapped.\n" -"\n" -"In this level, §1,\n" -"let's forget about the brackets and just think about\n" -"the variable order.\n" -"To turn §2 into §3 we need to swap §4 and §5,\n" -"and then swap §6 and §7. But this is easier than you\n" -"think with §8.\n" -"\n" -"\n" -"### 翻訳 (Japanese)\n" "いくつかの後続のワールドでは、§0のようなもっとひどいレベルを見ることになります。\n" "括弧は移動させ、変数は入れ替える必要があります。\n" "\n" -"このレベルでは、§1、括弧は無視して変数の順序だけを考えましょう。\n" +"このレベル、§1では、括弧は無視して変数の順序だけを考えましょう。\n" "§2を§3に変更するには、§4と§5を、そして§6と§7を入れ替える必要があります。しかし、§8を使うと意外と簡単にできます。" #: Game.Levels.Algorithm.L01add_left_comm @@ -2290,12 +2276,7 @@ msgstr "succ_add" #. §1: `b` #. §2: `d` msgid "Finally use a targeted §0 to switch §1 and §2." -msgstr "" -"Finally use a targeted §0 to switch §1 and §2.\n" -"\n" -"\n" -"## 日本語翻訳\n" -"最終的に、§0を使用して§1と§2を切り替えてください。" +msgstr "最終的に、§0を使用して§1と§2を切り替えてください。" #: Game.Levels.LessOrEqual.L11le_two #. §0: `≤` @@ -2583,7 +2564,7 @@ msgstr "見られる範囲で新しい命題とタクティクが追加されて msgid "" "Now use §0 to switch §1 and §2 on the left\n" "hand side." -msgstr "現在、§0 を使用して左側の §1 と §2 を入れ替えます。" +msgstr "§0 を使用して左側の §1 と §2 を入れ替えます。" #: Game.Levels.Implication msgid "Implication World" @@ -5319,7 +5300,7 @@ msgstr "" #: Game.Levels.Algorithm.L02add_algo1 #. §0: `repeat rw [add_assoc]` msgid "Start with §0 to push all the brackets to the right." -msgstr "開始は§0から全括弧を右に移動させます。" +msgstr "§0から全括弧を右に移動させて、始めましょう。" #: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero #. §0: `cases a with d` From db9bd97d0268039f3e5bee64d9b322062249a3a7 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 21:49:06 +0900 Subject: [PATCH 057/147] ja: improve algorithm level 3 --- .i18n/ja/Game.po | 31 ++++++++----------------------- 1 file changed, 8 insertions(+), 23 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index fb33e6f3..1535e030 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1818,7 +1818,7 @@ msgstr "§0は§1の証明です。" #: Game.Levels.Algorithm.L03add_algo2 msgid "making life simple" -msgstr "生活を単純にする" +msgstr "生活を単純に" #: Game.Levels.Implication.L05succ_inj2 #. §0: `four_eq_succ_three` @@ -2583,16 +2583,6 @@ msgid "" "§1." msgstr "" "任意の自然数§0について、\n" -"§1.\n" -"\n" -"\n" -"## 参考訳\n" -"任意の自然数§0について、\n" -"§1.\n" -"\n" -"\n" -"### 翻訳結果\n" -"任意の自然数§0について、\n" "§1." #: Game.Levels.Algorithm.L08decide @@ -3270,12 +3260,7 @@ msgstr "" #: Game.Levels.Algorithm.L03add_algo2 msgid "Let's now make our own tactic to do this." -msgstr "" -"Let's now make our own tactic to do this.\n" -"\n" -"\n" -"## 日本語翻訳\n" -"自分独自のタクティクを作成しましょう。" +msgstr "自分独自のタクティクを作成しましょう。" #: Game.Levels.Tutorial.L02rw #. §0: `h` @@ -4578,10 +4563,10 @@ msgid "" "fed\n" "lemmas such as §2, so that it does not go into an infinite loop." msgstr "" -"# Overview\n" +"# 概要\n" "\n" -"Leanの簡略化処理器§0は、§1でタグ付けされたすべての lemmas およびユーザーから与えられたすべての lemmas " -"をできる限り簡略化します。さらに、§2のようなlemmasを与えると、内部の順序に変数を並び替える試みも行い、無限ループに陥らないようにします。" +"Leanの簡略化処理器§0は、§1でタグ付けされたすべての補題およびユーザーから与えられたすべての補題" +"をできる限り簡略化します。さらに、§2のような補題を与えると、内部の順序に変数を並び替える試みも行い、無限ループに陥らないようにします。" #: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero #. §0: `cases ha with n hn` @@ -5226,11 +5211,11 @@ msgid "" "This level is not a level which you want to solve by hand.\n" "Get the simplifier to solve it for you." msgstr "" -"Leanの簡約化器、§0は「§1を強化版」です。これは、§2でタグ付けされたすべての lemme およびユーザーによって与えられたすべての lemme " +"Leanの簡約化処理器、§0は「§1の強化版」です。これは、§2でタグ付けされたすべての補題およびユーザーによって与えられたすべての補題" "をできる限り簡約化します。\n" "\n" "このレベルは手作業で解くべきレベルではありません。\n" -"簡約化器に任せて解いてください。" +"簡約化処理器に任せて解いてください。" #: Game.Levels.Tutorial.L02rw #. §0: `h : X = Y` @@ -6022,7 +6007,7 @@ msgstr "" #: Game.Levels.Algorithm.L03add_algo2 #. §0: `simp only [add_left_comm, add_comm]` msgid "Solve this level in one line with §0" -msgstr "このレベルを一行で解いてください§0" +msgstr "このレベルを一行で解いてください: §0" #: Game.Levels.Algorithm.L05pred #. §0: `succ_inj` From 7838ab2dd2117fb8a9e87cfa0ce1c9732cfc24ee Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 21:53:35 +0900 Subject: [PATCH 058/147] ja: improve algorithm level 4 --- .i18n/ja/Game.po | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 1535e030..e6fe8046 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -4318,10 +4318,7 @@ msgid "" "Let's now move on to a more efficient approach to questions\n" "involving numerals, such as §0." msgstr "" -"## 数値に関連する質問に対するより効率的なアプローチ\n" -"\n" -"### 参考訳\n" -"数値に関連する質問、例えば§0 に対するより効率的なアプローチについて見ていきましょう。" +"数値に関連する問題、例えば§0 に対するより効率的なアプローチについて見ていきましょう。" #: Game.Levels.Multiplication.L09mul_assoc msgid "" @@ -5924,7 +5921,7 @@ msgstr "two_mul" #: Game.Levels.Algorithm.L04add_algo3 msgid "the simplest approach" -msgstr "最简单的方法" +msgstr "最も単純なアプローチ" #: Game.Levels.Implication.L01exact #. §0: $P\\implies Q$ From 0b0f38ffc61af217b834b95741b6844fec585220 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 22:03:57 +0900 Subject: [PATCH 059/147] ja: improve algorithm level 5 --- .i18n/ja/Game.po | 32 ++++++-------------------------- 1 file changed, 6 insertions(+), 26 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index e6fe8046..b738eb5e 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -4898,7 +4898,7 @@ msgstr "では、第二の目標に移ります。ここでは、 帰納法の #: Game.Levels.Algorithm.L05pred msgid "pred" -msgstr "前提" +msgstr "pred" #: Game.Levels.Implication.L01exact Game.Levels.LessOrEqual.L01le_refl #. §0: `exact` @@ -5111,7 +5111,7 @@ msgstr "" #: Game.Levels.Algorithm.L05pred #. §0: `rw [← pred_succ a]` msgid "Start with §0 and take it from there." -msgstr "開始は§0からにして、その後は対話型で進めてください。" +msgstr "§0から始めて、そこから続けてください。" #: Game.Levels.Algorithm.L05pred #. §0: `0` @@ -5142,29 +5142,9 @@ msgid "" "Peano assumed as an axiom and which we have already used extensively " "without justification." msgstr "" -"### 原文 (English)\n" -"We now start work on an algorithm to do addition more efficiently. Recall " -"that\n" -"we defined addition by recursion, saying what it did on §0 and successors.\n" -"It is an axiom of Lean that recursion is a valid\n" -"way to define functions from types such as the naturals.\n" -"\n" -"Let's define a new function §1 from the naturals to the naturals, which\n" -"attempts to subtract 1 from the input. The definition is this:\n" -"\n" -"§2\n" -"\n" -"We cannot subtract one from 0, so we just return a junk value. As well as " -"this\n" -"definition, we also create a new lemma §3, which says that §4.\n" -"Let's use this lemma to prove §5, the theorem which\n" -"Peano assumed as an axiom and which we have already used extensively " -"without justification.\n" -"\n" -"\n" -"### 翻訳 (Japanese)\n" -"現在、効率的な加算を行うアルゴリズムの作成を開始します。再帰によって加算を定義したことを思い出してください。具体的には、0" -"と後続者に対して何を行うかを定義しました。\n" +"効率的な加算を行うアルゴリズムの作成を開始します。\n" +"再帰によって加算を定義したことを思い出してください。\n" +"具体的には、0と後者に対して何を行うかを定義しました。\n" "Leanの公理として、再帰は自然数などの型から関数を定義する有効な方法であるとされています。\n" "\n" "自然数から自然数への新しい関数§1を定義します。これは、入力から1を引こうとする関数です。その定義は以下の通りです:\n" @@ -6013,7 +5993,7 @@ msgid "" "Nice! You've proved §0!\n" "Let's now prove Peano's other axiom, that successors can't be §1." msgstr "" -"Nice! あなたは§0を証明しました!\n" +"ナイス! あなたは§0を証明しました!\n" "\n" "今度はペアノの他の公理、すなわち後続が§1にならないことを証明しましょう。" From 5af1f4b475caea557ecdc9de1a123b32aaed7487 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 22:10:56 +0900 Subject: [PATCH 060/147] ja: improve algorithm level 6 --- .i18n/ja/Game.po | 41 +++++++---------------------------------- 1 file changed, 7 insertions(+), 34 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index b738eb5e..314353cc 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1643,11 +1643,6 @@ msgid "" "We're going to change that §0 into §1. Start by changing it into\n" "§2 by executing §3." msgstr "" -"We're going to change that §0 into §1. Start by changing it into\n" -"§2 by executing §3.\n" -"\n" -"\n" -"## 日本語翻訳\n" "§0 を §1 に変更します。まず、§3 を実行して §0 を §2 に変更します。" #: Game.Levels.Algorithm.L07succ_ne_succ @@ -2555,7 +2550,7 @@ msgstr "もし目標が*正確に*仮定でない場合、時としてリライ msgid "" "See if you can take it from here. Look at the new lemmas and tactic\n" "available on the right." -msgstr "見られる範囲で新しい命題とタクティクが追加されています。それらを活用してみてください。" +msgstr "右に新しい補題とタクティクが追加されています。それらを活用してみてください。" #: Game.Levels.Algorithm.L02add_algo1 #. §0: `rw [add_left_comm b c]` @@ -3164,7 +3159,7 @@ msgid "" "\n" "§0 will solve the goal §1." msgstr "" -"# 結果\n" +"# 概要\n" "\n" "§0 は目標 §1 を解決します。" @@ -3932,7 +3927,7 @@ msgstr "" msgid "" "Start with §0 (remembering that §1 is just notation\n" "for §2)." -msgstr "開始は §0 から (§1 は §2 の表記法であることを覚えておいてください)。" +msgstr "§0 から始めましょう(§1 は §2 の表記法であることを覚えておいてください)。" #: Game.Levels.Addition.L01zero_add #. §0: `n` @@ -5156,12 +5151,7 @@ msgstr "" #: Game.Levels.Algorithm.L06is_zero msgid "is_zero" -msgstr "" -"is_zero\n" -"\n" -"\n" -"## 日本語翻訳\n" -"零判定" +msgstr "is_zero" #: Game.Levels.Multiplication.L09mul_assoc #. §0: $a$ @@ -5315,30 +5305,13 @@ msgid "" "\n" "If you can turn your goal into §9, then the §10 tactic will solve it." msgstr "" -"### 原文 (English)\n" -"We define a function §0 thus:\n" -"\n" -"§1\n" -"\n" -"We also create two lemmas, §2 and §3, saying that §4\n" -"and §5. Let's use these lemmas to prove §6, Peano's\n" -"Last Axiom. Actually, we have been using §7 before, but it's handy to have\n" -"this opposite version too, which can be proved in the same way. Note: you " -"can\n" -"cheat here by using §8 but the point of this world is to show\n" -"you how to *prove* results like that.\n" -"\n" -"If you can turn your goal into §9, then the §10 tactic will solve it.\n" -"\n" -"\n" -"### 日本語翻訳\n" "関数 §0 を定義します:\n" "\n" "§1\n" "\n" -"また、命題 §2 と §3 を作成し、§4\n" -"と §5 を言います。これらの命題を使って、ペアノの最終公理 §6 を証明しましょう。実際、§7 " -"は以前から使用していましたが、同じ方法で証明できる逆の命題も用意しておくと便利です。注意:ここでは §8 を使用して cheat " +"また、補題 §2 と §3 を作成し、§4\n" +"と §5 とします。これらの命題を使って、ペアノの最終公理 §6 を証明しましょう。実際、§7 " +"は以前から使用していましたが、同じ方法で証明できる逆の命題も用意しておくと便利です。注意:ここでは §8 を使用してチート" "することができますが、このワールドの目的は、そのような結果を証明する方法を示すことです。\n" "\n" "目標を §9 に変換できるなら、§10 タクティクで解決できます。" From 98b62901af1d163b3af12a10bf9557c9ff020712 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 22:34:47 +0900 Subject: [PATCH 061/147] ja: improve algorithm level 8 --- .i18n/ja/Game.po | 38 ++++---------------------------------- 1 file changed, 4 insertions(+), 34 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 314353cc..7b68b3fb 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -461,7 +461,7 @@ msgstr "" #: Game.Levels.Algorithm.L08decide msgid "decide" -msgstr "決定" +msgstr "decide" #: Game.Levels.Implication.L02exact2 #. §0: `rw [zero_add] at «{h}»` @@ -1319,33 +1319,9 @@ msgid "" "§21 is §22 and then §23. This level is a proof of the one\n" "remaining job we have to do: if §24 then §25." msgstr "" -"### 原文 (English)\n" -"Here we begin to\n" -"develop an algorithm which, given two naturals §0 and §1, returns the " -"answer\n" -"to \"does §2?\"\n" -"\n" -"Here is the algorithm. First note that §3 and §4 are numbers, and hence\n" -"are either §5 or successors.\n" -"\n" -"*) If §6 and §7 are both §8, return \"yes\".\n" -"\n" -"*) If one is §9 and the other is §10, return \"no\".\n" -"\n" -"*) If §11 and §12, then return the answer to \"does §13?\"\n" -"\n" -"Our job now is to *prove* that this algorithm always gives the correct " -"answer. The proof that\n" -"§14 is §15. The proof that §16 is §17, and the proof\n" -"that §18 is §19. The proof that if §20 then\n" -"§21 is §22 and then §23. This level is a proof of the one\n" -"remaining job we have to do: if §24 then §25.\n" -"\n" -"\n" -"### 翻訳 (Japanese)\n" "ここでは、与えられた二つの自然数 §0 と §1 に対して、\"§2?\" という質問の答えを返すアルゴリズムを開発します。\n" "\n" -"このアルゴリズムは以下のようになっています。まず、§3 と §4 は数であり、したがって §5 または §5 の後継者です。\n" +"このアルゴリズムは以下のようになっています。まず、§3 と §4 は数であり、したがって §5 または §5 の後者です。\n" "\n" "1. §6 と §7 が両方とも §8 の場合、\"yes\" を返す。\n" "2. 一方が §9 で他方が §10 の場合、\"no\" を返す。\n" @@ -1929,7 +1905,7 @@ msgstr "" msgid "" "You can read more about the §0 tactic by clicking\n" "on it in the top right." -msgstr "以下の§0 タクティクについて詳しく知るには、右上にクリックしてください。" +msgstr "§0 タクティクについて詳しく知るには、右上をクリックしてください。" #: Game.Levels.Implication.L08ne #. §0: `a ≠ b` @@ -4755,8 +4731,6 @@ msgid "" "\n" "§4." msgstr "" -"### 翻訳\n" -"\n" "# 概要\n" "\n" "仮定\n" @@ -5839,11 +5813,7 @@ msgstr "等価性のアルゴリズム" #: Game.Levels.AdvMultiplication.L05le_mul_right msgid "le_mul_right" -msgstr "" -"le_mul_right\n" -"\n" -"## 日本語翻訳\n" -"右側乗算に関する定理です。" +msgstr "le_mul_right" #: Game.Levels.Power msgid "Power World" From 45c3a66719ab2ff96f0814009f61487a240b41e6 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 22:39:59 +0900 Subject: [PATCH 062/147] ja: improve algorithm level 9 --- .i18n/ja/Game.po | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 7b68b3fb..91a4b751 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -810,11 +810,8 @@ msgid "" "will be helpful for you in Even-Odd World (when someone gets around to\n" "implementing it)." msgstr "" -" Congratulations! あなたはアルゴリズムワールドを完了しました。これらのアルゴリズムは、Even-Odd " -"Worldが実装されるまで、あなたにとって役立つでしょう。\n" -"\n" -"\n" -"## 日本語翻訳\n" +"おめでとうございます! あなたはアルゴリズムワールドを完了しました。これらのアルゴリズムは、Even-Odd " +"ワールドが実装されるまで、あなたにとって役立つでしょう。" #: Game.Levels.Tutorial.L08twoaddtwo #. §0: `h : X = Y` @@ -1830,7 +1827,7 @@ msgstr "mul_comm" msgid "" "We gave a pretty unsatisfactory proof of §0 earlier on; now give a nicer " "one." -msgstr "## 前回の証明は不十分でしたので、今回はより良い証明方法を示します。" +msgstr "前回の §0 の証明は不十分でしたので、今回はより良い証明方法を示します。" #: Game.Levels.Addition.L01zero_add #. §0: $n = 0$ @@ -4615,7 +4612,7 @@ msgstr "" #: Game.Levels.Algorithm.L09decide2 msgid "decide again" -msgstr "再決定" +msgstr "もう一度 decide" #: Game.Levels.LessOrEqual.L03le_succ_self msgid "x ≤ succ x" From 924dc1a6d0dc3c1e15d627fd55d3233384fa0b0d Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 22:44:10 +0900 Subject: [PATCH 063/147] ja: improve advanced addition introduction --- .i18n/ja/Game.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 91a4b751..bd53c516 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1732,7 +1732,7 @@ msgstr "x ≤ 0 → x = 0" #: Game.Levels.AdvAddition msgid "Advanced Addition World" -msgstr "高度な追加ワールド" +msgstr "高度な加算ワールド" #: Game.Levels.Tutorial.L01rfl #. §0: $x$ @@ -2660,7 +2660,7 @@ msgid "" "\n" "Click on \"Start\" to proceed." msgstr "" -"### Advanced Addition World " +"高度な加算ワールド" "では、基本的な加法に関するいくつかの事実(§0)を証明します。このワールドで証明された定理は、§1 世界で不等式の理論を構築するために使用されます。\n" "\n" "「開始」をクリックして進みましょう。" @@ -4332,7 +4332,7 @@ msgstr "" "\n" "§0\n" "\n" -"この「進階加算ワールド」は終了しました。次の「§1ワールド」では、これらの定理が必要になるでしょう。\"ホーム\"をクリックしてアクセスしてください。\n" +"この「高度な加算ワールド」は終了しました。次の「§1ワールド」では、これらの定理が必要になるでしょう。\"ホーム\"をクリックしてアクセスしてください。\n" "\n" "\n" "##" From 7161344409362edbd4806837717240bc28ab92ca Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 22:56:38 +0900 Subject: [PATCH 064/147] ja: improve advanced addition level 1 --- .i18n/ja/Game.po | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index bd53c516..e8d20928 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1880,12 +1880,7 @@ msgstr "" #: Game.Levels.AdvAddition.L01add_right_cancel msgid "add_right_cancel" -msgstr "" -"add_right_cancel\n" -"\n" -"\n" -"## 日本語翻訳\n" -"右側キャンセル定理" +msgstr "add_right_cancel" #: Game.Levels.Implication.L04succ_inj #. §0: `succ_eq_add_one` @@ -2824,7 +2819,7 @@ msgstr "すべての数 §0 について、 §1 。" #: Game.Levels.AdvAddition.L01add_right_cancel #. §0: `n` msgid "Start with induction on §0." -msgstr "開始は §0 に対する帰納法からです。" +msgstr "§0 に対する帰納法から始めてください。" #: Game.Levels.LessOrEqual.L08le_total msgid "x ≤ y or y ≤ x" @@ -4453,7 +4448,7 @@ msgid "" "\n" "§0 is the theorem that §1." msgstr "" -"このワールドでは、主にあなたを自分で残します。\n" +"このワールドでは、基本的にあなた自身で進めていただきます。\n" "\n" "§0は、§1の定理です。" From f7a37fa23ddf91ee8b9dce24d5f3c76a6d5e1c25 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 23:00:17 +0900 Subject: [PATCH 065/147] ja: improve advanced addition level 2 --- .i18n/ja/Game.po | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index e8d20928..c0b4a355 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -264,12 +264,7 @@ msgstr "" #: Game.Levels.AdvAddition.L02add_left_cancel msgid "add_left_cancel" -msgstr "" -"add_left_cancel\n" -"\n" -"\n" -"## 日本語翻訳\n" -"左-cancel 付加律" +msgstr "add_left_cancel" #: Game.Levels.LessOrEqual.L01le_refl msgid "You can probably take it from here." From 6889095c0659a67d1ff65ce4d851314255bc7c0e Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 23:07:32 +0900 Subject: [PATCH 066/147] ja: improve advanced addition level 3 --- .i18n/ja/Game.po | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index c0b4a355..b69a9a51 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1960,12 +1960,7 @@ msgstr "" #: Game.Levels.AdvAddition.L03add_left_eq_self msgid "add_left_eq_self" -msgstr "" -"add_left_eq_self\n" -"\n" -"\n" -"## 日本語翻訳\n" -"左側への追加が自身と等しいという命題の定理です。" +msgstr "add_left_eq_self" #: GameServer.RpcHandlers msgid "level completed with warnings… 🎭" @@ -5716,24 +5711,12 @@ msgid "" "back to command line mode.\n" "§5" msgstr "" -"Did you use induction on §0?\n" -"Here's a two-line proof of §1 which uses §2.\n" -"If you want to inspect it, you can go into editor mode by clicking §3 in " -"the top right\n" -"and then just cut and paste the proof and move your cursor around it\n" -"to see the hypotheses and goal at any given point\n" -"(although you'll lose your own proof this way). Click §4 to get\n" -"back to command line mode.\n" -"§5\n" -"\n" -"\n" -"### 翻訳\n" "§0について帰納法を使ったでしょうか?\n" -"§2を使用して§1の二行証明があります。\n" +"§2を使用して§1の2行の証明があります。\n" "証明を確認したい場合は、右上にある§3をクリックしてエディタモードに入り、\n" "その後証明を切り取り、貼り付け、カーソルを動かして任意のポイントでの仮定と目標を確認できます。\n" "(ただし、この方法で自分の証明は失われます)。§4をクリックして\n" -"コマンドラインモードに戻りましょう。\n" +"コマンドラインモード (訳注: タイプライターモード) に戻りましょう。\n" "§5" #: Game.Levels.LessOrEqual.L05le_zero From 718197b6e9187e941fe77133b5ec70a4602c8380 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 26 Apr 2026 23:18:09 +0900 Subject: [PATCH 067/147] ja: improve advanced addition level 4 --- .i18n/ja/Game.po | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index b69a9a51..daede90e 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -5292,12 +5292,7 @@ msgstr "乗法の右側への乗算の不等式定理" #: Game.Levels.AdvAddition.L04add_right_eq_self msgid "add_right_eq_self" -msgstr "" -"add_right_eq_self\n" -"\n" -"\n" -"## 日本語翻訳\n" -"右側への加算が自身と等しいこと" +msgstr "add_right_eq_self" #: Game.Levels.Implication.L08ne #. §0: `2 + 2 ≠ 5` From f8c5377faa37ae88eac07ae6407615f90a0616ea Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 27 Apr 2026 00:40:42 +0900 Subject: [PATCH 068/147] ja: improve advanced addition level 5 --- .i18n/ja/Game.po | 38 ++++---------------------------------- 1 file changed, 4 insertions(+), 34 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index daede90e..3e32e3ec 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -745,37 +745,12 @@ msgid "" "make a proof of §15! So you will end up with no goals, meaning you have " "proved everything." msgstr "" -"### 原文 (English)\n" -"The next result we'll need in §0 World is that if §1 then §2 and §3.\n" -"Let's prove one of these facts in this level, and the other in the next.\n" -"\n" -"## A new tactic: §4\n" -"\n" -"The §5 tactic will split an object or hypothesis up into the possible ways\n" -"that it could have been created.\n" -"\n" -"For example, sometimes you want to deal with the two cases §6 and §7 " -"separately,\n" -"but don't need the inductive hypothesis §8 that comes with §9.\n" -"In this situation you can use §10 instead. There are two ways to make\n" -"a number: it's either zero or a successor. So you will end up with two " -"goals, one\n" -"with §11 and one with §12.\n" -"\n" -"Another example: if you have a hypothesis §13 then you are done, because a " -"false statement implies\n" -"any statement. Here §14 will close the goal, because there are *no* ways to\n" -"make a proof of §15! So you will end up with no goals, meaning you have " -"proved everything.\n" -"\n" -"\n" -"### 翻訳 (Japanese)\n" "次に §0 ワールドで必要になる結果は、もし §1 なら §2 と §3 です。\n" "このレベルで一つの事実を証明し、次のレベルでもう一つの事実を証明しましょう。\n" "\n" "## 新しいタクティク: §4\n" "\n" -"§5 タクティクは、オブジェクトや仮定を生成された可能性のある方法に分割します。\n" +"§5 タクティクは、目的や仮定を生成された可能性のある方法に分割します。\n" "\n" "例えば、時々 §6 と §7 の二つのケースを個別に扱いたい場合がありますが、§9 が伴う §8 の帰納的仮定は必要ありません。\n" "この状況では、§10 を使用することができます。数を作る方法は二つあります:ゼロか後続です。したがって、二つの目標が残ります。一つには §11 " @@ -3603,7 +3578,7 @@ msgid "" "and a proof §22. This is because the *definition* of §23 is\n" "§24." msgstr "" -"## まとめ\n" +"## 概要\n" "\n" "もし§0が数値である場合、§1は目標を二つに分割し、一つには§2、もう一つには§3が含まれます。\n" "\n" @@ -5198,12 +5173,7 @@ msgstr "" #: Game.Levels.AdvAddition.L06add_left_eq_zero #. §0: $a+b=0 \\implies a=0$ msgid "A proof that §0." -msgstr "" -"A proof that §0.\n" -"\n" -"\n" -"## 日本語翻訳\n" -"証明: §0." +msgstr "§0 の証明。" #: Game.Levels.Algorithm.L02add_algo1 #. §0: `repeat rw [add_assoc]` @@ -5914,7 +5884,7 @@ msgstr "すべての自然数 §0 に対して、§1 が成り立ちます。" #: Game.Levels.AdvAddition.L05add_right_eq_zero msgid "Well done!" -msgstr " WELL DONE!" +msgstr "よくできました!" #: Game.Levels.Tutorial.L06add_zero2 msgid "Precision rewriting" From 635b75ce468a6f4716de9ba59a9a10454c941517 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 27 Apr 2026 00:43:44 +0900 Subject: [PATCH 069/147] ja: improve advanced addition level 6 --- .i18n/ja/Game.po | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 3e32e3ec..4df929ed 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -2339,10 +2339,8 @@ msgid "" "out a way\n" "of using it." msgstr "" -"以下の訳文は、提供された参考訳を考慮して翻訳しました。\n" -"\n" -"### 翻訳 (日本語)\n" -"前の証明を模倣してこれを行うこともできます -- または、それを活用する方法を考え出すこともできます。" +"前の証明を模倣してこれを行うこともできます \n" +"-- または、それを活用する方法を考え出すこともできます。" #: Game.Levels.Tutorial.L03two_eq_ss0 #. §0: `0` @@ -4285,17 +4283,11 @@ msgid "" "That's the end of Advanced Addition World! You'll need these theorems\n" "for the next world, §1 World. Click on \"Home\" to access it." msgstr "" -"以下の訳文です:\n" -"\n" -"### 日本語\n" "証明としては、以下のようなものはどうでしょうか:\n" "\n" "§0\n" "\n" -"この「高度な加算ワールド」は終了しました。次の「§1ワールド」では、これらの定理が必要になるでしょう。\"ホーム\"をクリックしてアクセスしてください。\n" -"\n" -"\n" -"##" +"この「高度な加算ワールド」は終了しました。次の「§1ワールド」では、これらの定理が必要になるでしょう。\"ホーム\"をクリックしてアクセスしてください。" #: Game.Levels.Multiplication.L01mul_one #. §0: `Mul a b` From de704645f0f1873eb22ff34e365937a6c97c5c46 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 27 Apr 2026 00:46:49 +0900 Subject: [PATCH 070/147] ja: improve leq introduction --- .i18n/ja/Game.po | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 4df929ed..e2ad5531 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -2300,19 +2300,6 @@ msgid "" "\n" "Click on \"Start\" to proceed." msgstr "" -"### 原文 (English)\n" -"In this world we define §0 and prove standard facts\n" -"about it, such as \"if §1 and §2 then §3.\"\n" -"\n" -"The definition of §4 is \"there exists a number §5\n" -"such that §6. \" So we're going to have to learn\n" -"a tactic to prove \"exists\" theorems, and another one\n" -"to use \"exists\" hypotheses.\n" -"\n" -"Click on \"Start\" to proceed.\n" -"\n" -"\n" -"### 翻訳 (Japanese)\n" "このワールドで §0 を定義し、その標準的な事実を証明します。例えば、「§1 と §2 が成り立つなら §3 が成り立つ」などです。\n" "\n" "§4 の定義は「ある数 §5 が存在して、§6 " @@ -5715,12 +5702,7 @@ msgstr "§0は§1の証明です。" #: Game.Levels.LessOrEqual msgid "≤ World" -msgstr "" -"≤ ワールド\n" -"\n" -"\n" -"## 日本語翻訳\n" -"ワールド" +msgstr "≤ ワールド" #: Game.Levels.Multiplication.L05one_mul Game.Levels.Multiplication.L06two_mul #. §0: ``` From df78dcb44dfff563b682bb17ec0e7050fde4ef7f Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 27 Apr 2026 01:21:51 +0900 Subject: [PATCH 071/147] ja: improve leq level 1 --- .i18n/ja/Game.po | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index e2ad5531..8910f8f0 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -268,7 +268,7 @@ msgstr "add_left_cancel" #: Game.Levels.LessOrEqual.L01le_refl msgid "You can probably take it from here." -msgstr "您可能已经可以继续了。" +msgstr "おそらく、ここから始めても問題ありません。" #: Game.Levels.Tutorial.L08twoaddtwo msgid "2+2=4" @@ -3646,7 +3646,8 @@ msgstr "" "\n" "このゲームには負の数が存在しないので、この定義は数学的に有効です。\n" "\n" -"这意味着如果你的目标形式为§2,你可以使用§3タクティク進展,如果你有仮定§4,你可以使用§5タクティク進展。" +" これは、あなたが§2という形式の目標を持っている場合、\n" +"§3のタクティクを使って進展できることを意味します。また、仮定§4を持っている場合、§5のタクティクを使って進展できます。" #: Game.Levels.Implication.L06intro #. §0: `exact h` @@ -3661,13 +3662,8 @@ msgid "" "The reason §0 is because §1.\n" "So you should start this proof with §2." msgstr "" -"The reason §0 is because §1.\n" -"So you should start this proof with §2.\n" -"\n" -"\n" -"## 翻訳\n" -"理由§0は§1である。\n" -"従って、この証明は§2から始めるべきである。" +"§0は§1であるため成立します。\n" +"従って、この証明は§2から始めるべきです。" #: Game.Levels.LessOrEqual.L04le_trans Game.Levels.LessOrEqual.L06le_antisymm #. §0: $x \\leq y$ @@ -6305,7 +6301,7 @@ msgid "" "- §13\n" "- §14" msgstr "" -"## 結論\n" +"## 概要\n" "\n" "§0 タクティクは、何かが存在することを主張する目標に対して進展を遂げます。\n" "もし目標が何かが特定の性質を持つ存在することを主張し、その存在を知る方法が §2 である場合、§3 は進展を遂げます。\n" From 152d98b21e0b33a5d1e37b4e758653918ea7b6ed Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 27 Apr 2026 01:37:22 +0900 Subject: [PATCH 072/147] ja: improve leq level 2 --- .i18n/ja/Game.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 8910f8f0..cb4ad9a3 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -2780,7 +2780,7 @@ msgstr "x ≤ y または y ≤ x" #. §1: `c` #. §2: `x = 0 + c` msgid "To solve this level, you need to §0 a number §1 such that §2." -msgstr "このレベルを解くためには、§0 に数字 §1 を §2 する必要があります。" +msgstr "このレベルを解くためには、§0 に数値 §1 を指定して §2 にする必要があります。" #: Game.Levels.AdvMultiplication.L06mul_right_eq_one #. §0: `le_mul_right` From 41632a3127d1d92a4a218cf3d418b719b4e25ffd Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 27 Apr 2026 01:49:32 +0900 Subject: [PATCH 073/147] ja: improve leq level 3 --- .i18n/ja/Game.po | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index cb4ad9a3..5ff5f3a3 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -3829,10 +3829,10 @@ msgid "" "\n" "This works because §1 is a proof of §2." msgstr "" -"以下は二行分です:\n" +"以下は2行の証明です:\n" "§0\n" "\n" -"これは §1 が §2 の証明であるため Works します。" +"これは §1 が §2 の証明であるため動作します。" #: Game.Levels.Algorithm.L06is_zero #. §0: `intro h` @@ -5331,10 +5331,8 @@ msgid "" "If you §0 the wrong number, you get stuck with a goal you can't prove.\n" "What number will you §1 here?" msgstr "" -"もし間違ったタクティクを §0 选用,则会陷入无法证明的目标 §1 中。\n" -"\n" -"\n" -"何を §1 选用?" +"もし、間違った数字を §0 に使用した場合、証明できない目標に陥ります。\n" +"どの数値を §1 しますか?" #: Game.Levels.Multiplication.L04mul_comm msgid "Multiplication is commutative." @@ -5560,7 +5558,7 @@ msgstr "" #. §0: $x$ #. §1: $x \\le x$ msgid "If §0 is a number, then §1." -msgstr "もし§0が数値である場合、§1。" +msgstr "もし§0が数値なら、§1。" #: Game.Levels.LessOrEqual.L10le_one #. §0: ``` From 72cf02bf25eb387939b19a269e75e623d6d9423a Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 27 Apr 2026 01:57:51 +0900 Subject: [PATCH 074/147] ja: improve leq level 4 --- .i18n/ja/Game.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 5ff5f3a3..f6219c47 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1234,7 +1234,7 @@ msgid "" "before.\n" "The §0 tactic can be used to take §1 apart." msgstr "" -"このレベルでは、不等式が仮定(*hypothesis*)として扱われます。これまでに見られなかった手法です。\n" +"このレベルでは、不等式が*仮定*として扱われます。これまでに見られなかった手法です。\n" "§0 タクティクは、§1 を分解するのに使用できます。" #: Game.Levels.Algorithm.L07succ_ne_succ @@ -3720,7 +3720,7 @@ msgstr "" msgid "" "Now you need to figure out which number to §0. See if you can take it from " "here." -msgstr "今度は §0 の部分に何を入力するか考えなさい。ここから進められるようなら自分で進めてみてください。" +msgstr "今度は §0 の部分に何を入力するか考えてください。ここから進められるようなら自分で進めてみてください。" #: Game.Levels.Implication.L03apply #. §0: `t : P → Q` @@ -4614,7 +4614,7 @@ msgstr "" "より正確には、§4を証明しています。言葉で言えば、\n" "§5ならば(一時停止)§6ならば§7です。\n" "\n" -"## 転置性に関する注記\n" +"## 結合性に関する注記\n" "\n" "Leanでは、§8は§9を意味し、§10は左側から結合します。しかし、§11は右側から結合します。これにより、Leanでは§12は§13が " "Transitiv(転置的)であることを意味します。これは、数学的な文脈では通常§14を意味しないことを示しています;数学的には、これは通常§15と§1" @@ -4748,7 +4748,7 @@ msgid "" "A passing mathematician remarks that with reflexivity and transitivity out " "of the way,\n" "you have proved that §0 is a *preorder* on §1." -msgstr "一過性の数学者が言及し、反射律と伝搬律を除けば、§0 は §1 上の *前順序* を証明したと述べています。" +msgstr "通りすがりの数学者が、反射律と伝搬律を除けば、§0 は §1 上の *前順序* を証明したと述べています。" #: Game.Levels.LessOrEqual.L06le_antisymm #. §0: ``` From 570599657949a5a4f9ceb27138b8f16c4b885d9b Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 27 Apr 2026 02:09:14 +0900 Subject: [PATCH 075/147] ja: improve leq level 5 --- .i18n/ja/Game.po | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index f6219c47..6c5a09cc 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -412,7 +412,7 @@ msgstr "" #. §0: $x \\leq 0$ #. §1: $x=0$ msgid "If §0, then §1." -msgstr "もし§0であるなら、§1です。" +msgstr "§0ならば、§1。" #: Game.Levels.AdvMultiplication.L02mul_left_ne_zero #. §0: `apply h` @@ -5663,14 +5663,7 @@ msgid "" "but to prove it you will need a result which you showed in advanced\n" "addition world." msgstr "" -"### 原文 (English)\n" -"It's \"intuitively obvious\" that there are no numbers less than zero,\n" -"but to prove it you will need a result which you showed in advanced\n" -"addition world.\n" -"\n" -"\n" -"## 日本語翻訳\n" -"「零未満の数は存在しない」ということは直感的に明らかですが、それを証明するには、先に学んだ加算ワールドで示した結果が必要です。" +"ゼロ未満の数は存在しないということは「直感的に明らか」ですが、それを証明するには、高度な加算ワールドで示した結果が必要です。" #: Game.Levels.Implication.L04succ_inj #. §0: `exact h` From 898a001225a4aa667f5ad48bef355ae27079a774 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 27 Apr 2026 02:22:44 +0900 Subject: [PATCH 076/147] ja: improve leq level 6 --- .i18n/ja/Game.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 6c5a09cc..798ebb68 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1300,7 +1300,7 @@ msgstr "" #: Game.Levels.LessOrEqual.L06le_antisymm msgid "x ≤ y and y ≤ x implies x = y" -msgstr "x ≤ y と y ≤ x は x = y を意味します。" +msgstr "x ≤ y と y ≤ x ならば x = y" #: Game.Levels.LessOrEqual.L07or_symm #. §0: `left` @@ -4779,7 +4779,7 @@ msgstr "" "私の証明:\n" "§0\n" "\n" -"数学的な通りすがりの人々が言います。反対称性も考慮すると、\n" +"通りすがりの数学は、反対称性も考慮すると、\n" "あなたは§1が§2上の*部分順序*であることを証明しました。\n" "\n" "このワールドのボスレベルは、§3が完全順序であることを証明することです。\n" From f2e42aa36dd4b89dd5462aa9b3ca1c67153c1758 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 27 Apr 2026 02:34:40 +0900 Subject: [PATCH 077/147] ja: improve leq level 7 --- .i18n/ja/Game.po | 58 +++++++++++------------------------------------- 1 file changed, 13 insertions(+), 45 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 798ebb68..d820b3f8 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -772,7 +772,7 @@ msgstr "タクティク §0 を使用するには、目標の下のテキスト #. §2: $y=42$ #. §3: $x=37$ msgid "If §0 or §1, then §2 or §3." -msgstr "もし§0 または §1 ならば, §2 または §3 です。" +msgstr "もし§0 または §1 ならば, §2 または §3 。" #: Game.Levels.Algorithm.L09decide2 msgid "" @@ -1322,13 +1322,11 @@ msgid "" "Note that this tactic can turn a solvable goal into an unsolvable\n" "one." msgstr "" -"### 翻訳\n" -"# まとめ\n" +"# 概要\n" "§0 タクティクは、目標 §1 を §2 に変更します。\n" "仮定が §3 が真である理由は実際には §4 が真であるからである場合に使用します。\n" "\n" -"内部的には、このタクティクは §6 という定理を §5 し、\n" -"§6\n" +"内部的には、このタクティクは §6 という定理を §5 します。\n" "\n" "注意していただきたいのは、このタクティクが解決可能な目標を解決不能な目標に変更する可能性があることです。" @@ -1545,13 +1543,7 @@ msgstr "ノート:§0は§1を意味します。目標や仮定内の任意の #: Game.Levels.LessOrEqual.L07or_symm #. §0: `cases «{h}» with hx hy` msgid "We don't know whether to go left or right yet. So start with §0." -msgstr "" -"### 原文 (English)\n" -"We don't know whether to go left or right yet. So start with §0.\n" -"\n" -"\n" -"## 日本語翻訳\n" -"まだ左に進むべきか右に進むべきかは分かりません。そのため、§0から始めてみましょう。" +msgstr "まだ左に進むべきか右に進むべきかは分かりません。そのため、§0から始めてみましょう。" #: Game.Levels.AdvMultiplication.L05le_mul_right #. §0: $2$ @@ -1714,7 +1706,7 @@ msgstr "任意の自然数§0と§1が与えられた場合、§2" #: Game.Levels.LessOrEqual.L07or_symm #. §0: `left` msgid "This time, use the §0 tactic." -msgstr "この回は、§0 タクティクを使用します。" +msgstr "今回は、§0 タクティクを使用します。" #: Game.Levels.Power.L09add_sq #. §0: $(a+b)^2=a^2+b^2$ @@ -3955,35 +3947,16 @@ msgid "" "§11 will create two goals, one where you went left,\n" "and the other where you went right." msgstr "" -"### 原文 (English)\n" -"Totality of §0 is the boss level of this world, and it's coming up next. It " -"says that\n" -"if §1 and §2 are naturals then either §3 or §4.\n" -"But we haven't talked about §5 at all. Here's a run-through.\n" -"\n" -"1) The notation for \"or\" is §6. You won't need to type it, but you can\n" -"type it with §7.\n" -"\n" -"2) If you have an \"or\" statement in the *goal*, then two tactics make\n" -"progress: §8 and §9. But don't choose a direction unless your\n" -"hypotheses guarantee that it's the correct one.\n" -"\n" -"3) If you have an \"or\" statement as a *hypothesis* §10, then\n" -"§11 will create two goals, one where you went left,\n" -"and the other where you went right.\n" -"\n" -"\n" -"### 翻訳 (Japanese)\n" -"完全性の §0 はこのワールドのボスレベルであり、次に登場します。これは、§1 と §2 が自然数である場合、§3 または §4 " +"§0 の全域性はこのワールドのボスレベルであり、次に登場します。これは、§1 と §2 が自然数である場合、§3 または §4 " "であることを言います。\n" "しかし、§5 については全く話していません。以下は概要です。\n" "\n" "1) \"または\" の表記は §6 です。直接入力する必要はありませんが、§7 で入力することができます。\n" "\n" -"2) 目的 §8 に \"または\" の文がある場合、2 つのタクティク §9 " -"が進行します。ただし、方向を選択する前に、仮定が正しい方向を保証していることを確認してください。\n" +"2) 目標に \"または\" の文がある場合、2 つのタクティク §8 と §9 " +"で進めます。ただし、方向を選択する前に、仮定が正しい方向を保証していることを確認してください。\n" "\n" -"3) 仮定 §10 に \"または\" の文がある場合、§11 は 2 つの目的を作成します。一つは左に進んだ場合、もう一つは右に進んだ場合です。" +"3) 仮定 §10 に \"または\" の文がある場合、§11 は 2 つの目標を作成します。一つは左に進んだ場合、もう一つは右に進んだ場合です。" #: Game.Levels.Tutorial.L03two_eq_ss0 #. §0: `one_eq_succ_zero` @@ -4154,7 +4127,7 @@ msgstr "" #. §2: `y ≤ x` #. §3: `x = y` msgid "§0 is a proof that if §1 and §2 then §3." -msgstr "§0は、§1と§2ならば§3であることを証明します。" +msgstr "§0は、§1と§2ならば§3であることを証明です。" #: Game.Levels.AdvAddition.L02add_left_cancel #. §0: ``` @@ -4635,7 +4608,7 @@ msgstr "§0を使用してください。" msgid "" "Now we can prove the §0 statement by proving the statement on the right,\n" "so use the §1 tactic." -msgstr "現在、§0の命題を証明するために、右側の命題を証明することができるため、§1のタクティクを使用します。" +msgstr "§0の命題を証明するために、右側の命題を証明することができるため、§1のタクティクを使用します。" #: Game.Levels.Algorithm.L07succ_ne_succ #. §0: `h : a ≠ b` @@ -4893,12 +4866,7 @@ msgstr "0 ≤ x" #: Game.Levels.LessOrEqual.L07or_symm #. §0: `or` msgid "Dealing with §0" -msgstr "" -"### 原文 (English)\n" -"Dealing with §0\n" -"\n" -"## 日本語翻訳\n" -"§0 を扱う方法" +msgstr "§0 を扱う方法" #: Game.Levels.Multiplication.L08add_mul msgid "add_mul" @@ -6208,7 +6176,7 @@ msgstr "zero_pow_succ" #: Game.Levels.LessOrEqual.L07or_symm msgid "Ready for the boss level of this world?" -msgstr "このワールドのボスレベルに備えていますか?" +msgstr "このワールドのボスレベルの準備は出来ていますか?" #: Game.Levels.Multiplication.L07mul_add #. §0: `mul_add a b c` From db9d35254a1b0567e662d6a123e3508ea634591e Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 27 Apr 2026 03:09:27 +0900 Subject: [PATCH 078/147] ja: improve leq level 8 --- .i18n/ja/Game.po | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index d820b3f8..22a2ae6f 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -2271,7 +2271,7 @@ msgstr "" #. §2: $x \\leq y$ #. §3: $y \\leq x$ msgid "If §0 and §1 are numbers, then either §2 or §3." -msgstr "もし§0と§1が数値である場合、§2または§3が成り立つ。" +msgstr "もし§0と§1が数値ならば、§2または§3。" #: Game.Levels.LessOrEqual #. §0: `a ≤ b` @@ -3790,7 +3790,7 @@ msgstr "" #: Game.Levels.LessOrEqual.L08le_total #. §0: `cases «{h2}» with e he` msgid "Now §0." -msgstr "現在、§0。" +msgstr "§0 をしましょう。" #: Game.Levels.Multiplication.L08add_mul #. §0: `add_mul` @@ -5577,7 +5577,7 @@ msgstr "" "これは今までで最も難しいレベルかもしれません。ヒント:もし§0が数値であれば、§1は§2と§3に分岐します。\n" "そして、仮定が結果の目標を証明できる保証がない限りは左や右には移動しないでください!\n" "\n" -"隠されたヒントを残しています;必要であれば、最初からやり直し、「もっと手助けを表示!」とクリックしてください。" +"隠されたヒントを残しています;必要であれば、最初からやり直し、「より多くのヘルプを表示!」とクリックしてください。" #: Game.Levels.LessOrEqual.L08le_total #. §0: `ℕ` @@ -5590,9 +5590,9 @@ msgid "" "\n" "The final few levels in this world are much easier." msgstr "" -"Very well done.\n" +"よくできました。\n" "\n" -"数学的な見地から言えば、あなたが証明したところでは、§0 は完全に順序付けられています。\n" +"通りすがりの数学者は、あなたが §0 は完全に順序付けられていることを証明したと述べました。\n" "\n" "このワールドの最後の数レベルははるかに簡単です。" @@ -5971,11 +5971,7 @@ msgstr "" #. §0: `cases «{e}» with a` msgid "You still don't know which way to go, so do §0." msgstr "" -"You still don't know which way to go, so do §0.\n" -"\n" -"\n" -"## 日本語翻訳\n" -"まだ進むべき道がわからないので、§0の指示に従いましょう。" +"まだ進むべき道がわからないので、§0をしましょう。" #: Game.Levels.AdvMultiplication msgid "Advanced Multiplication World" From a4430d4b5f7987d5400824fc5c1d6de8a459f35d Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 27 Apr 2026 03:18:23 +0900 Subject: [PATCH 079/147] ja: improve leq level 9 --- .i18n/ja/Game.po | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 22a2ae6f..b70ee0ac 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -4378,7 +4378,7 @@ msgstr "" #. §1: `succ x ≤ succ y` #. §2: `x ≤ y` msgid "§0 is a proof that if §1 then §2." -msgstr "§0は、§1ならば§2であることを証明します。" +msgstr "§0は、§1ならば§2であることの証明。" #: Game.Levels.Implication.L08ne msgid "≠" @@ -5437,12 +5437,7 @@ msgstr "" #: Game.Levels.LessOrEqual.L09succ_le_succ msgid "succ x ≤ succ y → x ≤ y" -msgstr "" -" succ x ≤ succ y → x ≤ y\n" -"\n" -"\n" -"## 日本語翻訳\n" -" succ x ≤ succ y → x ≤ y" +msgstr " succ x ≤ succ y → x ≤ y" #: Game msgid "The classical introduction game for Lean." @@ -5964,8 +5959,9 @@ msgid "" "in this world will prove which numbers are §2 and §3.\n" "This lemma will be helpful for them." msgstr "" -"We've proved that §0 から §1 が導かれる。このワールドの最後の2つのレベルでは、どの数が §2 と §3 " -"であるかを証明する。この補題は彼らにとって役立つだろう。" +"§0 から §1 が導かれることを証明しました。\n" +"このワールドの最後の2つのレベルでは、どの数が §2 と §3 " +"であるかを証明します。この補題はこれらにとって役立つでしょう。" #: Game.Levels.LessOrEqual.L08le_total #. §0: `cases «{e}» with a` From 85d5a1fddc0f82f48aa6679f411248eae92dd039 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 27 Apr 2026 03:42:04 +0900 Subject: [PATCH 080/147] ja: improve leq level 10 --- .i18n/ja/Game.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index b70ee0ac..5d10e23b 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1345,8 +1345,8 @@ msgid "" "We've seen §0, the proof that if §1 then §2.\n" "Now we'll prove that if §3 then §4 or §5." msgstr "" -"We've seen §0, 仮定§1 から §2 が成り立つことを証明した。\n" -"次に、仮定§3 から §4 または §5 が成り立つことを証明する。" +"§0, 仮定§1 から §2 が成り立つことを証明しました。\n" +"次に、仮定§3 から §4 または §5 が成り立つことを証明します。" #: Game #. §0: $\\mathbb{N}$ @@ -2185,7 +2185,7 @@ msgstr "" #. §1: $x = 0$ #. §2: $x = 1$ msgid "If §0 then either §1 or §2." -msgstr "もし§0であるなら、§1または§2のいずれかである。" +msgstr "§0なら、§1または§2。" #: Game.Levels.Addition.L02succ_add msgid "succ_add" @@ -5938,7 +5938,7 @@ msgstr "" #. §2: `x = 0` #. §3: `x = 1` msgid "§0 is a proof that if §1 then §2 or §3." -msgstr "§0は、§1ならば§2または§3であることを証明します。" +msgstr "§0は、§1ならば§2または§3であることの証明。" #: Game.Levels.Tutorial msgid "Tutorial World" From 2ef903f5b3924338bddada1f48d94d7a3973e117 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 27 Apr 2026 04:38:37 +0900 Subject: [PATCH 081/147] ja: improve leq level 11 --- .i18n/ja/Game.po | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 5d10e23b..c79c8ec2 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -358,11 +358,11 @@ msgid "" "§1 actually means §2.\n" "This affects how §3 and §4 work." msgstr "" -"We'll need this lemma to prove that two is prime!\n" +"この定理を使って、2 が素数であることを証明する必要があります!\n" "\n" -"You'll need to know that §0 is right associative. This means that\n" -"§1 actually means §2.\n" -"This affects how §3 and §4 work." +"§0 が右結合であることを知っておく必要があります。\n" +"これは、§1 が実際に §2 と同じ意味であることを意味します。\n" +"これにより、§3 と §4 の動作が影響を受けます。" #: Game.Levels.Power.L01zero_pow_zero msgid "zero_pow_zero" @@ -2208,10 +2208,10 @@ msgid "" "If you've already done Multiplication World, you're now ready for\n" "Advanced Multiplication World. Click on \"Home\" to access it." msgstr "" -"Nice!\n" +"ナイス!\n" "\n" "順序理論の開発の次のステップは、§0" -"と乗算の相互作用の理論を発展させることがです。既に乗算ワールドを学習した場合、現在では高度な乗算ワールドに進むことができます。\"Home\"" +"と乗算の相互作用の理論を発展させることがです。既に乗算ワールドを学習した場合、現在では高度な乗算ワールドに進むことができます。\"ホーム\"" "をクリックしてアクセスしてください。" #: Game.Levels.Implication.L02exact2 @@ -4095,7 +4095,7 @@ msgstr "現在 §0 なので、§1 です。" #. §2: $1$ #. §3: $2$ msgid "If §0 then §1 or §2 or §3." -msgstr "もし§0 then §1または§2または§3。" +msgstr "§0 ならば §1または§2または§3。" #: Game.Levels.Tutorial.L03two_eq_ss0 Game.Levels.Addition.L03add_comm #: Game.Levels.Implication.L09zero_ne_succ Game.Levels.Algorithm.L05pred @@ -4223,7 +4223,7 @@ msgstr "一行で証明を完成させましょう。" #. §3: `x = 1` #. §4: `x = 2` msgid "§0 is a proof that if §1 then §2 or §3 or §4." -msgstr "§0は、§1ならば§2または§3または§4であることを証明します。" +msgstr "§0は、§1ならば§2または§3または§4であることの証明。" #: Game.Levels.AdvAddition.L06add_left_eq_zero #. §0: ``` From 82575efd8f348e2a81879e120ec19bcd4588eb41 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Tue, 28 Apr 2026 00:35:17 +0900 Subject: [PATCH 082/147] ja: align the newline with the original text --- .i18n/ja/Game.po | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index c79c8ec2..37bac3c4 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1022,7 +1022,7 @@ msgid "" "§0" msgstr "" "以下は二行の証明です:\n" -"§0\n" +"§0" #: Game.Levels.Addition.L01zero_add #. §0: `zero_add x` @@ -2732,7 +2732,7 @@ msgstr "" #. §0: `rfl` msgid "Now finish the job with §0." msgstr "" -"§0で現在の作業を完了してください。\n" +"§0で現在の作業を完了してください。" #: Game.Levels.AdvMultiplication.L10mul_right_eq_self #. §0: `nth_rewrite 2 [← mul_one a] at h` @@ -4163,7 +4163,7 @@ msgstr "" #: Game.Levels.Addition.L03add_comm msgid "add_comm (level boss)" -msgstr "add_comm (レベルボス)\n" +msgstr "add_comm (レベルボス)" #: Game.Levels.Multiplication.L02zero_mul #. §0: `mul_comm x y : x * y = y * x` @@ -6201,7 +6201,7 @@ msgid "" msgstr "" " おめでとうございます! あなたはフェルマーの最終定理を証明しました!\n" "\n" -"もしくは、魔法を使用したかもしれません...\n" +"もしくは、魔法を使用したかもしれません..." #: Game.Levels.Multiplication.L04mul_comm #. §0: `mul_comm` @@ -6216,7 +6216,7 @@ msgstr "" #: Game.Levels.Tutorial.L04rw_backwards msgid "rewriting backwards" -msgstr "反転して書き換え\n" +msgstr "反転して書き換え" #: Game.Levels.LessOrEqual.L01le_refl #. §0: `use` From 0892f487e4a59c2fba06dfcda5fb89c7a605b046 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Tue, 28 Apr 2026 00:57:45 +0900 Subject: [PATCH 083/147] ja: improve advmul introduction --- .i18n/ja/Game.po | 26 ++++---------------------- 1 file changed, 4 insertions(+), 22 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 37bac3c4..9baef0f3 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -5754,33 +5754,15 @@ msgid "" "true under the additional hypothesis that one of the variables is non-zero.\n" "This causes some unexpected extra twists." msgstr "" -"### 原文 (English)\n" -"Advanced *Addition* World proved various implications\n" -"involving addition, such as §0 and §1.\n" -"These lemmas were used to prove basic facts about ≤ in ≤ World.\n" -"\n" -"In Advanced Multiplication World we prove analogous\n" -"facts about multiplication, such as §2, and\n" -"§3 (assuming §4 in the latter result). This will prepare\n" -"us for Divisibility World.\n" -"\n" -"Multiplication World is more complex than Addition World. In the same\n" -"way, Advanced Multiplication world is more complex than Advanced Addition\n" -"World. One reason for this is that certain intermediate results are only\n" -"true under the additional hypothesis that one of the variables is non-zero.\n" -"This causes some unexpected extra twists.\n" -"\n" -"\n" -"## 日本語翻訳\n" -"Advanced *加算*ワールドでは、加算に関する様々な命題(§0, §1など)が証明されました。\n" +"高度な *加算*ワールドでは、加算に関する様々な命題(§0, §1など)が証明されました。\n" "これらの補題は、≤ワールドにおける≤に関する基本的な事実の証明に使用されました。\n" "\n" -"Advanced *乗算*ワールドでは、乗算に関する類似した事実(§2など)が証明され、\n" +"高度な *乗算*ワールドでは、乗算に関する類似した事実(§2など)が証明され、\n" "§3(後者の結果では§4を仮定)も証明されました。これにより、*除算*ワールドに備えることができます。\n" "\n" -"*乗算*ワールドは、*加算*ワールドよりも複雑です。同様に、Advanced *乗算*ワールドは、Advanced " +"*乗算*ワールドは、*加算*ワールドよりも複雑です。同様に、高度な *乗算* ワールドは、高度な " "*加算*" -"ワールドよりも複雑です。これは、ある変数が非零であるという追加の仮定の下でのみ成り立つ特定の中間結果があるためです。これにより、予想外の追加の複雑さが生" +"ワールドよりも複雑です。これは、ある変数が非ゼロであるという追加の仮定の下でのみ成り立つ特定の中間結果があるためです。これにより、予想外の追加の複雑さが生" "じます。" #: Game.Levels.Algorithm.L03add_algo2 From f4b01cb010f7987e88ad376bb1ac477f5f4774a1 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Tue, 28 Apr 2026 01:06:17 +0900 Subject: [PATCH 084/147] ja: improve advmul level 1 --- .i18n/ja/Game.po | 34 +++------------------------------- 1 file changed, 3 insertions(+), 31 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 9baef0f3..a51096f3 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -906,32 +906,7 @@ msgstr "" #: Game.Levels.AdvMultiplication.L01mul_le_mul_right #. §0: `t = 0` msgid "Let's warm up with an easy one, which works even if §0." -msgstr "" -"## 簡単な例題(§0 に関わらず動作します)\n" -"\n" -"```lean\n" -"example : Prop := true\n" -"```\n" -"\n" -"```lean\n" -"-- 例題: 命題です\n" -"example : Prop := true\n" -"```\n" -"\n" -"```lean\n" -"-- 仮定\n" -"variable (p : Prop)\n" -"\n" -"-- 証明\n" -"example : p → p := assume hp : p, hp\n" -"```\n" -"\n" -"```lean\n" -"-- タクティクを使用した証明\n" -"example : p → p := by\n" -" intro hp\n" -" exact hp\n" -"```" +msgstr "まずは簡単な問題から始めましょう。これは §0 の場合でも成立します。" #: Game.Levels.Implication.L07intro2 #. §0: $x+1=y+1\\implies x=y$ @@ -5201,7 +5176,7 @@ msgstr "1 ≠ 0" #: Game.Levels.AdvMultiplication.L01mul_le_mul_right msgid "mul_le_mul_right" -msgstr "乗法の右側への乗算の不等式定理" +msgstr "mul_le_mul_right" #: Game.Levels.AdvAddition.L04add_right_eq_self msgid "add_right_eq_self" @@ -5849,10 +5824,7 @@ msgid "" "§0" msgstr "" "私の証明:\n" -"§0\n" -"\n" -"\n" -"##" +"§0" #: Game.Levels.Multiplication.L06two_mul msgid "" From c3599ae7d177aed5abaed9d39e26f2519499c8e5 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Tue, 28 Apr 2026 01:50:52 +0900 Subject: [PATCH 085/147] ja: improve advmul level 2 --- .i18n/ja/Game.po | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index a51096f3..8212d976 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -226,12 +226,7 @@ msgstr "rw タクティク" #: Game.Levels.AdvMultiplication.L02mul_left_ne_zero msgid "mul_left_ne_zero" -msgstr "" -"mul_left_ne_zero\n" -"\n" -"\n" -"## 日本語翻訳\n" -"左側 multiplicand が非零である定理" +msgstr "mul_left_ne_zero" #: Game.Levels.AdvMultiplication.L07mul_ne_zero msgid "mul_ne_zero" @@ -417,7 +412,7 @@ msgstr "§0ならば、§1。" #: Game.Levels.AdvMultiplication.L02mul_left_ne_zero #. §0: `apply h` msgid "Now §0 and you can probably take it from here." -msgstr "現在、§0 です。ここから大丈夫でしょう。" +msgstr "§0 をします。ここから大丈夫でしょう。" #: Game.Levels.Multiplication.L04mul_comm #. §0: `mul_comm x y : x * y = y * x` @@ -2970,14 +2965,9 @@ msgid "" "which is logically equivalent but much easier to prove. Remember that §2\n" "is notation for §3. Click on §4 if you need hints." msgstr "" -"We want to reduce this to a hypothesis §0 and a goal §1,\n" -"which is logically equivalent but much easier to prove. Remember that §2\n" -"is notation for §3. Click on §4 if you need hints.\n" -"\n" -"\n" -"## 日本語翻訳\n" -"この部分を仮定§0と目標§1に簡略化したいです。これは論理的に同等ですが、証明がはるかに簡単になります。§2は§3の表記法です。ヒントが必要な場合は§4" -"をクリックしてください。" +"この部分を仮定§0と目標§1に簡略化したいです。\n" +"これは論理的に同等ですが、証明がはるかに簡単になります。\n" +"§2は§3の表記法です。ヒントが必要な場合は§4 (訳注: \"より多くのヘルプを表示!\")をクリックしてください。" #: Game.Levels.Tutorial.L05add_zero #. §0: `repeat rw [add_zero]` From ecd3360dc29e36f9ecd7360d6aa49620c4041b4d Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Tue, 28 Apr 2026 02:19:40 +0900 Subject: [PATCH 086/147] ja: improve advmul level 4 --- .i18n/ja/Game.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 8212d976..b4c4fa9a 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -380,7 +380,7 @@ msgstr "intro" #: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero #. §0: `apply eq_succ_of_ne_zero at ha` msgid "Use the previous lemma with §0." -msgstr "前の補題を使用し、§0を適用してください。" +msgstr "§0を使用し、前の補題を適用してください。" #: Game.Levels.Multiplication.L09mul_assoc msgid "" @@ -2661,13 +2661,13 @@ msgid "" "If you switch the goal and hypothesis in this example, §34 would solve it " "too." msgstr "" -"### Summary\n" +"# 概要\n" "\n" "§0 タクティクは、論理だけで解決できる目標(つまり、真偽表で解決できる目標)を解決します。\n" "\n" "## 詳細\n" "\n" -"§1 は *魔法を施すわけではない*!加算や乗算については何も知らないし、すら §2 も知らない。§3 が数について知っているのは、まず §4 " +"§1 は *魔法を施すわけではない*!加算や乗算については何も知らないし、§2 すらも知らない。§3 が数について知っているのは、まず §4 " "であり、二つ目は §5, §6, §7 などである。§8 の強みは *論理* にある。仮定 §9 と仮定 §10 があり、目標が §11 " "の場合、§12 はこの目標を解決します。なぜなら、目標を解決するには不等式や加算に関する事実を知る必要がないし、必要なのは論理のルールだけです。\n" "\n" @@ -2702,7 +2702,7 @@ msgstr "" #. §0: `rfl` msgid "Now finish the job with §0." msgstr "" -"§0で現在の作業を完了してください。" +"§0で作業を完了してください。" #: Game.Levels.AdvMultiplication.L10mul_right_eq_self #. §0: `nth_rewrite 2 [← mul_one a] at h` @@ -4409,7 +4409,7 @@ msgstr "" #: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero #. §0: `cases ha with n hn` msgid "Now take apart the existence statement with §0." -msgstr "現在、存在文 §0 を分解します。" +msgstr "存在文を §0 で 分解します。" #: Game.Levels.Tutorial.L08twoaddtwo Game.Levels.Implication.L06intro #: Game.Levels.Implication.L07intro2 Game.Levels.Implication.L09zero_ne_succ @@ -6006,7 +6006,7 @@ msgstr "§0は§1または§2の証明です。" msgid "" "In the \"base case\" we have a hypothesis §0, and you can deduce anything\n" "from a false statement. The §1 tactic will close this goal." -msgstr "### 基本的なケースでは、仮定§0が存在します。偽の文から何でも導くことができます。タクティク§1はこの目標を閉じます。" +msgstr "基本的なケースでは、仮定§0が存在します。偽の文から何でも導くことができます。タクティク§1はこの目標を閉じます。" #: Game.Levels.Tutorial.L07add_succ msgid "add_succ" From 2e97ed79c02cd59fc26082ed6915f90d5bb12536 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Tue, 28 Apr 2026 02:36:10 +0900 Subject: [PATCH 087/147] ja: improve advmul level 5 --- .i18n/ja/Game.po | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index b4c4fa9a..6710b23d 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1533,11 +1533,12 @@ msgid "" "until it becomes the goal, using §4, §5 and\n" "§6." msgstr "" -"One dayこのゲームには素数ワールドが存在し、最終ボスは§0が素数であることを証明することになる。\n" -"これを達成するためには、§1のようなものを排除する必要がある。\n" -"これは、§2の任意の約数が最多§3" -"であることを証明することで行う。その証明はこの補題を使用する。私は考えている証明は、仮定を操作し、最終的に目標になるようにする。これには§4、§5、§6" -"を使用する。" +"いつかこのゲームには素数ワールドが追加されるでしょう。最終ボスは§0が素数であることを証明することになります。\n" +"これを達成するためには、§1のようなものを排除する必要があります。\n" +"これは、§2の任意の約数のうち最も大きいものが§3" +"であることを証明することで行います。その証明はこの補題を使用します。\n" +"私が考えている証明では、§4、§5、§6を使用して仮定を操作し、\n" +"最終的に目標になるようにします。" #: Game.Levels.Algorithm.L06is_zero #. §0: `False` @@ -3641,12 +3642,7 @@ msgid "" "Here's what I was thinking of:\n" "§0" msgstr "" -"以下は私の考えでした:\n" -"§0\n" -"\n" -"\n" -"## 日本語翻訳\n" -"以下は私の考えでした:\n" +"これが私の考えでした:\n" "§0" #: Game.Levels.Tutorial.L08twoaddtwo From 7049c6e1f8c8dab23d847a019863aebf8c302bca Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Tue, 28 Apr 2026 02:48:39 +0900 Subject: [PATCH 088/147] ja: improve advmul level 6 --- .i18n/ja/Game.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 6710b23d..6043b204 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -175,7 +175,7 @@ msgid "" "\n" "will add §12 as a hypothesis." msgstr "" -"### Summary\n" +"# 概要\n" "\n" "§0 タクティクはレベルに新しい仮定を追加するのに使用できますが、もちろんそれらを証明する必要があります。\n" "\n" @@ -1941,10 +1941,10 @@ msgid "" "\n" "We'll prove it using a new and very useful tactic called §5." msgstr "" -"このレベルでは、進んだ加算ワールドの§1の乗法的な類似物である§0を証明します。戦略は、§2を証明し、その後、§4ワールドから§3" +"このレベルでは、高度な加算ワールドの§1の乗法的な類似である§0を証明します。戦略は、§2を証明し、その後、§4ワールドから§3" "の補題を使用することです。\n" "\n" -"新しい非常に有用なタクティク§5を使用して証明します。" +"新しく非常に有用なタクティク§5を使用して証明します。" #: Game.Levels.Power.L06pow_add msgid "pow_add" @@ -2759,7 +2759,7 @@ msgid "" "prove it, and then you'll have a new hypothesis which you can apply\n" "§5 to." msgstr "" -"We want to use §0, ですが、§1 という仮定が必要で、現在持正在りません。まだありません。§2 を実行してください(§3 を §4 " +"§0 を使いたいですが、持っていない §1 という仮定が必要です。§2 を実行してください(§3 を §4 " "で入力できます)。\n" "求められるまでは証明が必要ですが、証明後には新しい仮定が得られ、それを §5 で適用できます。" @@ -4048,7 +4048,7 @@ msgstr "" #. §0: `rw [«{h}»] at «{h2}»` #. §1: `apply le_one at «{h2}»` msgid "Now §0 so you can §1." -msgstr "現在 §0 なので、§1 です。" +msgstr "§0 をすると、§1 ができます。" #: Game.Levels.LessOrEqual.L11le_two #. §0: $x \\leq 2$ @@ -5849,7 +5849,7 @@ msgstr "" msgid "" "Now §0 and deal with the two\n" "cases separately." -msgstr "現在、§0 で、二つの場合を別々に処理します。" +msgstr "§0 で、二つの場合を別々に処理します。" #: Game.Levels.Power.L08pow_pow msgid "" From fefc1f8000a1099dfc1ddc2f1af15cbafffe2c38 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Tue, 28 Apr 2026 02:54:47 +0900 Subject: [PATCH 089/147] ja: improve advmul level 7 --- .i18n/ja/Game.po | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 6043b204..137ad564 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -230,12 +230,7 @@ msgstr "mul_left_ne_zero" #: Game.Levels.AdvMultiplication.L07mul_ne_zero msgid "mul_ne_zero" -msgstr "" -"mul_ne_zero\n" -"\n" -"\n" -"## 日本語翻訳\n" -"乗算が零でない(mul_ne_zero)" +msgstr "mul_ne_zero" #: Game.Levels.Tutorial #. §0: `2 + 2 = 4` From 30728d1b8df63dcad2f240d252eb2aac7e414e59 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Tue, 28 Apr 2026 03:00:11 +0900 Subject: [PATCH 090/147] ja: improve advmul level 8 --- .i18n/ja/Game.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 137ad564..401d897b 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -5143,7 +5143,7 @@ msgstr "" #: Game.Levels.AdvMultiplication.L08mul_eq_zero msgid "mul_eq_zero" -msgstr "乗算が零に等しい" +msgstr "mul_eq_zero" #: Game.Levels.Tutorial.L03two_eq_ss0 #. §0: `rw [two_eq_succ_one]` From 0e5fd9f04449273170af882ddb8293ca6458b84a Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Tue, 28 Apr 2026 03:36:08 +0900 Subject: [PATCH 091/147] ja: improve advmul level 9 --- .i18n/ja/Game.po | 34 ++++++++++------------------------ 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 401d897b..869b4e8b 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1091,32 +1091,16 @@ msgid "" "\"for all §8, if §9 then §10\". This *can* be proved by induction,\n" "because we now have the flexibility to change §11." msgstr "" -"### 原文 (English)\n" -"In this level we prove that if §0 and §1 then §2. It is tricky, for\n" -"several reasons. One of these is that\n" -"we need to introduce a new idea: we will need to understand the concept of\n" -"mathematical induction a little better.\n" -"\n" -"Starting with §3 is too naive, because in the inductive step\n" -"the hypothesis is §4 but what we know is §5,\n" -"so the induction hypothesis does not apply!\n" -"\n" -"Assume §6 is fixed. The actual statement we want to prove by induction on " -"§7 is\n" -"\"for all §8, if §9 then §10\". This *can* be proved by induction,\n" -"because we now have the flexibility to change §11.\n" -"\n" -"\n" -"### 翻訳 (Japanese)\n" -"このレベルでは、§0 と §1 が成り立つ場合、§2 が成り立つことを証明します。これは複雑な理由で、\n" -"いくつかの理由からです。その一つは、新しいアイデアを導入する必要があるためです:\n" +"このレベルでは、§0 と §1 が成り立つ場合、§2 が成り立つことを証明します。\n" +"これはいくつかの理由で、複雑です。\n" +"そのうちの一つは、新しいアイデアを導入する必要があるためです:\n" "数学的帰納法の概念をもう少し理解する必要があります。\n" "\n" "§3 から始めることは単純すぎるため、帰納的ステップでは仮定は §4 ですが、実際に知っていることは §5 であり、\n" "従って帰納仮定が適用されません!\n" "\n" "§6 を固定します。実際には、§7 による帰納法で証明したい主張は\n" -"「全ての §8 について、§9 が成り立つ場合、§10 が成り立つ」です。これは *可能* に帰納法で証明できます。\n" +"「全ての §8 について、§9 が成り立つ場合、§10 が成り立つ」です。これは 帰納法で証明 *できます* 。\n" "なぜなら、今では §11 を変更できる柔軟性があるからです。" #: Game.Levels.AdvMultiplication.L08mul_eq_zero @@ -3065,8 +3049,10 @@ msgid "" "The inductive hypothesis §0 is \"For all natural numbers §1, §2\".\n" "You can §3 it §4 any hypothesis of the form §5." msgstr "" -" induktive 仮定 §0 は \"全ての自然数 §1 について §2\" です。\n" -"あなたは §3 その §4 仮定 §5 の任意の形で §6 できます。" +"帰納的仮定 §0 は \"全ての自然数 §1 について §2\" です。\n" +"あなたは 仮定 §5 の形に対して、 §3 できます。\n" +"(訳注: 原文は \"You can §3 it §4 any hypothesis of the form §5.\" です。\n" +"つまり、 §3 §0 §4 §5 のような形で使用できます。)" #: Game.Levels.Multiplication.L07mul_add msgid "" @@ -4345,7 +4331,7 @@ msgstr "≠" #. §1: `c = succ e` #. §2: `cases c with e` msgid "Split into cases §0 and §1 with §2." -msgstr "ケース分けして §0 と §1 に分ける。" +msgstr "§2 で§0 と §1 にケースを分けましょう。" #: Game.Levels.Implication.L06intro #. §0: `intro h` @@ -5094,7 +5080,7 @@ msgstr "開始するには、§0 を使用して §1 と §2 に対してケー msgid "" "Use §0 and remember that §1 will solve a goal\n" "if there are hypotheses §2 and §3." -msgstr "使用する§0と、仮定§2と§3がある場合、§1は目標を解決します。" +msgstr "§0を使用します。仮定§2と§3があるときに§1で目標を解決できることを思い出してください。" #: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero msgid "The previous lemma can be used to prove this one." From 7a6de16592016723631d4b7d09f008457095a467 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Tue, 28 Apr 2026 03:52:21 +0900 Subject: [PATCH 092/147] ja: improve advmul level 10 --- .i18n/ja/Game.po | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 869b4e8b..c3c02366 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1899,12 +1899,7 @@ msgstr "" #: Game.Levels.AdvMultiplication.L10mul_right_eq_self #. §0: `apply mul_left_cancel at h` msgid "You can now §0" -msgstr "" -"你现在可以 §0\n" -"\n" -"\n" -"## 日本語翻訳\n" -"你现在可以 §0" +msgstr "§0 ができます" #: Game.Levels.AdvMultiplication.L06mul_right_eq_one #. §0: `x * y = 1 → x = 1` @@ -2687,7 +2682,7 @@ msgstr "" #: Game.Levels.AdvMultiplication.L10mul_right_eq_self #. §0: `nth_rewrite 2 [← mul_one a] at h` msgid "Reduce to the previous lemma with §0" -msgstr "以前の補題に §0 をReduceします。" +msgstr " §0 を使用して、直前の補題に変換します。" #: Game.Levels.AdvMultiplication.L05le_mul_right #. §0: `le_mul_right a b` @@ -5700,7 +5695,7 @@ msgstr "" "これらの補題は、≤ワールドにおける≤に関する基本的な事実の証明に使用されました。\n" "\n" "高度な *乗算*ワールドでは、乗算に関する類似した事実(§2など)が証明され、\n" -"§3(後者の結果では§4を仮定)も証明されました。これにより、*除算*ワールドに備えることができます。\n" +"§3(後者の結果では§4を仮定)も証明されました。これにより、*整除*ワールドに備えることができます。\n" "\n" "*乗算*ワールドは、*加算*ワールドよりも複雑です。同様に、高度な *乗算* ワールドは、高度な " "*加算*" From 55ffc5ee4b16519612d5dce45c1c97d645c16278 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Tue, 28 Apr 2026 20:33:30 +0900 Subject: [PATCH 093/147] ja: improve some translation --- .i18n/ja/Game.po | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index c3c02366..097a6939 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -65,7 +65,7 @@ msgid "" "in Lean it can be proved using §14, a mathematically\n" "pathological function." msgstr "" -"# 提示\n" +"# 命題\n" "\n" "§0 と §1 が数値である場合、\n" "§2 は §3 の証明です。\n" @@ -477,7 +477,7 @@ msgid "" "into the goal\n" "§4." msgstr "" -"## 結論\n" +"## 概要\n" "\n" "§0はタクティク§1を繰り返し適用し、目標を処理します。このタクティクを使用する必要はありませんが、時々処理速度を向上させることがあります。\n" "\n" @@ -540,7 +540,7 @@ msgid "" "and §20 will both change the goal to §21,\n" "because §22 guesses the input to the function §23." msgstr "" -"## 結論\n" +"## 概要\n" "\n" "もし目標が §0 の文である場合、§2 が §3 の証明であれば、目標は §1 で閉じます。\n" "\n" @@ -1445,7 +1445,7 @@ msgid "" "Note that you must prove the first\n" "goal before you can access the second one." msgstr "" -"## 結論\n" +"## 概要\n" "\n" "もし§0がオブジェクトであり、目標に§1が含まれている場合、§2は目標を§3による帰納法で証明しようとします。帰納変数は後続ケースで§4" "であり、帰納仮定は§5です。\n" @@ -2076,7 +2076,7 @@ msgid "" "will change the goal to §12. In contrast, §13\n" "will change the goal to §14." msgstr "" -"## 結論\n" +"## 概要\n" "\n" "§0 は目標に対して §1 のタクティクを繰り返し適用します。このタクティクを使用する必要はありませんが、時々処理が早くなります。\n" "\n" @@ -2090,7 +2090,7 @@ msgstr "" "\n" "---\n" "\n" -"## 結論\n" +"## 概要\n" "\n" "§5 が成り立つ場合で、目標に複数の §6 がある場合、\n" "§7 は第三の §8 を §9 に変更します。\n" @@ -2804,7 +2804,7 @@ msgid "" "as mathematicians are concerned, and who cares what the definition of " "addition is).*" msgstr "" -"## 結論\n" +"## 概要\n" "\n" "§0は、形式§1の目標を証明します。\n" "\n" @@ -3294,7 +3294,7 @@ msgid "" "If you only want to change the 37th occurrence of §84\n" "to §85 then do §86." msgstr "" -"## 結論\n" +"## 概要\n" "\n" "§0が等式§1の証明である場合、§2は目標内のすべての§3を§4に変更します。これは「代入」を行う方法です。\n" "\n" @@ -3706,7 +3706,7 @@ msgid "" "If the goal is §25, then §26 will turn the\n" "goal into §27." msgstr "" -"## 結論\n" +"## 概要\n" "\n" "もし§0が§1の証明であり、§2が§3の証明であるなら、§4は§5を§6の証明に変更します。つまり、§7が真であることを知っているなら、§8から§9" "が真であることを導くことができます。\n" @@ -5018,7 +5018,7 @@ msgid "" "will change the goal to §7. In contrast, §8\n" "will change the goal to §9." msgstr "" -"## 結論\n" +"## 概要\n" "\n" "もし目標に §0 があり、目標に複数の §1 が存在する場合、§2 は第三の §3 を §4 に変更します。\n" "\n" @@ -6199,4 +6199,4 @@ msgstr "" "この補題は、§0を知っていたら簡単だったでしょう。その定理は§1と呼ばれ、**真**です。しかし、残念ながらその証明は§2と§3を**使用**" "しています!\n" "\n" -"§4へと進みましょう、§5の証明に。" +"§5の証明である、§4へと進みましょう。" From d3dff7315fbac42cbbbc0b4e838e5caacaabecbc Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Tue, 28 Apr 2026 20:34:55 +0900 Subject: [PATCH 094/147] ja: export to json --- .i18n/ja/Game.json | 269 ++++++++++++++++++++++----------------------- 1 file changed, 132 insertions(+), 137 deletions(-) diff --git a/.i18n/ja/Game.json b/.i18n/ja/Game.json index 5c35ad1e..59679f56 100644 --- a/.i18n/ja/Game.json +++ b/.i18n/ja/Game.json @@ -1,4 +1,4 @@ -{"≤ World": "≤ ワールド\n\n\n## 日本語翻訳\nワールド", +{"≤ World": "≤ ワールド", "≠": "≠", "§0.": "§0.", "§0, with notation §1, is the usual\n product of natural numbers. Internally it is\n via two axioms:\n\n * §2\n\n * §3\n\nOther theorems about naturals, such as §4,\nare proved by induction from these two basic theorems.": @@ -57,13 +57,13 @@ "§0 is a proof that §1\n\nIn Lean, §2 means §3, so this result gets displayed\nas §4.": "§0は§1の証明です\n\nLeanでは、§2は§3を意味するので、この結果は§4として表示されます。", "§0 is a proof that §1": "§0は§1の証明です。", - "§0 is a proof that if §1 then §2.": "§0は、§1ならば§2であることを証明します。", - "§0 is a proof that if §1 then §2 or §3.": "§0は、§1ならば§2または§3であることを証明します。", + "§0 is a proof that if §1 then §2.": "§0は、§1ならば§2であることの証明。", + "§0 is a proof that if §1 then §2 or §3.": "§0は、§1ならば§2または§3であることの証明。", "§0 is a proof that if §1 then §2 or §3 or §4.": - "§0は、§1ならば§2または§3または§4であることを証明します。", + "§0は、§1ならば§2または§3または§4であることの証明。", "§0 is a proof that if §1 and §2 then §3.\nMore precisely, it is a proof that §4. In words,\nIf §5 then (pause) if §6 then §7.\n\n## A note on associativity\n\nIn Lean, §8 means §9, because §10 is left associative. However\n§11 is right associative. This means that §12 in Lean means\nexactly that §13 is transitive. This is different to how mathematicians use\n§14; for them, this usually means that §15\nand §16.": - "§0は、§1と§2ならば§3であることを証明しています。\nより正確には、§4を証明しています。言葉で言えば、\n§5ならば(一時停止)§6ならば§7です。\n\n## 転置性に関する注記\n\nLeanでは、§8は§9を意味し、§10は左側から結合します。しかし、§11は右側から結合します。これにより、Leanでは§12は§13が Transitiv(転置的)であることを意味します。これは、数学的な文脈では通常§14を意味しないことを示しています;数学的には、これは通常§15と§16の両方が成り立つことを意味します。", - "§0 is a proof that if §1 and §2 then §3.": "§0は、§1と§2ならば§3であることを証明します。", + "§0は、§1と§2ならば§3であることを証明しています。\nより正確には、§4を証明しています。言葉で言えば、\n§5ならば(一時停止)§6ならば§7です。\n\n## 結合性に関する注記\n\nLeanでは、§8は§9を意味し、§10は左側から結合します。しかし、§11は右側から結合します。これにより、Leanでは§12は§13が Transitiv(転置的)であることを意味します。これは、数学的な文脈では通常§14を意味しないことを示しています;数学的には、これは通常§15と§16の両方が成り立つことを意味します。", + "§0 is a proof that if §1 and §2 then §3.": "§0は、§1と§2ならば§3であることを証明です。", "§0 is a proof of §1.\"": "§0は§1の証明です。", "§0 is a proof of §1.\n\nThe reason for the name is that this lemma is \"reflexivity of §2\"": "§0は§1の証明です。\n\nこの名前の理由は、この補題が\"§2の反射性\"であるためです。", @@ -79,7 +79,7 @@ "§0 is *notation* for §1.\n\nThe reason this is mathematically\nvalid is that if §2 is a true-false statement then §3\nis the logical opposite of §4. Indeed §5 is false,\nand §6 is true!\n\nThe upshot of this is that you can treat §7 in exactly\nthe same way as you treat any implication §8. For example,\nif your *goal* is of the form §9 then you can make progress\nwith §10, and if you have a hypothesis §11 of the\nform §12 then you can §13 if §14 is a proof\nof §15.": "§0は§1の*表記*です。\n\nこの数学的に有効な理由は、§2が真偽の主張であれば、§3は§4の論理的否定であるからです。実際、§5は偽であり、§6は真です!\n\nこのことから、§7は任意の推論§8と同じように扱うことができます。例えば、あなたの*目標*が§9のような形であれば、§10で進展が可能です。また、仮定§11が§12のような形であれば、§13を行うことができます(ただし、§14が§15の証明である場合)です。", "§0 is *notation* for §1.\n\nBecause this game doesn't have negative numbers, this definition\nis mathematically valid.\n\nThis means that if you have a goal of the form §2 you can\nmake progress with the §3 tactic, and if you have a hypothesis\n§4, you can make progress with §5.": - "§0は§1の記号表記です。\n\nこのゲームには負の数が存在しないので、この定義は数学的に有効です。\n\n这意味着如果你的目标形式为§2,你可以使用§3タクティク進展,如果你有仮定§4,你可以使用§5タクティク進展。", + "§0は§1の記号表記です。\n\nこのゲームには負の数が存在しないので、この定義は数学的に有効です。\n\n これは、あなたが§2という形式の目標を持っている場合、\n§3のタクティクを使って進展できることを意味します。また、仮定§4を持っている場合、§5のタクティクを使って進展できます。", "§0": "§0", "zero_pow_zero": "zero_pow_zero", "zero_pow_succ": "zero_pow_succ", @@ -88,21 +88,20 @@ "zero_add": "zero_add", "x ≤ y or y ≤ x": "x ≤ y または y ≤ x", "x ≤ y and y ≤ z implies x ≤ z": "x ≤ y と y ≤ z から x ≤ z が導かれる。", - "x ≤ y and y ≤ x implies x = y": "x ≤ y と y ≤ x は x = y を意味します。", + "x ≤ y and y ≤ x implies x = y": "x ≤ y と y ≤ x ならば x = y", "x ≤ succ x": "x ≤ succ x", "x ≤ 1": "x ≤ 1", "x ≤ 0 → x = 0": "x ≤ 0 → x = 0", "two_mul": "two_mul", "try rewriting §0.": "§0で書き換えてみてください.", - "the simplest approach": "最简单的方法", + "the simplest approach": "最も単純なアプローチ", "the rw tactic": "rw タクティク", "succ_mul": "succ_mul", "succ_inj : the successor function is injective": "succ_inj : 後者関数は単射", "succ_add": "succ_add", - "succ x ≤ succ y → x ≤ y": - " succ x ≤ succ y → x ≤ y\n\n\n## 日本語翻訳\n succ x ≤ succ y → x ≤ y", - "rewriting backwards": "反転して書き換え\n", - "pred": "前提", + "succ x ≤ succ y → x ≤ y": " succ x ≤ succ y → x ≤ y", + "rewriting backwards": "反転して書き換え", + "pred": "pred", "pow_two": "pow_two", "pow_pow": "pow_pow", "pow_one": "pow_one", @@ -114,39 +113,39 @@ "mul_right_eq_one": "mul_right_eq_one", "mul_pow": "mul_pow", "mul_one": "mul_one", - "mul_ne_zero": "mul_ne_zero\n\n\n## 日本語翻訳\n乗算が零でない(mul_ne_zero)", - "mul_left_ne_zero": "mul_left_ne_zero\n\n\n## 日本語翻訳\n左側 multiplicand が非零である定理", + "mul_ne_zero": "mul_ne_zero", + "mul_left_ne_zero": "mul_left_ne_zero", "mul_left_cancel": "mul_left_cancel", - "mul_le_mul_right": "乗法の右側への乗算の不等式定理", - "mul_eq_zero": "乗算が零に等しい", + "mul_le_mul_right": "mul_le_mul_right", + "mul_eq_zero": "mul_eq_zero", "mul_comm": "mul_comm", "mul_assoc": "mul_assoc", "mul_add": "mul_add", - "making life simple": "生活を単純にする", + "making life simple": "生活を単純に", "making life easier": "生活をより簡単に", "level completed! 🎉": "レベル完成しました!🎉", "level completed with warnings… 🎭": "レベルが警告付きで完了しました… 🎭", "le_two": "le_two", - "le_mul_right": "le_mul_right\n\n## 日本語翻訳\n右側乗算に関する定理です。", - "is_zero": "is_zero\n\n\n## 日本語翻訳\n零判定", + "le_mul_right": "le_mul_right", + "is_zero": "is_zero", "intro practice": "intro 練習", "intro": "intro", "intermediate goal solved! 🎉": "中間目標解決しました!🎉", "eq_succ_of_ne_zero": "eq_succ_of_ne_zero", - "decide again": "再決定", - "decide": "決定", + "decide again": "もう一度 decide", + "decide": "decide", "add_succ": "add_succ", "add_sq": "add_sq", "add_right_eq_zero": "add_right_eq_zero", - "add_right_eq_self": "add_right_eq_self\n\n\n## 日本語翻訳\n右側への加算が自身と等しいこと", + "add_right_eq_self": "add_right_eq_self", "add_right_comm": "add_right_comm", - "add_right_cancel": "add_right_cancel\n\n\n## 日本語翻訳\n右側キャンセル定理", + "add_right_cancel": "add_right_cancel", "add_mul": "add_mul", "add_left_eq_zero": "add_left_eq_zero", - "add_left_eq_self": "add_left_eq_self\n\n\n## 日本語翻訳\n左側への追加が自身と等しいという命題の定理です。", - "add_left_comm": "add_left_comm\n\n\n## 日本語翻訳\n左側交換律(add_left_comm)", - "add_left_cancel": "add_left_cancel\n\n\n## 日本語翻訳\n左-cancel 付加律", - "add_comm (level boss)": "add_comm (レベルボス)\n", + "add_left_eq_self": "add_left_eq_self", + "add_left_comm": "add_left_comm", + "add_left_cancel": "add_left_cancel", + "add_comm (level boss)": "add_comm (レベルボス)", "add_assoc (associativity of addition)": "add_assoc (加法の結合律)", "[final boss music]": "[最終ボスのテーマ]", "[dramatic music]. Now are you ready to face the first boss of the game?": @@ -157,8 +156,7 @@ "以下の最終ボスを倒すためのタクティクスを全部学びました。\nゲームの最終ボスに向かう旅を始めるには、乗算ワールドに入り始めることができます。\n\nまたは、含意ワールドで新しいタクティクを学んでみるのも良いでしょう。これらのタクティクは、加算に関するより多くの事実を証明するのに役立ちます。例えば、§0から§1を導き出す方法を学ぶことができます。\n\n\"ホーム\"をクリックして選択してください。", "You want to use §0, which you already\nproved, but you'll have to start with §1 your hypothesis.": "あなたは既に証明した§0を使用したいですが、仮定から始める必要がありますので、§1から始めなければなりません。", - "You still don't know which way to go, so do §0.": - "You still don't know which way to go, so do §0.\n\n\n## 日本語翻訳\nまだ進むべき道がわからないので、§0の指示に従いましょう。", + "You still don't know which way to go, so do §0.": "まだ進むべき道がわからないので、§0をしましょう。", "You now know enough tactics to prove §0! Let's begin the journey.": "あなたはすでに十分なタクティクを習得し、§0を証明することができます!旅の始まりです。", "You might want to think about whether induction\non §0 or §1 is the best idea.": @@ -168,18 +166,18 @@ "You can start a proof by induction on §0 by typing:\n§1.": "§0について帰納法で証明を開始するためには以下のように入力します:\n§1.", "You can read more about the §0 tactic by clicking\non it in the top right.": - "以下の§0 タクティクについて詳しく知るには、右上にクリックしてください。", + "§0 タクティクについて詳しく知るには、右上をクリックしてください。", "You can put a §0 in front of any theorem provided to §1 to rewrite\nthe other way around. Look at the docs for §2 for an explanation. Type §3 with §4.": "任意の定理 §1 に §0 を先頭に付けることで、逆方向に書き換えることができます。詳細は §2 のドキュメントを参照してください。§4をタイプして §3を入力してください。", "You can prove §0 in at least three ways.\nEither by induction, or by using §1, or\nby using commutativity. Which do you think is quickest?": "§0を証明する方法として、少なくとも3つの方法があります。\n帰納法で証明するか、§1を使用するか、または交換律を使用するかです。\nどの方法が最も速いと思いますか?", - "You can probably take it from here.": "您可能已经可以继续了。", - "You can now §0": "你现在可以 §0\n\n\n## 日本語翻訳\n你现在可以 §0", + "You can probably take it from here.": "おそらく、ここから始めても問題ありません。", + "You can now §0": "§0 ができます", "You can now finish with §0.": "§0 で完了しましょう。", "You can make your own tactics in Lean.\nThis code here\n§0\nwas used to create a new tactic §1, which runs\n§2.\nTry running §3 to solve this level!": "Leanで独自のタクティクを作成することができます。\n以下のコード\n§0\nは新しいタクティク§1の作成に使用され、§2を実行します。\n§3を実行してこのレベルを解いてみてください!", "You can just mimic the previous proof to do this one -- or you can figure out a way\nof using it.": - "以下の訳文は、提供された参考訳を考慮して翻訳しました。\n\n### 翻訳 (日本語)\n前の証明を模倣してこれを行うこともできます -- または、それを活用する方法を考え出すこともできます。", + "前の証明を模倣してこれを行うこともできます \n-- または、それを活用する方法を考え出すこともできます。", "You can do induction on any of the three variables. Some choices\nare harder to push through than others. Can you do the inductive step in\n5 rewrites only?": "任意の3つの変数について帰納法を適用できます。いくつかの選択肢はもう少し難しいかもしれません。5回の書き換えで帰納的ステップを実行できるでしょうか?", "Why did we not just define §0 to be §1? Because we have not\neven *defined* addition yet! We'll do that in the next level.": @@ -188,35 +186,35 @@ "この2行についてどう思いますか:\n§0\n\n§1 は、単に仮定を受け取るだけでなく、システム内に存在する任意の証明を処理します。", "Well done! You now have enough tools to tackle the main boss of this level.": "よくできました! あなたはこのレベルのメインボスに挑むための十分なツールを手に入れました。", - "Well done!": " WELL DONE!", + "Well done!": "よくできました!", "Welcome to tutorial world! In this world we learn the basics\nof proving theorems. The boss level of this world\nis the theorem §0.\n\nYou prove theorems by solving puzzles using tools called *tactics*.\nThe aim is to prove the theorem by applying tactics\nin the right order.\n\nLet's learn some basic tactics. Click on \"Start\" below\nto begin your quest.": "チュートリアルワールドにようこそ! この世界では定理を証明する基本を学びます。この世界のボスレベルは定理§0です。\n\n定理を証明するには、*タクティク*というツールを使ってパズルを解きます。目標は、適切な順序でタクティクを適用して定理を証明することです。\n\n基本的なタクティクについて学んでみましょう。以下の \"開始\" をクリックして冒険を始めてください。", "Welcome to Addition World! In this world we'll learn the §0 tactic.\nThis will enable us to defeat the boss level of this world, namely §1.\n\nThe tactics §2, §3 and §4 are the only tactics you'll need to\nbeat all the levels in Addition World, Multiplication World, and Power World.\nPower World contains the final boss of the game.\n\nThere are plenty more tactics in this game, but you'll only need to know them if you\nwant to explore the game further (for example if you decide to 100%\nthe game).": " 加算ワールドへようこそ!このワールドでは§0 タクティクを学びます。\nこれにより、このワールドのボスレベルを攻略することができます、すなわち§1です。\n\n§2, §3, §4 のタクティクのみが必要で、これらを用いて\n加算ワールド、乗算ワールド、冪乗ワールドのすべてのレベルを攻略することができます。\n冪乗ワールドにはゲームの最終ボスが含まれています。\n\nこのゲームにはもっと多くのタクティクがありますが、それらを知る必要はなく、\nゲームをさらに探索したい場合(例えば、ゲームを100%攻略したい場合)にのみ必要となります。", "We've seen §0, the proof that if §1 then §2.\nNow we'll prove that if §3 then §4 or §5.": - "We've seen §0, 仮定§1 から §2 が成り立つことを証明した。\n次に、仮定§3 から §4 または §5 が成り立つことを証明する。", + "§0, 仮定§1 から §2 が成り立つことを証明しました。\n次に、仮定§3 から §4 または §5 が成り立つことを証明します。", "We've proved that §0; in Implication World we'll learn\nhow to prove §1.\n\nIn Addition World we proved *equalities* like §2.\nIn this second tutorial world we'll learn some new tactics,\nenabling us to prove *implications*\nlike §3\n\nWe'll also learn two new fundamental facts about\nnatural numbers, which Peano introduced as axioms.\n\nClick on \"Start\" to proceed.": "私たちは§0を証明しました; 含意ワールドでは、§1を証明する方法を学びます。\n\n加法ワールドでは、§2のような等式を証明しました。\nこの二つ目のチュートリアルワールドでは、新しいタクティクを学び、\nこれを使って§3のような推論を証明できるようになります。\n\nまた、ペアノが公理として導入した自然数に関する二つの新しい基本的事実も学びます。\n\n\"開始\"をクリックして進みましょう。", "We've proved that §0 implies §1. The last two levels\nin this world will prove which numbers are §2 and §3.\nThis lemma will be helpful for them.": - "We've proved that §0 から §1 が導かれる。このワールドの最後の2つのレベルでは、どの数が §2 と §3 であるかを証明する。この補題は彼らにとって役立つだろう。", + "§0 から §1 が導かれることを証明しました。\nこのワールドの最後の2つのレベルでは、どの数が §2 と §3 であるかを証明します。この補題はこれらにとって役立つでしょう。", "We've just seen that §0, but if §1\nis a successor, then §2. We prove that here.": "§0 について見てきました。 ですが、もし §1 が後者である場合、 §2 になります。ここではそのことを証明します。", "We've been adding up two numbers; in this level we will add up three.\n\n What does §0 *mean*? It could either mean §1, or it\n could mean §2. In Lean, §3 means §4.\n\n But why do we care which one it means; §5 and §6 are *equal*!\n\n That's true, but we didn't prove it yet. Let's prove it now by induction.": "二つの数を足し合わせてきました;このレベルでは三つの数を足し合わせます。\n\n §0は何を意味するのでしょうか?それは §1 か §2 のどちらかです。Leanでは、§3 は §4 と意味が同じです。\n\n しかし、どの意味を持つべきかを気にする必要があるのでしょうか;§5 と §6 は *等しい* のです!\n\n その通りですが、まだ証明していません。帰納法 (`inducution`) で証明しましょう。", "We're going to change that §0 into §1. Start by changing it into\n§2 by executing §3.": - "We're going to change that §0 into §1. Start by changing it into\n§2 by executing §3.\n\n\n## 日本語翻訳\n§0 を §1 に変更します。まず、§3 を実行して §0 を §2 に変更します。", + "§0 を §1 に変更します。まず、§3 を実行して §0 を §2 に変更します。", "We'll need this lemma to prove that two is prime!\n\nYou'll need to know that §0 is right associative. This means that\n§1 actually means §2.\nThis affects how §3 and §4 work.": - "We'll need this lemma to prove that two is prime!\n\nYou'll need to know that §0 is right associative. This means that\n§1 actually means §2.\nThis affects how §3 and §4 work.", + "この定理を使って、2 が素数であることを証明する必要があります!\n\n§0 が右結合であることを知っておく必要があります。\nこれは、§1 が実際に §2 と同じ意味であることを意味します。\nこれにより、§3 と §4 の動作が影響を受けます。", "We'd like to prove §0 but right now\nwe can't even *state* it\nbecause we haven't yet defined addition.\n\n## Defining addition.\n\nHow are we going to add §1 to an arbitrary number §2? Well,\nthere are only two ways to make numbers in this game: §3\nand successors. So to define §4 we will need\nto know what §5 is and what §6 is.\nLet's start with adding §7.\n\n### Adding 0\n\nTo make addition agree with our intuition, we should *define* §8\nto be §9. More generally, we should define §10 to be §11 for\nany number §12. The name of this proof in Lean is §13.\nFor example §14 is a proof of §15,\n§16 is a proof of §17, and §18 is a proof\nof §19.\n\nWe write §20, so §21.": "私たちは§0を証明したいですが、現在では\nその定理を*述べること*すらできません。\nなぜなら、加法をまだ定義していないからです。\n\n## 加法の定義\n\n任意の数§2に§1を加える方法はどのようなものでしょうか?\nこのゲームでは数を生成する方法は2つしかありません:§3\nと後続数。したがって、§4を定義するには\n§5と§6がどのようなものかを知る必要があります。\nまずは§7を加えることにしましょう。\n\n### 0を加える\n\n加法が直感に合致するようにするためには、§8を\n§9とするべきです。より一般的には、任意の数§12に対して\n§10を§11とするべきです。Leanでのこの証明の名前は§13です。\n例えば、§14は§15の証明、§16は§17の証明、§18は§19の証明です。\n\n私たちは§20と書きます、つまり§21です。", "We want to use §0, but we need a hypothesis §1\nwhich we don't have. Yet. Execute §2 (you can type §3 with §4).\nYou'll be asked to\nprove it, and then you'll have a new hypothesis which you can apply\n§5 to.": - "We want to use §0, ですが、§1 という仮定が必要で、現在持正在りません。まだありません。§2 を実行してください(§3 を §4 で入力できます)。\n求められるまでは証明が必要ですが、証明後には新しい仮定が得られ、それを §5 で適用できます。", + "§0 を使いたいですが、持っていない §1 という仮定が必要です。§2 を実行してください(§3 を §4 で入力できます)。\n求められるまでは証明が必要ですが、証明後には新しい仮定が得られ、それを §5 で適用できます。", "We want to reduce this to a hypothesis §0 and a goal §1,\nwhich is logically equivalent but much easier to prove. Remember that §2\nis notation for §3. Click on §4 if you need hints.": - "We want to reduce this to a hypothesis §0 and a goal §1,\nwhich is logically equivalent but much easier to prove. Remember that §2\nis notation for §3. Click on §4 if you need hints.\n\n\n## 日本語翻訳\nこの部分を仮定§0と目標§1に簡略化したいです。これは論理的に同等ですが、証明がはるかに簡単になります。§2は§3の表記法です。ヒントが必要な場合は§4をクリックしてください。", + "この部分を仮定§0と目標§1に簡略化したいです。\nこれは論理的に同等ですが、証明がはるかに簡単になります。\n§2は§3の表記法です。ヒントが必要な場合は§4 (訳注: \"より多くのヘルプを表示!\")をクリックしてください。", "We still can't prove §0 because we have not talked about the\ndefinition of §1. In Lean, §2 is *notation* for §3.\nHere §4 is a generic false proposition, and §5 is Lean's notation\nfor \"implies\". In logic we learn\nthat §6 is false, but §7 is true. Hence\n§8 is the logical opposite of §9.\n\nEven though §10 does not look like an implication,\nyou should treat it as an implication. The next two levels will show you how.\n\n§11 is a goal which you cannot deduce from a consistent set of assumptions!\nSo if your goal is §12 then you had better hope that your hypotheses\nare contradictory, which they are in this level.": "まだ §0 を証明することができません。なぜなら §1 の定義について話していなかったからです。Lean では §2 は §3 の *表記* です。\nここでは §4 は一般的な偽命題、§5 は Lean の \"implies\" の表記です。論理学では §6 は偽であり、§7 は真です。したがって\n§8 は §9 の論理的対偶です。\n\n§10 は含意に見えないかもしれませんが、含意 として扱うべきです。次の 2 つのレベルでその方法を学びます。\n\n§11 は一貫性のある仮定から導き出せない目標です!したがって、目標が §12 の場合、仮定が矛盾していることを願うべきで、このレベルではそうしています。", "We now start work on an algorithm to do addition more efficiently. Recall that\nwe defined addition by recursion, saying what it did on §0 and successors.\nIt is an axiom of Lean that recursion is a valid\nway to define functions from types such as the naturals.\n\nLet's define a new function §1 from the naturals to the naturals, which\nattempts to subtract 1 from the input. The definition is this:\n\n§2\n\nWe cannot subtract one from 0, so we just return a junk value. As well as this\ndefinition, we also create a new lemma §3, which says that §4.\nLet's use this lemma to prove §5, the theorem which\nPeano assumed as an axiom and which we have already used extensively without justification.": - "### 原文 (English)\nWe now start work on an algorithm to do addition more efficiently. Recall that\nwe defined addition by recursion, saying what it did on §0 and successors.\nIt is an axiom of Lean that recursion is a valid\nway to define functions from types such as the naturals.\n\nLet's define a new function §1 from the naturals to the naturals, which\nattempts to subtract 1 from the input. The definition is this:\n\n§2\n\nWe cannot subtract one from 0, so we just return a junk value. As well as this\ndefinition, we also create a new lemma §3, which says that §4.\nLet's use this lemma to prove §5, the theorem which\nPeano assumed as an axiom and which we have already used extensively without justification.\n\n\n### 翻訳 (Japanese)\n現在、効率的な加算を行うアルゴリズムの作成を開始します。再帰によって加算を定義したことを思い出してください。具体的には、0と後続者に対して何を行うかを定義しました。\nLeanの公理として、再帰は自然数などの型から関数を定義する有効な方法であるとされています。\n\n自然数から自然数への新しい関数§1を定義します。これは、入力から1を引こうとする関数です。その定義は以下の通りです:\n\n§2\n\n0から1を引くことはできませんので、無効な値を返します。この定義とともに、新しい補題§3も定義します。これは§4を述べています。\nこの補題を使って、§5(ペアノが公理として仮定し、以前にも正当化せずに頻繁に使用した定理)を証明しましょう。", + "効率的な加算を行うアルゴリズムの作成を開始します。\n再帰によって加算を定義したことを思い出してください。\n具体的には、0と後者に対して何を行うかを定義しました。\nLeanの公理として、再帰は自然数などの型から関数を定義する有効な方法であるとされています。\n\n自然数から自然数への新しい関数§1を定義します。これは、入力から1を引こうとする関数です。その定義は以下の通りです:\n\n§2\n\n0から1を引くことはできませんので、無効な値を返します。この定義とともに、新しい補題§3も定義します。これは§4を述べています。\nこの補題を使って、§5(ペアノが公理として仮定し、以前にも正当化せずに頻繁に使用した定理)を証明しましょう。", "We now have enough to state a mathematically accurate, but slightly\nclunky, version of Fermat's Last Theorem.\n\nFermat's Last Theorem states that if §0 and §1 then §2.\nIf you didn't do inequality world yet then we can't talk about §3,\nso we have to resort to the hack of using §4 for §5,\nwhich guarantees it's big enough. Similarly instead of §6 we\nuse §7.\n\nThis level looks superficially like other levels we have seen,\nbut the shortest solution known to humans would translate into\nmany millions of lines of Lean code. The author of this game,\nKevin Buzzard, is working on translating the proof by Wiles\nand Taylor into Lean, although this task will take many years.\n\n## CONGRATULATIONS!\n\nYou've finished the main quest of the natural number game!\nIf you would like to learn more about how to use Lean to\nprove theorems in mathematics, then take a look\nat [Mathematics In Lean](https://leanprover-community.github.io/mathematics_in_lean/),\nan interactive textbook which you can read in your browser,\nand which explains how to work with many more mathematical concepts in Lean.": "現在、フェルマーの最終定理の数学的に正確だが、\nやや冗長なバージョンを記述するのに十分な情報があります。\n\nフェルマーの最終定理は、§0 と §1 が成り立つならば、§2 が成り立つ、\nと述べることができます。\nもし「不等式世界」をまだ実装していない場合は、\n§3 について議論できません。そのため、§4 を §5 の代わりに使うという「ハック」に頼る必要があります。\nこれにより、十分な大きさになることが保証されます。\n同様に、§6 の代わりに §7 を使用します。\n\nこのレベルは、これまでに見た他のレベルと似ていますが、\n人間が知っている最も短い解は、数百万行の \nLean コードに変換されます。このゲームの作者である Kevin Buzzard は、\nウィルズとテイラーの証明を Lean に翻訳する作業に取り組んでいますが、\nこの作業には数年かかるでしょう。\n\n## おめでとう!\n\n自然数ゲームの主要な冒険を終えました!\nLeanを使用して数学の定理を証明する方法をさらに学びたい場合は、\n[Leanで数学](https://leanprover-community.github.io/mathematics_in_lean/) を参照してください。\nこれはブラウザで読むことができる対話型教科書で、Leanでより多くの数学的概念を扱う方法を説明しています。", "We now have enough to prove that multiplication is associative,\nthe boss level of multiplication world. Good luck!": @@ -226,31 +224,31 @@ "We have seen how to §0 theorems and assumptions\nof the form §1. But what if our *goal* is of the form §2?\nTo prove this goal, we need to know how to say \"let's assume §3 and deduce §4\"\nin Lean. We do this with the §5 tactic.": "私たちは、形式 §1 の定理や仮定の §0 の方法を見ました。\nしかし、もし私たちの *目標* が形式 §2 の場合は、どうすれば良いでしょうか?\nこの目標を証明するには、Lean \nで \"§3 という仮定を設け、 §4 を導く\" という方法を知る必要があります。これを行うためには、§5 タクティクを使用します。", "We gave a pretty unsatisfactory proof of §0 earlier on; now give a nicer one.": - "## 前回の証明は不十分でしたので、今回はより良い証明方法を示します。", + "前回の §0 の証明は不十分でしたので、今回はより良い証明方法を示します。", "We don't know whether to go left or right yet. So start with §0.": - "### 原文 (English)\nWe don't know whether to go left or right yet. So start with §0.\n\n\n## 日本語翻訳\nまだ左に進むべきか右に進むべきかは分かりません。そのため、§0から始めてみましょう。", + "まだ左に進むべきか右に進むべきかは分かりません。そのため、§0から始めてみましょう。", "We define a function §0 thus:\n\n§1\n\nWe also create two lemmas, §2 and §3, saying that §4\nand §5. Let's use these lemmas to prove §6, Peano's\nLast Axiom. Actually, we have been using §7 before, but it's handy to have\nthis opposite version too, which can be proved in the same way. Note: you can\ncheat here by using §8 but the point of this world is to show\nyou how to *prove* results like that.\n\nIf you can turn your goal into §9, then the §10 tactic will solve it.": - "### 原文 (English)\nWe define a function §0 thus:\n\n§1\n\nWe also create two lemmas, §2 and §3, saying that §4\nand §5. Let's use these lemmas to prove §6, Peano's\nLast Axiom. Actually, we have been using §7 before, but it's handy to have\nthis opposite version too, which can be proved in the same way. Note: you can\ncheat here by using §8 but the point of this world is to show\nyou how to *prove* results like that.\n\nIf you can turn your goal into §9, then the §10 tactic will solve it.\n\n\n### 日本語翻訳\n関数 §0 を定義します:\n\n§1\n\nまた、命題 §2 と §3 を作成し、§4\nと §5 を言います。これらの命題を使って、ペアノの最終公理 §6 を証明しましょう。実際、§7 は以前から使用していましたが、同じ方法で証明できる逆の命題も用意しておくと便利です。注意:ここでは §8 を使用して cheat することができますが、このワールドの目的は、そのような結果を証明する方法を示すことです。\n\n目標を §9 に変換できるなら、§10 タクティクで解決できます。", + "関数 §0 を定義します:\n\n§1\n\nまた、補題 §2 と §3 を作成し、§4\nと §5 とします。これらの命題を使って、ペアノの最終公理 §6 を証明しましょう。実際、§7 は以前から使用していましたが、同じ方法で証明できる逆の命題も用意しておくと便利です。注意:ここでは §8 を使用してチートすることができますが、このワールドの目的は、そのような結果を証明する方法を示すことです。\n\n目標を §9 に変換できるなら、§10 タクティクで解決できます。", "Very well done.\n\nA passing mathematician remarks that with you've just proved that §0 is totally\nordered.\n\nThe final few levels in this world are much easier.": - "Very well done.\n\n数学的な見地から言えば、あなたが証明したところでは、§0 は完全に順序付けられています。\n\nこのワールドの最後の数レベルははるかに簡単です。", + "よくできました。\n\n通りすがりの数学者は、あなたが §0 は完全に順序付けられていることを証明したと述べました。\n\nこのワールドの最後の数レベルははるかに簡単です。", "Use §0.": "§0を使用してください。", "Use §0 and remember that §1 will solve a goal\nif there are hypotheses §2 and §3.": - "使用する§0と、仮定§2と§3がある場合、§1は目標を解決します。", - "Use the previous lemma with §0.": "前の補題を使用し、§0を適用してください。", + "§0を使用します。仮定§2と§3があるときに§1で目標を解決できることを思い出してください。", + "Use the previous lemma with §0.": "§0を使用し、前の補題を適用してください。", "Tutorial World": "チュートリアルワールド", "Try §0.": "§0を試しましょう。", "Try §0 to change §1 into §2.": "§0 を使用し、§1 を §2 に変換してみてください。", "Totality of §0 is the boss level of this world, and it's coming up next. It says that\nif §1 and §2 are naturals then either §3 or §4.\nBut we haven't talked about §5 at all. Here's a run-through.\n\n1) The notation for \"or\" is §6. You won't need to type it, but you can\ntype it with §7.\n\n2) If you have an \"or\" statement in the *goal*, then two tactics make\nprogress: §8 and §9. But don't choose a direction unless your\nhypotheses guarantee that it's the correct one.\n\n3) If you have an \"or\" statement as a *hypothesis* §10, then\n§11 will create two goals, one where you went left,\nand the other where you went right.": - "### 原文 (English)\nTotality of §0 is the boss level of this world, and it's coming up next. It says that\nif §1 and §2 are naturals then either §3 or §4.\nBut we haven't talked about §5 at all. Here's a run-through.\n\n1) The notation for \"or\" is §6. You won't need to type it, but you can\ntype it with §7.\n\n2) If you have an \"or\" statement in the *goal*, then two tactics make\nprogress: §8 and §9. But don't choose a direction unless your\nhypotheses guarantee that it's the correct one.\n\n3) If you have an \"or\" statement as a *hypothesis* §10, then\n§11 will create two goals, one where you went left,\nand the other where you went right.\n\n\n### 翻訳 (Japanese)\n完全性の §0 はこのワールドのボスレベルであり、次に登場します。これは、§1 と §2 が自然数である場合、§3 または §4 であることを言います。\nしかし、§5 については全く話していません。以下は概要です。\n\n1) \"または\" の表記は §6 です。直接入力する必要はありませんが、§7 で入力することができます。\n\n2) 目的 §8 に \"または\" の文がある場合、2 つのタクティク §9 が進行します。ただし、方向を選択する前に、仮定が正しい方向を保証していることを確認してください。\n\n3) 仮定 §10 に \"または\" の文がある場合、§11 は 2 つの目的を作成します。一つは左に進んだ場合、もう一つは右に進んだ場合です。", + "§0 の全域性はこのワールドのボスレベルであり、次に登場します。これは、§1 と §2 が自然数である場合、§3 または §4 であることを言います。\nしかし、§5 については全く話していません。以下は概要です。\n\n1) \"または\" の表記は §6 です。直接入力する必要はありませんが、§7 で入力することができます。\n\n2) 目標に \"または\" の文がある場合、2 つのタクティク §8 と §9 で進めます。ただし、方向を選択する前に、仮定が正しい方向を保証していることを確認してください。\n\n3) 仮定 §10 に \"または\" の文がある場合、§11 は 2 つの目標を作成します。一つは左に進んだ場合、もう一つは右に進んだ場合です。", "To solve this level, you need to §0 a number §1 such that §2.": - "このレベルを解くためには、§0 に数字 §1 を §2 する必要があります。", + "このレベルを解くためには、§0 に数値 §1 を指定して §2 にする必要があります。", "Those of you interested in speedrunning the game may want to know\nthat §0 will do both rewrites at once.": "ゲームのスピードランに興味がある方は、§0 が一度に両方のリライトを行うことを知っておくと良いでしょう。", "This world introduces exponentiation. If you want to define §0\nthen, as always, you will need to know what §1 is, and\nwhat §2 is, given only §3.\n\nYou can probably guess the names of the general theorems:\n\n * §4\n * §5\n\nUsing only these, can you get past the final boss level?\n\nThe levels in this world were designed by Sian Carey, a UROP student\nat Imperial College London, funded by a Mary Lister McCammon Fellowship\nin the summer of 2019. Thanks to Sian and also thanks to Imperial\nCollege for funding her.": "このワールドでは指数演算が導入されます。§0を定義するには、常に §1 と §2 が何であるかを知る必要があります。そして、それらを §3 だけを使って推測する必要があります。\n\n一般的な定理の名前はおそらく予想できるでしょう:\n\n * §4\n * §5\n\nこれらのものだけを使って最終ボスレベルを突破できるでしょうか?\n\nこの世界のレベルは、2019年夏にMary Lister McCammon助成金によりImperial College LopndonのUROP学生であるSian Careyによって設計されました。Sianに感謝します。また、Imperial Collegeの助成にも感謝します。", - "This time, use the §0 tactic.": "この回は、§0 タクティクを使用します。", + "This time, use the §0 tactic.": "今回は、§0 タクティクを使用します。", "This level proves §0, the multiplicative analogue of Advanced Addition\nWorld's §1. The strategy is to prove that §2 and then use the\nlemma §3 from §4 world.\n\nWe'll prove it using a new and very useful tactic called §5.": - "このレベルでは、進んだ加算ワールドの§1の乗法的な類似物である§0を証明します。戦略は、§2を証明し、その後、§4ワールドから§3の補題を使用することです。\n\n新しい非常に有用なタクティク§5を使用して証明します。", + "このレベルでは、高度な加算ワールドの§1の乗法的な類似である§0を証明します。戦略は、§2を証明し、その後、§4ワールドから§3の補題を使用することです。\n\n新しく非常に有用なタクティク§5を使用して証明します。", "This level proves that if §0 then §1 or §2. It is\nlogically equivalent to the last level, so there is a very short proof.": "このレベルは、§0 ならば §1 または §2 であることを証明します。これは最後のレベルと論理的に同等であるため、非常に短い証明があります。", "This level proves that if §0 and §1 then §2. One strategy\nis to write both §3 and §4 as §5 of something, deduce that §6 is\nalso §7 of something, and then §8.": @@ -260,19 +258,19 @@ "This level asks you to prove *antisymmetry* of §0.\nIn other words, if §1 and §2 then §3.\nIt's the trickiest one so far. Good luck!": "このレベルでは、§0 の *反対称性* を証明する必要があります。\nつまり、§1 かつ §2 ならば §3 です。\nこれまでで最も難しい問題です。運を祈ります!", "This lemma would have been easy if we had known that §0. That theorem\n is called §1 and it is *true*, but unfortunately its proof *uses* both\n §2 and §3!\n\n Let's continue on our journey to §4, the proof of §5.": - "この補題は、§0を知っていたら簡単だったでしょう。その定理は§1と呼ばれ、**真**です。しかし、残念ながらその証明は§2と§3を**使用**しています!\n\n§4へと進みましょう、§5の証明に。", + "この補題は、§0を知っていたら簡単だったでしょう。その定理は§1と呼ばれ、**真**です。しかし、残念ながらその証明は§2と§3を**使用**しています!\n\n§5の証明である、§4へと進みましょう。", "This is I think the toughest level yet. Tips: if §0 is a number\nthen §1 will split into cases §2 and §3.\nAnd don't go left or right until your hypotheses guarantee that\nyou can prove the resulting goal!\n\nI've left hidden hints; if you need them, retry from the beginning\nand click on \"Show more help!\"": - "これは今までで最も難しいレベルかもしれません。ヒント:もし§0が数値であれば、§1は§2と§3に分岐します。\nそして、仮定が結果の目標を証明できる保証がない限りは左や右には移動しないでください!\n\n隠されたヒントを残しています;必要であれば、最初からやり直し、「もっと手助けを表示!」とクリックしてください。", + "これは今までで最も難しいレベルかもしれません。ヒント:もし§0が数値であれば、§1は§2と§3に分岐します。\nそして、仮定が結果の目標を証明できる保証がない限りは左や右には移動しないでください!\n\n隠されたヒントを残しています;必要であれば、最初からやり直し、「より多くのヘルプを表示!」とクリックしてください。", "The §0 tactic.": "タクティク §0", "The §0 tactic": "タクティク §0", "The way to start this proof is §0.": "この証明を始める方法は §0。", "The rfl tactic": "rfl タクティク", "The reason §0 is because §1.\nSo you should start this proof with §2.": - "The reason §0 is because §1.\nSo you should start this proof with §2.\n\n\n## 翻訳\n理由§0は§1である。\n従って、この証明は§2から始めるべきである。", + "§0は§1であるため成立します。\n従って、この証明は§2から始めるべきです。", "The previous lemma can be used to prove this one.": "前の定理を用いて、この定理を証明することができます。", "The next result we'll need in §0 World is that if §1 then §2 and §3.\nLet's prove one of these facts in this level, and the other in the next.\n\n## A new tactic: §4\n\nThe §5 tactic will split an object or hypothesis up into the possible ways\nthat it could have been created.\n\nFor example, sometimes you want to deal with the two cases §6 and §7 separately,\nbut don't need the inductive hypothesis §8 that comes with §9.\nIn this situation you can use §10 instead. There are two ways to make\na number: it's either zero or a successor. So you will end up with two goals, one\nwith §11 and one with §12.\n\nAnother example: if you have a hypothesis §13 then you are done, because a false statement implies\nany statement. Here §14 will close the goal, because there are *no* ways to\nmake a proof of §15! So you will end up with no goals, meaning you have proved everything.": - "### 原文 (English)\nThe next result we'll need in §0 World is that if §1 then §2 and §3.\nLet's prove one of these facts in this level, and the other in the next.\n\n## A new tactic: §4\n\nThe §5 tactic will split an object or hypothesis up into the possible ways\nthat it could have been created.\n\nFor example, sometimes you want to deal with the two cases §6 and §7 separately,\nbut don't need the inductive hypothesis §8 that comes with §9.\nIn this situation you can use §10 instead. There are two ways to make\na number: it's either zero or a successor. So you will end up with two goals, one\nwith §11 and one with §12.\n\nAnother example: if you have a hypothesis §13 then you are done, because a false statement implies\nany statement. Here §14 will close the goal, because there are *no* ways to\nmake a proof of §15! So you will end up with no goals, meaning you have proved everything.\n\n\n### 翻訳 (Japanese)\n次に §0 ワールドで必要になる結果は、もし §1 なら §2 と §3 です。\nこのレベルで一つの事実を証明し、次のレベルでもう一つの事実を証明しましょう。\n\n## 新しいタクティク: §4\n\n§5 タクティクは、オブジェクトや仮定を生成された可能性のある方法に分割します。\n\n例えば、時々 §6 と §7 の二つのケースを個別に扱いたい場合がありますが、§9 が伴う §8 の帰納的仮定は必要ありません。\nこの状況では、§10 を使用することができます。数を作る方法は二つあります:ゼロか後続です。したがって、二つの目標が残ります。一つには §11 があり、もう一つには §12 があります。\n\n別の例:仮定 §13 がある場合、証明は完了します。偽の命題は任意の命題を導くからです。ここでは §14 が目標を閉じます。なぜなら §15 の証明を作る方法は *ありません*!したがって、目標が残らないため、すべてを証明したということになります。", + "次に §0 ワールドで必要になる結果は、もし §1 なら §2 と §3 です。\nこのレベルで一つの事実を証明し、次のレベルでもう一つの事実を証明しましょう。\n\n## 新しいタクティク: §4\n\n§5 タクティクは、目的や仮定を生成された可能性のある方法に分割します。\n\n例えば、時々 §6 と §7 の二つのケースを個別に扱いたい場合がありますが、§9 が伴う §8 の帰納的仮定は必要ありません。\nこの状況では、§10 を使用することができます。数を作る方法は二つあります:ゼロか後続です。したがって、二つの目標が残ります。一つには §11 があり、もう一つには §12 があります。\n\n別の例:仮定 §13 がある場合、証明は完了します。偽の命題は任意の命題を導くからです。ここでは §14 が目標を閉じます。なぜなら §15 の証明を作る方法は *ありません*!したがって、目標が残らないため、すべてを証明したということになります。", "The music gets ever more dramatic, as we explore\nthe interplay between exponentiation and multiplication.\n\nIf you're having trouble exchanging the right §0\nbecause §1 swaps the wrong multiplication,\nthen read the documentation of §2 for tips on how to fix this.": "音楽はますますドラマチックになり、\n指数演算と乗算の相互作用を探求します。\n\nもし指数乗と乗算の順序を正しく交換できずに\n§1 が誤った乗算を交換してしまう場合、\n§2 のドキュメンテーションを参照して修正方法を確認してください。", "The music dies down. Is that it?\n\nCourse it isn't, you can\nclearly see that there are two levels left.\n\nA passing mathematician says that mathematicians don't have a name\nfor the structure you just constructed. You feel cheated.\n\nSuddenly the music starts up again. This really is the final boss.": @@ -280,7 +278,7 @@ "The lemma proved in the final level of this world will be helpful\nin Divisibility World.": "最終レベルで証明された補題は、整除世界で役立つでしょう。", "The inductive hypothesis §0 is \"For all natural numbers §1, §2\".\nYou can §3 it §4 any hypothesis of the form §5.": - " induktive 仮定 §0 は \"全ての自然数 §1 について §2\" です。\nあなたは §3 その §4 仮定 §5 の任意の形で §6 できます。", + "帰納的仮定 §0 は \"全ての自然数 §1 について §2\" です。\nあなたは 仮定 §5 の形に対して、 §3 できます。\n(訳注: 原文は \"You can §3 it §4 any hypothesis of the form §5.\" です。\nつまり、 §3 §0 §4 §5 のような形で使用できます。)", "The goal in this level is one of our hypotheses. Solve the goal by executing §0.": "このレベルの目標は、私たちの仮定の一つです。目標を達成するには、§0 を実行してください。", "The first sub-boss of Multiplication World is §0.\n\nWhen you've proved this theorem we will have \"spare\" proofs\nsuch as §1, which is now easily deducible from §2.\nBut we'll keep hold of these proofs anyway, because it's convenient\nto have exactly the right tool for a job.": @@ -291,7 +289,8 @@ "Start with §0.": "§0 で開始します。", "Start with §0, to change the goal into its\ncontrapositive, namely a hypothesis of §1 and a goal of §2.": "開始するには、§0 から始めて、目標を対偶に変更し、具体的には§1 の仮定と§2 の目標にします。", - "Start with §0 to push all the brackets to the right.": "開始は§0から全括弧を右に移動させます。", + "Start with §0 to push all the brackets to the right.": + "§0から全括弧を右に移動させて、始めましょう。", "Start with §0 to do a case split on §1 and §2.": "開始するには、§0 を使用して §1 と §2 に対してケース分割を行います。", "Start with §0 to begin to break §1 down into its definition.": @@ -302,13 +301,13 @@ "Start with §0 to apply §1 to the *goal*.": "開始するには、§0 を使用して §1 を *目標* に適用します。", "Start with §0 and §1": "開始するには、§0 と §1 を使用します。", - "Start with §0 and take it from there.": "開始は§0からにして、その後は対話型で進めてください。", + "Start with §0 and take it from there.": "§0から始めて、そこから続けてください。", "Start with §0 (remembering that §1 is just notation\nfor §2).": - "開始は §0 から (§1 は §2 の表記法であることを覚えておいてください)。", - "Start with induction on §0.": "開始は §0 に対する帰納法からです。", + "§0 から始めましょう(§1 は §2 の表記法であることを覚えておいてください)。", + "Start with induction on §0.": "§0 に対する帰納法から始めてください。", "Start by unravelling the §0.": "§0 を解いて開始してください。", - "Split into cases §0 and §1 with §2.": "ケース分けして §0 と §1 に分ける。", - "Solve this level in one line with §0": "このレベルを一行で解いてください§0", + "Split into cases §0 and §1 with §2.": "§2 で§0 と §1 にケースを分けましょう。", + "Solve this level in one line with §0": "このレベルを一行で解いてください: §0", "So that's the algorithm: now let's use automation to perform it\nautomatically.": "そのアルゴリズムはこれです:今度は自動化を使って自動的に実行させましょう。", "Similarly we have §0\nbut we're going to need §1 (guess what it says -- maybe you\nare getting the hang of Lean's naming conventions).\n\nThe last level from addition world might help you in this level.\nIf you can't remember what it is, you can go back to the\nhome screen by clicking the house icon and then taking a look.\nYou won't lose any progress.": @@ -316,14 +315,14 @@ "See the new \"*\" tab in your lemmas, containing §0 and §1.\nRight now these are the only facts we know about multiplication.\nLet's prove nine more.\n\nLet's start with a warm-up: no induction needed for this one,\nbecause we know §2 is a successor.": "新しい \"*\" タブを確認してください。そこで §0 と §1 が表示されています。\n現在、これらは乗算について知っている唯一の事実です。\nあと9つの証明を行いましょう。\n\nまずはウォームアップから始めましょう。この場合は inducition は必要ありません。\nなぜなら §2 は後者であることが分かっているからです。", "See if you can take it from here. Look at the new lemmas and tactic\navailable on the right.": - "見られる範囲で新しい命題とタクティクが追加されています。それらを活用してみてください。", + "右に新しい補題とタクティクが追加されています。それらを活用してみてください。", "Remember, §0 is *notation* for §1.": "覚えておいてください、§0は§1の*表記*です。", "Remember that §0 is a proof of §1. Try\n§2ing §3 either §4 or directly to the goal.": "§0は§1の証明であることを覚えておいてください。\n§3 の §2 は目標に直接または§4から行うことができます。", "Remember that when Lean writes §0, it means §1.\nIf you are not sure where the brackets are in an expression, just hover\nyour cursor over it and look at what gets highlighted. For example,\nhover over both §2 symbols on the left hand side of the goal and\nyou'll see where the invisible brackets are.": "Lean において§0と表示されたとき、§1を意味することを覚えておいてください。.\nもし式内の括弧の位置が不明な場合は、カーソルをその位置にホバーして表示されるハイライトを確認してください。例えば、目標の左側の両方の§2をホバーすると、見えない括弧の位置がわかります。", - "Reduce to the previous lemma with §0": "以前の補題に §0 をReduceします。", - "Ready for the boss level of this world?": "このワールドのボスレベルに備えていますか?", + "Reduce to the previous lemma with §0": " §0 を使用して、直前の補題に変換します。", + "Ready for the boss level of this world?": "このワールドのボスレベルの準備は出来ていますか?", "Proofs like §0 and §1 are very tedious to do by hand.\nIn Algorithm World we learn how to get the computer to do them for us.\n\nClick on \"Start\" to proceed.": "§0や§1のような証明は手作業で行うと非常に退屈です。\nアルゴリズムワールドでは、コンピュータにその作業を任せることを学びます。\n\n\"開始\"をクリックして進みましょう。", "Precision rewriting": "精密な書き換え", @@ -335,7 +334,7 @@ "One of the best named levels in the game, a savage §0\nsub-boss appears as the music reaches a frenzy. What\nelse could there be to prove about powers after this?": "ゲームで最も適切に名付けられたレベルの一つとして知られる場面で、音楽が狂熱に達すると凶暴な§0\nサブボスが登場します。それ以降の冪乗について何を証明できるでしょうか?", "One day this game will have a Prime Number World, with a final boss\nof proving that §0 is prime.\nTo do this, we will have to rule out things like §1\nWe will do this by proving that any factor of §2 is at most §3,\nwhich we will do using this lemma. The proof I have in mind manipulates the hypothesis\nuntil it becomes the goal, using §4, §5 and\n§6.": - "One dayこのゲームには素数ワールドが存在し、最終ボスは§0が素数であることを証明することになる。\nこれを達成するためには、§1のようなものを排除する必要がある。\nこれは、§2の任意の約数が最多§3であることを証明することで行う。その証明はこの補題を使用する。私は考えている証明は、仮定を操作し、最終的に目標になるようにする。これには§4、§5、§6を使用する。", + "いつかこのゲームには素数ワールドが追加されるでしょう。最終ボスは§0が素数であることを証明することになります。\nこれを達成するためには、§1のようなものを排除する必要があります。\nこれは、§2の任意の約数のうち最も大きいものが§3であることを証明することで行います。その証明はこの補題を使用します。\n私が考えている証明では、§4、§5、§6を使用して仮定を操作し、\n最終的に目標になるようにします。", "On the set of natural numbers, addition is commutative.\nIn other words, if §0 and §1 are arbitrary natural numbers, then\n§2.": "自然数の集合において、加算は交換律を満たします。\nつまり、任意の自然数 §0 と §1 に対して、\n§2.", "On the set of natural numbers, addition is associative.\nIn other words, if §0 and §1 are arbitrary natural numbers, we have\n§2": @@ -343,20 +342,20 @@ "Oh no! On the way to §0, a wild §1 appears. §2\nis the proof that §3 for §4 and §5 numbers.\nThis result is what's standing in the way of §6. Again\nwe have the problem that we are adding §7 to things, so we need\nto use induction to split into the cases where §8 and §9 is a successor.": "うわあ! §0 に向かう途中で、野生の §1 が現れました。 §2 は、 §3 が §4 と §5 の数値に対して成り立つことを証明しています。この結果が §6 の道を阻んでいます。また\n私たちは §7 を何かに加算している問題に直面しており、そのためには §8 と §9 が後者である場合に分けて帰納法を使用する必要があります。", "Numbers": "数値", - "Now §0.": "現在、§0。", + "Now §0.": "§0 をしましょう。", "Now §0 will work.": "現在、§0 が動作するようになります。", "Now §0 will change §1 into §2.": "§0は§1を§2に変換します。", "Now §0 to cancel the §1s.": "§0を用いて§1を消去します。", "Now §0 then §1 works, but §2 is quicker.": "§0 と §1 は正常に動作しますが、§2 はより速いです。", - "Now §0 so you can §1.": "現在 §0 なので、§1 です。", + "Now §0 so you can §1.": "§0 をすると、§1 ができます。", "Now §0 is the quickest way to\nchange §1 to §2.": "§0は§1を§2に変更する最も迅速な方法です。", "Now §0 is a proof that §1, and §2 has vanished. Similarly, you can destruct\n§3 into its parts with §4.": "現在、§0 は §1 の証明です。また、§2 は消えました。同様に、§4 を使用して §3 をその部分に分解できます。", "Now §0 finishes the job.": "§0 で完了させましょう。", - "Now §0 and you can probably take it from here.": "現在、§0 です。ここから大丈夫でしょう。", - "Now §0 and deal with the two\ncases separately.": "現在、§0 で、二つの場合を別々に処理します。", + "Now §0 and you can probably take it from here.": "§0 をします。ここから大丈夫でしょう。", + "Now §0 and deal with the two\ncases separately.": "§0 で、二つの場合を別々に処理します。", "Now you need to figure out which number to §0. See if you can take it from here.": - "今度は §0 の部分に何を入力するか考えなさい。ここから進められるようなら自分で進めてみてください。", + "今度は §0 の部分に何を入力するか考えてください。ここから進められるようなら自分で進めてみてください。", "Now you have two goals. Once you proved the first, you will jump to the second one.\nThis first goal is the base case §0.\n\nRecall that you can rewrite the proof of any lemma which is visible\nin your inventory, or of any assumption displayed above the goal,\nas long as it is of the form §1.": "現在、2つの目標があります。最初の目標を証明すると、次の目標に移ります。\nこの最初の目標は基本ケース §0 です。\n\nあなたのインベントリで表示されている任意の補題の証明、または目標の上に表示されている任意の仮定の証明を再書き換えすることができます。ただし、その形式は §1 である必要があります。", "Now you could finish with §0 then §1, but §2\ndoes it in one line.": @@ -364,12 +363,12 @@ "Now you can §0.": "§0 が出来ます。", "Now you can §0": "§0ができます。", "Now we can prove the §0 statement by proving the statement on the right,\nso use the §1 tactic.": - "現在、§0の命題を証明するために、右側の命題を証明することができるため、§1のタクティクを使用します。", + "§0の命題を証明するために、右側の命題を証明することができるため、§1のタクティクを使用します。", "Now use §0 to switch §1 and §2 on the left\nhand side.": - "現在、§0 を使用して左側の §1 と §2 を入れ替えます。", + "§0 を使用して左側の §1 と §2 を入れ替えます。", "Now the goal can be deduced from §0 by pure logic, so use the §1\ntactic.": "現在の目標は、§0 から純粋な論理で導き出せますので、§1 のタクティクを使用します。", - "Now take apart the existence statement with §0.": "現在、存在文 §0 を分解します。", + "Now take apart the existence statement with §0.": "存在文を §0 で 分解します。", "Now rewrite §0 backwards to make the goal\nequal to the hypothesis.": "§0 を逆順に書き換えることで、目標を仮定に等しくします。", "Now rewrite §0 backwards at §1\nto get the right hand side.": @@ -379,7 +378,7 @@ "Now for the second goal. Here you have the induction hypothesis\n§0, and you need to prove that §1.": "では、第二の目標に移ります。ここでは、 帰納法の仮定 §0 が与えられており、 §1 を証明する必要があります。", "Now finish using the §0 tactic.": "§0 タクティクを使用して完了してください。", - "Now finish the job with §0.": "§0で現在の作業を完了してください。\n", + "Now finish the job with §0.": "§0で作業を完了してください。", "Now finish in one line.": "一行で証明を完成させましょう。", "Now change §0 to §1 in §2.": "0 を §1 に変更してください。", "Note: this lemma will be useful for the final boss!": "この補題は最終ボス戦で役立つでしょう!", @@ -388,13 +387,13 @@ "Note that you can do §0\nand then §1 to solve this level in two lines.": "§0 を実行し、その後 §1 を実行することで、このレベルを二行で解くことができることを留意してください。", "Nice! You've proved §0!\nLet's now prove Peano's other axiom, that successors can't be §1.": - "Nice! あなたは§0を証明しました!\n\n今度はペアノの他の公理、すなわち後続が§1にならないことを証明しましょう。", + "ナイス! あなたは§0を証明しました!\n\n今度はペアノの他の公理、すなわち後続が§1にならないことを証明しましょう。", "Nice!\n\nThe next step in the development of order theory is to develop\nthe theory of the interplay between §0 and multiplication.\nIf you've already done Multiplication World, you're now ready for\nAdvanced Multiplication World. Click on \"Home\" to access it.": - "Nice!\n\n順序理論の開発の次のステップは、§0と乗算の相互作用の理論を発展させることがです。既に乗算ワールドを学習した場合、現在では高度な乗算ワールドに進むことができます。\"Home\"をクリックしてアクセスしてください。", + "ナイス!\n\n順序理論の開発の次のステップは、§0と乗算の相互作用の理論を発展させることがです。既に乗算ワールドを学習した場合、現在では高度な乗算ワールドに進むことができます。\"ホーム\"をクリックしてアクセスしてください。", "Nice!": "ナイス!", "Next turn §0 into §1 with §2.": "次に、§0 を §1 に変更し、§2 を実行します。", "Natural Number Game": "自然数ゲーム", - "My proof:\n§0": "私の証明:\n§0\n\n\n##", + "My proof:\n§0": "私の証明:\n§0", "Multiplication usually makes a number bigger, but multiplication by zero can make\nit smaller. Thus many lemmas about inequalities and multiplication need the\nhypothesis §0. Here is a key lemma that enables us to use this hypothesis.\nTo help us with the proof, we can use the §1 tactic. Click on the tactic's name\non the right to see what it does.": "乗算は通常、数値を大きくしますが、ゼロによる乗算はその数値を小さくすることがあります。そのため、不等式や乗算に関する多くの補題では、§0 の仮定が必要です。この仮定を使用するための重要な補題があります。証明の助けとなるために、§1 のタクティクを使用できます。タクティクの名前を右側でクリックすると、その機能が表示されます。", "Multiplication is distributive over addition on the left.\nIn other words, for all natural numbers §0, §1 and §2, we have\n§3.": @@ -412,13 +411,12 @@ "Many people find §0 easy, but some find §1 confusing.\nIf you find it confusing, then just argue forwards.\n\nYou can read more about the §2 tactic in its documentation, which you can view by\nclicking on the tactic in the list on the right.": "多くの人は§0を容易に感じますが、一部の人々は§1を混乱させることがあります。\n混乱する場合は、証明を前向きに進めましょう。\n\n§2のタクティクについては、そのドキュメンテーションで詳しく説明しています。タクティクをリストの右側でクリックすることでドキュメンテーションを表示できます。", "Let's warm up with an easy one, which works even if §0.": - "## 簡単な例題(§0 に関わらず動作します)\n\n```lean\nexample : Prop := true\n```\n\n```lean\n-- 例題: 命題です\nexample : Prop := true\n```\n\n```lean\n-- 仮定\nvariable (p : Prop)\n\n-- 証明\nexample : p → p := assume hp : p, hp\n```\n\n```lean\n-- タクティクを使用した証明\nexample : p → p := by\n intro hp\n exact hp\n```", + "まずは簡単な問題から始めましょう。これは §0 の場合でも成立します。", "Let's see if you can use the tactics we've learnt to prove §0.\nTry this one by yourself; if you need help then click on \"Show more help!\".": "タクティクを用いて§0を証明できるかどうか試してみてください。\n自分で試してみてください;手助けが必要であれば「より多くのヘルプを表示!」をクリックしてください。", "Let's now move on to a more efficient approach to questions\ninvolving numerals, such as §0.": - "## 数値に関連する質問に対するより効率的なアプローチ\n\n### 参考訳\n数値に関連する質問、例えば§0 に対するより効率的なアプローチについて見ていきましょう。", - "Let's now make our own tactic to do this.": - "Let's now make our own tactic to do this.\n\n\n## 日本語翻訳\n自分独自のタクティクを作成しましょう。", + "数値に関連する問題、例えば§0 に対するより効率的なアプローチについて見ていきましょう。", + "Let's now make our own tactic to do this.": "自分独自のタクティクを作成しましょう。", "Let's now learn about Peano's second axiom for addition, §0.": "ペアノの加法に関する第2の公理について、§0 を学んでみましょう。", "Let's now begin our approach to the final boss,\nby proving some more subtle facts about powers.": @@ -426,11 +424,11 @@ "Let's first get §0 into the form §1 so we can\napply §2. First execute §3\nto change the 4 on the right hand side.": "§0 を §1 の形式に変更してから、§2 を適用することができます。\nまず、§3 を実行して右辺の 4 を変更します。", "Lean's simplifier, §0, is \"§1 on steroids\". It will rewrite every lemma\ntagged with §2 and every lemma fed to it by the user, as much as it can.\n\nThis level is not a level which you want to solve by hand.\nGet the simplifier to solve it for you.": - "Leanの簡約化器、§0は「§1を強化版」です。これは、§2でタグ付けされたすべての lemme およびユーザーによって与えられたすべての lemme をできる限り簡約化します。\n\nこのレベルは手作業で解くべきレベルではありません。\n簡約化器に任せて解いてください。", + "Leanの簡約化処理器、§0は「§1の強化版」です。これは、§2でタグ付けされたすべての補題およびユーザーによって与えられたすべての補題をできる限り簡約化します。\n\nこのレベルは手作業で解くべきレベルではありません。\n簡約化処理器に任せて解いてください。", "It's all over! You have proved a theorem which has tripped up\nschoolkids for generations (some of them think §0:\nthis is \"the freshman's dream\").\n\nHow many rewrites did you use? I can do it in 12.\n\nBut wait! This boss is stirring...and mutating into a second more powerful form!": "すべて終了しました!命題を証明し、世紀にわたる学校の問題を解決しました(一部の人は§0: 「若者の夢」と思っているかもしれません)。\n\nあなたはいくつの書き換えを行いましたか?私は12回でできます。\n\nでも待ってください!このボスが動き始め、さらに強力な形に変異しています!", "It's \"intuitively obvious\" that there are no numbers less than zero,\nbut to prove it you will need a result which you showed in advanced\naddition world.": - "### 原文 (English)\nIt's \"intuitively obvious\" that there are no numbers less than zero,\nbut to prove it you will need a result which you showed in advanced\naddition world.\n\n\n## 日本語翻訳\n「零未満の数は存在しない」ということは直感的に明らかですが、それを証明するには、先に学んだ加算ワールドで示した結果が必要です。", + "ゼロ未満の数は存在しないということは「直感的に明らか」ですが、それを証明するには、高度な加算ワールドで示した結果が必要です。", "Induction on §0 or §1 -- it's all the same in this one.": "帰納法を用いて §0 または §1 に適用する -- どちらも同じことです。", "Induction on §0 is the most troublesome, then §1,\nand §2 is the easiest.": @@ -438,17 +436,17 @@ "In this world we'll learn how to prove theorems of the form §0.\nIn other words, how to prove theorems of the form \"if §1 is true, then §2 is true.\"\nTo do that we need to learn some more tactics.\n\nThe §3 tactic can be used to close a goal which is exactly one of\nthe hypotheses. It takes the name of the hypothesis as argument: §4.": "このワールドでは、形式 §0 の定理を証明する方法を学びます。\nつまり、「§1 が真なら、§2 が真である」という形式の定理を証明する方法です。\nそのためには、いくつかのタクティクを学ぶ必要があります。\n\n§3 のタクティクは、仮定のうち厳密に一つの目標を閉じるために使用できます。このタクティクには仮定の名前が引数として与えられます:§4。", "In this world we define §0 and prove standard facts\nabout it, such as \"if §1 and §2 then §3.\"\n\nThe definition of §4 is \"there exists a number §5\nsuch that §6. \" So we're going to have to learn\na tactic to prove \"exists\" theorems, and another one\nto use \"exists\" hypotheses.\n\nClick on \"Start\" to proceed.": - "### 原文 (English)\nIn this world we define §0 and prove standard facts\nabout it, such as \"if §1 and §2 then §3.\"\n\nThe definition of §4 is \"there exists a number §5\nsuch that §6. \" So we're going to have to learn\na tactic to prove \"exists\" theorems, and another one\nto use \"exists\" hypotheses.\n\nClick on \"Start\" to proceed.\n\n\n### 翻訳 (Japanese)\nこのワールドで §0 を定義し、その標準的な事実を証明します。例えば、「§1 と §2 が成り立つなら §3 が成り立つ」などです。\n\n§4 の定義は「ある数 §5 が存在して、§6 が成り立つ」です。そのため、「存在」に関する定理を証明するタクティクと、「存在」に関する仮定を使うタクティクを学ぶ必要があります。\n\n\"開始\" をクリックして進みましょう。", + "このワールドで §0 を定義し、その標準的な事実を証明します。例えば、「§1 と §2 が成り立つなら §3 が成り立つ」などです。\n\n§4 の定義は「ある数 §5 が存在して、§6 が成り立つ」です。そのため、「存在」に関する定理を証明するタクティクと、「存在」に関する仮定を使うタクティクを学ぶ必要があります。\n\n\"開始\" をクリックして進みましょう。", "In this world I will mostly leave you on your own.\n\n§0 is the theorem that §1.": - "このワールドでは、主にあなたを自分で残します。\n\n§0は、§1の定理です。", + "このワールドでは、基本的にあなた自身で進めていただきます。\n\n§0は、§1の定理です。", "In this level, we see inequalities as *hypotheses*. We have not seen this before.\nThe §0 tactic can be used to take §1 apart.": - "このレベルでは、不等式が仮定(*hypothesis*)として扱われます。これまでに見られなかった手法です。\n§0 タクティクは、§1 を分解するのに使用できます。", + "このレベルでは、不等式が*仮定*として扱われます。これまでに見られなかった手法です。\n§0 タクティクは、§1 を分解するのに使用できます。", "In this level, the hypothesis §0 is an *implication*. It says\nthat *if* §1 *then* §2. We can use this\nhypothesis with the §3 tactic. Remember you can click on\n§4 or any other tactic on the right to see a detailed explanation\nof what it does, with examples.": "このレベルでは、仮定§0は *含意* です。これは「§1 ならば §2」という意味です。この仮定は§3 タクティクを使用して利用できます。右側の任意のタクティク(例:§4)をクリックすることで、その詳細な説明と例を見ることができます。", "In this level we're going to prove that §0, where §1 is a secret natural number.\n\nWait, don't we already know that? No! We know that §2, but that's §3.\nThis is §4, which is different.\n\nThe difficulty with proving §5 is that we do not have a *formula* for\n§6 in general, we can only use §7 and §8 once\nwe know whether §9 is §10 or a successor. The §11 tactic splits into these two cases.\n\nThe base case will require us to prove §12, and the inductive step\nwill ask us to show that if §13 then §14. Because\n§15 and successor are the only way to make numbers, this will cover all the cases.\n\nSee if you can do your first induction proof in Lean.\n\n(By the way, if you are still in the \"Editor mode\" from the last world, you can swap\nback to \"Typewriter mode\" by clicking the §16 button in the top right.)": "このレベルでは、§1 という秘密の自然数について §0 を証明します。\n\n待って、それでは既に知っていることではないですか?いいえ!§2 は分かっていますが、それが §3 です。\nこれは §4 で、異なるものです。\n\n§5 を証明する難しさは、一般の §6 に対する *公式* が存在しないことです。§7 と §8 は §9 が §10 か後続数であることを知ったときにのみ使用できます。§11 のタクティクはこれらの2つの場合に分岐します。\n\n基本的な場合では §12 を証明する必要がありますし、帰納的なステップでは §13 が真なら §14 を示す必要があります。§15 と後続数が数を作る唯一の方法であるため、これで全てのケースをカバーします。\n\nLeanで初めての帰納法証明を試みることができますか?\n\n(ちなみに、最後のワールドで「エディタモード」にいた場合、右上にある §16 ボタンをクリックして「タイプライターモード」に戻ることができます。)", "In this level we prove that if §0 and §1 then §2. It is tricky, for\nseveral reasons. One of these is that\nwe need to introduce a new idea: we will need to understand the concept of\nmathematical induction a little better.\n\nStarting with §3 is too naive, because in the inductive step\nthe hypothesis is §4 but what we know is §5,\nso the induction hypothesis does not apply!\n\nAssume §6 is fixed. The actual statement we want to prove by induction on §7 is\n\"for all §8, if §9 then §10\". This *can* be proved by induction,\nbecause we now have the flexibility to change §11.": - "### 原文 (English)\nIn this level we prove that if §0 and §1 then §2. It is tricky, for\nseveral reasons. One of these is that\nwe need to introduce a new idea: we will need to understand the concept of\nmathematical induction a little better.\n\nStarting with §3 is too naive, because in the inductive step\nthe hypothesis is §4 but what we know is §5,\nso the induction hypothesis does not apply!\n\nAssume §6 is fixed. The actual statement we want to prove by induction on §7 is\n\"for all §8, if §9 then §10\". This *can* be proved by induction,\nbecause we now have the flexibility to change §11.\n\n\n### 翻訳 (Japanese)\nこのレベルでは、§0 と §1 が成り立つ場合、§2 が成り立つことを証明します。これは複雑な理由で、\nいくつかの理由からです。その一つは、新しいアイデアを導入する必要があるためです:\n数学的帰納法の概念をもう少し理解する必要があります。\n\n§3 から始めることは単純すぎるため、帰納的ステップでは仮定は §4 ですが、実際に知っていることは §5 であり、\n従って帰納仮定が適用されません!\n\n§6 を固定します。実際には、§7 による帰納法で証明したい主張は\n「全ての §8 について、§9 が成り立つ場合、§10 が成り立つ」です。これは *可能* に帰納法で証明できます。\nなぜなら、今では §11 を変更できる柔軟性があるからです。", + "このレベルでは、§0 と §1 が成り立つ場合、§2 が成り立つことを証明します。\nこれはいくつかの理由で、複雑です。\nそのうちの一つは、新しいアイデアを導入する必要があるためです:\n数学的帰納法の概念をもう少し理解する必要があります。\n\n§3 から始めることは単純すぎるため、帰納的ステップでは仮定は §4 ですが、実際に知っていることは §5 であり、\n従って帰納仮定が適用されません!\n\n§6 を固定します。実際には、§7 による帰納法で証明したい主張は\n「全ての §8 について、§9 が成り立つ場合、§10 が成り立つ」です。これは 帰納法で証明 *できます* 。\nなぜなら、今では §11 を変更できる柔軟性があるからです。", "In this level the *goal* is §0 but to help us we\nhave an *assumption* §1 saying that §2. Check that you can see §3 in\nyour list of assumptions. Lean thinks of §4 as being a secret proof of the\nassumption, rather like §5 is a secret number.\n\nBefore we can use §6, we have to \"substitute in for §7\".\nWe do this in Lean by *rewriting* the goal with §8,\nusing the §9 tactic.": "このレベルでは、目標は§0ですが、それを手助けするために、§1という*仮定*があります。§2がその内容です。§3が仮定リストに表示されていることを確認してください。Leanは§4を仮定の秘密の証明と見なし、§5は秘密の数値に似ています。\n\n§6を使用する前に、「§7に置き換える」必要があります。Leanでは、§8を使用して目標を書き換え、§9タクティクを使用してこれを実行します。", "In this game you recreate the natural numbers §0 from the Peano axioms,\nlearning the basics about theorem proving in Lean.\n\nThis is a good first introduction to Lean!": @@ -458,36 +456,34 @@ "In the last level, we manipulated the hypothesis §0\n until it became the goal §1. In this level we'll manipulate\n the goal until it becomes our hypothesis! In other words, we\n will \"argue backwards\". The §2 tactic can do this too.\n Again I will walk you through this one (assuming you're in\n command line mode).": "先程のレベルでは、仮定§0を操作して目標§1にしました。このレベルでは、目標を操作して仮定にします!つまり、「逆向きに議論」することです。§2 タクティクもこれを行うことができます。また、コマンドラインモードで操作していると仮定して、この例を一緒に見ていきましょう。", "In the \"base case\" we have a hypothesis §0, and you can deduce anything\nfrom a false statement. The §1 tactic will close this goal.": - "### 基本的なケースでは、仮定§0が存在します。偽の文から何でも導くことができます。タクティク§1はこの目標を閉じます。", + "基本的なケースでは、仮定§0が存在します。偽の文から何でも導くことができます。タクティク§1はこの目標を閉じます。", "In some later worlds, we're going to see some much nastier levels,\nlike §0.\nBrackets need to be moved around, and variables need to be swapped.\n\nIn this level, §1,\nlet's forget about the brackets and just think about\nthe variable order.\nTo turn §2 into §3 we need to swap §4 and §5,\nand then swap §6 and §7. But this is easier than you\nthink with §8.": - "### 原文 (English)\nIn some later worlds, we're going to see some much nastier levels,\nlike §0.\nBrackets need to be moved around, and variables need to be swapped.\n\nIn this level, §1,\nlet's forget about the brackets and just think about\nthe variable order.\nTo turn §2 into §3 we need to swap §4 and §5,\nand then swap §6 and §7. But this is easier than you\nthink with §8.\n\n\n### 翻訳 (Japanese)\nいくつかの後続のワールドでは、§0のようなもっとひどいレベルを見ることになります。\n括弧は移動させ、変数は入れ替える必要があります。\n\nこのレベルでは、§1、括弧は無視して変数の順序だけを考えましょう。\n§2を§3に変更するには、§4と§5を、そして§6と§7を入れ替える必要があります。しかし、§8を使うと意外と簡単にできます。", + "いくつかの後続のワールドでは、§0のようなもっとひどいレベルを見ることになります。\n括弧は移動させ、変数は入れ替える必要があります。\n\nこのレベル、§1では、括弧は無視して変数の順序だけを考えましょう。\n§2を§3に変更するには、§4と§5を、そして§6と§7を入れ替える必要があります。しかし、§8を使うと意外と簡単にできます。", "In order to use the tactic §0 you can enter it in the text box\nunder the goal and hit \"Execute\".": "タクティク §0 を使用するには、目標の下のテキストボックスに入力し、「実行」をクリックしてください。", "In Advanced Addition World we will prove some basic\naddition facts such as §0. The theorems\nproved in this world will be used to build\na theory of inequalities in §1 World.\n\nClick on \"Start\" to proceed.": - "### Advanced Addition World では、基本的な加法に関するいくつかの事実(§0)を証明します。このワールドで証明された定理は、§1 世界で不等式の理論を構築するために使用されます。\n\n「開始」をクリックして進みましょう。", + "高度な加算ワールドでは、基本的な加法に関するいくつかの事実(§0)を証明します。このワールドで証明された定理は、§1 世界で不等式の理論を構築するために使用されます。\n\n「開始」をクリックして進みましょう。", "Implication World": "含意ワールド", "Implementing the algorithm for equality of naturals, and the proof that it is correct,\nlooks like this:\n\n§0\n\nThis Lean code is a formally verified algorithm for deciding equality\nbetween two naturals. I've typed it in already, behind the scenes.\nBecause the algorithm is formally verified to be correct, we can\nuse it in Lean proofs. You can run the algorithm with the §1 tactic.": "自然数の等価性アルゴリズムの実装とその正確性の証明は、以下のようになります:\n\n§0\n\nこのLeanコードは、二つの自然数間の等価性を決定する形式的に検証されたアルゴリズムです。私たちは既にこのコードをバックヤードで入力しています。アルゴリズムが形式的に正確性を保証されているため、Leanの証明内で使用できます。§1タクティクでアルゴリズムを実行できます。", "If §0, §1 and §2 are numbers, we have\n§3": "もし§0, §1, §2 が数値である場合、以下のようになります。\n§3", - "If §0, then §1.": "もし§0であるなら、§1です。", + "If §0, then §1.": "§0ならば、§1。", "If §0 then §1.": "§0 ならば §1。", - "If §0 then §1 or §2 or §3.": "もし§0 then §1または§2または§3。", - "If §0 then either §1 or §2.": "もし§0であるなら、§1または§2のいずれかである。", - "If §0 or §1, then §2 or §3.": "もし§0 または §1 ならば, §2 または §3 です。", + "If §0 then §1 or §2 or §3.": "§0 ならば §1または§2または§3。", + "If §0 then either §1 or §2.": "§0なら、§1または§2。", + "If §0 or §1, then §2 or §3.": "もし§0 または §1 ならば, §2 または §3 。", "If §0 is a proof of §1 then §2 will\nturn §3s into §4s. But what if we want to\nturn §5s into §6s? To tell the §7 tactic\nwe want this, we use a left arrow §8. Type\n§9 and then hit the space bar to get this arrow.\n\nLet's prove that §10 is the number after the number\nafter §11 again, this time by changing §12\ninto §13.": "もし§0が§1の証明であるなら、§2は§3を§4に変換します。しかし、§5を§6に変換したい場合は?§7タクティクに私たちがこの変換を指示するには、左矢印§8を使用します。型§9を入力し、スペースバーを押すとこの矢印が得られます。\n\n次の証明で、§10が§11の後ろの数値の後ろの数値であることを証明しましょう。今回は§12を§13に変換して証明します。", - "If §0 is a number, then §1.": "もし§0が数値である場合、§1。", - "If §0 are numbers, then §1.": "もし§0が数値である場合、§1。", - "If §0 are arbitrary natural numbers, we have\n§1.": - "任意の自然数§0について、\n§1.\n\n\n## 参考訳\n任意の自然数§0について、\n§1.\n\n\n### 翻訳結果\n任意の自然数§0について、\n§1.", + "If §0 is a number, then §1.": "もし§0が数値なら、§1。", + "If §0 are numbers, then §1.": "もし§0が数値ならば、§1。", + "If §0 are arbitrary natural numbers, we have\n§1.": "任意の自然数§0について、\n§1.", "If §0 and §1, then §2.": "もし§0 と §1 なら §2。", "If §0 and §1 then we can deduce a contradiction.": "もし§0 と §1 ならば、矛盾を導き出すことができます。", "If §0 and §1 are numbers, then §2 is a proof\nthat §3 implies §4. Click on this theorem in the *Peano*\ntab for more information.\n\nPeano had this theorem as an axiom, but in Algorithm World\nwe will show how to prove it in Lean. Right now let's just assume it,\nand let's prove §5 using it. Again, we will proceed\nby manipulating our hypothesis until it becomes the goal. I will\nwalk you through this level.": "もし§0と§1が数値である場合、§2は§3が§4を導く証明です。*Peano*タブでこの定理について詳しく知ることができます。\n\nPeanoはこの定理を公理としていましたが、アルゴリズムワールドではLeanを使ってこの定理を証明する方法を示すことにします。現在はこの定理を仮定し、§5を用いて証明しましょう。また、証明は仮定を操作して目標に近づけることで進めていきます。このレベルを一緒に進めていきましょう。", - "If §0 and §1 are numbers, then either §2 or §3.": - "もし§0と§1が数値である場合、§2または§3が成り立つ。", + "If §0 and §1 are numbers, then either §2 or §3.": "もし§0と§1が数値ならば、§2または§3。", "If §0 and §1 are natural numbers, and §2, then §3.": "もし§0と§1が自然数であり、かつ§2である場合、§3です。", "If §0 and §1 are arbitrary natural numbers, we have\n§2.": @@ -497,7 +493,7 @@ "If §0 and we know that §1 then we can deduce §2.": "もし§0であり、§1を知っているなら、§2を導くことができます。", "If you §0 the wrong number, you get stuck with a goal you can't prove.\nWhat number will you §1 here?": - "もし間違ったタクティクを §0 选用,则会陷入无法证明的目标 §1 中。\n\n\n何を §1 选用?", + "もし、間違った数字を §0 に使用した場合、証明できない目標に陥ります。\nどの数値を §1 しますか?", "If you have completed Algorithm World then you can use the §0 tactic\nhere. If not then I'll talk you through a manual approach.": "もしアルゴリズムワールドを完了しているなら、ここでは§0タクティクを使用できます。もし完了していなければ、手動のアプローチを説明します。", "If the goal is not *exactly* a hypothesis, we can sometimes\nuse rewrites to fix things up.": @@ -506,9 +502,8 @@ "どのように §0 を定義すべきでしょうか?加法と同様に、§1 であるときと §2 が successor であるときそれぞれに定義を提供する必要があります。\n\nゼロの場合は簡単です:§3 を §4 で定義します。次に §5 を仮定します。§6 のときはどうでしょうか?そうですね、§7 §8 になるので、\n§9になるべきでしょう。。\n\nLean での定義は以下の通りです。\n\n * §10\n * §11\n\nこのワールドでは、乗法に関する事実だけでなく、乗法と加法の相互作用に関する事実も証明する必要があります。例えば §12 など。そして §13 なども証明する必要があります。\n始めましょう。", "How about this for a proof:\n§0": "以下は証明です:\n§0", "How about this for a proof:\n\n§0\n\nThat's the end of Advanced Addition World! You'll need these theorems\nfor the next world, §1 World. Click on \"Home\" to access it.": - "以下の訳文です:\n\n### 日本語\n証明としては、以下のようなものはどうでしょうか:\n\n§0\n\nこの「進階加算ワールド」は終了しました。次の「§1ワールド」では、これらの定理が必要になるでしょう。\"ホーム\"をクリックしてアクセスしてください。\n\n\n##", - "Here's what I was thinking of:\n§0": - "以下は私の考えでした:\n§0\n\n\n## 日本語翻訳\n以下は私の考えでした:\n§0", + "証明としては、以下のようなものはどうでしょうか:\n\n§0\n\nこの「高度な加算ワールド」は終了しました。次の「§1ワールド」では、これらの定理が必要になるでしょう。\"ホーム\"をクリックしてアクセスしてください。", + "Here's what I was thinking of:\n§0": "これが私の考えでした:\n§0", "Here's the short proof:\n§0\nThis works because, given §1,\nthe argument is reduced to pure logic.": "以下は短い証明です:\n§0\nこれは、与えられた §1 から\n議論が純粋な論理に簡約されるためです。", "Here's my solution:\n§0\n\nInducting on §1 or §2 also works, but might take longer.": @@ -519,22 +514,22 @@ "Here's my proof:\n§0\n\nEven though Lean is a theorem prover, right now it's pretty clear that we have not\ndeveloped enough material to make it an adequate calculator. In Algorithm\nWorld, a more computer-sciency world, we will develop machinery which makes\nquestions like this much easier, and goals like §1 feasible.\nAlternatively you can do more mathematics in Advanced Addition World, where we prove\nthe lemmas needed to get a working theory of inequalities. Click \"Home\" and\ndecide your route.": "私の証明:\n§0\n\nLeanは定理証明システムですが、現在では十分な量の理論が開発されておらず、適切な計算機としての機能を発揮するまでには至っていません。アルゴリズムワールドでは、よりコンピュータサイエンス寄りのワールドで、このような問題を扱うための機械を開発し、§1のような目標を達成することが可能になります。あるいは、不等式の理論を実現するための補題を証明する高度な加算ワールドでより多くの数学を学ぶこともできます。\"ホーム\"をクリックし、あなたのルートを選択してください。", "Here's my proof:\n§0\n\nA passing mathematician remarks that with antisymmetry as well,\nyou have proved that §1 is a *partial order* on §2.\n\nThe boss level of this world is to prove\nthat §3 is a total order. Let's learn two more easy tactics\nfirst.": - "私の証明:\n§0\n\n数学的な通りすがりの人々が言います。反対称性も考慮すると、\nあなたは§1が§2上の*部分順序*であることを証明しました。\n\nこのワールドのボスレベルは、§3が完全順序であることを証明することです。\nまずは2つの簡単なタクティクを学んでからしましょう。", + "私の証明:\n§0\n\n通りすがりの数学は、反対称性も考慮すると、\nあなたは§1が§2上の*部分順序*であることを証明しました。\n\nこのワールドのボスレベルは、§3が完全順序であることを証明することです。\nまずは2つの簡単なタクティクを学んでからしましょう。", "Here's my proof:\n§0": "私の証明:\n§0", "Here's a two-liner:\n§0\n\nThis works because §1 is a proof of §2.": - "以下は二行分です:\n§0\n\nこれは §1 が §2 の証明であるため Works します。", - "Here's a two-line proof:\n§0": "以下は二行の証明です:\n§0\n", + "以下は2行の証明です:\n§0\n\nこれは §1 が §2 の証明であるため動作します。", + "Here's a two-line proof:\n§0": "以下は二行の証明です:\n§0", "Here's a proof using §0:\n§1\n\nand here's an even shorter one using the same idea:\n§2\n\nAlternatively you can just prove it by induction on §3:\n\n§4": "以下は§0を使用した証明です:\n§1\n\nそして、同じアイデアを使用したさらに短い証明は以下の通りです:\n§2\n\nあるいは、§3 について帰納法で証明することができます:\n§4", "Here's a completely backwards proof:\n§0": "以下は完全に逆順の証明です:\n§0", "Here we want to deal with the cases §0 and §1 separately,\nso start with §2.": "ここでは§0と§1のケースを別々に扱いたいので、まずは§2から始めます。", "Here we begin to\ndevelop an algorithm which, given two naturals §0 and §1, returns the answer\nto \"does §2?\"\n\nHere is the algorithm. First note that §3 and §4 are numbers, and hence\nare either §5 or successors.\n\n*) If §6 and §7 are both §8, return \"yes\".\n\n*) If one is §9 and the other is §10, return \"no\".\n\n*) If §11 and §12, then return the answer to \"does §13?\"\n\nOur job now is to *prove* that this algorithm always gives the correct answer. The proof that\n§14 is §15. The proof that §16 is §17, and the proof\nthat §18 is §19. The proof that if §20 then\n§21 is §22 and then §23. This level is a proof of the one\nremaining job we have to do: if §24 then §25.": - "### 原文 (English)\nHere we begin to\ndevelop an algorithm which, given two naturals §0 and §1, returns the answer\nto \"does §2?\"\n\nHere is the algorithm. First note that §3 and §4 are numbers, and hence\nare either §5 or successors.\n\n*) If §6 and §7 are both §8, return \"yes\".\n\n*) If one is §9 and the other is §10, return \"no\".\n\n*) If §11 and §12, then return the answer to \"does §13?\"\n\nOur job now is to *prove* that this algorithm always gives the correct answer. The proof that\n§14 is §15. The proof that §16 is §17, and the proof\nthat §18 is §19. The proof that if §20 then\n§21 is §22 and then §23. This level is a proof of the one\nremaining job we have to do: if §24 then §25.\n\n\n### 翻訳 (Japanese)\nここでは、与えられた二つの自然数 §0 と §1 に対して、\"§2?\" という質問の答えを返すアルゴリズムを開発します。\n\nこのアルゴリズムは以下のようになっています。まず、§3 と §4 は数であり、したがって §5 または §5 の後継者です。\n\n1. §6 と §7 が両方とも §8 の場合、\"yes\" を返す。\n2. 一方が §9 で他方が §10 の場合、\"no\" を返す。\n3. §11 と §12 の場合、\"§13?\" という質問の答えを返す。\n\n現在の仕事は、このアルゴリズムが常に正しい答えを返すことを証明することです。§14 が §15 であることを証明します。§16 が §17 であることを証明します。§18 が §19 であることを証明します。§20 が真である場合、§21 が §22 であり、さらに §23 であることを証明します。このレベルでは、残る一つの仕事であることを証明します:§24 が真である場合、§25 であることを。", + "ここでは、与えられた二つの自然数 §0 と §1 に対して、\"§2?\" という質問の答えを返すアルゴリズムを開発します。\n\nこのアルゴリズムは以下のようになっています。まず、§3 と §4 は数であり、したがって §5 または §5 の後者です。\n\n1. §6 と §7 が両方とも §8 の場合、\"yes\" を返す。\n2. 一方が §9 で他方が §10 の場合、\"no\" を返す。\n3. §11 と §12 の場合、\"§13?\" という質問の答えを返す。\n\n現在の仕事は、このアルゴリズムが常に正しい答えを返すことを証明することです。§14 が §15 であることを証明します。§16 が §17 であることを証明します。§18 が §19 であることを証明します。§20 が真である場合、§21 が §22 であり、さらに §23 であることを証明します。このレベルでは、残る一つの仕事であることを証明します:§24 が真である場合、§25 であることを。", "Here is an example proof of 2+2=4 showing off various techniques.\n\n§0\n\nOptional extra: you can run this proof yourself. Switch the game into \"Editor mode\" by clicking\non the §1 button in the top right. You can now see your proof\nwritten as several lines of code. Move your cursor between lines to see\nthe goal state at any point. Now cut and paste your code elsewhere if you\nwant to save it, and paste the above proof in instead. Move your cursor\naround to investigate. When you've finished, click the §2 button in the top right to\nmove back into \"Typewriter mode\".\n\nYou have finished tutorial world!\nClick \"Home\" to go back to the\noverworld, and select Addition World, where you will learn\nabout the §3 tactic.": "以下は2+2=4を示す証明の例で、様々な手法を披露しています。\n\n§0\n\nオプション:自分でこの証明を実行することもできます。右上の§1ボタンをクリックしてゲームを「エディタモード」に切り替えることができます。現在の証明は、複数行のコードとして表示されます。行の間でカーソルを動かすことで、任意のポイントでの目標状態を確認できます。証明を保存したい場合は、コードを他の場所に切り貼りし、上の証明を代入できます。カーソルを動かして調査してください。終了したら、右上の§2ボタンをクリックして「タイプライターモード」に戻ります。\n\nチュートリアルワールドを終了しました!\n「ホーム」をクリックしてオーバーワールドに戻り、加算ワールドを選択して§3タクティクについて学びます。", "Having to rearrange variables manually using commutativity and\nassociativity is very tedious. We start by reminding you of this. §0\nis a key component in the first algorithm which we'll explain, but we need\nto prove it manually.\n\nRemember that you can do precision commutativity rewriting\nwith things like §1. And remember that\n§2 means §3.": - "### 原文 (English)\nHaving to rearrange variables manually using commutativity and\nassociativity is very tedious. We start by reminding you of this. §0\nis a key component in the first algorithm which we'll explain, but we need\nto prove it manually.\n\nRemember that you can do precision commutativity rewriting\nwith things like §1. And remember that\n§2 means §3.\n\n\n### 翻訳 (Japanese)\n手動で交換律と結合律を使って変数を再配置する必要があることは非常に面倒です。まず、これについて再確認します。§0は、最初の説明するアルゴリズムにおいて重要な成分ですが、手動で証明する必要があります。\n\n交換律に基づいた精密な再配置は、§1のようなもので行うことができます。また、§2は§3を意味します。", + "手動で交換律と結合律を使って変数を再配置する必要があることは非常に面倒です。\nまず、これについて再確認します。§0\nは、最初の説明するアルゴリズムにおいて重要な成分ですが、手動で証明する必要があります。\n\n交換律に基づいた精密な再配置は、§1のようなもので行うことができます。また、§2は§3を意味します。", "Good luck!\n\n One last hint. If §0 then §1 will change *all* §2s into §3s.\n If you only want to change one of them, say the 3rd one, then use\n §4.": "幸運を!\n\n最後のヒント。もし§0であれば、§1はすべての§2を§3に変換します。\n一方で、一つだけ変換したい場合(例えば3番目のもの)、§4を使用します。", "For any natural number §0, we have §1.": "任意の自然数§0に対して、§1です。", @@ -552,19 +547,19 @@ "First execute §0 to replace the §1 with §2.": "まず §0 を実行して §1 を §2 に置き換えてください。", "Finally use a targeted §0 to switch §1 and §2.": - "Finally use a targeted §0 to switch §1 and §2.\n\n\n## 日本語翻訳\n最終的に、§0を使用して§1と§2を切り替えてください。", + "最終的に、§0を使用して§1と§2を切り替えてください。", "Fermat's Last Theorem": "フェルマーの最終定理", "Every number in Lean is either §0 or a successor. We know how to add §1,\nbut we need to figure out how to add successors. Let's say we already know\nthat §2. What should the answer to §3 be? Well,\n§4 is one bigger than §5, so §6 should be §7,\nthe number one bigger than §8. More generally §9 should\nbe §10. Let's add this as a lemma.\n\n* §11\n\nIf you ever see §12 in your goal, §13 is\nnormally a good idea.\n\nLet's now prove that §14. Figure out how to get §15 into\nthe picture, and then §16. Switch between the §17 (addition) and\n§18 (numerals) tabs under \"Theorems\" on the right to\nsee which proofs you can rewrite.": "Leanの数は、§0 または後続数のいずれかです。§1を加算する方法は分かっていますが、後続数を加算する方法はまだ分かりません。例えば、§2が分かっているとします。では、§3の答えは何になるべきでしょうか? §4は §5よりも1大きいので、§6は §7、つまり §8よりも1大きい数になるべきです。より一般的には、§9は §10になります。この事実を補題として追加しましょう。\n\n* §11\n\nもし目標に §12が見つかったら、通常 §13は良いアイデアです。\n\n次に、§14を証明しましょう。§15を図に取り入れる方法を考え、その後 §16を証明します。\"Theorems\" の右側にある `+` (加算) と `012` (数字) のタブを切り替えて、どの証明を書き換えることができるか確認します。", "Do that again!\n\n§0 tries to fill in\nthe arguments to §1 (finding §2) then it replaces all occurrences of\n§3 it finds. Therefor, it did not rewrite §4, yet.": "再度やってみましょう!\n\n§0は§1の引数を埋めようとします(§2を見つけます)。その後§3。因此,它还没有重写§4。もう一度実行してください!\n\n§0 は、§1 の引数を埋める(§2 を見つける)ことを試み、\n見つけたすべての §3 を置き換えます。そのため、\n§4 はまだ書き換えられていません。", "Did you use induction on §0?\nHere's a two-line proof of §1 which uses §2.\nIf you want to inspect it, you can go into editor mode by clicking §3 in the top right\nand then just cut and paste the proof and move your cursor around it\nto see the hypotheses and goal at any given point\n(although you'll lose your own proof this way). Click §4 to get\nback to command line mode.\n§5": - "Did you use induction on §0?\nHere's a two-line proof of §1 which uses §2.\nIf you want to inspect it, you can go into editor mode by clicking §3 in the top right\nand then just cut and paste the proof and move your cursor around it\nto see the hypotheses and goal at any given point\n(although you'll lose your own proof this way). Click §4 to get\nback to command line mode.\n§5\n\n\n### 翻訳\n§0について帰納法を使ったでしょうか?\n§2を使用して§1の二行証明があります。\n証明を確認したい場合は、右上にある§3をクリックしてエディタモードに入り、\nその後証明を切り取り、貼り付け、カーソルを動かして任意のポイントでの仮定と目標を確認できます。\n(ただし、この方法で自分の証明は失われます)。§4をクリックして\nコマンドラインモードに戻りましょう。\n§5", - "Dealing with §0": "### 原文 (English)\nDealing with §0\n\n## 日本語翻訳\n§0 を扱う方法", + "§0について帰納法を使ったでしょうか?\n§2を使用して§1の2行の証明があります。\n証明を確認したい場合は、右上にある§3をクリックしてエディタモードに入り、\nその後証明を切り取り、貼り付け、カーソルを動かして任意のポイントでの仮定と目標を確認できます。\n(ただし、この方法で自分の証明は失われます)。§4をクリックして\nコマンドラインモード (訳注: タイプライターモード) に戻りましょう。\n§5", + "Dealing with §0": "§0 を扱う方法", "Congratulations! You've finished Algorithm World. These algorithms\nwill be helpful for you in Even-Odd World (when someone gets around to\nimplementing it).": - " Congratulations! あなたはアルゴリズムワールドを完了しました。これらのアルゴリズムは、Even-Odd Worldが実装されるまで、あなたにとって役立つでしょう。\n\n\n## 日本語翻訳\n", + "おめでとうございます! あなたはアルゴリズムワールドを完了しました。これらのアルゴリズムは、Even-Odd ワールドが実装されるまで、あなたにとって役立つでしょう。", "Congratulations! You have proved Fermat's Last Theorem!\n\nEither that, or you used magic...": - " おめでとうございます! あなたはフェルマーの最終定理を証明しました!\n\nもしくは、魔法を使用したかもしれません...\n", + " おめでとうございます! あなたはフェルマーの最終定理を証明しました!\n\nもしくは、魔法を使用したかもしれません...", "Congratulations! You completed your first verified proof!\n\nRemember that §0 is a *tactic*. If you ever want information about the §1 tactic,\nyou can click on §2 in the list of tactics on the right.\n\nNow click on \"Next\" to learn about the §3 tactic.": "おめでとうございます! あなたは初めての検証証明を完了しました!\n\n記憶に留めておきましょう。§0は*タクティク*です。§1のタクティクについての情報が必要な場合は、右側のタクティク一覧の§2をクリックできます。\n\n\"次\"をクリックして§3のタクティクについて学びましょう。", "Concretely: §0.": "具体的には: §0.", @@ -592,18 +587,18 @@ "このゲームにおいて §0 であり、§1 は §2 である場合、すなわち §3 が後者である場合。", "Algorithm World": "アルゴリズムワールド", "Advanced Multiplication World": "高度な乗算ワールド", - "Advanced Addition World": "高度な追加ワールド", + "Advanced Addition World": "高度な加算ワールド", "Advanced *Addition* World proved various implications\ninvolving addition, such as §0 and §1.\nThese lemmas were used to prove basic facts about ≤ in ≤ World.\n\nIn Advanced Multiplication World we prove analogous\nfacts about multiplication, such as §2, and\n§3 (assuming §4 in the latter result). This will prepare\nus for Divisibility World.\n\nMultiplication World is more complex than Addition World. In the same\nway, Advanced Multiplication world is more complex than Advanced Addition\nWorld. One reason for this is that certain intermediate results are only\ntrue under the additional hypothesis that one of the variables is non-zero.\nThis causes some unexpected extra twists.": - "### 原文 (English)\nAdvanced *Addition* World proved various implications\ninvolving addition, such as §0 and §1.\nThese lemmas were used to prove basic facts about ≤ in ≤ World.\n\nIn Advanced Multiplication World we prove analogous\nfacts about multiplication, such as §2, and\n§3 (assuming §4 in the latter result). This will prepare\nus for Divisibility World.\n\nMultiplication World is more complex than Addition World. In the same\nway, Advanced Multiplication world is more complex than Advanced Addition\nWorld. One reason for this is that certain intermediate results are only\ntrue under the additional hypothesis that one of the variables is non-zero.\nThis causes some unexpected extra twists.\n\n\n## 日本語翻訳\nAdvanced *加算*ワールドでは、加算に関する様々な命題(§0, §1など)が証明されました。\nこれらの補題は、≤ワールドにおける≤に関する基本的な事実の証明に使用されました。\n\nAdvanced *乗算*ワールドでは、乗算に関する類似した事実(§2など)が証明され、\n§3(後者の結果では§4を仮定)も証明されました。これにより、*除算*ワールドに備えることができます。\n\n*乗算*ワールドは、*加算*ワールドよりも複雑です。同様に、Advanced *乗算*ワールドは、Advanced *加算*ワールドよりも複雑です。これは、ある変数が非零であるという追加の仮定の下でのみ成り立つ特定の中間結果があるためです。これにより、予想外の追加の複雑さが生じます。", + "高度な *加算*ワールドでは、加算に関する様々な命題(§0, §1など)が証明されました。\nこれらの補題は、≤ワールドにおける≤に関する基本的な事実の証明に使用されました。\n\n高度な *乗算*ワールドでは、乗算に関する類似した事実(§2など)が証明され、\n§3(後者の結果では§4を仮定)も証明されました。これにより、*整除*ワールドに備えることができます。\n\n*乗算*ワールドは、*加算*ワールドよりも複雑です。同様に、高度な *乗算* ワールドは、高度な *加算*ワールドよりも複雑です。これは、ある変数が非ゼロであるという追加の仮定の下でのみ成り立つ特定の中間結果があるためです。これにより、予想外の追加の複雑さが生じます。", "Addition is distributive over multiplication.\nIn other words, for all natural numbers §0, §1 and §2, we have\n§3.": "加法は乗法に対して分配法則を満たします。\nつまり、すべての自然数 §0, §1, §2 に対して\n§3。", "Addition World": "加算ワールド", "Adding zero": "0を加える", "A two-line proof is\n\n§0\n\nWe now have all the tools necessary to set up the basic theory of divisibility of naturals.": "二行の証明は\n\n§0\n\n現在、自然数の除法の基本理論を設定するために必要なすべてのツールを備えています。", - "A proof that §0.": "A proof that §0.\n\n\n## 日本語翻訳\n証明: §0.", + "A proof that §0.": "§0 の証明。", "A passing mathematician remarks that with reflexivity and transitivity out of the way,\nyou have proved that §0 is a *preorder* on §1.": - "一過性の数学者が言及し、反射律と伝搬律を除けば、§0 は §1 上の *前順序* を証明したと述べています。", + "通りすがりの数学者が、反射律と伝搬律を除けば、§0 は §1 上の *前順序* を証明したと述べています。", "A passing mathematician notes that you've proved\nthat the natural numbers are a commutative semiring.\n\nIf you want to begin your journey to the final boss, head for Power World.": "通りすがりの数学者は、自然数が可換半環であることを証明したことを指摘しました。\n\n最終ボスへの旅を始めるなら、冪乗ワールドへ向かってください。", "A passing mathematician congratulates you on proving that naturals\nare an additive commutative monoid.\n\nLet's practice using §0 and §1 in one more level,\nbefore we leave addition world.": @@ -619,49 +614,49 @@ "## The birth of number.\n\nNumbers in Lean are defined by two rules.\n\n* §0 is a number.\n* If §1 is a number, then the *successor* §2 of §3 is a number.\n\nThe successor of §4 means the number after §5. Let's learn to\ncount, and name a few small numbers.\n\n## Counting to four.\n\n§6 is a number, so §7 is a number. Let's call this new number §8.\nSimilarly let's define §9, §10 and §11.\nThis gives us plenty of numbers to be getting along with.\n\nThe *proof* that §12 is called §13.\nCheck out the \"012\" tab in the list of lemmas on the right\nfor this and other proofs.\n\nLet's prove that §14 is the number after the number after zero.": "## 数字の誕生。\n\nLeanにおける数字は2つのルールで定義されます。\n\n* §0 は数字です。\n* §1 が数字である場合、§2 の *後続* §3 は数字です。\n\n§4 の後続とは §5 の次の数字を意味します。数を数えることと、いくつかの小さな数字の名前を学びましょう。\n\n## 4まで数える。\n\n§6 が数字であるため、§7 も数字です。この新しい数字を §8 と呼びましょう。同様に §9, §10, §11 を定義します。これで十分な数を手に入れました。\n\n§12 が数字であることを証明する *証明* §13 があります。証明リストの右側の「012」タブを確認してください。\n\n次に、0の後ろの後ろの数字である §14 を証明しましょう。", "## Summary\n\n§0 repeatedly applies the tactic §1\nto the goal. You don't need to use this\ntactic, it just speeds things up sometimes.\n\n## Example\n\n§2 will turn the goal\n§3\ninto the goal\n§4.\n\"\n\nTacticDoc nth_rewrite \"\n## Summary\n\nIf §5 and there are several §6s in the goal, then\n§7 will just change the third §8 to a §9.\n\n## Example\n\nIf the goal is §10 then §11\nwill change the goal to §12. In contrast, §13\nwill change the goal to §14.": - "## 結論\n\n§0 は目標に対して §1 のタクティクを繰り返し適用します。このタクティクを使用する必要はありませんが、時々処理が早くなります。\n\n## 例\n\n§2 は目標\n§3\nを\n§4\nに変更します。\n\n---\n\n## 結論\n\n§5 が成り立つ場合で、目標に複数の §6 がある場合、\n§7 は第三の §8 を §9 に変更します。\n\n## 例\n\n目標が §10 の場合、§11 は目標を §12 に変更します。一方で、§13 は目標を §14 に変更します。", + "## 概要\n\n§0 は目標に対して §1 のタクティクを繰り返し適用します。このタクティクを使用する必要はありませんが、時々処理が早くなります。\n\n## 例\n\n§2 は目標\n§3\nを\n§4\nに変更します。\n\n---\n\n## 概要\n\n§5 が成り立つ場合で、目標に複数の §6 がある場合、\n§7 は第三の §8 を §9 に変更します。\n\n## 例\n\n目標が §10 の場合、§11 は目標を §12 に変更します。一方で、§13 は目標を §14 に変更します。", "## Summary\n\n§0 repeatedly applies the tactic §1\nto the goal. You don't need to use this\ntactic, it just speeds things up sometimes.\n\n## Example\n\n§2 will turn the goal\n§3\ninto the goal\n§4.": - "## 結論\n\n§0はタクティク§1を繰り返し適用し、目標を処理します。このタクティクを使用する必要はありませんが、時々処理速度を向上させることがあります。\n\n## 例\n\n§2を使用すると、目標§3は§4に変更されます。", + "## 概要\n\n§0はタクティク§1を繰り返し適用し、目標を処理します。このタクティクを使用する必要はありませんが、時々処理速度を向上させることがあります。\n\n## 例\n\n§2を使用すると、目標§3は§4に変更されます。", "## Summary\n\n§0 proves goals of the form §1.\n\nIn other words, the §2 tactic will close any goal of the\nform §3 if §4 and §5 are *identical*.\n\n§6 is short for \\\\\"reflexivity (of equality)\\\\\".\n\n## Example:\n\nIf the goal looks like this:\n\n§7\n\nthen §8 will close it. But if it looks like §9 then §10 won't work, because even\nthough §11 and §12 are always equal as *numbers*, they are not equal as *terms*.\nThe only term which is identical to §13 is §14.\n\n## Details\n\n§15 is short for \\\\\"reflexivity of equality\\\\\".\n\n## Game Implementation\n\n*Note that our §16 is weaker than the version used in core Lean and §17,\nfor pedagogical purposes; mathematicians do not distinguish between propositional\nand definitional equality because they think about definitions in a different way\nto type theorists (§18 and §19 are both \\\\\"facts\\\\\" as far\nas mathematicians are concerned, and who cares what the definition of addition is).*": - "## 結論\n\n§0は、形式§1の目標を証明します。\n\nつまり、§2タクティクは、§4と§5が*完全に一致*する場合、形式§3の任意の目標を閉じます。\n\n§6は、「等号の反射律」の略です。\n\n## 例\n\nもし目標が以下のようであれば:\n\n§7\n\n§8はそれを閉じます。しかし、もし目標が§9のように見える場合、§10は機能しません。なぜなら、§11と§12は常に数値としては等しいですが、項としては等しくないからです。§13と完全に一致する項は§14だけです。\n\n## 詳細\n\n§15は「等号の反射律」の略です。\n\n## ゲーム実装\n\n注意していただきたいのは、当の§16は、コア Lean と§17で使用されるバージョンよりも弱く、教育的な目的のためにそう設計されていることです。数学的には、論理的等価と定義的等価を区別しない理由は、定義の考え方がタイプ理論家と異なるからです(数学的には§18と§19はどちらも「事実」であり、加法の定義などは誰がどう思っても構いません)。", + "## 概要\n\n§0は、形式§1の目標を証明します。\n\nつまり、§2タクティクは、§4と§5が*完全に一致*する場合、形式§3の任意の目標を閉じます。\n\n§6は、「等号の反射律」の略です。\n\n## 例\n\nもし目標が以下のようであれば:\n\n§7\n\n§8はそれを閉じます。しかし、もし目標が§9のように見える場合、§10は機能しません。なぜなら、§11と§12は常に数値としては等しいですが、項としては等しくないからです。§13と完全に一致する項は§14だけです。\n\n## 詳細\n\n§15は「等号の反射律」の略です。\n\n## ゲーム実装\n\n注意していただきたいのは、当の§16は、コア Lean と§17で使用されるバージョンよりも弱く、教育的な目的のためにそう設計されていることです。数学的には、論理的等価と定義的等価を区別しない理由は、定義の考え方がタイプ理論家と異なるからです(数学的には§18と§19はどちらも「事実」であり、加法の定義などは誰がどう思っても構いません)。", "## Summary\n\nThe §0 tactic will change a goal or hypothesis of\nthe form §1 to §2. It will also work on §3\nand on §4.\n\n### Example\n\nIf the goal is §5 then §6 will change it to §7.\n\n### Example\n\nIf §8 then §9 will change §10 to §11.": "## 概要\n\nタクティク §0 は、目標や仮定が §1 の形式の場合を §2 に変更します。また、§3 や §4 も対象となります。\n\n### 例\n\nもし目標が §5 の場合、§6 はそれを §7 に変更します。\n\n### 例\n\nもし §8 の場合、§9 は §10 を §11 に変更します。", "## Summary\n\nThe §0 tactic makes progress with goals which claim something *exists*.\nIf the goal claims that some §1 exists with some property, and you know\nthat §2 will work, then §3 will make progress.\n\nBecause §4 is notation for \\\\\"there exists §5 such that §6\\\\\",\nyou can make progress on goals of the form §7 by §8ing the\nnumber which is morally §9 (i.e. §10)\n\nAny of the following examples is possible assuming the type of the argument passed to the §11 function is accurate:\n\n- §12\n- §13\n- §14": - "## 結論\n\n§0 タクティクは、何かが存在することを主張する目標に対して進展を遂げます。\nもし目標が何かが特定の性質を持つ存在することを主張し、その存在を知る方法が §2 である場合、§3 は進展を遂げます。\n\n§4 は \"存在する §5 が §6 である\" という主張を表す記号であり、目標が §7 のような形の場合、§8 することで、道徳的に §9 (つまり §10) とみなされる番号で進展を遂げることができます。\n\n以下の例のいずれかが可能であると仮定して、§11 関数に渡される引数の型が正確である場合:\n\n- §12\n- §13\n- §14", + "## 概要\n\n§0 タクティクは、何かが存在することを主張する目標に対して進展を遂げます。\nもし目標が何かが特定の性質を持つ存在することを主張し、その存在を知る方法が §2 である場合、§3 は進展を遂げます。\n\n§4 は \"存在する §5 が §6 である\" という主張を表す記号であり、目標が §7 のような形の場合、§8 することで、道徳的に §9 (つまり §10) とみなされる番号で進展を遂げることができます。\n\n以下の例のいずれかが可能であると仮定して、§11 関数に渡される引数の型が正確である場合:\n\n- §12\n- §13\n- §14", "## Summary\n\nIf §0 is an object, and the goal mentions §1, then §2\nattempts to prove the goal by induction on §3, with the inductive\nvariable in the successor case being §4, and the inductive hypothesis being §5.\n\n### Example:\nIf the goal is\n§6\n\nthen\n\n§7\n\nwill turn it into two goals. The first is §8;\nthe second has an assumption §9 and goal\n§10.\n\nNote that you must prove the first\ngoal before you can access the second one.": - "## 結論\n\nもし§0がオブジェクトであり、目標に§1が含まれている場合、§2は目標を§3による帰納法で証明しようとします。帰納変数は後続ケースで§4であり、帰納仮定は§5です。\n\n### 例:\nもし目標が\n§6\n\nである場合、\n\n§7\n\nは目標を2つの目標に変換します。最初の目標は§8であり、次の目標には仮定§9と目標\n§10\nが含まれます。\n\n注意していただきたいのは、最初の目標を証明する前に、次の目標にアクセスすることはできないということです。", + "## 概要\n\nもし§0がオブジェクトであり、目標に§1が含まれている場合、§2は目標を§3による帰納法で証明しようとします。帰納変数は後続ケースで§4であり、帰納仮定は§5です。\n\n### 例:\nもし目標が\n§6\n\nである場合、\n\n§7\n\nは目標を2つの目標に変換します。最初の目標は§8であり、次の目標には仮定§9と目標\n§10\nが含まれます。\n\n注意していただきたいのは、最初の目標を証明する前に、次の目標にアクセスすることはできないということです。", "## Summary\n\nIf §0 is a proof that §1, and §2 is a proof of §3,\nthen §4 will change §5 to a proof of §6. The idea is that if\nyou know §7 is true, then you can deduce from §8 that §9 is true.\n\nIf the *goal* is §10, then §11 will \\\\\"argue backwards\\\\\" and change the\ngoal to §12. The idea here is that if you want to prove §13, then by §14\nit suffices to prove §15, so you can reduce the goal to proving §16.\n\n### Example:\n\n§17 is a proof that §18.\n\nSo if you have a hypothesis §19\nthen §20 will change §21 to §22.\nYou could write §23\nbut Lean is smart enough to figure out the inputs to §24.\n\n### Example\n\nIf the goal is §25, then §26 will turn the\ngoal into §27.": - "## 結論\n\nもし§0が§1の証明であり、§2が§3の証明であるなら、§4は§5を§6の証明に変更します。つまり、§7が真であることを知っているなら、§8から§9が真であることを導くことができます。\n\nもし*目標*が§10であるなら、§11は「逆向きに議論」し、目標を§12に変更します。ここでの考え方は、§13を証明したいなら、§14から§15を証明すれば十分であるので、目標を§16の証明に減らすことができるということです。\n\n### 例:\n\n§17が§18の証明であるとします。\n\nもし仮定§19があるなら、§20は§21を§22に変更します。§23のように書くこともできますが、Leanは§24の入力を見抜くことができます。\n\n### 例\n\nもし目標が§25であるなら、§26は目標を§27に変更します。", + "## 概要\n\nもし§0が§1の証明であり、§2が§3の証明であるなら、§4は§5を§6の証明に変更します。つまり、§7が真であることを知っているなら、§8から§9が真であることを導くことができます。\n\nもし*目標*が§10であるなら、§11は「逆向きに議論」し、目標を§12に変更します。ここでの考え方は、§13を証明したいなら、§14から§15を証明すれば十分であるので、目標を§16の証明に減らすことができるということです。\n\n### 例:\n\n§17が§18の証明であるとします。\n\nもし仮定§19があるなら、§20は§21を§22に変更します。§23のように書くこともできますが、Leanは§24の入力を見抜くことができます。\n\n### 例\n\nもし目標が§25であるなら、§26は目標を§27に変更します。", "## Summary\n\nIf §0 is a proof of an equality §1, then §2 will change\nall §3s in the goal to §4s. It's the way to \\\\\"substitute in\\\\\".\n\n## Variants\n\n* §5 (changes §6s to §7s; get the back arrow by typing §8 or §9.)\n\n* §10 (a sequence of rewrites)\n\n* §11 (changes §12s to §13s in hypothesis §14)\n\n* §15 (changes §16s to §17s in two hypotheses and the goal;\nget the §18 symbol with §19.)\n\n* §20 will keep changing §21 to §22\nuntil there are no more matches for §23.\n\n* §24 will change only the second §25 in the goal to §26.\n\n### Example:\n\nIf you have the assumption §27 and your goal is\n§28\n\nthen\n\n§29\n\nwill change the goal into §30, and then\n\n§31\n\nwill change the goal into §32, which\ncan be solved with §33.\n\n### Example:\n\nYou can use §34 to change a hypothesis as well.\nFor example, if you have two hypotheses\n§35\nthen §36 will turn §37 into §38.\n\n## Common errors\n\n* You need the square brackets. §39 is never correct.\n\n* If §40 is not a *proof* of an *equality* (a statement of the form §41),\nfor example if §42 is a function or an implication,\nthen §43 is not the tactic you want to use. For example,\n§44 is never correct: §45 is the theorem *statement*,\nnot the proof. If §46 is the proof, then §47 will work.\n\n## Details\n\nThe §48 tactic is a way to do \\\\\"substituting in\\\\\". There\nare two distinct situations where you can use this tactic.\n\n1) Basic usage: if §49 is an assumption or\nthe proof of a theorem, and if the goal contains one or more §50s, then §51\nwill change them all to §52s. The tactic will error\nif there are no §53s in the goal.\n\n2) Advanced usage: Assumptions coming from theorem proofs\noften have missing pieces. For example §54\nis a proof that §55 because §56 really is a function,\nand §57 is the input. In this situation §58 will look through the goal\nfor any subterm of the form §59, and the moment it\nfinds one it fixes §60 to be §61 then changes all §62s to §63s.\n\nExercise: think about why §64 changes the term\n§65 to\n§66\n\nIf you can't remember the name of the proof of an equality, look it up in\nthe list of lemmas on the right.\n\n## Targeted usage\n\nIf your goal is §67 and you want to rewrite §68\nto §69, then §70 will not work because Lean finds another\naddition first and swaps those inputs instead. Use §71 to\nguarantee that Lean rewrites §72 to §73. This works because\n§74 is a proof that §75, §76 is a proof\nthat §77, and §78 is a proof that §79.\n\nIf §80 then §81 will turn all §82s into §83s.\nIf you only want to change the 37th occurrence of §84\nto §85 then do §86.": - "## 結論\n\n§0が等式§1の証明である場合、§2は目標内のすべての§3を§4に変更します。これは「代入」を行う方法です。\n\n## バリエーション\n\n* §5 (目標内の§6を§7に変更;バックアローは§8または§9を入力することで取得します。)\n\n* §10 (一連の変換)\n\n* §11 (仮定§14内を§12から§13に変更)\n\n* §15 (目標と2つの仮定内を§16から§17に変更;§18のシンボルは§19で取得します。)\n\n* §20は§21を§22に変更し続けるまで、§23の一致がなくなるまで変更します。\n\n* §24は目標内の第2の§25のみを§26に変更します。\n\n### 例:\n\n仮定§27があり、目標が§28の場合、\n\n§29\n\nは目標を§30に変更し、\n\n§31\n\nは目標を§32に変更し、\n\n§33で解決できます。\n\n### 例:\n\n仮定を変更することもできます。例えば、仮定が2つある場合、\n\n§35\n\n§36は§37を§38に変換します。\n\n## 一般的なエラー\n\n* クエート記号が必要です。§39は常に正しくありません。\n\n* §40が等式(形式§41のステートメント)の証明でない場合、例えば§42が関数または推論である場合、\n\n§43は使用したいタクティクではありません。例えば、\n\n§44は常に正しくありません:§45は定理のステートメントであり、\n\n証明ではありません。§46が証明である場合、§47は機能します。\n\n## 詳細\n\n§48タクティクは「代入」を行う方法です。このタクティクを使用できる2つの異なる状況があります。\n\n1) 基本的な使用法:§49が仮定または定理の証明であり、目標内に1つ以上の§50が含まれている場合、\n\n§51はそれら全てを§52に変更します。タクティクは目標内に§53が存在しない場合にエラーを発生させます。\n\n2) 高度な使用法:定理の証明から得られる仮定はしばしば欠落している部分を持っています。例えば、\n\n§54は§55であることを証明しており、\n\n§56は実際には関数であり、\n\n§57は入力です。この状況では、\n\n§58は目標内を検索し、\n\n§59のサブタームを見つけた瞬間に、\n\n§60を§61に固定し、\n\nすべての§62を§63に変更します。\n\n演習:なぜ§64は項§65を§66に変更するのか考えてみてください。\n\n等式の証明の名前を忘れた場合は、\n\n右側の補題一覧で調べてください。\n\n## 対象的な使用法\n\n目標が§67であり、\n\n§68を§69に書き換えることを望む場合、\n\n§70はLeanが別の加算を見つけ、\n\nその入力を交換するためには機能しません。§71を使用して、\n\nLeanが§72を§73に書き換えることを保証します。これは、\n\n§74は§75を証明しており、\n\n§76は§77を証明しており、\n\n§78は§79を証明しているためです。\n\n§80が成立する場合、\n\n§81はすべての§82を§83に変換します。\n\n§84の37番目の出現のみを§85に変更したい場合は、\n\n§86を行います。", + "## 概要\n\n§0が等式§1の証明である場合、§2は目標内のすべての§3を§4に変更します。これは「代入」を行う方法です。\n\n## バリエーション\n\n* §5 (目標内の§6を§7に変更;バックアローは§8または§9を入力することで取得します。)\n\n* §10 (一連の変換)\n\n* §11 (仮定§14内を§12から§13に変更)\n\n* §15 (目標と2つの仮定内を§16から§17に変更;§18のシンボルは§19で取得します。)\n\n* §20は§21を§22に変更し続けるまで、§23の一致がなくなるまで変更します。\n\n* §24は目標内の第2の§25のみを§26に変更します。\n\n### 例:\n\n仮定§27があり、目標が§28の場合、\n\n§29\n\nは目標を§30に変更し、\n\n§31\n\nは目標を§32に変更し、\n\n§33で解決できます。\n\n### 例:\n\n仮定を変更することもできます。例えば、仮定が2つある場合、\n\n§35\n\n§36は§37を§38に変換します。\n\n## 一般的なエラー\n\n* クエート記号が必要です。§39は常に正しくありません。\n\n* §40が等式(形式§41のステートメント)の証明でない場合、例えば§42が関数または推論である場合、\n\n§43は使用したいタクティクではありません。例えば、\n\n§44は常に正しくありません:§45は定理のステートメントであり、\n\n証明ではありません。§46が証明である場合、§47は機能します。\n\n## 詳細\n\n§48タクティクは「代入」を行う方法です。このタクティクを使用できる2つの異なる状況があります。\n\n1) 基本的な使用法:§49が仮定または定理の証明であり、目標内に1つ以上の§50が含まれている場合、\n\n§51はそれら全てを§52に変更します。タクティクは目標内に§53が存在しない場合にエラーを発生させます。\n\n2) 高度な使用法:定理の証明から得られる仮定はしばしば欠落している部分を持っています。例えば、\n\n§54は§55であることを証明しており、\n\n§56は実際には関数であり、\n\n§57は入力です。この状況では、\n\n§58は目標内を検索し、\n\n§59のサブタームを見つけた瞬間に、\n\n§60を§61に固定し、\n\nすべての§62を§63に変更します。\n\n演習:なぜ§64は項§65を§66に変更するのか考えてみてください。\n\n等式の証明の名前を忘れた場合は、\n\n右側の補題一覧で調べてください。\n\n## 対象的な使用法\n\n目標が§67であり、\n\n§68を§69に書き換えることを望む場合、\n\n§70はLeanが別の加算を見つけ、\n\nその入力を交換するためには機能しません。§71を使用して、\n\nLeanが§72を§73に書き換えることを保証します。これは、\n\n§74は§75を証明しており、\n\n§76は§77を証明しており、\n\n§78は§79を証明しているためです。\n\n§80が成立する場合、\n\n§81はすべての§82を§83に変換します。\n\n§84の37番目の出現のみを§85に変更したい場合は、\n\n§86を行います。", "## Summary\n\nIf §0 is a number, then §1 will break the goal into two goals,\none with §2 and the other with §3.\n\nIf §4 is a proof (for example a hypothesis), then §5 will break the\nproof up into the pieces used to prove it.\n\n## Example\n\nIf §6 is a number, then §7 will break the goal into two goals,\none with §8 replaced by 0 and the other with §9 replaced by §10. This\ncorresponds to the mathematical idea that every natural number is either §11\nor a successor.\n\n## Example\n\nIf §12 is a hypothesis, then §13 will turn one goal\ninto two goals, one with a hypothesis §14 and the other with a\nhypothesis §15.\n\n## Example\n\nIf §16 is a hypothesis, then §17 will turn one goal into no goals,\nbecause there are no ways to make a proof of §18! And if you have no goals left,\nyou have finished the level.\n\n## Example\n\nIf §19 is a hypothesis, then §20 will create a new number §21\nand a proof §22. This is because the *definition* of §23 is\n§24.": - "## まとめ\n\nもし§0が数値である場合、§1は目標を二つに分割し、一つには§2、もう一つには§3が含まれます。\n\nもし§4が証明(例えば、仮定)である場合、§5はその証明を証明に使用された部分に分割します。\n\n## 例\n\nもし§6が数値である場合、§7は目標を二つに分割し、一つには§8を0に置き換えたもの、もう一つには§9を§10に置き換えたものが含まれます。これは数学的な考え方に即して、すべての自然数は§11または後続数であることを示します。\n\n## 例\n\nもし§12が仮定である場合、§13は一つの目標を二つに分割し、一つには§14という仮定が含まれ、もう一つには§15という仮定が含まれます。\n\n## 例\n\nもし§16が仮定である場合、§17は一つの目標を無数の目標に分割しません。なぜなら、§18の証明方法が存在しないからです!そして、目標が残っていない場合、レベルは終了します。\n\n## 例\n\nもし§19が仮定である場合、§20は新しい数値§21と証明§22を作成します。これは§23の定義が§24であるからです。", + "## 概要\n\nもし§0が数値である場合、§1は目標を二つに分割し、一つには§2、もう一つには§3が含まれます。\n\nもし§4が証明(例えば、仮定)である場合、§5はその証明を証明に使用された部分に分割します。\n\n## 例\n\nもし§6が数値である場合、§7は目標を二つに分割し、一つには§8を0に置き換えたもの、もう一つには§9を§10に置き換えたものが含まれます。これは数学的な考え方に即して、すべての自然数は§11または後続数であることを示します。\n\n## 例\n\nもし§12が仮定である場合、§13は一つの目標を二つに分割し、一つには§14という仮定が含まれ、もう一つには§15という仮定が含まれます。\n\n## 例\n\nもし§16が仮定である場合、§17は一つの目標を無数の目標に分割しません。なぜなら、§18の証明方法が存在しないからです!そして、目標が残っていない場合、レベルは終了します。\n\n## 例\n\nもし§19が仮定である場合、§20は新しい数値§21と証明§22を作成します。これは§23の定義が§24であるからです。", "## Summary\n\nIf §0 and there are several §1s in the goal, then\n§2 will just change the third §3 to a §4.\n\n## Example\n\nIf the goal is §5 then §6\nwill change the goal to §7. In contrast, §8\nwill change the goal to §9.": - "## 結論\n\nもし目標に §0 があり、目標に複数の §1 が存在する場合、§2 は第三の §3 を §4 に変更します。\n\n## 例\n\nもし目標が §5 である場合、§6 は目標を §7 に変更します。一方で、§8 は目標を §9 に変更します。", + "## 概要\n\nもし目標に §0 があり、目標に複数の §1 が存在する場合、§2 は第三の §3 を §4 に変更します。\n\n## 例\n\nもし目標が §5 である場合、§6 は目標を §7 に変更します。一方で、§8 は目標を §9 に変更します。", "## Summary\n\nIf the goal is §0, then §1 will introduce §2 as a hypothesis,\nand change the goal to §3. Mathematically, it says that to prove §4,\nwe can assume §5 and then prove §6.\n\n### Example:\n\nIf your goal is §7 (the way Lean writes §8)\nthen §9 will give you a hypothesis §10 named §11, and the goal\nwill change to §12.": "## 概要\n\nもし目標が§0である場合、§1は§2を仮定として導入し、目標を§3に変更します。数学的には、§4を証明するためには、§5を仮定し、その後§6を証明すればよいということです。\n\n### 例:\n\nもし目標が§7(Leanで書かれた§8)である場合、§9は§10という名前の仮定§11を導入し、目標は§12に変更されます。", "## Summary\n\nIf the goal is a statement §0, then §1 will close the goal if §2 is a proof of §3.\n\n### Example\n\nIf the goal is §4 and you have a hypothesis §5\nthen §6 will solve the goal.\n\n### Example\n\nIf the goal is §7 then §8 will close the goal.\n\n### Exact needs to be exactly right\n\nNote that §9 will *not work* in the previous example;\nfor §10 to work, §11 has to be *exactly* a proof of the goal.\n§12 is a proof of §13 or, if you like,\na proof of §14 where §15 needs to be supplied by the user.\nThis is in contrast to §16 and §17, which will \\\\\"guess the inputs\\\\\"\nif necessary. If the goal is §18 then §19\nand §20 will both change the goal to §21,\nbecause §22 guesses the input to the function §23.": - "## 結論\n\nもし目標が §0 の文である場合、§2 が §3 の証明であれば、目標は §1 で閉じます。\n\n### 例\n\nもし目標が §4 で、仮定 §5 がある場合、§6 は目標を解決します。\n\n### 例\n\nもし目標が §7 である場合、§8 は目標を閉じます。\n\n### 必ず正確に\n\n注意してほしいのは、前の例では §9 は *機能しません*;\n§10 が機能するためには、§11 は目標の *正確な* 証明である必要があります。\n§12 は目標の §13 の証明であるか、あるいは §14 の証明で、§15 はユーザーによって提供される必要があります。\nこれは §16 と §17 とは異なり、必要に応じてこれらの関数は *入力の推測* を行います。もし目標が §18 である場合、§19 と §20 は両方とも目標を §21 に変更します。\nこれは §22 が関数 §23 の入力を推測するからです。", + "## 概要\n\nもし目標が §0 の文である場合、§2 が §3 の証明であれば、目標は §1 で閉じます。\n\n### 例\n\nもし目標が §4 で、仮定 §5 がある場合、§6 は目標を解決します。\n\n### 例\n\nもし目標が §7 である場合、§8 は目標を閉じます。\n\n### 必ず正確に\n\n注意してほしいのは、前の例では §9 は *機能しません*;\n§10 が機能するためには、§11 は目標の *正確な* 証明である必要があります。\n§12 は目標の §13 の証明であるか、あるいは §14 の証明で、§15 はユーザーによって提供される必要があります。\nこれは §16 と §17 とは異なり、必要に応じてこれらの関数は *入力の推測* を行います。もし目標が §18 である場合、§19 と §20 は両方とも目標を §21 に変更します。\nこれは §22 が関数 §23 の入力を推測するからです。", "## Precision rewriting\n\nIn the last level, there was §0 and §1,\nand §2 changed the first one it saw,\nwhich was §3. Let's learn how to tell Lean\nto change §4 first by giving §5 an\nexplicit input.": "## 精密な書き換え\n\n前のレベルでは、§0 と §1 があり、\n§2 は最初に見つけた§3を変更しました。\nLean に §4 を最初に変更させる方法を学びましょう。\n§5 に明示的な入力を与えることで実現します。", "# Welcome to the Natural Number Game\n#### An introduction to mathematical proof.\n\nIn this game, we will build the basic theory of the natural\nnumbers §0 from scratch. Our first goal is to prove\nthat §1. Next we'll prove that §2.\nAnd at the end we'll see if we can prove Fermat's Last Theorem.\nWe'll do this by solving levels of a computer puzzle game called Lean.\n\n# Read this.\n\nLearning how to use an interactive theorem prover takes time.\nTests show that the people who get the most out of this game are\nthose who read the help texts like this one.\n\nTo start, click on \"Tutorial World\".\n\nNote: this is a new Lean 4 version of the game containing several\nworlds which were not present in the old Lean 3 version. More new worlds\nsuch as Strong Induction World, Even/Odd World and Prime Number World\nare in development; if you want to see their state or even help out, checkout\nout the [issues in the github repo](https://github.com/leanprover-community/NNG4/issues).\n\n## More\n\nClick on the three lines in the top right and select \"Game Info\" for resources,\nlinks, and ways to interact with the Lean community.": "# 自然数ゲームへようこそ\n#### 数学的証明への入門\n\nこのゲームでは、自然数 §0 の基本理論をゼロから構築します。最初の目標は §1 を証明することです。次に §2 を証明します。そして最後には、フェルマーの最終定理を証明できるかどうかを見ていきます。これらの目標を達成するために、コンピュータパズルゲーム「Lean」のレベルを解いていきます。\n\n# 読んでください。\n\nインタラクティブ証明システムの使い方を学ぶには時間がかかります。テスト結果によれば、このゲームで最も効果的なのは、このようなヘルプテキストを読む人です。\n\n開始するには、「チュートリアルワールド」をクリックしてください。\n\n注意:これは、旧Lean 3版に存在しなかった複数のワールドを含む新しいLean 4版のゲームです。強い帰納法ワールド、偶数/奇数ワールド、素数ワールドなどの新しいワールドの開発が進行中です;これらの状態を確認したいか、協力したい場合は、[githubリポジトリのissues](https://github.com/leanprover-community/NNG4/issues) をチェックしてください。\n\n## 追加情報\n\n右上隅の三本線をクリックし、「ゲーム情報」を選択してリソース、リンク、Leanコミュニティとの交流方法を確認してください。", "# Summary\nThe §0 tactic changes a goal of §1 into a goal of §2.\nUse it when your hypotheses guarantee that the reason that §3\nis true is because in fact §4 is true.\n\nInternally this tactic is just §5ing a theorem\nsaying that §6\n\nNote that this tactic can turn a solvable goal into an unsolvable\none.": - "### 翻訳\n# まとめ\n§0 タクティクは、目標 §1 を §2 に変更します。\n仮定が §3 が真である理由は実際には §4 が真であるからである場合に使用します。\n\n内部的には、このタクティクは §6 という定理を §5 し、\n§6\n\n注意していただきたいのは、このタクティクが解決可能な目標を解決不能な目標に変更する可能性があることです。", - "# Summary\n\n§0 will solve the goal §1.": "# 結果\n\n§0 は目標 §1 を解決します。", + "# 概要\n§0 タクティクは、目標 §1 を §2 に変更します。\n仮定が §3 が真である理由は実際には §4 が真であるからである場合に使用します。\n\n内部的には、このタクティクは §6 という定理を §5 します。\n\n注意していただきたいのは、このタクティクが解決可能な目標を解決不能な目標に変更する可能性があることです。", + "# Summary\n\n§0 will solve the goal §1.": "# 概要\n\n§0 は目標 §1 を解決します。", "# Summary\n\n§0 will attempt to solve a goal if it can find an algorithm which it\ncan run to solve it.\n\n## Example\n\nA term of type §1 is an algorithm to decide whether two naturals\nare equal or different. Hence, once this term is made and made into an §2,\nthe §3 tactic can use it to solve goals of the form §4 or §5.": "# 概要\n\n§0は、解決アルゴリズムを見つけることができれば、目標を解決しようとします。\n\n## 例\n\n型§1の項は、2つの自然数が等しいか異なるかを決定するアルゴリズムです。したがって、この項が作成され、§2に変換されると、§3タクティクは、§4または§5のような目標を解決するためにそれを使用することができます。", "# Summary\n\nThe §0 tactic will solve any goal which can be solved purely by logic (that is, by\ntruth tables).\n\n## Details\n\n§1 *does not do magic*! It doesn't know *anything* about addition or multiplication,\nit doesn't even know §2. The only things that §3 knows about numbers\nare firstly that §4 and secondly that §5, §6, §7 and so on.\nWhat §8's strength is, is *logic*. If you have a hypothesis §9\nand another hypothesis §10 and your goal is §11 then §12 will\nsolve this goal, because to solve that goal you don't need to know any facts\nabout inequalities or addition, all you need to know is the rules of logic.\n\n## Example\n\nIf you have §13 as a hypothesis, then §14 will solve\nthe goal. This is because a false hypothesis implies any hypothesis.\n\n## Example\n\nIf your goal is §15, then §16 will solve the goal.\n\n## Example\n\nIf you have two hypotheses §17 and §18 then §19 will\nsolve the goal because it can prove §20 from your hypotheses, and thus\nprove the goal (as §21 implies anything).\n\n## Example\n\nIf you have one hypothesis §22 then §23 will solve the goal because\n§24 is smart enough to know that §25 is true, which gives the contradiction we seek.\n\n## Example\n\nIf you have a hypothesis §26 then §27 will solve the goal, because\n§28 knows §29 and this is enough to prove §30, which implies any goal.\n\n## Example\n\nIf you have a hypothesis of the form §31 and your goal is §32, then\n§33 will solve the goal, because the goal is logically equivalent to the hypothesis.\nIf you switch the goal and hypothesis in this example, §34 would solve it too.": - "### Summary\n\n§0 タクティクは、論理だけで解決できる目標(つまり、真偽表で解決できる目標)を解決します。\n\n## 詳細\n\n§1 は *魔法を施すわけではない*!加算や乗算については何も知らないし、すら §2 も知らない。§3 が数について知っているのは、まず §4 であり、二つ目は §5, §6, §7 などである。§8 の強みは *論理* にある。仮定 §9 と仮定 §10 があり、目標が §11 の場合、§12 はこの目標を解決します。なぜなら、目標を解決するには不等式や加算に関する事実を知る必要がないし、必要なのは論理のルールだけです。\n\n## 例\n\n仮定として §13 がある場合、§14 は目標を解決します。これは、偽の仮定は任意の仮定を推論するからです。\n\n## 例\n\n目標が §15 の場合、§16 は目標を解決します。\n\n## 例\n\n仮定が §17 と §18 である場合、§19 は目標を解決します。なぜなら、§19 はあなたの仮定から §20 を証明でき、したがって目標を証明できるからです(§21 は何かを推論するためのもの)。\n\n## 例\n\n仮定が §22 である場合、§23 は目標を解決します。なぜなら、§24 は §25 が真であることを知っているので、これは求めている矛盾を与えます。\n\n## 例\n\n仮定が §26 の形式である場合、目標が §32 の場合、§33 は目標を解決します。なぜなら、目標は仮定と論理的に等価であるからです。この例で目標と仮定を入れ替えると、§34 も解決します。\n\n## 例\n\n仮定が §31 の形式であり、目標が §32 の場合、§33 は目標を解決します。なぜなら、目標は仮定と論理的に等価であるからです。この例で目標と仮定を入れ替えると、§34 も解決します。", + "# 概要\n\n§0 タクティクは、論理だけで解決できる目標(つまり、真偽表で解決できる目標)を解決します。\n\n## 詳細\n\n§1 は *魔法を施すわけではない*!加算や乗算については何も知らないし、§2 すらも知らない。§3 が数について知っているのは、まず §4 であり、二つ目は §5, §6, §7 などである。§8 の強みは *論理* にある。仮定 §9 と仮定 §10 があり、目標が §11 の場合、§12 はこの目標を解決します。なぜなら、目標を解決するには不等式や加算に関する事実を知る必要がないし、必要なのは論理のルールだけです。\n\n## 例\n\n仮定として §13 がある場合、§14 は目標を解決します。これは、偽の仮定は任意の仮定を推論するからです。\n\n## 例\n\n目標が §15 の場合、§16 は目標を解決します。\n\n## 例\n\n仮定が §17 と §18 である場合、§19 は目標を解決します。なぜなら、§19 はあなたの仮定から §20 を証明でき、したがって目標を証明できるからです(§21 は何かを推論するためのもの)。\n\n## 例\n\n仮定が §22 である場合、§23 は目標を解決します。なぜなら、§24 は §25 が真であることを知っているので、これは求めている矛盾を与えます。\n\n## 例\n\n仮定が §26 の形式である場合、目標が §32 の場合、§33 は目標を解決します。なぜなら、目標は仮定と論理的に等価であるからです。この例で目標と仮定を入れ替えると、§34 も解決します。\n\n## 例\n\n仮定が §31 の形式であり、目標が §32 の場合、§33 は目標を解決します。なぜなら、目標は仮定と論理的に等価であるからです。この例で目標と仮定を入れ替えると、§34 も解決します。", "# Summary\n\nThe §0 tactic can be used to add new hypotheses to a level, but of course\nyou have to prove them.\n\n\n## Example\n\nThe simplest usage is like this. If you have §1 in your context and you execute\n\n§2\n\nthen you will get a new goal §3 to prove, and after you've proved\nit you will have a new hypothesis §4 in your original goal.\n\n## Example\n\nIf you already have a proof of what you want to §5, you\ncan just create it immediately. For example, if you have §6 and §7\nnumber objects, then\n\n§8\n\nwill directly add a new hypothesis §9\nto the context, because you just supplied the proof of it (§10).\n\n## Example\n\nIf you have a proof to hand, then you don't even need to state what you\nare proving. For example\n\n§11\n\nwill add §12 as a hypothesis.": - "### Summary\n\n§0 タクティクはレベルに新しい仮定を追加するのに使用できますが、もちろんそれらを証明する必要があります。\n\n## 例\n\n最も単純な使用法は以下の通りです。コンテキストに§1がある場合、§2を実行すると新しい目標§3が生成され、それを証明すると元の目標に新しい仮定§4が追加されます。\n\n## 例\n\n既に証明したいものを持っている場合、それをすぐに作成することができます。例えば、§6と§7で番号付けされたオブジェクトがある場合、§8を実行すると、その証明(§10)を提供したため、コンテキストに新しい仮定§9が追加されます。\n\n## 例\n\n証明を持っている場合、証明したいものを明示する必要すらありません。例えば、§11を実行すると、§12が仮定として追加されます。", + "# 概要\n\n§0 タクティクはレベルに新しい仮定を追加するのに使用できますが、もちろんそれらを証明する必要があります。\n\n## 例\n\n最も単純な使用法は以下の通りです。コンテキストに§1がある場合、§2を実行すると新しい目標§3が生成され、それを証明すると元の目標に新しい仮定§4が追加されます。\n\n## 例\n\n既に証明したいものを持っている場合、それをすぐに作成することができます。例えば、§6と§7で番号付けされたオブジェクトがある場合、§8を実行すると、その証明(§10)を提供したため、コンテキストに新しい仮定§9が追加されます。\n\n## 例\n\n証明を持っている場合、証明したいものを明示する必要すらありません。例えば、§11を実行すると、§12が仮定として追加されます。", "# Summary\n\nIf you have a hypothesis\n\n§0\n\nand goal\n\n§1\n\nthen §2 replaces the set-up with its so-called \\\\\"contrapositive\\\\\":\na hypothesis\n\n§3\n\nand goal\n\n§4.": - "### 翻訳\n\n# 概要\n\n仮定\n\n§0\n\nと目標\n\n§1\n\nがある場合、§2 はセットアップを反論と呼ばれるものに置き換える:\n仮定\n\n§3\n\nと目標\n\n§4\n\nになります。", + "# 概要\n\n仮定\n\n§0\n\nと目標\n\n§1\n\nがある場合、§2 はセットアップを反論と呼ばれるものに置き換える:\n仮定\n\n§3\n\nと目標\n\n§4\n\nになります。", "# Statement\n\nIf §0 and §1 are numbers, then\n§2 is the proof that\n§3.\n\n## More technical details\n\nThere are other ways to think about §4.\n\nYou can think about §5 itself as a function which takes two\nnumbers §6 and §7 as input, and outputs a proof of\n§8.\n\nYou can think of §9 itself as a proof; it is the proof\nthat §10 is an injective function. In other words,\n§11 is a proof of\n§12.\n\n§13 was postulated as an axiom by Peano, but\nin Lean it can be proved using §14, a mathematically\npathological function.": - "# 提示\n\n§0 と §1 が数値である場合、\n§2 は §3 の証明です。\n\n## さらなる技術的な詳細\n\n§4 を考える方法は他にもあります。\n\n§5 は、2 つの数値 §6 と §7 を入力として取り、\n§8 の証明を出力する関数として考えることができます。\n\n§9 は自身が証明であり、これは §10 が単射関数であることを示す証明です。つまり、\n§11 は §12 の証明です。\n\nペアノによって公理として導入された §13 ですが、\nLean では §14、すなわち数学的に病理的な関数を使用して証明できます。", + "# 命題\n\n§0 と §1 が数値である場合、\n§2 は §3 の証明です。\n\n## さらなる技術的な詳細\n\n§4 を考える方法は他にもあります。\n\n§5 は、2 つの数値 §6 と §7 を入力として取り、\n§8 の証明を出力する関数として考えることができます。\n\n§9 は自身が証明であり、これは §10 が単射関数であることを示す証明です。つまり、\n§11 は §12 の証明です。\n\nペアノによって公理として導入された §13 ですが、\nLean では §14、すなわち数学的に病理的な関数を使用して証明できます。", "# Read this first\n\nEach level in this game involves proving a mathematical theorem (the \"Goal\").\nThe goal will be a statement about *numbers*. Some numbers in this game have known values.\nThose numbers have names like §0. Other numbers will be secret. They're called things\nlike §1 and §2. We know §3 is a number, we just don't know which one.\n\nIn this first level we're going to prove the theorem that §4.\nYou can see §5 in the *Objects* below, which means that §6 and §7\nare numbers.\n\nWe solve goals in Lean using *Tactics*, and the first tactic we're\ngoing to learn is called §8, which proves all theorems of the form §9.\n\nProve that §10 by executing the §11 tactic.": "# まずはこちらを読む\n\nこのゲームの各レベルでは、数学的定理(「目標」)を証明します。\n目標は数に関する主張です。このゲームには既知の値を持つ数がいくつかあります。\nその数には§0のような名前がついています。他の数は秘密です。§1や§2のような名前で呼ばれます。§3は数であることは分かっていますが、具体的にはどの数かは分かりません。\n\nこの最初のレベルでは、§4という定理を証明します。\n下の*対象*に§5が表示されているので、§6と§7は数であることが分かります。\n\nLeanで目標を解決するには*タクティク*を使用します。最初に学ぶタクティクは§8で、これは§9のような形式の定理を証明します。\n\n§10を証明するために§11 タクティクを実行してください。", "# Overview\n\nOur home-made tactic §0 will solve arbitrary goals of\nthe form §1.": "# 概要\n\n私たちが作成したタクティク §0 は、§1 のような任意の目標を解決します。", "# Overview\n\nLean's simplifier, §0, will rewrite every lemma\ntagged with §1 and every lemma fed to it by the user, as much as it can.\nFurthermore, it will attempt to order variables into an internal order if fed\nlemmas such as §2, so that it does not go into an infinite loop.": - "# Overview\n\nLeanの簡略化処理器§0は、§1でタグ付けされたすべての lemmas およびユーザーから与えられたすべての lemmas をできる限り簡略化します。さらに、§2のようなlemmasを与えると、内部の順序に変数を並び替える試みも行い、無限ループに陥らないようにします。"} \ No newline at end of file + "# 概要\n\nLeanの簡略化処理器§0は、§1でタグ付けされたすべての補題およびユーザーから与えられたすべての補題をできる限り簡略化します。さらに、§2のような補題を与えると、内部の順序に変数を並び替える試みも行い、無限ループに陥らないようにします。"} \ No newline at end of file From b98538439e8444b2638949a05d8be03ed986d5ae Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Wed, 29 Apr 2026 03:20:40 +0900 Subject: [PATCH 095/147] ja: add no-translate comment This comment will use to avoid translate via program. --- .i18n/ja/Game.po | 54 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 097a6939..4482f5d1 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -12,6 +12,7 @@ msgstr "" "MIME-Version: 1.0\n" "Plural-Forms: nplurals=1; plural=0;\n" +#no-translate #: Game.Levels.LessOrEqual.L10le_one msgid "x ≤ 1" msgstr "x ≤ 1" @@ -21,6 +22,7 @@ msgstr "x ≤ 1" msgid "§0 is good enough to solve this goal." msgstr "§0はこの目標を解決するのに十分です。" +#no-translate #: Game.Levels.Multiplication.L09mul_assoc msgid "mul_assoc" msgstr "mul_assoc" @@ -224,10 +226,12 @@ msgstr "§0 を解いて開始してください。" msgid "the rw tactic" msgstr "rw タクティク" +#no-translate #: Game.Levels.AdvMultiplication.L02mul_left_ne_zero msgid "mul_left_ne_zero" msgstr "mul_left_ne_zero" +#no-translate #: Game.Levels.AdvMultiplication.L07mul_ne_zero msgid "mul_ne_zero" msgstr "mul_ne_zero" @@ -252,6 +256,7 @@ msgstr "" "\n" "基本的なタクティクについて学んでみましょう。以下の \"開始\" をクリックして冒険を始めてください。" +#no-translate #: Game.Levels.AdvAddition.L02add_left_cancel msgid "add_left_cancel" msgstr "add_left_cancel" @@ -260,6 +265,7 @@ msgstr "add_left_cancel" msgid "You can probably take it from here." msgstr "おそらく、ここから始めても問題ありません。" +#no-translate #: Game.Levels.Tutorial.L08twoaddtwo msgid "2+2=4" msgstr "2+2=4" @@ -354,6 +360,7 @@ msgstr "" "これは、§1 が実際に §2 と同じ意味であることを意味します。\n" "これにより、§3 と §4 の動作が影響を受けます。" +#no-translate #: Game.Levels.Power.L01zero_pow_zero msgid "zero_pow_zero" msgstr "zero_pow_zero" @@ -368,6 +375,7 @@ msgstr "帰納法を用いて §0 または §1 に適用する -- どちらも msgid "Note: this lemma will be useful for the final boss!" msgstr "この補題は最終ボス戦で役立つでしょう!" +#no-translate #: Game.Levels.Implication.L06intro msgid "intro" msgstr "intro" @@ -444,6 +452,7 @@ msgstr "" "\n" "Leanでは、§2は§3を意味するので、この結果は§4として表示されます。" +#no-translate #: Game.Levels.Algorithm.L08decide msgid "decide" msgstr "decide" @@ -625,6 +634,7 @@ msgstr "" "このレベル、§1では、括弧は無視して変数の順序だけを考えましょう。\n" "§2を§3に変更するには、§4と§5を、そして§6と§7を入れ替える必要があります。しかし、§8を使うと意外と簡単にできます。" +#no-translate #: Game.Levels.Algorithm.L01add_left_comm msgid "add_left_comm" msgstr "add_left_comm" @@ -809,6 +819,7 @@ msgstr "" msgid "Arguing backwards" msgstr "逆向きの議論" +#no-translate #: Game.Levels.AdvMultiplication.L06mul_right_eq_one msgid "mul_right_eq_one" msgstr "mul_right_eq_one" @@ -1122,6 +1133,7 @@ msgstr "現在、§0 が動作するようになります。" msgid "§0 is a proof of the implication §1." msgstr "§0 は §1 から導かれる命題の証明です。" +#no-translate #: Game.Levels.Implication.L11two_add_two_ne_five msgid "2 + 2 ≠ 5" msgstr "2 + 2 ≠ 5" @@ -1464,6 +1476,7 @@ msgstr "" "\n" "注意していただきたいのは、最初の目標を証明する前に、次の目標にアクセスすることはできないということです。" +#no-translate #: Game.Levels.Implication.L09zero_ne_succ msgid "zero_ne_succ" msgstr "zero_ne_succ" @@ -1638,6 +1651,7 @@ msgstr "" "以下は完全に逆順の証明です:\n" "§0" +#no-translate #: Game.Levels.LessOrEqual.L05le_zero msgid "x ≤ 0 → x = 0" msgstr "x ≤ 0 → x = 0" @@ -1730,6 +1744,7 @@ msgstr "" msgid "Start with §0 to assume the hypothesis." msgstr "§0 を使用して仮定を導入します。" +#no-translate #: Game.Levels.Multiplication.L04mul_comm msgid "mul_comm" msgstr "mul_comm" @@ -1875,6 +1890,7 @@ msgstr "" "例えば、減算は結合法則を満たさないため、§5は\n" "§6とは等しくありません。" +#no-translate #: Game.Levels.AdvAddition.L03add_left_eq_self msgid "add_left_eq_self" msgstr "add_left_eq_self" @@ -1920,6 +1936,7 @@ msgstr "" "\n" "新しく非常に有用なタクティク§5を使用して証明します。" +#no-translate #: Game.Levels.Power.L06pow_add msgid "pow_add" msgstr "pow_add" @@ -2132,6 +2149,7 @@ msgstr "" msgid "If §0 then either §1 or §2." msgstr "§0なら、§1または§2。" +#no-translate #: Game.Levels.Addition.L02succ_add msgid "succ_add" msgstr "succ_add" @@ -2190,6 +2208,7 @@ msgid "" "and §2 is the easiest." msgstr "帰納法は§0が最も難しく、次いで§1で、§2は最も簡単です。" +#no-translate #: Game.Levels.Tutorial.L05add_zero Game.Levels.Tutorial.L06add_zero2 #: Game.Levels.Power.L01zero_pow_zero Game.Levels.Algorithm.L09decide2 #: Game.Levels.AdvAddition.L03add_left_eq_self @@ -2253,6 +2272,7 @@ msgstr "" msgid "For all naturals §0, §1, §2, we have §3." msgstr "すべての自然数 §0, §1, §2 について、§3 が成り立ちます。" +#no-translate #: Game.Levels.AdvMultiplication.L09mul_left_cancel msgid "mul_left_cancel" msgstr "mul_left_cancel" @@ -3402,6 +3422,7 @@ msgstr "" "\n" "§86を行います。" +#no-translate #: Game.Levels.AdvAddition.L06add_left_eq_zero msgid "add_left_eq_zero" msgstr "add_left_eq_zero" @@ -4004,6 +4025,7 @@ msgstr "" "Leanでは、§2は§3に*定義されており*、 " "§4は実質的に§5の証明です。ここで§6は一般的な偽の命題です。つまり、§8が§9の証明である場合、§7を行うことができます。" +#no-translate #: Game.Levels.Multiplication.L01mul_one msgid "mul_one" msgstr "mul_one" @@ -4145,6 +4167,7 @@ msgid "" "the boss level of multiplication world. Good luck!" msgstr "乗算が結合的であることを証明できるようになりました。これは乗算ワールドのボスレベルです。幸運を!" +#no-translate #: Game.Levels.Power.L08pow_pow msgid "pow_pow" msgstr "pow_pow" @@ -4317,6 +4340,7 @@ msgstr "" msgid "§0 is a proof that if §1 then §2." msgstr "§0は、§1ならば§2であることの証明。" +#no-translate #: Game.Levels.Implication.L08ne msgid "≠" msgstr "≠" @@ -4334,6 +4358,7 @@ msgstr "§2 で§0 と §1 にケースを分けましょう。" msgid "Start with §0 to assume the hypothesis and call its proof §1." msgstr "§0 を使用して仮定を§1とし、開始します。" +#no-translate #: Game.Levels.AdvMultiplication.L10mul_right_eq_self msgid "mul_right_eq_self" msgstr "mul_right_eq_self" @@ -4383,6 +4408,7 @@ msgstr "" msgid "Now take apart the existence statement with §0." msgstr "存在文を §0 で 分解します。" +#no-translate #: Game.Levels.Tutorial.L08twoaddtwo Game.Levels.Implication.L06intro #: Game.Levels.Implication.L07intro2 Game.Levels.Implication.L09zero_ne_succ #: Game.Levels.Implication.L10one_ne_zero @@ -4459,6 +4485,7 @@ msgstr "" msgid "decide again" msgstr "もう一度 decide" +#no-translate #: Game.Levels.LessOrEqual.L03le_succ_self msgid "x ≤ succ x" msgstr "x ≤ succ x" @@ -4477,6 +4504,7 @@ msgid "" "contrapositive, namely a hypothesis of §1 and a goal of §2." msgstr "開始するには、§0 から始めて、目標を対偶に変更し、具体的には§1 の仮定と§2 の目標にします。" +#no-translate #: Game.Levels.Multiplication.L07mul_add msgid "mul_add" msgstr "mul_add" @@ -4608,6 +4636,7 @@ msgstr "" msgid "§0 is a proof that §1." msgstr "§0は§1の証明です。" +#no-translate #: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero msgid "eq_succ_of_ne_zero" msgstr "eq_succ_of_ne_zero" @@ -4639,6 +4668,7 @@ msgstr "" msgid "Start with §0 to apply §1 to the *goal*." msgstr "開始するには、§0 を使用して §1 を *目標* に適用します。" +#no-translate #: Game.Levels.Multiplication.L02zero_mul msgid "zero_mul" msgstr "zero_mul" @@ -4647,6 +4677,7 @@ msgstr "zero_mul" msgid "Can you take it from here?" msgstr "ここから続けられますか?" +#no-translate #: Game.Levels.Power.L07mul_pow msgid "mul_pow" msgstr "mul_pow" @@ -4695,6 +4726,7 @@ msgstr "" "このワールドのボスレベルは、§3が完全順序であることを証明することです。\n" "まずは2つの簡単なタクティクを学んでからしましょう。" +#no-translate #: Game.Levels.Multiplication.L05one_mul msgid "one_mul" msgstr "one_mul" @@ -4707,6 +4739,7 @@ msgid "" "§0, and you need to prove that §1." msgstr "では、第二の目標に移ります。ここでは、 帰納法の仮定 §0 が与えられており、 §1 を証明する必要があります。" +#no-translate #: Game.Levels.Algorithm.L05pred msgid "pred" msgstr "pred" @@ -4743,6 +4776,7 @@ msgstr "[最終ボスのテーマ]" msgid "§0 is the proof that §1." msgstr "§0は§1の証明です。" +#no-translate #: Game.Levels.Addition.L05add_right_comm msgid "add_right_comm" msgstr "add_right_comm" @@ -4752,6 +4786,7 @@ msgstr "add_right_comm" msgid "try rewriting §0." msgstr "§0で書き換えてみてください." +#no-translate #: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero msgid "one_le_of_ne_zero" msgstr "one_le_of_ne_zero" @@ -4765,6 +4800,7 @@ msgstr "one_le_of_ne_zero" msgid "§0 is the theorem that §1" msgstr "§0は§1の定理です。" +#no-translate #: Game.Levels.Power.L04one_pow msgid "one_pow" msgstr "one_pow" @@ -4796,15 +4832,18 @@ msgstr "" "\n" "\"存在する\"文を*証明*するには、§5のタクティクを使用します。例を見ていきましょう。" +#no-translate #: Game.Levels.LessOrEqual.L02zero_le msgid "0 ≤ x" msgstr "0 ≤ x" +#no-translate #: Game.Levels.LessOrEqual.L07or_symm #. §0: `or` msgid "Dealing with §0" msgstr "§0 を扱う方法" +#no-translate #: Game.Levels.Multiplication.L08add_mul msgid "add_mul" msgstr "add_mul" @@ -4889,10 +4928,12 @@ msgstr "" "\n" "\"開始\"をクリックして進みましょう。" +#no-translate #: Game.Levels.LessOrEqual.L11le_two msgid "le_two" msgstr "le_two" +#no-translate #: Game.Levels.Power.L05pow_two msgid "pow_two" msgstr "pow_two" @@ -4960,6 +5001,7 @@ msgstr "" "0から1を引くことはできませんので、無効な値を返します。この定義とともに、新しい補題§3も定義します。これは§4を述べています。\n" "この補題を使って、§5(ペアノが公理として仮定し、以前にも正当化せずに頻繁に使用した定理)を証明しましょう。" +#no-translate #: Game.Levels.Algorithm.L06is_zero msgid "is_zero" msgstr "is_zero" @@ -5122,6 +5164,7 @@ msgstr "" "\n" "目標を §9 に変換できるなら、§10 タクティクで解決できます。" +#no-translate #: Game.Levels.AdvMultiplication.L08mul_eq_zero msgid "mul_eq_zero" msgstr "mul_eq_zero" @@ -5132,14 +5175,17 @@ msgstr "mul_eq_zero" msgid "Start with §0 to begin to break §1 down into its definition." msgstr "開始は§0から始めて、§1を定義に分解するところから始めます。" +#no-translate #: Game.Levels.Implication.L10one_ne_zero msgid "1 ≠ 0" msgstr "1 ≠ 0" +#no-translate #: Game.Levels.AdvMultiplication.L01mul_le_mul_right msgid "mul_le_mul_right" msgstr "mul_le_mul_right" +#no-translate #: Game.Levels.AdvAddition.L04add_right_eq_self msgid "add_right_eq_self" msgstr "add_right_eq_self" @@ -5272,6 +5318,7 @@ msgstr "" msgid "Start with §0." msgstr "§0 で開始します。" +#no-translate #: Game.Levels.Multiplication.L03succ_mul msgid "succ_mul" msgstr "succ_mul" @@ -5488,6 +5535,7 @@ msgstr "" msgid "Can you now change the goal into §0?" msgstr "目標を§0に変更できますか?" +#no-translate #: Game.Levels.Power.L09add_sq msgid "add_sq" msgstr "add_sq" @@ -5607,6 +5655,7 @@ msgstr "" msgid "An algorithm for equality" msgstr "等価性のアルゴリズム" +#no-translate #: Game.Levels.AdvMultiplication.L05le_mul_right msgid "le_mul_right" msgstr "le_mul_right" @@ -5634,6 +5683,7 @@ msgstr "" "\n" "現在、自然数の除法の基本理論を設定するために必要なすべてのツールを備えています。" +#no-translate #: Game.Levels.Multiplication.L06two_mul msgid "two_mul" msgstr "two_mul" @@ -5980,10 +6030,12 @@ msgid "" "from a false statement. The §1 tactic will close this goal." msgstr "基本的なケースでは、仮定§0が存在します。偽の文から何でも導くことができます。タクティク§1はこの目標を閉じます。" +#no-translate #: Game.Levels.Tutorial.L07add_succ msgid "add_succ" msgstr "add_succ" +#no-translate #: Game.Levels.Power.L03pow_one msgid "pow_one" msgstr "pow_one" @@ -6028,6 +6080,7 @@ msgid "" "and then §1 to solve this level in two lines." msgstr "§0 を実行し、その後 §1 を実行することで、このレベルを二行で解くことができることを留意してください。" +#no-translate #: Game.Levels.AdvAddition.L05add_right_eq_zero msgid "add_right_eq_zero" msgstr "add_right_eq_zero" @@ -6078,6 +6131,7 @@ msgstr "" "このレベルでは、§0 と §1 であることを示す必要があります。一つの戦略は、§3 と §4 を両方とも §5 の何かの §6 であると書き、それから " "§7 であることを導き、最後に §8 とします。" +#no-translate #: Game.Levels.Power.L02zero_pow_succ msgid "zero_pow_succ" msgstr "zero_pow_succ" From 1f24291a08948cadd560795b5e5eeabd8ada323f Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Wed, 29 Apr 2026 05:42:50 +0900 Subject: [PATCH 096/147] ja: improve translation supervised by translategemma:4b. --- .i18n/ja/Game.po | 1556 ++++++++++++++++++++++------------------------ 1 file changed, 755 insertions(+), 801 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 4482f5d1..196ac808 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -12,7 +12,7 @@ msgstr "" "MIME-Version: 1.0\n" "Plural-Forms: nplurals=1; plural=0;\n" -#no-translate +# no-translate #: Game.Levels.LessOrEqual.L10le_one msgid "x ≤ 1" msgstr "x ≤ 1" @@ -20,9 +20,9 @@ msgstr "x ≤ 1" #: Game.Levels.AdvMultiplication.L06mul_right_eq_one #. §0: `tauto` msgid "§0 is good enough to solve this goal." -msgstr "§0はこの目標を解決するのに十分です。" +msgstr "§0 は、この問題を解決するために十分な情報を提供します。" -#no-translate +# no-translate #: Game.Levels.Multiplication.L09mul_assoc msgid "mul_assoc" msgstr "mul_assoc" @@ -74,16 +74,14 @@ msgstr "" "\n" "## さらなる技術的な詳細\n" "\n" -"§4 を考える方法は他にもあります。\n" +"§4 について考える方法は他にもあります。\n" "\n" -"§5 は、2 つの数値 §6 と §7 を入力として取り、\n" -"§8 の証明を出力する関数として考えることができます。\n" +"§5 を、入力として 2 つの数値 §6 と §7 を受け取り、出力として §8 の証明を生成する関数と捉えることができます。\n" "\n" -"§9 は自身が証明であり、これは §10 が単射関数であることを示す証明です。つまり、\n" -"§11 は §12 の証明です。\n" +"§9 は自身が証明であり、これは §10 が単射関数であることを示す証明です。言い換えれば、\n" +"§11 は §12 の証明となります。\n" "\n" -"ペアノによって公理として導入された §13 ですが、\n" -"Lean では §14、すなわち数学的に病理的な関数を使用して証明できます。" +"ペアノによって公理として導入された §13 ですが、Lean では §14、すなわち数学的に異常な関数を用いて証明できます。" #: Game.Levels.Addition.L02succ_add #. §0: $a, b$ @@ -92,8 +90,8 @@ msgid "" "For all natural numbers §0, we have\n" "§1." msgstr "" -"すべての自然数 §0 に対して、\n" -"§1." +"すべての自然数 0 に対して、\n" +"§1。" #: Game.Levels.Tutorial.L04rw_backwards #. §0: `h` @@ -121,10 +119,10 @@ msgid "" "after §11 again, this time by changing §12\n" "into §13." msgstr "" -"もし§0が§1の証明であるなら、§2は§3を§4に変換します。しかし、§5を§6に変換したい場合は?§7" -"タクティクに私たちがこの変換を指示するには、左矢印§8を使用します。型§9を入力し、スペースバーを押すとこの矢印が得られます。\n" +"もし §0 が §1 の証明である場合、§2 は §3 を §4 に変換します。しかし、§5 を §6 に変換したい場合はどうでしょうか? §7 " +"タクティクに、この変換を指示するために、左矢印 §8 を使用します。 §9 と入力し、スペースキーを押すと、この矢印が得られます。\n" "\n" -"次の証明で、§10が§11の後ろの数値の後ろの数値であることを証明しましょう。今回は§12を§13に変換して証明します。" +"次の証明で、§10 が §11 の後ろの数値の後ろの数値であることを証明しましょう。今回は §12 を §13 に変換して証明します。" #: Game.Levels.AdvMultiplication.L06mul_right_eq_one #. §0: `have` @@ -179,11 +177,11 @@ msgid "" msgstr "" "# 概要\n" "\n" -"§0 タクティクはレベルに新しい仮定を追加するのに使用できますが、もちろんそれらを証明する必要があります。\n" +"§0 タクティックは、レベルに新しい仮定を追加するために使用できますが、それらを証明する必要があります。\n" "\n" "## 例\n" "\n" -"最も単純な使用法は以下の通りです。コンテキストに§1がある場合、§2を実行すると新しい目標§3が生成され、それを証明すると元の目標に新しい仮定§4" +"最も単純な使用法は以下の通りです。コンテキストに§1がある場合、§2を実行すると、新しい目標§3が生成され、それを証明すると元の目標に新しい仮定§4" "が追加されます。\n" "\n" "## 例\n" @@ -206,32 +204,32 @@ msgid "" "hover over both §2 symbols on the left hand side of the goal and\n" "you'll see where the invisible brackets are." msgstr "" -"Lean において§0と表示されたとき、§1を意味することを覚えておいてください。.\n" -"もし式内の括弧の位置が不明な場合は、カーソルをその位置にホバー" -"して表示されるハイライトを確認してください。例えば、目標の左側の両方の§2をホバーすると、見えない括弧の位置がわかります。" +"Leanにおいて「§0」と表示された場合、「§1" +"」を意味することを覚えておいてください。もし式内の括弧の位置が不明な場合は、カーソルをその位置にホバーして表示されるハイライトを確認してください。例えば" +"、目標の左側の両方の「§2」をホバーすると、見えない括弧の位置がわかります。" #: Game.Levels.Tutorial.L04rw_backwards #. §0: `rw [← one_eq_succ_zero]` #. §1: `succ 0` #. §2: `1` msgid "Try §0 to change §1 into §2." -msgstr "§0 を使用し、§1 を §2 に変換してみてください。" +msgstr "§0を使用して、§1を§2に変換することを試みてください。" #: Game.Levels.Tutorial.L07add_succ #. §0: `1` msgid "Start by unravelling the §0." -msgstr "§0 を解いて開始してください。" +msgstr "まず、§0 を解き始めましょう。" #: Game.Levels.Tutorial.L02rw msgid "the rw tactic" msgstr "rw タクティク" -#no-translate +# no-translate #: Game.Levels.AdvMultiplication.L02mul_left_ne_zero msgid "mul_left_ne_zero" msgstr "mul_left_ne_zero" -#no-translate +# no-translate #: Game.Levels.AdvMultiplication.L07mul_ne_zero msgid "mul_ne_zero" msgstr "mul_ne_zero" @@ -250,22 +248,22 @@ msgid "" "Let's learn some basic tactics. Click on \"Start\" below\n" "to begin your quest." msgstr "" -"チュートリアルワールドにようこそ! この世界では定理を証明する基本を学びます。この世界のボスレベルは定理§0です。\n" +"チュートリアルワールドへようこそ!この世界では、定理の証明方法の基本を学びます。この世界の最終ボスは定理§0です。\n" "\n" -"定理を証明するには、*タクティク*というツールを使ってパズルを解きます。目標は、適切な順序でタクティクを適用して定理を証明することです。\n" +"定理を証明するには、*タクティク*と呼ばれるツールを使ってパズルを解きます。目標は、適切な順序でタクティクを適用して定理を証明することです。\n" "\n" -"基本的なタクティクについて学んでみましょう。以下の \"開始\" をクリックして冒険を始めてください。" +"基本的なタクティクについて学びましょう。「開始」をクリックして冒険を始めてください。" -#no-translate +# no-translate #: Game.Levels.AdvAddition.L02add_left_cancel msgid "add_left_cancel" msgstr "add_left_cancel" #: Game.Levels.LessOrEqual.L01le_refl msgid "You can probably take it from here." -msgstr "おそらく、ここから始めても問題ありません。" +msgstr "ここからでも進めることができるでしょう。" -#no-translate +# no-translate #: Game.Levels.Tutorial.L08twoaddtwo msgid "2+2=4" msgstr "2+2=4" @@ -274,7 +272,7 @@ msgstr "2+2=4" #. §0: `x ≠ y` #. §1: `x = y → False` msgid "Remember, §0 is *notation* for §1." -msgstr "覚えておいてください、§0は§1の*表記*です。" +msgstr "覚えておいてください。§0 は §1 の *表記* です。" #: Game.Levels.AdvMultiplication.L08mul_eq_zero #. §0: `a * b = 0` @@ -283,7 +281,7 @@ msgstr "覚えておいてください、§0は§1の*表記*です。" msgid "" "This level proves that if §0 then §1 or §2. It is\n" "logically equivalent to the last level, so there is a very short proof." -msgstr "このレベルは、§0 ならば §1 または §2 であることを証明します。これは最後のレベルと論理的に同等であるため、非常に短い証明があります。" +msgstr "このレベルでは、§0ならば§1または§2であることを証明します。これは直前のレベルと同等の論理構造を持つため、非常に短い証明で済みます。" #: Game.Levels.Addition.L01zero_add #. §0: $0+n=n$ @@ -326,20 +324,20 @@ msgid "" "you can swap\n" "back to \"Typewriter mode\" by clicking the §16 button in the top right.)" msgstr "" -"このレベルでは、§1 という秘密の自然数について §0 を証明します。\n" +"このレベルでは、§1という秘密の自然数について、§0を証明します。\n" "\n" -"待って、それでは既に知っていることではないですか?いいえ!§2 は分かっていますが、それが §3 です。\n" -"これは §4 で、異なるものです。\n" +"待ってください。それでは、既に知っていることではないでしょうか?いいえ!§2は分かっていますが、それは§3です。\n" +"これは§4で、異なります。\n" "\n" -"§5 を証明する難しさは、一般の §6 に対する *公式* が存在しないことです。§7 と §8 は §9 が §10 " -"か後続数であることを知ったときにのみ使用できます。§11 のタクティクはこれらの2つの場合に分岐します。\n" +"§5を証明する難しさは、一般的に§6に対する*公式*が存在しないことです。§7と§8は、§9が§10" +"であるか後続数であることを知った場合にのみ使用できます。§11のタクティクは、これらの2つの場合に分岐します。\n" "\n" -"基本的な場合では §12 を証明する必要がありますし、帰納的なステップでは §13 が真なら §14 を示す必要があります。§15 " -"と後続数が数を作る唯一の方法であるため、これで全てのケースをカバーします。\n" +"基本的な場合は§12を証明する必要がありますし、帰納的なステップでは、もし§13ならば§14が成り立つことを示す必要があります。なぜなら、§15" +"と後続数が数を作る唯一の方法だからです。これにより、すべてのケースをカバーできます。\n" "\n" -"Leanで初めての帰納法証明を試みることができますか?\n" +"Leanで初めての帰納法証明に挑戦してみましょう。\n" "\n" -"(ちなみに、最後のワールドで「エディタモード」にいた場合、右上にある §16 ボタンをクリックして「タイプライターモード」に戻ることができます。)" +"(ちなみに、最後のワールドで「エディタモード」にいた場合は、右上にある§16ボタンをクリックして、「タイプライターモード」に戻ることができます。)" #: Game.Levels.LessOrEqual.L11le_two #. §0: `∨` @@ -354,13 +352,13 @@ msgid "" "§1 actually means §2.\n" "This affects how §3 and §4 work." msgstr "" -"この定理を使って、2 が素数であることを証明する必要があります!\n" +"この定理を利用して、2 が素数であることを証明できます!\n" "\n" -"§0 が右結合であることを知っておく必要があります。\n" -"これは、§1 が実際に §2 と同じ意味であることを意味します。\n" -"これにより、§3 と §4 の動作が影響を受けます。" +"§0 が右結合であるという性質を理解しておく必要があります。\n" +"これは、§1 が実際に §2 と同じ意味であることを示します。\n" +"これにより、§3 および §4 の動作が影響を受けます。" -#no-translate +# no-translate #: Game.Levels.Power.L01zero_pow_zero msgid "zero_pow_zero" msgstr "zero_pow_zero" @@ -369,13 +367,13 @@ msgstr "zero_pow_zero" #. §0: `a` #. §1: `b` msgid "Induction on §0 or §1 -- it's all the same in this one." -msgstr "帰納法を用いて §0 または §1 に適用する -- どちらも同じことです。" +msgstr "帰納法を適用して、§0または§1に対して -- どちらの場合でも結果は同じです。" #: Game.Levels.Power.L05pow_two msgid "Note: this lemma will be useful for the final boss!" -msgstr "この補題は最終ボス戦で役立つでしょう!" +msgstr "この定理は、最終ボスとの戦闘において役立ちます。" -#no-translate +# no-translate #: Game.Levels.Implication.L06intro msgid "intro" msgstr "intro" @@ -383,7 +381,7 @@ msgstr "intro" #: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero #. §0: `apply eq_succ_of_ne_zero at ha` msgid "Use the previous lemma with §0." -msgstr "§0を使用し、前の補題を適用してください。" +msgstr "前の定理を適用するために、§0を使用してください。" #: Game.Levels.Multiplication.L09mul_assoc msgid "" @@ -392,9 +390,9 @@ msgid "" "\n" "If you want to begin your journey to the final boss, head for Power World." msgstr "" -"通りすがりの数学者は、自然数が可換半環であることを証明したことを指摘しました。\n" +"通りすがりの数学者が、自然数が可換半環であることを証明したことを指摘しました。\n" "\n" -"最終ボスへの旅を始めるなら、冪乗ワールドへ向かってください。" +"最終ボスとの戦いを開始するには、冪乗ワールドへ進んでください。" #: Game.Levels.Power.L08pow_pow #. §0: `pow_pow` @@ -403,19 +401,19 @@ msgid "" "sub-boss appears as the music reaches a frenzy. What\n" "else could there be to prove about powers after this?" msgstr "" -"ゲームで最も適切に名付けられたレベルの一つとして知られる場面で、音楽が狂熱に達すると凶暴な§0\n" -"サブボスが登場します。それ以降の冪乗について何を証明できるでしょうか?" +"ゲーム内で最も適切に名前が付けられたレベルの一つとして知られる場面では、音楽が最高潮に達すると、凶暴なサブボスが出現します。これ以降、冪乗に関するどのよ" +"うなことが証明可能でしょうか?" #: Game.Levels.LessOrEqual.L05le_zero #. §0: $x \\leq 0$ #. §1: $x=0$ msgid "If §0, then §1." -msgstr "§0ならば、§1。" +msgstr "もし §0 ならば、§1 。" #: Game.Levels.AdvMultiplication.L02mul_left_ne_zero #. §0: `apply h` msgid "Now §0 and you can probably take it from here." -msgstr "§0 をします。ここから大丈夫でしょう。" +msgstr "§0を実行し、ここから推論を進めることができます。" #: Game.Levels.Multiplication.L04mul_comm #. §0: `mul_comm x y : x * y = y * x` @@ -431,10 +429,10 @@ msgid "" msgstr "" "乗算ワールドの最初のサブボスは§0です。\n" "\n" -"この定理を証明すると、「余裕」のある証明が得られます。\n" +"この定理を証明すると、「余剰」な証明が得られます。\n" "例えば、§2から容易に導かれる§1があります。\n" -"しかし、これらの証明は手元に置いておくことにします。\n" -"必要な仕事に適切な道具を持つためです。" +"ただし、これらの証明は保持しておきます。\n" +"特定のタスクに適した道具を手元に置いておくためです。" #: Game.Levels.Addition.L05add_right_comm #. §0: `add_right_comm a b c` @@ -448,11 +446,11 @@ msgid "" "In Lean, §2 means §3, so this result gets displayed\n" "as §4." msgstr "" -"§0は§1の証明です\n" +"§0 は §1 の証明を示す\n" "\n" -"Leanでは、§2は§3を意味するので、この結果は§4として表示されます。" +"Lean において、§2 は §3 を意味するため、この結果は §4 として表示されます。" -#no-translate +# no-translate #: Game.Levels.Algorithm.L08decide msgid "decide" msgstr "decide" @@ -463,8 +461,7 @@ msgstr "decide" msgid "" "You can use §0 to rewrite at §1 instead\n" "of at the goal." -msgstr "" -"§0で、目標ではなく、§1を書き換えることができます。" +msgstr "§0 を使用して、目標ではなく §1 を書き換えることができます。" #: Game.Levels.Tutorial.L05add_zero #. §0: `repeat t` @@ -488,11 +485,12 @@ msgid "" msgstr "" "## 概要\n" "\n" -"§0はタクティク§1を繰り返し適用し、目標を処理します。このタクティクを使用する必要はありませんが、時々処理速度を向上させることがあります。\n" +"§0 は、タクティク §1 " +"を繰り返し適用することで、目標を解決します。このタクティクの使用は必須ではありませんが、場合によっては処理速度の向上に役立ちます。\n" "\n" "## 例\n" "\n" -"§2を使用すると、目標§3は§4に変更されます。" +"§2 を使用すると、目標 §3 が §4 になります。" #: Game.Levels.Addition msgid "Addition World" @@ -551,19 +549,19 @@ msgid "" msgstr "" "## 概要\n" "\n" -"もし目標が §0 の文である場合、§2 が §3 の証明であれば、目標は §1 で閉じます。\n" +"目標が §0 である場合に、§2 が §3 の証明ならば、目標は §1 で解決されます。\n" "\n" "### 例\n" "\n" -"もし目標が §4 で、仮定 §5 がある場合、§6 は目標を解決します。\n" +"目標が §4 である場合、仮定 §5 があるならば、§6 は目標を解決します。\n" "\n" "### 例\n" "\n" -"もし目標が §7 である場合、§8 は目標を閉じます。\n" +"目標が §7 である場合、§8 は目標を解決します。\n" "\n" -"### 必ず正確に\n" +"### 正確な記述が必要\n" "\n" -"注意してほしいのは、前の例では §9 は *機能しません*;\n" +"注意点として、前の例では §9 は *機能しません*;\n" "§10 が機能するためには、§11 は目標の *正確な* 証明である必要があります。\n" "§12 は目標の §13 の証明であるか、あるいは §14 の証明で、§15 はユーザーによって提供される必要があります。\n" "これは §16 と §17 とは異なり、必要に応じてこれらの関数は *入力の推測* を行います。もし目標が §18 である場合、§19 と §20 " @@ -574,7 +572,7 @@ msgstr "" #. §0: `apply succ_inj at h` #. §1: `succ` msgid "Now §0 to cancel the §1s." -msgstr "§0を用いて§1を消去します。" +msgstr "`§0` を使用して `§1` を消去します。" #: Game.Levels.Addition #. §0: `induction` @@ -596,7 +594,7 @@ msgid "" "want to explore the game further (for example if you decide to 100%\n" "the game)." msgstr "" -" 加算ワールドへようこそ!このワールドでは§0 タクティクを学びます。\n" +"加算ワールドへようこそ!このワールドでは§0 タクティクを学びます。\n" "これにより、このワールドのボスレベルを攻略することができます、すなわち§1です。\n" "\n" "§2, §3, §4 のタクティクのみが必要で、これらを用いて\n" @@ -628,13 +626,14 @@ msgid "" "and then swap §6 and §7. But this is easier than you\n" "think with §8." msgstr "" -"いくつかの後続のワールドでは、§0のようなもっとひどいレベルを見ることになります。\n" -"括弧は移動させ、変数は入れ替える必要があります。\n" +"いくつかの後続のワールドでは、より複雑なレベルを見ることになります(例:§0)。\n" +"括弧の位置を調整し、変数の順序を変更する必要があります。\n" "\n" -"このレベル、§1では、括弧は無視して変数の順序だけを考えましょう。\n" -"§2を§3に変更するには、§4と§5を、そして§6と§7を入れ替える必要があります。しかし、§8を使うと意外と簡単にできます。" +"このレベル(§1)では、括弧は無視して変数の順序のみを考慮しましょう。\n" +"§2から§3への変更には、§4と§5の順序を入れ替え、さらに§6と§7の順序を入れ替える必要があります。しかし、§8" +"を用いることで、意外と簡単に実現できます。" -#no-translate +# no-translate #: Game.Levels.Algorithm.L01add_left_comm msgid "add_left_comm" msgstr "add_left_comm" @@ -669,15 +668,15 @@ msgid "" msgstr "" "## 概要\n" "\n" -"タクティク §0 は、目標や仮定が §1 の形式の場合を §2 に変更します。また、§3 や §4 も対象となります。\n" +"タクティク §0 は、目標または仮定が §1 の形式の場合を §2 に変更します。また、§3 および §4 も対象となります。\n" "\n" "### 例\n" "\n" -"もし目標が §5 の場合、§6 はそれを §7 に変更します。\n" +"もし目標が §5 の場合、§6 によってそれを §7 に変更します。\n" "\n" "### 例\n" "\n" -"もし §8 の場合、§9 は §10 を §11 に変更します。" +"もし §8 の場合、§9 によって §10 を §11 に変更します。" #: Game.Levels.Multiplication.L07mul_add #. §0: $a$ @@ -689,21 +688,22 @@ msgid "" "In other words, for all natural numbers §0, §1 and §2, we have\n" "§3." msgstr "" -"乗算は左側で加算に対して分配律を満たします。\n" -"つまり、すべての自然数 §0, §1, §2 に対して、以下の関係が成り立ちます。\n" +"乗算は、左から加算に関して分配法則に従います。\n" +"すなわち、任意の自然数 §0, §1, §2 について、以下の関係が成立します。\n" "§3." #: Game.Levels.Implication.L03apply #. §0: `apply` msgid "The §0 tactic." -msgstr "タクティク §0" +msgstr "§0 タクティク" +#, fuzzy #: Game.Levels.Implication.L01exact #. §0: `exact h1` msgid "" "The goal in this level is one of our hypotheses. Solve the goal by " "executing §0." -msgstr "このレベルの目標は、私たちの仮定の一つです。目標を達成するには、§0 を実行してください。" +msgstr "このレベルの目標は、当方の仮説の一つです。目標を達成するためには、§0を実行してください。" #: Game.Levels.AdvAddition.L05add_right_eq_zero #. §0: `≤` @@ -745,7 +745,7 @@ msgid "" "make a proof of §15! So you will end up with no goals, meaning you have " "proved everything." msgstr "" -"次に §0 ワールドで必要になる結果は、もし §1 なら §2 と §3 です。\n" +"次に §0 ワールドで必要となる結果は、「もし §1 ならば §2 と §3 である」というものです。\n" "このレベルで一つの事実を証明し、次のレベルでもう一つの事実を証明しましょう。\n" "\n" "## 新しいタクティク: §4\n" @@ -764,7 +764,7 @@ msgstr "" msgid "" "In order to use the tactic §0 you can enter it in the text box\n" "under the goal and hit \"Execute\"." -msgstr "タクティク §0 を使用するには、目標の下のテキストボックスに入力し、「実行」をクリックしてください。" +msgstr "タクティク §0 を使用するには、目標の下にあるテキストボックスに記述し、「実行」ボタンをクリックしてください。" #: Game.Levels.LessOrEqual.L07or_symm #. §0: $x=37$ @@ -772,7 +772,7 @@ msgstr "タクティク §0 を使用するには、目標の下のテキスト #. §2: $y=42$ #. §3: $x=37$ msgid "If §0 or §1, then §2 or §3." -msgstr "もし§0 または §1 ならば, §2 または §3 。" +msgstr "もし §0 または §1 なら、§2 または §3 。" #: Game.Levels.Algorithm.L09decide2 msgid "" @@ -780,8 +780,9 @@ msgid "" "will be helpful for you in Even-Odd World (when someone gets around to\n" "implementing it)." msgstr "" -"おめでとうございます! あなたはアルゴリズムワールドを完了しました。これらのアルゴリズムは、Even-Odd " -"ワールドが実装されるまで、あなたにとって役立つでしょう。" +"おめでとうございます!あなたはアルゴリズムワールドを完了しました。\n" +"これらのアルゴリズムは、Even-Oddワールド(誰かが実装してくれたら)\n" +"でも、あなたにとって役立ちます。" #: Game.Levels.Tutorial.L08twoaddtwo #. §0: `h : X = Y` @@ -796,10 +797,10 @@ msgid "" " If you only want to change one of them, say the 3rd one, then use\n" " §4." msgstr "" -"幸運を!\n" +"幸運をお祈りいたします!\n" "\n" -"最後のヒント。もし§0であれば、§1はすべての§2を§3に変換します。\n" -"一方で、一つだけ変換したい場合(例えば3番目のもの)、§4を使用します。" +"最後のヒントです。もし §0 が真ならば、§1 はすべての §2 を §3 に変換します。\n" +"特定の §2 のみを変更したい場合は、§4 を使用してください(例:3番目のもの)。" #: Game.Levels.Addition.L04add_assoc #. §0: `add_assoc` @@ -811,15 +812,15 @@ msgid "" "Let's practice using §0 and §1 in one more level,\n" "before we leave addition world." msgstr "" -"通りすがりの数学者は、自然数が加法的交換半群であることを証明したことに称賛の意を表します。\n" +"「自然数の加法的交換半群であることの証明」に際し、通りすがりの数学者がお祝いの言葉を述べます。\n" "\n" -"加算ワールドを去る前に、§0 と §1 の使用をもう一回練習しましょう。" +"加算に関する概念を理解するため、§0 と §1 の使い方をもう一度練習しましょう。" #: Game.Levels.Implication.L05succ_inj2 msgid "Arguing backwards" -msgstr "逆向きの議論" +msgstr "推論を逆方向に進める" -#no-translate +# no-translate #: Game.Levels.AdvMultiplication.L06mul_right_eq_one msgid "mul_right_eq_one" msgstr "mul_right_eq_one" @@ -828,13 +829,13 @@ msgstr "mul_right_eq_one" #. §0: `add_sq a b` #. §1: $(a+b)^2=a^2+b^2+2ab.$ msgid "§0 is the statement that §1" -msgstr "§0は§1のステートメントです。" +msgstr "§0 は §1 を表す命題です。" #: Game.Levels.Implication.L08ne #. §0: $x=y$ #. §1: $x \\neq y$ msgid "If §0 and §1 then we can deduce a contradiction." -msgstr "もし§0 と §1 ならば、矛盾を導き出すことができます。" +msgstr "もし §0 が真であり、かつ §1 も真であるならば、矛盾を導き出すことができます。" #: Game.Levels.Tutorial.L05add_zero #. §0: `2 + 2 = 4` @@ -884,7 +885,7 @@ msgid "" "We write §20, so §21." msgstr "" "私たちは§0を証明したいですが、現在では\n" -"その定理を*述べること*すらできません。\n" +"その定理を*記述すること*すらできません。\n" "なぜなら、加法をまだ定義していないからです。\n" "\n" "## 加法の定義\n" @@ -907,7 +908,7 @@ msgstr "" #: Game.Levels.AdvMultiplication.L01mul_le_mul_right #. §0: `t = 0` msgid "Let's warm up with an easy one, which works even if §0." -msgstr "まずは簡単な問題から始めましょう。これは §0 の場合でも成立します。" +msgstr "まずは、簡単に問題を解いてみましょう。この問題は、§0 の場合に有効です。" #: Game.Levels.Implication.L07intro2 #. §0: $x+1=y+1\\implies x=y$ @@ -916,14 +917,14 @@ msgid "" "Try this one by yourself; if you need help then click on \"Show more " "help!\"." msgstr "" -"タクティクを用いて§0を証明できるかどうか試してみてください。\n" -"自分で試してみてください;手助けが必要であれば「より多くのヘルプを表示!」をクリックしてください。" +"これまで学んだタクティクを使って、§0の証明が可能か試してみましょう。\n" +"ご自身で試すことをお勧めします。もしお手伝いが必要な場合は、「より多くのヘルプを表示!」をクリックしてください。" #: Game.Levels.Implication.L09zero_ne_succ #: Game.Levels.AdvMultiplication.L06mul_right_eq_one #. §0: `apply zero_ne_succ at h` msgid "Now you can §0." -msgstr "§0 が出来ます。" +msgstr "§0 を使用できます。" #: Game.Levels.Implication.L03apply #. §0: `h2` @@ -938,8 +939,9 @@ msgid "" "§4 or any other tactic on the right to see a detailed explanation\n" "of what it does, with examples." msgstr "" -"このレベルでは、仮定§0は *含意* です。これは「§1 ならば §2」という意味です。この仮定は§3 " -"タクティクを使用して利用できます。右側の任意のタクティク(例:§4)をクリックすることで、その詳細な説明と例を見ることができます。" +"このレベルでは、仮定 §0 は *含意* です。「もし §1 ならば " +"§2」という形で表現されます。この仮定は、§3というタクティクを用いて利用できます。右側の任意のタクティク(例:§4" +")をクリックすると、その詳細な説明と例を確認できます。" #: Game.Levels.Tutorial.L01rfl #. §0: $37$ @@ -976,7 +978,7 @@ msgid "" msgstr "" "# まずはこちらを読む\n" "\n" -"このゲームの各レベルでは、数学的定理(「目標」)を証明します。\n" +"このゲームの各レベルでは、数学的な定理(「目標」)を証明します。\n" "目標は数に関する主張です。このゲームには既知の値を持つ数がいくつかあります。\n" "その数には§0のような名前がついています。他の数は秘密です。§1や§2のような名前で呼ばれます。§3" "は数であることは分かっていますが、具体的にはどの数かは分かりません。\n" @@ -997,7 +999,7 @@ msgid "" "Here's a two-line proof:\n" "§0" msgstr "" -"以下は二行の証明です:\n" +"以下は2行の証明です:\n" "§0" #: Game.Levels.Addition.L01zero_add @@ -1013,9 +1015,9 @@ msgid "" "§2 is a §3 lemma, because replacing §4 by §5\n" "is almost always what you want to do if you're simplifying an expression." msgstr "" -"§0は§1の証明です。\n" +"§0 は §1 の証明です。\n" "\n" -"§2は§3補題であり、§4を§5に置き換えることは、表現を簡略化する際にほとんどが望ましい操作です。" +"§2 は §3 の補題であり、§4 を §5 に置換することは、通常、式を簡略化する場合に望ましい操作です。" #: Game.Levels.Implication.L04succ_inj #. §0: `a` @@ -1035,11 +1037,12 @@ msgid "" "by manipulating our hypothesis until it becomes the goal. I will\n" "walk you through this level." msgstr "" -"もし§0と§1が数値である場合、§2は§3が§4を導く証明です。*Peano*タブでこの定理について詳しく知ることができます。\n" +"もし §0 と §1 が数値である場合、§2 は §3 が §4 を導くことの証明です。*Peano* " +"タブでこの定理について詳しく知ることができます。\n" "\n" -"Peanoはこの定理を公理としていましたが、アルゴリズムワールド" -"ではLeanを使ってこの定理を証明する方法を示すことにします。現在はこの定理を仮定し、§5" -"を用いて証明しましょう。また、証明は仮定を操作して目標に近づけることで進めていきます。このレベルを一緒に進めていきましょう。" +"Peanoはこの定理を公理としていましたが、アルゴリズムワールドでは Lean " +"を用いてこの定理を証明する方法を示します。現在ではこの定理を仮定し、§5 " +"を用いて証明しましょう。また、証明は仮定を操作することで目標に近づけることで進めていきます。このレベルについて一緒に学びましょう。" #: Game.Levels.Implication.L09zero_ne_succ #. §0: `2 + 2 ≠ 5` @@ -1051,15 +1054,15 @@ msgid "" "introduce Peano's last axiom §2, a proof that §3.\n" "To learn about this result, click on it in the list of lemmas on the right." msgstr "" -"§0 の前準備として、§1 を証明しましょう。これを行うために、ペアノの最後の公理 §2、§3 " -"の証明が必要です。この結果について学ぶには、右側の定理一覧から該当項目をクリックしてください。" +"ウォーミングアップとして、§0 の前に §1 を証明します。これを行うためには、ペアノの最後の公理 §2 と §3 " +"の証明が必要です。この結果について学ぶには、右側の定理一覧から該当する項目をクリックしてください。" #: Game.Levels.Implication.L01exact #. §0: $x+y=37$ #. §1: $3x+z=42$ #. §2: $x+y=37$ msgid "Assuming §0 and §1, we have §2." -msgstr "§0と§1ならば、§2。" +msgstr "前提として§0および§1を仮定します。その結果、§2が導き出されます。" #: Game.Levels.Addition.L03add_comm #. §0: `a` @@ -1070,8 +1073,8 @@ msgid "" "In other words, if §0 and §1 are arbitrary natural numbers, then\n" "§2." msgstr "" -"自然数の集合において、加算は交換律を満たします。\n" -"つまり、任意の自然数 §0 と §1 に対して、\n" +"自然数全体の集合においては、加算は交換法則を満たす。\n" +"すなわち、任意の自然数 §0 と §1 が与えられたとき、\n" "§2." #: Game.Levels.AdvMultiplication.L09mul_left_cancel @@ -1102,17 +1105,16 @@ msgid "" "\"for all §8, if §9 then §10\". This *can* be proved by induction,\n" "because we now have the flexibility to change §11." msgstr "" -"このレベルでは、§0 と §1 が成り立つ場合、§2 が成り立つことを証明します。\n" -"これはいくつかの理由で、複雑です。\n" +"このレベルでは、§0 と §1 が成り立つ場合に、§2 が成り立つことを証明します。\n" +"これはいくつかの理由から複雑です。\n" "そのうちの一つは、新しいアイデアを導入する必要があるためです:\n" -"数学的帰納法の概念をもう少し理解する必要があります。\n" +"数学的帰納法の概念についてもう少し深く理解する必要があります。\n" "\n" -"§3 から始めることは単純すぎるため、帰納的ステップでは仮定は §4 ですが、実際に知っていることは §5 であり、\n" -"従って帰納仮定が適用されません!\n" +"§3 から始めるのは単純すぎるため、帰納的ステップでは仮定が §4 ですが、実際には §5 が成り立っているため、帰納仮定は適用できません!\n" "\n" -"§6 を固定します。実際には、§7 による帰納法で証明したい主張は\n" -"「全ての §8 について、§9 が成り立つ場合、§10 が成り立つ」です。これは 帰納法で証明 *できます* 。\n" -"なぜなら、今では §11 を変更できる柔軟性があるからです。" +"§6 を固定します。実際に証明したい主張は、§7 に関する帰納法による証明で、「全ての §8 について、§9 が成り立つならば §10 " +"が成り立つ」というものです。\n" +"この主張は帰納法で証明できます。なぜなら、今では §11 を変更できる柔軟性があるからです。" #: Game.Levels.AdvMultiplication.L08mul_eq_zero #. §0: `h2` @@ -1120,20 +1122,20 @@ msgstr "" msgid "" "Now the goal can be deduced from §0 by pure logic, so use the §1\n" "tactic." -msgstr "現在の目標は、§0 から純粋な論理で導き出せますので、§1 のタクティクを使用します。" +msgstr "現在の目標は、§0 から純粋な論理によって導き出すことができます。そのため、§1 のタクティクを使用します。" #: Game.Levels.Tutorial.L02rw #. §0: `rfl` msgid "Now §0 will work." -msgstr "現在、§0 が動作するようになります。" +msgstr "現在、§0 は正常に動作します。" #: Game.Levels.LessOrEqual.L05le_zero #. §0: `le_zero x` #. §1: `x ≤ 0 → x = 0` msgid "§0 is a proof of the implication §1." -msgstr "§0 は §1 から導かれる命題の証明です。" +msgstr "§0 は、§1 の推論を示しています。" -#no-translate +# no-translate #: Game.Levels.Implication.L11two_add_two_ne_five msgid "2 + 2 ≠ 5" msgstr "2 + 2 ≠ 5" @@ -1160,16 +1162,16 @@ msgid "" "It is distinct from the Lean natural numbers §5, which should hopefully\n" "never leak into the natural number game.*" msgstr "" -"§0は自然数で、このゲームでは単に「数」呼ばれる。これは以下の2つのルールにより定義される:\n" +"§0 は自然数を指し、「数」と呼ばれています。このゲームでは、以下の2つのルールを用いて定義されます。\n" "\n" -"* §1(ゼロは数)\n" +"* §1(0は数)\n" "* §2(数の後続も数)\n" "\n" -"## ゲーム実装\n" +"## ゲームの実装\n" "\n" "* " -"このゲームは、自身の自然数のコピーを使用し、その自然数は「§3」として呼び、記号は「§4」で表される。これはLeanの自然数「§5" -"」とは異なるもので、希望するとおり自然数ゲームには流入することはない。" +"このゲームは、独自の自然数のコピーを使用します。「§3」という名前で参照され、記号は「§4」で表されます。これは、Leanの自然数「§5" +"」とは異なり、自然数ゲームに影響を与えることはありません。" #: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero #. §0: `a ≠ 0` @@ -1195,8 +1197,8 @@ msgid "" "before.\n" "The §0 tactic can be used to take §1 apart." msgstr "" -"このレベルでは、不等式が*仮定*として扱われます。これまでに見られなかった手法です。\n" -"§0 タクティクは、§1 を分解するのに使用できます。" +"このレベルでは、不等式を *仮定* として扱います。これまではこのような扱いがありませんでした。\n" +"§0 タクティクは、§1 を分解するために使用できます。" #: Game.Levels.Algorithm.L07succ_ne_succ #. §0: `a` @@ -1247,21 +1249,21 @@ msgid "" "§21 is §22 and then §23. This level is a proof of the one\n" "remaining job we have to do: if §24 then §25." msgstr "" -"ここでは、与えられた二つの自然数 §0 と §1 に対して、\"§2?\" という質問の答えを返すアルゴリズムを開発します。\n" +"ここでは、与えられた自然数 §0 と §1 に対して、「§2」という質問の答えを返すアルゴリズムを開発します。\n" "\n" -"このアルゴリズムは以下のようになっています。まず、§3 と §4 は数であり、したがって §5 または §5 の後者です。\n" +"このアルゴリズムは以下の手順で動作します。まず、§3 と §4 が数値であり、したがって §5 または §5 の後者であることに注意してください。\n" "\n" -"1. §6 と §7 が両方とも §8 の場合、\"yes\" を返す。\n" -"2. 一方が §9 で他方が §10 の場合、\"no\" を返す。\n" -"3. §11 と §12 の場合、\"§13?\" という質問の答えを返す。\n" +"1. §6 と §7 が両方とも §8 である場合、「yes」と返答します。\n" +"2. 一方が §9 で他方が §10 である場合、「no」と返答します。\n" +"3. §11 と §12 の場合、「§13 ?」 という質問の答えを返します。\n" "\n" -"現在の仕事は、このアルゴリズムが常に正しい答えを返すことを証明することです。§14 が §15 であることを証明します。§16 が §17 " -"であることを証明します。§18 が §19 であることを証明します。§20 が真である場合、§21 が §22 であり、さらに §23 " -"であることを証明します。このレベルでは、残る一つの仕事であることを証明します:§24 が真である場合、§25 であることを。" +"現在の課題は、このアルゴリズムが常に正しい答えを返すことを証明することです。具体的には、以下の命題を証明する必要があります:§14 が §15 " +"であること、§16 が §17 であること、§18 が §19 であること、そして §20 が真であるならば、§21 が §22 であり、さらに " +"§23 であることを証明します。この段階では、残る最後の課題である「§24 が真であるならば、§25 である」という命題を証明します。" #: Game.Levels.LessOrEqual.L06le_antisymm msgid "x ≤ y and y ≤ x implies x = y" -msgstr "x ≤ y と y ≤ x ならば x = y" +msgstr "x ≤ y かつ y ≤ x であるとき x = y" #: Game.Levels.LessOrEqual.L07or_symm #. §0: `left` @@ -1285,11 +1287,11 @@ msgid "" msgstr "" "# 概要\n" "§0 タクティクは、目標 §1 を §2 に変更します。\n" -"仮定が §3 が真である理由は実際には §4 が真であるからである場合に使用します。\n" +"仮定が、§3 が真である理由は実際には §4 が真であることを保証する場合に使用します。\n" "\n" "内部的には、このタクティクは §6 という定理を §5 します。\n" "\n" -"注意していただきたいのは、このタクティクが解決可能な目標を解決不能な目標に変更する可能性があることです。" +"注意していただきたいのは、このタクティクが、解決可能な目標を解決不能な目標に変更する可能性があることです。" #: Game.Levels.Multiplication msgid "Multiplication World" @@ -1306,8 +1308,8 @@ msgid "" "We've seen §0, the proof that if §1 then §2.\n" "Now we'll prove that if §3 then §4 or §5." msgstr "" -"§0, 仮定§1 から §2 が成り立つことを証明しました。\n" -"次に、仮定§3 から §4 または §5 が成り立つことを証明します。" +"これまでに、仮定 §1 ならば §2 が成り立つことを示す証明 §0 を見てきました。\n" +"次に、仮定 §3 ならば §4 または §5 が成り立つことを証明します。" #: Game #. §0: $\\mathbb{N}$ @@ -1317,9 +1319,9 @@ msgid "" "\n" "This is a good first introduction to Lean!" msgstr "" -"このゲームでは、ペanoの公理から自然数§0を再構築し、Leanでの定理証明の基本を学びます。\n" +"このゲームでは、ペアノの公理に基づいて自然数 §0 を再構成し、Leanにおける定理証明の基礎を習得します。\n" "\n" -"これはLeanへの良い初歩的な入門となります!" +"これは、Leanへの優れた入門となるでしょう!" #: Game.Levels.Implication.L04succ_inj Game.Levels.Implication.L05succ_inj2 #: Game.Levels.Algorithm.L05pred Game.Levels.Algorithm.L07succ_ne_succ @@ -1329,7 +1331,7 @@ msgstr "" #. §0: $x+1=4$ #. §1: $x=3$ msgid "If §0 then §1." -msgstr "§0 ならば §1。" +msgstr "§0 ならば、§1。" #: Game.Levels.Addition.L04add_assoc #. §0: $x+y+z$ @@ -1349,13 +1351,14 @@ msgid "" "\n" " That's true, but we didn't prove it yet. Let's prove it now by induction." msgstr "" -"二つの数を足し合わせてきました;このレベルでは三つの数を足し合わせます。\n" +"二つの数を足し合わせる練習をしてきました。このレベルでは、三つの数を足し合わせます。\n" "\n" -" §0は何を意味するのでしょうか?それは §1 か §2 のどちらかです。Leanでは、§3 は §4 と意味が同じです。\n" +" §0 は何を意味するのでしょうか?それは §1 または §2 のどちらかです。Lean では、§3 と §4 は同じ意味になります。\n" "\n" -" しかし、どの意味を持つべきかを気にする必要があるのでしょうか;§5 と §6 は *等しい* のです!\n" +" しかし、どの意味を持つべきかを気にする必要はありません。なぜなら、§5 と §6 は *等しい* からです!\n" "\n" -" その通りですが、まだ証明していません。帰納法 (`inducution`) で証明しましょう。" +" その通りですが、まだ証明していません。" +"帰納法(`inducution`)でを用いて証明しましょう。" #: Game.Levels.AdvAddition.L04add_right_eq_self #. §0: `add_left_eq_self` @@ -1392,13 +1395,13 @@ msgid "" "\n" "§4" msgstr "" -"以下は§0を使用した証明です:\n" +"以下は、§0を用いた証明です:\n" "§1\n" "\n" -"そして、同じアイデアを使用したさらに短い証明は以下の通りです:\n" +"また、同様の考え方を用いると、さらに短い証明も可能です:\n" "§2\n" "\n" -"あるいは、§3 について帰納法で証明することができます:\n" +"あるいは、§3 に対して数学的帰納法を用いて証明することもできます:\n" "§4" #: Game.Levels.LessOrEqual.L05le_zero @@ -1407,18 +1410,18 @@ msgstr "" msgid "" "You want to use §0, which you already\n" "proved, but you'll have to start with §1 your hypothesis." -msgstr "あなたは既に証明した§0を使用したいですが、仮定から始める必要がありますので、§1から始めなければなりません。" +msgstr "既に証明した§0を使用したいですが、まず§1という仮定から始める必要があります。" #: Game.Levels.Tutorial.L03two_eq_ss0 #. §0: `1` #. §1: `succ 0` #. §2: `rw [one_eq_succ_zero]` msgid "Next turn §0 into §1 with §2." -msgstr "次に、§0 を §1 に変更し、§2 を実行します。" +msgstr "次のステップとして、§2 を実行して §0 を §1 に変換します。" #: Game.Levels.Implication.L07intro2 msgid "intro practice" -msgstr "intro 練習" +msgstr "intro 演習" #: Game.Levels.Addition.L01zero_add #. §0: `n : ℕ` @@ -1459,8 +1462,8 @@ msgid "" msgstr "" "## 概要\n" "\n" -"もし§0がオブジェクトであり、目標に§1が含まれている場合、§2は目標を§3による帰納法で証明しようとします。帰納変数は後続ケースで§4" -"であり、帰納仮定は§5です。\n" +"もし §0 がオブジェクトであり、目標に §1 が含まれている場合、§2 は目標を §3 " +"に対する帰納法によって証明しようとします。帰納変数は後続ケースで §4 であり、帰納仮定は §5 です。\n" "\n" "### 例:\n" "もし目標が\n" @@ -1470,13 +1473,13 @@ msgstr "" "\n" "§7\n" "\n" -"は目標を2つの目標に変換します。最初の目標は§8であり、次の目標には仮定§9と目標\n" +"は目標を 2 つの目標に変換します。最初の目標は §8 であり、次の目標には仮定 §9 と目標\n" "§10\n" "が含まれます。\n" "\n" "注意していただきたいのは、最初の目標を証明する前に、次の目標にアクセスすることはできないということです。" -#no-translate +# no-translate #: Game.Levels.Implication.L09zero_ne_succ msgid "zero_ne_succ" msgstr "zero_ne_succ" @@ -1489,9 +1492,9 @@ msgid "" "Either by induction, or by using §1, or\n" "by using commutativity. Which do you think is quickest?" msgstr "" -"§0を証明する方法として、少なくとも3つの方法があります。\n" -"帰納法で証明するか、§1を使用するか、または交換律を使用するかです。\n" -"どの方法が最も速いと思いますか?" +"少なくとも3つの方法で§0を証明できます。\n" +"いずれも、帰納法を用いる方法、§1を利用する方法、または交換律を用いる方法です。\n" +"これらのうち、最も効率的な方法はどれだとお考えですか?" #: Game.Levels.Addition.L02succ_add #. §0: `succ a + «{d}»` @@ -1500,12 +1503,12 @@ msgstr "" msgid "" "Note that §0 means §1. Put your cursor\n" "on any §2 in the goal or assumptions to see what exactly it's eating." -msgstr "ノート:§0は§1を意味します。目標や仮定内の任意の§2にカーソルを置くと、それが何を食べているかがわかります。" +msgstr "注: §0 は §1 を意味します。目標または前提条件内の任意の §2 にカーソルを置くと、実際にどのようなものを参照しているかを確認できます。" #: Game.Levels.LessOrEqual.L07or_symm #. §0: `cases «{h}» with hx hy` msgid "We don't know whether to go left or right yet. So start with §0." -msgstr "まだ左に進むべきか右に進むべきかは分かりません。そのため、§0から始めてみましょう。" +msgstr "まだどちらに進むべきか決まっていないため、「§0」から開始しましょう。" #: Game.Levels.AdvMultiplication.L05le_mul_right #. §0: $2$ @@ -1525,12 +1528,10 @@ msgid "" "until it becomes the goal, using §4, §5 and\n" "§6." msgstr "" -"いつかこのゲームには素数ワールドが追加されるでしょう。最終ボスは§0が素数であることを証明することになります。\n" -"これを達成するためには、§1のようなものを排除する必要があります。\n" -"これは、§2の任意の約数のうち最も大きいものが§3" -"であることを証明することで行います。その証明はこの補題を使用します。\n" -"私が考えている証明では、§4、§5、§6を使用して仮定を操作し、\n" -"最終的に目標になるようにします。" +"いつかこのゲームには「素数ワールド」が追加される予定です。最終的なボス戦は、§0 が素数であることを証明することになります。\n" +"これを実現するためには、§1 などの要素を排除する必要があります。\n" +"具体的には、§2 の任意の因数のうち、最も大きいものが §3 であることを証明します。この証明には、以下の補題を使用します。\n" +"私が考えている証明では、§4、§5、および §6 を用いて、仮定を操作し、最終的に目標(§0 が素数であること)に到達させるようにします。" #: Game.Levels.Algorithm.L06is_zero #. §0: `False` @@ -1548,17 +1549,17 @@ msgstr "" msgid "" "Can you take it from here? (note: if you try §0 again, it will\n" "take you back to where you started!)" -msgstr "ここから続けられますか?(注: §0を再度試すと、元の場所に戻ってしまいます!)" +msgstr "引き続き作業を進められますでしょうか?(注:§0を再度実行すると、元の開始地点に戻ります!)" #: Game.Levels.Power.L05pow_two #. §0: `pow_two a` #. §1: `a ^ 2 = a * a` msgid "§0 says that §1." -msgstr "§0 は §1 を意味します。" +msgstr "§0 は、§1 を述べています。" #: Game.Levels.Implication.L04succ_inj msgid "In the next level, we'll do the same proof but backwards." -msgstr "次のレベルでは、証明を逆方向に進める同じ手続きを行います。" +msgstr "次のレベルでは、同様の手続きを用いて、証明を逆方向に展開します。" #: Game.Levels.Multiplication.L08add_mul #: Game.Levels.LessOrEqual.L09succ_le_succ @@ -1571,13 +1572,13 @@ msgid "" "Here's my proof:\n" "§0" msgstr "" -"私の証明:\n" +"私の証明:\n" "§0" #: Game.Levels.Implication.L03apply #. §0: `exact` msgid "Now finish using the §0 tactic." -msgstr "§0 タクティクを使用して完了してください。" +msgstr "次に、§0 タクティクを使って処理を完了してください。" #: Game.Levels.Power #. §0: `37 ^ n` @@ -1613,9 +1614,9 @@ msgstr "" "\n" "これらのものだけを使って最終ボスレベルを突破できるでしょうか?\n" "\n" -"この世界のレベルは、2019" -"年夏にMary Lister McCammon助成金によりImperial College LopndonのUROP学生であるSian Careyによって設計されました。Sianに感謝" -"します。また、Imperial Collegeの助成にも感謝します。" +"この世界のレベルは、2019年夏にMary Lister McCammon助成金によりImperial College " +"LondonのUROP学生であるSian Careyによって設計されました。Sianに感謝します。また、Imperial " +"Collegeの助成にも感謝します。" #: Game.Levels.Implication.L04succ_inj #. §0: `h` @@ -1627,15 +1628,15 @@ msgid "" "apply §2. First execute §3\n" "to change the 4 on the right hand side." msgstr "" -"§0 を §1 の形式に変更してから、§2 を適用することができます。\n" -"まず、§3 を実行して右辺の 4 を変更します。" +"まず、§0 を §1 の形式に変換し、その後 §2 を適用します。\n" +"最初に、§3 を実行して右辺の 4 を変更します。" #: Game.Levels.Tutorial.L04rw_backwards Game.Levels.Tutorial.L05add_zero #. §0: `rw [← two_eq_succ_one]` #. §1: `succ 1` #. §2: `2` msgid "Now §0 will change §1 into §2." -msgstr "§0は§1を§2に変換します。" +msgstr "§0 は §1 を §2 に変更します。" #: Game.Levels.Implication.L07intro2 #. §0: ``` @@ -1648,10 +1649,10 @@ msgid "" "Here's a completely backwards proof:\n" "§0" msgstr "" -"以下は完全に逆順の証明です:\n" +"以下は、完全に逆順の手順で構成された証明です:\n" "§0" -#no-translate +# no-translate #: Game.Levels.LessOrEqual.L05le_zero msgid "x ≤ 0 → x = 0" msgstr "x ≤ 0 → x = 0" @@ -1665,12 +1666,12 @@ msgstr "高度な加算ワールド" #. §1: $q$ #. §2: $37x+q=37x+q.$ msgid "If §0 and §1 are arbitrary natural numbers, then §2" -msgstr "任意の自然数§0と§1が与えられた場合、§2" +msgstr "任意の自然数§0と§1が与えられたとき、§2" #: Game.Levels.LessOrEqual.L07or_symm #. §0: `left` msgid "This time, use the §0 tactic." -msgstr "今回は、§0 タクティクを使用します。" +msgstr "この場合は、§0 タクティクを使用します。" #: Game.Levels.Power.L09add_sq #. §0: $(a+b)^2=a^2+b^2$ @@ -1684,11 +1685,12 @@ msgid "" "But wait! This boss is stirring...and mutating into a second more powerful " "form!" msgstr "" -"すべて終了しました!命題を証明し、世紀にわたる学校の問題を解決しました(一部の人は§0: 「若者の夢」と思っているかもしれません)。\n" +"すべて終了しました!あなたは、長年にわたって学校教育で問題となっていた命題を証明しました(一部の人は§0: " +"これを「大学生の夢」と捉えているかもしれません)。\n" "\n" -"あなたはいくつの書き換えを行いましたか?私は12回でできます。\n" +"あなたは、この命題を証明するために何回も書き換えたでしょうか?私は12回で解決できます。\n" "\n" -"でも待ってください!このボスが動き始め、さらに強力な形に変異しています!" +"しかし、待ってください!この問題はまだ解決していません...そして、さらに複雑な形へと進化しています!" #: Game.Levels.Multiplication.L08add_mul #. §0: $a$ @@ -1700,30 +1702,30 @@ msgid "" "In other words, for all natural numbers §0, §1 and §2, we have\n" "§3." msgstr "" -"加法は乗法に対して分配法則を満たします。\n" -"つまり、すべての自然数 §0, §1, §2 に対して\n" +"加法は乗法に関して分配法則が成り立ちます。\n" +"すなわち、任意の自然数 §0, §1, §2 について、以下の式が成立します。\n" "§3。" #: Game.Levels.Multiplication.L05one_mul #. §0: `one_mul m` #. §1: `1 * m = m` msgid "§0 is the proof §1." -msgstr "§0は§1の証明です。" +msgstr "§0 は §1 の証明を示す。" #: Game.Levels.Algorithm.L03add_algo2 msgid "making life simple" -msgstr "生活を単純に" +msgstr "よりシンプルな生活を実現する" #: Game.Levels.Implication.L05succ_inj2 #. §0: `four_eq_succ_three` msgid "" "Now rewrite §0 backwards to make the goal\n" "equal to the hypothesis." -msgstr "§0 を逆順に書き換えることで、目標を仮定に等しくします。" +msgstr "§0 を逆順に書き換えることで、目標と仮定を等価にします。" #: Game.Levels.Addition.L04add_assoc msgid "add_assoc (associativity of addition)" -msgstr "add_assoc (加法の結合律)" +msgstr "add_assoc (加法に関する結合法則)" #: Game.Levels.Addition.L04add_assoc #. §0: `add_assoc a b c` @@ -1736,15 +1738,15 @@ msgid "" "as §3, because the notation for addition is defined to be left\n" "associative." msgstr "" -"§0は§1の証明です。\n" -"Leanでは§2は左結合的に定義されるため、§3として表示されます。" +"§0 は §1 の証明です。\n" +"Lean では、加算の演算が左結合的に定義されているため、§2 は §3 として表示されます。" #: Game.Levels.Implication.L07intro2 #. §0: `intro h` msgid "Start with §0 to assume the hypothesis." -msgstr "§0 を使用して仮定を導入します。" +msgstr "まず、 §0 を使用して仮説を提示します。" -#no-translate +# no-translate #: Game.Levels.Multiplication.L04mul_comm msgid "mul_comm" msgstr "mul_comm" @@ -1754,7 +1756,7 @@ msgstr "mul_comm" msgid "" "We gave a pretty unsatisfactory proof of §0 earlier on; now give a nicer " "one." -msgstr "前回の §0 の証明は不十分でしたので、今回はより良い証明方法を示します。" +msgstr "これまでの§0の証明は不完全であり、より適切な証明方法を提示します。" #: Game.Levels.Addition.L01zero_add #. §0: $n = 0$ @@ -1768,10 +1770,10 @@ msgid "" "in your inventory, or of any assumption displayed above the goal,\n" "as long as it is of the form §1." msgstr "" -"現在、2つの目標があります。最初の目標を証明すると、次の目標に移ります。\n" +"現在、2つの目標があります。最初の目標を証明すると、次の目標に進みます。\n" "この最初の目標は基本ケース §0 です。\n" "\n" -"あなたのインベントリで表示されている任意の補題の証明、または目標の上に表示されている任意の仮定の証明を再書き換えすることができます。ただし、その形式は " +"あなたのインベントリに表示されている任意の補題の証明、または目標の上に表示されている任意の仮定の証明を再利用することができます。ただし、その形式は " "§1 である必要があります。" #: Game.Levels.Implication.L05succ_inj2 @@ -1802,9 +1804,11 @@ msgid "" "You can now change §2 to §3 with §4 or §5. You\n" "can usually stick to §6 unless you need real precision." msgstr "" -"§0は§1の証明なので、それが書き換えられた理由です。\n" -"さて、§4や§5を使用して§2を§3に変更することができます。よほどの精度が必要でなければ通常は§6を使用していれば問題ありません。" +"§0 は §1 の証明であるため、それが書き換えられた理由です。\n" +"§4 または §5 を使用して §2 を §3 に変更できます。 通常は §6 を使用すれば十分ですが、より厳密な操作が必要な場合は §4 または " +"§5 を使用してください。" +# no-translate #: Game.Levels.AdvAddition.L01add_right_cancel msgid "add_right_cancel" msgstr "add_right_cancel" @@ -1815,16 +1819,14 @@ msgstr "add_right_cancel" msgid "" "Now rewrite §0 backwards at §1\n" "to get the right hand side." -msgstr "" -"§1 に §0 を逆順で書き換え\n" -"右辺を得ます。" +msgstr "§1 を §0 で逆順に書き換えて、右辺を得ます。" #: Game.Levels.Algorithm.L08decide #. §0: `decide` msgid "" "You can read more about the §0 tactic by clicking\n" "on it in the top right." -msgstr "§0 タクティクについて詳しく知るには、右上をクリックしてください。" +msgstr "§0 タクティクの詳細については、右上のリンクからご確認ください。" #: Game.Levels.Implication.L08ne #. §0: `a ≠ b` @@ -1860,10 +1862,10 @@ msgid "" msgstr "" "§0は§1の*表記*です。\n" "\n" -"この数学的に有効な理由は、§2が真偽の主張であれば、§3は§4の論理的否定であるからです。実際、§5は偽であり、§6は真です!\n" +"このことが数学的に成り立つ理由は、§2が真偽に関する主張である場合、§3は§4の論理的な否定であるからです。実際、§5は偽であり、§6は真です!\n" "\n" -"このことから、§7は任意の推論§8と同じように扱うことができます。例えば、あなたの*目標*が§9のような形であれば、§10" -"で進展が可能です。また、仮定§11が§12のような形であれば、§13を行うことができます(ただし、§14が§15の証明である場合)です。" +"このことから、§7を任意の推論§8と同じように扱うことができます。例えば、あなたの*目標*が§9のような形であれば、§10" +"を用いて進展できます。また、仮定§11が§12のような形である場合、§13を行うことが可能です(ただし、§14が§15の証明である場合に限ります)。" #: Game.Levels.Multiplication.L09mul_assoc #. §0: `mul_assoc a b c` @@ -1882,15 +1884,14 @@ msgid "" "for example subtraction is not associative, as §5 is not\n" "equal to §6." msgstr "" -"§0は§1を証明します。\n" +"§0 は §1 の証明です。\n" "\n" -"Leanが§2と言った場合、それは§3を意味します。\n" +"Lean が §2 と言った場合、それは §3 を意味します。\n" "\n" -"Leanでは、§4は「純粋な思考」で証明できません:\n" -"例えば、減算は結合法則を満たさないため、§5は\n" -"§6とは等しくありません。" +"Lean では、§4 は「純粋な思考」だけでは証明できません:\n" +"例えば、減算は結合法則を満たさないため、§5 は §6 と等しくありません。" -#no-translate +# no-translate #: Game.Levels.AdvAddition.L03add_left_eq_self msgid "add_left_eq_self" msgstr "add_left_eq_self" @@ -1899,6 +1900,7 @@ msgstr "add_left_eq_self" msgid "level completed with warnings… 🎭" msgstr "レベルが警告付きで完了しました… 🎭" +#, fuzzy #: Game.Levels.Implication.L08ne #. §0: `h2` #. §1: `x = y → False` @@ -1910,7 +1912,7 @@ msgid "" "§2ing §3 either §4 or directly to the goal." msgstr "" "§0は§1の証明であることを覚えておいてください。\n" -"§3 の §2 は目標に直接または§4から行うことができます。" +"§2 §3 を、 §4 または直接目標に対して実行できます。" #: Game.Levels.AdvMultiplication.L10mul_right_eq_self #. §0: `apply mul_left_cancel at h` @@ -1931,12 +1933,12 @@ msgid "" "\n" "We'll prove it using a new and very useful tactic called §5." msgstr "" -"このレベルでは、高度な加算ワールドの§1の乗法的な類似である§0を証明します。戦略は、§2を証明し、その後、§4ワールドから§3" +"このレベルでは、高度な加算ワールドの§1の乗法的な類似である§0を証明します。その戦略は、まず§2を証明し、その後、§4ワールドから§3" "の補題を使用することです。\n" "\n" -"新しく非常に有用なタクティク§5を使用して証明します。" +"新しく非常に有用なタクティク§5を用いて証明を行います。" -#no-translate +# no-translate #: Game.Levels.Power.L06pow_add msgid "pow_add" msgstr "pow_add" @@ -1944,7 +1946,7 @@ msgstr "pow_add" #: Game.Levels.Tutorial.L06add_zero2 Game.Levels.LessOrEqual.L08le_total #. §0: `rw [add_zero c]` msgid "Try §0." -msgstr "§0を試しましょう。" +msgstr "§0 を実行してみましょう。" #: Game #. §0: `{0,1,2,3,4,...}` @@ -1991,26 +1993,26 @@ msgstr "" "\n" "# 読んでください。\n" "\n" -"インタラクティブ証明システムの使い方を学ぶには時間がかかります。テスト結果によれば、このゲームで最も効果的なのは、このようなヘルプテキストを読む人です。" -"\n" +"インタラクティブな定理証明システムの使い方を習得するには時間がかかります。テストの結果から、このゲームで最も効果的なのは、このようなヘルプテキストを読む" +"人です。\n" "\n" "開始するには、「チュートリアルワールド」をクリックしてください。\n" "\n" -"注意:これは、旧Lean 3版に存在しなかった複数のワールドを含む新しいLean 4版のゲームです。強い帰納法" -"ワールド、偶数/奇数ワールド、素数ワールドなどの新しいワールドの開発が進行中です;これらの状態を確認したいか、協力したい場合は、[" -"githubリポジトリのissues](https://github.com/leanprover-community/NNG4/issues) " -"をチェックしてください。\n" +"注意:これは、旧Lean 3版に存在しなかった複数のワールドを含む新しいLean " +"4版のゲームです。強い帰納法ワールド、偶数/" +"奇数ワールド、素数ワールドなどの新しいワールドの開発が進行中です;これらの状態を確認したいか、協力したい場合は、[GitHubリポジトリのissues]" +"(https://github.com/leanprover-community/NNG4/issues) をチェックしてください。\n" "\n" "## 追加情報\n" "\n" -"右上隅の三本線をクリックし、「ゲーム情報」を選択してリソース、リンク、Leanコミュニティとの交流方法を確認してください。" +"右上隅の三本線をクリックし、「ゲーム情報」を選択して、リソース、リンク、Leanコミュニティとの交流方法を確認してください。" #: Game.Levels.Power.L03pow_one Game.Levels.Power.L04one_pow #: Game.Levels.Power.L05pow_two #. §0: $a$ #. §1: $a ^ 1 = a$ msgid "For all naturals §0, §1." -msgstr "すべての自然数 §0 について、 §1 。" +msgstr "全ての自然数 §0 について、 §1 。" #: Game.Levels.Algorithm.L08decide #. §0: `decide` @@ -2033,12 +2035,12 @@ msgid "" msgstr "" "# 概要\n" "\n" -"§0は、解決アルゴリズムを見つけることができれば、目標を解決しようとします。\n" +"§0 は、解決可能なアルゴリズムが存在する場合に、目標を解決しようとします。\n" "\n" "## 例\n" "\n" -"型§1の項は、2つの自然数が等しいか異なるかを決定するアルゴリズムです。したがって、この項が作成され、§2に変換されると、§3タクティクは、§4" -"または§5のような目標を解決するためにそれを使用することができます。" +"型 §1 の項は、2 つの自然数が等しいか異なるかを判定するアルゴリズムです。したがって、この項が作成され、§2 に変換されると、§3 " +"タクティクは、§4 または §5 のような目標を解決するために使用できます。" #: Game.Levels.Implication.L04succ_inj #. §0: `apply` @@ -2048,7 +2050,7 @@ msgstr "" msgid "" "Now let's §0 our new theorem. Execute §1\n" "to change §2 to a proof of §3." -msgstr "それでは、新しい定理を証明しましょう。§0を実行して§1を変更し、§2を§3の証明にします。" +msgstr "それでは、新しい定理を §0 しましょう。§1 を実行することで、`§2` を `§3` の証明に変換します。" #: Game.Levels.Tutorial.L02rw #. §0: `repeat t` @@ -2095,26 +2097,23 @@ msgid "" msgstr "" "## 概要\n" "\n" -"§0 は目標に対して §1 のタクティクを繰り返し適用します。このタクティクを使用する必要はありませんが、時々処理が早くなります。\n" +"§0 は、目標に対して §1 のタクティクを繰り返し適用します。このタクティクは必須ではありませんが、場合によっては処理を高速化できます。\n" "\n" "## 例\n" "\n" "§2 は目標\n" "§3\n" -"を\n" -"§4\n" -"に変更します。\n" +"を §4 に書き換えます。\n" "\n" "---\n" "\n" "## 概要\n" "\n" -"§5 が成り立つ場合で、目標に複数の §6 がある場合、\n" -"§7 は第三の §8 を §9 に変更します。\n" +"§5 が成り立つ場合に、目標に複数の §6 が含まれる場合、§7 は第三の §8 を §9 に変更します。\n" "\n" "## 例\n" "\n" -"目標が §10 の場合、§11 は目標を §12 に変更します。一方で、§13 は目標を §14 に変更します。" +"目標が §10 の場合、§11 は目標を §12 に変更します。一方、§13 は目標を §14 に変更します。" #: Game.Levels.Tutorial.L01rfl msgid "The rfl tactic" @@ -2136,20 +2135,20 @@ msgid "" "§2.\n" "Try running §3 to solve this level!" msgstr "" -"Leanで独自のタクティクを作成することができます。\n" +"Leanでは、独自のタクティクを作成できます。\n" "以下のコード\n" "§0\n" -"は新しいタクティク§1の作成に使用され、§2を実行します。\n" -"§3を実行してこのレベルを解いてみてください!" +"は、§2を実行する、新しいタクティク§1を作成します。\n" +"§3を実行することで、この問題を解決できます!" #: Game.Levels.LessOrEqual.L10le_one #. §0: $x \\leq 1$ #. §1: $x = 0$ #. §2: $x = 1$ msgid "If §0 then either §1 or §2." -msgstr "§0なら、§1または§2。" +msgstr "もし §0 が真ならば、§1 または §2 のいずれかが真です。" -#no-translate +# no-translate #: Game.Levels.Addition.L02succ_add msgid "succ_add" msgstr "succ_add" @@ -2159,7 +2158,7 @@ msgstr "succ_add" #. §1: `b` #. §2: `d` msgid "Finally use a targeted §0 to switch §1 and §2." -msgstr "最終的に、§0を使用して§1と§2を切り替えてください。" +msgstr "最後に、§0 を使用して §1 と §2 を切り替えます。" #: Game.Levels.LessOrEqual.L11le_two #. §0: `≤` @@ -2171,10 +2170,10 @@ msgid "" "If you've already done Multiplication World, you're now ready for\n" "Advanced Multiplication World. Click on \"Home\" to access it." msgstr "" -"ナイス!\n" +"素晴らしい!\n" "\n" -"順序理論の開発の次のステップは、§0" -"と乗算の相互作用の理論を発展させることがです。既に乗算ワールドを学習した場合、現在では高度な乗算ワールドに進むことができます。\"ホーム\"" +"順序理論の開発における次のステップは、§0" +"と乗算の相互作用に関する理論を発展させることです。すでに「乗算ワールド」を学習済みの場合、現在では「高度な乗算ワールド」に進むことができます。「ホーム」" "をクリックしてアクセスしてください。" #: Game.Levels.Implication.L02exact2 @@ -2190,14 +2189,9 @@ msgid "" "the arguments to §1 (finding §2) then it replaces all occurrences of\n" "§3 it finds. Therefor, it did not rewrite §4, yet." msgstr "" -"再度やってみましょう!\n" +"再度実行してみてください。\n" "\n" -"§0は§1の引数を埋めようとします(§2を見つけます)。その後§3。因此,它还没有重写§4。" -"もう一度実行してください!\n" -"\n" -"§0 は、§1 の引数を埋める(§2 を見つける)ことを試み、\n" -"見つけたすべての §3 を置き換えます。そのため、\n" -"§4 はまだ書き換えられていません。" +"§0は、§1の引数を埋める(§2を見つけます)ことを試みます。その後、見つかったすべての§3を置換します。したがって、§4はまだ書き換えられていません。" #: Game.Levels.Multiplication.L07mul_add #. §0: `a` @@ -2206,9 +2200,9 @@ msgstr "" msgid "" "Induction on §0 is the most troublesome, then §1,\n" "and §2 is the easiest." -msgstr "帰納法は§0が最も難しく、次いで§1で、§2は最も簡単です。" +msgstr "帰納法における§0のケースが最も困難であり、次に§1、そして§2が最も容易です。" -#no-translate +# no-translate #: Game.Levels.Tutorial.L05add_zero Game.Levels.Tutorial.L06add_zero2 #: Game.Levels.Power.L01zero_pow_zero Game.Levels.Algorithm.L09decide2 #: Game.Levels.AdvAddition.L03add_left_eq_self @@ -2225,9 +2219,9 @@ msgid "" "To make it a bit less painful, I have unfolded all of the numerals for you.\n" "See if you can use §0 and §1 to prove this." msgstr "" -"2 + 2 ≠ 5 を完全に証明するのは、現在のツールで与えられた限りでは退屈です。\n" -"少し痛みが減るよう、すべての数値を展開しました。\n" -"§0 と §1 を使ってこの証明ができるか試してみてください。" +"現在のツールだけでは、2 + 2 ≠ 5 の完全な証明は困難です。\n" +"より簡単に証明できるよう、すべての数字を展開しました。\n" +"§0 および §1 を使用して、この証明を試みてください。" #: Game.Levels.LessOrEqual.L08le_total #. §0: $x$ @@ -2235,7 +2229,7 @@ msgstr "" #. §2: $x \\leq y$ #. §3: $y \\leq x$ msgid "If §0 and §1 are numbers, then either §2 or §3." -msgstr "もし§0と§1が数値ならば、§2または§3。" +msgstr "数値である§0と§1の場合、§2または§3のいずれかが真となる。" #: Game.Levels.LessOrEqual #. §0: `a ≤ b` @@ -2256,7 +2250,7 @@ msgid "" "\n" "Click on \"Start\" to proceed." msgstr "" -"このワールドで §0 を定義し、その標準的な事実を証明します。例えば、「§1 と §2 が成り立つなら §3 が成り立つ」などです。\n" +"このワールドで §0 を定義し、その標準的な事実を証明します。例えば、「§1 と §2 が成り立つならば §3 が成り立つ」などです。\n" "\n" "§4 の定義は「ある数 §5 が存在して、§6 " "が成り立つ」です。そのため、「存在」に関する定理を証明するタクティクと、「存在」に関する仮定を使うタクティクを学ぶ必要があります。\n" @@ -2270,9 +2264,9 @@ msgstr "" #. §2: $n$ #. §3: $a^{m + n} = a ^ m a ^ n$ msgid "For all naturals §0, §1, §2, we have §3." -msgstr "すべての自然数 §0, §1, §2 について、§3 が成り立ちます。" +msgstr "すべての自然数 §0, §1, §2 に対して、 §3 が成り立ちます。" -#no-translate +# no-translate #: Game.Levels.AdvMultiplication.L09mul_left_cancel msgid "mul_left_cancel" msgstr "mul_left_cancel" @@ -2283,8 +2277,8 @@ msgid "" "out a way\n" "of using it." msgstr "" -"前の証明を模倣してこれを行うこともできます \n" -"-- または、それを活用する方法を考え出すこともできます。" +"前の証明の手順を参考に、同様の方法でこの証明を行うことができます。\n" +"-- または、それを活用するための別の手段を見つけることも可能です。" #: Game.Levels.Tutorial.L03two_eq_ss0 #. §0: `0` @@ -2327,33 +2321,33 @@ msgid "" msgstr "" "## 数字の誕生。\n" "\n" -"Leanにおける数字は2つのルールで定義されます。\n" +"Leanにおける数字は、以下の2つのルールで定義されます。\n" "\n" "* §0 は数字です。\n" -"* §1 が数字である場合、§2 の *後続* §3 は数字です。\n" +"* もし §1 が数字ならば、§3 の *後続* §2 も数字です。\n" "\n" -"§4 の後続とは §5 の次の数字を意味します。数を数えることと、いくつかの小さな数字の名前を学びましょう。\n" +"§4 の「後続」とは、§5 の次の数字を意味します。数を数えることと、いくつかの小さな数字の名前を学びましょう。\n" "\n" "## 4まで数える。\n" "\n" -"§6 が数字であるため、§7 も数字です。この新しい数字を §8 と呼びましょう。同様に §9, §10, §11 " -"を定義します。これで十分な数を手に入れました。\n" +"§6 は数字なので、§7 も数字です。この新しい数字を §8 と呼びましょう。同様に §9, §10, §11 " +"を定義します。これで十分な数を手に入れることができます。\n" "\n" -"§12 が数字であることを証明する *証明* §13 があります。証明リストの右側の「012」タブを確認してください。\n" +"§12 が数字であることを示す *証明* §13 があります。証明リストの右側の「012」タブを確認してください。\n" "\n" "次に、0の後ろの後ろの数字である §14 を証明しましょう。" #: Game.Levels.Implication.L04succ_inj #. §0: `rw [← succ_eq_add_one] at h` msgid "Concretely: §0." -msgstr "具体的には: §0." +msgstr "具体的に:§0。" #: Game.Levels.Power.L01zero_pow_zero #. §0: `pow_zero a : a ^ 0 = 1` msgid "" "§0 is one of the two axioms\n" "defining exponentiation in this game." -msgstr "§0はこのゲームで指数関数を定義する2つの公理の1つです。" +msgstr "§0は、このゲームにおける指数関数の定義を定める公理のうちの1つです。" #: Game.Levels.Addition.L05add_right_comm #. §0: $a, b$ @@ -2363,14 +2357,14 @@ msgid "" "If §0 and §1 are arbitrary natural numbers, we have\n" "§2." msgstr "" -"任意の自然数§0と§1について、以下の関係が成り立ちます。\n" +"任意の自然数§0と§1について、以下の関係が成立します。\n" "§2。" #: Game.Levels.AdvMultiplication.L10mul_right_eq_self msgid "" "The lemma proved in the final level of this world will be helpful\n" "in Divisibility World." -msgstr "最終レベルで証明された補題は、整除世界で役立つでしょう。" +msgstr "最終段階で証明された定理は、整除ワールドの問題を解決する上で役立ちます。" #: Game.Levels.Power.L03pow_one #. §0: `pow_one a` @@ -2386,10 +2380,10 @@ msgid "" "defined to be §3 so it's §4, and to prove\n" "that this is equal to §5 you need to use induction somewhere." msgstr "" -"§0 は §1 です。\n" +"§0 は §1 を意味します。\n" "\n" -"ただし、これは定義によって正確には真ではありません:§2 は §3 と定義されており、§4 " -"となります。この等しいことを証明するには、どこかで帰納法を使用する必要があります。" +"ただし、これは定義によるものではありません:§2 は §3 と定義されているため、§4 " +"となり、これらが等しいことを証明するためには、どこかで数学的帰納法を用いる必要があります。" #: Game.Levels.AdvAddition.L04add_right_eq_self #. §0: `add_right_eq_self x y` @@ -2398,8 +2392,8 @@ msgid "" "§0 is the theorem that §1\n" "Two ways to do it spring to mind; I'll mention them when you've solved it." msgstr "" -"§0は、§1の定理です。\n" -"二つの方法が思い浮かびますが、あなたがそれを解いた後で述べます。" +"§0 は、§1 を証明する定理です。\n" +"この証明方法は2つ考えられますが、あなたが解決された後に説明します。" #: Game.Levels.Algorithm #. §0: $2+2=4$ @@ -2410,22 +2404,22 @@ msgid "" "\n" "Click on \"Start\" to proceed." msgstr "" -"§0や§1のような証明は手作業で行うと非常に退屈です。\n" -"アルゴリズムワールドでは、コンピュータにその作業を任せることを学びます。\n" +"手作業での証明、例えば §0 や §1 のようなものは、非常に手間がかかります。\n" +"アルゴリズムワールドでは、コンピュータにこれらの計算を委ねる方法を学習します。\n" "\n" -"\"開始\"をクリックして進みましょう。" +"「開始」ボタンをクリックして、次のステップに進んでください。" #: Game.Levels.Implication.L02exact2 msgid "" "If the goal is not *exactly* a hypothesis, we can sometimes\n" "use rewrites to fix things up." -msgstr "もし目標が*正確に*仮定でない場合、時としてリライトを使用して修正することができます。" +msgstr "目標が *厳密な* 仮説ではない場合、書き換えを利用して問題を解決できることがあります。" #: Game.Levels.Algorithm.L06is_zero msgid "" "See if you can take it from here. Look at the new lemmas and tactic\n" "available on the right." -msgstr "右に新しい補題とタクティクが追加されています。それらを活用してみてください。" +msgstr "右側に表示された、新たに定義された補題とタクティクをご利用ください。" #: Game.Levels.Algorithm.L02add_algo1 #. §0: `rw [add_left_comm b c]` @@ -2434,7 +2428,7 @@ msgstr "右に新しい補題とタクティクが追加されています。そ msgid "" "Now use §0 to switch §1 and §2 on the left\n" "hand side." -msgstr "§0 を使用して左側の §1 と §2 を入れ替えます。" +msgstr "§0 を使用して左側の §1 と §2 の位置を入れ替えます。" #: Game.Levels.Implication msgid "Implication World" @@ -2443,7 +2437,7 @@ msgstr "含意ワールド" #: Game.Levels.Tutorial.L06add_zero2 #. §0: `add_succ` msgid "Let's now learn about Peano's second axiom for addition, §0." -msgstr "ペアノの加法に関する第2の公理について、§0 を学んでみましょう。" +msgstr "それでは、ペアノの加法の第2の公理、§0 について学びましょう。" #: Game.Levels.Algorithm.L03add_algo2 Game.Levels.Algorithm.L04add_algo3 #. §0: $a, b,\\ldots h$ @@ -2453,7 +2447,7 @@ msgid "" "§1." msgstr "" "任意の自然数§0について、\n" -"§1." +"§1。" #: Game.Levels.Algorithm.L08decide #. §0: ``` @@ -2490,12 +2484,12 @@ msgid "" "Because the algorithm is formally verified to be correct, we can\n" "use it in Lean proofs. You can run the algorithm with the §1 tactic." msgstr "" -"自然数の等価性アルゴリズムの実装とその正確性の証明は、以下のようになります:\n" +"自然数の等価性アルゴリズムの実装とその正当性の証明は、以下のとおりです:\n" "\n" "§0\n" "\n" -"このLeanコードは、二つの自然数間の等価性を決定する形式的に検証されたアルゴリズムです。私たちは既にこのコードをバックヤードで入力しています。アルゴリ" -"ズムが形式的に正確性を保証されているため、Leanの証明内で使用できます。§1タクティクでアルゴリズムを実行できます。" +"このLeanコードは、二つの自然数間の等価性を決定する形式的に検証されたアルゴリズムです。私たちは既にこのコードをバックグラウンドで入力しています。アル" +"ゴリズムが形式的に正確であることを保証しているため、Leanの証明内で使用できます。「§1」タクティクを使用してアルゴリズムを実行できます。" #: Game.Levels.Implication.L06intro #. §0: `P → Q` @@ -2526,30 +2520,30 @@ msgid "" msgstr "" "## 概要\n" "\n" -"もし目標が§0である場合、§1は§2を仮定として導入し、目標を§3に変更します。数学的には、§4を証明するためには、§5を仮定し、その後§6" +"もし目標が§0である場合、§1は§2を仮定として導入し、目標を§3に変更します。数学的には、§4の証明のために、§5を仮定し、その後§6" "を証明すればよいということです。\n" "\n" "### 例:\n" "\n" -"もし目標が§7(Leanで書かれた§8)である場合、§9は§10という名前の仮定§11を導入し、目標は§12に変更されます。" +"もし目標が§7(Leanで記述された§8)である場合、§9は§10という名前の仮定§11を導入し、目標は§12に変更されます。" #: Game.Levels.Tutorial.L05add_zero #. §0: `rw [add_zero]` #. §1: `b + 0` #. §2: `b` msgid "§0 will change §1 into §2." -msgstr "§0は§1を§2に変換します。" +msgstr "§0 は §1 を §2 に変換します。" #: Game.Levels.Implication.L03apply #. §0: `apply h2 at h1` #. §1: `h1` #. §2: `y = 42` msgid "Start with §0. This will change §1 to §2." -msgstr "0を入力して開始します。すると、§1が§2に変更されます。" +msgstr "§0から開始します。これにより、§1は§2に変わります。" #: Game.Levels.Tutorial.L07add_succ msgid "[dramatic music]. Now are you ready to face the first boss of the game?" -msgstr "[ドラマティックな音楽] さあ、ゲーム最初のボス戦に臨む準備はできていますか?" +msgstr "[壮大なBGMが流れる]. 続いて、ゲームの最初のボスとの戦闘に備えましょう。" #: Game.Levels.AdvAddition #. §0: $x+y=x\\implies y=0$ @@ -2562,10 +2556,10 @@ msgid "" "\n" "Click on \"Start\" to proceed." msgstr "" -"高度な加算ワールド" -"では、基本的な加法に関するいくつかの事実(§0)を証明します。このワールドで証明された定理は、§1 世界で不等式の理論を構築するために使用されます。\n" +"高度な加算ワールドでは、基本的な加法に関するいくつかの事実(§0)の証明を行います。このワールドで証明される定理は、§1" +"ワールドで不等式の理論を構築するために使用されます。\n" "\n" -"「開始」をクリックして進みましょう。" +"「開始」をクリックして進んでください。" #: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero #. §0: `tauto` @@ -2658,13 +2652,13 @@ msgid "" msgstr "" "# 概要\n" "\n" -"§0 タクティクは、論理だけで解決できる目標(つまり、真偽表で解決できる目標)を解決します。\n" +"§0 タクティクは、論理のみを用いて解決できる目標(つまり、真偽表で解決できる目標)を解決します。\n" "\n" "## 詳細\n" "\n" -"§1 は *魔法を施すわけではない*!加算や乗算については何も知らないし、§2 すらも知らない。§3 が数について知っているのは、まず §4 " -"であり、二つ目は §5, §6, §7 などである。§8 の強みは *論理* にある。仮定 §9 と仮定 §10 があり、目標が §11 " -"の場合、§12 はこの目標を解決します。なぜなら、目標を解決するには不等式や加算に関する事実を知る必要がないし、必要なのは論理のルールだけです。\n" +"§1 は *魔法ではありません*!加算や乗算について何も知りませんし、§2 についても同様です。§3 が数について知っているのは、まず §4 " +"であり、次に §5, §6, §7 などです。§8 の強みは *論理* です。仮定 §9 と仮定 §10 があり、目標が §11 の場合、§12 " +"はこの目標を解決します。なぜなら、目標を解決するには不等式や加算に関する事実を知る必要がなく、必要なのは論理のルールだけです。\n" "\n" "## 例\n" "\n" @@ -2677,7 +2671,7 @@ msgstr "" "## 例\n" "\n" "仮定が §17 と §18 である場合、§19 は目標を解決します。なぜなら、§19 はあなたの仮定から §20 " -"を証明でき、したがって目標を証明できるからです(§21 は何かを推論するためのもの)。\n" +"を証明でき、したがって目標を証明できるからです(§21 は任意のものを推論できます)。\n" "\n" "## 例\n" "\n" @@ -2696,13 +2690,12 @@ msgstr "" #: Game.Levels.Tutorial.L03two_eq_ss0 #. §0: `rfl` msgid "Now finish the job with §0." -msgstr "" -"§0で作業を完了してください。" +msgstr "§0を使って作業を完了してください。" #: Game.Levels.AdvMultiplication.L10mul_right_eq_self #. §0: `nth_rewrite 2 [← mul_one a] at h` msgid "Reduce to the previous lemma with §0" -msgstr " §0 を使用して、直前の補題に変換します。" +msgstr "§0 を使用して、直前の補題に変換します。" #: Game.Levels.AdvMultiplication.L05le_mul_right #. §0: `le_mul_right a b` @@ -2713,9 +2706,9 @@ msgid "" "It's one way of saying that a divisor of a positive number\n" "has to be at most that number." msgstr "" -"§0は§1の証明です。\n" +"§0 は §1 の証明です。\n" "\n" -"これは正の数の約数がその数以下のことを表現する一方の方法です。" +"これは、正の数の約数はその数以下であることを示す一つの方法です。" #: Game.Levels.Power.L02zero_pow_succ #. §0: $m$ @@ -2737,7 +2730,7 @@ msgstr "x ≤ y または y ≤ x" #. §1: `c` #. §2: `x = 0 + c` msgid "To solve this level, you need to §0 a number §1 such that §2." -msgstr "このレベルを解くためには、§0 に数値 §1 を指定して §2 にする必要があります。" +msgstr "このレベルを解くには、§0 に数値を指定し、§1 とすることで、§2 が成り立つようにする必要があります。" #: Game.Levels.AdvMultiplication.L06mul_right_eq_one #. §0: `le_mul_right` @@ -2753,16 +2746,16 @@ msgid "" "prove it, and then you'll have a new hypothesis which you can apply\n" "§5 to." msgstr "" -"§0 を使いたいですが、持っていない §1 という仮定が必要です。§2 を実行してください(§3 を §4 " -"で入力できます)。\n" -"求められるまでは証明が必要ですが、証明後には新しい仮定が得られ、それを §5 で適用できます。" +"§0 の使用を試みますが、それには §1 という仮定が必要です。しかし、現時点ではその仮定は用意されていません。§2 を実行してください( " +"§4 を入力すると §3 になります)。\n" +"証明が必要ですが、証明後には新しい仮定が得られ、それを §5 で利用できます。" #: Game.Levels.Implication.L03apply #. §0: $x=37$ #. §1: $x=37\\implies y=42$ #. §2: $y=42$ msgid "If §0 and we know that §1 then we can deduce §2." -msgstr "もし§0であり、§1を知っているなら、§2を導くことができます。" +msgstr "§0が真であることと、§1について知っていれば、§2を導き出すことができます。" #: Game.Levels.Tutorial.L01rfl #. §0: `rfl` @@ -2826,11 +2819,11 @@ msgid "" msgstr "" "## 概要\n" "\n" -"§0は、形式§1の目標を証明します。\n" +"§0 は、形式 §1 のような目標を証明します。\n" "\n" -"つまり、§2タクティクは、§4と§5が*完全に一致*する場合、形式§3の任意の目標を閉じます。\n" +"つまり、§2 タクティクは、§4 と §5 が *完全に同一* である場合に、形式 §3 の任意の目標を解決します。\n" "\n" -"§6は、「等号の反射律」の略です。\n" +"§6 は、「等号の反射律」の略です。\n" "\n" "## 例\n" "\n" @@ -2838,19 +2831,18 @@ msgstr "" "\n" "§7\n" "\n" -"§8はそれを閉じます。しかし、もし目標が§9のように見える場合、§10は機能しません。なぜなら、§11と§12" -"は常に数値としては等しいですが、項としては等しくないからです。§13と完全に一致する項は§14だけです。\n" +"§8 でそれを解決できます。しかし、もし目標が §9 のように見えた場合、§10 は機能しません。なぜなら、§11 と §12 " +"は数値としては常に等しいですが、項としては等しくないからです。§13 と完全に一致する項は §14 だけです。\n" "\n" "## 詳細\n" "\n" -"§15は「等号の反射律」の略です。\n" +"§15 は、「等号の反射律」の略です。\n" "\n" -"## ゲーム実装\n" +"## ゲームの実装\n" "\n" -"注意していただきたいのは、当の§16は、コア Lean " -"と§17" -"で使用されるバージョンよりも弱く、教育的な目的のためにそう設計されていることです。数学的には、論理的等価と定義的等価を区別しない理由は、定義の考え方がタ" -"イプ理論家と異なるからです(数学的には§18と§19はどちらも「事実」であり、加法の定義などは誰がどう思っても構いません)。" +"注意点として、当の §16 は、コア Lean および §17 " +"で使用されているバージョンよりも弱く、教育目的のためにそう設計されています。数学的には、論理的等価と定義的等価を区別しない理由は、定義の考え方がタイプ理" +"論家と異なるからです(数学的には §18 と §19 はどちらも「事実」であり、加法の定義などは誰がどう思っても構いません)。" #: Game msgid "" @@ -2910,11 +2902,10 @@ msgstr "" "\n" "## 進捗保存\n" "\n" -"ゲームはあなたの進捗をローカルブラウザストレージに保存します。\n" -"これを削除すると、進捗は失われます!\n" +"ゲームは、あなたの進捗をローカルブラウザストレージに保存します。\n" +"これを削除すると、進捗が失われます!\n" "\n" -"注意: " -"多くのブラウザでは、クッキーを削除するとローカルストレージ(または「ローカルサイトデータ」)もクリアされます。進捗をダウンロードしてから削除するこ" +"注意:多くのブラウザでは、クッキーを削除するとローカルストレージ(または「ローカルサイトデータ」)もクリアされます。進捗をダウンロードしてから削除するこ" "とを確認してください!\n" "\n" "## 謝辞\n" @@ -2939,7 +2930,8 @@ msgstr "" "Zulipチャットはプロフェッショナルな研究フォーラムです。そこでフルネームを使用し、トピックに集中し、丁寧に接してください。より非公式な場所(例えば、" "自然数ゲームのメモを投稿したい場合)を探している場合は、[Lean Discord](https://discord.gg/WZ9bs9UCvx) " "に移動してください。\n" -"(訳注: これらはいずれも外国語のコミュニティです。もし日本語で質問をしたいのであれば、[Lean の日本語コミュニティ](https://lean-ja.github.io/about/)上で質問すると良いでしょう。)\n" +"(訳注: これらはいずれも外国語のコミュニティです。もし日本語で質問をしたいのであれば、[Lean " +"の日本語コミュニティ](https://lean-ja.github.io/about/)上で質問すると良いでしょう。)\n" "\n" "または、問題やバグが発生した場合は、GitHubの問題をオープンすることもできます:\n" "\n" @@ -2960,16 +2952,17 @@ msgid "" "which is logically equivalent but much easier to prove. Remember that §2\n" "is notation for §3. Click on §4 if you need hints." msgstr "" -"この部分を仮定§0と目標§1に簡略化したいです。\n" +"この部分を仮定§0と目標§1に簡略化したいと考えています。\n" "これは論理的に同等ですが、証明がはるかに簡単になります。\n" -"§2は§3の表記法です。ヒントが必要な場合は§4 (訳注: \"より多くのヘルプを表示!\")をクリックしてください。" +"§2は§3の表記法です。ヒントが必要な場合は§4 (訳注:\"より多くのヘルプを表示!\")をク" +"リックしてください。" #: Game.Levels.Tutorial.L05add_zero #. §0: `repeat rw [add_zero]` msgid "" "Those of you interested in speedrunning the game may want to know\n" "that §0 will do both rewrites at once." -msgstr "ゲームのスピードランに興味がある方は、§0 が一度に両方のリライトを行うことを知っておくと良いでしょう。" +msgstr "ゲームのスピードランにご興味のある方は、`§0` は一度に両方のリライトを実行できます。" #: Game.Levels.Tutorial.L07add_succ #. §0: $0$ @@ -3009,16 +3002,15 @@ msgid "" "§18 (numerals) tabs under \"Theorems\" on the right to\n" "see which proofs you can rewrite." msgstr "" -"Leanの数は、§0 " -"または後続数のいずれかです。§1を加算する方法は分かっていますが、後続数を加算する方法はまだ分かりません。例えば、§2が分かっているとします。では、§3" -"の答えは何になるべきでしょうか? §4は §5よりも1大きいので、§6は §7、つまり §8よりも1大きい数になるべきです。より一般的には、§9は " -"§10になります。この事実を補題として追加しましょう。\n" +"Leanの数は、§0または後続数のいずれかです。§1を加算する方法は分かっていますが、後続数を加算する方法はまだ分かりません。例えば、§2" +"が分かっているとします。では、§3の答えは何になるべきでしょうか? §4は §5よりも1大きいので、§6は §7、つまり " +"§8よりも1大きい数になるべきです。より一般的には、§9は §10になります。この事実を補題として追加しましょう。\n" "\n" "* §11\n" "\n" "もし目標に §12が見つかったら、通常 §13は良いアイデアです。\n" "\n" -"次に、§14を証明しましょう。§15を図に取り入れる方法を考え、その後 §16を証明します。\"Theorems\" の右側にある `+` (加算) と " +"次に、§14を証明しましょう。§15を図に取り入れる方法を考え、その後 §16を証明します。「Theorems」の右側にある `+` (加算) と " "`012` (数字) のタブを切り替えて、どの証明を書き換えることができるか確認します。" #: Game.Levels.Algorithm.L06is_zero @@ -3031,7 +3023,7 @@ msgid "" msgstr "" "# 概要\n" "\n" -"§0 は目標 §1 を解決します。" +"§0 は、目標 §1 を解決します。" #: Game.Levels.Power.L02zero_pow_succ #. §0: $0^0=1$ @@ -3041,8 +3033,7 @@ msgstr "" msgid "" "Although §0 in this game, §1 if §2, i.e., if\n" "§3 is a successor." -msgstr "" -"このゲームにおいて §0 であり、§1 は §2 である場合、すなわち §3 が後者である場合。" +msgstr "このゲームでは、§0 が成立し、かつ §1 が §2 となる場合、つまり §3 がその後の値である場合に、以下のことが言えます。" #: Game.Levels.AdvAddition.L05add_right_eq_zero #. §0: `b = 0` @@ -3051,7 +3042,7 @@ msgstr "" msgid "" "Here we want to deal with the cases §0 and §1 separately,\n" "so start with §2." -msgstr "ここでは§0と§1のケースを別々に扱いたいので、まずは§2から始めます。" +msgstr "ここでは§0と§1のケースについて個別に検討するため、まず§2から説明します。" #: Game.Levels.AdvMultiplication.L09mul_left_cancel #. §0: `hd` @@ -3064,8 +3055,8 @@ msgid "" "The inductive hypothesis §0 is \"For all natural numbers §1, §2\".\n" "You can §3 it §4 any hypothesis of the form §5." msgstr "" -"帰納的仮定 §0 は \"全ての自然数 §1 について §2\" です。\n" -"あなたは 仮定 §5 の形に対して、 §3 できます。\n" +"帰納的仮定 §0 は「全ての自然数 §1 について §2」です。\n" +"あなたは、仮定 §5 の形式に対して、これを§3できます。" "(訳注: 原文は \"You can §3 it §4 any hypothesis of the form §5.\" です。\n" "つまり、 §3 §0 §4 §5 のような形で使用できます。)" @@ -3074,7 +3065,9 @@ msgid "" "You can do induction on any of the three variables. Some choices\n" "are harder to push through than others. Can you do the inductive step in\n" "5 rewrites only?" -msgstr "任意の3つの変数について帰納法を適用できます。いくつかの選択肢はもう少し難しいかもしれません。5回の書き換えで帰納的ステップを実行できるでしょうか?" +msgstr "" +"任意の3つの変数に対して、帰納法を適用することができます。しかし、すべての選択肢が容易ではありません。5" +"回の書き換えで、帰納的ステップを実行することは可能でしょうか?" #: Game.Levels.Addition.L01zero_add #. §0: `0 + «{d}»` @@ -3082,7 +3075,7 @@ msgstr "任意の3つの変数について帰納法を適用できます。い msgid "" "At this point you see the term §0, so you can use the\n" "induction hypothesis with §1." -msgstr "現在、項§0が表示されているので、項§1を使用して帰納法の仮定を適用することができます。" +msgstr "現在、項§0が表示されているため、項§1を用いて帰納法の仮定を適用できます。" #: Game.Levels.Power.L01zero_pow_zero #. §0: `0 ^ 0` @@ -3095,17 +3088,16 @@ msgid "" "Check out the *Pow* tab in your list of theorems\n" "to see the new proofs which are available." msgstr "" -"数学者の間で、§0 は何であるかについて時々議論があります;\n" -"その答えは、もちろん、定義によって異なります。このゲームでは、§1 です。証明できるか試してみてください。\n" +"数学者は、§0 が何であるかを議論することがあります。その答えは、定義によって異なります。このゲームでは、§1 です。証明できるかを試してみてください。\n" "\n" -"証明一覧のタブから *Pow* (訳注: `^`) をチェックして、利用可能な新しい証明を確認してください。" +"証明一覧のタブから *Pow* (訳注: `^`) を選択して、利用可能な新しい証明を確認してください。" #: Game.Levels.Implication.L09zero_ne_succ #. §0: `1` #. §1: `succ 0` #. §2: `h` msgid "Now change §0 to §1 in §2." -msgstr "0 を §1 に変更してください。" +msgstr "§2 の §0 を §1 に変更してください。" #: Game.Levels.Implication.L05succ_inj2 #. §0: `apply t at h` @@ -3119,15 +3111,16 @@ msgid "" "view by\n" "clicking on the tactic in the list on the right." msgstr "" -"多くの人は§0を容易に感じますが、一部の人々は§1を混乱させることがあります。\n" -"混乱する場合は、証明を前向きに進めましょう。\n" +"多くの人は§0を容易に理解しますが、一部の人々は§1について混乱することがあります。\n" +"もし混乱する場合は、証明を前向きに進めてください。\n" "\n" "§2" -"のタクティクについては、そのドキュメンテーションで詳しく説明しています。タクティクをリストの右側でクリックすることでドキュメンテーションを表示できます。" +"のタクティクについては、その詳細な説明がドキュメンテーションに記載されています。リストの右側にあるタクティクをクリックすることで、ドキュメンテーションを" +"表示できます。" #: Game.Levels.Algorithm.L03add_algo2 msgid "Let's now make our own tactic to do this." -msgstr "自分独自のタクティクを作成しましょう。" +msgstr "それでは、独自のタクティクを作成して、この機能を実装してみましょう。" #: Game.Levels.Tutorial.L02rw #. §0: `h` @@ -3316,81 +3309,81 @@ msgid "" msgstr "" "## 概要\n" "\n" -"§0が等式§1の証明である場合、§2は目標内のすべての§3を§4に変更します。これは「代入」を行う方法です。\n" +"もし §0 が等式 §1 の証明であるならば、§2 は目標内のすべての §3 を §4 に変更します。これは「代入」を行う方法です。\n" "\n" "## バリエーション\n" "\n" -"* §5 (目標内の§6を§7に変更;バックアローは§8または§9を入力することで取得します。)\n" +"* §5 (目標内の §6 を §7 に変更;バックアローは §8 または §9 を入力することで取得します。)\n" "\n" "* §10 (一連の変換)\n" "\n" -"* §11 (仮定§14内を§12から§13に変更)\n" +"* §11 (仮定 §14 内を §12 から §13 に変更)\n" "\n" -"* §15 (目標と2つの仮定内を§16から§17に変更;§18のシンボルは§19で取得します。)\n" +"* §15 (目標と 2 つの仮定内を §16 から §17 に変更;§18 のシンボルは §19 で取得します。)\n" "\n" -"* §20は§21を§22に変更し続けるまで、§23の一致がなくなるまで変更します。\n" +"* §20 は §21 を §22 に変更し続けるまで、§23 との一致がなくなるまで変更します。\n" "\n" -"* §24は目標内の第2の§25のみを§26に変更します。\n" +"* §24 は目標内の第 2 の §25 のみ §26 に変更します。\n" "\n" "### 例:\n" "\n" -"仮定§27があり、目標が§28の場合、\n" +"仮定 §27 があり、目標が §28 の場合、\n" "\n" "§29\n" "\n" -"は目標を§30に変更し、\n" +"は目標を §30 に変更し、\n" "\n" "§31\n" "\n" -"は目標を§32に変更し、\n" +"は目標を §32 に変更し、\n" "\n" -"§33で解決できます。\n" +"§33 で解決できます。\n" "\n" "### 例:\n" "\n" -"仮定を変更することもできます。例えば、仮定が2つある場合、\n" +"仮定を変更することもできます。例えば、仮定が 2 つある場合、\n" "\n" "§35\n" "\n" -"§36は§37を§38に変換します。\n" +"§36 は §37 を §38 に変換します。\n" "\n" "## 一般的なエラー\n" "\n" -"* クエート記号が必要です。§39は常に正しくありません。\n" +"* クオート記号が必要です。§39 は決して正しくありません。\n" "\n" -"* §40が等式(形式§41のステートメント)の証明でない場合、例えば§42が関数または推論である場合、\n" +"* §40 が等式 (形式 §41 のステートメント) の証明でない場合、例えば §42 が関数または推論である場合、\n" "\n" -"§43は使用したいタクティクではありません。例えば、\n" +"§43 は使用したいタクティクではありません。例えば、\n" "\n" -"§44は常に正しくありません:§45は定理のステートメントであり、\n" +"§44 は常に正しくありません:§45 は定理のステートメントであり、\n" "\n" -"証明ではありません。§46が証明である場合、§47は機能します。\n" +"証明ではありません。§46 が証明である場合、§47 は機能します。\n" "\n" "## 詳細\n" "\n" -"§48タクティクは「代入」を行う方法です。このタクティクを使用できる2つの異なる状況があります。\n" +"§48 タクティクは「代入」を行う方法です。このタクティクを使用できる 2 つの異なる状況があります。\n" "\n" -"1) 基本的な使用法:§49が仮定または定理の証明であり、目標内に1つ以上の§50が含まれている場合、\n" +"1) 基本的な使用法:§49 が仮定または定理の証明であり、目標内に 1 つ以上の §50 が含まれている場合、\n" "\n" -"§51はそれら全てを§52に変更します。タクティクは目標内に§53が存在しない場合にエラーを発生させます。\n" +"§51 はそれら全てを §52 に変更します。タクティクは目標内に §53 が存在しない場合にエラーを発生させます。\n" "\n" "2) 高度な使用法:定理の証明から得られる仮定はしばしば欠落している部分を持っています。例えば、\n" "\n" -"§54は§55であることを証明しており、\n" +"§54 は §55 を証明しており、\n" "\n" -"§56は実際には関数であり、\n" +"§56 は実際には関数であり、\n" "\n" -"§57は入力です。この状況では、\n" +"§57 は入力です。この状況では、\n" "\n" -"§58は目標内を検索し、\n" +"§58 は目標内を検索し、\n" "\n" -"§59のサブタームを見つけた瞬間に、\n" +"§59 のサブタームを見つけた瞬間に、\n" "\n" -"§60を§61に固定し、\n" +"§60 を §61 に固定し、\n" "\n" -"すべての§62を§63に変更します。\n" +"すべての §62 を §63 に変更します。\n" "\n" -"演習:なぜ§64は項§65を§66に変更するのか考えてみてください。\n" +"演習:なぜ §64 は項 §65 を §66 に変更するのか考えてみてください。\n" "\n" "等式の証明の名前を忘れた場合は、\n" "\n" @@ -3398,31 +3391,31 @@ msgstr "" "\n" "## 対象的な使用法\n" "\n" -"目標が§67であり、\n" +"目標が §67 であり、\n" "\n" -"§68を§69に書き換えることを望む場合、\n" +"§68 を §69 に書き換えることを望む場合、\n" "\n" -"§70はLeanが別の加算を見つけ、\n" +"§70 は Lean が別の加算を見つけ、\n" "\n" -"その入力を交換するためには機能しません。§71を使用して、\n" +"その入力を交換するためには機能しません。 §71 を使用して、\n" "\n" -"Leanが§72を§73に書き換えることを保証します。これは、\n" +"Lean が §72 を §73 に書き換えることを保証します。これは、\n" "\n" -"§74は§75を証明しており、\n" +"§74 は §75 を証明しており、\n" "\n" -"§76は§77を証明しており、\n" +"§76 は §77 を証明しており、\n" "\n" -"§78は§79を証明しているためです。\n" +"§78 は §79 を証明しているためです。\n" "\n" -"§80が成立する場合、\n" +"§80 が成立する場合、\n" "\n" -"§81はすべての§82を§83に変換します。\n" +"§81 はすべての §82 を §83 に変換します。\n" "\n" -"§84の37番目の出現のみを§85に変更したい場合は、\n" +"§84 の 37 番目の出現のみを §85 に変更したい場合は、\n" "\n" -"§86を行います。" +"§86 を実行します。" -#no-translate +# no-translate #: Game.Levels.AdvAddition.L06add_left_eq_zero msgid "add_left_eq_zero" msgstr "add_left_eq_zero" @@ -3443,14 +3436,13 @@ msgid "" "the other way around. Look at the docs for §2 for an explanation. Type §3 " "with §4." msgstr "" -"任意の定理 §1 に §0 を先頭に付けることで、逆方向に書き換えることができます。" -"詳細は §2 のドキュメントを参照してください。§4をタイプして §3" -"を入力してください。" +"任意の定理 §1 の先頭に §0 を付与することで、その定理を逆方向に記述することができます。詳細については、§2 " +"のドキュメントをご参照ください。「§4」と入力し、その後「§3」を入力してください。" #: Game.Levels.Implication.L05succ_inj2 #. §0: `exact h` msgid "You can now finish with §0." -msgstr "§0 で完了しましょう。" +msgstr "これで §0 の部分を完了してください。" #: Game msgid "Natural Number Game" @@ -3520,27 +3512,28 @@ msgid "" msgstr "" "## 概要\n" "\n" -"もし§0が数値である場合、§1は目標を二つに分割し、一つには§2、もう一つには§3が含まれます。\n" +"もし §0 が数値である場合、§1 は目標を二つに分割し、一つには §2 を、もう一つには §3 を含めます。\n" "\n" -"もし§4が証明(例えば、仮定)である場合、§5はその証明を証明に使用された部分に分割します。\n" +"もし §4 が証明(例えば仮定)である場合、§5 はその証明に使用された部分に分割します。\n" "\n" "## 例\n" "\n" -"もし§6が数値である場合、§7は目標を二つに分割し、一つには§8を0に置き換えたもの、もう一つには§9を§10" -"に置き換えたものが含まれます。これは数学的な考え方に即して、すべての自然数は§11または後続数であることを示します。\n" +"もし §6 が数値である場合、§7 は目標を二つに分割し、一つには §8 を 0 に置き換えたもの、もう一つには §9 を §10 " +"に置き換えたものが含まれます。これは、すべての自然数が §11 または後続数であることを示す数学的な考え方に合致します。\n" "\n" "## 例\n" "\n" -"もし§12が仮定である場合、§13は一つの目標を二つに分割し、一つには§14という仮定が含まれ、もう一つには§15という仮定が含まれます。\n" +"もし §12 が仮定である場合、§13 は一つの目標を二つに分割し、一つには §14 という仮定が含まれ、もう一つには §15 " +"という仮定が含まれます。\n" "\n" "## 例\n" "\n" -"もし§16が仮定である場合、§17は一つの目標を無数の目標に分割しません。なぜなら、§18" +"もし §16 が仮定である場合、§17 は一つの目標を無数の目標に分割しません。なぜなら、§18 " "の証明方法が存在しないからです!そして、目標が残っていない場合、レベルは終了します。\n" "\n" "## 例\n" "\n" -"もし§19が仮定である場合、§20は新しい数値§21と証明§22を作成します。これは§23の定義が§24であるからです。" +"もし §19 が仮定である場合、§20 は新しい数値 §21 と証明 §22 を作成します。これは §23 の定義が §24 であるからです。" #: Game.Levels.LessOrEqual.L04le_trans #. §0: `«{ha}»` @@ -3551,7 +3544,7 @@ msgstr "" msgid "" "Now §0 is a proof that §1, and §2 has vanished. Similarly, you can destruct\n" "§3 into its parts with §4." -msgstr "現在、§0 は §1 の証明です。また、§2 は消えました。同様に、§4 を使用して §3 をその部分に分解できます。" +msgstr "現在、§0 は §1 の証明を示します。また、§2 は消えました。同様に、§4 を用いて §3 を構成要素に分解することができます。" #: Game.Levels.Implication.L04succ_inj msgid "succ_inj : the successor function is injective" @@ -3575,10 +3568,10 @@ msgid "" msgstr "" "## 精密な書き換え\n" "\n" -"前のレベルでは、§0 と §1 があり、\n" -"§2 は最初に見つけた§3を変更しました。\n" +"直前のレベルでは、§0 と §1 が存在し、\n" +"§2 は最初に見つかった §3 を変更しました。\n" "Lean に §4 を最初に変更させる方法を学びましょう。\n" -"§5 に明示的な入力を与えることで実現します。" +"これを行うには、§5 に明示的な入力を与えます。" #: Game.Levels.LessOrEqual.L01le_refl #. §0: `a ≤ b` @@ -3597,17 +3590,16 @@ msgid "" "make progress with the §3 tactic, and if you have a hypothesis\n" "§4, you can make progress with §5." msgstr "" -"§0は§1の記号表記です。\n" +"§0は§1の表記です。\n" "\n" -"このゲームには負の数が存在しないので、この定義は数学的に有効です。\n" +"このゲームには負の数が存在しないため、この定義は数学的に有効です。\n" "\n" -" これは、あなたが§2という形式の目標を持っている場合、\n" -"§3のタクティクを使って進展できることを意味します。また、仮定§4を持っている場合、§5のタクティクを使って進展できます。" +"これにより、あなたが§2という形式の目標を持つ場合、§3の手法を用いて進展できます。また、仮定§4を持っている場合、§5の手法を用いて進展できます。" #: Game.Levels.Implication.L06intro #. §0: `exact h` msgid "Now §0 finishes the job." -msgstr "§0 で完了させましょう。" +msgstr "これで §0 が目的を達成します。" #: Game.Levels.LessOrEqual.L01le_refl #. §0: `«{x}» ≤ «{x}»` @@ -3616,16 +3608,14 @@ msgstr "§0 で完了させましょう。" msgid "" "The reason §0 is because §1.\n" "So you should start this proof with §2." -msgstr "" -"§0は§1であるため成立します。\n" -"従って、この証明は§2から始めるべきです。" +msgstr "理由は§0であるため、この命題は正しいと言えます。したがって、この証明は§2から始めるのが適切です。" #: Game.Levels.LessOrEqual.L04le_trans Game.Levels.LessOrEqual.L06le_antisymm #. §0: $x \\leq y$ #. §1: $y \\leq z$ #. §2: $x \\leq z$ msgid "If §0 and §1, then §2." -msgstr "もし§0 と §1 なら §2。" +msgstr "もし §0 かつ §1 が真ならば、§2 は真である。" #: Game.Levels.AdvMultiplication.L05le_mul_right #. §0: ``` @@ -3639,18 +3629,18 @@ msgid "" "Here's what I was thinking of:\n" "§0" msgstr "" -"これが私の考えでした:\n" +"以下のように考えていました:\n" "§0" #: Game.Levels.Tutorial.L08twoaddtwo #. §0: `nth_rewrite 2 [two_eq_succ_one]` #. §1: `rw [two_eq_succ_one]` msgid "§0 is I think quicker than §1." -msgstr "§0は、§1より迅速です。" +msgstr "§0 は、§1 よりも高速であると推測されます。" #: GameServer.RpcHandlers msgid "intermediate goal solved! 🎉" -msgstr "中間目標解決しました!🎉" +msgstr "中間目標が達成されました!🎉" #: Game.Levels.Addition.L04add_assoc #. §0: $a, b$ @@ -3661,8 +3651,8 @@ msgid "" "In other words, if §0 and §1 are arbitrary natural numbers, we have\n" "§2" msgstr "" -"自然数の集合において、加法は結合法則を満たします。\n" -"つまり、任意の自然数 §0 と §1 に対して、以下の関係が成り立ちます。\n" +"自然数全体の集合においては、加算は結合法則に従います。\n" +"言い換えれば、任意の自然数 §0 と §1 が与えられたとき、以下の関係が成り立ちます。\n" "§2" #: Game.Levels.LessOrEqual.L04le_trans @@ -3670,7 +3660,7 @@ msgstr "" msgid "" "Now you need to figure out which number to §0. See if you can take it from " "here." -msgstr "今度は §0 の部分に何を入力するか考えてください。ここから進められるようなら自分で進めてみてください。" +msgstr "今度は、 §0 の部分にどのような数値を入力すれば良いか検討してください。この部分から推論を進めることができれば、ご自身で試してみてください。" #: Game.Levels.Implication.L03apply #. §0: `t : P → Q` @@ -3729,21 +3719,22 @@ msgid "" msgstr "" "## 概要\n" "\n" -"もし§0が§1の証明であり、§2が§3の証明であるなら、§4は§5を§6の証明に変更します。つまり、§7が真であることを知っているなら、§8から§9" -"が真であることを導くことができます。\n" +"もし §0 が §1 の証明であり、 §2 が §3 の証明である場合、§4 は §5 を §6 の証明に変換します。つまり、§7 " +"が真であることを知っている場合、§8 から §9 が真であることを導くことができます。\n" "\n" -"もし*目標*が§10であるなら、§11は「逆向きに議論」し、目標を§12に変更します。ここでの考え方は、§13を証明したいなら、§14から§15" -"を証明すれば十分であるので、目標を§16の証明に減らすことができるということです。\n" +"もし *目標* が §10 である場合、§11 は「逆向きに推論」し、目標を §12 に変更します。この手法は、§13 を証明するために §14 から " +"§15 を証明すれば十分であるという考えに基づいています。したがって、目標を §16 の証明に簡略化できます。\n" "\n" "### 例:\n" "\n" -"§17が§18の証明であるとします。\n" +"§17 が §18 の証明であるとします。\n" "\n" -"もし仮定§19があるなら、§20は§21を§22に変更します。§23のように書くこともできますが、Leanは§24の入力を見抜くことができます。\n" +"仮定として §19 がある場合、§20 は §21 を §22 に変更します。 §23 のような記述も可能です。ただし、Lean は §24 " +"の入力を見抜くことができます。\n" "\n" "### 例\n" "\n" -"もし目標が§25であるなら、§26は目標を§27に変更します。" +"もし目標が §25 である場合、§26 は目標を §27 に変更します。" #: Game.Levels.LessOrEqual.L08le_total #. §0: `cases «{h2}» with e he` @@ -3755,7 +3746,7 @@ msgstr "§0 をしましょう。" msgid "" "§0 is just as fiddly to prove by induction; but there's a trick\n" "which avoids it. Can you spot it?" -msgstr "§0は帰納法で証明するのと同じくらい手間がかかりますが、回避するトリックがあります。見つけることができますか?" +msgstr "§0を帰納法で証明することは、同様に複雑です。しかし、それを利用せずに証明できる方法があります。それは何かを見抜けますか?" #: Game.Levels.Implication.L07intro2 #. §0: `repeat rw [← succ_eq_add_one] at h` @@ -3764,7 +3755,7 @@ msgstr "§0は帰納法で証明するのと同じくらい手間がかかりま msgid "" "Now §0 is the quickest way to\n" "change §1 to §2." -msgstr "§0は§1を§2に変更する最も迅速な方法です。" +msgstr "現在、§0 は §1 を §2 に変更するための最も効率的な手段です。" #: Game.Levels.LessOrEqual.L03le_succ_self #. §0: ``` @@ -3779,10 +3770,10 @@ msgid "" "\n" "This works because §1 is a proof of §2." msgstr "" -"以下は2行の証明です:\n" +"以下は2行で構成された証明です:\n" "§0\n" "\n" -"これは §1 が §2 の証明であるため動作します。" +"これは、§1が§2を証明するため有効です。" #: Game.Levels.Algorithm.L06is_zero #. §0: `intro h` @@ -3791,7 +3782,7 @@ msgstr "" msgid "" "Start with §0 (remembering that §1 is just notation\n" "for §2)." -msgstr "§0 から始めましょう(§1 は §2 の表記法であることを覚えておいてください)。" +msgstr "§0 から開始してください(§1 が §2 の表記法であるという点にご留意ください)。" #: Game.Levels.Addition.L01zero_add #. §0: `n` @@ -3800,7 +3791,7 @@ msgid "" "You can start a proof by induction on §0 by typing:\n" "§1." msgstr "" -"§0について帰納法で証明を開始するためには以下のように入力します:\n" +"帰納法を用いて§0について証明を開始するには、次のように入力してください。\n" "§1." #: Game.Levels.Tutorial.L08twoaddtwo @@ -3840,10 +3831,10 @@ msgstr "" "\n" "§0\n" "\n" -"オプション:自分でこの証明を実行することもできます。右上の§1" -"ボタンをクリックしてゲームを「エディタモード」に切り替えることができます。現在の証明は、複数行のコードとして表示されます。行の間でカーソルを動かすことで" -"、任意のポイントでの目標状態を確認できます。証明を保存したい場合は、コードを他の場所に切り貼りし、上の証明を代入できます。カーソルを動かして調査してくだ" -"さい。終了したら、右上の§2ボタンをクリックして「タイプライターモード」に戻ります。\n" +"オプション:自分でこの証明を実行することもできます。「エディタモード」に切り替えるには、右上の§1" +"ボタンをクリックしてください。現在の証明は、複数行のコードとして表示されます。行の間でカーソルを動かすことで、任意のポイントでの目標状態を確認できます。" +"証明を保存したい場合は、コードを他の場所にコピーし、上記の証明を代入できます。カーソルを動かして調査してください。終了したら、右上の§2" +"ボタンをクリックして「タイプライターモード」に戻ります。\n" "\n" "チュートリアルワールドを終了しました!\n" "「ホーム」をクリックしてオーバーワールドに戻り、加算ワールドを選択して§3タクティクについて学びます。" @@ -3865,13 +3856,11 @@ msgid "" "\n" "Note in particular that §4." msgstr "" -"§0、符号§1を用いたものは通常の自然数の累乗を表します。内部的には、\n" +"§0、記号§1を用いる場合は、通常の自然数の累乗を意味します。内部的には、以下の2つの公理によって定義されます。\n" "\n" -" * §2\n" -"\n" -" * §3\n" +"* §2\n" "\n" -"の2つの公理により定義されています。\n" +"* §3\n" "\n" "特に注意すべきは§4です。" @@ -3905,23 +3894,24 @@ msgid "" "§11 will create two goals, one where you went left,\n" "and the other where you went right." msgstr "" -"§0 の全域性はこのワールドのボスレベルであり、次に登場します。これは、§1 と §2 が自然数である場合、§3 または §4 " -"であることを言います。\n" -"しかし、§5 については全く話していません。以下は概要です。\n" +"§0 の全域性は、このワールドにおけるボスレベルであり、次に登場します。これは、§1 と §2 が自然数である場合に、§3 または §4 " +"であることを示しています。しかし、§5 についてはまだ触れていません。以下に概要を示します。\n" "\n" -"1) \"または\" の表記は §6 です。直接入力する必要はありませんが、§7 で入力することができます。\n" +"1) 「または」の表記は §6 です。「または」を直接入力する必要はありませんが、§7 を使用して入力できます。\n" "\n" -"2) 目標に \"または\" の文がある場合、2 つのタクティク §8 と §9 " -"で進めます。ただし、方向を選択する前に、仮定が正しい方向を保証していることを確認してください。\n" +"2) 目標に「または」という文がある場合、2 つのタクティク §8 と §9 " +"を用いて進めます。ただし、方向を選択する前に、仮定が正しい方向であることを保証していることを確認してください。\n" "\n" -"3) 仮定 §10 に \"または\" の文がある場合、§11 は 2 つの目標を作成します。一つは左に進んだ場合、もう一つは右に進んだ場合です。" +"3) 仮定 §10 に「または」という文がある場合、§11 は 2 " +"つの目標を作成します。一つは左に進んだ場合に生成され、もう一つは右に進んだ場合に生成されます。" #: Game.Levels.Tutorial.L03two_eq_ss0 #. §0: `one_eq_succ_zero` #. §1: `1 = succ 0` msgid "§0 is a proof of §1.\"" -msgstr "§0は§1の証明です。" +msgstr "§0 は §1 の証明である。" +# no-translate #: Game.Levels.Addition.L01zero_add msgid "zero_add" msgstr "zero_add" @@ -3929,7 +3919,7 @@ msgstr "zero_add" #: Game.Levels.AdvMultiplication.L09mul_left_cancel #. §0: `induction b with d hd generalizing c` msgid "The way to start this proof is §0." -msgstr "この証明を始める方法は §0。" +msgstr "この証明を開始する方法は §0 です。" #: Game.Levels.Power.L02zero_pow_succ #. §0: `0 ^ 0 = 1` @@ -3938,7 +3928,7 @@ msgstr "この証明を始める方法は §0。" msgid "" "We've just seen that §0, but if §1\n" "is a successor, then §2. We prove that here." -msgstr "§0 について見てきました。 ですが、もし §1 が後者である場合、 §2 になります。ここではそのことを証明します。" +msgstr "これまでに §0 について説明しました。しかし、もし §1 が後続の値であるならば、それは §2 となります。このことの証明を以下に示します。" #: Game.Levels.Multiplication.L02zero_mul #. §0: `zero_mul x` @@ -3950,9 +3940,9 @@ msgid "" "\n" "Note: §2 is a §3 lemma." msgstr "" -"§0は§1の証明です。\n" +"§0 は、§1 の証明を示します。\n" "\n" -"Note: §2は§3の補題です。" +"注:§2 は、§3 の補題です。" #: Game.Levels.LessOrEqual.L06le_antisymm #. §0: $\\leq$ @@ -3964,16 +3954,17 @@ msgid "" "In other words, if §1 and §2 then §3.\n" "It's the trickiest one so far. Good luck!" msgstr "" -"このレベルでは、§0 の *反対称性* を証明する必要があります。\n" -"つまり、§1 かつ §2 ならば §3 です。\n" -"これまでで最も難しい問題です。運を祈ります!" +"このレベルでは、§0の「反対称性」を証明してください。\n" +"すなわち、「§1かつ§2ならば§3」が成り立つことを示します。\n" +"これまでのところ、最も難易度の高い問題です。頑張ってください!" #: Game.Levels.AdvMultiplication.L02mul_left_ne_zero #. §0: `contrapose!` msgid "" "If you have completed Algorithm World then you can use the §0 tactic\n" "here. If not then I'll talk you through a manual approach." -msgstr "もしアルゴリズムワールドを完了しているなら、ここでは§0タクティクを使用できます。もし完了していなければ、手動のアプローチを説明します。" +msgstr "アルゴリズムワールドを完了している場合は、ここで §0 タクティクを使用できます。\n" +"完了していない場合は、手動での手順をご説明します。" #: Game.Levels.Tutorial.L02rw #. §0: $2y=2(x+7)$ @@ -3996,8 +3987,8 @@ msgid "" "We do this in Lean by *rewriting* the goal with §8,\n" "using the §9 tactic." msgstr "" -"このレベルでは、目標は§0ですが、それを手助けするために、§1という*仮定*があります。§2がその内容です。§3" -"が仮定リストに表示されていることを確認してください。Leanは§4を仮定の秘密の証明と見なし、§5は秘密の数値に似ています。\n" +"このレベルにおける目標は§0ですが、それを達成するために、§1という仮定があります。その内容は§2です。仮定リストに§3" +"が表示されていることを確認してください。Leanは§4を、仮定の秘密の証明と見なします。これは、§5が秘密の数値に似ています。\n" "\n" "§6を使用する前に、「§7に置き換える」必要があります。Leanでは、§8を使用して目標を書き換え、§9タクティクを使用してこれを実行します。" @@ -4020,12 +4011,12 @@ msgid "" "Here §6 is a generic false statement. This means that\n" "you can §7 if §8 is a proof of §9." msgstr "" -"§0は§1の証明です。\n" +"§0 は §1 の証明を示します。\n" "\n" -"Leanでは、§2は§3に*定義されており*、 " -"§4は実質的に§5の証明です。ここで§6は一般的な偽の命題です。つまり、§8が§9の証明である場合、§7を行うことができます。" +"Lean では、§2 が §3 に *定義されている* ことを意味します。したがって、§4 は実際に §5 の証明です。ここで §6 " +"は一般的な偽の命題です。つまり、§8 が §9 の証明である場合、§7 を実行できます。" -#no-translate +# no-translate #: Game.Levels.Multiplication.L01mul_one msgid "mul_one" msgstr "mul_one" @@ -4039,14 +4030,14 @@ msgid "" "§0 is the theorem that §1.\n" "You can prove it by induction on §2 or you can deduce it from §3." msgstr "" -"§0は§1の定理です。\n" -"これを証明するには、§2についての帰納法を使用するか、§3から導き出せます。" +"§0 は §1 を示す定理です。\n" +"この定理を証明するには、§2 に関する数学的帰納法を用いるか、§3 から推論できます。" #: Game.Levels.AdvMultiplication.L06mul_right_eq_one #. §0: `rw [«{h}»] at «{h2}»` #. §1: `apply le_one at «{h2}»` msgid "Now §0 so you can §1." -msgstr "§0 をすると、§1 ができます。" +msgstr "§0 を実行することで、 §1 が可能になります。" #: Game.Levels.LessOrEqual.L11le_two #. §0: $x \\leq 2$ @@ -4054,7 +4045,7 @@ msgstr "§0 をすると、§1 ができます。" #. §2: $1$ #. §3: $2$ msgid "If §0 then §1 or §2 or §3." -msgstr "§0 ならば §1または§2または§3。" +msgstr "もし §0 が真ならば、§1 または §2 または §3 が少なくとも 1 つが真である。" #: Game.Levels.Tutorial.L03two_eq_ss0 Game.Levels.Addition.L03add_comm #: Game.Levels.Implication.L09zero_ne_succ Game.Levels.Algorithm.L05pred @@ -4062,7 +4053,7 @@ msgstr "§0 ならば §1または§2または§3。" #. §0: `two_eq_succ_one` #. §1: `2 = succ 1` msgid "§0 is a proof of §1." -msgstr "§0は§1の証明です。" +msgstr "§0 は §1 の証明です。" #: Game.Levels.Power.L10FLT #. §0: $a$ @@ -4074,8 +4065,7 @@ msgid "" "For all naturals §0 §1 §2 and §3, we have\n" "§4" msgstr "" -"すべての自然数 §0, §1, §2, §3 に対して、以下の関係が成り立ちます。\n" -"§4" +"すべての自然数 §0, §1, §2, §3 について、§4 が成立します。" #: Game.Levels.LessOrEqual.L06le_antisymm #: Game.Levels.AdvMultiplication.L07mul_ne_zero @@ -4086,7 +4076,7 @@ msgstr "" #. §2: `y ≤ x` #. §3: `x = y` msgid "§0 is a proof that if §1 and §2 then §3." -msgstr "§0は、§1と§2ならば§3であることを証明です。" +msgstr "§0 は、§1 と §2 が成り立つとき、§3 が成り立つことを証明します。" #: Game.Levels.AdvAddition.L02add_left_cancel #. §0: ``` @@ -4097,7 +4087,7 @@ msgid "" "How about this for a proof:\n" "§0" msgstr "" -"以下は証明です:\n" +"この証明はどうでしょうか:\n" "§0" #: Game.Levels.Implication.L07intro2 @@ -4105,7 +4095,7 @@ msgstr "" #. §1: `rfl` #. §2: `exact h` msgid "Now §0 then §1 works, but §2 is quicker." -msgstr "§0 と §1 は正常に動作しますが、§2 はより速いです。" +msgstr "現在、§0 および §1 は正しく機能しますが、§2 の方が高速です。" #: Game.Levels.LessOrEqual.L01le_refl #. §0: `le_refl x` @@ -4116,9 +4106,9 @@ msgid "" "\n" "The reason for the name is that this lemma is \"reflexivity of §2\"" msgstr "" -"§0は§1の証明です。\n" +"§0 は §1 の証明です。\n" "\n" -"この名前の理由は、この補題が\"§2の反射性\"であるためです。" +"この名称は、「§2 の反射性」であることを示すために付けられました。" #: Game.Levels.Addition.L03add_comm msgid "add_comm (level boss)" @@ -4135,10 +4125,8 @@ msgid "" "and §2 (which we don't), so let's\n" "start with this." msgstr "" -"私たちの最初の挑戦は§0です。\n" -"これは帰納法によって証明したいと思います。\n" -"ゼロの場合には§1(持っています)\n" -"と§2(持っていません)が必要なので、まずはこれから始めましょう。" +"最初の課題は§0ですが、帰納法を用いて証明します。\n" +"ゼロの場合には§1(定義済み)と§2(定義されていません)が必要です。まずはこの部分から取り組みます。" #: Game.Levels.Algorithm.L04add_algo3 #. §0: `simp_add` @@ -4151,30 +4139,29 @@ msgid "" msgstr "" "# 概要\n" "\n" -"私たちが作成したタクティク §0 は、§1 のような任意の目標を解決します。" +"私たちが開発したタクティク §0 は、§1 の形式の目標を解決します。" #: Game.Levels.Algorithm.L04add_algo3 #. §0: `20 + 20 = 40` msgid "" "Let's now move on to a more efficient approach to questions\n" "involving numerals, such as §0." -msgstr "" -"数値に関連する問題、例えば§0 に対するより効率的なアプローチについて見ていきましょう。" +msgstr "数値に関連する問題を扱う場合、例えば§0に対して、より効率的なアプローチを検討しましょう。" #: Game.Levels.Multiplication.L09mul_assoc msgid "" "We now have enough to prove that multiplication is associative,\n" "the boss level of multiplication world. Good luck!" -msgstr "乗算が結合的であることを証明できるようになりました。これは乗算ワールドのボスレベルです。幸運を!" +msgstr "乗算が結合的であることを証明するための準備は整いました。これは、乗算ワールドのボスレベルです。成功をお祈りします!" -#no-translate +# no-translate #: Game.Levels.Power.L08pow_pow msgid "pow_pow" msgstr "pow_pow" #: Game.Levels.Implication.L04succ_inj msgid "Now finish in one line." -msgstr "一行で証明を完成させましょう。" +msgstr "一行で証明を完結させます。" #: Game.Levels.LessOrEqual.L11le_two #. §0: `le_two x` @@ -4183,7 +4170,7 @@ msgstr "一行で証明を完成させましょう。" #. §3: `x = 1` #. §4: `x = 2` msgid "§0 is a proof that if §1 then §2 or §3 or §4." -msgstr "§0は、§1ならば§2または§3または§4であることの証明。" +msgstr "§0 は、もし §1 が真ならば、§2 または §3 または §4 がいずれか真であることを示す証明です。" #: Game.Levels.AdvAddition.L06add_left_eq_zero #. §0: ``` @@ -4199,11 +4186,11 @@ msgid "" "That's the end of Advanced Addition World! You'll need these theorems\n" "for the next world, §1 World. Click on \"Home\" to access it." msgstr "" -"証明としては、以下のようなものはどうでしょうか:\n" +"以下のいずれかの証明方法はいかがでしょうか:\n" "\n" "§0\n" "\n" -"この「高度な加算ワールド」は終了しました。次の「§1ワールド」では、これらの定理が必要になるでしょう。\"ホーム\"をクリックしてアクセスしてください。" +"高度な加算ワールドはこれで終了です。次の §1 ワールドでは、これらの定理が必要になります。「ホーム」ボタンをクリックしてアクセスしてください。" #: Game.Levels.Multiplication.L01mul_one #. §0: `Mul a b` @@ -4223,13 +4210,13 @@ msgid "" "Other theorems about naturals, such as §4,\n" "are proved by induction from these two basic theorems." msgstr "" -"§0、符号§1を用いたものは、通常の自然数の積です。内部的には、以下の2つの公理によって定義されます:\n" +"§1 で表記される §0 は、自然数の積を表す一般的な概念です。内部的には、以下の2つの公理を用いて定義されます:\n" "\n" "* §2\n" "\n" "* §3\n" "\n" -"他の自然数に関する定理、例えば§4は、これらの2つの基本定理から帰納的に証明されます。" +"また、§4のような他の自然数に関する定理は、これらの基本定理から帰納法によって証明されます。" #: Game.Levels.Tutorial.L05add_zero #. §0: `add_zero a` @@ -4265,7 +4252,7 @@ msgid "" msgstr "" "§0は§1の証明です。\n" "\n" -"## まとめ\n" +"## 概要\n" "\n" "§2は実際には関数で、数字を入力するとその数字に関する定理の証明を返します。例えば§3は§4の証明です。\n" "\n" @@ -4273,7 +4260,7 @@ msgstr "" "\n" "## 詳細\n" "\n" -"数学者は時として§7を\\\\\"一つのもの\\\\\"と捉え、それは§8の証明であると言えます。これは、任意の数字nを入力すると§9" +"数学者は時として§7を「一つのもの」と捉え、それは§8の証明であると言えます。これは、任意の数字nを入力すると§9" "の証明を返す関数であるという別の表現方法です。" #: Game.Levels.Power.L09add_sq @@ -4284,7 +4271,7 @@ msgid "" "For all numbers §0 and §1, we have\n" "§2" msgstr "" -"すべての数値 §0 と §1 に対して、\n" +"全ての数 §0 と §1 について、\n" "§2" #: Game.Levels.Tutorial.L01rfl @@ -4301,17 +4288,18 @@ msgid "" "\n" "Now click on \"Next\" to learn about the §3 tactic." msgstr "" -"おめでとうございます! あなたは初めての検証証明を完了しました!\n" +"おめでとうございます!あなたは初めての検証証明を完了しました!\n" "\n" -"記憶に留めておきましょう。§0は*タクティク*です。§1のタクティクについての情報が必要な場合は、右側のタクティク一覧の§2をクリックできます。\n" +"覚えておいてください。 §0 は*タクティク*と呼ばれる操作です。もし §1 のタクティクに関する情報が必要な場合は、右側のタクティク一覧にある §2" +" をクリックしてください。\n" "\n" -"\"次\"をクリックして§3のタクティクについて学びましょう。" +"「次」をクリックして、 §3 のタクティクについて学びましょう。" #: Game.Levels.Implication.L02exact2 #. §0: $0+x=(0+y)+2$ #. §1: $x=y+2$ msgid "Assuming §0, we have §1." -msgstr "仮定§0を仮定すると、§1が成り立ちます。" +msgstr "前提として§0を仮定するならば、§1は成立します。" #: Game.Levels.AdvAddition.L01add_right_cancel #. §0: `add_right_cancel a b n` @@ -4321,26 +4309,24 @@ msgid "" "\n" "§0 is the theorem that §1." msgstr "" -"このワールドでは、基本的にあなた自身で進めていただきます。\n" +"このワールドでは、基本的にはご自身で学習を進めていただきます。\n" "\n" -"§0は、§1の定理です。" +"§0は、§1という定理です。" #: Game.Levels.Power.L06pow_add msgid "" "Let's now begin our approach to the final boss,\n" "by proving some more subtle facts about powers." -msgstr "" -"冪乗に関するより細かい事実を証明して、\n" -"最終ボスへのアプローチをしましょう。" +msgstr "それでは、最終ボスの攻略に向けて、さらに詳細な冪乗に関する事実の証明から始めましょう。" #: Game.Levels.LessOrEqual.L09succ_le_succ #. §0: `succ_le_succ x y` #. §1: `succ x ≤ succ y` #. §2: `x ≤ y` msgid "§0 is a proof that if §1 then §2." -msgstr "§0は、§1ならば§2であることの証明。" +msgstr "§0 は、§1 が成り立つ場合に §2 が成り立つことを示す証明です。" -#no-translate +# no-translate #: Game.Levels.Implication.L08ne msgid "≠" msgstr "≠" @@ -4358,7 +4344,7 @@ msgstr "§2 で§0 と §1 にケースを分けましょう。" msgid "Start with §0 to assume the hypothesis and call its proof §1." msgstr "§0 を使用して仮定を§1とし、開始します。" -#no-translate +# no-translate #: Game.Levels.AdvMultiplication.L10mul_right_eq_self msgid "mul_right_eq_self" msgstr "mul_right_eq_self" @@ -4381,9 +4367,8 @@ msgid "" "we have the problem that we are adding §7 to things, so we need\n" "to use induction to split into the cases where §8 and §9 is a successor." msgstr "" -"うわあ! §0 に向かう途中で、野生の §1 が現れました。 §2 は、 §3 が §4 と §5 " -"の数値に対して成り立つことを証明しています。この結果が §6 の道を阻んでいます。また\n" -"私たちは §7 を何かに加算している問題に直面しており、そのためには §8 と §9 が後者である場合に分けて帰納法を使用する必要があります。" +"大変! §0 に向かう途中、野生の §1 が現れました。 §2 は、§3 が §4 と §5 の数値に対して成り立つことを証明しています。この結果が " +"§6 を達成するのを妨げています。さらに、私たちは §7 を何かに加算しているため、§8 と §9 が後者である場合に帰納法を用いる必要があります。" #: Game.Levels.Algorithm.L03add_algo2 #. §0: `simp` @@ -4400,15 +4385,15 @@ msgid "" msgstr "" "# 概要\n" "\n" -"Leanの簡略化処理器§0は、§1でタグ付けされたすべての補題およびユーザーから与えられたすべての補題" -"をできる限り簡略化します。さらに、§2のような補題を与えると、内部の順序に変数を並び替える試みも行い、無限ループに陥らないようにします。" +"Leanの簡略化処理器 §0 は、§1 でタグ付けされたすべての定理およびユーザーから与えられたすべての定理をできる限り簡略化します。さらに、§2 " +"のような定理を与えると、内部的な順序で変数を並べ替える試みも行い、無限ループに陥らないようにします。" #: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero #. §0: `cases ha with n hn` msgid "Now take apart the existence statement with §0." -msgstr "存在文を §0 で 分解します。" +msgstr "次に、存在文を §0 を用いて分解します。" -#no-translate +# no-translate #: Game.Levels.Tutorial.L08twoaddtwo Game.Levels.Implication.L06intro #: Game.Levels.Implication.L07intro2 Game.Levels.Implication.L09zero_ne_succ #: Game.Levels.Implication.L10one_ne_zero @@ -4456,44 +4441,34 @@ msgid "" "an interactive textbook which you can read in your browser,\n" "and which explains how to work with many more mathematical concepts in Lean." msgstr "" -"現在、フェルマーの最終定理の数学的に正確だが、\n" -"やや冗長なバージョンを記述するのに十分な情報があります。\n" +"現在、フェルマーの最終定理の数学的に正確だが、やや冗長なバージョンを記述するのに十分な情報があります。\n" "\n" -"フェルマーの最終定理は、§0 と §1 が成り立つならば、§2 が成り立つ、\n" -"と述べることができます。\n" -"もし「不等式世界」をまだ実装していない場合は、\n" -"§3 について議論できません。そのため、§4 を §5 の" -"代わりに使うという「ハック」に頼る必要があります。\n" -"これにより、十分な大きさになることが保証されます。\n" -"同様に、§6 の代わりに §7 を使用します。\n" +"フェルマーの最終定理は、 §0 と §1 が成り立つならば、 §2 " +"が成り立つ、と述べることができます。 ≤ ワールド がまだ完了していない場合は、 §3 について議論することができません。そのため、 §4" +" を §5 の代わりに使うという手法を用いる必要があります。これにより、十分な大きさになることが保証されます。同様に、§6の代わりに§7" +"を使用します。\n" "\n" -"このレベルは、これまでに見た他のレベルと似ていますが、\n" -"人間が知っている最も短い解は、数百万行の \n" -"Lean コードに変換されます。このゲームの作者である Kevin Buzzard は、\n" -"ウィルズとテイラーの証明を Lean に翻訳する作業に取り組んでいますが、\n" -"この作業には数年かかるでしょう。\n" +"このレベルは、これまでに見た他のレベルと似ていますが、人間が知っている最も短い解は、数百万行の Lean コードに変換されます。このゲームの作者である " +"Kevin Buzzard は、ウィルズとテイラーの証明を Lean に翻訳する作業に取り組んでいますが、この作業には数年かかるでしょう。\n" "\n" "## おめでとう!\n" -"\n" "自然数ゲームの主要な冒険を終えました!\n" -"Leanを使用して数学の定理を証明する方法をさらに学びたい場合は、\n" -"[Leanで数学](https://leanprover-community.github.io/mathematics_in_lean/) " -"を参照してください。\n" -"これはブラウザで読むことができる対話型教科書で、Leanでより多くの数学的概念を扱う方法を説明しています。" +"Leanを使用して数学の定理を証明する方法をさらに学びたい場合は、「Mathematics In " +"Lean」を参照してください。これはブラウザで読むことができる対話型教科書で、Leanでより多くの数学的概念を扱う方法を説明しています。" +# decideはタクティク名なのでそのまま #: Game.Levels.Algorithm.L09decide2 msgid "decide again" msgstr "もう一度 decide" -#no-translate +# no-translate #: Game.Levels.LessOrEqual.L03le_succ_self msgid "x ≤ succ x" msgstr "x ≤ succ x" #: Game.Levels.Tutorial.L02rw msgid "Can you take it from here? Click on \"Show more help!\" if you need a hint." -msgstr "" -"ここから続けられますか?ヒントが必要な場合は「より多くのヘルプを表示!」をクリックしてください。" +msgstr "引き続きご自身で解決いただけますでしょうか? ヒントが必要な場合は、「より多くのヘルプを表示!」をクリックしてください。" #: Game.Levels.Algorithm.L07succ_ne_succ #. §0: `contrapose! h` @@ -4502,9 +4477,9 @@ msgstr "" msgid "" "Start with §0, to change the goal into its\n" "contrapositive, namely a hypothesis of §1 and a goal of §2." -msgstr "開始するには、§0 から始めて、目標を対偶に変更し、具体的には§1 の仮定と§2 の目標にします。" +msgstr "開始にあたっては、§0 を出発点とし、目標をその対偶に変換します。具体的には、§1 の仮定と §2 の目標を設定します。" -#no-translate +# no-translate #: Game.Levels.Multiplication.L07mul_add msgid "mul_add" msgstr "mul_add" @@ -4515,7 +4490,7 @@ msgstr "mul_add" msgid "" "You might want to think about whether induction\n" "on §0 or §1 is the best idea." -msgstr " inductions on §0 や §1 は最良のアイデアでしょうか。" +msgstr "推論を行う際に、§0 または §1 に対する再帰的なアプローチが最適かどうかを検討する必要があります。" #: Game.Levels.LessOrEqual.L04le_trans #. §0: `le_trans x y z` @@ -4549,14 +4524,13 @@ msgid "" "and §16." msgstr "" "§0は、§1と§2ならば§3であることを証明しています。\n" -"より正確には、§4を証明しています。言葉で言えば、\n" -"§5ならば(一時停止)§6ならば§7です。\n" +"より正確には、§4を証明しています。具体的には、\n" +"§5ならば(一時停止)、§6ならば§7です。\n" "\n" "## 結合性に関する注記\n" "\n" -"Leanでは、§8は§9を意味し、§10は左側から結合します。しかし、§11は右側から結合します。これにより、Leanでは§12は§13が " -"Transitiv(転置的)であることを意味します。これは、数学的な文脈では通常§14を意味しないことを示しています;数学的には、これは通常§15と§1" -"6の両方が成り立つことを意味します。" +"Leanでは、§8は§9を意味し、§10は左から結合します。しかし、§11は右から結合します。これにより、Leanでは§12は§13" +"が転置的であることを意味します。これは、数学的な文脈では通常§14を意味しません;数学的には、これは通常§15と§16の両方が成り立つことを意味します。" #: Game.Levels.Algorithm.L02add_algo1 msgid "making life easier" @@ -4565,7 +4539,7 @@ msgstr "生活をより簡単に" #: Game.Levels.Addition.L01zero_add #. §0: `add_succ` msgid "Use §0." -msgstr "§0を使用してください。" +msgstr "§0をご利用ください。" #: Game.Levels.LessOrEqual.L07or_symm #. §0: `or` @@ -4573,7 +4547,7 @@ msgstr "§0を使用してください。" msgid "" "Now we can prove the §0 statement by proving the statement on the right,\n" "so use the §1 tactic." -msgstr "§0の命題を証明するために、右側の命題を証明することができるため、§1のタクティクを使用します。" +msgstr "今では、§0の命題を証明するために、右側の命題を証明することができます。そのため、§1のタクティクを使用します。" #: Game.Levels.Algorithm.L07succ_ne_succ #. §0: `h : a ≠ b` @@ -4603,7 +4577,7 @@ msgid "" msgstr "" "# 概要\n" "\n" -"仮定\n" +"仮説\n" "\n" "§0\n" "\n" @@ -4611,8 +4585,8 @@ msgstr "" "\n" "§1\n" "\n" -"がある場合、§2 はセットアップを反論と呼ばれるものに置き換える:\n" -"仮定\n" +"がある場合、§2 は、設定を「反証」というものに置き換えます:\n" +"仮説\n" "\n" "§3\n" "\n" @@ -4620,7 +4594,7 @@ msgstr "" "\n" "§4\n" "\n" -"になります。" +"です。" #: Game.Levels.Addition.L02succ_add Game.Levels.Multiplication.L08add_mul #: Game.Levels.Power.L04one_pow Game.Levels.Implication.L10one_ne_zero @@ -4634,9 +4608,9 @@ msgstr "" #. §0: `succ_add a b` #. §1: `succ a + b = succ (a + b)` msgid "§0 is a proof that §1." -msgstr "§0は§1の証明です。" +msgstr "§0 は、§1 の証明を示します。" -#no-translate +# no-translate #: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero msgid "eq_succ_of_ne_zero" msgstr "eq_succ_of_ne_zero" @@ -4657,18 +4631,18 @@ msgid "" "\n" "Inducting on §1 or §2 also works, but might take longer." msgstr "" -"私の解法:\n" +"私の解法:\n" "§0\n" "\n" -"§1 や §2 について帰納法を用いても構いませんが、時間がかかるかもしれません。" +"§1 または §2 に関する帰納法も有効ですが、より時間のかかる場合があります。" #: Game.Levels.Implication.L05succ_inj2 #. §0: `apply succ_inj` #. §1: `succ_inj` msgid "Start with §0 to apply §1 to the *goal*." -msgstr "開始するには、§0 を使用して §1 を *目標* に適用します。" +msgstr "*目標*に §1 を適用するために、まず §0 を使用してください。" -#no-translate +# no-translate #: Game.Levels.Multiplication.L02zero_mul msgid "zero_mul" msgstr "zero_mul" @@ -4677,7 +4651,7 @@ msgstr "zero_mul" msgid "Can you take it from here?" msgstr "ここから続けられますか?" -#no-translate +# no-translate #: Game.Levels.Power.L07mul_pow msgid "mul_pow" msgstr "mul_pow" @@ -4689,7 +4663,7 @@ msgid "" "A passing mathematician remarks that with reflexivity and transitivity out " "of the way,\n" "you have proved that §0 is a *preorder* on §1." -msgstr "通りすがりの数学者が、反射律と伝搬律を除けば、§0 は §1 上の *前順序* を証明したと述べています。" +msgstr "「反射律と伝搬律をクリアすれば、あなたは §0 が §1 上の *部分順序関係* であることを証明した」と、通りすがりの数学者が言いました。" #: Game.Levels.LessOrEqual.L06le_antisymm #. §0: ``` @@ -4720,13 +4694,13 @@ msgstr "" "私の証明:\n" "§0\n" "\n" -"通りすがりの数学は、反対称性も考慮すると、\n" +"通りすがりの数学者は、反対称性も考慮すると、\n" "あなたは§1が§2上の*部分順序*であることを証明しました。\n" "\n" "このワールドのボスレベルは、§3が完全順序であることを証明することです。\n" -"まずは2つの簡単なタクティクを学んでからしましょう。" +"まずは2つの簡単なタクティクを学習しましょう。" -#no-translate +# no-translate #: Game.Levels.Multiplication.L05one_mul msgid "one_mul" msgstr "one_mul" @@ -4737,9 +4711,9 @@ msgstr "one_mul" msgid "" "Now for the second goal. Here you have the induction hypothesis\n" "§0, and you need to prove that §1." -msgstr "では、第二の目標に移ります。ここでは、 帰納法の仮定 §0 が与えられており、 §1 を証明する必要があります。" +msgstr "では、次の目標に進みます。 ここで示された帰納法の仮定 §0 を用いて、§1 を証明する必要があります。" -#no-translate +# no-translate #: Game.Levels.Algorithm.L05pred msgid "pred" msgstr "pred" @@ -4747,7 +4721,7 @@ msgstr "pred" #: Game.Levels.Implication.L01exact Game.Levels.LessOrEqual.L01le_refl #. §0: `exact` msgid "The §0 tactic" -msgstr "タクティク §0" +msgstr "§0 タクティク" #: Game.Levels.Tutorial.L04rw_backwards #. §0: `succ n` @@ -4755,7 +4729,7 @@ msgstr "タクティク §0" msgid "" "Why did we not just define §0 to be §1? Because we have not\n" "even *defined* addition yet! We'll do that in the next level." -msgstr "なぜ §0 を §1 に定義しなかったのか?まだ足し算そのものを定義していないからです。次レベルでその定義を行います。" +msgstr "なぜ、§0を§1に定義しなかったのでしょうか? それは、まだ足し算の演算自体を定義していないからです。この定義は、次の段階で行います。" #: Game.Levels.Tutorial.L02rw #. §0: $x$ @@ -4763,20 +4737,20 @@ msgstr "なぜ §0 を §1 に定義しなかったのか?まだ足し算そ #. §2: $y = x + 7$ #. §3: $2y = 2(x + 7)$ msgid "If §0 and §1 are natural numbers, and §2, then §3." -msgstr "もし§0と§1が自然数であり、かつ§2である場合、§3です。" +msgstr "自然数§0と§1が存在し、かつ§2が真ならば、§3は真である。" #: Game.Levels.Power.L09add_sq msgid "[final boss music]" -msgstr "[最終ボスのテーマ]" +msgstr "[最終ボス戦のテーマ音楽]" #: Game.Levels.Tutorial.L07add_succ Game.Levels.Multiplication.L01mul_one #: Game.Levels.Multiplication.L06two_mul Game.Levels.Algorithm.L07succ_ne_succ #. §0: `succ_eq_add_one n` #. §1: `succ n = n + 1` msgid "§0 is the proof that §1." -msgstr "§0は§1の証明です。" +msgstr "§0 は、§1 の証明を示しています。" -#no-translate +# no-translate #: Game.Levels.Addition.L05add_right_comm msgid "add_right_comm" msgstr "add_right_comm" @@ -4786,7 +4760,7 @@ msgstr "add_right_comm" msgid "try rewriting §0." msgstr "§0で書き換えてみてください." -#no-translate +# no-translate #: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero msgid "one_le_of_ne_zero" msgstr "one_le_of_ne_zero" @@ -4800,7 +4774,7 @@ msgstr "one_le_of_ne_zero" msgid "§0 is the theorem that §1" msgstr "§0は§1の定理です。" -#no-translate +# no-translate #: Game.Levels.Power.L04one_pow msgid "one_pow" msgstr "one_pow" @@ -4827,23 +4801,23 @@ msgid "" "To *prove* an \"exists\" statement, use the §5 tactic.\n" "Let's see an example." msgstr "" -"§0は§1の記号です。この\"反転したE\"は\"存在する\"を意味します。つまり§2は、ある数§3が存在し、かつ§4" -"を満たすことを意味します。この定義は、このゲームには負の数がないため機能します。\n" +"§0は§1の記号です。「反転したE」とは「存在」を表します。したがって、§2は、「ある数§3が存在し、かつ§4" +"を満たす」ことを意味します。この定義は、このゲームには負の数が含まれないため有効です。\n" "\n" -"\"存在する\"文を*証明*するには、§5のタクティクを使用します。例を見ていきましょう。" +"「存在する」文を証明するには、§5のタクティクを使用します。例を見てみましょう。" -#no-translate +# no-translate #: Game.Levels.LessOrEqual.L02zero_le msgid "0 ≤ x" msgstr "0 ≤ x" -#no-translate +# no-translate #: Game.Levels.LessOrEqual.L07or_symm #. §0: `or` msgid "Dealing with §0" msgstr "§0 を扱う方法" -#no-translate +# no-translate #: Game.Levels.Multiplication.L08add_mul msgid "add_mul" msgstr "add_mul" @@ -4852,14 +4826,14 @@ msgstr "add_mul" #. §0: `apply eq_succ_of_ne_zero at ha` #. §1: `... at hb` msgid "Start with §0 and §1" -msgstr "開始するには、§0 と §1 を使用します。" +msgstr "開始には、§0 と §1 を使用してください。" #: Game.Levels.Power.L02zero_pow_succ #. §0: `pow_succ a b : a ^ (succ b) = a ^ b * a` msgid "" "§0 is one of the\n" "two axioms defining exponentiation in this game." -msgstr "§0はこのゲームで指数関数を定義する2つの公理の1つです。" +msgstr "§0は、このゲームにおける指数関数の定義を定める2つの公理のうちの1つです。" #: Game.Levels.Multiplication.L01mul_one #. §0: `mul_zero` @@ -4873,31 +4847,31 @@ msgid "" "Let's start with a warm-up: no induction needed for this one,\n" "because we know §2 is a successor." msgstr "" -"新しい \"*\" タブを確認してください。そこで §0 と §1 が表示されています。\n" -"現在、これらは乗算について知っている唯一の事実です。\n" -"あと9つの証明を行いましょう。\n" +"新しい「*」タブを確認してください。このタブには、§0 と §1 が表示されます。\n" +"現在、これらは乗算に関する唯一の既知的事実です。\n" +"それでは、さらに9つの定理を証明しましょう。\n" "\n" -"まずはウォームアップから始めましょう。この場合は inducition は必要ありません。\n" -"なぜなら §2 は後者であることが分かっているからです。" +"まずは簡単な例から始めましょう。この場合は、帰納法は不要です。\n" +"なぜなら、§2 は後者であるためです。" #: Game.Levels.Implication.L09zero_ne_succ #: Game.Levels.AdvAddition.L01add_right_cancel msgid "Nice!" -msgstr "ナイス!" +msgstr "素晴らしい!" #: Game.Levels.Multiplication.L01mul_one Game.Levels.Multiplication.L05one_mul #: Game.Levels.Multiplication.L06two_mul #. §0: $m$ #. §1: $ m \\times 1 = m$ msgid "For any natural number §0, we have §1." -msgstr "任意の自然数§0に対して、§1です。" +msgstr "任意の自然数 §0 に対しては、§1 が成り立ちます。" #: Game.Levels.Tutorial.L02rw #. §0: `rw [h]` #. §1: `y` #. §2: `x + 7` msgid "First execute §0 to replace the §1 with §2." -msgstr "まず §0 を実行して §1 を §2 に置き換えてください。" +msgstr "まず、 §0 を実行して §1 を §2 に置き換えてください。" #: Game.Levels.Implication #. §0: $2+2=4$ @@ -4918,22 +4892,21 @@ msgid "" "\n" "Click on \"Start\" to proceed." msgstr "" -"私たちは§0を証明しました; 含意ワールドでは、§1を証明する方法を学びます。\n" +"私たちは§0の証明を示しました; 含意ワールドでは、§1を証明する方法について学びます。\n" "\n" "加法ワールドでは、§2のような等式を証明しました。\n" -"この二つ目のチュートリアルワールドでは、新しいタクティクを学び、\n" -"これを使って§3のような推論を証明できるようになります。\n" +"この二つ目のチュートリアルワールドでは、新しいタクティク(証明手法)を学び、これを使って§3のような推論を証明できるようになります。\n" "\n" -"また、ペアノが公理として導入した自然数に関する二つの新しい基本的事実も学びます。\n" +"また、ペアノが公理として導入した自然数に関する二つの新しい基本的事実についても学びます。\n" "\n" -"\"開始\"をクリックして進みましょう。" +"「開始」をクリックして進みましょう。" -#no-translate +# no-translate #: Game.Levels.LessOrEqual.L11le_two msgid "le_two" msgstr "le_two" -#no-translate +# no-translate #: Game.Levels.Power.L05pow_two msgid "pow_two" msgstr "pow_two" @@ -4958,7 +4931,7 @@ msgstr "" #: Game.Levels.Algorithm.L05pred #. §0: `rw [← pred_succ a]` msgid "Start with §0 and take it from there." -msgstr "§0から始めて、そこから続けてください。" +msgstr "開始にあたり、§0から始め、それに基づいて進んでください。" #: Game.Levels.Algorithm.L05pred #. §0: `0` @@ -4989,19 +4962,17 @@ msgid "" "Peano assumed as an axiom and which we have already used extensively " "without justification." msgstr "" -"効率的な加算を行うアルゴリズムの作成を開始します。\n" -"再帰によって加算を定義したことを思い出してください。\n" -"具体的には、0と後者に対して何を行うかを定義しました。\n" -"Leanの公理として、再帰は自然数などの型から関数を定義する有効な方法であるとされています。\n" +"効率的な加算を行うアルゴリズムの作成を開始します。再帰によって加算を定義したことを思い出してください。具体的には、0" +"と後者に対して何を行うかを定義しました。Leanの公理として、再帰は自然数などの型から関数を定義する有効な方法であるとされています。\n" "\n" "自然数から自然数への新しい関数§1を定義します。これは、入力から1を引こうとする関数です。その定義は以下の通りです:\n" "\n" "§2\n" "\n" -"0から1を引くことはできませんので、無効な値を返します。この定義とともに、新しい補題§3も定義します。これは§4を述べています。\n" -"この補題を使って、§5(ペアノが公理として仮定し、以前にも正当化せずに頻繁に使用した定理)を証明しましょう。" +"0から1を引くことはできませんので、無効な値を返します。この定義とともに、新しい補題§3も定義します。これは§4を述べています。この補題を使って、§5" +"(ペアノが公理として仮定し、以前にも正当化せずに頻繁に使用した定理)を証明しましょう。" -#no-translate +# no-translate #: Game.Levels.Algorithm.L06is_zero msgid "is_zero" msgstr "is_zero" @@ -5016,8 +4987,8 @@ msgid "" "In other words, for all natural numbers §0, §1 and §2, we have\n" "§3." msgstr "" -"乗算は結びつきを持ちます。\n" -"つまり、すべての自然数 §0, §1, §2 に対して、\n" +"乗算は結合法則に従います。\n" +"言い換えれば、任意の自然数 §0, §1, §2 について、以下のことが成り立ちます。\n" "§3。" #: Game.Levels.Algorithm.L03add_algo2 @@ -5031,10 +5002,10 @@ msgid "" "This level is not a level which you want to solve by hand.\n" "Get the simplifier to solve it for you." msgstr "" -"Leanの簡約化処理器、§0は「§1の強化版」です。これは、§2でタグ付けされたすべての補題およびユーザーによって与えられたすべての補題" -"をできる限り簡約化します。\n" +"Leanの簡約化処理器、§0は「§1の強化版」です。これは、§2" +"でタグ付けされたすべての定理およびユーザーによって与えられたすべての定理をできる限り簡約化します。\n" "\n" -"このレベルは手作業で解くべきレベルではありません。\n" +"このレベルでは手作業での解決が推奨されません。\n" "簡約化処理器に任せて解いてください。" #: Game.Levels.Tutorial.L02rw @@ -5062,11 +5033,11 @@ msgid "" msgstr "" "## 概要\n" "\n" -"もし目標に §0 があり、目標に複数の §1 が存在する場合、§2 は第三の §3 を §4 に変更します。\n" +"目標に §0 が存在し、かつ目標に複数の §1 が存在する場合には、§2 は第三の §3 を §4 に変更します。\n" "\n" "## 例\n" "\n" -"もし目標が §5 である場合、§6 は目標を §7 に変更します。一方で、§8 は目標を §9 に変更します。" +"もし目標が §5 である場合、§6 は目標を §7 に変更します。一方、§8 は目標を §9 に変更します。" #: Game.Levels.Implication.L05succ_inj2 #. §0: $P\\implies Q$ @@ -5077,8 +5048,8 @@ msgid "" "Applying a proof of §0 to the *goal* changes §1 to §2.\n" "Now try §3 to make the goal more like the hypothesis." msgstr "" -"証明 §0 を *目標* に適用すると、§1 は §2 に変更されます。\n" -"次に §3 を試して、目標を仮定に近づけてみましょう。" +"証明 §0 を *目標* に対して適用することで、§1 が §2 になります。\n" +"次に §3 を試し、目標を仮定に近づけることを試みてください。" #: Game.Levels.Multiplication.L03succ_mul #. §0: $a$ @@ -5088,7 +5059,7 @@ msgid "" "For all natural numbers §0 and §1, we have\n" "§2." msgstr "" -"すべての自然数 §0 および §1 に対して、\n" +"すべての自然数 §0 と §1 について、\n" "§2。" #: Game.Levels.AdvAddition.L05add_right_eq_zero @@ -5100,14 +5071,14 @@ msgstr "§0 の証明。" #: Game.Levels.Algorithm.L02add_algo1 #. §0: `repeat rw [add_assoc]` msgid "Start with §0 to push all the brackets to the right." -msgstr "§0から全括弧を右に移動させて、始めましょう。" +msgstr "開始時に §0 を使用し、すべての括弧を右側に移動させます。" #: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero #. §0: `cases a with d` #. §1: `a = 0` #. §2: `a = succ d` msgid "Start with §0 to do a case split on §1 and §2." -msgstr "開始するには、§0 を使用して §1 と §2 に対してケース分割を行います。" +msgstr "開始にあたり、§0 を用いて §1 と §2 に対してケース分割を実行します。" #: Game.Levels.AdvMultiplication.L09mul_left_cancel #. §0: `mul_eq_zero` @@ -5117,11 +5088,11 @@ msgstr "開始するには、§0 を使用して §1 と §2 に対してケー msgid "" "Use §0 and remember that §1 will solve a goal\n" "if there are hypotheses §2 and §3." -msgstr "§0を使用します。仮定§2と§3があるときに§1で目標を解決できることを思い出してください。" +msgstr "§0を使用します。仮定として§2と§3が存在する場合、§1を用いることで目標を解決できます。" #: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero msgid "The previous lemma can be used to prove this one." -msgstr "前の定理を用いて、この定理を証明することができます。" +msgstr "前の定理を用いることで、この定理の証明が可能となります。" #: Game.Levels.Algorithm.L06is_zero #. §0: `is_zero` @@ -5153,18 +5124,18 @@ msgid "" "\n" "If you can turn your goal into §9, then the §10 tactic will solve it." msgstr "" -"関数 §0 を定義します:\n" +"関数 §0 は以下の通り定義します:\n" "\n" "§1\n" "\n" -"また、補題 §2 と §3 を作成し、§4\n" -"と §5 とします。これらの命題を使って、ペアノの最終公理 §6 を証明しましょう。実際、§7 " -"は以前から使用していましたが、同じ方法で証明できる逆の命題も用意しておくと便利です。注意:ここでは §8 を使用してチート" -"することができますが、このワールドの目的は、そのような結果を証明する方法を示すことです。\n" +"また、補題 §2 と §3 を定義し、それぞれ §4\n" +"と §5 とします。これらの補題を用いて、ペアノの最終公理 §6 の証明を行います。実際、§7 " +"は以前から使用していましたが、同じ方法で証明できる逆の命題も用意しておくと便利です。注意:ここでは §8 " +"を使用して解決することも可能ですが、このワールドの目的は、そのような結果を証明する方法を示すことです。\n" "\n" -"目標を §9 に変換できるなら、§10 タクティクで解決できます。" +"目標を §9 に変換できれば、§10 タクティクを用いて解決できます。" -#no-translate +# no-translate #: Game.Levels.AdvMultiplication.L08mul_eq_zero msgid "mul_eq_zero" msgstr "mul_eq_zero" @@ -5173,19 +5144,19 @@ msgstr "mul_eq_zero" #. §0: `rw [two_eq_succ_one]` #. §1: `2` msgid "Start with §0 to begin to break §1 down into its definition." -msgstr "開始は§0から始めて、§1を定義に分解するところから始めます。" +msgstr "まず§0から開始し、そこから§1を定義へと分解していくことから始めましょう。" -#no-translate +# no-translate #: Game.Levels.Implication.L10one_ne_zero msgid "1 ≠ 0" msgstr "1 ≠ 0" -#no-translate +# no-translate #: Game.Levels.AdvMultiplication.L01mul_le_mul_right msgid "mul_le_mul_right" msgstr "mul_le_mul_right" -#no-translate +# no-translate #: Game.Levels.AdvAddition.L04add_right_eq_self msgid "add_right_eq_self" msgstr "add_right_eq_self" @@ -5220,24 +5191,22 @@ msgid "" "So if your goal is §12 then you had better hope that your hypotheses\n" "are contradictory, which they are in this level." msgstr "" -"まだ §0 を証明することができません。なぜなら §1 の定義について話していなかったからです。Lean では §2 は §3 の *表記* です。\n" -"ここでは §4 は一般的な偽命題、§5 は Lean の \"implies\" の表記です。論理学では §6 は偽であり、§7 は真です。したがって\n" -"§8 は §9 の論理的対偶です。\n" +"まだ §0 の証明はできません。なぜなら、§1 の定義について議論していないからです。Lean では、§2 は §3 の *表記* です。\n" +"ここでは §4 は一般的な偽命題であり、§5 は Lean における \"implies\" の表記です。論理学では §6 " +"が偽であると学習しますが、§7 は真です。したがって §8 は §9 の論理的対偶となります。\n" "\n" -"§10 は含意に見えないかもしれませんが、含意 として扱うべきです。次の 2 " -"つのレベルでその方法を学びます。\n" +"§10 は含意のように見えないかもしれませんが、含意として扱うべきです。次の 2 つのレベルでその方法を学びます。\n" "\n" -"§11 は一貫性のある仮定から導き出せない目標です!したがって、目標が §12 " -"の場合、仮定が矛盾していることを願うべきで、このレベルではそうしています。" +"§11 は一貫性のある仮定から導き出せない目標です!したがって、目標が §12 の場合、仮定が矛盾していることを期待し、このレベルではそうしています。" #: Game.Levels.LessOrEqual.L04le_trans msgid "x ≤ y and y ≤ z implies x ≤ z" -msgstr "x ≤ y と y ≤ z から x ≤ z が導かれる。" +msgstr "x ≦ y かつ y ≦ z ならば、x ≦ z が成り立つ。" #: Game.Levels.Implication.L02exact2 #. §0: `exact` msgid "§0 practice." -msgstr "§0 練習。" +msgstr "§0 演習。" #: Game.Levels.Implication.L10one_ne_zero #. §0: `zero_ne_succ n` @@ -5262,18 +5231,15 @@ msgid "" "does the same for a hypothesis §9. We've proved §10 and called\n" "the proof §11; now try proving §12." msgstr "" -"§0 が §1 の証明であることを知っています。しかし、\n" -"もし §2 という仮定がある場合、それは逆になってしまいます。\n" +"私たちは、§0 が §1 の証明であることを知っています。しかし、もし §2 という仮定がある場合、それは逆になってしまいます。\n" "\n" -"§3 のタクティクは、目標 §4 を §5 に、目標 §6 を §7 に変更します。\n" -"また、§8 も仮定 §9 に対して同様の操作を行います。\n" +"§3 のタクティクは、目標 §4 を §5 に、目標 §6 を §7 に変更します。また、§8 も仮定 §9 に対して同様の操作を行います。\n" "\n" -"§10 を証明し、その証明を §11 と命名しました。\n" -"次に §12 を証明してみてください。" +"§10 を証明し、その証明を §11 と命名しました。次に §12 を証明してみてください。" #: Game.Levels.Addition.L02succ_add msgid "Well done! You now have enough tools to tackle the main boss of this level." -msgstr "よくできました! あなたはこのレベルのメインボスに挑むための十分なツールを手に入れました。" +msgstr "よくできました!これで、このレベルのメインボスに対抗するための十分なツールが揃いました。" #: Game.Levels.LessOrEqual.L03le_succ_self #. §0: `use` @@ -5282,8 +5248,8 @@ msgid "" "If you §0 the wrong number, you get stuck with a goal you can't prove.\n" "What number will you §1 here?" msgstr "" -"もし、間違った数字を §0 に使用した場合、証明できない目標に陥ります。\n" -"どの数値を §1 しますか?" +"もし、間違った数字を §0 した場合、証明不可能な目標に陥ります。\n" +"どのような数字を §1 しますか?" #: Game.Levels.Multiplication.L04mul_comm msgid "Multiplication is commutative." @@ -5302,13 +5268,10 @@ msgid "" "home screen by clicking the house icon and then taking a look.\n" "You won't lose any progress." msgstr "" -"同様に §0 もありますが、§1 が必要になります\n" -"(何と書いてあるか想像してみてください。\n" -"Lean の命名規則が分かってきたかもしれません)。\n" +"同様に §0 もありますが、§1 が必要です (内容を推測してみてください。Lean の命名規則をご理解いただけているかもしれません)。\n" "\n" -"加算ワールドの最後のレベルがこのレベルを攻略するのに役立つかもしれません。\n" -"記憶が曖昧な場合は、ホームアイコンをクリックしてホーム画面に戻り、確認してください。\n" -"進捗は失われません。" +"加算ワールドの最後のレベルが、このレベルを攻略するのに役立つ可能性があります。もし内容を忘れてしまった場合は、ホーム画面に戻るためにアイコンをクリックし" +"てください。進捗は失われません。" #: Game.Levels.Implication.L09zero_ne_succ Game.Levels.LessOrEqual.L04le_trans #: Game.Levels.LessOrEqual.L08le_total @@ -5316,9 +5279,9 @@ msgstr "" #: Game.Levels.AdvMultiplication.L08mul_eq_zero #. §0: `intro h` msgid "Start with §0." -msgstr "§0 で開始します。" +msgstr "§0 から開始してください。" -#no-translate +# no-translate #: Game.Levels.Multiplication.L03succ_mul msgid "succ_mul" msgstr "succ_mul" @@ -5338,11 +5301,10 @@ msgid "" "with things like §1. And remember that\n" "§2 means §3." msgstr "" -"手動で交換律と結合律を使って変数を再配置する必要があることは非常に面倒です。\n" -"まず、これについて再確認します。§0\n" -"は、最初の説明するアルゴリズムにおいて重要な成分ですが、手動で証明する必要があります。\n" +"手動で変数を再配置するために、交換法則と結合法則を使用することは非常に手間がかかります。まずは、この点について改めて確認しましょう。§0 " +"は、最初のアルゴリズムの説明において重要な要素ですが、手動で証明する必要があります。\n" "\n" -"交換律に基づいた精密な再配置は、§1のようなもので行うことができます。また、§2は§3を意味します。" +"交換法則に基づいた精密な再配置は、§1のような操作で行うことができます。また、§2 は §3 を意味します。" #: Game.Levels.Tutorial.L03two_eq_ss0 msgid "Numbers" @@ -5351,7 +5313,7 @@ msgstr "数値" #: Game.Levels.Tutorial.L07add_succ #. §0: `rfl` msgid "And finally §0." -msgstr "最後に、§0。" +msgstr "そして、最後に、§0。" #: Game.Levels.Multiplication #. §0: `37 * x` @@ -5390,7 +5352,7 @@ msgstr "" "であるときそれぞれに定義を提供する必要があります。\n" "\n" "ゼロの場合は簡単です:§3 を §4 で定義します。次に §5 を仮定します。§6 のときはどうでしょうか?そうですね、§7 §8 になるので、\n" -"§9になるべきでしょう。。\n" +"§9になるべきでしょう。\n" "\n" "Lean での定義は以下の通りです。\n" "\n" @@ -5417,19 +5379,16 @@ msgstr "" "この2行についてどう思いますか:\n" "§0\n" "\n" -"§1 は、単に仮定を受け取るだけでなく、システム内に存在する任意の証明を処理します。" +"§1 は、単に仮定を受け取るだけでなく、システム内に存在する任意の証明を評価します。" +# no-translate #: Game.Levels.LessOrEqual.L09succ_le_succ msgid "succ x ≤ succ y → x ≤ y" msgstr " succ x ≤ succ y → x ≤ y" #: Game msgid "The classical introduction game for Lean." -msgstr "" -"The classical introduction game for Lean 4。\n" -"\n" -"## 日本語翻訳\n" -"Lean 4 の古典的な導入ゲーム。" +msgstr "Lean 4 用の、古典的な導入ゲーム。" #: Game.Levels.Implication.L02exact2 #. §0: `rw [«{h}»]` @@ -5438,7 +5397,7 @@ msgstr "" msgid "" "Now you could finish with §0 then §1, but §2\n" "does it in one line." -msgstr "§0 から §1 までで終了できますが、§2 では一行で完了します。" +msgstr "現在、§0 と §1 で処理を終えることができますが、§2 は 1 行で完結します。" #: Game.Levels.Addition.L05add_right_comm #. §0: `add_comm b c` @@ -5469,12 +5428,12 @@ msgid "" "will only do rewrites of the form §10, and §11\n" "will only do rewrites of the form §12." msgstr "" -"§0は§1の証明です。しかし、あなたの目標が§2であるなら、§3は機能しません!なぜなら、目標は§4を意味し、目標に直接的に§5" -"の項は存在しないからです。\n" +"§0 は §1 の証明です。しかし、あなたの目標が §2 である場合、§3 は機能しません!なぜなら、目標は §4 を意味し、目標に直接的に §5 " +"の項が存在しないからです。\n" "\n" -"結びつきと交換律を利用し、§6を証明してください。帰納法は必要ありません。§7は括弧を移動し、§8は変数を移動します。\n" +"結びつきと交換律を利用して、§6 を証明してください。帰納法は不要です。§7 は括弧の配置を変更し、§8 は変数の配置を変更します。\n" "\n" -"明示的な変数を定理の入力として追加することで、より的確な書き換えを行うことができます。例えば、§9は形式§10の書き換えのみを実行し、§11は形式§12" +"明示的な変数を用意することで、より的確な書き換えを行うことができます。例えば、§9 は形式 §10 の書き換えのみを実行し、§11 は形式 §12 " "の書き換えのみを実行します。" #: Game.Levels.Power.L10FLT @@ -5497,15 +5456,15 @@ msgid "" msgstr "" "私たちは、形式 §1 の定理や仮定の §0 の方法を見ました。\n" "しかし、もし私たちの *目標* が形式 §2 の場合は、どうすれば良いでしょうか?\n" -"この目標を証明するには、Lean \n" -"で \"§3 という仮定を設け、 §4 を導く\" という方法を知る必要があります。これを行うためには、§5 タクティクを使用します。" +"この目標を証明するには、Lean で \"§3 という仮定を設け、 §4 を導く\" という方法を知る必要があります。これを行うためには、§5 " +"タクティクを使用します。" #: Game.Levels.LessOrEqual.L01le_refl Game.Levels.LessOrEqual.L02zero_le #: Game.Levels.LessOrEqual.L03le_succ_self #. §0: $x$ #. §1: $x \\le x$ msgid "If §0 is a number, then §1." -msgstr "もし§0が数値なら、§1。" +msgstr "もし §0 が数値であるならば、§1 は真となる。" #: Game.Levels.LessOrEqual.L10le_one #. §0: ``` @@ -5525,17 +5484,17 @@ msgid "" "\n" "If you solved this level then you should be fine with the next level!" msgstr "" -"私の証明:\n" +"私の証明:\n" "§0\n" "\n" -"このレベルを解いたなら、次のレベルでも大丈夫です!" +"この問題を解けた場合、次の問題も理解できるはずです。" #: Game.Levels.Tutorial.L04rw_backwards #. §0: `2 = 2` msgid "Can you now change the goal into §0?" -msgstr "目標を§0に変更できますか?" +msgstr "目標を§0に変更することは可能ですか?" -#no-translate +# no-translate #: Game.Levels.Power.L09add_sq msgid "add_sq" msgstr "add_sq" @@ -5554,10 +5513,10 @@ msgid "" "I've left hidden hints; if you need them, retry from the beginning\n" "and click on \"Show more help!\"" msgstr "" -"これは今までで最も難しいレベルかもしれません。ヒント:もし§0が数値であれば、§1は§2と§3に分岐します。\n" -"そして、仮定が結果の目標を証明できる保証がない限りは左や右には移動しないでください!\n" +"これはこれまでで最も難しいレベルかもしれません。ヒント:もし§0が数値であるならば、§1は§2と§3に分岐します。\n" +"そして、仮説が結果の目標を証明できることを保証するまでは、左または右に進まないでください!\n" "\n" -"隠されたヒントを残しています;必要であれば、最初からやり直し、「より多くのヘルプを表示!」とクリックしてください。" +"隠されたヒントも残しています。必要であれば、「より多くのヘルプを表示!」をクリックして最初からやり直してください。" #: Game.Levels.LessOrEqual.L08le_total #. §0: `ℕ` @@ -5570,11 +5529,11 @@ msgid "" "\n" "The final few levels in this world are much easier." msgstr "" -"よくできました。\n" +"素晴らしい成果です。\n" "\n" -"通りすがりの数学者は、あなたが §0 は完全に順序付けられていることを証明したと述べました。\n" +"ある数学者が「あなたは、§0 が完全に順序付けされていることを証明しましたね」とコメントしました。\n" "\n" -"このワールドの最後の数レベルははるかに簡単です。" +"このワールドの最後の数レベルは、それほど難しくありません。" #: Game.Levels.AdvAddition.L03add_left_eq_self #. §0: `y` @@ -5597,12 +5556,11 @@ msgid "" "back to command line mode.\n" "§5" msgstr "" -"§0について帰納法を使ったでしょうか?\n" -"§2を使用して§1の2行の証明があります。\n" -"証明を確認したい場合は、右上にある§3をクリックしてエディタモードに入り、\n" -"その後証明を切り取り、貼り付け、カーソルを動かして任意のポイントでの仮定と目標を確認できます。\n" -"(ただし、この方法で自分の証明は失われます)。§4をクリックして\n" -"コマンドラインモード (訳注: タイプライターモード) に戻りましょう。\n" +"帰納法を用いて §0 を証明しましたか?\n" +"§2 を使用した §1 の 2 行の証明があります。\n" +"証明を確認したい場合は、右上の §3 をクリックしてエディタモードに入り、\n" +"その後証明をコピー&ペーストし、カーソルを移動させて任意の時点での仮定と目標を確認できます。(ただし、この方法ではご自身の証明は失われます)。§4 " +"をクリックしてコマンドラインモード (タイプライターモード) に戻ってください。\n" "§5" #: Game.Levels.LessOrEqual.L05le_zero @@ -5610,8 +5568,7 @@ msgid "" "It's \"intuitively obvious\" that there are no numbers less than zero,\n" "but to prove it you will need a result which you showed in advanced\n" "addition world." -msgstr "" -"ゼロ未満の数は存在しないということは「直感的に明らか」ですが、それを証明するには、高度な加算ワールドで示した結果が必要です。" +msgstr "ゼロ未満の数が存在しないことは、「直感的に明らか」ですが、これを証明するためには、高度な加算ワールドで示された結果が必要となります。" #: Game.Levels.Implication.L04succ_inj #. §0: `exact h` @@ -5620,8 +5577,8 @@ msgid "" "assumptions.\n" "Finish the level with §0." msgstr "" -"そして、証明したい命題を導き出しました:目標は私たちの仮定の一つです。\n" -"レベルを終了するには、§0 を使用してください。" +"そして、目的を証明するために必要な結論を得ることができました。この結論が、当初提示した仮定の一つと一致します。\n" +"レベルを完了するには、§0 を使用してください。" #: Game.Levels.Tutorial.L07add_succ #. §0: `rw [add_zero]` @@ -5633,7 +5590,7 @@ msgstr "§0をしましょう。" #. §0: `pow_add a m n` #. §1: $a^{m+n}=a^ma^n.$ msgid "§0 is a proof that §1" -msgstr "§0は§1の証明です。" +msgstr "§0 は §1 の証明を示すものです。" #: Game.Levels.LessOrEqual msgid "≤ World" @@ -5648,14 +5605,14 @@ msgid "" "Here's my solution:\n" "§0" msgstr "" -"私の解法:\n" +"私の解決策:\n" "§0" #: Game.Levels.Algorithm.L07succ_ne_succ msgid "An algorithm for equality" -msgstr "等価性のアルゴリズム" +msgstr "等価性を扱うためのアルゴリズム" -#no-translate +# no-translate #: Game.Levels.AdvMultiplication.L05le_mul_right msgid "le_mul_right" msgstr "le_mul_right" @@ -5681,16 +5638,16 @@ msgstr "" "\n" "§0\n" "\n" -"現在、自然数の除法の基本理論を設定するために必要なすべてのツールを備えています。" +"これまでに得られたツールを用いて、自然数の除法の基本的な理論を構築することが可能になりました。" -#no-translate +# no-translate #: Game.Levels.Multiplication.L06two_mul msgid "two_mul" msgstr "two_mul" #: Game.Levels.Algorithm.L04add_algo3 msgid "the simplest approach" -msgstr "最も単純なアプローチ" +msgstr "最もシンプルなアプローチ" #: Game.Levels.Implication.L01exact #. §0: $P\\implies Q$ @@ -5707,8 +5664,8 @@ msgid "" "The §3 tactic can be used to close a goal which is exactly one of\n" "the hypotheses. It takes the name of the hypothesis as argument: §4." msgstr "" -"このワールドでは、形式 §0 の定理を証明する方法を学びます。\n" -"つまり、「§1 が真なら、§2 が真である」という形式の定理を証明する方法です。\n" +"このワールドでは、形式 §0 の定理の証明方法を学びます。\n" +"つまり、「§1 が真ならば、§2 が真である」という形式の定理を証明する方法です。\n" "そのためには、いくつかのタクティクを学ぶ必要があります。\n" "\n" "§3 のタクティクは、仮定のうち厳密に一つの目標を閉じるために使用できます。このタクティクには仮定の名前が引数として与えられます:§4。" @@ -5717,7 +5674,7 @@ msgstr "" msgid "" "So that's the algorithm: now let's use automation to perform it\n" "automatically." -msgstr "そのアルゴリズムはこれです:今度は自動化を使って自動的に実行させましょう。" +msgstr "したがって、このアルゴリズムを使用します。次に、このアルゴリズムを自動的に実行するために、自動化ツールを使用しましょう。" #: Game.Levels.AdvMultiplication #. §0: `x + y = 0 → x = 0` @@ -5741,21 +5698,19 @@ msgid "" "true under the additional hypothesis that one of the variables is non-zero.\n" "This causes some unexpected extra twists." msgstr "" -"高度な *加算*ワールドでは、加算に関する様々な命題(§0, §1など)が証明されました。\n" +"高度な *加算* ワールドでは、加算に関する様々な命題(§0, §1など)が証明されました。\n" "これらの補題は、≤ワールドにおける≤に関する基本的な事実の証明に使用されました。\n" "\n" -"高度な *乗算*ワールドでは、乗算に関する類似した事実(§2など)が証明され、\n" -"§3(後者の結果では§4を仮定)も証明されました。これにより、*整除*ワールドに備えることができます。\n" +"高度な *乗算* ワールドでは、乗算に関する類似した事実(§2など)が証明され、\n" +"§3(後者の結果では§4を仮定)も証明されました。これにより、*整除*ワールドへの移行準備ができます。\n" "\n" -"*乗算*ワールドは、*加算*ワールドよりも複雑です。同様に、高度な *乗算* ワールドは、高度な " -"*加算*" -"ワールドよりも複雑です。これは、ある変数が非ゼロであるという追加の仮定の下でのみ成り立つ特定の中間結果があるためです。これにより、予想外の追加の複雑さが生" -"じます。" +"*乗算* ワールドは、 *加算* ワールドよりも複雑です。同様に、高度な *乗算* ワールドは、高度な *加算* ワールドよりも複雑です。これは、ある変数がゼロでない" +"という追加の仮定の下でのみ成り立つ特定の中間結果があるためです。これにより、予期せぬ追加の複雑さが生じます。" #: Game.Levels.Algorithm.L03add_algo2 #. §0: `simp only [add_left_comm, add_comm]` msgid "Solve this level in one line with §0" -msgstr "このレベルを一行で解いてください: §0" +msgstr "このレベルを、1行で解決してください:§0" #: Game.Levels.Algorithm.L05pred #. §0: `succ_inj` @@ -5764,9 +5719,8 @@ msgid "" "Nice! You've proved §0!\n" "Let's now prove Peano's other axiom, that successors can't be §1." msgstr "" -"ナイス! あなたは§0を証明しました!\n" -"\n" -"今度はペアノの他の公理、すなわち後続が§1にならないことを証明しましょう。" +"素晴らしい!あなたは§0を証明されました!\n" +"次に、ペアノの別の公理である「後続が§1にならない」ことを証明しましょう。" #: Game.Levels.Tutorial.L07add_succ Game.Levels.Addition.L01zero_add #: Game.Levels.Multiplication.L02zero_mul @@ -5797,8 +5751,9 @@ msgid "" "Note that the left hand side contains a multiplication\n" "and then an addition." msgstr "" -"次の目標は「左側と右側の分配律」です、つまり§0と§1。こうしたやや大げさな名前とは異なり、Leanの証明の名前は説明的です。まずは§3の証明である、§2" -"から始めましょう。注意してほしいのは、左辺に乗算が含まれていて、その後に加算があることです。" +"次の目標は「左と右の分配法則」を達成することです。具体的には、式§0と§1" +"についてです。これらの表現はやや冗長ですが、Leanの証明名は説明的であるという原則に従います。まずは、式§3の証明である§2" +"から始めましょう。留意すべき点は、左辺には乗算が含まれており、その後に加算が行われることです。" #: Game.Levels.Power.L10FLT #. §0: `xyzzy` @@ -5809,8 +5764,8 @@ msgid "" "modern word §1. The game won't complain - or notice - if you\n" "prove anything with §2." msgstr "" -"§0は古くから伝わる魔法の呪文で、現代の単語§1の起源とされています。ゲームはあなたの証明に関わらず、§2" -"で何を証明しても文句を言わなかったり、気づかないでしょう。" +"§0は、古くから伝わる魔法の呪文であり、現代の単語§1の起源であると考えられています。ゲームは、あなたがどのような方法で証明を行ったとしても、§2" +"を用いて何を証明したかに関わらず、問題を示しません。" #: Game.Levels.Power.L01zero_pow_zero #. §0: `0 ^ 0 = 0` @@ -5821,8 +5776,8 @@ msgid "" "game; all the later levels come out beautifully with the\n" "convention that §1." msgstr "" -"数学的には、§0 も良い慣習であると主張する学者もいます。しかし、このゲームではその慣習は適切ではありません;§1 " -"の慣習を採用すると、後のすべてのレベルが美しく解決されます。" +"数学者は、§0も有効な慣習であると主張することもあります。しかし、このゲームにおいては、そのような慣習は適切ではありません。§1" +"の慣習を用いると、以降のすべてのレベルが自然に解決されます。" #: Game.Levels.AdvMultiplication.L01mul_le_mul_right #. §0: ``` @@ -5842,7 +5797,7 @@ msgstr "" msgid "" "This level is more important than you think; it plays\n" "a useful role when battling a big boss later on." -msgstr "このレベルは想像以上に重要です;後で大ボスとの戦いにおいて有用な役割を果たします。" +msgstr "このレベルは、想像以上に重要な役割を担います。特に、後で登場する強力なボスとの戦闘において、その有効性が発揮されます。" #: Game.Levels.Tutorial.L05add_zero #. §0: `Add a b` @@ -5862,20 +5817,20 @@ msgid "" "Other theorems about naturals, such as §4, are proved\n" "by induction using these two basic theorems." msgstr "" -"§0、記法§1は通常の自然数の和です。内部では、以下の2つの仮定を用いて定義されています:\n" +"§0、記号§1は、通常の自然数の和を表します。内部的には、以下の2つの仮定を用いて定義されています:\n" "\n" "* §2\n" "\n" "* §3\n" "\n" -"他の自然数に関する定理、例えば§4は、これらの2つの基本定理を使用して帰納法で証明されます。" +"また、§4のような他の自然数に関する定理は、これらの基本定理を用いて帰納法によって証明されます。" #: Game.Levels.AdvMultiplication.L06mul_right_eq_one #. §0: `cases h2 with h0 h1` msgid "" "Now §0 and deal with the two\n" "cases separately." -msgstr "§0 で、二つの場合を別々に処理します。" +msgstr "次に、§0 の内容と、それとは異なるもう一つのケースについて、それぞれ個別に検討します。" #: Game.Levels.Power.L08pow_pow msgid "" @@ -5889,13 +5844,13 @@ msgid "" "\n" "Suddenly the music starts up again. This really is the final boss." msgstr "" -"音楽が静まり返ります。これで終わりですか?\n" +"音楽は静まり返ります。これで終わりですか?\n" "\n" -"まだレベルが2つ残っていることは明らかです。\n" +"まだ2つのレベルが存在することが分かります。\n" "\n" -"通りすがりの数学者が言うには、あなたが構築した構造には数学の名前がないらしいです。だまされた気分です。\n" +"通りすがりの数学者が、「あなたが構築した構造には、数学的な名称がない」と言います。あなたは落胆します。\n" "\n" -"突然、音楽が再開します。これで本当に最終ボスです。" +"突然、再び音楽が流れ始めます。これがまさに最終ボスです。" #: Game.Levels.LessOrEqual.L10le_one #: Game.Levels.AdvMultiplication.L08mul_eq_zero @@ -5904,7 +5859,7 @@ msgstr "" #. §2: `x = 0` #. §3: `x = 1` msgid "§0 is a proof that if §1 then §2 or §3." -msgstr "§0は、§1ならば§2または§3であることの証明。" +msgstr "§0 は、もし §1 が成り立つならば、§2 または §3 が成り立つという証明です。" #: Game.Levels.Tutorial msgid "Tutorial World" @@ -5913,7 +5868,7 @@ msgstr "チュートリアルワールド" #: Game.Levels.Tutorial.L07add_succ #. §0: `rw [one_eq_succ_zero]` msgid "§0 will do this." -msgstr "§0はこれを行います。" +msgstr "§0 は、この操作を実行します。" #: Game.Levels.LessOrEqual.L09succ_le_succ #. §0: `x ≤ 0` @@ -5925,15 +5880,13 @@ msgid "" "in this world will prove which numbers are §2 and §3.\n" "This lemma will be helpful for them." msgstr "" -"§0 から §1 が導かれることを証明しました。\n" -"このワールドの最後の2つのレベルでは、どの数が §2 と §3 " -"であるかを証明します。この補題はこれらにとって役立つでしょう。" +"私たちは、§0 が §1 を意味することを示しました。この世界における最後の2つのレベルにおいて、どの数値が §2 および §3 " +"に該当するかを証明します。この定理は、彼らに非常に役立ちます。" #: Game.Levels.LessOrEqual.L08le_total #. §0: `cases «{e}» with a` msgid "You still don't know which way to go, so do §0." -msgstr "" -"まだ進むべき道がわからないので、§0をしましょう。" +msgstr "まだ進むべき方向が不明なため、§0を実行します。" #: Game.Levels.AdvMultiplication msgid "Advanced Multiplication World" @@ -5955,25 +5908,25 @@ msgid "" "\n" "Click \"Home\" and make your choice." msgstr "" -"以下の最終ボスを倒すためのタクティクスを全部学びました。\n" -"ゲームの最終ボスに向かう旅を始めるには、乗算ワールドに入り始めることができます。\n" +"ゲームの最終ボスを倒すためのすべてのタクティクを習得しました。\n" +"この最終ボスの攻略を目指すには、乗算ワールドへ進んでください。\n" "\n" -"または、含意ワールドで" -"新しいタクティクを学んでみるのも良いでしょう。これらのタクティクは、加算に関するより多くの事実を証明するのに役立ちます。例えば、§0" -"から§1を導き出す方法を学ぶことができます。\n" +"あるいは、含意ワールドで新たなタクティクを学ぶことも可能です。\n" +"これらのタクティクを用いることで、加算に関するより多くの事実を証明できます。\n" +"例えば、§1から§0を導出する方法を学ぶことができます。\n" "\n" -"\"ホーム\"をクリックして選択してください。" +"「ホーム」をクリックして選択してください。" #: Game.Levels.Tutorial.L03two_eq_ss0 Game.Levels.Tutorial.L04rw_backwards #. §0: $2$ #. §1: $0$ msgid "§0 is the number after the number after §1." -msgstr "§0は§1の後の数値の後の数値です。" +msgstr "§0 は、§1 の後に続く数値の後に現れる数値です。" #: Game.Levels.Tutorial.L02rw #. §0: `2 + 2 = 4` msgid "You now know enough tactics to prove §0! Let's begin the journey." -msgstr "あなたはすでに十分なタクティクを習得し、§0を証明することができます!旅の始まりです。" +msgstr "あなたは、十分なタクティクを習得し、§0の証明が可能になりました。それでは、学習の旅を始めましょう。" #: Game.Levels.Multiplication.L03succ_mul #. §0: `succ_mul a b` @@ -5988,13 +5941,14 @@ msgid "" "It could be deduced from §2 and §3, however this argument\n" "would be circular because the proof of §4 uses §5." msgstr "" -"§0は§1の証明です。\n" +"§0 は §1 の証明を示します。\n" "\n" -"しかし、§2と§3から導くことはできますが、この議論は円環的で、§4の証明は§5を使用しているためです。" +"ただし、これは §2 と §3 から導出可能ですが、この議論は循環しており、§4 の証明において §5 が使用されているためです。" +# UIと揃える #: GameServer.RpcHandlers msgid "level completed! 🎉" -msgstr "レベル完成しました!🎉" +msgstr "レベル完了!🎉" #: Game.Levels.Power.L07mul_pow #. §0: `a * b` @@ -6008,19 +5962,17 @@ msgid "" "because §1 swaps the wrong multiplication,\n" "then read the documentation of §2 for tips on how to fix this." msgstr "" -"音楽はますますドラマチックになり、\n" -"指数演算と乗算の相互作用を探求します。\n" +"音楽はますますドラマチックになり、指数演算と乗算の関係を探求します。\n" "\n" -"もし指数乗と乗算の順序を正しく交換できずに\n" -"§1 が誤った乗算を交換してしまう場合、\n" -"§2 のドキュメンテーションを参照して修正方法を確認してください。" +"もし、指数演算と乗算の順序を正しく交換できない場合で、§1 が誤った乗算を交換してしまう場合は、§2 " +"のドキュメンテーションを参照して修正方法を確認してください。" #: Game.Levels.LessOrEqual.L08le_total #. §0: `le_total x y` #. §1: `x ≤ y` #. §2: `y ≤ x` msgid "§0 is a proof that §1 or §2." -msgstr "§0は§1または§2の証明です。" +msgstr "§0 は、§1 または §2 の証明を示すものです。" #: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero #. §0: `ha : 0 ≠ 0` @@ -6028,14 +5980,14 @@ msgstr "§0は§1または§2の証明です。" msgid "" "In the \"base case\" we have a hypothesis §0, and you can deduce anything\n" "from a false statement. The §1 tactic will close this goal." -msgstr "基本的なケースでは、仮定§0が存在します。偽の文から何でも導くことができます。タクティク§1はこの目標を閉じます。" +msgstr "基本的なケースでは、仮定§0が存在します。偽の文から任意の結論を導き出すことができます。§1というタクティクは、この目標を解決します。" -#no-translate +# no-translate #: Game.Levels.Tutorial.L07add_succ msgid "add_succ" msgstr "add_succ" -#no-translate +# no-translate #: Game.Levels.Power.L03pow_one msgid "pow_one" msgstr "pow_one" @@ -6064,13 +6016,13 @@ msgid "" "and\n" "decide your route." msgstr "" -"私の証明:\n" +"私の証明:\n" "§0\n" "\n" -"Leanは定理証明システムですが、現在では十分な量の理論が開発されておらず、適切な計算機としての機能を発揮するまでには至っていません。アルゴリズムワール" -"ドでは、よりコンピュータサイエンス寄りのワールドで、このような問題を扱うための機械を開発し、§1" -"のような目標を達成することが可能になります。あるいは、不等式の理論を実現するための補題を証明する高度な加算ワールドでより多くの数学を学ぶこともできます。" -"\"ホーム\"をクリックし、あなたのルートを選択してください。" +"Leanは定理証明システムですが、現時点では十分な量の理論が開発されておらず、適切な計算機としての機能を十分に備えていません。アルゴリズムワールドでは、" +"よりコンピュータサイエンスに特化した環境で、このような問題を扱うための機械を開発し、§1" +"のような目標を達成することが可能になります。あるいは、不等式の理論を実現するための補題を証明する高度な加算ワールドで、より多くの数学を学ぶこともできます" +"。「ホーム」をクリックして、ご自身のルートを選択してください。" #: Game.Levels.Tutorial.L03two_eq_ss0 #. §0: `rw [two_eq_succ_one, one_eq_succ_zero]` @@ -6078,16 +6030,17 @@ msgstr "" msgid "" "Note that you can do §0\n" "and then §1 to solve this level in two lines." -msgstr "§0 を実行し、その後 §1 を実行することで、このレベルを二行で解くことができることを留意してください。" +msgstr "" +"§0を実行し、その後§1を実行することで、このレベルを2行で解くことができます。" -#no-translate +# no-translate #: Game.Levels.AdvAddition.L05add_right_eq_zero msgid "add_right_eq_zero" msgstr "add_right_eq_zero" #: Game.Levels.Tutorial.L05add_zero msgid "Adding zero" -msgstr "0を加える" +msgstr "ゼロを加える" #: Game.Levels.Addition.L03add_comm msgid "" @@ -6096,10 +6049,10 @@ msgid "" "Look in your inventory to see the proofs you have available.\n" "These should be enough." msgstr "" -"[ボスバトルミュージック]\n" +"[ボスバトル音楽]\n" "\n" -"あなたのインベントリを確認して、利用可能な証明を確認してください。\n" -"これらの証明は十分なはずです。" +"あなたのインベントリを確認し、利用可能な証明を確認してください。\n" +"これらで十分であるはずです。" #: Game.Levels.Algorithm.L02add_algo1 #. §0: $a, b$ @@ -6110,7 +6063,7 @@ msgid "" "If §0, §1 and §2 are numbers, we have\n" "§3" msgstr "" -"もし§0, §1, §2 が数値である場合、以下のようになります。\n" +"もし §0, §1, §2 が数値である場合、以下のようになります。\n" "§3" #: Game.Levels.AdvMultiplication.L07mul_ne_zero @@ -6128,17 +6081,17 @@ msgid "" "is to write both §3 and §4 as §5 of something, deduce that §6 is\n" "also §7 of something, and then §8." msgstr "" -"このレベルでは、§0 と §1 であることを示す必要があります。一つの戦略は、§3 と §4 を両方とも §5 の何かの §6 であると書き、それから " -"§7 であることを導き、最後に §8 とします。" +"このレベルでは、§0 と §1 であることを証明する必要があります。一つの戦略は、§3 と §4 をそれぞれ「〜の §6」という形で定義し、そこから " +"§7 が同様に「〜の §7」であると導出し、最後に §8 を示すことです。" -#no-translate +# no-translate #: Game.Levels.Power.L02zero_pow_succ msgid "zero_pow_succ" msgstr "zero_pow_succ" #: Game.Levels.LessOrEqual.L07or_symm msgid "Ready for the boss level of this world?" -msgstr "このワールドのボスレベルの準備は出来ていますか?" +msgstr "この世界の最終ボス戦に挑戦する準備はできていますか?" #: Game.Levels.Multiplication.L07mul_add #. §0: `mul_add a b c` @@ -6149,9 +6102,9 @@ msgid "" "\n" "§0 is the proof that §1." msgstr "" -"乗算は左側で加算に分配します。\n" +"乗算は、加算に対して左側で分配されます。\n" "\n" -"§0は§1の証明です。" +"§0 は §1 の証明です。" #: Game.Levels.Algorithm msgid "Algorithm World" @@ -6161,7 +6114,7 @@ msgstr "アルゴリズムワールド" #. §0: `add_succ a b` #. §1: `a + succ b = succ (a + b)` msgid "§0 is the proof of §1." -msgstr "§0は§1の証明です。" +msgstr "§0 は §1 の証明です。" #: Game.Levels.Power.L10FLT msgid "" @@ -6169,7 +6122,7 @@ msgid "" "\n" "Either that, or you used magic..." msgstr "" -" おめでとうございます! あなたはフェルマーの最終定理を証明しました!\n" +"おめでとうございます!あなたはフェルマーの最終定理を証明されました。\n" "\n" "もしくは、魔法を使用したかもしれません..." @@ -6181,13 +6134,14 @@ msgid "" "§0 is the proof that multiplication is commutative. More precisely,\n" "§1 is the proof that §2." msgstr "" -"§0は乗法が交換律を満たすことを示す証明です。より正確には,\n" -"§1は§2が交換律を満たすことを示す証明です。" +"§0 は、乗算における交換法則の成立を示す証明です。より具体的には、\n" +"§1 は、§2 が交換法則を満たすことを示す証明です。" #: Game.Levels.Tutorial.L04rw_backwards msgid "rewriting backwards" -msgstr "反転して書き換え" +msgstr "逆方向に書き換える" +#, fuzzy #: Game.Levels.LessOrEqual.L01le_refl #. §0: `use` #. §1: `x` @@ -6224,13 +6178,13 @@ msgid "" msgstr "" "## 概要\n" "\n" -"§0 タクティクは、何かが存在することを主張する目標に対して進展を遂げます。\n" -"もし目標が何かが特定の性質を持つ存在することを主張し、その存在を知る方法が §2 である場合、§3 は進展を遂げます。\n" +"§0 タクティクは、「何かが存在する」という主張を含む目標に対して、進展を促します。\n" +"もし目標が「ある特定の性質を持つものが存在する」と主張し、その存在を示す方法が §2 である場合、§3 は進展を促します。\n" "\n" -"§4 は \"存在する §5 が §6 である\" という主張を表す記号であり、目標が §7 のような形の場合、§8 することで、道徳的に §9 " -"(つまり §10) とみなされる番号で進展を遂げることができます。\n" +"§4 は「§6 を満たす §5 が存在する」という主張を表す記号であり、目標が §7 のような形式の場合、§8 を行うことで、道徳的に §9 (つまり §10) " +"とみなされる番号を用いて進展させることができます。\n" "\n" -"以下の例のいずれかが可能であると仮定して、§11 関数に渡される引数の型が正確である場合:\n" +"以下のいずれかの例が可能です(ただし、§11 関数に渡される引数の型が正確である場合):\n" "\n" "- §12\n" "- §13\n" @@ -6250,7 +6204,7 @@ msgid "" "\n" " Let's continue on our journey to §4, the proof of §5." msgstr "" -"この補題は、§0を知っていたら簡単だったでしょう。その定理は§1と呼ばれ、**真**です。しかし、残念ながらその証明は§2と§3を**使用**" -"しています!\n" +"この補題は、§0を知っていれば簡単に証明できたでしょう。その定理は§1と呼ばれ、**真**ですが、残念ながらその証明には§2と§3の両方が**使用**" +"されています!\n" "\n" -"§5の証明である、§4へと進みましょう。" +"次に、§5の証明である§4へと進みましょう。" From 480b92a561ee403cfbc4ecfcf7d2b0d4cdcac370 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Wed, 29 Apr 2026 05:45:16 +0900 Subject: [PATCH 097/147] ja: generate json --- .i18n/ja/Game.json | 665 +++++++++++++++++++++++---------------------- 1 file changed, 336 insertions(+), 329 deletions(-) diff --git a/.i18n/ja/Game.json b/.i18n/ja/Game.json index 59679f56..12681d58 100644 --- a/.i18n/ja/Game.json +++ b/.i18n/ja/Game.json @@ -2,84 +2,86 @@ "≠": "≠", "§0.": "§0.", "§0, with notation §1, is the usual\n product of natural numbers. Internally it is\n via two axioms:\n\n * §2\n\n * §3\n\nOther theorems about naturals, such as §4,\nare proved by induction from these two basic theorems.": - "§0、符号§1を用いたものは、通常の自然数の積です。内部的には、以下の2つの公理によって定義されます:\n\n* §2\n\n* §3\n\n他の自然数に関する定理、例えば§4は、これらの2つの基本定理から帰納的に証明されます。", + "§1 で表記される §0 は、自然数の積を表す一般的な概念です。内部的には、以下の2つの公理を用いて定義されます:\n\n* §2\n\n* §3\n\nまた、§4のような他の自然数に関する定理は、これらの基本定理から帰納法によって証明されます。", "§0, with notation §1, is the usual\n exponentiation of natural numbers. Internally it is\n defined via two axioms:\n\n * §2\n\n * §3\n\nNote in particular that §4.": - "§0、符号§1を用いたものは通常の自然数の累乗を表します。内部的には、\n\n * §2\n\n * §3\n\nの2つの公理により定義されています。\n\n特に注意すべきは§4です。", + "§0、記号§1を用いる場合は、通常の自然数の累乗を意味します。内部的には、以下の2つの公理によって定義されます。\n\n* §2\n\n* §3\n\n特に注意すべきは§4です。", "§0, with notation §1, is\nthe usual sum of natural numbers. Internally it is defined\nvia the following two hypotheses:\n\n* §2\n\n* §3\n\nOther theorems about naturals, such as §4, are proved\nby induction using these two basic theorems.": - "§0、記法§1は通常の自然数の和です。内部では、以下の2つの仮定を用いて定義されています:\n\n* §2\n\n* §3\n\n他の自然数に関する定理、例えば§4は、これらの2つの基本定理を使用して帰納法で証明されます。", - "§0 will do this.": "§0はこれを行います。", - "§0 will change §1 into §2.": "§0は§1を§2に変換します。", + "§0、記号§1は、通常の自然数の和を表します。内部的には、以下の2つの仮定を用いて定義されています:\n\n* §2\n\n* §3\n\nまた、§4のような他の自然数に関する定理は、これらの基本定理を用いて帰納法によって証明されます。", + "§0 will do this.": "§0 は、この操作を実行します。", + "§0 will change §1 into §2.": "§0 は §1 を §2 に変換します。", "§0 says that §1.\n\nNote that this is not quite true by definition: §2 is\ndefined to be §3 so it's §4, and to prove\nthat this is equal to §5 you need to use induction somewhere.": - "§0 は §1 です。\n\nただし、これは定義によって正確には真ではありません:§2 は §3 と定義されており、§4 となります。この等しいことを証明するには、どこかで帰納法を使用する必要があります。", - "§0 says that §1.": "§0 は §1 を意味します。", - "§0 practice.": "§0 練習。", + "§0 は §1 を意味します。\n\nただし、これは定義によるものではありません:§2 は §3 と定義されているため、§4 となり、これらが等しいことを証明するためには、どこかで数学的帰納法を用いる必要があります。", + "§0 says that §1.": "§0 は、§1 を述べています。", + "§0 practice.": "§0 演習。", "§0 is the theorem that §1.\nYou can prove it by induction on §2 or you can deduce it from §3.": - "§0は§1の定理です。\nこれを証明するには、§2についての帰納法を使用するか、§3から導き出せます。", + "§0 は §1 を示す定理です。\nこの定理を証明するには、§2 に関する数学的帰納法を用いるか、§3 から推論できます。", "§0 is the theorem that §1\nTwo ways to do it spring to mind; I'll mention them when you've solved it.": - "§0は、§1の定理です。\n二つの方法が思い浮かびますが、あなたがそれを解いた後で述べます。", + "§0 は、§1 を証明する定理です。\nこの証明方法は2つ考えられますが、あなたが解決された後に説明します。", "§0 is the theorem that §1": "§0は§1の定理です。", - "§0 is the statement that §1": "§0は§1のステートメントです。", - "§0 is the proof §1.": "§0は§1の証明です。", + "§0 is the statement that §1": "§0 は §1 を表す命題です。", + "§0 is the proof §1.": "§0 は §1 の証明を示す。", "§0 is the proof that §1.\n\nNote: §2 is a §3 lemma.": - "§0は§1の証明です。\n\nNote: §2は§3の補題です。", + "§0 は、§1 の証明を示します。\n\n注:§2 は、§3 の補題です。", "§0 is the proof that §1.\n\nIt could be deduced from §2 and §3, however this argument\nwould be circular because the proof of §4 uses §5.": - "§0は§1の証明です。\n\nしかし、§2と§3から導くことはできますが、この議論は円環的で、§4の証明は§5を使用しているためです。", + "§0 は §1 の証明を示します。\n\nただし、これは §2 と §3 から導出可能ですが、この議論は循環しており、§4 の証明において §5 が使用されているためです。", "§0 is the proof that §1.\n\nIn Lean, §2 is *defined to mean* §3. Hence\n§4 is really a proof of §5.\nHere §6 is a generic false statement. This means that\nyou can §7 if §8 is a proof of §9.": - "§0は§1の証明です。\n\nLeanでは、§2は§3に*定義されており*、 §4は実質的に§5の証明です。ここで§6は一般的な偽の命題です。つまり、§8が§9の証明である場合、§7を行うことができます。", - "§0 is the proof that §1.": "§0は§1の証明です。", + "§0 は §1 の証明を示します。\n\nLean では、§2 が §3 に *定義されている* ことを意味します。したがって、§4 は実際に §5 の証明です。ここで §6 は一般的な偽の命題です。つまり、§8 が §9 の証明である場合、§7 を実行できます。", + "§0 is the proof that §1.": "§0 は、§1 の証明を示しています。", "§0 is the proof that multiplication is commutative. More precisely,\n§1 is the proof that §2.": - "§0は乗法が交換律を満たすことを示す証明です。より正確には,\n§1は§2が交換律を満たすことを示す証明です。", + "§0 は、乗算における交換法則の成立を示す証明です。より具体的には、\n§1 は、§2 が交換法則を満たすことを示す証明です。", "§0 is the proof of §1.\n\n§2 is a §3 lemma, because replacing §4 by §5\nis almost always what you want to do if you're simplifying an expression.": - "§0は§1の証明です。\n\n§2は§3補題であり、§4を§5に置き換えることは、表現を簡略化する際にほとんどが望ましい操作です。", - "§0 is the proof of §1.": "§0は§1の証明です。", - "§0 is the number after the number after §1.": "§0は§1の後の数値の後の数値です。", + "§0 は §1 の証明です。\n\n§2 は §3 の補題であり、§4 を §5 に置換することは、通常、式を簡略化する場合に望ましい操作です。", + "§0 is the proof of §1.": "§0 は §1 の証明です。", + "§0 is the number after the number after §1.": "§0 は、§1 の後に続く数値の後に現れる数値です。", "§0 is the natural numbers, just called \\\\\"numbers\\\\\" in this game. It's\ndefined via two rules:\n\n* §1 (zero is a number)\n* §2 (the successor of a number is a number)\n\n## Game Implementation\n\n*The game uses its own copy of the natural numbers, called §3 with notation §4.\nIt is distinct from the Lean natural numbers §5, which should hopefully\nnever leak into the natural number game.*": - "§0は自然数で、このゲームでは単に「数」呼ばれる。これは以下の2つのルールにより定義される:\n\n* §1(ゼロは数)\n* §2(数の後続も数)\n\n## ゲーム実装\n\n* このゲームは、自身の自然数のコピーを使用し、その自然数は「§3」として呼び、記号は「§4」で表される。これはLeanの自然数「§5」とは異なるもので、希望するとおり自然数ゲームには流入することはない。", + "§0 は自然数を指し、「数」と呼ばれています。このゲームでは、以下の2つのルールを用いて定義されます。\n\n* §1(0は数)\n* §2(数の後続も数)\n\n## ゲームの実装\n\n* このゲームは、独自の自然数のコピーを使用します。「§3」という名前で参照され、記号は「§4」で表されます。これは、Leanの自然数「§5」とは異なり、自然数ゲームに影響を与えることはありません。", "§0 is one of the two axioms\ndefining exponentiation in this game.": - "§0はこのゲームで指数関数を定義する2つの公理の1つです。", + "§0は、このゲームにおける指数関数の定義を定める公理のうちの1つです。", "§0 is one of the\ntwo axioms defining exponentiation in this game.": - "§0はこのゲームで指数関数を定義する2つの公理の1つです。", + "§0は、このゲームにおける指数関数の定義を定める2つの公理のうちの1つです。", "§0 is just as fiddly to prove by induction; but there's a trick\nwhich avoids it. Can you spot it?": - "§0は帰納法で証明するのと同じくらい手間がかかりますが、回避するトリックがあります。見つけることができますか?", - "§0 is good enough to solve this goal.": "§0はこの目標を解決するのに十分です。", + "§0を帰納法で証明することは、同様に複雑です。しかし、それを利用せずに証明できる方法があります。それは何かを見抜けますか?", + "§0 is good enough to solve this goal.": "§0 は、この問題を解決するために十分な情報を提供します。", "§0 is an ancient magic spell, believed to be the origin of the\nmodern word §1. The game won't complain - or notice - if you\nprove anything with §2.": - "§0は古くから伝わる魔法の呪文で、現代の単語§1の起源とされています。ゲームはあなたの証明に関わらず、§2で何を証明しても文句を言わなかったり、気づかないでしょう。", + "§0は、古くから伝わる魔法の呪文であり、現代の単語§1の起源であると考えられています。ゲームは、あなたがどのような方法で証明を行ったとしても、§2を用いて何を証明したかに関わらず、問題を示しません。", "§0 is a proof that §1. But if your goal\nis §2 then §3 will not\nwork! Because the goal means §4 so there\nis no §5 term *directly* in the goal.\n\nUse associativity and commutativity to prove §6.\nYou don't need induction. §7 moves brackets around,\nand §8 moves variables around.\n\nRemember that you can do more targeted rewrites by\nadding explicit variables as inputs to theorems. For example §9\nwill only do rewrites of the form §10, and §11\nwill only do rewrites of the form §12.": - "§0は§1の証明です。しかし、あなたの目標が§2であるなら、§3は機能しません!なぜなら、目標は§4を意味し、目標に直接的に§5の項は存在しないからです。\n\n結びつきと交換律を利用し、§6を証明してください。帰納法は必要ありません。§7は括弧を移動し、§8は変数を移動します。\n\n明示的な変数を定理の入力として追加することで、より的確な書き換えを行うことができます。例えば、§9は形式§10の書き換えのみを実行し、§11は形式§12の書き換えのみを実行します。", + "§0 は §1 の証明です。しかし、あなたの目標が §2 である場合、§3 は機能しません!なぜなら、目標は §4 を意味し、目標に直接的に §5 の項が存在しないからです。\n\n結びつきと交換律を利用して、§6 を証明してください。帰納法は不要です。§7 は括弧の配置を変更し、§8 は変数の配置を変更します。\n\n明示的な変数を用意することで、より的確な書き換えを行うことができます。例えば、§9 は形式 §10 の書き換えのみを実行し、§11 は形式 §12 の書き換えのみを実行します。", "§0 is a proof that §1.\n\nNote that when Lean says §2 it means §3.\n\nNote that §4 cannot be proved by \\\\\"pure thought\\\\\":\nfor example subtraction is not associative, as §5 is not\nequal to §6.": - "§0は§1を証明します。\n\nLeanが§2と言った場合、それは§3を意味します。\n\nLeanでは、§4は「純粋な思考」で証明できません:\n例えば、減算は結合法則を満たさないため、§5は\n§6とは等しくありません。", + "§0 は §1 の証明です。\n\nLean が §2 と言った場合、それは §3 を意味します。\n\nLean では、§4 は「純粋な思考」だけでは証明できません:\n例えば、減算は結合法則を満たさないため、§5 は §6 と等しくありません。", "§0 is a proof that §1.\n\nIt's one way of saying that a divisor of a positive number\nhas to be at most that number.": - "§0は§1の証明です。\n\nこれは正の数の約数がその数以下のことを表現する一方の方法です。", + "§0 は §1 の証明です。\n\nこれは、正の数の約数はその数以下であることを示す一つの方法です。", "§0 is a proof that §1.\n\n## Summary\n\n§2 is really a function, which\neats a number, and returns a proof of a theorem\nabout that number. For example §3 is\na proof that §4.\n\nThe §5 tactic will accept §6\nand will try to figure out which number you omitted\nto input.\n\n## Details\n\nA mathematician sometimes thinks of §7\nas \\\\\"one thing\\\\\", namely a proof of §8.\nThis is just another way of saying that it's a function which\ncan eat any number n and will return a proof that §9.": - "§0は§1の証明です。\n\n## まとめ\n\n§2は実際には関数で、数字を入力するとその数字に関する定理の証明を返します。例えば§3は§4の証明です。\n\n§5のタクティクは§6を受け取り、省略された数字を推測しようとします。\n\n## 詳細\n\n数学者は時として§7を\\\\\"一つのもの\\\\\"と捉え、それは§8の証明であると言えます。これは、任意の数字nを入力すると§9の証明を返す関数であるという別の表現方法です。", - "§0 is a proof that §1.": "§0は§1の証明です。", - "§0 is a proof that §1 or §2.": "§0は§1または§2の証明です。", + "§0は§1の証明です。\n\n## 概要\n\n§2は実際には関数で、数字を入力するとその数字に関する定理の証明を返します。例えば§3は§4の証明です。\n\n§5のタクティクは§6を受け取り、省略された数字を推測しようとします。\n\n## 詳細\n\n数学者は時として§7を「一つのもの」と捉え、それは§8の証明であると言えます。これは、任意の数字nを入力すると§9の証明を返す関数であるという別の表現方法です。", + "§0 is a proof that §1.": "§0 は、§1 の証明を示します。", + "§0 is a proof that §1 or §2.": "§0 は、§1 または §2 の証明を示すものです。", "§0 is a proof that §1\n\nIn Lean, §2 means §3, so this result gets displayed\nas §4.": - "§0は§1の証明です\n\nLeanでは、§2は§3を意味するので、この結果は§4として表示されます。", - "§0 is a proof that §1": "§0は§1の証明です。", - "§0 is a proof that if §1 then §2.": "§0は、§1ならば§2であることの証明。", - "§0 is a proof that if §1 then §2 or §3.": "§0は、§1ならば§2または§3であることの証明。", + "§0 は §1 の証明を示す\n\nLean において、§2 は §3 を意味するため、この結果は §4 として表示されます。", + "§0 is a proof that §1": "§0 は §1 の証明を示すものです。", + "§0 is a proof that if §1 then §2.": "§0 は、§1 が成り立つ場合に §2 が成り立つことを示す証明です。", + "§0 is a proof that if §1 then §2 or §3.": + "§0 は、もし §1 が成り立つならば、§2 または §3 が成り立つという証明です。", "§0 is a proof that if §1 then §2 or §3 or §4.": - "§0は、§1ならば§2または§3または§4であることの証明。", + "§0 は、もし §1 が真ならば、§2 または §3 または §4 がいずれか真であることを示す証明です。", "§0 is a proof that if §1 and §2 then §3.\nMore precisely, it is a proof that §4. In words,\nIf §5 then (pause) if §6 then §7.\n\n## A note on associativity\n\nIn Lean, §8 means §9, because §10 is left associative. However\n§11 is right associative. This means that §12 in Lean means\nexactly that §13 is transitive. This is different to how mathematicians use\n§14; for them, this usually means that §15\nand §16.": - "§0は、§1と§2ならば§3であることを証明しています。\nより正確には、§4を証明しています。言葉で言えば、\n§5ならば(一時停止)§6ならば§7です。\n\n## 結合性に関する注記\n\nLeanでは、§8は§9を意味し、§10は左側から結合します。しかし、§11は右側から結合します。これにより、Leanでは§12は§13が Transitiv(転置的)であることを意味します。これは、数学的な文脈では通常§14を意味しないことを示しています;数学的には、これは通常§15と§16の両方が成り立つことを意味します。", - "§0 is a proof that if §1 and §2 then §3.": "§0は、§1と§2ならば§3であることを証明です。", - "§0 is a proof of §1.\"": "§0は§1の証明です。", + "§0は、§1と§2ならば§3であることを証明しています。\nより正確には、§4を証明しています。具体的には、\n§5ならば(一時停止)、§6ならば§7です。\n\n## 結合性に関する注記\n\nLeanでは、§8は§9を意味し、§10は左から結合します。しかし、§11は右から結合します。これにより、Leanでは§12は§13が転置的であることを意味します。これは、数学的な文脈では通常§14を意味しません;数学的には、これは通常§15と§16の両方が成り立つことを意味します。", + "§0 is a proof that if §1 and §2 then §3.": + "§0 は、§1 と §2 が成り立つとき、§3 が成り立つことを証明します。", + "§0 is a proof of §1.\"": "§0 は §1 の証明である。", "§0 is a proof of §1.\n\nThe reason for the name is that this lemma is \"reflexivity of §2\"": - "§0は§1の証明です。\n\nこの名前の理由は、この補題が\"§2の反射性\"であるためです。", - "§0 is a proof of §1.": "§0は§1の証明です。", + "§0 は §1 の証明です。\n\nこの名称は、「§2 の反射性」であることを示すために付けられました。", + "§0 is a proof of §1.": "§0 は §1 の証明です。", "§0 is a proof of §1 so that was what got rewritten.\nYou can now change §2 to §3 with §4 or §5. You\ncan usually stick to §6 unless you need real precision.": - "§0は§1の証明なので、それが書き換えられた理由です。\nさて、§4や§5を使用して§2を§3に変更することができます。よほどの精度が必要でなければ通常は§6を使用していれば問題ありません。", - "§0 is a proof of the implication §1.": "§0 は §1 から導かれる命題の証明です。", + "§0 は §1 の証明であるため、それが書き換えられた理由です。\n§4 または §5 を使用して §2 を §3 に変更できます。 通常は §6 を使用すれば十分ですが、より厳密な操作が必要な場合は §4 または §5 を使用してください。", + "§0 is a proof of the implication §1.": "§0 は、§1 の推論を示しています。", "§0 is a proof\nthat §1. Note that in Lean §2 prints\nas §3, because the notation for addition is defined to be left\nassociative.": - "§0は§1の証明です。\nLeanでは§2は左結合的に定義されるため、§3として表示されます。", - "§0 is I think quicker than §1.": "§0は、§1より迅速です。", + "§0 は §1 の証明です。\nLean では、加算の演算が左結合的に定義されているため、§2 は §3 として表示されます。", + "§0 is I think quicker than §1.": "§0 は、§1 よりも高速であると推測されます。", "§0 is *notation* for §1. This \"backwards E\"\nmeans \"there exists\". So §2 means that there exists\na number §3 such that §4. This definition works\nbecause there are no negative numbers in this game.\n\nTo *prove* an \"exists\" statement, use the §5 tactic.\nLet's see an example.": - "§0は§1の記号です。この\"反転したE\"は\"存在する\"を意味します。つまり§2は、ある数§3が存在し、かつ§4を満たすことを意味します。この定義は、このゲームには負の数がないため機能します。\n\n\"存在する\"文を*証明*するには、§5のタクティクを使用します。例を見ていきましょう。", + "§0は§1の記号です。「反転したE」とは「存在」を表します。したがって、§2は、「ある数§3が存在し、かつ§4を満たす」ことを意味します。この定義は、このゲームには負の数が含まれないため有効です。\n\n「存在する」文を証明するには、§5のタクティクを使用します。例を見てみましょう。", "§0 is *notation* for §1.\n\nThe reason this is mathematically\nvalid is that if §2 is a true-false statement then §3\nis the logical opposite of §4. Indeed §5 is false,\nand §6 is true!\n\nThe upshot of this is that you can treat §7 in exactly\nthe same way as you treat any implication §8. For example,\nif your *goal* is of the form §9 then you can make progress\nwith §10, and if you have a hypothesis §11 of the\nform §12 then you can §13 if §14 is a proof\nof §15.": - "§0は§1の*表記*です。\n\nこの数学的に有効な理由は、§2が真偽の主張であれば、§3は§4の論理的否定であるからです。実際、§5は偽であり、§6は真です!\n\nこのことから、§7は任意の推論§8と同じように扱うことができます。例えば、あなたの*目標*が§9のような形であれば、§10で進展が可能です。また、仮定§11が§12のような形であれば、§13を行うことができます(ただし、§14が§15の証明である場合)です。", + "§0は§1の*表記*です。\n\nこのことが数学的に成り立つ理由は、§2が真偽に関する主張である場合、§3は§4の論理的な否定であるからです。実際、§5は偽であり、§6は真です!\n\nこのことから、§7を任意の推論§8と同じように扱うことができます。例えば、あなたの*目標*が§9のような形であれば、§10を用いて進展できます。また、仮定§11が§12のような形である場合、§13を行うことが可能です(ただし、§14が§15の証明である場合に限ります)。", "§0 is *notation* for §1.\n\nBecause this game doesn't have negative numbers, this definition\nis mathematically valid.\n\nThis means that if you have a goal of the form §2 you can\nmake progress with the §3 tactic, and if you have a hypothesis\n§4, you can make progress with §5.": - "§0は§1の記号表記です。\n\nこのゲームには負の数が存在しないので、この定義は数学的に有効です。\n\n これは、あなたが§2という形式の目標を持っている場合、\n§3のタクティクを使って進展できることを意味します。また、仮定§4を持っている場合、§5のタクティクを使って進展できます。", + "§0は§1の表記です。\n\nこのゲームには負の数が存在しないため、この定義は数学的に有効です。\n\nこれにより、あなたが§2という形式の目標を持つ場合、§3の手法を用いて進展できます。また、仮定§4を持っている場合、§5の手法を用いて進展できます。", "§0": "§0", "zero_pow_zero": "zero_pow_zero", "zero_pow_succ": "zero_pow_succ", @@ -87,20 +89,20 @@ "zero_mul": "zero_mul", "zero_add": "zero_add", "x ≤ y or y ≤ x": "x ≤ y または y ≤ x", - "x ≤ y and y ≤ z implies x ≤ z": "x ≤ y と y ≤ z から x ≤ z が導かれる。", - "x ≤ y and y ≤ x implies x = y": "x ≤ y と y ≤ x ならば x = y", + "x ≤ y and y ≤ z implies x ≤ z": "x ≦ y かつ y ≦ z ならば、x ≦ z が成り立つ。", + "x ≤ y and y ≤ x implies x = y": "x ≤ y かつ y ≤ x であるとき x = y", "x ≤ succ x": "x ≤ succ x", "x ≤ 1": "x ≤ 1", "x ≤ 0 → x = 0": "x ≤ 0 → x = 0", "two_mul": "two_mul", "try rewriting §0.": "§0で書き換えてみてください.", - "the simplest approach": "最も単純なアプローチ", + "the simplest approach": "最もシンプルなアプローチ", "the rw tactic": "rw タクティク", "succ_mul": "succ_mul", "succ_inj : the successor function is injective": "succ_inj : 後者関数は単射", "succ_add": "succ_add", "succ x ≤ succ y → x ≤ y": " succ x ≤ succ y → x ≤ y", - "rewriting backwards": "反転して書き換え", + "rewriting backwards": "逆方向に書き換える", "pred": "pred", "pow_two": "pow_two", "pow_pow": "pow_pow", @@ -121,16 +123,16 @@ "mul_comm": "mul_comm", "mul_assoc": "mul_assoc", "mul_add": "mul_add", - "making life simple": "生活を単純に", + "making life simple": "よりシンプルな生活を実現する", "making life easier": "生活をより簡単に", - "level completed! 🎉": "レベル完成しました!🎉", + "level completed! 🎉": "レベル完了!🎉", "level completed with warnings… 🎭": "レベルが警告付きで完了しました… 🎭", "le_two": "le_two", "le_mul_right": "le_mul_right", "is_zero": "is_zero", - "intro practice": "intro 練習", + "intro practice": "intro 演習", "intro": "intro", - "intermediate goal solved! 🎉": "中間目標解決しました!🎉", + "intermediate goal solved! 🎉": "中間目標が達成されました!🎉", "eq_succ_of_ne_zero": "eq_succ_of_ne_zero", "decide again": "もう一度 decide", "decide": "decide", @@ -146,517 +148,522 @@ "add_left_comm": "add_left_comm", "add_left_cancel": "add_left_cancel", "add_comm (level boss)": "add_comm (レベルボス)", - "add_assoc (associativity of addition)": "add_assoc (加法の結合律)", - "[final boss music]": "[最終ボスのテーマ]", + "add_assoc (associativity of addition)": "add_assoc (加法に関する結合法則)", + "[final boss music]": "[最終ボス戦のテーマ音楽]", "[dramatic music]. Now are you ready to face the first boss of the game?": - "[ドラマティックな音楽] さあ、ゲーム最初のボス戦に臨む準備はできていますか?", + "[壮大なBGMが流れる]. 続いて、ゲームの最初のボスとの戦闘に備えましょう。", "[boss battle music]\n\nLook in your inventory to see the proofs you have available.\nThese should be enough.": - "[ボスバトルミュージック]\n\nあなたのインベントリを確認して、利用可能な証明を確認してください。\nこれらの証明は十分なはずです。", + "[ボスバトル音楽]\n\nあなたのインベントリを確認し、利用可能な証明を確認してください。\nこれらで十分であるはずです。", "You've now seen all the tactics you need to beat the final boss of the game.\nYou can begin the journey towards this boss by entering Multiplication World.\n\nOr you can go off the beaten track and learn some new tactics in Implication\nWorld. These tactics let you prove more facts about addition, such as\nhow to deduce §0 from §1.\n\nClick \"Home\" and make your choice.": - "以下の最終ボスを倒すためのタクティクスを全部学びました。\nゲームの最終ボスに向かう旅を始めるには、乗算ワールドに入り始めることができます。\n\nまたは、含意ワールドで新しいタクティクを学んでみるのも良いでしょう。これらのタクティクは、加算に関するより多くの事実を証明するのに役立ちます。例えば、§0から§1を導き出す方法を学ぶことができます。\n\n\"ホーム\"をクリックして選択してください。", + "ゲームの最終ボスを倒すためのすべてのタクティクを習得しました。\nこの最終ボスの攻略を目指すには、乗算ワールドへ進んでください。\n\nあるいは、含意ワールドで新たなタクティクを学ぶことも可能です。\nこれらのタクティクを用いることで、加算に関するより多くの事実を証明できます。\n例えば、§1から§0を導出する方法を学ぶことができます。\n\n「ホーム」をクリックして選択してください。", "You want to use §0, which you already\nproved, but you'll have to start with §1 your hypothesis.": - "あなたは既に証明した§0を使用したいですが、仮定から始める必要がありますので、§1から始めなければなりません。", - "You still don't know which way to go, so do §0.": "まだ進むべき道がわからないので、§0をしましょう。", + "既に証明した§0を使用したいですが、まず§1という仮定から始める必要があります。", + "You still don't know which way to go, so do §0.": "まだ進むべき方向が不明なため、§0を実行します。", "You now know enough tactics to prove §0! Let's begin the journey.": - "あなたはすでに十分なタクティクを習得し、§0を証明することができます!旅の始まりです。", + "あなたは、十分なタクティクを習得し、§0の証明が可能になりました。それでは、学習の旅を始めましょう。", "You might want to think about whether induction\non §0 or §1 is the best idea.": - " inductions on §0 や §1 は最良のアイデアでしょうか。", + "推論を行う際に、§0 または §1 に対する再帰的なアプローチが最適かどうかを検討する必要があります。", "You can use §0 to rewrite at §1 instead\nof at the goal.": - "§0で、目標ではなく、§1を書き換えることができます。", + "§0 を使用して、目標ではなく §1 を書き換えることができます。", "You can start a proof by induction on §0 by typing:\n§1.": - "§0について帰納法で証明を開始するためには以下のように入力します:\n§1.", + "帰納法を用いて§0について証明を開始するには、次のように入力してください。\n§1.", "You can read more about the §0 tactic by clicking\non it in the top right.": - "§0 タクティクについて詳しく知るには、右上をクリックしてください。", + "§0 タクティクの詳細については、右上のリンクからご確認ください。", "You can put a §0 in front of any theorem provided to §1 to rewrite\nthe other way around. Look at the docs for §2 for an explanation. Type §3 with §4.": - "任意の定理 §1 に §0 を先頭に付けることで、逆方向に書き換えることができます。詳細は §2 のドキュメントを参照してください。§4をタイプして §3を入力してください。", + "任意の定理 §1 の先頭に §0 を付与することで、その定理を逆方向に記述することができます。詳細については、§2 のドキュメントをご参照ください。「§4」と入力し、その後「§3」を入力してください。", "You can prove §0 in at least three ways.\nEither by induction, or by using §1, or\nby using commutativity. Which do you think is quickest?": - "§0を証明する方法として、少なくとも3つの方法があります。\n帰納法で証明するか、§1を使用するか、または交換律を使用するかです。\nどの方法が最も速いと思いますか?", - "You can probably take it from here.": "おそらく、ここから始めても問題ありません。", + "少なくとも3つの方法で§0を証明できます。\nいずれも、帰納法を用いる方法、§1を利用する方法、または交換律を用いる方法です。\nこれらのうち、最も効率的な方法はどれだとお考えですか?", + "You can probably take it from here.": "ここからでも進めることができるでしょう。", "You can now §0": "§0 ができます", - "You can now finish with §0.": "§0 で完了しましょう。", + "You can now finish with §0.": "これで §0 の部分を完了してください。", "You can make your own tactics in Lean.\nThis code here\n§0\nwas used to create a new tactic §1, which runs\n§2.\nTry running §3 to solve this level!": - "Leanで独自のタクティクを作成することができます。\n以下のコード\n§0\nは新しいタクティク§1の作成に使用され、§2を実行します。\n§3を実行してこのレベルを解いてみてください!", + "Leanでは、独自のタクティクを作成できます。\n以下のコード\n§0\nは、§2を実行する、新しいタクティク§1を作成します。\n§3を実行することで、この問題を解決できます!", "You can just mimic the previous proof to do this one -- or you can figure out a way\nof using it.": - "前の証明を模倣してこれを行うこともできます \n-- または、それを活用する方法を考え出すこともできます。", + "前の証明の手順を参考に、同様の方法でこの証明を行うことができます。\n-- または、それを活用するための別の手段を見つけることも可能です。", "You can do induction on any of the three variables. Some choices\nare harder to push through than others. Can you do the inductive step in\n5 rewrites only?": - "任意の3つの変数について帰納法を適用できます。いくつかの選択肢はもう少し難しいかもしれません。5回の書き換えで帰納的ステップを実行できるでしょうか?", + "任意の3つの変数に対して、帰納法を適用することができます。しかし、すべての選択肢が容易ではありません。5回の書き換えで、帰納的ステップを実行することは可能でしょうか?", "Why did we not just define §0 to be §1? Because we have not\neven *defined* addition yet! We'll do that in the next level.": - "なぜ §0 を §1 に定義しなかったのか?まだ足し算そのものを定義していないからです。次レベルでその定義を行います。", + "なぜ、§0を§1に定義しなかったのでしょうか? それは、まだ足し算の演算自体を定義していないからです。この定義は、次の段階で行います。", "What do you think of this two-liner:\n§0\n\n§1 doesn't just take hypotheses, it will eat any proof which exists\nin the system.": - "この2行についてどう思いますか:\n§0\n\n§1 は、単に仮定を受け取るだけでなく、システム内に存在する任意の証明を処理します。", + "この2行についてどう思いますか:\n§0\n\n§1 は、単に仮定を受け取るだけでなく、システム内に存在する任意の証明を評価します。", "Well done! You now have enough tools to tackle the main boss of this level.": - "よくできました! あなたはこのレベルのメインボスに挑むための十分なツールを手に入れました。", + "よくできました!これで、このレベルのメインボスに対抗するための十分なツールが揃いました。", "Well done!": "よくできました!", "Welcome to tutorial world! In this world we learn the basics\nof proving theorems. The boss level of this world\nis the theorem §0.\n\nYou prove theorems by solving puzzles using tools called *tactics*.\nThe aim is to prove the theorem by applying tactics\nin the right order.\n\nLet's learn some basic tactics. Click on \"Start\" below\nto begin your quest.": - "チュートリアルワールドにようこそ! この世界では定理を証明する基本を学びます。この世界のボスレベルは定理§0です。\n\n定理を証明するには、*タクティク*というツールを使ってパズルを解きます。目標は、適切な順序でタクティクを適用して定理を証明することです。\n\n基本的なタクティクについて学んでみましょう。以下の \"開始\" をクリックして冒険を始めてください。", + "チュートリアルワールドへようこそ!この世界では、定理の証明方法の基本を学びます。この世界の最終ボスは定理§0です。\n\n定理を証明するには、*タクティク*と呼ばれるツールを使ってパズルを解きます。目標は、適切な順序でタクティクを適用して定理を証明することです。\n\n基本的なタクティクについて学びましょう。「開始」をクリックして冒険を始めてください。", "Welcome to Addition World! In this world we'll learn the §0 tactic.\nThis will enable us to defeat the boss level of this world, namely §1.\n\nThe tactics §2, §3 and §4 are the only tactics you'll need to\nbeat all the levels in Addition World, Multiplication World, and Power World.\nPower World contains the final boss of the game.\n\nThere are plenty more tactics in this game, but you'll only need to know them if you\nwant to explore the game further (for example if you decide to 100%\nthe game).": - " 加算ワールドへようこそ!このワールドでは§0 タクティクを学びます。\nこれにより、このワールドのボスレベルを攻略することができます、すなわち§1です。\n\n§2, §3, §4 のタクティクのみが必要で、これらを用いて\n加算ワールド、乗算ワールド、冪乗ワールドのすべてのレベルを攻略することができます。\n冪乗ワールドにはゲームの最終ボスが含まれています。\n\nこのゲームにはもっと多くのタクティクがありますが、それらを知る必要はなく、\nゲームをさらに探索したい場合(例えば、ゲームを100%攻略したい場合)にのみ必要となります。", + "加算ワールドへようこそ!このワールドでは§0 タクティクを学びます。\nこれにより、このワールドのボスレベルを攻略することができます、すなわち§1です。\n\n§2, §3, §4 のタクティクのみが必要で、これらを用いて\n加算ワールド、乗算ワールド、冪乗ワールドのすべてのレベルを攻略することができます。\n冪乗ワールドにはゲームの最終ボスが含まれています。\n\nこのゲームにはもっと多くのタクティクがありますが、それらを知る必要はなく、\nゲームをさらに探索したい場合(例えば、ゲームを100%攻略したい場合)にのみ必要となります。", "We've seen §0, the proof that if §1 then §2.\nNow we'll prove that if §3 then §4 or §5.": - "§0, 仮定§1 から §2 が成り立つことを証明しました。\n次に、仮定§3 から §4 または §5 が成り立つことを証明します。", + "これまでに、仮定 §1 ならば §2 が成り立つことを示す証明 §0 を見てきました。\n次に、仮定 §3 ならば §4 または §5 が成り立つことを証明します。", "We've proved that §0; in Implication World we'll learn\nhow to prove §1.\n\nIn Addition World we proved *equalities* like §2.\nIn this second tutorial world we'll learn some new tactics,\nenabling us to prove *implications*\nlike §3\n\nWe'll also learn two new fundamental facts about\nnatural numbers, which Peano introduced as axioms.\n\nClick on \"Start\" to proceed.": - "私たちは§0を証明しました; 含意ワールドでは、§1を証明する方法を学びます。\n\n加法ワールドでは、§2のような等式を証明しました。\nこの二つ目のチュートリアルワールドでは、新しいタクティクを学び、\nこれを使って§3のような推論を証明できるようになります。\n\nまた、ペアノが公理として導入した自然数に関する二つの新しい基本的事実も学びます。\n\n\"開始\"をクリックして進みましょう。", + "私たちは§0の証明を示しました; 含意ワールドでは、§1を証明する方法について学びます。\n\n加法ワールドでは、§2のような等式を証明しました。\nこの二つ目のチュートリアルワールドでは、新しいタクティク(証明手法)を学び、これを使って§3のような推論を証明できるようになります。\n\nまた、ペアノが公理として導入した自然数に関する二つの新しい基本的事実についても学びます。\n\n「開始」をクリックして進みましょう。", "We've proved that §0 implies §1. The last two levels\nin this world will prove which numbers are §2 and §3.\nThis lemma will be helpful for them.": - "§0 から §1 が導かれることを証明しました。\nこのワールドの最後の2つのレベルでは、どの数が §2 と §3 であるかを証明します。この補題はこれらにとって役立つでしょう。", + "私たちは、§0 が §1 を意味することを示しました。この世界における最後の2つのレベルにおいて、どの数値が §2 および §3 に該当するかを証明します。この定理は、彼らに非常に役立ちます。", "We've just seen that §0, but if §1\nis a successor, then §2. We prove that here.": - "§0 について見てきました。 ですが、もし §1 が後者である場合、 §2 になります。ここではそのことを証明します。", + "これまでに §0 について説明しました。しかし、もし §1 が後続の値であるならば、それは §2 となります。このことの証明を以下に示します。", "We've been adding up two numbers; in this level we will add up three.\n\n What does §0 *mean*? It could either mean §1, or it\n could mean §2. In Lean, §3 means §4.\n\n But why do we care which one it means; §5 and §6 are *equal*!\n\n That's true, but we didn't prove it yet. Let's prove it now by induction.": - "二つの数を足し合わせてきました;このレベルでは三つの数を足し合わせます。\n\n §0は何を意味するのでしょうか?それは §1 か §2 のどちらかです。Leanでは、§3 は §4 と意味が同じです。\n\n しかし、どの意味を持つべきかを気にする必要があるのでしょうか;§5 と §6 は *等しい* のです!\n\n その通りですが、まだ証明していません。帰納法 (`inducution`) で証明しましょう。", + "二つの数を足し合わせる練習をしてきました。このレベルでは、三つの数を足し合わせます。\n\n §0 は何を意味するのでしょうか?それは §1 または §2 のどちらかです。Lean では、§3 と §4 は同じ意味になります。\n\n しかし、どの意味を持つべきかを気にする必要はありません。なぜなら、§5 と §6 は *等しい* からです!\n\n その通りですが、まだ証明していません。帰納法(`inducution`)でを用いて証明しましょう。", "We're going to change that §0 into §1. Start by changing it into\n§2 by executing §3.": "§0 を §1 に変更します。まず、§3 を実行して §0 を §2 に変更します。", "We'll need this lemma to prove that two is prime!\n\nYou'll need to know that §0 is right associative. This means that\n§1 actually means §2.\nThis affects how §3 and §4 work.": - "この定理を使って、2 が素数であることを証明する必要があります!\n\n§0 が右結合であることを知っておく必要があります。\nこれは、§1 が実際に §2 と同じ意味であることを意味します。\nこれにより、§3 と §4 の動作が影響を受けます。", + "この定理を利用して、2 が素数であることを証明できます!\n\n§0 が右結合であるという性質を理解しておく必要があります。\nこれは、§1 が実際に §2 と同じ意味であることを示します。\nこれにより、§3 および §4 の動作が影響を受けます。", "We'd like to prove §0 but right now\nwe can't even *state* it\nbecause we haven't yet defined addition.\n\n## Defining addition.\n\nHow are we going to add §1 to an arbitrary number §2? Well,\nthere are only two ways to make numbers in this game: §3\nand successors. So to define §4 we will need\nto know what §5 is and what §6 is.\nLet's start with adding §7.\n\n### Adding 0\n\nTo make addition agree with our intuition, we should *define* §8\nto be §9. More generally, we should define §10 to be §11 for\nany number §12. The name of this proof in Lean is §13.\nFor example §14 is a proof of §15,\n§16 is a proof of §17, and §18 is a proof\nof §19.\n\nWe write §20, so §21.": - "私たちは§0を証明したいですが、現在では\nその定理を*述べること*すらできません。\nなぜなら、加法をまだ定義していないからです。\n\n## 加法の定義\n\n任意の数§2に§1を加える方法はどのようなものでしょうか?\nこのゲームでは数を生成する方法は2つしかありません:§3\nと後続数。したがって、§4を定義するには\n§5と§6がどのようなものかを知る必要があります。\nまずは§7を加えることにしましょう。\n\n### 0を加える\n\n加法が直感に合致するようにするためには、§8を\n§9とするべきです。より一般的には、任意の数§12に対して\n§10を§11とするべきです。Leanでのこの証明の名前は§13です。\n例えば、§14は§15の証明、§16は§17の証明、§18は§19の証明です。\n\n私たちは§20と書きます、つまり§21です。", + "私たちは§0を証明したいですが、現在では\nその定理を*記述すること*すらできません。\nなぜなら、加法をまだ定義していないからです。\n\n## 加法の定義\n\n任意の数§2に§1を加える方法はどのようなものでしょうか?\nこのゲームでは数を生成する方法は2つしかありません:§3\nと後続数。したがって、§4を定義するには\n§5と§6がどのようなものかを知る必要があります。\nまずは§7を加えることにしましょう。\n\n### 0を加える\n\n加法が直感に合致するようにするためには、§8を\n§9とするべきです。より一般的には、任意の数§12に対して\n§10を§11とするべきです。Leanでのこの証明の名前は§13です。\n例えば、§14は§15の証明、§16は§17の証明、§18は§19の証明です。\n\n私たちは§20と書きます、つまり§21です。", "We want to use §0, but we need a hypothesis §1\nwhich we don't have. Yet. Execute §2 (you can type §3 with §4).\nYou'll be asked to\nprove it, and then you'll have a new hypothesis which you can apply\n§5 to.": - "§0 を使いたいですが、持っていない §1 という仮定が必要です。§2 を実行してください(§3 を §4 で入力できます)。\n求められるまでは証明が必要ですが、証明後には新しい仮定が得られ、それを §5 で適用できます。", + "§0 の使用を試みますが、それには §1 という仮定が必要です。しかし、現時点ではその仮定は用意されていません。§2 を実行してください( §4 を入力すると §3 になります)。\n証明が必要ですが、証明後には新しい仮定が得られ、それを §5 で利用できます。", "We want to reduce this to a hypothesis §0 and a goal §1,\nwhich is logically equivalent but much easier to prove. Remember that §2\nis notation for §3. Click on §4 if you need hints.": - "この部分を仮定§0と目標§1に簡略化したいです。\nこれは論理的に同等ですが、証明がはるかに簡単になります。\n§2は§3の表記法です。ヒントが必要な場合は§4 (訳注: \"より多くのヘルプを表示!\")をクリックしてください。", + "この部分を仮定§0と目標§1に簡略化したいと考えています。\nこれは論理的に同等ですが、証明がはるかに簡単になります。\n§2は§3の表記法です。ヒントが必要な場合は§4 (訳注:\"より多くのヘルプを表示!\")をクリックしてください。", "We still can't prove §0 because we have not talked about the\ndefinition of §1. In Lean, §2 is *notation* for §3.\nHere §4 is a generic false proposition, and §5 is Lean's notation\nfor \"implies\". In logic we learn\nthat §6 is false, but §7 is true. Hence\n§8 is the logical opposite of §9.\n\nEven though §10 does not look like an implication,\nyou should treat it as an implication. The next two levels will show you how.\n\n§11 is a goal which you cannot deduce from a consistent set of assumptions!\nSo if your goal is §12 then you had better hope that your hypotheses\nare contradictory, which they are in this level.": - "まだ §0 を証明することができません。なぜなら §1 の定義について話していなかったからです。Lean では §2 は §3 の *表記* です。\nここでは §4 は一般的な偽命題、§5 は Lean の \"implies\" の表記です。論理学では §6 は偽であり、§7 は真です。したがって\n§8 は §9 の論理的対偶です。\n\n§10 は含意に見えないかもしれませんが、含意 として扱うべきです。次の 2 つのレベルでその方法を学びます。\n\n§11 は一貫性のある仮定から導き出せない目標です!したがって、目標が §12 の場合、仮定が矛盾していることを願うべきで、このレベルではそうしています。", + "まだ §0 の証明はできません。なぜなら、§1 の定義について議論していないからです。Lean では、§2 は §3 の *表記* です。\nここでは §4 は一般的な偽命題であり、§5 は Lean における \"implies\" の表記です。論理学では §6 が偽であると学習しますが、§7 は真です。したがって §8 は §9 の論理的対偶となります。\n\n§10 は含意のように見えないかもしれませんが、含意として扱うべきです。次の 2 つのレベルでその方法を学びます。\n\n§11 は一貫性のある仮定から導き出せない目標です!したがって、目標が §12 の場合、仮定が矛盾していることを期待し、このレベルではそうしています。", "We now start work on an algorithm to do addition more efficiently. Recall that\nwe defined addition by recursion, saying what it did on §0 and successors.\nIt is an axiom of Lean that recursion is a valid\nway to define functions from types such as the naturals.\n\nLet's define a new function §1 from the naturals to the naturals, which\nattempts to subtract 1 from the input. The definition is this:\n\n§2\n\nWe cannot subtract one from 0, so we just return a junk value. As well as this\ndefinition, we also create a new lemma §3, which says that §4.\nLet's use this lemma to prove §5, the theorem which\nPeano assumed as an axiom and which we have already used extensively without justification.": - "効率的な加算を行うアルゴリズムの作成を開始します。\n再帰によって加算を定義したことを思い出してください。\n具体的には、0と後者に対して何を行うかを定義しました。\nLeanの公理として、再帰は自然数などの型から関数を定義する有効な方法であるとされています。\n\n自然数から自然数への新しい関数§1を定義します。これは、入力から1を引こうとする関数です。その定義は以下の通りです:\n\n§2\n\n0から1を引くことはできませんので、無効な値を返します。この定義とともに、新しい補題§3も定義します。これは§4を述べています。\nこの補題を使って、§5(ペアノが公理として仮定し、以前にも正当化せずに頻繁に使用した定理)を証明しましょう。", + "効率的な加算を行うアルゴリズムの作成を開始します。再帰によって加算を定義したことを思い出してください。具体的には、0と後者に対して何を行うかを定義しました。Leanの公理として、再帰は自然数などの型から関数を定義する有効な方法であるとされています。\n\n自然数から自然数への新しい関数§1を定義します。これは、入力から1を引こうとする関数です。その定義は以下の通りです:\n\n§2\n\n0から1を引くことはできませんので、無効な値を返します。この定義とともに、新しい補題§3も定義します。これは§4を述べています。この補題を使って、§5(ペアノが公理として仮定し、以前にも正当化せずに頻繁に使用した定理)を証明しましょう。", "We now have enough to state a mathematically accurate, but slightly\nclunky, version of Fermat's Last Theorem.\n\nFermat's Last Theorem states that if §0 and §1 then §2.\nIf you didn't do inequality world yet then we can't talk about §3,\nso we have to resort to the hack of using §4 for §5,\nwhich guarantees it's big enough. Similarly instead of §6 we\nuse §7.\n\nThis level looks superficially like other levels we have seen,\nbut the shortest solution known to humans would translate into\nmany millions of lines of Lean code. The author of this game,\nKevin Buzzard, is working on translating the proof by Wiles\nand Taylor into Lean, although this task will take many years.\n\n## CONGRATULATIONS!\n\nYou've finished the main quest of the natural number game!\nIf you would like to learn more about how to use Lean to\nprove theorems in mathematics, then take a look\nat [Mathematics In Lean](https://leanprover-community.github.io/mathematics_in_lean/),\nan interactive textbook which you can read in your browser,\nand which explains how to work with many more mathematical concepts in Lean.": - "現在、フェルマーの最終定理の数学的に正確だが、\nやや冗長なバージョンを記述するのに十分な情報があります。\n\nフェルマーの最終定理は、§0 と §1 が成り立つならば、§2 が成り立つ、\nと述べることができます。\nもし「不等式世界」をまだ実装していない場合は、\n§3 について議論できません。そのため、§4 を §5 の代わりに使うという「ハック」に頼る必要があります。\nこれにより、十分な大きさになることが保証されます。\n同様に、§6 の代わりに §7 を使用します。\n\nこのレベルは、これまでに見た他のレベルと似ていますが、\n人間が知っている最も短い解は、数百万行の \nLean コードに変換されます。このゲームの作者である Kevin Buzzard は、\nウィルズとテイラーの証明を Lean に翻訳する作業に取り組んでいますが、\nこの作業には数年かかるでしょう。\n\n## おめでとう!\n\n自然数ゲームの主要な冒険を終えました!\nLeanを使用して数学の定理を証明する方法をさらに学びたい場合は、\n[Leanで数学](https://leanprover-community.github.io/mathematics_in_lean/) を参照してください。\nこれはブラウザで読むことができる対話型教科書で、Leanでより多くの数学的概念を扱う方法を説明しています。", + "現在、フェルマーの最終定理の数学的に正確だが、やや冗長なバージョンを記述するのに十分な情報があります。\n\nフェルマーの最終定理は、 §0 と §1 が成り立つならば、 §2 が成り立つ、と述べることができます。 ≤ ワールド がまだ完了していない場合は、 §3 について議論することができません。そのため、 §4 を §5 の代わりに使うという手法を用いる必要があります。これにより、十分な大きさになることが保証されます。同様に、§6の代わりに§7を使用します。\n\nこのレベルは、これまでに見た他のレベルと似ていますが、人間が知っている最も短い解は、数百万行の Lean コードに変換されます。このゲームの作者である Kevin Buzzard は、ウィルズとテイラーの証明を Lean に翻訳する作業に取り組んでいますが、この作業には数年かかるでしょう。\n\n## おめでとう!\n自然数ゲームの主要な冒険を終えました!\nLeanを使用して数学の定理を証明する方法をさらに学びたい場合は、「Mathematics In Lean」を参照してください。これはブラウザで読むことができる対話型教科書で、Leanでより多くの数学的概念を扱う方法を説明しています。", "We now have enough to prove that multiplication is associative,\nthe boss level of multiplication world. Good luck!": - "乗算が結合的であることを証明できるようになりました。これは乗算ワールドのボスレベルです。幸運を!", + "乗算が結合的であることを証明するための準備は整いました。これは、乗算ワールドのボスレベルです。成功をお祈りします!", "We know §0 is a proof of §1 -- but what\nif we have a hypothesis §2? It's the wrong way around!\n\nThe §3 tactic changes a goal §4 to §5, and a goal §6\nto §7. And §8\ndoes the same for a hypothesis §9. We've proved §10 and called\nthe proof §11; now try proving §12.": - "§0 が §1 の証明であることを知っています。しかし、\nもし §2 という仮定がある場合、それは逆になってしまいます。\n\n§3 のタクティクは、目標 §4 を §5 に、目標 §6 を §7 に変更します。\nまた、§8 も仮定 §9 に対して同様の操作を行います。\n\n§10 を証明し、その証明を §11 と命名しました。\n次に §12 を証明してみてください。", + "私たちは、§0 が §1 の証明であることを知っています。しかし、もし §2 という仮定がある場合、それは逆になってしまいます。\n\n§3 のタクティクは、目標 §4 を §5 に、目標 §6 を §7 に変更します。また、§8 も仮定 §9 に対して同様の操作を行います。\n\n§10 を証明し、その証明を §11 と命名しました。次に §12 を証明してみてください。", "We have seen how to §0 theorems and assumptions\nof the form §1. But what if our *goal* is of the form §2?\nTo prove this goal, we need to know how to say \"let's assume §3 and deduce §4\"\nin Lean. We do this with the §5 tactic.": - "私たちは、形式 §1 の定理や仮定の §0 の方法を見ました。\nしかし、もし私たちの *目標* が形式 §2 の場合は、どうすれば良いでしょうか?\nこの目標を証明するには、Lean \nで \"§3 という仮定を設け、 §4 を導く\" という方法を知る必要があります。これを行うためには、§5 タクティクを使用します。", + "私たちは、形式 §1 の定理や仮定の §0 の方法を見ました。\nしかし、もし私たちの *目標* が形式 §2 の場合は、どうすれば良いでしょうか?\nこの目標を証明するには、Lean で \"§3 という仮定を設け、 §4 を導く\" という方法を知る必要があります。これを行うためには、§5 タクティクを使用します。", "We gave a pretty unsatisfactory proof of §0 earlier on; now give a nicer one.": - "前回の §0 の証明は不十分でしたので、今回はより良い証明方法を示します。", + "これまでの§0の証明は不完全であり、より適切な証明方法を提示します。", "We don't know whether to go left or right yet. So start with §0.": - "まだ左に進むべきか右に進むべきかは分かりません。そのため、§0から始めてみましょう。", + "まだどちらに進むべきか決まっていないため、「§0」から開始しましょう。", "We define a function §0 thus:\n\n§1\n\nWe also create two lemmas, §2 and §3, saying that §4\nand §5. Let's use these lemmas to prove §6, Peano's\nLast Axiom. Actually, we have been using §7 before, but it's handy to have\nthis opposite version too, which can be proved in the same way. Note: you can\ncheat here by using §8 but the point of this world is to show\nyou how to *prove* results like that.\n\nIf you can turn your goal into §9, then the §10 tactic will solve it.": - "関数 §0 を定義します:\n\n§1\n\nまた、補題 §2 と §3 を作成し、§4\nと §5 とします。これらの命題を使って、ペアノの最終公理 §6 を証明しましょう。実際、§7 は以前から使用していましたが、同じ方法で証明できる逆の命題も用意しておくと便利です。注意:ここでは §8 を使用してチートすることができますが、このワールドの目的は、そのような結果を証明する方法を示すことです。\n\n目標を §9 に変換できるなら、§10 タクティクで解決できます。", + "関数 §0 は以下の通り定義します:\n\n§1\n\nまた、補題 §2 と §3 を定義し、それぞれ §4\nと §5 とします。これらの補題を用いて、ペアノの最終公理 §6 の証明を行います。実際、§7 は以前から使用していましたが、同じ方法で証明できる逆の命題も用意しておくと便利です。注意:ここでは §8 を使用して解決することも可能ですが、このワールドの目的は、そのような結果を証明する方法を示すことです。\n\n目標を §9 に変換できれば、§10 タクティクを用いて解決できます。", "Very well done.\n\nA passing mathematician remarks that with you've just proved that §0 is totally\nordered.\n\nThe final few levels in this world are much easier.": - "よくできました。\n\n通りすがりの数学者は、あなたが §0 は完全に順序付けられていることを証明したと述べました。\n\nこのワールドの最後の数レベルははるかに簡単です。", - "Use §0.": "§0を使用してください。", + "素晴らしい成果です。\n\nある数学者が「あなたは、§0 が完全に順序付けされていることを証明しましたね」とコメントしました。\n\nこのワールドの最後の数レベルは、それほど難しくありません。", + "Use §0.": "§0をご利用ください。", "Use §0 and remember that §1 will solve a goal\nif there are hypotheses §2 and §3.": - "§0を使用します。仮定§2と§3があるときに§1で目標を解決できることを思い出してください。", - "Use the previous lemma with §0.": "§0を使用し、前の補題を適用してください。", + "§0を使用します。仮定として§2と§3が存在する場合、§1を用いることで目標を解決できます。", + "Use the previous lemma with §0.": "前の定理を適用するために、§0を使用してください。", "Tutorial World": "チュートリアルワールド", - "Try §0.": "§0を試しましょう。", - "Try §0 to change §1 into §2.": "§0 を使用し、§1 を §2 に変換してみてください。", + "Try §0.": "§0 を実行してみましょう。", + "Try §0 to change §1 into §2.": "§0を使用して、§1を§2に変換することを試みてください。", "Totality of §0 is the boss level of this world, and it's coming up next. It says that\nif §1 and §2 are naturals then either §3 or §4.\nBut we haven't talked about §5 at all. Here's a run-through.\n\n1) The notation for \"or\" is §6. You won't need to type it, but you can\ntype it with §7.\n\n2) If you have an \"or\" statement in the *goal*, then two tactics make\nprogress: §8 and §9. But don't choose a direction unless your\nhypotheses guarantee that it's the correct one.\n\n3) If you have an \"or\" statement as a *hypothesis* §10, then\n§11 will create two goals, one where you went left,\nand the other where you went right.": - "§0 の全域性はこのワールドのボスレベルであり、次に登場します。これは、§1 と §2 が自然数である場合、§3 または §4 であることを言います。\nしかし、§5 については全く話していません。以下は概要です。\n\n1) \"または\" の表記は §6 です。直接入力する必要はありませんが、§7 で入力することができます。\n\n2) 目標に \"または\" の文がある場合、2 つのタクティク §8 と §9 で進めます。ただし、方向を選択する前に、仮定が正しい方向を保証していることを確認してください。\n\n3) 仮定 §10 に \"または\" の文がある場合、§11 は 2 つの目標を作成します。一つは左に進んだ場合、もう一つは右に進んだ場合です。", + "§0 の全域性は、このワールドにおけるボスレベルであり、次に登場します。これは、§1 と §2 が自然数である場合に、§3 または §4 であることを示しています。しかし、§5 についてはまだ触れていません。以下に概要を示します。\n\n1) 「または」の表記は §6 です。「または」を直接入力する必要はありませんが、§7 を使用して入力できます。\n\n2) 目標に「または」という文がある場合、2 つのタクティク §8 と §9 を用いて進めます。ただし、方向を選択する前に、仮定が正しい方向であることを保証していることを確認してください。\n\n3) 仮定 §10 に「または」という文がある場合、§11 は 2 つの目標を作成します。一つは左に進んだ場合に生成され、もう一つは右に進んだ場合に生成されます。", "To solve this level, you need to §0 a number §1 such that §2.": - "このレベルを解くためには、§0 に数値 §1 を指定して §2 にする必要があります。", + "このレベルを解くには、§0 に数値を指定し、§1 とすることで、§2 が成り立つようにする必要があります。", "Those of you interested in speedrunning the game may want to know\nthat §0 will do both rewrites at once.": - "ゲームのスピードランに興味がある方は、§0 が一度に両方のリライトを行うことを知っておくと良いでしょう。", + "ゲームのスピードランにご興味のある方は、`§0` は一度に両方のリライトを実行できます。", "This world introduces exponentiation. If you want to define §0\nthen, as always, you will need to know what §1 is, and\nwhat §2 is, given only §3.\n\nYou can probably guess the names of the general theorems:\n\n * §4\n * §5\n\nUsing only these, can you get past the final boss level?\n\nThe levels in this world were designed by Sian Carey, a UROP student\nat Imperial College London, funded by a Mary Lister McCammon Fellowship\nin the summer of 2019. Thanks to Sian and also thanks to Imperial\nCollege for funding her.": - "このワールドでは指数演算が導入されます。§0を定義するには、常に §1 と §2 が何であるかを知る必要があります。そして、それらを §3 だけを使って推測する必要があります。\n\n一般的な定理の名前はおそらく予想できるでしょう:\n\n * §4\n * §5\n\nこれらのものだけを使って最終ボスレベルを突破できるでしょうか?\n\nこの世界のレベルは、2019年夏にMary Lister McCammon助成金によりImperial College LopndonのUROP学生であるSian Careyによって設計されました。Sianに感謝します。また、Imperial Collegeの助成にも感謝します。", - "This time, use the §0 tactic.": "今回は、§0 タクティクを使用します。", + "このワールドでは指数演算が導入されます。§0を定義するには、常に §1 と §2 が何であるかを知る必要があります。そして、それらを §3 だけを使って推測する必要があります。\n\n一般的な定理の名前はおそらく予想できるでしょう:\n\n * §4\n * §5\n\nこれらのものだけを使って最終ボスレベルを突破できるでしょうか?\n\nこの世界のレベルは、2019年夏にMary Lister McCammon助成金によりImperial College LondonのUROP学生であるSian Careyによって設計されました。Sianに感謝します。また、Imperial Collegeの助成にも感謝します。", + "This time, use the §0 tactic.": "この場合は、§0 タクティクを使用します。", "This level proves §0, the multiplicative analogue of Advanced Addition\nWorld's §1. The strategy is to prove that §2 and then use the\nlemma §3 from §4 world.\n\nWe'll prove it using a new and very useful tactic called §5.": - "このレベルでは、高度な加算ワールドの§1の乗法的な類似である§0を証明します。戦略は、§2を証明し、その後、§4ワールドから§3の補題を使用することです。\n\n新しく非常に有用なタクティク§5を使用して証明します。", + "このレベルでは、高度な加算ワールドの§1の乗法的な類似である§0を証明します。その戦略は、まず§2を証明し、その後、§4ワールドから§3の補題を使用することです。\n\n新しく非常に有用なタクティク§5を用いて証明を行います。", "This level proves that if §0 then §1 or §2. It is\nlogically equivalent to the last level, so there is a very short proof.": - "このレベルは、§0 ならば §1 または §2 であることを証明します。これは最後のレベルと論理的に同等であるため、非常に短い証明があります。", + "このレベルでは、§0ならば§1または§2であることを証明します。これは直前のレベルと同等の論理構造を持つため、非常に短い証明で済みます。", "This level proves that if §0 and §1 then §2. One strategy\nis to write both §3 and §4 as §5 of something, deduce that §6 is\nalso §7 of something, and then §8.": - "このレベルでは、§0 と §1 であることを示す必要があります。一つの戦略は、§3 と §4 を両方とも §5 の何かの §6 であると書き、それから §7 であることを導き、最後に §8 とします。", + "このレベルでは、§0 と §1 であることを証明する必要があります。一つの戦略は、§3 と §4 をそれぞれ「〜の §6」という形で定義し、そこから §7 が同様に「〜の §7」であると導出し、最後に §8 を示すことです。", "This level is more important than you think; it plays\na useful role when battling a big boss later on.": - "このレベルは想像以上に重要です;後で大ボスとの戦いにおいて有用な役割を果たします。", + "このレベルは、想像以上に重要な役割を担います。特に、後で登場する強力なボスとの戦闘において、その有効性が発揮されます。", "This level asks you to prove *antisymmetry* of §0.\nIn other words, if §1 and §2 then §3.\nIt's the trickiest one so far. Good luck!": - "このレベルでは、§0 の *反対称性* を証明する必要があります。\nつまり、§1 かつ §2 ならば §3 です。\nこれまでで最も難しい問題です。運を祈ります!", + "このレベルでは、§0の「反対称性」を証明してください。\nすなわち、「§1かつ§2ならば§3」が成り立つことを示します。\nこれまでのところ、最も難易度の高い問題です。頑張ってください!", "This lemma would have been easy if we had known that §0. That theorem\n is called §1 and it is *true*, but unfortunately its proof *uses* both\n §2 and §3!\n\n Let's continue on our journey to §4, the proof of §5.": - "この補題は、§0を知っていたら簡単だったでしょう。その定理は§1と呼ばれ、**真**です。しかし、残念ながらその証明は§2と§3を**使用**しています!\n\n§5の証明である、§4へと進みましょう。", + "この補題は、§0を知っていれば簡単に証明できたでしょう。その定理は§1と呼ばれ、**真**ですが、残念ながらその証明には§2と§3の両方が**使用**されています!\n\n次に、§5の証明である§4へと進みましょう。", "This is I think the toughest level yet. Tips: if §0 is a number\nthen §1 will split into cases §2 and §3.\nAnd don't go left or right until your hypotheses guarantee that\nyou can prove the resulting goal!\n\nI've left hidden hints; if you need them, retry from the beginning\nand click on \"Show more help!\"": - "これは今までで最も難しいレベルかもしれません。ヒント:もし§0が数値であれば、§1は§2と§3に分岐します。\nそして、仮定が結果の目標を証明できる保証がない限りは左や右には移動しないでください!\n\n隠されたヒントを残しています;必要であれば、最初からやり直し、「より多くのヘルプを表示!」とクリックしてください。", - "The §0 tactic.": "タクティク §0", - "The §0 tactic": "タクティク §0", - "The way to start this proof is §0.": "この証明を始める方法は §0。", + "これはこれまでで最も難しいレベルかもしれません。ヒント:もし§0が数値であるならば、§1は§2と§3に分岐します。\nそして、仮説が結果の目標を証明できることを保証するまでは、左または右に進まないでください!\n\n隠されたヒントも残しています。必要であれば、「より多くのヘルプを表示!」をクリックして最初からやり直してください。", + "The §0 tactic.": "§0 タクティク", + "The §0 tactic": "§0 タクティク", + "The way to start this proof is §0.": "この証明を開始する方法は §0 です。", "The rfl tactic": "rfl タクティク", "The reason §0 is because §1.\nSo you should start this proof with §2.": - "§0は§1であるため成立します。\n従って、この証明は§2から始めるべきです。", + "理由は§0であるため、この命題は正しいと言えます。したがって、この証明は§2から始めるのが適切です。", "The previous lemma can be used to prove this one.": - "前の定理を用いて、この定理を証明することができます。", + "前の定理を用いることで、この定理の証明が可能となります。", "The next result we'll need in §0 World is that if §1 then §2 and §3.\nLet's prove one of these facts in this level, and the other in the next.\n\n## A new tactic: §4\n\nThe §5 tactic will split an object or hypothesis up into the possible ways\nthat it could have been created.\n\nFor example, sometimes you want to deal with the two cases §6 and §7 separately,\nbut don't need the inductive hypothesis §8 that comes with §9.\nIn this situation you can use §10 instead. There are two ways to make\na number: it's either zero or a successor. So you will end up with two goals, one\nwith §11 and one with §12.\n\nAnother example: if you have a hypothesis §13 then you are done, because a false statement implies\nany statement. Here §14 will close the goal, because there are *no* ways to\nmake a proof of §15! So you will end up with no goals, meaning you have proved everything.": - "次に §0 ワールドで必要になる結果は、もし §1 なら §2 と §3 です。\nこのレベルで一つの事実を証明し、次のレベルでもう一つの事実を証明しましょう。\n\n## 新しいタクティク: §4\n\n§5 タクティクは、目的や仮定を生成された可能性のある方法に分割します。\n\n例えば、時々 §6 と §7 の二つのケースを個別に扱いたい場合がありますが、§9 が伴う §8 の帰納的仮定は必要ありません。\nこの状況では、§10 を使用することができます。数を作る方法は二つあります:ゼロか後続です。したがって、二つの目標が残ります。一つには §11 があり、もう一つには §12 があります。\n\n別の例:仮定 §13 がある場合、証明は完了します。偽の命題は任意の命題を導くからです。ここでは §14 が目標を閉じます。なぜなら §15 の証明を作る方法は *ありません*!したがって、目標が残らないため、すべてを証明したということになります。", + "次に §0 ワールドで必要となる結果は、「もし §1 ならば §2 と §3 である」というものです。\nこのレベルで一つの事実を証明し、次のレベルでもう一つの事実を証明しましょう。\n\n## 新しいタクティク: §4\n\n§5 タクティクは、目的や仮定を生成された可能性のある方法に分割します。\n\n例えば、時々 §6 と §7 の二つのケースを個別に扱いたい場合がありますが、§9 が伴う §8 の帰納的仮定は必要ありません。\nこの状況では、§10 を使用することができます。数を作る方法は二つあります:ゼロか後続です。したがって、二つの目標が残ります。一つには §11 があり、もう一つには §12 があります。\n\n別の例:仮定 §13 がある場合、証明は完了します。偽の命題は任意の命題を導くからです。ここでは §14 が目標を閉じます。なぜなら §15 の証明を作る方法は *ありません*!したがって、目標が残らないため、すべてを証明したということになります。", "The music gets ever more dramatic, as we explore\nthe interplay between exponentiation and multiplication.\n\nIf you're having trouble exchanging the right §0\nbecause §1 swaps the wrong multiplication,\nthen read the documentation of §2 for tips on how to fix this.": - "音楽はますますドラマチックになり、\n指数演算と乗算の相互作用を探求します。\n\nもし指数乗と乗算の順序を正しく交換できずに\n§1 が誤った乗算を交換してしまう場合、\n§2 のドキュメンテーションを参照して修正方法を確認してください。", + "音楽はますますドラマチックになり、指数演算と乗算の関係を探求します。\n\nもし、指数演算と乗算の順序を正しく交換できない場合で、§1 が誤った乗算を交換してしまう場合は、§2 のドキュメンテーションを参照して修正方法を確認してください。", "The music dies down. Is that it?\n\nCourse it isn't, you can\nclearly see that there are two levels left.\n\nA passing mathematician says that mathematicians don't have a name\nfor the structure you just constructed. You feel cheated.\n\nSuddenly the music starts up again. This really is the final boss.": - "音楽が静まり返ります。これで終わりですか?\n\nまだレベルが2つ残っていることは明らかです。\n\n通りすがりの数学者が言うには、あなたが構築した構造には数学の名前がないらしいです。だまされた気分です。\n\n突然、音楽が再開します。これで本当に最終ボスです。", + "音楽は静まり返ります。これで終わりですか?\n\nまだ2つのレベルが存在することが分かります。\n\n通りすがりの数学者が、「あなたが構築した構造には、数学的な名称がない」と言います。あなたは落胆します。\n\n突然、再び音楽が流れ始めます。これがまさに最終ボスです。", "The lemma proved in the final level of this world will be helpful\nin Divisibility World.": - "最終レベルで証明された補題は、整除世界で役立つでしょう。", + "最終段階で証明された定理は、整除ワールドの問題を解決する上で役立ちます。", "The inductive hypothesis §0 is \"For all natural numbers §1, §2\".\nYou can §3 it §4 any hypothesis of the form §5.": - "帰納的仮定 §0 は \"全ての自然数 §1 について §2\" です。\nあなたは 仮定 §5 の形に対して、 §3 できます。\n(訳注: 原文は \"You can §3 it §4 any hypothesis of the form §5.\" です。\nつまり、 §3 §0 §4 §5 のような形で使用できます。)", + "帰納的仮定 §0 は「全ての自然数 §1 について §2」です。\nあなたは、仮定 §5 の形式に対して、これを§3できます。(訳注: 原文は \"You can §3 it §4 any hypothesis of the form §5.\" です。\nつまり、 §3 §0 §4 §5 のような形で使用できます。)", "The goal in this level is one of our hypotheses. Solve the goal by executing §0.": - "このレベルの目標は、私たちの仮定の一つです。目標を達成するには、§0 を実行してください。", + "このレベルの目標は、当方の仮説の一つです。目標を達成するためには、§0を実行してください。", "The first sub-boss of Multiplication World is §0.\n\nWhen you've proved this theorem we will have \"spare\" proofs\nsuch as §1, which is now easily deducible from §2.\nBut we'll keep hold of these proofs anyway, because it's convenient\nto have exactly the right tool for a job.": - "乗算ワールドの最初のサブボスは§0です。\n\nこの定理を証明すると、「余裕」のある証明が得られます。\n例えば、§2から容易に導かれる§1があります。\nしかし、これらの証明は手元に置いておくことにします。\n必要な仕事に適切な道具を持つためです。", - "The classical introduction game for Lean.": - "The classical introduction game for Lean 4。\n\n## 日本語翻訳\nLean 4 の古典的な導入ゲーム。", - "Start with §0. This will change §1 to §2.": "0を入力して開始します。すると、§1が§2に変更されます。", - "Start with §0.": "§0 で開始します。", + "乗算ワールドの最初のサブボスは§0です。\n\nこの定理を証明すると、「余剰」な証明が得られます。\n例えば、§2から容易に導かれる§1があります。\nただし、これらの証明は保持しておきます。\n特定のタスクに適した道具を手元に置いておくためです。", + "The classical introduction game for Lean.": "Lean 4 用の、古典的な導入ゲーム。", + "Start with §0. This will change §1 to §2.": "§0から開始します。これにより、§1は§2に変わります。", + "Start with §0.": "§0 から開始してください。", "Start with §0, to change the goal into its\ncontrapositive, namely a hypothesis of §1 and a goal of §2.": - "開始するには、§0 から始めて、目標を対偶に変更し、具体的には§1 の仮定と§2 の目標にします。", + "開始にあたっては、§0 を出発点とし、目標をその対偶に変換します。具体的には、§1 の仮定と §2 の目標を設定します。", "Start with §0 to push all the brackets to the right.": - "§0から全括弧を右に移動させて、始めましょう。", + "開始時に §0 を使用し、すべての括弧を右側に移動させます。", "Start with §0 to do a case split on §1 and §2.": - "開始するには、§0 を使用して §1 と §2 に対してケース分割を行います。", + "開始にあたり、§0 を用いて §1 と §2 に対してケース分割を実行します。", "Start with §0 to begin to break §1 down into its definition.": - "開始は§0から始めて、§1を定義に分解するところから始めます。", - "Start with §0 to assume the hypothesis.": "§0 を使用して仮定を導入します。", + "まず§0から開始し、そこから§1を定義へと分解していくことから始めましょう。", + "Start with §0 to assume the hypothesis.": "まず、 §0 を使用して仮説を提示します。", "Start with §0 to assume the hypothesis and call its proof §1.": "§0 を使用して仮定を§1とし、開始します。", "Start with §0 to apply §1 to the *goal*.": - "開始するには、§0 を使用して §1 を *目標* に適用します。", - "Start with §0 and §1": "開始するには、§0 と §1 を使用します。", - "Start with §0 and take it from there.": "§0から始めて、そこから続けてください。", + "*目標*に §1 を適用するために、まず §0 を使用してください。", + "Start with §0 and §1": "開始には、§0 と §1 を使用してください。", + "Start with §0 and take it from there.": "開始にあたり、§0から始め、それに基づいて進んでください。", "Start with §0 (remembering that §1 is just notation\nfor §2).": - "§0 から始めましょう(§1 は §2 の表記法であることを覚えておいてください)。", + "§0 から開始してください(§1 が §2 の表記法であるという点にご留意ください)。", "Start with induction on §0.": "§0 に対する帰納法から始めてください。", - "Start by unravelling the §0.": "§0 を解いて開始してください。", + "Start by unravelling the §0.": "まず、§0 を解き始めましょう。", "Split into cases §0 and §1 with §2.": "§2 で§0 と §1 にケースを分けましょう。", - "Solve this level in one line with §0": "このレベルを一行で解いてください: §0", + "Solve this level in one line with §0": "このレベルを、1行で解決してください:§0", "So that's the algorithm: now let's use automation to perform it\nautomatically.": - "そのアルゴリズムはこれです:今度は自動化を使って自動的に実行させましょう。", + "したがって、このアルゴリズムを使用します。次に、このアルゴリズムを自動的に実行するために、自動化ツールを使用しましょう。", "Similarly we have §0\nbut we're going to need §1 (guess what it says -- maybe you\nare getting the hang of Lean's naming conventions).\n\nThe last level from addition world might help you in this level.\nIf you can't remember what it is, you can go back to the\nhome screen by clicking the house icon and then taking a look.\nYou won't lose any progress.": - "同様に §0 もありますが、§1 が必要になります\n(何と書いてあるか想像してみてください。\nLean の命名規則が分かってきたかもしれません)。\n\n加算ワールドの最後のレベルがこのレベルを攻略するのに役立つかもしれません。\n記憶が曖昧な場合は、ホームアイコンをクリックしてホーム画面に戻り、確認してください。\n進捗は失われません。", + "同様に §0 もありますが、§1 が必要です (内容を推測してみてください。Lean の命名規則をご理解いただけているかもしれません)。\n\n加算ワールドの最後のレベルが、このレベルを攻略するのに役立つ可能性があります。もし内容を忘れてしまった場合は、ホーム画面に戻るためにアイコンをクリックしてください。進捗は失われません。", "See the new \"*\" tab in your lemmas, containing §0 and §1.\nRight now these are the only facts we know about multiplication.\nLet's prove nine more.\n\nLet's start with a warm-up: no induction needed for this one,\nbecause we know §2 is a successor.": - "新しい \"*\" タブを確認してください。そこで §0 と §1 が表示されています。\n現在、これらは乗算について知っている唯一の事実です。\nあと9つの証明を行いましょう。\n\nまずはウォームアップから始めましょう。この場合は inducition は必要ありません。\nなぜなら §2 は後者であることが分かっているからです。", + "新しい「*」タブを確認してください。このタブには、§0 と §1 が表示されます。\n現在、これらは乗算に関する唯一の既知的事実です。\nそれでは、さらに9つの定理を証明しましょう。\n\nまずは簡単な例から始めましょう。この場合は、帰納法は不要です。\nなぜなら、§2 は後者であるためです。", "See if you can take it from here. Look at the new lemmas and tactic\navailable on the right.": - "右に新しい補題とタクティクが追加されています。それらを活用してみてください。", - "Remember, §0 is *notation* for §1.": "覚えておいてください、§0は§1の*表記*です。", + "右側に表示された、新たに定義された補題とタクティクをご利用ください。", + "Remember, §0 is *notation* for §1.": "覚えておいてください。§0 は §1 の *表記* です。", "Remember that §0 is a proof of §1. Try\n§2ing §3 either §4 or directly to the goal.": - "§0は§1の証明であることを覚えておいてください。\n§3 の §2 は目標に直接または§4から行うことができます。", + "§0は§1の証明であることを覚えておいてください。\n§2 §3 を、 §4 または直接目標に対して実行できます。", "Remember that when Lean writes §0, it means §1.\nIf you are not sure where the brackets are in an expression, just hover\nyour cursor over it and look at what gets highlighted. For example,\nhover over both §2 symbols on the left hand side of the goal and\nyou'll see where the invisible brackets are.": - "Lean において§0と表示されたとき、§1を意味することを覚えておいてください。.\nもし式内の括弧の位置が不明な場合は、カーソルをその位置にホバーして表示されるハイライトを確認してください。例えば、目標の左側の両方の§2をホバーすると、見えない括弧の位置がわかります。", - "Reduce to the previous lemma with §0": " §0 を使用して、直前の補題に変換します。", - "Ready for the boss level of this world?": "このワールドのボスレベルの準備は出来ていますか?", + "Leanにおいて「§0」と表示された場合、「§1」を意味することを覚えておいてください。もし式内の括弧の位置が不明な場合は、カーソルをその位置にホバーして表示されるハイライトを確認してください。例えば、目標の左側の両方の「§2」をホバーすると、見えない括弧の位置がわかります。", + "Reduce to the previous lemma with §0": "§0 を使用して、直前の補題に変換します。", + "Ready for the boss level of this world?": "この世界の最終ボス戦に挑戦する準備はできていますか?", "Proofs like §0 and §1 are very tedious to do by hand.\nIn Algorithm World we learn how to get the computer to do them for us.\n\nClick on \"Start\" to proceed.": - "§0や§1のような証明は手作業で行うと非常に退屈です。\nアルゴリズムワールドでは、コンピュータにその作業を任せることを学びます。\n\n\"開始\"をクリックして進みましょう。", + "手作業での証明、例えば §0 や §1 のようなものは、非常に手間がかかります。\nアルゴリズムワールドでは、コンピュータにこれらの計算を委ねる方法を学習します。\n\n「開始」ボタンをクリックして、次のステップに進んでください。", "Precision rewriting": "精密な書き換え", "Power World": "冪乗ワールド", "Our next goal is \"left and right distributivity\",\nmeaning §0 and §1. Rather than\nthese slightly pompous names, the name of the proofs\nin Lean are descriptive. Let's start with\n§2, the proof of §3.\nNote that the left hand side contains a multiplication\nand then an addition.": - "次の目標は「左側と右側の分配律」です、つまり§0と§1。こうしたやや大げさな名前とは異なり、Leanの証明の名前は説明的です。まずは§3の証明である、§2から始めましょう。注意してほしいのは、左辺に乗算が含まれていて、その後に加算があることです。", + "次の目標は「左と右の分配法則」を達成することです。具体的には、式§0と§1についてです。これらの表現はやや冗長ですが、Leanの証明名は説明的であるという原則に従います。まずは、式§3の証明である§2から始めましょう。留意すべき点は、左辺には乗算が含まれており、その後に加算が行われることです。", "Our first challenge is §0,\nand we want to prove it by induction. The zero\ncase will need §1 (which we have)\nand §2 (which we don't), so let's\nstart with this.": - "私たちの最初の挑戦は§0です。\nこれは帰納法によって証明したいと思います。\nゼロの場合には§1(持っています)\nと§2(持っていません)が必要なので、まずはこれから始めましょう。", + "最初の課題は§0ですが、帰納法を用いて証明します。\nゼロの場合には§1(定義済み)と§2(定義されていません)が必要です。まずはこの部分から取り組みます。", "One of the best named levels in the game, a savage §0\nsub-boss appears as the music reaches a frenzy. What\nelse could there be to prove about powers after this?": - "ゲームで最も適切に名付けられたレベルの一つとして知られる場面で、音楽が狂熱に達すると凶暴な§0\nサブボスが登場します。それ以降の冪乗について何を証明できるでしょうか?", + "ゲーム内で最も適切に名前が付けられたレベルの一つとして知られる場面では、音楽が最高潮に達すると、凶暴なサブボスが出現します。これ以降、冪乗に関するどのようなことが証明可能でしょうか?", "One day this game will have a Prime Number World, with a final boss\nof proving that §0 is prime.\nTo do this, we will have to rule out things like §1\nWe will do this by proving that any factor of §2 is at most §3,\nwhich we will do using this lemma. The proof I have in mind manipulates the hypothesis\nuntil it becomes the goal, using §4, §5 and\n§6.": - "いつかこのゲームには素数ワールドが追加されるでしょう。最終ボスは§0が素数であることを証明することになります。\nこれを達成するためには、§1のようなものを排除する必要があります。\nこれは、§2の任意の約数のうち最も大きいものが§3であることを証明することで行います。その証明はこの補題を使用します。\n私が考えている証明では、§4、§5、§6を使用して仮定を操作し、\n最終的に目標になるようにします。", + "いつかこのゲームには「素数ワールド」が追加される予定です。最終的なボス戦は、§0 が素数であることを証明することになります。\nこれを実現するためには、§1 などの要素を排除する必要があります。\n具体的には、§2 の任意の因数のうち、最も大きいものが §3 であることを証明します。この証明には、以下の補題を使用します。\n私が考えている証明では、§4、§5、および §6 を用いて、仮定を操作し、最終的に目標(§0 が素数であること)に到達させるようにします。", "On the set of natural numbers, addition is commutative.\nIn other words, if §0 and §1 are arbitrary natural numbers, then\n§2.": - "自然数の集合において、加算は交換律を満たします。\nつまり、任意の自然数 §0 と §1 に対して、\n§2.", + "自然数全体の集合においては、加算は交換法則を満たす。\nすなわち、任意の自然数 §0 と §1 が与えられたとき、\n§2.", "On the set of natural numbers, addition is associative.\nIn other words, if §0 and §1 are arbitrary natural numbers, we have\n§2": - "自然数の集合において、加法は結合法則を満たします。\nつまり、任意の自然数 §0 と §1 に対して、以下の関係が成り立ちます。\n§2", + "自然数全体の集合においては、加算は結合法則に従います。\n言い換えれば、任意の自然数 §0 と §1 が与えられたとき、以下の関係が成り立ちます。\n§2", "Oh no! On the way to §0, a wild §1 appears. §2\nis the proof that §3 for §4 and §5 numbers.\nThis result is what's standing in the way of §6. Again\nwe have the problem that we are adding §7 to things, so we need\nto use induction to split into the cases where §8 and §9 is a successor.": - "うわあ! §0 に向かう途中で、野生の §1 が現れました。 §2 は、 §3 が §4 と §5 の数値に対して成り立つことを証明しています。この結果が §6 の道を阻んでいます。また\n私たちは §7 を何かに加算している問題に直面しており、そのためには §8 と §9 が後者である場合に分けて帰納法を使用する必要があります。", + "大変! §0 に向かう途中、野生の §1 が現れました。 §2 は、§3 が §4 と §5 の数値に対して成り立つことを証明しています。この結果が §6 を達成するのを妨げています。さらに、私たちは §7 を何かに加算しているため、§8 と §9 が後者である場合に帰納法を用いる必要があります。", "Numbers": "数値", "Now §0.": "§0 をしましょう。", - "Now §0 will work.": "現在、§0 が動作するようになります。", - "Now §0 will change §1 into §2.": "§0は§1を§2に変換します。", - "Now §0 to cancel the §1s.": "§0を用いて§1を消去します。", - "Now §0 then §1 works, but §2 is quicker.": "§0 と §1 は正常に動作しますが、§2 はより速いです。", - "Now §0 so you can §1.": "§0 をすると、§1 ができます。", - "Now §0 is the quickest way to\nchange §1 to §2.": "§0は§1を§2に変更する最も迅速な方法です。", + "Now §0 will work.": "現在、§0 は正常に動作します。", + "Now §0 will change §1 into §2.": "§0 は §1 を §2 に変更します。", + "Now §0 to cancel the §1s.": "`§0` を使用して `§1` を消去します。", + "Now §0 then §1 works, but §2 is quicker.": + "現在、§0 および §1 は正しく機能しますが、§2 の方が高速です。", + "Now §0 so you can §1.": "§0 を実行することで、 §1 が可能になります。", + "Now §0 is the quickest way to\nchange §1 to §2.": + "現在、§0 は §1 を §2 に変更するための最も効率的な手段です。", "Now §0 is a proof that §1, and §2 has vanished. Similarly, you can destruct\n§3 into its parts with §4.": - "現在、§0 は §1 の証明です。また、§2 は消えました。同様に、§4 を使用して §3 をその部分に分解できます。", - "Now §0 finishes the job.": "§0 で完了させましょう。", - "Now §0 and you can probably take it from here.": "§0 をします。ここから大丈夫でしょう。", - "Now §0 and deal with the two\ncases separately.": "§0 で、二つの場合を別々に処理します。", + "現在、§0 は §1 の証明を示します。また、§2 は消えました。同様に、§4 を用いて §3 を構成要素に分解することができます。", + "Now §0 finishes the job.": "これで §0 が目的を達成します。", + "Now §0 and you can probably take it from here.": "§0を実行し、ここから推論を進めることができます。", + "Now §0 and deal with the two\ncases separately.": + "次に、§0 の内容と、それとは異なるもう一つのケースについて、それぞれ個別に検討します。", "Now you need to figure out which number to §0. See if you can take it from here.": - "今度は §0 の部分に何を入力するか考えてください。ここから進められるようなら自分で進めてみてください。", + "今度は、 §0 の部分にどのような数値を入力すれば良いか検討してください。この部分から推論を進めることができれば、ご自身で試してみてください。", "Now you have two goals. Once you proved the first, you will jump to the second one.\nThis first goal is the base case §0.\n\nRecall that you can rewrite the proof of any lemma which is visible\nin your inventory, or of any assumption displayed above the goal,\nas long as it is of the form §1.": - "現在、2つの目標があります。最初の目標を証明すると、次の目標に移ります。\nこの最初の目標は基本ケース §0 です。\n\nあなたのインベントリで表示されている任意の補題の証明、または目標の上に表示されている任意の仮定の証明を再書き換えすることができます。ただし、その形式は §1 である必要があります。", + "現在、2つの目標があります。最初の目標を証明すると、次の目標に進みます。\nこの最初の目標は基本ケース §0 です。\n\nあなたのインベントリに表示されている任意の補題の証明、または目標の上に表示されている任意の仮定の証明を再利用することができます。ただし、その形式は §1 である必要があります。", "Now you could finish with §0 then §1, but §2\ndoes it in one line.": - "§0 から §1 までで終了できますが、§2 では一行で完了します。", - "Now you can §0.": "§0 が出来ます。", + "現在、§0 と §1 で処理を終えることができますが、§2 は 1 行で完結します。", + "Now you can §0.": "§0 を使用できます。", "Now you can §0": "§0ができます。", "Now we can prove the §0 statement by proving the statement on the right,\nso use the §1 tactic.": - "§0の命題を証明するために、右側の命題を証明することができるため、§1のタクティクを使用します。", + "今では、§0の命題を証明するために、右側の命題を証明することができます。そのため、§1のタクティクを使用します。", "Now use §0 to switch §1 and §2 on the left\nhand side.": - "§0 を使用して左側の §1 と §2 を入れ替えます。", + "§0 を使用して左側の §1 と §2 の位置を入れ替えます。", "Now the goal can be deduced from §0 by pure logic, so use the §1\ntactic.": - "現在の目標は、§0 から純粋な論理で導き出せますので、§1 のタクティクを使用します。", - "Now take apart the existence statement with §0.": "存在文を §0 で 分解します。", + "現在の目標は、§0 から純粋な論理によって導き出すことができます。そのため、§1 のタクティクを使用します。", + "Now take apart the existence statement with §0.": "次に、存在文を §0 を用いて分解します。", "Now rewrite §0 backwards to make the goal\nequal to the hypothesis.": - "§0 を逆順に書き換えることで、目標を仮定に等しくします。", + "§0 を逆順に書き換えることで、目標と仮定を等価にします。", "Now rewrite §0 backwards at §1\nto get the right hand side.": - "§1 に §0 を逆順で書き換え\n右辺を得ます。", + "§1 を §0 で逆順に書き換えて、右辺を得ます。", "Now let's §0 our new theorem. Execute §1\nto change §2 to a proof of §3.": - "それでは、新しい定理を証明しましょう。§0を実行して§1を変更し、§2を§3の証明にします。", + "それでは、新しい定理を §0 しましょう。§1 を実行することで、`§2` を `§3` の証明に変換します。", "Now for the second goal. Here you have the induction hypothesis\n§0, and you need to prove that §1.": - "では、第二の目標に移ります。ここでは、 帰納法の仮定 §0 が与えられており、 §1 を証明する必要があります。", - "Now finish using the §0 tactic.": "§0 タクティクを使用して完了してください。", - "Now finish the job with §0.": "§0で作業を完了してください。", - "Now finish in one line.": "一行で証明を完成させましょう。", - "Now change §0 to §1 in §2.": "0 を §1 に変更してください。", - "Note: this lemma will be useful for the final boss!": "この補題は最終ボス戦で役立つでしょう!", + "では、次の目標に進みます。 ここで示された帰納法の仮定 §0 を用いて、§1 を証明する必要があります。", + "Now finish using the §0 tactic.": "次に、§0 タクティクを使って処理を完了してください。", + "Now finish the job with §0.": "§0を使って作業を完了してください。", + "Now finish in one line.": "一行で証明を完結させます。", + "Now change §0 to §1 in §2.": "§2 の §0 を §1 に変更してください。", + "Note: this lemma will be useful for the final boss!": + "この定理は、最終ボスとの戦闘において役立ちます。", "Note that §0 means §1. Put your cursor\non any §2 in the goal or assumptions to see what exactly it's eating.": - "ノート:§0は§1を意味します。目標や仮定内の任意の§2にカーソルを置くと、それが何を食べているかがわかります。", + "注: §0 は §1 を意味します。目標または前提条件内の任意の §2 にカーソルを置くと、実際にどのようなものを参照しているかを確認できます。", "Note that you can do §0\nand then §1 to solve this level in two lines.": - "§0 を実行し、その後 §1 を実行することで、このレベルを二行で解くことができることを留意してください。", + "§0を実行し、その後§1を実行することで、このレベルを2行で解くことができます。", "Nice! You've proved §0!\nLet's now prove Peano's other axiom, that successors can't be §1.": - "ナイス! あなたは§0を証明しました!\n\n今度はペアノの他の公理、すなわち後続が§1にならないことを証明しましょう。", + "素晴らしい!あなたは§0を証明されました!\n次に、ペアノの別の公理である「後続が§1にならない」ことを証明しましょう。", "Nice!\n\nThe next step in the development of order theory is to develop\nthe theory of the interplay between §0 and multiplication.\nIf you've already done Multiplication World, you're now ready for\nAdvanced Multiplication World. Click on \"Home\" to access it.": - "ナイス!\n\n順序理論の開発の次のステップは、§0と乗算の相互作用の理論を発展させることがです。既に乗算ワールドを学習した場合、現在では高度な乗算ワールドに進むことができます。\"ホーム\"をクリックしてアクセスしてください。", - "Nice!": "ナイス!", - "Next turn §0 into §1 with §2.": "次に、§0 を §1 に変更し、§2 を実行します。", + "素晴らしい!\n\n順序理論の開発における次のステップは、§0と乗算の相互作用に関する理論を発展させることです。すでに「乗算ワールド」を学習済みの場合、現在では「高度な乗算ワールド」に進むことができます。「ホーム」をクリックしてアクセスしてください。", + "Nice!": "素晴らしい!", + "Next turn §0 into §1 with §2.": "次のステップとして、§2 を実行して §0 を §1 に変換します。", "Natural Number Game": "自然数ゲーム", "My proof:\n§0": "私の証明:\n§0", "Multiplication usually makes a number bigger, but multiplication by zero can make\nit smaller. Thus many lemmas about inequalities and multiplication need the\nhypothesis §0. Here is a key lemma that enables us to use this hypothesis.\nTo help us with the proof, we can use the §1 tactic. Click on the tactic's name\non the right to see what it does.": "乗算は通常、数値を大きくしますが、ゼロによる乗算はその数値を小さくすることがあります。そのため、不等式や乗算に関する多くの補題では、§0 の仮定が必要です。この仮定を使用するための重要な補題があります。証明の助けとなるために、§1 のタクティクを使用できます。タクティクの名前を右側でクリックすると、その機能が表示されます。", "Multiplication is distributive over addition on the left.\nIn other words, for all natural numbers §0, §1 and §2, we have\n§3.": - "乗算は左側で加算に対して分配律を満たします。\nつまり、すべての自然数 §0, §1, §2 に対して、以下の関係が成り立ちます。\n§3.", + "乗算は、左から加算に関して分配法則に従います。\nすなわち、任意の自然数 §0, §1, §2 について、以下の関係が成立します。\n§3.", "Multiplication is commutative.": "乗算は交換律を満たします。", "Multiplication is associative.\nIn other words, for all natural numbers §0, §1 and §2, we have\n§3.": - "乗算は結びつきを持ちます。\nつまり、すべての自然数 §0, §1, §2 に対して、\n§3。", + "乗算は結合法則に従います。\n言い換えれば、任意の自然数 §0, §1, §2 について、以下のことが成り立ちます。\n§3。", "Multiplication distributes\nover addition on the left.\n\n§0 is the proof that §1.": - "乗算は左側で加算に分配します。\n\n§0は§1の証明です。", + "乗算は、加算に対して左側で分配されます。\n\n§0 は §1 の証明です。", "Multiplication World": "乗算ワールド", "Mathematicians sometimes debate what §0 is;\nthe answer depends, of course, on your definitions. In this\ngame, §1. See if you can prove it.\n\nCheck out the *Pow* tab in your list of theorems\nto see the new proofs which are available.": - "数学者の間で、§0 は何であるかについて時々議論があります;\nその答えは、もちろん、定義によって異なります。このゲームでは、§1 です。証明できるか試してみてください。\n\n証明一覧のタブから *Pow* (訳注: `^`) をチェックして、利用可能な新しい証明を確認してください。", + "数学者は、§0 が何であるかを議論することがあります。その答えは、定義によって異なります。このゲームでは、§1 です。証明できるかを試してみてください。\n\n証明一覧のタブから *Pow* (訳注: `^`) を選択して、利用可能な新しい証明を確認してください。", "Mathematicians sometimes argue that §0 is also\na good convention. But it is not a good convention in this\ngame; all the later levels come out beautifully with the\nconvention that §1.": - "数学的には、§0 も良い慣習であると主張する学者もいます。しかし、このゲームではその慣習は適切ではありません;§1 の慣習を採用すると、後のすべてのレベルが美しく解決されます。", + "数学者は、§0も有効な慣習であると主張することもあります。しかし、このゲームにおいては、そのような慣習は適切ではありません。§1の慣習を用いると、以降のすべてのレベルが自然に解決されます。", "Many people find §0 easy, but some find §1 confusing.\nIf you find it confusing, then just argue forwards.\n\nYou can read more about the §2 tactic in its documentation, which you can view by\nclicking on the tactic in the list on the right.": - "多くの人は§0を容易に感じますが、一部の人々は§1を混乱させることがあります。\n混乱する場合は、証明を前向きに進めましょう。\n\n§2のタクティクについては、そのドキュメンテーションで詳しく説明しています。タクティクをリストの右側でクリックすることでドキュメンテーションを表示できます。", + "多くの人は§0を容易に理解しますが、一部の人々は§1について混乱することがあります。\nもし混乱する場合は、証明を前向きに進めてください。\n\n§2のタクティクについては、その詳細な説明がドキュメンテーションに記載されています。リストの右側にあるタクティクをクリックすることで、ドキュメンテーションを表示できます。", "Let's warm up with an easy one, which works even if §0.": - "まずは簡単な問題から始めましょう。これは §0 の場合でも成立します。", + "まずは、簡単に問題を解いてみましょう。この問題は、§0 の場合に有効です。", "Let's see if you can use the tactics we've learnt to prove §0.\nTry this one by yourself; if you need help then click on \"Show more help!\".": - "タクティクを用いて§0を証明できるかどうか試してみてください。\n自分で試してみてください;手助けが必要であれば「より多くのヘルプを表示!」をクリックしてください。", + "これまで学んだタクティクを使って、§0の証明が可能か試してみましょう。\nご自身で試すことをお勧めします。もしお手伝いが必要な場合は、「より多くのヘルプを表示!」をクリックしてください。", "Let's now move on to a more efficient approach to questions\ninvolving numerals, such as §0.": - "数値に関連する問題、例えば§0 に対するより効率的なアプローチについて見ていきましょう。", - "Let's now make our own tactic to do this.": "自分独自のタクティクを作成しましょう。", + "数値に関連する問題を扱う場合、例えば§0に対して、より効率的なアプローチを検討しましょう。", + "Let's now make our own tactic to do this.": + "それでは、独自のタクティクを作成して、この機能を実装してみましょう。", "Let's now learn about Peano's second axiom for addition, §0.": - "ペアノの加法に関する第2の公理について、§0 を学んでみましょう。", + "それでは、ペアノの加法の第2の公理、§0 について学びましょう。", "Let's now begin our approach to the final boss,\nby proving some more subtle facts about powers.": - "冪乗に関するより細かい事実を証明して、\n最終ボスへのアプローチをしましょう。", + "それでは、最終ボスの攻略に向けて、さらに詳細な冪乗に関する事実の証明から始めましょう。", "Let's first get §0 into the form §1 so we can\napply §2. First execute §3\nto change the 4 on the right hand side.": - "§0 を §1 の形式に変更してから、§2 を適用することができます。\nまず、§3 を実行して右辺の 4 を変更します。", + "まず、§0 を §1 の形式に変換し、その後 §2 を適用します。\n最初に、§3 を実行して右辺の 4 を変更します。", "Lean's simplifier, §0, is \"§1 on steroids\". It will rewrite every lemma\ntagged with §2 and every lemma fed to it by the user, as much as it can.\n\nThis level is not a level which you want to solve by hand.\nGet the simplifier to solve it for you.": - "Leanの簡約化処理器、§0は「§1の強化版」です。これは、§2でタグ付けされたすべての補題およびユーザーによって与えられたすべての補題をできる限り簡約化します。\n\nこのレベルは手作業で解くべきレベルではありません。\n簡約化処理器に任せて解いてください。", + "Leanの簡約化処理器、§0は「§1の強化版」です。これは、§2でタグ付けされたすべての定理およびユーザーによって与えられたすべての定理をできる限り簡約化します。\n\nこのレベルでは手作業での解決が推奨されません。\n簡約化処理器に任せて解いてください。", "It's all over! You have proved a theorem which has tripped up\nschoolkids for generations (some of them think §0:\nthis is \"the freshman's dream\").\n\nHow many rewrites did you use? I can do it in 12.\n\nBut wait! This boss is stirring...and mutating into a second more powerful form!": - "すべて終了しました!命題を証明し、世紀にわたる学校の問題を解決しました(一部の人は§0: 「若者の夢」と思っているかもしれません)。\n\nあなたはいくつの書き換えを行いましたか?私は12回でできます。\n\nでも待ってください!このボスが動き始め、さらに強力な形に変異しています!", + "すべて終了しました!あなたは、長年にわたって学校教育で問題となっていた命題を証明しました(一部の人は§0: これを「大学生の夢」と捉えているかもしれません)。\n\nあなたは、この命題を証明するために何回も書き換えたでしょうか?私は12回で解決できます。\n\nしかし、待ってください!この問題はまだ解決していません...そして、さらに複雑な形へと進化しています!", "It's \"intuitively obvious\" that there are no numbers less than zero,\nbut to prove it you will need a result which you showed in advanced\naddition world.": - "ゼロ未満の数は存在しないということは「直感的に明らか」ですが、それを証明するには、高度な加算ワールドで示した結果が必要です。", + "ゼロ未満の数が存在しないことは、「直感的に明らか」ですが、これを証明するためには、高度な加算ワールドで示された結果が必要となります。", "Induction on §0 or §1 -- it's all the same in this one.": - "帰納法を用いて §0 または §1 に適用する -- どちらも同じことです。", + "帰納法を適用して、§0または§1に対して -- どちらの場合でも結果は同じです。", "Induction on §0 is the most troublesome, then §1,\nand §2 is the easiest.": - "帰納法は§0が最も難しく、次いで§1で、§2は最も簡単です。", + "帰納法における§0のケースが最も困難であり、次に§1、そして§2が最も容易です。", "In this world we'll learn how to prove theorems of the form §0.\nIn other words, how to prove theorems of the form \"if §1 is true, then §2 is true.\"\nTo do that we need to learn some more tactics.\n\nThe §3 tactic can be used to close a goal which is exactly one of\nthe hypotheses. It takes the name of the hypothesis as argument: §4.": - "このワールドでは、形式 §0 の定理を証明する方法を学びます。\nつまり、「§1 が真なら、§2 が真である」という形式の定理を証明する方法です。\nそのためには、いくつかのタクティクを学ぶ必要があります。\n\n§3 のタクティクは、仮定のうち厳密に一つの目標を閉じるために使用できます。このタクティクには仮定の名前が引数として与えられます:§4。", + "このワールドでは、形式 §0 の定理の証明方法を学びます。\nつまり、「§1 が真ならば、§2 が真である」という形式の定理を証明する方法です。\nそのためには、いくつかのタクティクを学ぶ必要があります。\n\n§3 のタクティクは、仮定のうち厳密に一つの目標を閉じるために使用できます。このタクティクには仮定の名前が引数として与えられます:§4。", "In this world we define §0 and prove standard facts\nabout it, such as \"if §1 and §2 then §3.\"\n\nThe definition of §4 is \"there exists a number §5\nsuch that §6. \" So we're going to have to learn\na tactic to prove \"exists\" theorems, and another one\nto use \"exists\" hypotheses.\n\nClick on \"Start\" to proceed.": - "このワールドで §0 を定義し、その標準的な事実を証明します。例えば、「§1 と §2 が成り立つなら §3 が成り立つ」などです。\n\n§4 の定義は「ある数 §5 が存在して、§6 が成り立つ」です。そのため、「存在」に関する定理を証明するタクティクと、「存在」に関する仮定を使うタクティクを学ぶ必要があります。\n\n\"開始\" をクリックして進みましょう。", + "このワールドで §0 を定義し、その標準的な事実を証明します。例えば、「§1 と §2 が成り立つならば §3 が成り立つ」などです。\n\n§4 の定義は「ある数 §5 が存在して、§6 が成り立つ」です。そのため、「存在」に関する定理を証明するタクティクと、「存在」に関する仮定を使うタクティクを学ぶ必要があります。\n\n\"開始\" をクリックして進みましょう。", "In this world I will mostly leave you on your own.\n\n§0 is the theorem that §1.": - "このワールドでは、基本的にあなた自身で進めていただきます。\n\n§0は、§1の定理です。", + "このワールドでは、基本的にはご自身で学習を進めていただきます。\n\n§0は、§1という定理です。", "In this level, we see inequalities as *hypotheses*. We have not seen this before.\nThe §0 tactic can be used to take §1 apart.": - "このレベルでは、不等式が*仮定*として扱われます。これまでに見られなかった手法です。\n§0 タクティクは、§1 を分解するのに使用できます。", + "このレベルでは、不等式を *仮定* として扱います。これまではこのような扱いがありませんでした。\n§0 タクティクは、§1 を分解するために使用できます。", "In this level, the hypothesis §0 is an *implication*. It says\nthat *if* §1 *then* §2. We can use this\nhypothesis with the §3 tactic. Remember you can click on\n§4 or any other tactic on the right to see a detailed explanation\nof what it does, with examples.": - "このレベルでは、仮定§0は *含意* です。これは「§1 ならば §2」という意味です。この仮定は§3 タクティクを使用して利用できます。右側の任意のタクティク(例:§4)をクリックすることで、その詳細な説明と例を見ることができます。", + "このレベルでは、仮定 §0 は *含意* です。「もし §1 ならば §2」という形で表現されます。この仮定は、§3というタクティクを用いて利用できます。右側の任意のタクティク(例:§4)をクリックすると、その詳細な説明と例を確認できます。", "In this level we're going to prove that §0, where §1 is a secret natural number.\n\nWait, don't we already know that? No! We know that §2, but that's §3.\nThis is §4, which is different.\n\nThe difficulty with proving §5 is that we do not have a *formula* for\n§6 in general, we can only use §7 and §8 once\nwe know whether §9 is §10 or a successor. The §11 tactic splits into these two cases.\n\nThe base case will require us to prove §12, and the inductive step\nwill ask us to show that if §13 then §14. Because\n§15 and successor are the only way to make numbers, this will cover all the cases.\n\nSee if you can do your first induction proof in Lean.\n\n(By the way, if you are still in the \"Editor mode\" from the last world, you can swap\nback to \"Typewriter mode\" by clicking the §16 button in the top right.)": - "このレベルでは、§1 という秘密の自然数について §0 を証明します。\n\n待って、それでは既に知っていることではないですか?いいえ!§2 は分かっていますが、それが §3 です。\nこれは §4 で、異なるものです。\n\n§5 を証明する難しさは、一般の §6 に対する *公式* が存在しないことです。§7 と §8 は §9 が §10 か後続数であることを知ったときにのみ使用できます。§11 のタクティクはこれらの2つの場合に分岐します。\n\n基本的な場合では §12 を証明する必要がありますし、帰納的なステップでは §13 が真なら §14 を示す必要があります。§15 と後続数が数を作る唯一の方法であるため、これで全てのケースをカバーします。\n\nLeanで初めての帰納法証明を試みることができますか?\n\n(ちなみに、最後のワールドで「エディタモード」にいた場合、右上にある §16 ボタンをクリックして「タイプライターモード」に戻ることができます。)", + "このレベルでは、§1という秘密の自然数について、§0を証明します。\n\n待ってください。それでは、既に知っていることではないでしょうか?いいえ!§2は分かっていますが、それは§3です。\nこれは§4で、異なります。\n\n§5を証明する難しさは、一般的に§6に対する*公式*が存在しないことです。§7と§8は、§9が§10であるか後続数であることを知った場合にのみ使用できます。§11のタクティクは、これらの2つの場合に分岐します。\n\n基本的な場合は§12を証明する必要がありますし、帰納的なステップでは、もし§13ならば§14が成り立つことを示す必要があります。なぜなら、§15と後続数が数を作る唯一の方法だからです。これにより、すべてのケースをカバーできます。\n\nLeanで初めての帰納法証明に挑戦してみましょう。\n\n(ちなみに、最後のワールドで「エディタモード」にいた場合は、右上にある§16ボタンをクリックして、「タイプライターモード」に戻ることができます。)", "In this level we prove that if §0 and §1 then §2. It is tricky, for\nseveral reasons. One of these is that\nwe need to introduce a new idea: we will need to understand the concept of\nmathematical induction a little better.\n\nStarting with §3 is too naive, because in the inductive step\nthe hypothesis is §4 but what we know is §5,\nso the induction hypothesis does not apply!\n\nAssume §6 is fixed. The actual statement we want to prove by induction on §7 is\n\"for all §8, if §9 then §10\". This *can* be proved by induction,\nbecause we now have the flexibility to change §11.": - "このレベルでは、§0 と §1 が成り立つ場合、§2 が成り立つことを証明します。\nこれはいくつかの理由で、複雑です。\nそのうちの一つは、新しいアイデアを導入する必要があるためです:\n数学的帰納法の概念をもう少し理解する必要があります。\n\n§3 から始めることは単純すぎるため、帰納的ステップでは仮定は §4 ですが、実際に知っていることは §5 であり、\n従って帰納仮定が適用されません!\n\n§6 を固定します。実際には、§7 による帰納法で証明したい主張は\n「全ての §8 について、§9 が成り立つ場合、§10 が成り立つ」です。これは 帰納法で証明 *できます* 。\nなぜなら、今では §11 を変更できる柔軟性があるからです。", + "このレベルでは、§0 と §1 が成り立つ場合に、§2 が成り立つことを証明します。\nこれはいくつかの理由から複雑です。\nそのうちの一つは、新しいアイデアを導入する必要があるためです:\n数学的帰納法の概念についてもう少し深く理解する必要があります。\n\n§3 から始めるのは単純すぎるため、帰納的ステップでは仮定が §4 ですが、実際には §5 が成り立っているため、帰納仮定は適用できません!\n\n§6 を固定します。実際に証明したい主張は、§7 に関する帰納法による証明で、「全ての §8 について、§9 が成り立つならば §10 が成り立つ」というものです。\nこの主張は帰納法で証明できます。なぜなら、今では §11 を変更できる柔軟性があるからです。", "In this level the *goal* is §0 but to help us we\nhave an *assumption* §1 saying that §2. Check that you can see §3 in\nyour list of assumptions. Lean thinks of §4 as being a secret proof of the\nassumption, rather like §5 is a secret number.\n\nBefore we can use §6, we have to \"substitute in for §7\".\nWe do this in Lean by *rewriting* the goal with §8,\nusing the §9 tactic.": - "このレベルでは、目標は§0ですが、それを手助けするために、§1という*仮定*があります。§2がその内容です。§3が仮定リストに表示されていることを確認してください。Leanは§4を仮定の秘密の証明と見なし、§5は秘密の数値に似ています。\n\n§6を使用する前に、「§7に置き換える」必要があります。Leanでは、§8を使用して目標を書き換え、§9タクティクを使用してこれを実行します。", + "このレベルにおける目標は§0ですが、それを達成するために、§1という仮定があります。その内容は§2です。仮定リストに§3が表示されていることを確認してください。Leanは§4を、仮定の秘密の証明と見なします。これは、§5が秘密の数値に似ています。\n\n§6を使用する前に、「§7に置き換える」必要があります。Leanでは、§8を使用して目標を書き換え、§9タクティクを使用してこれを実行します。", "In this game you recreate the natural numbers §0 from the Peano axioms,\nlearning the basics about theorem proving in Lean.\n\nThis is a good first introduction to Lean!": - "このゲームでは、ペanoの公理から自然数§0を再構築し、Leanでの定理証明の基本を学びます。\n\nこれはLeanへの良い初歩的な入門となります!", + "このゲームでは、ペアノの公理に基づいて自然数 §0 を再構成し、Leanにおける定理証明の基礎を習得します。\n\nこれは、Leanへの優れた入門となるでしょう!", "In the next level, we'll do the same proof but backwards.": - "次のレベルでは、証明を逆方向に進める同じ手続きを行います。", + "次のレベルでは、同様の手続きを用いて、証明を逆方向に展開します。", "In the last level, we manipulated the hypothesis §0\n until it became the goal §1. In this level we'll manipulate\n the goal until it becomes our hypothesis! In other words, we\n will \"argue backwards\". The §2 tactic can do this too.\n Again I will walk you through this one (assuming you're in\n command line mode).": "先程のレベルでは、仮定§0を操作して目標§1にしました。このレベルでは、目標を操作して仮定にします!つまり、「逆向きに議論」することです。§2 タクティクもこれを行うことができます。また、コマンドラインモードで操作していると仮定して、この例を一緒に見ていきましょう。", "In the \"base case\" we have a hypothesis §0, and you can deduce anything\nfrom a false statement. The §1 tactic will close this goal.": - "基本的なケースでは、仮定§0が存在します。偽の文から何でも導くことができます。タクティク§1はこの目標を閉じます。", + "基本的なケースでは、仮定§0が存在します。偽の文から任意の結論を導き出すことができます。§1というタクティクは、この目標を解決します。", "In some later worlds, we're going to see some much nastier levels,\nlike §0.\nBrackets need to be moved around, and variables need to be swapped.\n\nIn this level, §1,\nlet's forget about the brackets and just think about\nthe variable order.\nTo turn §2 into §3 we need to swap §4 and §5,\nand then swap §6 and §7. But this is easier than you\nthink with §8.": - "いくつかの後続のワールドでは、§0のようなもっとひどいレベルを見ることになります。\n括弧は移動させ、変数は入れ替える必要があります。\n\nこのレベル、§1では、括弧は無視して変数の順序だけを考えましょう。\n§2を§3に変更するには、§4と§5を、そして§6と§7を入れ替える必要があります。しかし、§8を使うと意外と簡単にできます。", + "いくつかの後続のワールドでは、より複雑なレベルを見ることになります(例:§0)。\n括弧の位置を調整し、変数の順序を変更する必要があります。\n\nこのレベル(§1)では、括弧は無視して変数の順序のみを考慮しましょう。\n§2から§3への変更には、§4と§5の順序を入れ替え、さらに§6と§7の順序を入れ替える必要があります。しかし、§8を用いることで、意外と簡単に実現できます。", "In order to use the tactic §0 you can enter it in the text box\nunder the goal and hit \"Execute\".": - "タクティク §0 を使用するには、目標の下のテキストボックスに入力し、「実行」をクリックしてください。", + "タクティク §0 を使用するには、目標の下にあるテキストボックスに記述し、「実行」ボタンをクリックしてください。", "In Advanced Addition World we will prove some basic\naddition facts such as §0. The theorems\nproved in this world will be used to build\na theory of inequalities in §1 World.\n\nClick on \"Start\" to proceed.": - "高度な加算ワールドでは、基本的な加法に関するいくつかの事実(§0)を証明します。このワールドで証明された定理は、§1 世界で不等式の理論を構築するために使用されます。\n\n「開始」をクリックして進みましょう。", + "高度な加算ワールドでは、基本的な加法に関するいくつかの事実(§0)の証明を行います。このワールドで証明される定理は、§1ワールドで不等式の理論を構築するために使用されます。\n\n「開始」をクリックして進んでください。", "Implication World": "含意ワールド", "Implementing the algorithm for equality of naturals, and the proof that it is correct,\nlooks like this:\n\n§0\n\nThis Lean code is a formally verified algorithm for deciding equality\nbetween two naturals. I've typed it in already, behind the scenes.\nBecause the algorithm is formally verified to be correct, we can\nuse it in Lean proofs. You can run the algorithm with the §1 tactic.": - "自然数の等価性アルゴリズムの実装とその正確性の証明は、以下のようになります:\n\n§0\n\nこのLeanコードは、二つの自然数間の等価性を決定する形式的に検証されたアルゴリズムです。私たちは既にこのコードをバックヤードで入力しています。アルゴリズムが形式的に正確性を保証されているため、Leanの証明内で使用できます。§1タクティクでアルゴリズムを実行できます。", + "自然数の等価性アルゴリズムの実装とその正当性の証明は、以下のとおりです:\n\n§0\n\nこのLeanコードは、二つの自然数間の等価性を決定する形式的に検証されたアルゴリズムです。私たちは既にこのコードをバックグラウンドで入力しています。アルゴリズムが形式的に正確であることを保証しているため、Leanの証明内で使用できます。「§1」タクティクを使用してアルゴリズムを実行できます。", "If §0, §1 and §2 are numbers, we have\n§3": - "もし§0, §1, §2 が数値である場合、以下のようになります。\n§3", - "If §0, then §1.": "§0ならば、§1。", - "If §0 then §1.": "§0 ならば §1。", - "If §0 then §1 or §2 or §3.": "§0 ならば §1または§2または§3。", - "If §0 then either §1 or §2.": "§0なら、§1または§2。", - "If §0 or §1, then §2 or §3.": "もし§0 または §1 ならば, §2 または §3 。", + "もし §0, §1, §2 が数値である場合、以下のようになります。\n§3", + "If §0, then §1.": "もし §0 ならば、§1 。", + "If §0 then §1.": "§0 ならば、§1。", + "If §0 then §1 or §2 or §3.": "もし §0 が真ならば、§1 または §2 または §3 が少なくとも 1 つが真である。", + "If §0 then either §1 or §2.": "もし §0 が真ならば、§1 または §2 のいずれかが真です。", + "If §0 or §1, then §2 or §3.": "もし §0 または §1 なら、§2 または §3 。", "If §0 is a proof of §1 then §2 will\nturn §3s into §4s. But what if we want to\nturn §5s into §6s? To tell the §7 tactic\nwe want this, we use a left arrow §8. Type\n§9 and then hit the space bar to get this arrow.\n\nLet's prove that §10 is the number after the number\nafter §11 again, this time by changing §12\ninto §13.": - "もし§0が§1の証明であるなら、§2は§3を§4に変換します。しかし、§5を§6に変換したい場合は?§7タクティクに私たちがこの変換を指示するには、左矢印§8を使用します。型§9を入力し、スペースバーを押すとこの矢印が得られます。\n\n次の証明で、§10が§11の後ろの数値の後ろの数値であることを証明しましょう。今回は§12を§13に変換して証明します。", - "If §0 is a number, then §1.": "もし§0が数値なら、§1。", + "もし §0 が §1 の証明である場合、§2 は §3 を §4 に変換します。しかし、§5 を §6 に変換したい場合はどうでしょうか? §7 タクティクに、この変換を指示するために、左矢印 §8 を使用します。 §9 と入力し、スペースキーを押すと、この矢印が得られます。\n\n次の証明で、§10 が §11 の後ろの数値の後ろの数値であることを証明しましょう。今回は §12 を §13 に変換して証明します。", + "If §0 is a number, then §1.": "もし §0 が数値であるならば、§1 は真となる。", "If §0 are numbers, then §1.": "もし§0が数値ならば、§1。", - "If §0 are arbitrary natural numbers, we have\n§1.": "任意の自然数§0について、\n§1.", - "If §0 and §1, then §2.": "もし§0 と §1 なら §2。", + "If §0 are arbitrary natural numbers, we have\n§1.": "任意の自然数§0について、\n§1。", + "If §0 and §1, then §2.": "もし §0 かつ §1 が真ならば、§2 は真である。", "If §0 and §1 then we can deduce a contradiction.": - "もし§0 と §1 ならば、矛盾を導き出すことができます。", + "もし §0 が真であり、かつ §1 も真であるならば、矛盾を導き出すことができます。", "If §0 and §1 are numbers, then §2 is a proof\nthat §3 implies §4. Click on this theorem in the *Peano*\ntab for more information.\n\nPeano had this theorem as an axiom, but in Algorithm World\nwe will show how to prove it in Lean. Right now let's just assume it,\nand let's prove §5 using it. Again, we will proceed\nby manipulating our hypothesis until it becomes the goal. I will\nwalk you through this level.": - "もし§0と§1が数値である場合、§2は§3が§4を導く証明です。*Peano*タブでこの定理について詳しく知ることができます。\n\nPeanoはこの定理を公理としていましたが、アルゴリズムワールドではLeanを使ってこの定理を証明する方法を示すことにします。現在はこの定理を仮定し、§5を用いて証明しましょう。また、証明は仮定を操作して目標に近づけることで進めていきます。このレベルを一緒に進めていきましょう。", - "If §0 and §1 are numbers, then either §2 or §3.": "もし§0と§1が数値ならば、§2または§3。", + "もし §0 と §1 が数値である場合、§2 は §3 が §4 を導くことの証明です。*Peano* タブでこの定理について詳しく知ることができます。\n\nPeanoはこの定理を公理としていましたが、アルゴリズムワールドでは Lean を用いてこの定理を証明する方法を示します。現在ではこの定理を仮定し、§5 を用いて証明しましょう。また、証明は仮定を操作することで目標に近づけることで進めていきます。このレベルについて一緒に学びましょう。", + "If §0 and §1 are numbers, then either §2 or §3.": + "数値である§0と§1の場合、§2または§3のいずれかが真となる。", "If §0 and §1 are natural numbers, and §2, then §3.": - "もし§0と§1が自然数であり、かつ§2である場合、§3です。", + "自然数§0と§1が存在し、かつ§2が真ならば、§3は真である。", "If §0 and §1 are arbitrary natural numbers, we have\n§2.": - "任意の自然数§0と§1について、以下の関係が成り立ちます。\n§2。", + "任意の自然数§0と§1について、以下の関係が成立します。\n§2。", "If §0 and §1 are arbitrary natural numbers, then §2": - "任意の自然数§0と§1が与えられた場合、§2", + "任意の自然数§0と§1が与えられたとき、§2", "If §0 and we know that §1 then we can deduce §2.": - "もし§0であり、§1を知っているなら、§2を導くことができます。", + "§0が真であることと、§1について知っていれば、§2を導き出すことができます。", "If you §0 the wrong number, you get stuck with a goal you can't prove.\nWhat number will you §1 here?": - "もし、間違った数字を §0 に使用した場合、証明できない目標に陥ります。\nどの数値を §1 しますか?", + "もし、間違った数字を §0 した場合、証明不可能な目標に陥ります。\nどのような数字を §1 しますか?", "If you have completed Algorithm World then you can use the §0 tactic\nhere. If not then I'll talk you through a manual approach.": - "もしアルゴリズムワールドを完了しているなら、ここでは§0タクティクを使用できます。もし完了していなければ、手動のアプローチを説明します。", + "アルゴリズムワールドを完了している場合は、ここで §0 タクティクを使用できます。\n完了していない場合は、手動での手順をご説明します。", "If the goal is not *exactly* a hypothesis, we can sometimes\nuse rewrites to fix things up.": - "もし目標が*正確に*仮定でない場合、時としてリライトを使用して修正することができます。", + "目標が *厳密な* 仮説ではない場合、書き換えを利用して問題を解決できることがあります。", "How should we define §0? Just like addition, we need to give definitions\nwhen §1 and when §2 is a successor.\n\nThe zero case is easy: we define §3 to be §4. Now say we know\n§5. What should §6 be? Well, that's §7 §8s,\nso it should be §9.\n\nHere are the definitions in Lean.\n\n * §10\n * §11\n\nIn this world, we must not only prove facts about multiplication like §12,\nwe must also prove facts about how multiplication interacts with addition, like §13.\nLet's get started.": - "どのように §0 を定義すべきでしょうか?加法と同様に、§1 であるときと §2 が successor であるときそれぞれに定義を提供する必要があります。\n\nゼロの場合は簡単です:§3 を §4 で定義します。次に §5 を仮定します。§6 のときはどうでしょうか?そうですね、§7 §8 になるので、\n§9になるべきでしょう。。\n\nLean での定義は以下の通りです。\n\n * §10\n * §11\n\nこのワールドでは、乗法に関する事実だけでなく、乗法と加法の相互作用に関する事実も証明する必要があります。例えば §12 など。そして §13 なども証明する必要があります。\n始めましょう。", - "How about this for a proof:\n§0": "以下は証明です:\n§0", + "どのように §0 を定義すべきでしょうか?加法と同様に、§1 であるときと §2 が successor であるときそれぞれに定義を提供する必要があります。\n\nゼロの場合は簡単です:§3 を §4 で定義します。次に §5 を仮定します。§6 のときはどうでしょうか?そうですね、§7 §8 になるので、\n§9になるべきでしょう。\n\nLean での定義は以下の通りです。\n\n * §10\n * §11\n\nこのワールドでは、乗法に関する事実だけでなく、乗法と加法の相互作用に関する事実も証明する必要があります。例えば §12 など。そして §13 なども証明する必要があります。\n始めましょう。", + "How about this for a proof:\n§0": "この証明はどうでしょうか:\n§0", "How about this for a proof:\n\n§0\n\nThat's the end of Advanced Addition World! You'll need these theorems\nfor the next world, §1 World. Click on \"Home\" to access it.": - "証明としては、以下のようなものはどうでしょうか:\n\n§0\n\nこの「高度な加算ワールド」は終了しました。次の「§1ワールド」では、これらの定理が必要になるでしょう。\"ホーム\"をクリックしてアクセスしてください。", - "Here's what I was thinking of:\n§0": "これが私の考えでした:\n§0", + "以下のいずれかの証明方法はいかがでしょうか:\n\n§0\n\n高度な加算ワールドはこれで終了です。次の §1 ワールドでは、これらの定理が必要になります。「ホーム」ボタンをクリックしてアクセスしてください。", + "Here's what I was thinking of:\n§0": "以下のように考えていました:\n§0", "Here's the short proof:\n§0\nThis works because, given §1,\nthe argument is reduced to pure logic.": "以下は短い証明です:\n§0\nこれは、与えられた §1 から\n議論が純粋な論理に簡約されるためです。", "Here's my solution:\n§0\n\nInducting on §1 or §2 also works, but might take longer.": - "私の解法:\n§0\n\n§1 や §2 について帰納法を用いても構いませんが、時間がかかるかもしれません。", - "Here's my solution:\n§0": "私の解法:\n§0", + "私の解法:\n§0\n\n§1 または §2 に関する帰納法も有効ですが、より時間のかかる場合があります。", + "Here's my solution:\n§0": "私の解決策:\n§0", "Here's my proof:\n§0\n\nIf you solved this level then you should be fine with the next level!": - "私の証明:\n§0\n\nこのレベルを解いたなら、次のレベルでも大丈夫です!", + "私の証明:\n§0\n\nこの問題を解けた場合、次の問題も理解できるはずです。", "Here's my proof:\n§0\n\nEven though Lean is a theorem prover, right now it's pretty clear that we have not\ndeveloped enough material to make it an adequate calculator. In Algorithm\nWorld, a more computer-sciency world, we will develop machinery which makes\nquestions like this much easier, and goals like §1 feasible.\nAlternatively you can do more mathematics in Advanced Addition World, where we prove\nthe lemmas needed to get a working theory of inequalities. Click \"Home\" and\ndecide your route.": - "私の証明:\n§0\n\nLeanは定理証明システムですが、現在では十分な量の理論が開発されておらず、適切な計算機としての機能を発揮するまでには至っていません。アルゴリズムワールドでは、よりコンピュータサイエンス寄りのワールドで、このような問題を扱うための機械を開発し、§1のような目標を達成することが可能になります。あるいは、不等式の理論を実現するための補題を証明する高度な加算ワールドでより多くの数学を学ぶこともできます。\"ホーム\"をクリックし、あなたのルートを選択してください。", + "私の証明:\n§0\n\nLeanは定理証明システムですが、現時点では十分な量の理論が開発されておらず、適切な計算機としての機能を十分に備えていません。アルゴリズムワールドでは、よりコンピュータサイエンスに特化した環境で、このような問題を扱うための機械を開発し、§1のような目標を達成することが可能になります。あるいは、不等式の理論を実現するための補題を証明する高度な加算ワールドで、より多くの数学を学ぶこともできます。「ホーム」をクリックして、ご自身のルートを選択してください。", "Here's my proof:\n§0\n\nA passing mathematician remarks that with antisymmetry as well,\nyou have proved that §1 is a *partial order* on §2.\n\nThe boss level of this world is to prove\nthat §3 is a total order. Let's learn two more easy tactics\nfirst.": - "私の証明:\n§0\n\n通りすがりの数学は、反対称性も考慮すると、\nあなたは§1が§2上の*部分順序*であることを証明しました。\n\nこのワールドのボスレベルは、§3が完全順序であることを証明することです。\nまずは2つの簡単なタクティクを学んでからしましょう。", - "Here's my proof:\n§0": "私の証明:\n§0", + "私の証明:\n§0\n\n通りすがりの数学者は、反対称性も考慮すると、\nあなたは§1が§2上の*部分順序*であることを証明しました。\n\nこのワールドのボスレベルは、§3が完全順序であることを証明することです。\nまずは2つの簡単なタクティクを学習しましょう。", + "Here's my proof:\n§0": "私の証明:\n§0", "Here's a two-liner:\n§0\n\nThis works because §1 is a proof of §2.": - "以下は2行の証明です:\n§0\n\nこれは §1 が §2 の証明であるため動作します。", - "Here's a two-line proof:\n§0": "以下は二行の証明です:\n§0", + "以下は2行で構成された証明です:\n§0\n\nこれは、§1が§2を証明するため有効です。", + "Here's a two-line proof:\n§0": "以下は2行の証明です:\n§0", "Here's a proof using §0:\n§1\n\nand here's an even shorter one using the same idea:\n§2\n\nAlternatively you can just prove it by induction on §3:\n\n§4": - "以下は§0を使用した証明です:\n§1\n\nそして、同じアイデアを使用したさらに短い証明は以下の通りです:\n§2\n\nあるいは、§3 について帰納法で証明することができます:\n§4", - "Here's a completely backwards proof:\n§0": "以下は完全に逆順の証明です:\n§0", + "以下は、§0を用いた証明です:\n§1\n\nまた、同様の考え方を用いると、さらに短い証明も可能です:\n§2\n\nあるいは、§3 に対して数学的帰納法を用いて証明することもできます:\n§4", + "Here's a completely backwards proof:\n§0": "以下は、完全に逆順の手順で構成された証明です:\n§0", "Here we want to deal with the cases §0 and §1 separately,\nso start with §2.": - "ここでは§0と§1のケースを別々に扱いたいので、まずは§2から始めます。", + "ここでは§0と§1のケースについて個別に検討するため、まず§2から説明します。", "Here we begin to\ndevelop an algorithm which, given two naturals §0 and §1, returns the answer\nto \"does §2?\"\n\nHere is the algorithm. First note that §3 and §4 are numbers, and hence\nare either §5 or successors.\n\n*) If §6 and §7 are both §8, return \"yes\".\n\n*) If one is §9 and the other is §10, return \"no\".\n\n*) If §11 and §12, then return the answer to \"does §13?\"\n\nOur job now is to *prove* that this algorithm always gives the correct answer. The proof that\n§14 is §15. The proof that §16 is §17, and the proof\nthat §18 is §19. The proof that if §20 then\n§21 is §22 and then §23. This level is a proof of the one\nremaining job we have to do: if §24 then §25.": - "ここでは、与えられた二つの自然数 §0 と §1 に対して、\"§2?\" という質問の答えを返すアルゴリズムを開発します。\n\nこのアルゴリズムは以下のようになっています。まず、§3 と §4 は数であり、したがって §5 または §5 の後者です。\n\n1. §6 と §7 が両方とも §8 の場合、\"yes\" を返す。\n2. 一方が §9 で他方が §10 の場合、\"no\" を返す。\n3. §11 と §12 の場合、\"§13?\" という質問の答えを返す。\n\n現在の仕事は、このアルゴリズムが常に正しい答えを返すことを証明することです。§14 が §15 であることを証明します。§16 が §17 であることを証明します。§18 が §19 であることを証明します。§20 が真である場合、§21 が §22 であり、さらに §23 であることを証明します。このレベルでは、残る一つの仕事であることを証明します:§24 が真である場合、§25 であることを。", + "ここでは、与えられた自然数 §0 と §1 に対して、「§2」という質問の答えを返すアルゴリズムを開発します。\n\nこのアルゴリズムは以下の手順で動作します。まず、§3 と §4 が数値であり、したがって §5 または §5 の後者であることに注意してください。\n\n1. §6 と §7 が両方とも §8 である場合、「yes」と返答します。\n2. 一方が §9 で他方が §10 である場合、「no」と返答します。\n3. §11 と §12 の場合、「§13 ?」 という質問の答えを返します。\n\n現在の課題は、このアルゴリズムが常に正しい答えを返すことを証明することです。具体的には、以下の命題を証明する必要があります:§14 が §15 であること、§16 が §17 であること、§18 が §19 であること、そして §20 が真であるならば、§21 が §22 であり、さらに §23 であることを証明します。この段階では、残る最後の課題である「§24 が真であるならば、§25 である」という命題を証明します。", "Here is an example proof of 2+2=4 showing off various techniques.\n\n§0\n\nOptional extra: you can run this proof yourself. Switch the game into \"Editor mode\" by clicking\non the §1 button in the top right. You can now see your proof\nwritten as several lines of code. Move your cursor between lines to see\nthe goal state at any point. Now cut and paste your code elsewhere if you\nwant to save it, and paste the above proof in instead. Move your cursor\naround to investigate. When you've finished, click the §2 button in the top right to\nmove back into \"Typewriter mode\".\n\nYou have finished tutorial world!\nClick \"Home\" to go back to the\noverworld, and select Addition World, where you will learn\nabout the §3 tactic.": - "以下は2+2=4を示す証明の例で、様々な手法を披露しています。\n\n§0\n\nオプション:自分でこの証明を実行することもできます。右上の§1ボタンをクリックしてゲームを「エディタモード」に切り替えることができます。現在の証明は、複数行のコードとして表示されます。行の間でカーソルを動かすことで、任意のポイントでの目標状態を確認できます。証明を保存したい場合は、コードを他の場所に切り貼りし、上の証明を代入できます。カーソルを動かして調査してください。終了したら、右上の§2ボタンをクリックして「タイプライターモード」に戻ります。\n\nチュートリアルワールドを終了しました!\n「ホーム」をクリックしてオーバーワールドに戻り、加算ワールドを選択して§3タクティクについて学びます。", + "以下は2+2=4を示す証明の例で、様々な手法を披露しています。\n\n§0\n\nオプション:自分でこの証明を実行することもできます。「エディタモード」に切り替えるには、右上の§1ボタンをクリックしてください。現在の証明は、複数行のコードとして表示されます。行の間でカーソルを動かすことで、任意のポイントでの目標状態を確認できます。証明を保存したい場合は、コードを他の場所にコピーし、上記の証明を代入できます。カーソルを動かして調査してください。終了したら、右上の§2ボタンをクリックして「タイプライターモード」に戻ります。\n\nチュートリアルワールドを終了しました!\n「ホーム」をクリックしてオーバーワールドに戻り、加算ワールドを選択して§3タクティクについて学びます。", "Having to rearrange variables manually using commutativity and\nassociativity is very tedious. We start by reminding you of this. §0\nis a key component in the first algorithm which we'll explain, but we need\nto prove it manually.\n\nRemember that you can do precision commutativity rewriting\nwith things like §1. And remember that\n§2 means §3.": - "手動で交換律と結合律を使って変数を再配置する必要があることは非常に面倒です。\nまず、これについて再確認します。§0\nは、最初の説明するアルゴリズムにおいて重要な成分ですが、手動で証明する必要があります。\n\n交換律に基づいた精密な再配置は、§1のようなもので行うことができます。また、§2は§3を意味します。", + "手動で変数を再配置するために、交換法則と結合法則を使用することは非常に手間がかかります。まずは、この点について改めて確認しましょう。§0 は、最初のアルゴリズムの説明において重要な要素ですが、手動で証明する必要があります。\n\n交換法則に基づいた精密な再配置は、§1のような操作で行うことができます。また、§2 は §3 を意味します。", "Good luck!\n\n One last hint. If §0 then §1 will change *all* §2s into §3s.\n If you only want to change one of them, say the 3rd one, then use\n §4.": - "幸運を!\n\n最後のヒント。もし§0であれば、§1はすべての§2を§3に変換します。\n一方で、一つだけ変換したい場合(例えば3番目のもの)、§4を使用します。", - "For any natural number §0, we have §1.": "任意の自然数§0に対して、§1です。", + "幸運をお祈りいたします!\n\n最後のヒントです。もし §0 が真ならば、§1 はすべての §2 を §3 に変換します。\n特定の §2 のみを変更したい場合は、§4 を使用してください(例:3番目のもの)。", + "For any natural number §0, we have §1.": "任意の自然数 §0 に対しては、§1 が成り立ちます。", "For all numbers §0, §1.": "すべての数 §0 について、 §1 。", - "For all numbers §0 and §1, we have\n§2": "すべての数値 §0 と §1 に対して、\n§2", - "For all naturals §0, §1.": "すべての自然数 §0 について、 §1 。", + "For all numbers §0 and §1, we have\n§2": "全ての数 §0 と §1 について、\n§2", + "For all naturals §0, §1.": "全ての自然数 §0 について、 §1 。", "For all naturals §0, §1, §2, we have §3.": - "すべての自然数 §0, §1, §2 について、§3 が成り立ちます。", + "すべての自然数 §0, §1, §2 に対して、 §3 が成り立ちます。", "For all naturals §0 §1 §2 and §3, we have\n§4": - "すべての自然数 §0, §1, §2, §3 に対して、以下の関係が成り立ちます。\n§4", + "すべての自然数 §0, §1, §2, §3 について、§4 が成立します。", "For all natural numbers §0, we have §1.": "すべての自然数 §0 に対して、§1 が成り立ちます。", - "For all natural numbers §0, we have\n§1.": "すべての自然数 §0 に対して、\n§1.", + "For all natural numbers §0, we have\n§1.": "すべての自然数 0 に対して、\n§1。", "For all natural numbers §0 and §1, we have\n§2.": - "すべての自然数 §0 および §1 に対して、\n§2。", + "すべての自然数 §0 と §1 について、\n§2。", "First execute §0 to replace the §1 with §2.": - "まず §0 を実行して §1 を §2 に置き換えてください。", + "まず、 §0 を実行して §1 を §2 に置き換えてください。", "Finally use a targeted §0 to switch §1 and §2.": - "最終的に、§0を使用して§1と§2を切り替えてください。", + "最後に、§0 を使用して §1 と §2 を切り替えます。", "Fermat's Last Theorem": "フェルマーの最終定理", "Every number in Lean is either §0 or a successor. We know how to add §1,\nbut we need to figure out how to add successors. Let's say we already know\nthat §2. What should the answer to §3 be? Well,\n§4 is one bigger than §5, so §6 should be §7,\nthe number one bigger than §8. More generally §9 should\nbe §10. Let's add this as a lemma.\n\n* §11\n\nIf you ever see §12 in your goal, §13 is\nnormally a good idea.\n\nLet's now prove that §14. Figure out how to get §15 into\nthe picture, and then §16. Switch between the §17 (addition) and\n§18 (numerals) tabs under \"Theorems\" on the right to\nsee which proofs you can rewrite.": - "Leanの数は、§0 または後続数のいずれかです。§1を加算する方法は分かっていますが、後続数を加算する方法はまだ分かりません。例えば、§2が分かっているとします。では、§3の答えは何になるべきでしょうか? §4は §5よりも1大きいので、§6は §7、つまり §8よりも1大きい数になるべきです。より一般的には、§9は §10になります。この事実を補題として追加しましょう。\n\n* §11\n\nもし目標に §12が見つかったら、通常 §13は良いアイデアです。\n\n次に、§14を証明しましょう。§15を図に取り入れる方法を考え、その後 §16を証明します。\"Theorems\" の右側にある `+` (加算) と `012` (数字) のタブを切り替えて、どの証明を書き換えることができるか確認します。", + "Leanの数は、§0または後続数のいずれかです。§1を加算する方法は分かっていますが、後続数を加算する方法はまだ分かりません。例えば、§2が分かっているとします。では、§3の答えは何になるべきでしょうか? §4は §5よりも1大きいので、§6は §7、つまり §8よりも1大きい数になるべきです。より一般的には、§9は §10になります。この事実を補題として追加しましょう。\n\n* §11\n\nもし目標に §12が見つかったら、通常 §13は良いアイデアです。\n\n次に、§14を証明しましょう。§15を図に取り入れる方法を考え、その後 §16を証明します。「Theorems」の右側にある `+` (加算) と `012` (数字) のタブを切り替えて、どの証明を書き換えることができるか確認します。", "Do that again!\n\n§0 tries to fill in\nthe arguments to §1 (finding §2) then it replaces all occurrences of\n§3 it finds. Therefor, it did not rewrite §4, yet.": - "再度やってみましょう!\n\n§0は§1の引数を埋めようとします(§2を見つけます)。その後§3。因此,它还没有重写§4。もう一度実行してください!\n\n§0 は、§1 の引数を埋める(§2 を見つける)ことを試み、\n見つけたすべての §3 を置き換えます。そのため、\n§4 はまだ書き換えられていません。", + "再度実行してみてください。\n\n§0は、§1の引数を埋める(§2を見つけます)ことを試みます。その後、見つかったすべての§3を置換します。したがって、§4はまだ書き換えられていません。", "Did you use induction on §0?\nHere's a two-line proof of §1 which uses §2.\nIf you want to inspect it, you can go into editor mode by clicking §3 in the top right\nand then just cut and paste the proof and move your cursor around it\nto see the hypotheses and goal at any given point\n(although you'll lose your own proof this way). Click §4 to get\nback to command line mode.\n§5": - "§0について帰納法を使ったでしょうか?\n§2を使用して§1の2行の証明があります。\n証明を確認したい場合は、右上にある§3をクリックしてエディタモードに入り、\nその後証明を切り取り、貼り付け、カーソルを動かして任意のポイントでの仮定と目標を確認できます。\n(ただし、この方法で自分の証明は失われます)。§4をクリックして\nコマンドラインモード (訳注: タイプライターモード) に戻りましょう。\n§5", + "帰納法を用いて §0 を証明しましたか?\n§2 を使用した §1 の 2 行の証明があります。\n証明を確認したい場合は、右上の §3 をクリックしてエディタモードに入り、\nその後証明をコピー&ペーストし、カーソルを移動させて任意の時点での仮定と目標を確認できます。(ただし、この方法ではご自身の証明は失われます)。§4 をクリックしてコマンドラインモード (タイプライターモード) に戻ってください。\n§5", "Dealing with §0": "§0 を扱う方法", "Congratulations! You've finished Algorithm World. These algorithms\nwill be helpful for you in Even-Odd World (when someone gets around to\nimplementing it).": - "おめでとうございます! あなたはアルゴリズムワールドを完了しました。これらのアルゴリズムは、Even-Odd ワールドが実装されるまで、あなたにとって役立つでしょう。", + "おめでとうございます!あなたはアルゴリズムワールドを完了しました。\nこれらのアルゴリズムは、Even-Oddワールド(誰かが実装してくれたら)\nでも、あなたにとって役立ちます。", "Congratulations! You have proved Fermat's Last Theorem!\n\nEither that, or you used magic...": - " おめでとうございます! あなたはフェルマーの最終定理を証明しました!\n\nもしくは、魔法を使用したかもしれません...", + "おめでとうございます!あなたはフェルマーの最終定理を証明されました。\n\nもしくは、魔法を使用したかもしれません...", "Congratulations! You completed your first verified proof!\n\nRemember that §0 is a *tactic*. If you ever want information about the §1 tactic,\nyou can click on §2 in the list of tactics on the right.\n\nNow click on \"Next\" to learn about the §3 tactic.": - "おめでとうございます! あなたは初めての検証証明を完了しました!\n\n記憶に留めておきましょう。§0は*タクティク*です。§1のタクティクについての情報が必要な場合は、右側のタクティク一覧の§2をクリックできます。\n\n\"次\"をクリックして§3のタクティクについて学びましょう。", - "Concretely: §0.": "具体的には: §0.", + "おめでとうございます!あなたは初めての検証証明を完了しました!\n\n覚えておいてください。 §0 は*タクティク*と呼ばれる操作です。もし §1 のタクティクに関する情報が必要な場合は、右側のタクティク一覧にある §2 をクリックしてください。\n\n「次」をクリックして、 §3 のタクティクについて学びましょう。", + "Concretely: §0.": "具体的に:§0。", "Can you take it from here? Click on \"Show more help!\" if you need a hint.": - "ここから続けられますか?ヒントが必要な場合は「より多くのヘルプを表示!」をクリックしてください。", + "引き続きご自身で解決いただけますでしょうか? ヒントが必要な場合は、「より多くのヘルプを表示!」をクリックしてください。", "Can you take it from here? (note: if you try §0 again, it will\ntake you back to where you started!)": - "ここから続けられますか?(注: §0を再度試すと、元の場所に戻ってしまいます!)", + "引き続き作業を進められますでしょうか?(注:§0を再度実行すると、元の開始地点に戻ります!)", "Can you take it from here?": "ここから続けられますか?", - "Can you now change the goal into §0?": "目標を§0に変更できますか?", + "Can you now change the goal into §0?": "目標を§0に変更することは可能ですか?", "At this point you see the term §0, so you can use the\ninduction hypothesis with §1.": - "現在、項§0が表示されているので、項§1を使用して帰納法の仮定を適用することができます。", - "Assuming §0, we have §1.": "仮定§0を仮定すると、§1が成り立ちます。", - "Assuming §0 and §1, we have §2.": "§0と§1ならば、§2。", + "現在、項§0が表示されているため、項§1を用いて帰納法の仮定を適用できます。", + "Assuming §0, we have §1.": "前提として§0を仮定するならば、§1は成立します。", + "Assuming §0 and §1, we have §2.": "前提として§0および§1を仮定します。その結果、§2が導き出されます。", "As warm-up for §0 let's prove §1. To do this we need to\nintroduce Peano's last axiom §2, a proof that §3.\nTo learn about this result, click on it in the list of lemmas on the right.": - "§0 の前準備として、§1 を証明しましょう。これを行うために、ペアノの最後の公理 §2、§3 の証明が必要です。この結果について学ぶには、右側の定理一覧から該当項目をクリックしてください。", - "Arguing backwards": "逆向きの議論", + "ウォーミングアップとして、§0 の前に §1 を証明します。これを行うためには、ペアノの最後の公理 §2 と §3 の証明が必要です。この結果について学ぶには、右側の定理一覧から該当する項目をクリックしてください。", + "Arguing backwards": "推論を逆方向に進める", "Applying a proof of §0 to the *goal* changes §1 to §2.\nNow try §3 to make the goal more like the hypothesis.": - "証明 §0 を *目標* に適用すると、§1 は §2 に変更されます。\n次に §3 を試して、目標を仮定に近づけてみましょう。", + "証明 §0 を *目標* に対して適用することで、§1 が §2 になります。\n次に §3 を試し、目標を仮定に近づけることを試みてください。", "And now §0": "§0をしましょう。", "And now we've deduced what we wanted to prove: the goal is one of our assumptions.\nFinish the level with §0.": - "そして、証明したい命題を導き出しました:目標は私たちの仮定の一つです。\nレベルを終了するには、§0 を使用してください。", - "And finally §0.": "最後に、§0。", - "An algorithm for equality": "等価性のアルゴリズム", + "そして、目的を証明するために必要な結論を得ることができました。この結論が、当初提示した仮定の一つと一致します。\nレベルを完了するには、§0 を使用してください。", + "And finally §0.": "そして、最後に、§0。", + "An algorithm for equality": "等価性を扱うためのアルゴリズム", "Although §0 in this game, §1 if §2, i.e., if\n§3 is a successor.": - "このゲームにおいて §0 であり、§1 は §2 である場合、すなわち §3 が後者である場合。", + "このゲームでは、§0 が成立し、かつ §1 が §2 となる場合、つまり §3 がその後の値である場合に、以下のことが言えます。", "Algorithm World": "アルゴリズムワールド", "Advanced Multiplication World": "高度な乗算ワールド", "Advanced Addition World": "高度な加算ワールド", "Advanced *Addition* World proved various implications\ninvolving addition, such as §0 and §1.\nThese lemmas were used to prove basic facts about ≤ in ≤ World.\n\nIn Advanced Multiplication World we prove analogous\nfacts about multiplication, such as §2, and\n§3 (assuming §4 in the latter result). This will prepare\nus for Divisibility World.\n\nMultiplication World is more complex than Addition World. In the same\nway, Advanced Multiplication world is more complex than Advanced Addition\nWorld. One reason for this is that certain intermediate results are only\ntrue under the additional hypothesis that one of the variables is non-zero.\nThis causes some unexpected extra twists.": - "高度な *加算*ワールドでは、加算に関する様々な命題(§0, §1など)が証明されました。\nこれらの補題は、≤ワールドにおける≤に関する基本的な事実の証明に使用されました。\n\n高度な *乗算*ワールドでは、乗算に関する類似した事実(§2など)が証明され、\n§3(後者の結果では§4を仮定)も証明されました。これにより、*整除*ワールドに備えることができます。\n\n*乗算*ワールドは、*加算*ワールドよりも複雑です。同様に、高度な *乗算* ワールドは、高度な *加算*ワールドよりも複雑です。これは、ある変数が非ゼロであるという追加の仮定の下でのみ成り立つ特定の中間結果があるためです。これにより、予想外の追加の複雑さが生じます。", + "高度な *加算* ワールドでは、加算に関する様々な命題(§0, §1など)が証明されました。\nこれらの補題は、≤ワールドにおける≤に関する基本的な事実の証明に使用されました。\n\n高度な *乗算* ワールドでは、乗算に関する類似した事実(§2など)が証明され、\n§3(後者の結果では§4を仮定)も証明されました。これにより、*整除*ワールドへの移行準備ができます。\n\n*乗算* ワールドは、 *加算* ワールドよりも複雑です。同様に、高度な *乗算* ワールドは、高度な *加算* ワールドよりも複雑です。これは、ある変数がゼロでないという追加の仮定の下でのみ成り立つ特定の中間結果があるためです。これにより、予期せぬ追加の複雑さが生じます。", "Addition is distributive over multiplication.\nIn other words, for all natural numbers §0, §1 and §2, we have\n§3.": - "加法は乗法に対して分配法則を満たします。\nつまり、すべての自然数 §0, §1, §2 に対して\n§3。", + "加法は乗法に関して分配法則が成り立ちます。\nすなわち、任意の自然数 §0, §1, §2 について、以下の式が成立します。\n§3。", "Addition World": "加算ワールド", - "Adding zero": "0を加える", + "Adding zero": "ゼロを加える", "A two-line proof is\n\n§0\n\nWe now have all the tools necessary to set up the basic theory of divisibility of naturals.": - "二行の証明は\n\n§0\n\n現在、自然数の除法の基本理論を設定するために必要なすべてのツールを備えています。", + "二行の証明は\n\n§0\n\nこれまでに得られたツールを用いて、自然数の除法の基本的な理論を構築することが可能になりました。", "A proof that §0.": "§0 の証明。", "A passing mathematician remarks that with reflexivity and transitivity out of the way,\nyou have proved that §0 is a *preorder* on §1.": - "通りすがりの数学者が、反射律と伝搬律を除けば、§0 は §1 上の *前順序* を証明したと述べています。", + "「反射律と伝搬律をクリアすれば、あなたは §0 が §1 上の *部分順序関係* であることを証明した」と、通りすがりの数学者が言いました。", "A passing mathematician notes that you've proved\nthat the natural numbers are a commutative semiring.\n\nIf you want to begin your journey to the final boss, head for Power World.": - "通りすがりの数学者は、自然数が可換半環であることを証明したことを指摘しました。\n\n最終ボスへの旅を始めるなら、冪乗ワールドへ向かってください。", + "通りすがりの数学者が、自然数が可換半環であることを証明したことを指摘しました。\n\n最終ボスとの戦いを開始するには、冪乗ワールドへ進んでください。", "A passing mathematician congratulates you on proving that naturals\nare an additive commutative monoid.\n\nLet's practice using §0 and §1 in one more level,\nbefore we leave addition world.": - "通りすがりの数学者は、自然数が加法的交換半群であることを証明したことに称賛の意を表します。\n\n加算ワールドを去る前に、§0 と §1 の使用をもう一回練習しましょう。", + "「自然数の加法的交換半群であることの証明」に際し、通りすがりの数学者がお祝いの言葉を述べます。\n\n加算に関する概念を理解するため、§0 と §1 の使い方をもう一度練習しましょう。", "2+2=4": "2+2=4", "2 + 2 ≠ 5 is boring to prove in full, given only the tools we have currently.\nTo make it a bit less painful, I have unfolded all of the numerals for you.\nSee if you can use §0 and §1 to prove this.": - "2 + 2 ≠ 5 を完全に証明するのは、現在のツールで与えられた限りでは退屈です。\n少し痛みが減るよう、すべての数値を展開しました。\n§0 と §1 を使ってこの証明ができるか試してみてください。", + "現在のツールだけでは、2 + 2 ≠ 5 の完全な証明は困難です。\nより簡単に証明できるよう、すべての数字を展開しました。\n§0 および §1 を使用して、この証明を試みてください。", "2 + 2 ≠ 5": "2 + 2 ≠ 5", "1 ≠ 0": "1 ≠ 0", "0 ≤ x": "0 ≤ x", "*Game version: 4.3*\n\n*Recent additions: bug fixes*\n\n## Progress saving\n\nThe game stores your progress in your local browser storage.\nIf you delete it, your progress will be lost!\n\nWarning: In most browsers, deleting cookies will also clear the local storage\n(or \"local site data\"). Make sure to download your game progress first!\n\n## Credits\n\n* **Creators:** Kevin Buzzard, Jon Eugster\n* **Original Lean3-version:** Kevin Buzzard, Mohammad Pedramfar\n* **Game Engine:** Alexander Bentkamp, Jon Eugster, Patrick Massot\n* **Additional levels:** Sian Carey, Ivan Farabella, Archie Browne.\n* **Additional thanks:** All the student beta testers, all the schools\nwho invited Kevin to speak, and all the schoolkids who asked him questions\nabout the material.\n\n## Resources\n\n* The [Lean Zulip chat](https://leanprover.zulipchat.com/) forum\n* [Original Lean3 version](https://github.com/ImperialCollegeLondon/natural_number_game/) (no longer maintained)\n\n## Problems?\n\nPlease ask any questions about this game in the\n[Lean Zulip chat](https://leanprover.zulipchat.com/) forum, for example in\nthe stream \"New Members\". The community will happily help. Note that\nthe Lean Zulip chat is a professional research forum.\nPlease use your full real name there, stay on topic, and be nice. If you're\nlooking for somewhere less formal (e.g. you want to post natural number\ngame memes) then head on over to the [Lean Discord](https://discord.gg/WZ9bs9UCvx).\n\nAlternatively, if you experience issues / bugs you can also open github issues:\n\n* For issues with the game engine, please open an\n[issue at the lean4game](https://github.com/leanprover-community/lean4game/issues) repo.\n* For issues about the game's content, please open an\n[issue at the NNG](https://github.com/hhu-adam/NNG4/issues) repo.": - "*ゲームバージョン: 4.3*\n\n*最近の追加: バグ修正*\n\n## 進捗保存\n\nゲームはあなたの進捗をローカルブラウザストレージに保存します。\nこれを削除すると、進捗は失われます!\n\n注意: 多くのブラウザでは、クッキーを削除するとローカルストレージ(または「ローカルサイトデータ」)もクリアされます。進捗をダウンロードしてから削除することを確認してください!\n\n## 謝辞\n\n* **クリエイター:** Kevin Buzzard, Jon Eugster\n* **オリジナルLean3バージョン:** Kevin Buzzard, Mohammad Pedramfar\n* **ゲームエンジン:** Alexander Bentkamp, Jon Eugster, Patrick Massot\n* **追加レベル:** Sian Carey, Ivan Farabella, Archie Browne.\n* **追加の感謝:** 全ての学生ベータテスト者、Kevinを講演に招待した全ての学校、質問をした全ての学校の子供たち\n\n## リソース\n\n* [Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラム\n* [元のLean3版](https://github.com/ImperialCollegeLondon/natural_number_game/)(現在メンテナンスされていません)\n\n## お困りですか?\n\nこのゲームに関する質問は、[Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラムで質問してください。例えば、「New Members」ストリームで質問できます。コミュニティは喜んでお手伝いします。注意: Lean Zulipチャットはプロフェッショナルな研究フォーラムです。そこでフルネームを使用し、トピックに集中し、丁寧に接してください。より非公式な場所(例えば、自然数ゲームのメモを投稿したい場合)を探している場合は、[Lean Discord](https://discord.gg/WZ9bs9UCvx) に移動してください。\n(訳注: これらはいずれも外国語のコミュニティです。もし日本語で質問をしたいのであれば、[Lean の日本語コミュニティ](https://lean-ja.github.io/about/)上で質問すると良いでしょう。)\n\nまたは、問題やバグが発生した場合は、GitHubの問題をオープンすることもできます:\n\n* ゲームエンジンに関する問題は、[lean4game](https://github.com/leanprover-community/lean4game/issues) リポジトリで問題をオープンしてください。\n* ゲームの内容に関する問題は、[NNG](https://github.com/hhu-adam/NNG4/issues) リポジトリで問題をオープンしてください。", + "*ゲームバージョン: 4.3*\n\n*最近の追加: バグ修正*\n\n## 進捗保存\n\nゲームは、あなたの進捗をローカルブラウザストレージに保存します。\nこれを削除すると、進捗が失われます!\n\n注意:多くのブラウザでは、クッキーを削除するとローカルストレージ(または「ローカルサイトデータ」)もクリアされます。進捗をダウンロードしてから削除することを確認してください!\n\n## 謝辞\n\n* **クリエイター:** Kevin Buzzard, Jon Eugster\n* **オリジナルLean3バージョン:** Kevin Buzzard, Mohammad Pedramfar\n* **ゲームエンジン:** Alexander Bentkamp, Jon Eugster, Patrick Massot\n* **追加レベル:** Sian Carey, Ivan Farabella, Archie Browne.\n* **追加の感謝:** 全ての学生ベータテスト者、Kevinを講演に招待した全ての学校、質問をした全ての学校の子供たち\n\n## リソース\n\n* [Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラム\n* [元のLean3版](https://github.com/ImperialCollegeLondon/natural_number_game/)(現在メンテナンスされていません)\n\n## お困りですか?\n\nこのゲームに関する質問は、[Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラムで質問してください。例えば、「New Members」ストリームで質問できます。コミュニティは喜んでお手伝いします。注意: Lean Zulipチャットはプロフェッショナルな研究フォーラムです。そこでフルネームを使用し、トピックに集中し、丁寧に接してください。より非公式な場所(例えば、自然数ゲームのメモを投稿したい場合)を探している場合は、[Lean Discord](https://discord.gg/WZ9bs9UCvx) に移動してください。\n(訳注: これらはいずれも外国語のコミュニティです。もし日本語で質問をしたいのであれば、[Lean の日本語コミュニティ](https://lean-ja.github.io/about/)上で質問すると良いでしょう。)\n\nまたは、問題やバグが発生した場合は、GitHubの問題をオープンすることもできます:\n\n* ゲームエンジンに関する問題は、[lean4game](https://github.com/leanprover-community/lean4game/issues) リポジトリで問題をオープンしてください。\n* ゲームの内容に関する問題は、[NNG](https://github.com/hhu-adam/NNG4/issues) リポジトリで問題をオープンしてください。", "## The birth of number.\n\nNumbers in Lean are defined by two rules.\n\n* §0 is a number.\n* If §1 is a number, then the *successor* §2 of §3 is a number.\n\nThe successor of §4 means the number after §5. Let's learn to\ncount, and name a few small numbers.\n\n## Counting to four.\n\n§6 is a number, so §7 is a number. Let's call this new number §8.\nSimilarly let's define §9, §10 and §11.\nThis gives us plenty of numbers to be getting along with.\n\nThe *proof* that §12 is called §13.\nCheck out the \"012\" tab in the list of lemmas on the right\nfor this and other proofs.\n\nLet's prove that §14 is the number after the number after zero.": - "## 数字の誕生。\n\nLeanにおける数字は2つのルールで定義されます。\n\n* §0 は数字です。\n* §1 が数字である場合、§2 の *後続* §3 は数字です。\n\n§4 の後続とは §5 の次の数字を意味します。数を数えることと、いくつかの小さな数字の名前を学びましょう。\n\n## 4まで数える。\n\n§6 が数字であるため、§7 も数字です。この新しい数字を §8 と呼びましょう。同様に §9, §10, §11 を定義します。これで十分な数を手に入れました。\n\n§12 が数字であることを証明する *証明* §13 があります。証明リストの右側の「012」タブを確認してください。\n\n次に、0の後ろの後ろの数字である §14 を証明しましょう。", + "## 数字の誕生。\n\nLeanにおける数字は、以下の2つのルールで定義されます。\n\n* §0 は数字です。\n* もし §1 が数字ならば、§3 の *後続* §2 も数字です。\n\n§4 の「後続」とは、§5 の次の数字を意味します。数を数えることと、いくつかの小さな数字の名前を学びましょう。\n\n## 4まで数える。\n\n§6 は数字なので、§7 も数字です。この新しい数字を §8 と呼びましょう。同様に §9, §10, §11 を定義します。これで十分な数を手に入れることができます。\n\n§12 が数字であることを示す *証明* §13 があります。証明リストの右側の「012」タブを確認してください。\n\n次に、0の後ろの後ろの数字である §14 を証明しましょう。", "## Summary\n\n§0 repeatedly applies the tactic §1\nto the goal. You don't need to use this\ntactic, it just speeds things up sometimes.\n\n## Example\n\n§2 will turn the goal\n§3\ninto the goal\n§4.\n\"\n\nTacticDoc nth_rewrite \"\n## Summary\n\nIf §5 and there are several §6s in the goal, then\n§7 will just change the third §8 to a §9.\n\n## Example\n\nIf the goal is §10 then §11\nwill change the goal to §12. In contrast, §13\nwill change the goal to §14.": - "## 概要\n\n§0 は目標に対して §1 のタクティクを繰り返し適用します。このタクティクを使用する必要はありませんが、時々処理が早くなります。\n\n## 例\n\n§2 は目標\n§3\nを\n§4\nに変更します。\n\n---\n\n## 概要\n\n§5 が成り立つ場合で、目標に複数の §6 がある場合、\n§7 は第三の §8 を §9 に変更します。\n\n## 例\n\n目標が §10 の場合、§11 は目標を §12 に変更します。一方で、§13 は目標を §14 に変更します。", + "## 概要\n\n§0 は、目標に対して §1 のタクティクを繰り返し適用します。このタクティクは必須ではありませんが、場合によっては処理を高速化できます。\n\n## 例\n\n§2 は目標\n§3\nを §4 に書き換えます。\n\n---\n\n## 概要\n\n§5 が成り立つ場合に、目標に複数の §6 が含まれる場合、§7 は第三の §8 を §9 に変更します。\n\n## 例\n\n目標が §10 の場合、§11 は目標を §12 に変更します。一方、§13 は目標を §14 に変更します。", "## Summary\n\n§0 repeatedly applies the tactic §1\nto the goal. You don't need to use this\ntactic, it just speeds things up sometimes.\n\n## Example\n\n§2 will turn the goal\n§3\ninto the goal\n§4.": - "## 概要\n\n§0はタクティク§1を繰り返し適用し、目標を処理します。このタクティクを使用する必要はありませんが、時々処理速度を向上させることがあります。\n\n## 例\n\n§2を使用すると、目標§3は§4に変更されます。", + "## 概要\n\n§0 は、タクティク §1 を繰り返し適用することで、目標を解決します。このタクティクの使用は必須ではありませんが、場合によっては処理速度の向上に役立ちます。\n\n## 例\n\n§2 を使用すると、目標 §3 が §4 になります。", "## Summary\n\n§0 proves goals of the form §1.\n\nIn other words, the §2 tactic will close any goal of the\nform §3 if §4 and §5 are *identical*.\n\n§6 is short for \\\\\"reflexivity (of equality)\\\\\".\n\n## Example:\n\nIf the goal looks like this:\n\n§7\n\nthen §8 will close it. But if it looks like §9 then §10 won't work, because even\nthough §11 and §12 are always equal as *numbers*, they are not equal as *terms*.\nThe only term which is identical to §13 is §14.\n\n## Details\n\n§15 is short for \\\\\"reflexivity of equality\\\\\".\n\n## Game Implementation\n\n*Note that our §16 is weaker than the version used in core Lean and §17,\nfor pedagogical purposes; mathematicians do not distinguish between propositional\nand definitional equality because they think about definitions in a different way\nto type theorists (§18 and §19 are both \\\\\"facts\\\\\" as far\nas mathematicians are concerned, and who cares what the definition of addition is).*": - "## 概要\n\n§0は、形式§1の目標を証明します。\n\nつまり、§2タクティクは、§4と§5が*完全に一致*する場合、形式§3の任意の目標を閉じます。\n\n§6は、「等号の反射律」の略です。\n\n## 例\n\nもし目標が以下のようであれば:\n\n§7\n\n§8はそれを閉じます。しかし、もし目標が§9のように見える場合、§10は機能しません。なぜなら、§11と§12は常に数値としては等しいですが、項としては等しくないからです。§13と完全に一致する項は§14だけです。\n\n## 詳細\n\n§15は「等号の反射律」の略です。\n\n## ゲーム実装\n\n注意していただきたいのは、当の§16は、コア Lean と§17で使用されるバージョンよりも弱く、教育的な目的のためにそう設計されていることです。数学的には、論理的等価と定義的等価を区別しない理由は、定義の考え方がタイプ理論家と異なるからです(数学的には§18と§19はどちらも「事実」であり、加法の定義などは誰がどう思っても構いません)。", + "## 概要\n\n§0 は、形式 §1 のような目標を証明します。\n\nつまり、§2 タクティクは、§4 と §5 が *完全に同一* である場合に、形式 §3 の任意の目標を解決します。\n\n§6 は、「等号の反射律」の略です。\n\n## 例\n\nもし目標が以下のようであれば:\n\n§7\n\n§8 でそれを解決できます。しかし、もし目標が §9 のように見えた場合、§10 は機能しません。なぜなら、§11 と §12 は数値としては常に等しいですが、項としては等しくないからです。§13 と完全に一致する項は §14 だけです。\n\n## 詳細\n\n§15 は、「等号の反射律」の略です。\n\n## ゲームの実装\n\n注意点として、当の §16 は、コア Lean および §17 で使用されているバージョンよりも弱く、教育目的のためにそう設計されています。数学的には、論理的等価と定義的等価を区別しない理由は、定義の考え方がタイプ理論家と異なるからです(数学的には §18 と §19 はどちらも「事実」であり、加法の定義などは誰がどう思っても構いません)。", "## Summary\n\nThe §0 tactic will change a goal or hypothesis of\nthe form §1 to §2. It will also work on §3\nand on §4.\n\n### Example\n\nIf the goal is §5 then §6 will change it to §7.\n\n### Example\n\nIf §8 then §9 will change §10 to §11.": - "## 概要\n\nタクティク §0 は、目標や仮定が §1 の形式の場合を §2 に変更します。また、§3 や §4 も対象となります。\n\n### 例\n\nもし目標が §5 の場合、§6 はそれを §7 に変更します。\n\n### 例\n\nもし §8 の場合、§9 は §10 を §11 に変更します。", + "## 概要\n\nタクティク §0 は、目標または仮定が §1 の形式の場合を §2 に変更します。また、§3 および §4 も対象となります。\n\n### 例\n\nもし目標が §5 の場合、§6 によってそれを §7 に変更します。\n\n### 例\n\nもし §8 の場合、§9 によって §10 を §11 に変更します。", "## Summary\n\nThe §0 tactic makes progress with goals which claim something *exists*.\nIf the goal claims that some §1 exists with some property, and you know\nthat §2 will work, then §3 will make progress.\n\nBecause §4 is notation for \\\\\"there exists §5 such that §6\\\\\",\nyou can make progress on goals of the form §7 by §8ing the\nnumber which is morally §9 (i.e. §10)\n\nAny of the following examples is possible assuming the type of the argument passed to the §11 function is accurate:\n\n- §12\n- §13\n- §14": - "## 概要\n\n§0 タクティクは、何かが存在することを主張する目標に対して進展を遂げます。\nもし目標が何かが特定の性質を持つ存在することを主張し、その存在を知る方法が §2 である場合、§3 は進展を遂げます。\n\n§4 は \"存在する §5 が §6 である\" という主張を表す記号であり、目標が §7 のような形の場合、§8 することで、道徳的に §9 (つまり §10) とみなされる番号で進展を遂げることができます。\n\n以下の例のいずれかが可能であると仮定して、§11 関数に渡される引数の型が正確である場合:\n\n- §12\n- §13\n- §14", + "## 概要\n\n§0 タクティクは、「何かが存在する」という主張を含む目標に対して、進展を促します。\nもし目標が「ある特定の性質を持つものが存在する」と主張し、その存在を示す方法が §2 である場合、§3 は進展を促します。\n\n§4 は「§6 を満たす §5 が存在する」という主張を表す記号であり、目標が §7 のような形式の場合、§8 を行うことで、道徳的に §9 (つまり §10) とみなされる番号を用いて進展させることができます。\n\n以下のいずれかの例が可能です(ただし、§11 関数に渡される引数の型が正確である場合):\n\n- §12\n- §13\n- §14", "## Summary\n\nIf §0 is an object, and the goal mentions §1, then §2\nattempts to prove the goal by induction on §3, with the inductive\nvariable in the successor case being §4, and the inductive hypothesis being §5.\n\n### Example:\nIf the goal is\n§6\n\nthen\n\n§7\n\nwill turn it into two goals. The first is §8;\nthe second has an assumption §9 and goal\n§10.\n\nNote that you must prove the first\ngoal before you can access the second one.": - "## 概要\n\nもし§0がオブジェクトであり、目標に§1が含まれている場合、§2は目標を§3による帰納法で証明しようとします。帰納変数は後続ケースで§4であり、帰納仮定は§5です。\n\n### 例:\nもし目標が\n§6\n\nである場合、\n\n§7\n\nは目標を2つの目標に変換します。最初の目標は§8であり、次の目標には仮定§9と目標\n§10\nが含まれます。\n\n注意していただきたいのは、最初の目標を証明する前に、次の目標にアクセスすることはできないということです。", + "## 概要\n\nもし §0 がオブジェクトであり、目標に §1 が含まれている場合、§2 は目標を §3 に対する帰納法によって証明しようとします。帰納変数は後続ケースで §4 であり、帰納仮定は §5 です。\n\n### 例:\nもし目標が\n§6\n\nである場合、\n\n§7\n\nは目標を 2 つの目標に変換します。最初の目標は §8 であり、次の目標には仮定 §9 と目標\n§10\nが含まれます。\n\n注意していただきたいのは、最初の目標を証明する前に、次の目標にアクセスすることはできないということです。", "## Summary\n\nIf §0 is a proof that §1, and §2 is a proof of §3,\nthen §4 will change §5 to a proof of §6. The idea is that if\nyou know §7 is true, then you can deduce from §8 that §9 is true.\n\nIf the *goal* is §10, then §11 will \\\\\"argue backwards\\\\\" and change the\ngoal to §12. The idea here is that if you want to prove §13, then by §14\nit suffices to prove §15, so you can reduce the goal to proving §16.\n\n### Example:\n\n§17 is a proof that §18.\n\nSo if you have a hypothesis §19\nthen §20 will change §21 to §22.\nYou could write §23\nbut Lean is smart enough to figure out the inputs to §24.\n\n### Example\n\nIf the goal is §25, then §26 will turn the\ngoal into §27.": - "## 概要\n\nもし§0が§1の証明であり、§2が§3の証明であるなら、§4は§5を§6の証明に変更します。つまり、§7が真であることを知っているなら、§8から§9が真であることを導くことができます。\n\nもし*目標*が§10であるなら、§11は「逆向きに議論」し、目標を§12に変更します。ここでの考え方は、§13を証明したいなら、§14から§15を証明すれば十分であるので、目標を§16の証明に減らすことができるということです。\n\n### 例:\n\n§17が§18の証明であるとします。\n\nもし仮定§19があるなら、§20は§21を§22に変更します。§23のように書くこともできますが、Leanは§24の入力を見抜くことができます。\n\n### 例\n\nもし目標が§25であるなら、§26は目標を§27に変更します。", + "## 概要\n\nもし §0 が §1 の証明であり、 §2 が §3 の証明である場合、§4 は §5 を §6 の証明に変換します。つまり、§7 が真であることを知っている場合、§8 から §9 が真であることを導くことができます。\n\nもし *目標* が §10 である場合、§11 は「逆向きに推論」し、目標を §12 に変更します。この手法は、§13 を証明するために §14 から §15 を証明すれば十分であるという考えに基づいています。したがって、目標を §16 の証明に簡略化できます。\n\n### 例:\n\n§17 が §18 の証明であるとします。\n\n仮定として §19 がある場合、§20 は §21 を §22 に変更します。 §23 のような記述も可能です。ただし、Lean は §24 の入力を見抜くことができます。\n\n### 例\n\nもし目標が §25 である場合、§26 は目標を §27 に変更します。", "## Summary\n\nIf §0 is a proof of an equality §1, then §2 will change\nall §3s in the goal to §4s. It's the way to \\\\\"substitute in\\\\\".\n\n## Variants\n\n* §5 (changes §6s to §7s; get the back arrow by typing §8 or §9.)\n\n* §10 (a sequence of rewrites)\n\n* §11 (changes §12s to §13s in hypothesis §14)\n\n* §15 (changes §16s to §17s in two hypotheses and the goal;\nget the §18 symbol with §19.)\n\n* §20 will keep changing §21 to §22\nuntil there are no more matches for §23.\n\n* §24 will change only the second §25 in the goal to §26.\n\n### Example:\n\nIf you have the assumption §27 and your goal is\n§28\n\nthen\n\n§29\n\nwill change the goal into §30, and then\n\n§31\n\nwill change the goal into §32, which\ncan be solved with §33.\n\n### Example:\n\nYou can use §34 to change a hypothesis as well.\nFor example, if you have two hypotheses\n§35\nthen §36 will turn §37 into §38.\n\n## Common errors\n\n* You need the square brackets. §39 is never correct.\n\n* If §40 is not a *proof* of an *equality* (a statement of the form §41),\nfor example if §42 is a function or an implication,\nthen §43 is not the tactic you want to use. For example,\n§44 is never correct: §45 is the theorem *statement*,\nnot the proof. If §46 is the proof, then §47 will work.\n\n## Details\n\nThe §48 tactic is a way to do \\\\\"substituting in\\\\\". There\nare two distinct situations where you can use this tactic.\n\n1) Basic usage: if §49 is an assumption or\nthe proof of a theorem, and if the goal contains one or more §50s, then §51\nwill change them all to §52s. The tactic will error\nif there are no §53s in the goal.\n\n2) Advanced usage: Assumptions coming from theorem proofs\noften have missing pieces. For example §54\nis a proof that §55 because §56 really is a function,\nand §57 is the input. In this situation §58 will look through the goal\nfor any subterm of the form §59, and the moment it\nfinds one it fixes §60 to be §61 then changes all §62s to §63s.\n\nExercise: think about why §64 changes the term\n§65 to\n§66\n\nIf you can't remember the name of the proof of an equality, look it up in\nthe list of lemmas on the right.\n\n## Targeted usage\n\nIf your goal is §67 and you want to rewrite §68\nto §69, then §70 will not work because Lean finds another\naddition first and swaps those inputs instead. Use §71 to\nguarantee that Lean rewrites §72 to §73. This works because\n§74 is a proof that §75, §76 is a proof\nthat §77, and §78 is a proof that §79.\n\nIf §80 then §81 will turn all §82s into §83s.\nIf you only want to change the 37th occurrence of §84\nto §85 then do §86.": - "## 概要\n\n§0が等式§1の証明である場合、§2は目標内のすべての§3を§4に変更します。これは「代入」を行う方法です。\n\n## バリエーション\n\n* §5 (目標内の§6を§7に変更;バックアローは§8または§9を入力することで取得します。)\n\n* §10 (一連の変換)\n\n* §11 (仮定§14内を§12から§13に変更)\n\n* §15 (目標と2つの仮定内を§16から§17に変更;§18のシンボルは§19で取得します。)\n\n* §20は§21を§22に変更し続けるまで、§23の一致がなくなるまで変更します。\n\n* §24は目標内の第2の§25のみを§26に変更します。\n\n### 例:\n\n仮定§27があり、目標が§28の場合、\n\n§29\n\nは目標を§30に変更し、\n\n§31\n\nは目標を§32に変更し、\n\n§33で解決できます。\n\n### 例:\n\n仮定を変更することもできます。例えば、仮定が2つある場合、\n\n§35\n\n§36は§37を§38に変換します。\n\n## 一般的なエラー\n\n* クエート記号が必要です。§39は常に正しくありません。\n\n* §40が等式(形式§41のステートメント)の証明でない場合、例えば§42が関数または推論である場合、\n\n§43は使用したいタクティクではありません。例えば、\n\n§44は常に正しくありません:§45は定理のステートメントであり、\n\n証明ではありません。§46が証明である場合、§47は機能します。\n\n## 詳細\n\n§48タクティクは「代入」を行う方法です。このタクティクを使用できる2つの異なる状況があります。\n\n1) 基本的な使用法:§49が仮定または定理の証明であり、目標内に1つ以上の§50が含まれている場合、\n\n§51はそれら全てを§52に変更します。タクティクは目標内に§53が存在しない場合にエラーを発生させます。\n\n2) 高度な使用法:定理の証明から得られる仮定はしばしば欠落している部分を持っています。例えば、\n\n§54は§55であることを証明しており、\n\n§56は実際には関数であり、\n\n§57は入力です。この状況では、\n\n§58は目標内を検索し、\n\n§59のサブタームを見つけた瞬間に、\n\n§60を§61に固定し、\n\nすべての§62を§63に変更します。\n\n演習:なぜ§64は項§65を§66に変更するのか考えてみてください。\n\n等式の証明の名前を忘れた場合は、\n\n右側の補題一覧で調べてください。\n\n## 対象的な使用法\n\n目標が§67であり、\n\n§68を§69に書き換えることを望む場合、\n\n§70はLeanが別の加算を見つけ、\n\nその入力を交換するためには機能しません。§71を使用して、\n\nLeanが§72を§73に書き換えることを保証します。これは、\n\n§74は§75を証明しており、\n\n§76は§77を証明しており、\n\n§78は§79を証明しているためです。\n\n§80が成立する場合、\n\n§81はすべての§82を§83に変換します。\n\n§84の37番目の出現のみを§85に変更したい場合は、\n\n§86を行います。", + "## 概要\n\nもし §0 が等式 §1 の証明であるならば、§2 は目標内のすべての §3 を §4 に変更します。これは「代入」を行う方法です。\n\n## バリエーション\n\n* §5 (目標内の §6 を §7 に変更;バックアローは §8 または §9 を入力することで取得します。)\n\n* §10 (一連の変換)\n\n* §11 (仮定 §14 内を §12 から §13 に変更)\n\n* §15 (目標と 2 つの仮定内を §16 から §17 に変更;§18 のシンボルは §19 で取得します。)\n\n* §20 は §21 を §22 に変更し続けるまで、§23 との一致がなくなるまで変更します。\n\n* §24 は目標内の第 2 の §25 のみ §26 に変更します。\n\n### 例:\n\n仮定 §27 があり、目標が §28 の場合、\n\n§29\n\nは目標を §30 に変更し、\n\n§31\n\nは目標を §32 に変更し、\n\n§33 で解決できます。\n\n### 例:\n\n仮定を変更することもできます。例えば、仮定が 2 つある場合、\n\n§35\n\n§36 は §37 を §38 に変換します。\n\n## 一般的なエラー\n\n* クオート記号が必要です。§39 は決して正しくありません。\n\n* §40 が等式 (形式 §41 のステートメント) の証明でない場合、例えば §42 が関数または推論である場合、\n\n§43 は使用したいタクティクではありません。例えば、\n\n§44 は常に正しくありません:§45 は定理のステートメントであり、\n\n証明ではありません。§46 が証明である場合、§47 は機能します。\n\n## 詳細\n\n§48 タクティクは「代入」を行う方法です。このタクティクを使用できる 2 つの異なる状況があります。\n\n1) 基本的な使用法:§49 が仮定または定理の証明であり、目標内に 1 つ以上の §50 が含まれている場合、\n\n§51 はそれら全てを §52 に変更します。タクティクは目標内に §53 が存在しない場合にエラーを発生させます。\n\n2) 高度な使用法:定理の証明から得られる仮定はしばしば欠落している部分を持っています。例えば、\n\n§54 は §55 を証明しており、\n\n§56 は実際には関数であり、\n\n§57 は入力です。この状況では、\n\n§58 は目標内を検索し、\n\n§59 のサブタームを見つけた瞬間に、\n\n§60 を §61 に固定し、\n\nすべての §62 を §63 に変更します。\n\n演習:なぜ §64 は項 §65 を §66 に変更するのか考えてみてください。\n\n等式の証明の名前を忘れた場合は、\n\n右側の補題一覧で調べてください。\n\n## 対象的な使用法\n\n目標が §67 であり、\n\n§68 を §69 に書き換えることを望む場合、\n\n§70 は Lean が別の加算を見つけ、\n\nその入力を交換するためには機能しません。 §71 を使用して、\n\nLean が §72 を §73 に書き換えることを保証します。これは、\n\n§74 は §75 を証明しており、\n\n§76 は §77 を証明しており、\n\n§78 は §79 を証明しているためです。\n\n§80 が成立する場合、\n\n§81 はすべての §82 を §83 に変換します。\n\n§84 の 37 番目の出現のみを §85 に変更したい場合は、\n\n§86 を実行します。", "## Summary\n\nIf §0 is a number, then §1 will break the goal into two goals,\none with §2 and the other with §3.\n\nIf §4 is a proof (for example a hypothesis), then §5 will break the\nproof up into the pieces used to prove it.\n\n## Example\n\nIf §6 is a number, then §7 will break the goal into two goals,\none with §8 replaced by 0 and the other with §9 replaced by §10. This\ncorresponds to the mathematical idea that every natural number is either §11\nor a successor.\n\n## Example\n\nIf §12 is a hypothesis, then §13 will turn one goal\ninto two goals, one with a hypothesis §14 and the other with a\nhypothesis §15.\n\n## Example\n\nIf §16 is a hypothesis, then §17 will turn one goal into no goals,\nbecause there are no ways to make a proof of §18! And if you have no goals left,\nyou have finished the level.\n\n## Example\n\nIf §19 is a hypothesis, then §20 will create a new number §21\nand a proof §22. This is because the *definition* of §23 is\n§24.": - "## 概要\n\nもし§0が数値である場合、§1は目標を二つに分割し、一つには§2、もう一つには§3が含まれます。\n\nもし§4が証明(例えば、仮定)である場合、§5はその証明を証明に使用された部分に分割します。\n\n## 例\n\nもし§6が数値である場合、§7は目標を二つに分割し、一つには§8を0に置き換えたもの、もう一つには§9を§10に置き換えたものが含まれます。これは数学的な考え方に即して、すべての自然数は§11または後続数であることを示します。\n\n## 例\n\nもし§12が仮定である場合、§13は一つの目標を二つに分割し、一つには§14という仮定が含まれ、もう一つには§15という仮定が含まれます。\n\n## 例\n\nもし§16が仮定である場合、§17は一つの目標を無数の目標に分割しません。なぜなら、§18の証明方法が存在しないからです!そして、目標が残っていない場合、レベルは終了します。\n\n## 例\n\nもし§19が仮定である場合、§20は新しい数値§21と証明§22を作成します。これは§23の定義が§24であるからです。", + "## 概要\n\nもし §0 が数値である場合、§1 は目標を二つに分割し、一つには §2 を、もう一つには §3 を含めます。\n\nもし §4 が証明(例えば仮定)である場合、§5 はその証明に使用された部分に分割します。\n\n## 例\n\nもし §6 が数値である場合、§7 は目標を二つに分割し、一つには §8 を 0 に置き換えたもの、もう一つには §9 を §10 に置き換えたものが含まれます。これは、すべての自然数が §11 または後続数であることを示す数学的な考え方に合致します。\n\n## 例\n\nもし §12 が仮定である場合、§13 は一つの目標を二つに分割し、一つには §14 という仮定が含まれ、もう一つには §15 という仮定が含まれます。\n\n## 例\n\nもし §16 が仮定である場合、§17 は一つの目標を無数の目標に分割しません。なぜなら、§18 の証明方法が存在しないからです!そして、目標が残っていない場合、レベルは終了します。\n\n## 例\n\nもし §19 が仮定である場合、§20 は新しい数値 §21 と証明 §22 を作成します。これは §23 の定義が §24 であるからです。", "## Summary\n\nIf §0 and there are several §1s in the goal, then\n§2 will just change the third §3 to a §4.\n\n## Example\n\nIf the goal is §5 then §6\nwill change the goal to §7. In contrast, §8\nwill change the goal to §9.": - "## 概要\n\nもし目標に §0 があり、目標に複数の §1 が存在する場合、§2 は第三の §3 を §4 に変更します。\n\n## 例\n\nもし目標が §5 である場合、§6 は目標を §7 に変更します。一方で、§8 は目標を §9 に変更します。", + "## 概要\n\n目標に §0 が存在し、かつ目標に複数の §1 が存在する場合には、§2 は第三の §3 を §4 に変更します。\n\n## 例\n\nもし目標が §5 である場合、§6 は目標を §7 に変更します。一方、§8 は目標を §9 に変更します。", "## Summary\n\nIf the goal is §0, then §1 will introduce §2 as a hypothesis,\nand change the goal to §3. Mathematically, it says that to prove §4,\nwe can assume §5 and then prove §6.\n\n### Example:\n\nIf your goal is §7 (the way Lean writes §8)\nthen §9 will give you a hypothesis §10 named §11, and the goal\nwill change to §12.": - "## 概要\n\nもし目標が§0である場合、§1は§2を仮定として導入し、目標を§3に変更します。数学的には、§4を証明するためには、§5を仮定し、その後§6を証明すればよいということです。\n\n### 例:\n\nもし目標が§7(Leanで書かれた§8)である場合、§9は§10という名前の仮定§11を導入し、目標は§12に変更されます。", + "## 概要\n\nもし目標が§0である場合、§1は§2を仮定として導入し、目標を§3に変更します。数学的には、§4の証明のために、§5を仮定し、その後§6を証明すればよいということです。\n\n### 例:\n\nもし目標が§7(Leanで記述された§8)である場合、§9は§10という名前の仮定§11を導入し、目標は§12に変更されます。", "## Summary\n\nIf the goal is a statement §0, then §1 will close the goal if §2 is a proof of §3.\n\n### Example\n\nIf the goal is §4 and you have a hypothesis §5\nthen §6 will solve the goal.\n\n### Example\n\nIf the goal is §7 then §8 will close the goal.\n\n### Exact needs to be exactly right\n\nNote that §9 will *not work* in the previous example;\nfor §10 to work, §11 has to be *exactly* a proof of the goal.\n§12 is a proof of §13 or, if you like,\na proof of §14 where §15 needs to be supplied by the user.\nThis is in contrast to §16 and §17, which will \\\\\"guess the inputs\\\\\"\nif necessary. If the goal is §18 then §19\nand §20 will both change the goal to §21,\nbecause §22 guesses the input to the function §23.": - "## 概要\n\nもし目標が §0 の文である場合、§2 が §3 の証明であれば、目標は §1 で閉じます。\n\n### 例\n\nもし目標が §4 で、仮定 §5 がある場合、§6 は目標を解決します。\n\n### 例\n\nもし目標が §7 である場合、§8 は目標を閉じます。\n\n### 必ず正確に\n\n注意してほしいのは、前の例では §9 は *機能しません*;\n§10 が機能するためには、§11 は目標の *正確な* 証明である必要があります。\n§12 は目標の §13 の証明であるか、あるいは §14 の証明で、§15 はユーザーによって提供される必要があります。\nこれは §16 と §17 とは異なり、必要に応じてこれらの関数は *入力の推測* を行います。もし目標が §18 である場合、§19 と §20 は両方とも目標を §21 に変更します。\nこれは §22 が関数 §23 の入力を推測するからです。", + "## 概要\n\n目標が §0 である場合に、§2 が §3 の証明ならば、目標は §1 で解決されます。\n\n### 例\n\n目標が §4 である場合、仮定 §5 があるならば、§6 は目標を解決します。\n\n### 例\n\n目標が §7 である場合、§8 は目標を解決します。\n\n### 正確な記述が必要\n\n注意点として、前の例では §9 は *機能しません*;\n§10 が機能するためには、§11 は目標の *正確な* 証明である必要があります。\n§12 は目標の §13 の証明であるか、あるいは §14 の証明で、§15 はユーザーによって提供される必要があります。\nこれは §16 と §17 とは異なり、必要に応じてこれらの関数は *入力の推測* を行います。もし目標が §18 である場合、§19 と §20 は両方とも目標を §21 に変更します。\nこれは §22 が関数 §23 の入力を推測するからです。", "## Precision rewriting\n\nIn the last level, there was §0 and §1,\nand §2 changed the first one it saw,\nwhich was §3. Let's learn how to tell Lean\nto change §4 first by giving §5 an\nexplicit input.": - "## 精密な書き換え\n\n前のレベルでは、§0 と §1 があり、\n§2 は最初に見つけた§3を変更しました。\nLean に §4 を最初に変更させる方法を学びましょう。\n§5 に明示的な入力を与えることで実現します。", + "## 精密な書き換え\n\n直前のレベルでは、§0 と §1 が存在し、\n§2 は最初に見つかった §3 を変更しました。\nLean に §4 を最初に変更させる方法を学びましょう。\nこれを行うには、§5 に明示的な入力を与えます。", "# Welcome to the Natural Number Game\n#### An introduction to mathematical proof.\n\nIn this game, we will build the basic theory of the natural\nnumbers §0 from scratch. Our first goal is to prove\nthat §1. Next we'll prove that §2.\nAnd at the end we'll see if we can prove Fermat's Last Theorem.\nWe'll do this by solving levels of a computer puzzle game called Lean.\n\n# Read this.\n\nLearning how to use an interactive theorem prover takes time.\nTests show that the people who get the most out of this game are\nthose who read the help texts like this one.\n\nTo start, click on \"Tutorial World\".\n\nNote: this is a new Lean 4 version of the game containing several\nworlds which were not present in the old Lean 3 version. More new worlds\nsuch as Strong Induction World, Even/Odd World and Prime Number World\nare in development; if you want to see their state or even help out, checkout\nout the [issues in the github repo](https://github.com/leanprover-community/NNG4/issues).\n\n## More\n\nClick on the three lines in the top right and select \"Game Info\" for resources,\nlinks, and ways to interact with the Lean community.": - "# 自然数ゲームへようこそ\n#### 数学的証明への入門\n\nこのゲームでは、自然数 §0 の基本理論をゼロから構築します。最初の目標は §1 を証明することです。次に §2 を証明します。そして最後には、フェルマーの最終定理を証明できるかどうかを見ていきます。これらの目標を達成するために、コンピュータパズルゲーム「Lean」のレベルを解いていきます。\n\n# 読んでください。\n\nインタラクティブ証明システムの使い方を学ぶには時間がかかります。テスト結果によれば、このゲームで最も効果的なのは、このようなヘルプテキストを読む人です。\n\n開始するには、「チュートリアルワールド」をクリックしてください。\n\n注意:これは、旧Lean 3版に存在しなかった複数のワールドを含む新しいLean 4版のゲームです。強い帰納法ワールド、偶数/奇数ワールド、素数ワールドなどの新しいワールドの開発が進行中です;これらの状態を確認したいか、協力したい場合は、[githubリポジトリのissues](https://github.com/leanprover-community/NNG4/issues) をチェックしてください。\n\n## 追加情報\n\n右上隅の三本線をクリックし、「ゲーム情報」を選択してリソース、リンク、Leanコミュニティとの交流方法を確認してください。", + "# 自然数ゲームへようこそ\n#### 数学的証明への入門\n\nこのゲームでは、自然数 §0 の基本理論をゼロから構築します。最初の目標は §1 を証明することです。次に §2 を証明します。そして最後には、フェルマーの最終定理を証明できるかどうかを見ていきます。これらの目標を達成するために、コンピュータパズルゲーム「Lean」のレベルを解いていきます。\n\n# 読んでください。\n\nインタラクティブな定理証明システムの使い方を習得するには時間がかかります。テストの結果から、このゲームで最も効果的なのは、このようなヘルプテキストを読む人です。\n\n開始するには、「チュートリアルワールド」をクリックしてください。\n\n注意:これは、旧Lean 3版に存在しなかった複数のワールドを含む新しいLean 4版のゲームです。強い帰納法ワールド、偶数/奇数ワールド、素数ワールドなどの新しいワールドの開発が進行中です;これらの状態を確認したいか、協力したい場合は、[GitHubリポジトリのissues](https://github.com/leanprover-community/NNG4/issues) をチェックしてください。\n\n## 追加情報\n\n右上隅の三本線をクリックし、「ゲーム情報」を選択して、リソース、リンク、Leanコミュニティとの交流方法を確認してください。", "# Summary\nThe §0 tactic changes a goal of §1 into a goal of §2.\nUse it when your hypotheses guarantee that the reason that §3\nis true is because in fact §4 is true.\n\nInternally this tactic is just §5ing a theorem\nsaying that §6\n\nNote that this tactic can turn a solvable goal into an unsolvable\none.": - "# 概要\n§0 タクティクは、目標 §1 を §2 に変更します。\n仮定が §3 が真である理由は実際には §4 が真であるからである場合に使用します。\n\n内部的には、このタクティクは §6 という定理を §5 します。\n\n注意していただきたいのは、このタクティクが解決可能な目標を解決不能な目標に変更する可能性があることです。", - "# Summary\n\n§0 will solve the goal §1.": "# 概要\n\n§0 は目標 §1 を解決します。", + "# 概要\n§0 タクティクは、目標 §1 を §2 に変更します。\n仮定が、§3 が真である理由は実際には §4 が真であることを保証する場合に使用します。\n\n内部的には、このタクティクは §6 という定理を §5 します。\n\n注意していただきたいのは、このタクティクが、解決可能な目標を解決不能な目標に変更する可能性があることです。", + "# Summary\n\n§0 will solve the goal §1.": "# 概要\n\n§0 は、目標 §1 を解決します。", "# Summary\n\n§0 will attempt to solve a goal if it can find an algorithm which it\ncan run to solve it.\n\n## Example\n\nA term of type §1 is an algorithm to decide whether two naturals\nare equal or different. Hence, once this term is made and made into an §2,\nthe §3 tactic can use it to solve goals of the form §4 or §5.": - "# 概要\n\n§0は、解決アルゴリズムを見つけることができれば、目標を解決しようとします。\n\n## 例\n\n型§1の項は、2つの自然数が等しいか異なるかを決定するアルゴリズムです。したがって、この項が作成され、§2に変換されると、§3タクティクは、§4または§5のような目標を解決するためにそれを使用することができます。", + "# 概要\n\n§0 は、解決可能なアルゴリズムが存在する場合に、目標を解決しようとします。\n\n## 例\n\n型 §1 の項は、2 つの自然数が等しいか異なるかを判定するアルゴリズムです。したがって、この項が作成され、§2 に変換されると、§3 タクティクは、§4 または §5 のような目標を解決するために使用できます。", "# Summary\n\nThe §0 tactic will solve any goal which can be solved purely by logic (that is, by\ntruth tables).\n\n## Details\n\n§1 *does not do magic*! It doesn't know *anything* about addition or multiplication,\nit doesn't even know §2. The only things that §3 knows about numbers\nare firstly that §4 and secondly that §5, §6, §7 and so on.\nWhat §8's strength is, is *logic*. If you have a hypothesis §9\nand another hypothesis §10 and your goal is §11 then §12 will\nsolve this goal, because to solve that goal you don't need to know any facts\nabout inequalities or addition, all you need to know is the rules of logic.\n\n## Example\n\nIf you have §13 as a hypothesis, then §14 will solve\nthe goal. This is because a false hypothesis implies any hypothesis.\n\n## Example\n\nIf your goal is §15, then §16 will solve the goal.\n\n## Example\n\nIf you have two hypotheses §17 and §18 then §19 will\nsolve the goal because it can prove §20 from your hypotheses, and thus\nprove the goal (as §21 implies anything).\n\n## Example\n\nIf you have one hypothesis §22 then §23 will solve the goal because\n§24 is smart enough to know that §25 is true, which gives the contradiction we seek.\n\n## Example\n\nIf you have a hypothesis §26 then §27 will solve the goal, because\n§28 knows §29 and this is enough to prove §30, which implies any goal.\n\n## Example\n\nIf you have a hypothesis of the form §31 and your goal is §32, then\n§33 will solve the goal, because the goal is logically equivalent to the hypothesis.\nIf you switch the goal and hypothesis in this example, §34 would solve it too.": - "# 概要\n\n§0 タクティクは、論理だけで解決できる目標(つまり、真偽表で解決できる目標)を解決します。\n\n## 詳細\n\n§1 は *魔法を施すわけではない*!加算や乗算については何も知らないし、§2 すらも知らない。§3 が数について知っているのは、まず §4 であり、二つ目は §5, §6, §7 などである。§8 の強みは *論理* にある。仮定 §9 と仮定 §10 があり、目標が §11 の場合、§12 はこの目標を解決します。なぜなら、目標を解決するには不等式や加算に関する事実を知る必要がないし、必要なのは論理のルールだけです。\n\n## 例\n\n仮定として §13 がある場合、§14 は目標を解決します。これは、偽の仮定は任意の仮定を推論するからです。\n\n## 例\n\n目標が §15 の場合、§16 は目標を解決します。\n\n## 例\n\n仮定が §17 と §18 である場合、§19 は目標を解決します。なぜなら、§19 はあなたの仮定から §20 を証明でき、したがって目標を証明できるからです(§21 は何かを推論するためのもの)。\n\n## 例\n\n仮定が §22 である場合、§23 は目標を解決します。なぜなら、§24 は §25 が真であることを知っているので、これは求めている矛盾を与えます。\n\n## 例\n\n仮定が §26 の形式である場合、目標が §32 の場合、§33 は目標を解決します。なぜなら、目標は仮定と論理的に等価であるからです。この例で目標と仮定を入れ替えると、§34 も解決します。\n\n## 例\n\n仮定が §31 の形式であり、目標が §32 の場合、§33 は目標を解決します。なぜなら、目標は仮定と論理的に等価であるからです。この例で目標と仮定を入れ替えると、§34 も解決します。", + "# 概要\n\n§0 タクティクは、論理のみを用いて解決できる目標(つまり、真偽表で解決できる目標)を解決します。\n\n## 詳細\n\n§1 は *魔法ではありません*!加算や乗算について何も知りませんし、§2 についても同様です。§3 が数について知っているのは、まず §4 であり、次に §5, §6, §7 などです。§8 の強みは *論理* です。仮定 §9 と仮定 §10 があり、目標が §11 の場合、§12 はこの目標を解決します。なぜなら、目標を解決するには不等式や加算に関する事実を知る必要がなく、必要なのは論理のルールだけです。\n\n## 例\n\n仮定として §13 がある場合、§14 は目標を解決します。これは、偽の仮定は任意の仮定を推論するからです。\n\n## 例\n\n目標が §15 の場合、§16 は目標を解決します。\n\n## 例\n\n仮定が §17 と §18 である場合、§19 は目標を解決します。なぜなら、§19 はあなたの仮定から §20 を証明でき、したがって目標を証明できるからです(§21 は任意のものを推論できます)。\n\n## 例\n\n仮定が §22 である場合、§23 は目標を解決します。なぜなら、§24 は §25 が真であることを知っているので、これは求めている矛盾を与えます。\n\n## 例\n\n仮定が §26 の形式である場合、目標が §32 の場合、§33 は目標を解決します。なぜなら、目標は仮定と論理的に等価であるからです。この例で目標と仮定を入れ替えると、§34 も解決します。\n\n## 例\n\n仮定が §31 の形式であり、目標が §32 の場合、§33 は目標を解決します。なぜなら、目標は仮定と論理的に等価であるからです。この例で目標と仮定を入れ替えると、§34 も解決します。", "# Summary\n\nThe §0 tactic can be used to add new hypotheses to a level, but of course\nyou have to prove them.\n\n\n## Example\n\nThe simplest usage is like this. If you have §1 in your context and you execute\n\n§2\n\nthen you will get a new goal §3 to prove, and after you've proved\nit you will have a new hypothesis §4 in your original goal.\n\n## Example\n\nIf you already have a proof of what you want to §5, you\ncan just create it immediately. For example, if you have §6 and §7\nnumber objects, then\n\n§8\n\nwill directly add a new hypothesis §9\nto the context, because you just supplied the proof of it (§10).\n\n## Example\n\nIf you have a proof to hand, then you don't even need to state what you\nare proving. For example\n\n§11\n\nwill add §12 as a hypothesis.": - "# 概要\n\n§0 タクティクはレベルに新しい仮定を追加するのに使用できますが、もちろんそれらを証明する必要があります。\n\n## 例\n\n最も単純な使用法は以下の通りです。コンテキストに§1がある場合、§2を実行すると新しい目標§3が生成され、それを証明すると元の目標に新しい仮定§4が追加されます。\n\n## 例\n\n既に証明したいものを持っている場合、それをすぐに作成することができます。例えば、§6と§7で番号付けされたオブジェクトがある場合、§8を実行すると、その証明(§10)を提供したため、コンテキストに新しい仮定§9が追加されます。\n\n## 例\n\n証明を持っている場合、証明したいものを明示する必要すらありません。例えば、§11を実行すると、§12が仮定として追加されます。", + "# 概要\n\n§0 タクティックは、レベルに新しい仮定を追加するために使用できますが、それらを証明する必要があります。\n\n## 例\n\n最も単純な使用法は以下の通りです。コンテキストに§1がある場合、§2を実行すると、新しい目標§3が生成され、それを証明すると元の目標に新しい仮定§4が追加されます。\n\n## 例\n\n既に証明したいものを持っている場合、それをすぐに作成することができます。例えば、§6と§7で番号付けされたオブジェクトがある場合、§8を実行すると、その証明(§10)を提供したため、コンテキストに新しい仮定§9が追加されます。\n\n## 例\n\n証明を持っている場合、証明したいものを明示する必要すらありません。例えば、§11を実行すると、§12が仮定として追加されます。", "# Summary\n\nIf you have a hypothesis\n\n§0\n\nand goal\n\n§1\n\nthen §2 replaces the set-up with its so-called \\\\\"contrapositive\\\\\":\na hypothesis\n\n§3\n\nand goal\n\n§4.": - "# 概要\n\n仮定\n\n§0\n\nと目標\n\n§1\n\nがある場合、§2 はセットアップを反論と呼ばれるものに置き換える:\n仮定\n\n§3\n\nと目標\n\n§4\n\nになります。", + "# 概要\n\n仮説\n\n§0\n\nと目標\n\n§1\n\nがある場合、§2 は、設定を「反証」というものに置き換えます:\n仮説\n\n§3\n\nと目標\n\n§4\n\nです。", "# Statement\n\nIf §0 and §1 are numbers, then\n§2 is the proof that\n§3.\n\n## More technical details\n\nThere are other ways to think about §4.\n\nYou can think about §5 itself as a function which takes two\nnumbers §6 and §7 as input, and outputs a proof of\n§8.\n\nYou can think of §9 itself as a proof; it is the proof\nthat §10 is an injective function. In other words,\n§11 is a proof of\n§12.\n\n§13 was postulated as an axiom by Peano, but\nin Lean it can be proved using §14, a mathematically\npathological function.": - "# 命題\n\n§0 と §1 が数値である場合、\n§2 は §3 の証明です。\n\n## さらなる技術的な詳細\n\n§4 を考える方法は他にもあります。\n\n§5 は、2 つの数値 §6 と §7 を入力として取り、\n§8 の証明を出力する関数として考えることができます。\n\n§9 は自身が証明であり、これは §10 が単射関数であることを示す証明です。つまり、\n§11 は §12 の証明です。\n\nペアノによって公理として導入された §13 ですが、\nLean では §14、すなわち数学的に病理的な関数を使用して証明できます。", + "# 命題\n\n§0 と §1 が数値である場合、\n§2 は §3 の証明です。\n\n## さらなる技術的な詳細\n\n§4 について考える方法は他にもあります。\n\n§5 を、入力として 2 つの数値 §6 と §7 を受け取り、出力として §8 の証明を生成する関数と捉えることができます。\n\n§9 は自身が証明であり、これは §10 が単射関数であることを示す証明です。言い換えれば、\n§11 は §12 の証明となります。\n\nペアノによって公理として導入された §13 ですが、Lean では §14、すなわち数学的に異常な関数を用いて証明できます。", "# Read this first\n\nEach level in this game involves proving a mathematical theorem (the \"Goal\").\nThe goal will be a statement about *numbers*. Some numbers in this game have known values.\nThose numbers have names like §0. Other numbers will be secret. They're called things\nlike §1 and §2. We know §3 is a number, we just don't know which one.\n\nIn this first level we're going to prove the theorem that §4.\nYou can see §5 in the *Objects* below, which means that §6 and §7\nare numbers.\n\nWe solve goals in Lean using *Tactics*, and the first tactic we're\ngoing to learn is called §8, which proves all theorems of the form §9.\n\nProve that §10 by executing the §11 tactic.": - "# まずはこちらを読む\n\nこのゲームの各レベルでは、数学的定理(「目標」)を証明します。\n目標は数に関する主張です。このゲームには既知の値を持つ数がいくつかあります。\nその数には§0のような名前がついています。他の数は秘密です。§1や§2のような名前で呼ばれます。§3は数であることは分かっていますが、具体的にはどの数かは分かりません。\n\nこの最初のレベルでは、§4という定理を証明します。\n下の*対象*に§5が表示されているので、§6と§7は数であることが分かります。\n\nLeanで目標を解決するには*タクティク*を使用します。最初に学ぶタクティクは§8で、これは§9のような形式の定理を証明します。\n\n§10を証明するために§11 タクティクを実行してください。", + "# まずはこちらを読む\n\nこのゲームの各レベルでは、数学的な定理(「目標」)を証明します。\n目標は数に関する主張です。このゲームには既知の値を持つ数がいくつかあります。\nその数には§0のような名前がついています。他の数は秘密です。§1や§2のような名前で呼ばれます。§3は数であることは分かっていますが、具体的にはどの数かは分かりません。\n\nこの最初のレベルでは、§4という定理を証明します。\n下の*対象*に§5が表示されているので、§6と§7は数であることが分かります。\n\nLeanで目標を解決するには*タクティク*を使用します。最初に学ぶタクティクは§8で、これは§9のような形式の定理を証明します。\n\n§10を証明するために§11 タクティクを実行してください。", "# Overview\n\nOur home-made tactic §0 will solve arbitrary goals of\nthe form §1.": - "# 概要\n\n私たちが作成したタクティク §0 は、§1 のような任意の目標を解決します。", + "# 概要\n\n私たちが開発したタクティク §0 は、§1 の形式の目標を解決します。", "# Overview\n\nLean's simplifier, §0, will rewrite every lemma\ntagged with §1 and every lemma fed to it by the user, as much as it can.\nFurthermore, it will attempt to order variables into an internal order if fed\nlemmas such as §2, so that it does not go into an infinite loop.": - "# 概要\n\nLeanの簡略化処理器§0は、§1でタグ付けされたすべての補題およびユーザーから与えられたすべての補題をできる限り簡略化します。さらに、§2のような補題を与えると、内部の順序に変数を並び替える試みも行い、無限ループに陥らないようにします。"} \ No newline at end of file + "# 概要\n\nLeanの簡略化処理器 §0 は、§1 でタグ付けされたすべての定理およびユーザーから与えられたすべての定理をできる限り簡略化します。さらに、§2 のような定理を与えると、内部的な順序で変数を並べ替える試みも行い、無限ループに陥らないようにします。"} \ No newline at end of file From 39fa1adbbf0536dcb12e50dd7be6fb79e915fb43 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sat, 2 May 2026 03:07:21 +0900 Subject: [PATCH 098/147] change order to translate/review easily --- .i18n/ja/Game.po | 9993 +++++++++++++++++++++++----------------------- 1 file changed, 4995 insertions(+), 4998 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 196ac808..54a09784 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -12,227 +12,181 @@ msgstr "" "MIME-Version: 1.0\n" "Plural-Forms: nplurals=1; plural=0;\n" -# no-translate -#: Game.Levels.LessOrEqual.L10le_one -msgid "x ≤ 1" -msgstr "x ≤ 1" - -#: Game.Levels.AdvMultiplication.L06mul_right_eq_one -#. §0: `tauto` -msgid "§0 is good enough to solve this goal." -msgstr "§0 は、この問題を解決するために十分な情報を提供します。" - -# no-translate -#: Game.Levels.Multiplication.L09mul_assoc -msgid "mul_assoc" -msgstr "mul_assoc" +#: Game +#. §0: $\\mathbb{N}$ +msgid "" +"In this game you recreate the natural numbers §0 from the Peano axioms,\n" +"learning the basics about theorem proving in Lean.\n" +"\n" +"This is a good first introduction to Lean!" +msgstr "" +"このゲームでは、ペアノの公理に基づいて自然数 §0 を再構成し、Leanにおける定理証明の基礎を習得します。\n" +"\n" +"これは、Leanへの優れた入門となるでしょう!" -#: Game.Levels.Implication.L04succ_inj -#. §0: $a$ -#. §1: $b$ -#. §2: `succ_inj a b` -#. §3: $ (\\operatorname{succ}(a) = \\operatorname{succ}(b)) \\implies a=b$ -#. §4: `succ_inj` -#. §5: `succ_inj` -#. §6: $$a$$ -#. §7: $$b$$ -#. §8: $ ( \\operatorname{succ}(a) = \\operatorname{succ}(b)) \\implies a=b$ -#. §9: `succ_inj` -#. §10: `succ` -#. §11: `succ_inj` -#. §12: $\\forall a, b \\in \\mathbb{N}, ( \\operatorname{succ}(a) = \\operatorname{succ}(b)) \\implies a=b$ -#. §13: `succ_inj` -#. §14: `pred` +#: Game +#. §0: `{0,1,2,3,4,...}` +#. §1: `2 + 2 = 4` +#. §2: `x + y = y + x` msgid "" -"# Statement\n" +"# Welcome to the Natural Number Game\n" +"#### An introduction to mathematical proof.\n" "\n" -"If §0 and §1 are numbers, then\n" -"§2 is the proof that\n" -"§3.\n" +"In this game, we will build the basic theory of the natural\n" +"numbers §0 from scratch. Our first goal is to prove\n" +"that §1. Next we'll prove that §2.\n" +"And at the end we'll see if we can prove Fermat's Last Theorem.\n" +"We'll do this by solving levels of a computer puzzle game called Lean.\n" "\n" -"## More technical details\n" +"# Read this.\n" "\n" -"There are other ways to think about §4.\n" +"Learning how to use an interactive theorem prover takes time.\n" +"Tests show that the people who get the most out of this game are\n" +"those who read the help texts like this one.\n" "\n" -"You can think about §5 itself as a function which takes two\n" -"numbers §6 and §7 as input, and outputs a proof of\n" -"§8.\n" +"To start, click on \"Tutorial World\".\n" "\n" -"You can think of §9 itself as a proof; it is the proof\n" -"that §10 is an injective function. In other words,\n" -"§11 is a proof of\n" -"§12.\n" +"Note: this is a new Lean 4 version of the game containing several\n" +"worlds which were not present in the old Lean 3 version. More new worlds\n" +"such as Strong Induction World, Even/Odd World and Prime Number World\n" +"are in development; if you want to see their state or even help out, " +"checkout\n" +"out the [issues in the github " +"repo](https://github.com/leanprover-community/NNG4/issues).\n" "\n" -"§13 was postulated as an axiom by Peano, but\n" -"in Lean it can be proved using §14, a mathematically\n" -"pathological function." -msgstr "" -"# 命題\n" +"## More\n" "\n" -"§0 と §1 が数値である場合、\n" -"§2 は §3 の証明です。\n" +"Click on the three lines in the top right and select \"Game Info\" for " +"resources,\n" +"links, and ways to interact with the Lean community." +msgstr "" +"# 自然数ゲームへようこそ\n" +"#### 数学的証明への入門\n" "\n" -"## さらなる技術的な詳細\n" +"このゲームでは、自然数 §0 の基本理論をゼロから構築します。最初の目標は §1 を証明することです。次に §2 " +"を証明します。そして最後には、フェルマーの最終定理を証明できるかどうかを見ていきます。これらの目標を達成するために、コンピュータパズルゲーム「Lean」" +"のレベルを解いていきます。\n" "\n" -"§4 について考える方法は他にもあります。\n" +"# 読んでください。\n" "\n" -"§5 を、入力として 2 つの数値 §6 と §7 を受け取り、出力として §8 の証明を生成する関数と捉えることができます。\n" +"インタラクティブな定理証明システムの使い方を習得するには時間がかかります。テストの結果から、このゲームで最も効果的なのは、このようなヘルプテキストを読む" +"人です。\n" "\n" -"§9 は自身が証明であり、これは §10 が単射関数であることを示す証明です。言い換えれば、\n" -"§11 は §12 の証明となります。\n" +"開始するには、「チュートリアルワールド」をクリックしてください。\n" "\n" -"ペアノによって公理として導入された §13 ですが、Lean では §14、すなわち数学的に異常な関数を用いて証明できます。" - -#: Game.Levels.Addition.L02succ_add -#. §0: $a, b$ -#. §1: $ \\operatorname{succ}(a) + b = \\operatorname{succ}(a + b)$ -msgid "" -"For all natural numbers §0, we have\n" -"§1." -msgstr "" -"すべての自然数 0 に対して、\n" -"§1。" - -#: Game.Levels.Tutorial.L04rw_backwards -#. §0: `h` -#. §1: `X = Y` -#. §2: `rw [h]` -#. §3: `X` -#. §4: `Y` -#. §5: `Y` -#. §6: `X` -#. §7: `rw` -#. §8: `←` -#. §9: `\\l` -#. §10: $2$ -#. §11: $0$ -#. §12: `succ (succ 0)` -#. §13: `2` -msgid "" -"If §0 is a proof of §1 then §2 will\n" -"turn §3s into §4s. But what if we want to\n" -"turn §5s into §6s? To tell the §7 tactic\n" -"we want this, we use a left arrow §8. Type\n" -"§9 and then hit the space bar to get this arrow.\n" +"注意:これは、旧Lean 3版に存在しなかった複数のワールドを含む新しいLean " +"4版のゲームです。強い帰納法ワールド、偶数/" +"奇数ワールド、素数ワールドなどの新しいワールドの開発が進行中です;これらの状態を確認したいか、協力したい場合は、[GitHubリポジトリのissues]" +"(https://github.com/leanprover-community/NNG4/issues) をチェックしてください。\n" "\n" -"Let's prove that §10 is the number after the number\n" -"after §11 again, this time by changing §12\n" -"into §13." -msgstr "" -"もし §0 が §1 の証明である場合、§2 は §3 を §4 に変換します。しかし、§5 を §6 に変換したい場合はどうでしょうか? §7 " -"タクティクに、この変換を指示するために、左矢印 §8 を使用します。 §9 と入力し、スペースキーを押すと、この矢印が得られます。\n" +"## 追加情報\n" "\n" -"次の証明で、§10 が §11 の後ろの数値の後ろの数値であることを証明しましょう。今回は §12 を §13 に変換して証明します。" +"右上隅の三本線をクリックし、「ゲーム情報」を選択して、リソース、リンク、Leanコミュニティとの交流方法を確認してください。" -#: Game.Levels.AdvMultiplication.L06mul_right_eq_one -#. §0: `have` -#. §1: `a` -#. §2: `have ha : a = 0` -#. §3: `a = 0` -#. §4: `ha : a = 0` -#. §5: `have` -#. §6: `a` -#. §7: `b` -#. §8: `have h2 : succ a = succ b → a = b := succ_inj a b` -#. §9: `h2 : succ a = succ b → a = b` -#. §10: `succ_inj a b` -#. §11: `have h2 := succ_inj a b` -#. §12: `h2 : succ a = succ b → a = b` +#: Game msgid "" -"# Summary\n" +"*Game version: 4.3*\n" "\n" -"The §0 tactic can be used to add new hypotheses to a level, but of course\n" -"you have to prove them.\n" +"*Recent additions: bug fixes*\n" "\n" +"## Progress saving\n" "\n" -"## Example\n" +"The game stores your progress in your local browser storage.\n" +"If you delete it, your progress will be lost!\n" "\n" -"The simplest usage is like this. If you have §1 in your context and you " -"execute\n" +"Warning: In most browsers, deleting cookies will also clear the local " +"storage\n" +"(or \"local site data\"). Make sure to download your game progress first!\n" "\n" -"§2\n" +"## Credits\n" "\n" -"then you will get a new goal §3 to prove, and after you've proved\n" -"it you will have a new hypothesis §4 in your original goal.\n" +"* **Creators:** Kevin Buzzard, Jon Eugster\n" +"* **Original Lean3-version:** Kevin Buzzard, Mohammad Pedramfar\n" +"* **Game Engine:** Alexander Bentkamp, Jon Eugster, Patrick Massot\n" +"* **Additional levels:** Sian Carey, Ivan Farabella, Archie Browne.\n" +"* **Additional thanks:** All the student beta testers, all the schools\n" +"who invited Kevin to speak, and all the schoolkids who asked him questions\n" +"about the material.\n" "\n" -"## Example\n" +"## Resources\n" "\n" -"If you already have a proof of what you want to §5, you\n" -"can just create it immediately. For example, if you have §6 and §7\n" -"number objects, then\n" +"* The [Lean Zulip chat](https://leanprover.zulipchat.com/) forum\n" +"* [Original Lean3 " +"version](https://github.com/ImperialCollegeLondon/natural_number_game/) (no " +"longer maintained)\n" "\n" -"§8\n" +"## Problems?\n" "\n" -"will directly add a new hypothesis §9\n" -"to the context, because you just supplied the proof of it (§10).\n" +"Please ask any questions about this game in the\n" +"[Lean Zulip chat](https://leanprover.zulipchat.com/) forum, for example in\n" +"the stream \"New Members\". The community will happily help. Note that\n" +"the Lean Zulip chat is a professional research forum.\n" +"Please use your full real name there, stay on topic, and be nice. If you're\n" +"looking for somewhere less formal (e.g. you want to post natural number\n" +"game memes) then head on over to the [Lean " +"Discord](https://discord.gg/WZ9bs9UCvx).\n" "\n" -"## Example\n" +"Alternatively, if you experience issues / bugs you can also open github " +"issues:\n" "\n" -"If you have a proof to hand, then you don't even need to state what you\n" -"are proving. For example\n" +"* For issues with the game engine, please open an\n" +"[issue at the " +"lean4game](https://github.com/leanprover-community/lean4game/issues) repo.\n" +"* For issues about the game's content, please open an\n" +"[issue at the NNG](https://github.com/hhu-adam/NNG4/issues) repo." +msgstr "" +"*ゲームバージョン: 4.3*\n" "\n" -"§11\n" +"*最近の追加: バグ修正*\n" "\n" -"will add §12 as a hypothesis." -msgstr "" -"# 概要\n" +"## 進捗保存\n" "\n" -"§0 タクティックは、レベルに新しい仮定を追加するために使用できますが、それらを証明する必要があります。\n" +"ゲームは、あなたの進捗をローカルブラウザストレージに保存します。\n" +"これを削除すると、進捗が失われます!\n" "\n" -"## 例\n" +"注意:多くのブラウザでは、クッキーを削除するとローカルストレージ(または「ローカルサイトデータ」)もクリアされます。進捗をダウンロードしてから削除するこ" +"とを確認してください!\n" "\n" -"最も単純な使用法は以下の通りです。コンテキストに§1がある場合、§2を実行すると、新しい目標§3が生成され、それを証明すると元の目標に新しい仮定§4" -"が追加されます。\n" +"## 謝辞\n" "\n" -"## 例\n" +"* **クリエイター:** Kevin Buzzard, Jon Eugster\n" +"* **オリジナルLean3バージョン:** Kevin Buzzard, Mohammad Pedramfar\n" +"* **ゲームエンジン:** Alexander Bentkamp, Jon Eugster, Patrick Massot\n" +"* **追加レベル:** Sian Carey, Ivan Farabella, Archie Browne.\n" +"* **追加の感謝:** 全ての学生ベータテスト者、Kevinを講演に招待した全ての学校、質問をした全ての学校の子供たち\n" "\n" -"既に証明したいものを持っている場合、それをすぐに作成することができます。例えば、§6と§7で番号付けされたオブジェクトがある場合、§8" -"を実行すると、その証明(§10)を提供したため、コンテキストに新しい仮定§9が追加されます。\n" +"## リソース\n" "\n" -"## 例\n" +"* [Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラム\n" +"* " +"[元のLean3版](https://github.com/ImperialCollegeLondon/natural_number_game/)" +"(現在メンテナンスされていません)\n" "\n" -"証明を持っている場合、証明したいものを明示する必要すらありません。例えば、§11を実行すると、§12が仮定として追加されます。" - -#: Game.Levels.Addition.L04add_assoc -#. §0: `a + b + c` -#. §1: `(a + b) + c` -#. §2: `+` -msgid "" -"Remember that when Lean writes §0, it means §1.\n" -"If you are not sure where the brackets are in an expression, just hover\n" -"your cursor over it and look at what gets highlighted. For example,\n" -"hover over both §2 symbols on the left hand side of the goal and\n" -"you'll see where the invisible brackets are." -msgstr "" -"Leanにおいて「§0」と表示された場合、「§1" -"」を意味することを覚えておいてください。もし式内の括弧の位置が不明な場合は、カーソルをその位置にホバーして表示されるハイライトを確認してください。例えば" -"、目標の左側の両方の「§2」をホバーすると、見えない括弧の位置がわかります。" - -#: Game.Levels.Tutorial.L04rw_backwards -#. §0: `rw [← one_eq_succ_zero]` -#. §1: `succ 0` -#. §2: `1` -msgid "Try §0 to change §1 into §2." -msgstr "§0を使用して、§1を§2に変換することを試みてください。" - -#: Game.Levels.Tutorial.L07add_succ -#. §0: `1` -msgid "Start by unravelling the §0." -msgstr "まず、§0 を解き始めましょう。" - -#: Game.Levels.Tutorial.L02rw -msgid "the rw tactic" -msgstr "rw タクティク" +"## お困りですか?\n" +"\n" +"このゲームに関する質問は、[Lean Zulipチャット](https://leanprover.zulipchat.com/) " +"フォーラムで質問してください。例えば、「New Members」ストリームで質問できます。コミュニティは喜んでお手伝いします。注意: Lean " +"Zulipチャットはプロフェッショナルな研究フォーラムです。そこでフルネームを使用し、トピックに集中し、丁寧に接してください。より非公式な場所(例えば、" +"自然数ゲームのメモを投稿したい場合)を探している場合は、[Lean Discord](https://discord.gg/WZ9bs9UCvx) " +"に移動してください。\n" +"(訳注: これらはいずれも外国語のコミュニティです。もし日本語で質問をしたいのであれば、[Lean " +"の日本語コミュニティ](https://lean-ja.github.io/about/)上で質問すると良いでしょう。)\n" +"\n" +"または、問題やバグが発生した場合は、GitHubの問題をオープンすることもできます:\n" +"\n" +"* " +"ゲームエンジンに関する問題は、[lean4game](https://github.com/leanprover-community/lean4" +"game/issues) リポジトリで問題をオープンしてください。\n" +"* ゲームの内容に関する問題は、[NNG](https://github.com/hhu-adam/NNG4/issues) " +"リポジトリで問題をオープンしてください。" -# no-translate -#: Game.Levels.AdvMultiplication.L02mul_left_ne_zero -msgid "mul_left_ne_zero" -msgstr "mul_left_ne_zero" +#: Game +msgid "Natural Number Game" +msgstr "自然数ゲーム" -# no-translate -#: Game.Levels.AdvMultiplication.L07mul_ne_zero -msgid "mul_ne_zero" -msgstr "mul_ne_zero" +#: Game +msgid "The classical introduction game for Lean." +msgstr "Lean 4 用の、古典的な導入ゲーム。" #: Game.Levels.Tutorial #. §0: `2 + 2 = 4` @@ -254,221 +208,208 @@ msgstr "" "\n" "基本的なタクティクについて学びましょう。「開始」をクリックして冒険を始めてください。" -# no-translate -#: Game.Levels.AdvAddition.L02add_left_cancel -msgid "add_left_cancel" -msgstr "add_left_cancel" - -#: Game.Levels.LessOrEqual.L01le_refl -msgid "You can probably take it from here." -msgstr "ここからでも進めることができるでしょう。" - -# no-translate -#: Game.Levels.Tutorial.L08twoaddtwo -msgid "2+2=4" -msgstr "2+2=4" - -#: Game.Levels.Implication.L08ne -#. §0: `x ≠ y` -#. §1: `x = y → False` -msgid "Remember, §0 is *notation* for §1." -msgstr "覚えておいてください。§0 は §1 の *表記* です。" +#: Game.Levels.Tutorial +msgid "Tutorial World" +msgstr "チュートリアルワールド" -#: Game.Levels.AdvMultiplication.L08mul_eq_zero -#. §0: `a * b = 0` -#. §1: `a = 0` -#. §2: `b = 0` +#: Game.Levels.Tutorial.L01rfl +#. §0: `rfl` msgid "" -"This level proves that if §0 then §1 or §2. It is\n" -"logically equivalent to the last level, so there is a very short proof." -msgstr "このレベルでは、§0ならば§1または§2であることを証明します。これは直前のレベルと同等の論理構造を持つため、非常に短い証明で済みます。" +"In order to use the tactic §0 you can enter it in the text box\n" +"under the goal and hit \"Execute\"." +msgstr "タクティク §0 を使用するには、目標の下にあるテキストボックスに記述し、「実行」ボタンをクリックしてください。" -#: Game.Levels.Addition.L01zero_add -#. §0: $0+n=n$ -#. §1: $n$ -#. §2: $n+0=n$ -#. §3: `add_zero` -#. §4: `zero_add` -#. §5: `0 + n = n` -#. §6: `0 + n` -#. §7: `add_zero` -#. §8: `add_succ` -#. §9: `n` -#. §10: `0` -#. §11: `induction` -#. §12: `0 + 0 = 0` -#. §13: `0 + d = d` -#. §14: `0 + succ d = succ d` -#. §15: `0` -#. §16: `>_` +#: Game.Levels.Tutorial.L01rfl +#. §0: $37$ +#. §1: $x$ +#. §2: $q$ +#. §3: $x$ +#. §4: $37x + q = 37x + q$ +#. §5: `x q : ℕ` +#. §6: `x` +#. §7: `q` +#. §8: `rfl` +#. §9: $X = X$ +#. §10: $37x+q=37x+q$ +#. §11: `rfl` msgid "" -"In this level we're going to prove that §0, where §1 is a secret natural " -"number.\n" -"\n" -"Wait, don't we already know that? No! We know that §2, but that's §3.\n" -"This is §4, which is different.\n" +"# Read this first\n" "\n" -"The difficulty with proving §5 is that we do not have a *formula* for\n" -"§6 in general, we can only use §7 and §8 once\n" -"we know whether §9 is §10 or a successor. The §11 tactic splits into these " -"two cases.\n" +"Each level in this game involves proving a mathematical theorem (the " +"\"Goal\").\n" +"The goal will be a statement about *numbers*. Some numbers in this game " +"have known values.\n" +"Those numbers have names like §0. Other numbers will be secret. They're " +"called things\n" +"like §1 and §2. We know §3 is a number, we just don't know which one.\n" "\n" -"The base case will require us to prove §12, and the inductive step\n" -"will ask us to show that if §13 then §14. Because\n" -"§15 and successor are the only way to make numbers, this will cover all the " -"cases.\n" +"In this first level we're going to prove the theorem that §4.\n" +"You can see §5 in the *Objects* below, which means that §6 and §7\n" +"are numbers.\n" "\n" -"See if you can do your first induction proof in Lean.\n" +"We solve goals in Lean using *Tactics*, and the first tactic we're\n" +"going to learn is called §8, which proves all theorems of the form §9.\n" "\n" -"(By the way, if you are still in the \"Editor mode\" from the last world, " -"you can swap\n" -"back to \"Typewriter mode\" by clicking the §16 button in the top right.)" +"Prove that §10 by executing the §11 tactic." msgstr "" -"このレベルでは、§1という秘密の自然数について、§0を証明します。\n" -"\n" -"待ってください。それでは、既に知っていることではないでしょうか?いいえ!§2は分かっていますが、それは§3です。\n" -"これは§4で、異なります。\n" -"\n" -"§5を証明する難しさは、一般的に§6に対する*公式*が存在しないことです。§7と§8は、§9が§10" -"であるか後続数であることを知った場合にのみ使用できます。§11のタクティクは、これらの2つの場合に分岐します。\n" -"\n" -"基本的な場合は§12を証明する必要がありますし、帰納的なステップでは、もし§13ならば§14が成り立つことを示す必要があります。なぜなら、§15" -"と後続数が数を作る唯一の方法だからです。これにより、すべてのケースをカバーできます。\n" +"# まずはこちらを読む\n" "\n" -"Leanで初めての帰納法証明に挑戦してみましょう。\n" +"このゲームの各レベルでは、数学的な定理(「目標」)を証明します。\n" +"目標は数に関する主張です。このゲームには既知の値を持つ数がいくつかあります。\n" +"その数には§0のような名前がついています。他の数は秘密です。§1や§2のような名前で呼ばれます。§3" +"は数であることは分かっていますが、具体的にはどの数かは分かりません。\n" "\n" -"(ちなみに、最後のワールドで「エディタモード」にいた場合は、右上にある§16ボタンをクリックして、「タイプライターモード」に戻ることができます。)" - -#: Game.Levels.LessOrEqual.L11le_two -#. §0: `∨` -#. §1: `x = 0 ∨ x = 1 ∨ x = 2` -#. §2: `x = 0 ∨ (x = 1 ∨ x = 2)` -#. §3: `left` -#. §4: `right` -msgid "" -"We'll need this lemma to prove that two is prime!\n" +"この最初のレベルでは、§4という定理を証明します。\n" +"下の*対象*に§5が表示されているので、§6と§7は数であることが分かります。\n" "\n" -"You'll need to know that §0 is right associative. This means that\n" -"§1 actually means §2.\n" -"This affects how §3 and §4 work." -msgstr "" -"この定理を利用して、2 が素数であることを証明できます!\n" +"Leanで目標を解決するには*タクティク*を使用します。最初に学ぶタクティクは§8で、これは§9のような形式の定理を証明します。\n" "\n" -"§0 が右結合であるという性質を理解しておく必要があります。\n" -"これは、§1 が実際に §2 と同じ意味であることを示します。\n" -"これにより、§3 および §4 の動作が影響を受けます。" - -# no-translate -#: Game.Levels.Power.L01zero_pow_zero -msgid "zero_pow_zero" -msgstr "zero_pow_zero" - -#: Game.Levels.Addition.L03add_comm -#. §0: `a` -#. §1: `b` -msgid "Induction on §0 or §1 -- it's all the same in this one." -msgstr "帰納法を適用して、§0または§1に対して -- どちらの場合でも結果は同じです。" - -#: Game.Levels.Power.L05pow_two -msgid "Note: this lemma will be useful for the final boss!" -msgstr "この定理は、最終ボスとの戦闘において役立ちます。" +"§10を証明するために§11 タクティクを実行してください。" -# no-translate -#: Game.Levels.Implication.L06intro -msgid "intro" -msgstr "intro" +#: Game.Levels.Tutorial.L01rfl +#. §0: $x$ +#. §1: $q$ +#. §2: $37x+q=37x+q.$ +msgid "If §0 and §1 are arbitrary natural numbers, then §2" +msgstr "任意の自然数§0と§1が与えられたとき、§2" -#: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero -#. §0: `apply eq_succ_of_ne_zero at ha` -msgid "Use the previous lemma with §0." -msgstr "前の定理を適用するために、§0を使用してください。" +#: Game.Levels.Tutorial.L01rfl +msgid "The rfl tactic" +msgstr "rfl タクティク" -#: Game.Levels.Multiplication.L09mul_assoc +#: Game.Levels.Tutorial.L01rfl +#. §0: `rfl` +#. §1: `X = X` +#. §2: `rfl` +#. §3: `A = B` +#. §4: `A` +#. §5: `B` +#. §6: `rfl` +#. §7: ``` +#. x + 37 = x + 37 +#. ``` +#. §8: `rfl` +#. §9: `0 + x = x` +#. §10: `rfl` +#. §11: $0+x$ +#. §12: $x$ +#. §13: `0 + x` +#. §14: `0 + x` +#. §15: `rfl` +#. §16: `rfl` +#. §17: `mathlib` +#. §18: `zero_add` +#. §19: `add_zero` msgid "" -"A passing mathematician notes that you've proved\n" -"that the natural numbers are a commutative semiring.\n" +"## Summary\n" "\n" -"If you want to begin your journey to the final boss, head for Power World." -msgstr "" -"通りすがりの数学者が、自然数が可換半環であることを証明したことを指摘しました。\n" +"§0 proves goals of the form §1.\n" "\n" -"最終ボスとの戦いを開始するには、冪乗ワールドへ進んでください。" - -#: Game.Levels.Power.L08pow_pow -#. §0: `pow_pow` -msgid "" -"One of the best named levels in the game, a savage §0\n" -"sub-boss appears as the music reaches a frenzy. What\n" -"else could there be to prove about powers after this?" -msgstr "" -"ゲーム内で最も適切に名前が付けられたレベルの一つとして知られる場面では、音楽が最高潮に達すると、凶暴なサブボスが出現します。これ以降、冪乗に関するどのよ" -"うなことが証明可能でしょうか?" - -#: Game.Levels.LessOrEqual.L05le_zero -#. §0: $x \\leq 0$ -#. §1: $x=0$ -msgid "If §0, then §1." -msgstr "もし §0 ならば、§1 。" - -#: Game.Levels.AdvMultiplication.L02mul_left_ne_zero -#. §0: `apply h` -msgid "Now §0 and you can probably take it from here." -msgstr "§0を実行し、ここから推論を進めることができます。" - -#: Game.Levels.Multiplication.L04mul_comm -#. §0: `mul_comm x y : x * y = y * x` -#. §1: `zero_mul` -#. §2: `mul_zero` -msgid "" -"The first sub-boss of Multiplication World is §0.\n" +"In other words, the §2 tactic will close any goal of the\n" +"form §3 if §4 and §5 are *identical*.\n" "\n" -"When you've proved this theorem we will have \"spare\" proofs\n" -"such as §1, which is now easily deducible from §2.\n" -"But we'll keep hold of these proofs anyway, because it's convenient\n" -"to have exactly the right tool for a job." +"§6 is short for \\\\\"reflexivity (of equality)\\\\\".\n" +"\n" +"## Example:\n" +"\n" +"If the goal looks like this:\n" +"\n" +"§7\n" +"\n" +"then §8 will close it. But if it looks like §9 then §10 won't work, because " +"even\n" +"though §11 and §12 are always equal as *numbers*, they are not equal as " +"*terms*.\n" +"The only term which is identical to §13 is §14.\n" +"\n" +"## Details\n" +"\n" +"§15 is short for \\\\\"reflexivity of equality\\\\\".\n" +"\n" +"## Game Implementation\n" +"\n" +"*Note that our §16 is weaker than the version used in core Lean and §17,\n" +"for pedagogical purposes; mathematicians do not distinguish between " +"propositional\n" +"and definitional equality because they think about definitions in a " +"different way\n" +"to type theorists (§18 and §19 are both \\\\\"facts\\\\\" as far\n" +"as mathematicians are concerned, and who cares what the definition of " +"addition is).*" msgstr "" -"乗算ワールドの最初のサブボスは§0です。\n" +"## 概要\n" "\n" -"この定理を証明すると、「余剰」な証明が得られます。\n" -"例えば、§2から容易に導かれる§1があります。\n" -"ただし、これらの証明は保持しておきます。\n" -"特定のタスクに適した道具を手元に置いておくためです。" +"§0 は、形式 §1 のような目標を証明します。\n" +"\n" +"つまり、§2 タクティクは、§4 と §5 が *完全に同一* である場合に、形式 §3 の任意の目標を解決します。\n" +"\n" +"§6 は、「等号の反射律」の略です。\n" +"\n" +"## 例\n" +"\n" +"もし目標が以下のようであれば:\n" +"\n" +"§7\n" +"\n" +"§8 でそれを解決できます。しかし、もし目標が §9 のように見えた場合、§10 は機能しません。なぜなら、§11 と §12 " +"は数値としては常に等しいですが、項としては等しくないからです。§13 と完全に一致する項は §14 だけです。\n" +"\n" +"## 詳細\n" +"\n" +"§15 は、「等号の反射律」の略です。\n" +"\n" +"## ゲームの実装\n" +"\n" +"注意点として、当の §16 は、コア Lean および §17 " +"で使用されているバージョンよりも弱く、教育目的のためにそう設計されています。数学的には、論理的等価と定義的等価を区別しない理由は、定義の考え方がタイプ理" +"論家と異なるからです(数学的には §18 と §19 はどちらも「事実」であり、加法の定義などは誰がどう思っても構いません)。" -#: Game.Levels.Addition.L05add_right_comm -#. §0: `add_right_comm a b c` -#. §1: `(a + b) + c = (a + c) + b` -#. §2: `a + b + c` -#. §3: `(a + b) + c` -#. §4: `a + b + c = a + c + b` +#: Game.Levels.Tutorial.L01rfl +#. §0: `rfl` +#. §1: `rfl` +#. §2: `rfl` +#. §3: `rw` msgid "" -"§0 is a proof that §1\n" +"Congratulations! You completed your first verified proof!\n" "\n" -"In Lean, §2 means §3, so this result gets displayed\n" -"as §4." +"Remember that §0 is a *tactic*. If you ever want information about the §1 " +"tactic,\n" +"you can click on §2 in the list of tactics on the right.\n" +"\n" +"Now click on \"Next\" to learn about the §3 tactic." msgstr "" -"§0 は §1 の証明を示す\n" +"おめでとうございます!あなたは初めての検証証明を完了しました!\n" "\n" -"Lean において、§2 は §3 を意味するため、この結果は §4 として表示されます。" +"覚えておいてください。 §0 は*タクティク*と呼ばれる操作です。もし §1 のタクティクに関する情報が必要な場合は、右側のタクティク一覧にある §2 " +"をクリックしてください。\n" +"\n" +"「次」をクリックして、 §3 のタクティクについて学びましょう。" -# no-translate -#: Game.Levels.Algorithm.L08decide -msgid "decide" -msgstr "decide" +#: Game.Levels.Tutorial.L02rw +msgid "the rw tactic" +msgstr "rw タクティク" -#: Game.Levels.Implication.L02exact2 -#. §0: `rw [zero_add] at «{h}»` -#. §1: `«{h}»` -msgid "" -"You can use §0 to rewrite at §1 instead\n" -"of at the goal." -msgstr "§0 を使用して、目標ではなく §1 を書き換えることができます。" +#: Game.Levels.Tutorial.L02rw +#. §0: `rfl` +msgid "Now §0 will work." +msgstr "現在、§0 は正常に動作します。" -#: Game.Levels.Tutorial.L05add_zero +#: Game.Levels.Tutorial.L02rw #. §0: `repeat t` #. §1: `t` #. §2: `repeat rw [add_zero]` #. §3: `a + 0 + (0 + (0 + 0)) = b + 0 + 0` #. §4: `a = b` +#. §5: `h : X = Y` +#. §6: `X` +#. §7: `nth_rewrite 3 [h]` +#. §8: `X` +#. §9: `Y` +#. §10: `2 + 2 = 4` +#. §11: `nth_rewrite 2 [two_eq_succ_one]` +#. §12: `2 + succ 1 = 4` +#. §13: `rw [two_eq_succ_one]` +#. §14: `succ 1 + succ 1 = 4` msgid "" "## Summary\n" "\n" @@ -481,664 +422,414 @@ msgid "" "§2 will turn the goal\n" "§3\n" "into the goal\n" -"§4." -msgstr "" -"## 概要\n" -"\n" -"§0 は、タクティク §1 " -"を繰り返し適用することで、目標を解決します。このタクティクの使用は必須ではありませんが、場合によっては処理速度の向上に役立ちます。\n" -"\n" -"## 例\n" +"§4.\n" +"\"\n" "\n" -"§2 を使用すると、目標 §3 が §4 になります。" - -#: Game.Levels.Addition -msgid "Addition World" -msgstr "加算ワールド" - -#: Game.Levels.Implication.L01exact -#. §0: `P` -#. §1: `exact h` -#. §2: `h` -#. §3: `P` -#. §4: `x = 37` -#. §5: `h : x = 37` -#. §6: `exact h` -#. §7: `x + 0 = x` -#. §8: `exact add_zero x` -#. §9: `exact add_zero` -#. §10: `exact h` -#. §11: `h` -#. §12: `add_zero` -#. §13: `∀ n, n + 0 = n` -#. §14: `? + 0 = ?` -#. §15: `?` -#. §16: `rw` -#. §17: `apply` -#. §18: `x + 0 = x` -#. §19: `rw [add_zero]` -#. §20: `rw [add_zero x]` -#. §21: `x = x` -#. §22: `rw` -#. §23: `add_zero` -msgid "" +"TacticDoc nth_rewrite \"\n" "## Summary\n" "\n" -"If the goal is a statement §0, then §1 will close the goal if §2 is a proof " -"of §3.\n" -"\n" -"### Example\n" -"\n" -"If the goal is §4 and you have a hypothesis §5\n" -"then §6 will solve the goal.\n" -"\n" -"### Example\n" -"\n" -"If the goal is §7 then §8 will close the goal.\n" +"If §5 and there are several §6s in the goal, then\n" +"§7 will just change the third §8 to a §9.\n" "\n" -"### Exact needs to be exactly right\n" +"## Example\n" "\n" -"Note that §9 will *not work* in the previous example;\n" -"for §10 to work, §11 has to be *exactly* a proof of the goal.\n" -"§12 is a proof of §13 or, if you like,\n" -"a proof of §14 where §15 needs to be supplied by the user.\n" -"This is in contrast to §16 and §17, which will \\\\\"guess the inputs\\\\\"\n" -"if necessary. If the goal is §18 then §19\n" -"and §20 will both change the goal to §21,\n" -"because §22 guesses the input to the function §23." +"If the goal is §10 then §11\n" +"will change the goal to §12. In contrast, §13\n" +"will change the goal to §14." msgstr "" "## 概要\n" "\n" -"目標が §0 である場合に、§2 が §3 の証明ならば、目標は §1 で解決されます。\n" +"§0 は、目標に対して §1 のタクティクを繰り返し適用します。このタクティクは必須ではありませんが、場合によっては処理を高速化できます。\n" "\n" -"### 例\n" +"## 例\n" "\n" -"目標が §4 である場合、仮定 §5 があるならば、§6 は目標を解決します。\n" +"§2 は目標\n" +"§3\n" +"を §4 に書き換えます。\n" "\n" -"### 例\n" +"---\n" "\n" -"目標が §7 である場合、§8 は目標を解決します。\n" +"## 概要\n" "\n" -"### 正確な記述が必要\n" +"§5 が成り立つ場合に、目標に複数の §6 が含まれる場合、§7 は第三の §8 を §9 に変更します。\n" "\n" -"注意点として、前の例では §9 は *機能しません*;\n" -"§10 が機能するためには、§11 は目標の *正確な* 証明である必要があります。\n" -"§12 は目標の §13 の証明であるか、あるいは §14 の証明で、§15 はユーザーによって提供される必要があります。\n" -"これは §16 と §17 とは異なり、必要に応じてこれらの関数は *入力の推測* を行います。もし目標が §18 である場合、§19 と §20 " -"は両方とも目標を §21 に変更します。\n" -"これは §22 が関数 §23 の入力を推測するからです。" - -#: Game.Levels.Implication.L07intro2 -#. §0: `apply succ_inj at h` -#. §1: `succ` -msgid "Now §0 to cancel the §1s." -msgstr "`§0` を使用して `§1` を消去します。" - -#: Game.Levels.Addition -#. §0: `induction` -#. §1: `x + y = y + x` -#. §2: `rw` -#. §3: `rfl` -#. §4: `induction` -msgid "" -"Welcome to Addition World! In this world we'll learn the §0 tactic.\n" -"This will enable us to defeat the boss level of this world, namely §1.\n" +"## 例\n" "\n" -"The tactics §2, §3 and §4 are the only tactics you'll need to\n" -"beat all the levels in Addition World, Multiplication World, and Power " -"World.\n" -"Power World contains the final boss of the game.\n" -"\n" -"There are plenty more tactics in this game, but you'll only need to know " -"them if you\n" -"want to explore the game further (for example if you decide to 100%\n" -"the game)." -msgstr "" -"加算ワールドへようこそ!このワールドでは§0 タクティクを学びます。\n" -"これにより、このワールドのボスレベルを攻略することができます、すなわち§1です。\n" -"\n" -"§2, §3, §4 のタクティクのみが必要で、これらを用いて\n" -"加算ワールド、乗算ワールド、冪乗ワールドのすべてのレベルを攻略することができます。\n" -"冪乗ワールドにはゲームの最終ボスが含まれています。\n" -"\n" -"このゲームにはもっと多くのタクティクがありますが、それらを知る必要はなく、\n" -"ゲームをさらに探索したい場合(例えば、ゲームを100%攻略したい場合)にのみ必要となります。" - -#: Game.Levels.Algorithm.L02add_algo1 -#. §0: `(a + a + 1) + (b + b + 1) = (a + b + 1) + (a + b + 1)` -#. §1: `(a + b) + (c + d) = ((a + c) + d) + b` -#. §2: `a+b+c+d` -#. §3: `a+c+d+b` -#. §4: `b` -#. §5: `c` -#. §6: `b` -#. §7: `d` -#. §8: `add_left_comm` -msgid "" -"In some later worlds, we're going to see some much nastier levels,\n" -"like §0.\n" -"Brackets need to be moved around, and variables need to be swapped.\n" -"\n" -"In this level, §1,\n" -"let's forget about the brackets and just think about\n" -"the variable order.\n" -"To turn §2 into §3 we need to swap §4 and §5,\n" -"and then swap §6 and §7. But this is easier than you\n" -"think with §8." -msgstr "" -"いくつかの後続のワールドでは、より複雑なレベルを見ることになります(例:§0)。\n" -"括弧の位置を調整し、変数の順序を変更する必要があります。\n" -"\n" -"このレベル(§1)では、括弧は無視して変数の順序のみを考慮しましょう。\n" -"§2から§3への変更には、§4と§5の順序を入れ替え、さらに§6と§7の順序を入れ替える必要があります。しかし、§8" -"を用いることで、意外と簡単に実現できます。" - -# no-translate -#: Game.Levels.Algorithm.L01add_left_comm -msgid "add_left_comm" -msgstr "add_left_comm" +"目標が §10 の場合、§11 は目標を §12 に変更します。一方、§13 は目標を §14 に変更します。" -#: Game.Levels.Implication.L10one_ne_zero -#. §0: `symm` +#: Game.Levels.Tutorial.L02rw +#. §0: `h` #. §1: `X = Y` -#. §2: `Y = X` -#. §3: `X ≠ Y` -#. §4: `X ↔ Y` -#. §5: `2 + 2 = 4` -#. §6: `symm` -#. §7: `4 = 2 + 2` -#. §8: `h : 2 + 2 ≠ 5` -#. §9: `symm at h` -#. §10: `h` -#. §11: `5 ≠ 2 + 2` +#. §2: `rw [h]` +#. §3: `X` +#. §4: `Y` +#. §5: `rw [← h]` +#. §6: `Y` +#. §7: `X` +#. §8: `\\left ` +#. §9: `\\l` +#. §10: `rw [h1, h2]` +#. §11: `rw [h] at h2` +#. §12: `X` +#. §13: `Y` +#. §14: `h2` +#. §15: `rw [h] at h1 h2 ⊢` +#. §16: `X` +#. §17: `Y` +#. §18: `⊢` +#. §19: `\\|-` +#. §20: `repeat rw [add_zero]` +#. §21: `? + 0` +#. §22: `?` +#. §23: `? + 0` +#. §24: `nth_rewrite 2 [h]` +#. §25: `X` +#. §26: `Y` +#. §27: `h : x = y + y` +#. §28: ``` +#. succ (x + 0) = succ (y + y) +#. ``` +#. §29: `rw [add_zero]` +#. §30: `succ x = succ (y + y)` +#. §31: `rw [h]` +#. §32: `succ (y + y) = succ (y + y)` +#. §33: `rfl` +#. §34: `rw` +#. §35: ``` +#. h1 : x = y + 3 +#. h2 : 2 * y = x +#. ``` +#. §36: `rw [h1] at h2` +#. §37: `h2` +#. §38: `h2 : 2 * y = y + 3` +#. §39: `rw h` +#. §40: `h` +#. §41: `A = B` +#. §42: `h` +#. §43: `rw` +#. §44: `rw [P = Q]` +#. §45: `P = Q` +#. §46: `h : P = Q` +#. §47: `rw [h]` +#. §48: `rw` +#. §49: `h : A = B` +#. §50: `A` +#. §51: `rw [h]` +#. §52: `B` +#. §53: `A` +#. §54: `add_zero` +#. §55: `? + 0 = ?` +#. §56: `add_zero` +#. §57: `?` +#. §58: `rw` +#. §59: `x + 0` +#. §60: `?` +#. §61: `x` +#. §62: `x + 0` +#. §63: `x` +#. §64: `rw [add_zero]` +#. §65: `(0 + 0) + (x + 0) + (0 + 0) + (x + 0)` +#. §66: `0 + (x + 0) + 0 + (x + 0)` +#. §67: `b + c + a = b + (a + c)` +#. §68: `a + c` +#. §69: `c + a` +#. §70: `rw [add_comm]` +#. §71: `rw [add_comm a c]` +#. §72: `a + c` +#. §73: `c + a` +#. §74: `add_comm` +#. §75: `?1 + ?2 = ?2 + ?1` +#. §76: `add_comm a` +#. §77: `a + ? = ? + a` +#. §78: `add_comm a c` +#. §79: `a + c = c + a` +#. §80: `h : X = Y` +#. §81: `rw [h]` +#. §82: `X` +#. §83: `Y` +#. §84: `X` +#. §85: `Y` +#. §86: `nth_rewrite 37 [h]` msgid "" "## Summary\n" "\n" -"The §0 tactic will change a goal or hypothesis of\n" -"the form §1 to §2. It will also work on §3\n" -"and on §4.\n" +"If §0 is a proof of an equality §1, then §2 will change\n" +"all §3s in the goal to §4s. It's the way to \\\\\"substitute in\\\\\".\n" "\n" -"### Example\n" +"## Variants\n" "\n" -"If the goal is §5 then §6 will change it to §7.\n" +"* §5 (changes §6s to §7s; get the back arrow by typing §8 or §9.)\n" "\n" -"### Example\n" +"* §10 (a sequence of rewrites)\n" "\n" -"If §8 then §9 will change §10 to §11." -msgstr "" -"## 概要\n" +"* §11 (changes §12s to §13s in hypothesis §14)\n" "\n" -"タクティク §0 は、目標または仮定が §1 の形式の場合を §2 に変更します。また、§3 および §4 も対象となります。\n" +"* §15 (changes §16s to §17s in two hypotheses and the goal;\n" +"get the §18 symbol with §19.)\n" "\n" -"### 例\n" +"* §20 will keep changing §21 to §22\n" +"until there are no more matches for §23.\n" "\n" -"もし目標が §5 の場合、§6 によってそれを §7 に変更します。\n" +"* §24 will change only the second §25 in the goal to §26.\n" "\n" -"### 例\n" +"### Example:\n" "\n" -"もし §8 の場合、§9 によって §10 を §11 に変更します。" - -#: Game.Levels.Multiplication.L07mul_add -#. §0: $a$ -#. §1: $b$ -#. §2: $c$ -#. §3: $a(b + c) = ab + ac$ -msgid "" -"Multiplication is distributive over addition on the left.\n" -"In other words, for all natural numbers §0, §1 and §2, we have\n" -"§3." -msgstr "" -"乗算は、左から加算に関して分配法則に従います。\n" -"すなわち、任意の自然数 §0, §1, §2 について、以下の関係が成立します。\n" -"§3." - -#: Game.Levels.Implication.L03apply -#. §0: `apply` -msgid "The §0 tactic." -msgstr "§0 タクティク" - -#, fuzzy -#: Game.Levels.Implication.L01exact -#. §0: `exact h1` -msgid "" -"The goal in this level is one of our hypotheses. Solve the goal by " -"executing §0." -msgstr "このレベルの目標は、当方の仮説の一つです。目標を達成するためには、§0を実行してください。" - -#: Game.Levels.AdvAddition.L05add_right_eq_zero -#. §0: `≤` -#. §1: `a + b = 0` -#. §2: `a = 0` -#. §3: `b = 0` -#. §4: `cases` -#. §5: `cases` -#. §6: `b = 0` -#. §7: `b = succ d` -#. §8: `hd` -#. §9: `induction b with d hd` -#. §10: `cases b with d` -#. §11: `b = 0` -#. §12: `b = succ d` -#. §13: `h : False` -#. §14: `cases h` -#. §15: `False` -msgid "" -"The next result we'll need in §0 World is that if §1 then §2 and §3.\n" -"Let's prove one of these facts in this level, and the other in the next.\n" +"If you have the assumption §27 and your goal is\n" +"§28\n" "\n" -"## A new tactic: §4\n" +"then\n" "\n" -"The §5 tactic will split an object or hypothesis up into the possible ways\n" -"that it could have been created.\n" +"§29\n" "\n" -"For example, sometimes you want to deal with the two cases §6 and §7 " -"separately,\n" -"but don't need the inductive hypothesis §8 that comes with §9.\n" -"In this situation you can use §10 instead. There are two ways to make\n" -"a number: it's either zero or a successor. So you will end up with two " -"goals, one\n" -"with §11 and one with §12.\n" +"will change the goal into §30, and then\n" "\n" -"Another example: if you have a hypothesis §13 then you are done, because a " -"false statement implies\n" -"any statement. Here §14 will close the goal, because there are *no* ways to\n" -"make a proof of §15! So you will end up with no goals, meaning you have " -"proved everything." -msgstr "" -"次に §0 ワールドで必要となる結果は、「もし §1 ならば §2 と §3 である」というものです。\n" -"このレベルで一つの事実を証明し、次のレベルでもう一つの事実を証明しましょう。\n" +"§31\n" "\n" -"## 新しいタクティク: §4\n" +"will change the goal into §32, which\n" +"can be solved with §33.\n" "\n" -"§5 タクティクは、目的や仮定を生成された可能性のある方法に分割します。\n" +"### Example:\n" "\n" -"例えば、時々 §6 と §7 の二つのケースを個別に扱いたい場合がありますが、§9 が伴う §8 の帰納的仮定は必要ありません。\n" -"この状況では、§10 を使用することができます。数を作る方法は二つあります:ゼロか後続です。したがって、二つの目標が残ります。一つには §11 " -"があり、もう一つには §12 があります。\n" +"You can use §34 to change a hypothesis as well.\n" +"For example, if you have two hypotheses\n" +"§35\n" +"then §36 will turn §37 into §38.\n" "\n" -"別の例:仮定 §13 がある場合、証明は完了します。偽の命題は任意の命題を導くからです。ここでは §14 が目標を閉じます。なぜなら §15 " -"の証明を作る方法は *ありません*!したがって、目標が残らないため、すべてを証明したということになります。" - -#: Game.Levels.Tutorial.L01rfl -#. §0: `rfl` -msgid "" -"In order to use the tactic §0 you can enter it in the text box\n" -"under the goal and hit \"Execute\"." -msgstr "タクティク §0 を使用するには、目標の下にあるテキストボックスに記述し、「実行」ボタンをクリックしてください。" - -#: Game.Levels.LessOrEqual.L07or_symm -#. §0: $x=37$ -#. §1: $y=42$ -#. §2: $y=42$ -#. §3: $x=37$ -msgid "If §0 or §1, then §2 or §3." -msgstr "もし §0 または §1 なら、§2 または §3 。" - -#: Game.Levels.Algorithm.L09decide2 -msgid "" -"Congratulations! You've finished Algorithm World. These algorithms\n" -"will be helpful for you in Even-Odd World (when someone gets around to\n" -"implementing it)." -msgstr "" -"おめでとうございます!あなたはアルゴリズムワールドを完了しました。\n" -"これらのアルゴリズムは、Even-Oddワールド(誰かが実装してくれたら)\n" -"でも、あなたにとって役立ちます。" - -#: Game.Levels.Tutorial.L08twoaddtwo -#. §0: `h : X = Y` -#. §1: `rw [h]` -#. §2: `X` -#. §3: `Y` -#. §4: `nth_rewrite 3 [h]` -msgid "" -"Good luck!\n" +"## Common errors\n" "\n" -" One last hint. If §0 then §1 will change *all* §2s into §3s.\n" -" If you only want to change one of them, say the 3rd one, then use\n" -" §4." -msgstr "" -"幸運をお祈りいたします!\n" +"* You need the square brackets. §39 is never correct.\n" "\n" -"最後のヒントです。もし §0 が真ならば、§1 はすべての §2 を §3 に変換します。\n" -"特定の §2 のみを変更したい場合は、§4 を使用してください(例:3番目のもの)。" - -#: Game.Levels.Addition.L04add_assoc -#. §0: `add_assoc` -#. §1: `add_comm` -msgid "" -"A passing mathematician congratulates you on proving that naturals\n" -"are an additive commutative monoid.\n" +"* If §40 is not a *proof* of an *equality* (a statement of the form §41),\n" +"for example if §42 is a function or an implication,\n" +"then §43 is not the tactic you want to use. For example,\n" +"§44 is never correct: §45 is the theorem *statement*,\n" +"not the proof. If §46 is the proof, then §47 will work.\n" "\n" -"Let's practice using §0 and §1 in one more level,\n" -"before we leave addition world." -msgstr "" -"「自然数の加法的交換半群であることの証明」に際し、通りすがりの数学者がお祝いの言葉を述べます。\n" +"## Details\n" "\n" -"加算に関する概念を理解するため、§0 と §1 の使い方をもう一度練習しましょう。" - -#: Game.Levels.Implication.L05succ_inj2 -msgid "Arguing backwards" -msgstr "推論を逆方向に進める" - -# no-translate -#: Game.Levels.AdvMultiplication.L06mul_right_eq_one -msgid "mul_right_eq_one" -msgstr "mul_right_eq_one" - -#: Game.Levels.Power.L09add_sq -#. §0: `add_sq a b` -#. §1: $(a+b)^2=a^2+b^2+2ab.$ -msgid "§0 is the statement that §1" -msgstr "§0 は §1 を表す命題です。" - -#: Game.Levels.Implication.L08ne -#. §0: $x=y$ -#. §1: $x \\neq y$ -msgid "If §0 and §1 then we can deduce a contradiction." -msgstr "もし §0 が真であり、かつ §1 も真であるならば、矛盾を導き出すことができます。" - -#: Game.Levels.Tutorial.L05add_zero -#. §0: `2 + 2 = 4` -#. §1: $37$ -#. §2: $x$ -#. §3: $0$ -#. §4: `37 + x` -#. §5: `37 + 0` -#. §6: `37 + succ x` -#. §7: `0` -#. §8: `37 + 0` -#. §9: `37` -#. §10: `a + 0` -#. §11: `a` -#. §12: `a` -#. §13: `add_zero a` -#. §14: `add_zero 37` -#. §15: `37 + 0 = 37` -#. §16: `add_zero x` -#. §17: `x + 0 = x` -#. §18: `add_zero` -#. §19: `? + 0 = ?` -#. §20: `add_zero x : x + 0 = x` -#. §21: `proof : statement` -msgid "" -"We'd like to prove §0 but right now\n" -"we can't even *state* it\n" -"because we haven't yet defined addition.\n" +"The §48 tactic is a way to do \\\\\"substituting in\\\\\". There\n" +"are two distinct situations where you can use this tactic.\n" "\n" -"## Defining addition.\n" +"1) Basic usage: if §49 is an assumption or\n" +"the proof of a theorem, and if the goal contains one or more §50s, then §51\n" +"will change them all to §52s. The tactic will error\n" +"if there are no §53s in the goal.\n" "\n" -"How are we going to add §1 to an arbitrary number §2? Well,\n" -"there are only two ways to make numbers in this game: §3\n" -"and successors. So to define §4 we will need\n" -"to know what §5 is and what §6 is.\n" -"Let's start with adding §7.\n" +"2) Advanced usage: Assumptions coming from theorem proofs\n" +"often have missing pieces. For example §54\n" +"is a proof that §55 because §56 really is a function,\n" +"and §57 is the input. In this situation §58 will look through the goal\n" +"for any subterm of the form §59, and the moment it\n" +"finds one it fixes §60 to be §61 then changes all §62s to §63s.\n" "\n" -"### Adding 0\n" +"Exercise: think about why §64 changes the term\n" +"§65 to\n" +"§66\n" "\n" -"To make addition agree with our intuition, we should *define* §8\n" -"to be §9. More generally, we should define §10 to be §11 for\n" -"any number §12. The name of this proof in Lean is §13.\n" -"For example §14 is a proof of §15,\n" -"§16 is a proof of §17, and §18 is a proof\n" -"of §19.\n" +"If you can't remember the name of the proof of an equality, look it up in\n" +"the list of lemmas on the right.\n" "\n" -"We write §20, so §21." -msgstr "" -"私たちは§0を証明したいですが、現在では\n" -"その定理を*記述すること*すらできません。\n" -"なぜなら、加法をまだ定義していないからです。\n" +"## Targeted usage\n" "\n" -"## 加法の定義\n" +"If your goal is §67 and you want to rewrite §68\n" +"to §69, then §70 will not work because Lean finds another\n" +"addition first and swaps those inputs instead. Use §71 to\n" +"guarantee that Lean rewrites §72 to §73. This works because\n" +"§74 is a proof that §75, §76 is a proof\n" +"that §77, and §78 is a proof that §79.\n" "\n" -"任意の数§2に§1を加える方法はどのようなものでしょうか?\n" -"このゲームでは数を生成する方法は2つしかありません:§3\n" -"と後続数。したがって、§4を定義するには\n" -"§5と§6がどのようなものかを知る必要があります。\n" -"まずは§7を加えることにしましょう。\n" +"If §80 then §81 will turn all §82s into §83s.\n" +"If you only want to change the 37th occurrence of §84\n" +"to §85 then do §86." +msgstr "" +"## 概要\n" "\n" -"### 0を加える\n" +"もし §0 が等式 §1 の証明であるならば、§2 は目標内のすべての §3 を §4 に変更します。これは「代入」を行う方法です。\n" "\n" -"加法が直感に合致するようにするためには、§8を\n" -"§9とするべきです。より一般的には、任意の数§12に対して\n" -"§10を§11とするべきです。Leanでのこの証明の名前は§13です。\n" -"例えば、§14は§15の証明、§16は§17の証明、§18は§19の証明です。\n" +"## バリエーション\n" "\n" -"私たちは§20と書きます、つまり§21です。" - -#: Game.Levels.AdvMultiplication.L01mul_le_mul_right -#. §0: `t = 0` -msgid "Let's warm up with an easy one, which works even if §0." -msgstr "まずは、簡単に問題を解いてみましょう。この問題は、§0 の場合に有効です。" - -#: Game.Levels.Implication.L07intro2 -#. §0: $x+1=y+1\\implies x=y$ -msgid "" -"Let's see if you can use the tactics we've learnt to prove §0.\n" -"Try this one by yourself; if you need help then click on \"Show more " -"help!\"." -msgstr "" -"これまで学んだタクティクを使って、§0の証明が可能か試してみましょう。\n" -"ご自身で試すことをお勧めします。もしお手伝いが必要な場合は、「より多くのヘルプを表示!」をクリックしてください。" - -#: Game.Levels.Implication.L09zero_ne_succ -#: Game.Levels.AdvMultiplication.L06mul_right_eq_one -#. §0: `apply zero_ne_succ at h` -msgid "Now you can §0." -msgstr "§0 を使用できます。" - -#: Game.Levels.Implication.L03apply -#. §0: `h2` -#. §1: `x = 37` -#. §2: `y = 42` -#. §3: `apply` -#. §4: `apply` -msgid "" -"In this level, the hypothesis §0 is an *implication*. It says\n" -"that *if* §1 *then* §2. We can use this\n" -"hypothesis with the §3 tactic. Remember you can click on\n" -"§4 or any other tactic on the right to see a detailed explanation\n" -"of what it does, with examples." -msgstr "" -"このレベルでは、仮定 §0 は *含意* です。「もし §1 ならば " -"§2」という形で表現されます。この仮定は、§3というタクティクを用いて利用できます。右側の任意のタクティク(例:§4" -")をクリックすると、その詳細な説明と例を確認できます。" - -#: Game.Levels.Tutorial.L01rfl -#. §0: $37$ -#. §1: $x$ -#. §2: $q$ -#. §3: $x$ -#. §4: $37x + q = 37x + q$ -#. §5: `x q : ℕ` -#. §6: `x` -#. §7: `q` -#. §8: `rfl` -#. §9: $X = X$ -#. §10: $37x+q=37x+q$ -#. §11: `rfl` -msgid "" -"# Read this first\n" +"* §5 (目標内の §6 を §7 に変更;バックアローは §8 または §9 を入力することで取得します。)\n" "\n" -"Each level in this game involves proving a mathematical theorem (the " -"\"Goal\").\n" -"The goal will be a statement about *numbers*. Some numbers in this game " -"have known values.\n" -"Those numbers have names like §0. Other numbers will be secret. They're " -"called things\n" -"like §1 and §2. We know §3 is a number, we just don't know which one.\n" +"* §10 (一連の変換)\n" "\n" -"In this first level we're going to prove the theorem that §4.\n" -"You can see §5 in the *Objects* below, which means that §6 and §7\n" -"are numbers.\n" +"* §11 (仮定 §14 内を §12 から §13 に変更)\n" "\n" -"We solve goals in Lean using *Tactics*, and the first tactic we're\n" -"going to learn is called §8, which proves all theorems of the form §9.\n" +"* §15 (目標と 2 つの仮定内を §16 から §17 に変更;§18 のシンボルは §19 で取得します。)\n" "\n" -"Prove that §10 by executing the §11 tactic." -msgstr "" -"# まずはこちらを読む\n" +"* §20 は §21 を §22 に変更し続けるまで、§23 との一致がなくなるまで変更します。\n" "\n" -"このゲームの各レベルでは、数学的な定理(「目標」)を証明します。\n" -"目標は数に関する主張です。このゲームには既知の値を持つ数がいくつかあります。\n" -"その数には§0のような名前がついています。他の数は秘密です。§1や§2のような名前で呼ばれます。§3" -"は数であることは分かっていますが、具体的にはどの数かは分かりません。\n" +"* §24 は目標内の第 2 の §25 のみ §26 に変更します。\n" "\n" -"この最初のレベルでは、§4という定理を証明します。\n" -"下の*対象*に§5が表示されているので、§6と§7は数であることが分かります。\n" +"### 例:\n" "\n" -"Leanで目標を解決するには*タクティク*を使用します。最初に学ぶタクティクは§8で、これは§9のような形式の定理を証明します。\n" +"仮定 §27 があり、目標が §28 の場合、\n" "\n" -"§10を証明するために§11 タクティクを実行してください。" - -#: Game.Levels.Implication.L02exact2 -#. §0: ``` -#. repeat rw [zero_add] at h -#. exact h -#. ``` -msgid "" -"Here's a two-line proof:\n" -"§0" -msgstr "" -"以下は2行の証明です:\n" -"§0" - -#: Game.Levels.Addition.L01zero_add -#. §0: `zero_add x` -#. §1: `0 + x = x` -#. §2: `zero_add` -#. §3: `simp` -#. §4: `0 + x` -#. §5: `x` -msgid "" -"§0 is the proof of §1.\n" +"§29\n" "\n" -"§2 is a §3 lemma, because replacing §4 by §5\n" -"is almost always what you want to do if you're simplifying an expression." -msgstr "" -"§0 は §1 の証明です。\n" +"は目標を §30 に変更し、\n" "\n" -"§2 は §3 の補題であり、§4 を §5 に置換することは、通常、式を簡略化する場合に望ましい操作です。" +"§31\n" +"\n" +"は目標を §32 に変更し、\n" +"\n" +"§33 で解決できます。\n" +"\n" +"### 例:\n" +"\n" +"仮定を変更することもできます。例えば、仮定が 2 つある場合、\n" +"\n" +"§35\n" +"\n" +"§36 は §37 を §38 に変換します。\n" +"\n" +"## 一般的なエラー\n" +"\n" +"* クオート記号が必要です。§39 は決して正しくありません。\n" +"\n" +"* §40 が等式 (形式 §41 のステートメント) の証明でない場合、例えば §42 が関数または推論である場合、\n" +"\n" +"§43 は使用したいタクティクではありません。例えば、\n" +"\n" +"§44 は常に正しくありません:§45 は定理のステートメントであり、\n" +"\n" +"証明ではありません。§46 が証明である場合、§47 は機能します。\n" +"\n" +"## 詳細\n" +"\n" +"§48 タクティクは「代入」を行う方法です。このタクティクを使用できる 2 つの異なる状況があります。\n" +"\n" +"1) 基本的な使用法:§49 が仮定または定理の証明であり、目標内に 1 つ以上の §50 が含まれている場合、\n" +"\n" +"§51 はそれら全てを §52 に変更します。タクティクは目標内に §53 が存在しない場合にエラーを発生させます。\n" +"\n" +"2) 高度な使用法:定理の証明から得られる仮定はしばしば欠落している部分を持っています。例えば、\n" +"\n" +"§54 は §55 を証明しており、\n" +"\n" +"§56 は実際には関数であり、\n" +"\n" +"§57 は入力です。この状況では、\n" +"\n" +"§58 は目標内を検索し、\n" +"\n" +"§59 のサブタームを見つけた瞬間に、\n" +"\n" +"§60 を §61 に固定し、\n" +"\n" +"すべての §62 を §63 に変更します。\n" +"\n" +"演習:なぜ §64 は項 §65 を §66 に変更するのか考えてみてください。\n" +"\n" +"等式の証明の名前を忘れた場合は、\n" +"\n" +"右側の補題一覧で調べてください。\n" +"\n" +"## 対象的な使用法\n" +"\n" +"目標が §67 であり、\n" +"\n" +"§68 を §69 に書き換えることを望む場合、\n" +"\n" +"§70 は Lean が別の加算を見つけ、\n" +"\n" +"その入力を交換するためには機能しません。 §71 を使用して、\n" +"\n" +"Lean が §72 を §73 に書き換えることを保証します。これは、\n" +"\n" +"§74 は §75 を証明しており、\n" +"\n" +"§76 は §77 を証明しており、\n" +"\n" +"§78 は §79 を証明しているためです。\n" +"\n" +"§80 が成立する場合、\n" +"\n" +"§81 はすべての §82 を §83 に変換します。\n" +"\n" +"§84 の 37 番目の出現のみを §85 に変更したい場合は、\n" +"\n" +"§86 を実行します。" -#: Game.Levels.Implication.L04succ_inj -#. §0: `a` -#. §1: `b` -#. §2: `succ_inj a b` -#. §3: `succ a = succ b` -#. §4: `a = b` -#. §5: $x+1=4 \\implies x=3$ +#: Game.Levels.Tutorial.L02rw +#. §0: $2y=2(x+7)$ +#. §1: `h` +#. §2: $y = x + 7$ +#. §3: `h` +#. §4: `h` +#. §5: `x` +#. §6: `rfl` +#. §7: $y$ +#. §8: `h` +#. §9: `rw` msgid "" -"If §0 and §1 are numbers, then §2 is a proof\n" -"that §3 implies §4. Click on this theorem in the *Peano*\n" -"tab for more information.\n" +"In this level the *goal* is §0 but to help us we\n" +"have an *assumption* §1 saying that §2. Check that you can see §3 in\n" +"your list of assumptions. Lean thinks of §4 as being a secret proof of the\n" +"assumption, rather like §5 is a secret number.\n" "\n" -"Peano had this theorem as an axiom, but in Algorithm World\n" -"we will show how to prove it in Lean. Right now let's just assume it,\n" -"and let's prove §5 using it. Again, we will proceed\n" -"by manipulating our hypothesis until it becomes the goal. I will\n" -"walk you through this level." +"Before we can use §6, we have to \"substitute in for §7\".\n" +"We do this in Lean by *rewriting* the goal with §8,\n" +"using the §9 tactic." msgstr "" -"もし §0 と §1 が数値である場合、§2 は §3 が §4 を導くことの証明です。*Peano* " -"タブでこの定理について詳しく知ることができます。\n" +"このレベルにおける目標は§0ですが、それを達成するために、§1という仮定があります。その内容は§2です。仮定リストに§3" +"が表示されていることを確認してください。Leanは§4を、仮定の秘密の証明と見なします。これは、§5が秘密の数値に似ています。\n" "\n" -"Peanoはこの定理を公理としていましたが、アルゴリズムワールドでは Lean " -"を用いてこの定理を証明する方法を示します。現在ではこの定理を仮定し、§5 " -"を用いて証明しましょう。また、証明は仮定を操作することで目標に近づけることで進めていきます。このレベルについて一緒に学びましょう。" +"§6を使用する前に、「§7に置き換える」必要があります。Leanでは、§8を使用して目標を書き換え、§9タクティクを使用してこれを実行します。" -#: Game.Levels.Implication.L09zero_ne_succ -#. §0: `2 + 2 ≠ 5` -#. §1: `0 ≠ 1` -#. §2: `zero_ne_succ n` -#. §3: `0 ≠ succ n` -msgid "" -"As warm-up for §0 let's prove §1. To do this we need to\n" -"introduce Peano's last axiom §2, a proof that §3.\n" -"To learn about this result, click on it in the list of lemmas on the right." -msgstr "" -"ウォーミングアップとして、§0 の前に §1 を証明します。これを行うためには、ペアノの最後の公理 §2 と §3 " -"の証明が必要です。この結果について学ぶには、右側の定理一覧から該当する項目をクリックしてください。" +#: Game.Levels.Tutorial.L02rw +msgid "Can you take it from here? Click on \"Show more help!\" if you need a hint." +msgstr "引き続きご自身で解決いただけますでしょうか? ヒントが必要な場合は、「より多くのヘルプを表示!」をクリックしてください。" -#: Game.Levels.Implication.L01exact -#. §0: $x+y=37$ -#. §1: $3x+z=42$ -#. §2: $x+y=37$ -msgid "Assuming §0 and §1, we have §2." -msgstr "前提として§0および§1を仮定します。その結果、§2が導き出されます。" +#: Game.Levels.Tutorial.L02rw +#. §0: $x$ +#. §1: $y$ +#. §2: $y = x + 7$ +#. §3: $2y = 2(x + 7)$ +msgid "If §0 and §1 are natural numbers, and §2, then §3." +msgstr "自然数§0と§1が存在し、かつ§2が真ならば、§3は真である。" -#: Game.Levels.Addition.L03add_comm -#. §0: `a` -#. §1: `b` -#. §2: $a + b = b + a$ -msgid "" -"On the set of natural numbers, addition is commutative.\n" -"In other words, if §0 and §1 are arbitrary natural numbers, then\n" -"§2." -msgstr "" -"自然数全体の集合においては、加算は交換法則を満たす。\n" -"すなわち、任意の自然数 §0 と §1 が与えられたとき、\n" -"§2." +#: Game.Levels.Tutorial.L02rw +#. §0: `rw [h]` +#. §1: `y` +#. §2: `x + 7` +msgid "First execute §0 to replace the §1 with §2." +msgstr "まず、 §0 を実行して §1 を §2 に置き換えてください。" -#: Game.Levels.AdvMultiplication.L09mul_left_cancel -#. §0: `a * b = a * c` -#. §1: `a ≠ 0` -#. §2: `b = c` -#. §3: `induction b with d hd` -#. §4: `a * d = a * c → d = c` -#. §5: `a * succ d = a * c` -#. §6: `a ≠ 0` -#. §7: `b` -#. §8: `c` -#. §9: `a * b = a * c` -#. §10: `b = c` -#. §11: `c` +#: Game.Levels.Tutorial.L02rw +#. §0: `h : X = Y` +#. §1: `X` +#. §2: `nth_rewrite 3 [h]` +#. §3: `X` +#. §4: `Y` +#. §5: `2 + 2 = 4` +#. §6: `nth_rewrite 2 [two_eq_succ_one]` +#. §7: `2 + succ 1 = 4` +#. §8: `rw [two_eq_succ_one]` +#. §9: `succ 1 + succ 1 = 4` msgid "" -"In this level we prove that if §0 and §1 then §2. It is tricky, for\n" -"several reasons. One of these is that\n" -"we need to introduce a new idea: we will need to understand the concept of\n" -"mathematical induction a little better.\n" +"## Summary\n" "\n" -"Starting with §3 is too naive, because in the inductive step\n" -"the hypothesis is §4 but what we know is §5,\n" -"so the induction hypothesis does not apply!\n" +"If §0 and there are several §1s in the goal, then\n" +"§2 will just change the third §3 to a §4.\n" "\n" -"Assume §6 is fixed. The actual statement we want to prove by induction on " -"§7 is\n" -"\"for all §8, if §9 then §10\". This *can* be proved by induction,\n" -"because we now have the flexibility to change §11." +"## Example\n" +"\n" +"If the goal is §5 then §6\n" +"will change the goal to §7. In contrast, §8\n" +"will change the goal to §9." msgstr "" -"このレベルでは、§0 と §1 が成り立つ場合に、§2 が成り立つことを証明します。\n" -"これはいくつかの理由から複雑です。\n" -"そのうちの一つは、新しいアイデアを導入する必要があるためです:\n" -"数学的帰納法の概念についてもう少し深く理解する必要があります。\n" +"## 概要\n" "\n" -"§3 から始めるのは単純すぎるため、帰納的ステップでは仮定が §4 ですが、実際には §5 が成り立っているため、帰納仮定は適用できません!\n" +"目標に §0 が存在し、かつ目標に複数の §1 が存在する場合には、§2 は第三の §3 を §4 に変更します。\n" "\n" -"§6 を固定します。実際に証明したい主張は、§7 に関する帰納法による証明で、「全ての §8 について、§9 が成り立つならば §10 " -"が成り立つ」というものです。\n" -"この主張は帰納法で証明できます。なぜなら、今では §11 を変更できる柔軟性があるからです。" - -#: Game.Levels.AdvMultiplication.L08mul_eq_zero -#. §0: `h2` -#. §1: `tauto` -msgid "" -"Now the goal can be deduced from §0 by pure logic, so use the §1\n" -"tactic." -msgstr "現在の目標は、§0 から純粋な論理によって導き出すことができます。そのため、§1 のタクティクを使用します。" +"## 例\n" +"\n" +"もし目標が §5 である場合、§6 は目標を §7 に変更します。一方、§8 は目標を §9 に変更します。" #: Game.Levels.Tutorial.L02rw -#. §0: `rfl` -msgid "Now §0 will work." -msgstr "現在、§0 は正常に動作します。" - -#: Game.Levels.LessOrEqual.L05le_zero -#. §0: `le_zero x` -#. §1: `x ≤ 0 → x = 0` -msgid "§0 is a proof of the implication §1." -msgstr "§0 は、§1 の推論を示しています。" - -# no-translate -#: Game.Levels.Implication.L11two_add_two_ne_five -msgid "2 + 2 ≠ 5" -msgstr "2 + 2 ≠ 5" +#. §0: `2 + 2 = 4` +msgid "You now know enough tactics to prove §0! Let's begin the journey." +msgstr "あなたは、十分なタクティクを習得し、§0の証明が可能になりました。それでは、学習の旅を始めましょう。" #: Game.Levels.Tutorial.L03two_eq_ss0 #. §0: `ℕ` @@ -1173,1181 +864,1065 @@ msgstr "" "このゲームは、独自の自然数のコピーを使用します。「§3」という名前で参照され、記号は「§4」で表されます。これは、Leanの自然数「§5" "」とは異なり、自然数ゲームに影響を与えることはありません。" -#: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero -#. §0: `a ≠ 0` -#. §1: `tauto` -msgid "" -"Multiplication usually makes a number bigger, but multiplication by zero " -"can make\n" -"it smaller. Thus many lemmas about inequalities and multiplication need the\n" -"hypothesis §0. Here is a key lemma that enables us to use this hypothesis.\n" -"To help us with the proof, we can use the §1 tactic. Click on the tactic's " -"name\n" -"on the right to see what it does." -msgstr "" -"乗算は通常、数値を大きくしますが、ゼロによる乗算はその数値を小さくすることがあります。そのため、不等式や乗算に関する多くの補題では、§0 " -"の仮定が必要です。この仮定を使用するための重要な補題があります。証明の助けとなるために、§1 " -"のタクティクを使用できます。タクティクの名前を右側でクリックすると、その機能が表示されます。" - -#: Game.Levels.LessOrEqual.L04le_trans -#. §0: `cases` -#. §1: `hxy` -msgid "" -"In this level, we see inequalities as *hypotheses*. We have not seen this " -"before.\n" -"The §0 tactic can be used to take §1 apart." -msgstr "" -"このレベルでは、不等式を *仮定* として扱います。これまではこのような扱いがありませんでした。\n" -"§0 タクティクは、§1 を分解するために使用できます。" +#: Game.Levels.Tutorial.L03two_eq_ss0 +#. §0: `1` +#. §1: `succ 0` +#. §2: `rw [one_eq_succ_zero]` +msgid "Next turn §0 into §1 with §2." +msgstr "次のステップとして、§2 を実行して §0 を §1 に変換します。" -#: Game.Levels.Algorithm.L07succ_ne_succ -#. §0: `a` -#. §1: `b` -#. §2: `a = b` -#. §3: `a` -#. §4: `b` -#. §5: `0` -#. §6: `a` -#. §7: `b` -#. §8: `0` -#. §9: `0` -#. §10: `succ n` -#. §11: `a = succ m` -#. §12: `b = succ n` -#. §13: `m = n` -#. §14: `0 = 0` -#. §15: `rfl` -#. §16: `0 ≠ succ n` -#. §17: `zero_ne_succ n` -#. §18: `succ m ≠ 0` -#. §19: `succ_ne_zero m` -#. §20: `h : m = n` -#. §21: `succ m = succ n` -#. §22: `rw [h]` -#. §23: `rfl` -#. §24: `a ≠ b` -#. §25: `succ a ≠ succ b` +#: Game.Levels.Tutorial.L03two_eq_ss0 +#. §0: `0` +#. §1: `n` +#. §2: `succ n` +#. §3: `n` +#. §4: `n` +#. §5: `n` +#. §6: `0` +#. §7: `succ 0` +#. §8: `1` +#. §9: `2 = succ 1` +#. §10: `3 = succ 2` +#. §11: `4 = succ 3` +#. §12: `2 = succ 1` +#. §13: `two_eq_succ_one` +#. §14: $2$ msgid "" -"Here we begin to\n" -"develop an algorithm which, given two naturals §0 and §1, returns the " -"answer\n" -"to \"does §2?\"\n" +"## The birth of number.\n" "\n" -"Here is the algorithm. First note that §3 and §4 are numbers, and hence\n" -"are either §5 or successors.\n" +"Numbers in Lean are defined by two rules.\n" "\n" -"*) If §6 and §7 are both §8, return \"yes\".\n" +"* §0 is a number.\n" +"* If §1 is a number, then the *successor* §2 of §3 is a number.\n" "\n" -"*) If one is §9 and the other is §10, return \"no\".\n" +"The successor of §4 means the number after §5. Let's learn to\n" +"count, and name a few small numbers.\n" "\n" -"*) If §11 and §12, then return the answer to \"does §13?\"\n" +"## Counting to four.\n" "\n" -"Our job now is to *prove* that this algorithm always gives the correct " -"answer. The proof that\n" -"§14 is §15. The proof that §16 is §17, and the proof\n" -"that §18 is §19. The proof that if §20 then\n" -"§21 is §22 and then §23. This level is a proof of the one\n" -"remaining job we have to do: if §24 then §25." +"§6 is a number, so §7 is a number. Let's call this new number §8.\n" +"Similarly let's define §9, §10 and §11.\n" +"This gives us plenty of numbers to be getting along with.\n" +"\n" +"The *proof* that §12 is called §13.\n" +"Check out the \"012\" tab in the list of lemmas on the right\n" +"for this and other proofs.\n" +"\n" +"Let's prove that §14 is the number after the number after zero." msgstr "" -"ここでは、与えられた自然数 §0 と §1 に対して、「§2」という質問の答えを返すアルゴリズムを開発します。\n" +"## 数字の誕生。\n" "\n" -"このアルゴリズムは以下の手順で動作します。まず、§3 と §4 が数値であり、したがって §5 または §5 の後者であることに注意してください。\n" +"Leanにおける数字は、以下の2つのルールで定義されます。\n" "\n" -"1. §6 と §7 が両方とも §8 である場合、「yes」と返答します。\n" -"2. 一方が §9 で他方が §10 である場合、「no」と返答します。\n" -"3. §11 と §12 の場合、「§13 ?」 という質問の答えを返します。\n" +"* §0 は数字です。\n" +"* もし §1 が数字ならば、§3 の *後続* §2 も数字です。\n" "\n" -"現在の課題は、このアルゴリズムが常に正しい答えを返すことを証明することです。具体的には、以下の命題を証明する必要があります:§14 が §15 " -"であること、§16 が §17 であること、§18 が §19 であること、そして §20 が真であるならば、§21 が §22 であり、さらに " -"§23 であることを証明します。この段階では、残る最後の課題である「§24 が真であるならば、§25 である」という命題を証明します。" - -#: Game.Levels.LessOrEqual.L06le_antisymm -msgid "x ≤ y and y ≤ x implies x = y" -msgstr "x ≤ y かつ y ≤ x であるとき x = y" - -#: Game.Levels.LessOrEqual.L07or_symm -#. §0: `left` -#. §1: `P ∨ Q` -#. §2: `P` -#. §3: `P ∨ Q` -#. §4: `P` -#. §5: `apply` -#. §6: $P \\implies P \\lor Q.$ -msgid "" -"# Summary\n" -"The §0 tactic changes a goal of §1 into a goal of §2.\n" -"Use it when your hypotheses guarantee that the reason that §3\n" -"is true is because in fact §4 is true.\n" +"§4 の「後続」とは、§5 の次の数字を意味します。数を数えることと、いくつかの小さな数字の名前を学びましょう。\n" "\n" -"Internally this tactic is just §5ing a theorem\n" -"saying that §6\n" +"## 4まで数える。\n" "\n" -"Note that this tactic can turn a solvable goal into an unsolvable\n" -"one." -msgstr "" -"# 概要\n" -"§0 タクティクは、目標 §1 を §2 に変更します。\n" -"仮定が、§3 が真である理由は実際には §4 が真であることを保証する場合に使用します。\n" +"§6 は数字なので、§7 も数字です。この新しい数字を §8 と呼びましょう。同様に §9, §10, §11 " +"を定義します。これで十分な数を手に入れることができます。\n" "\n" -"内部的には、このタクティクは §6 という定理を §5 します。\n" +"§12 が数字であることを示す *証明* §13 があります。証明リストの右側の「012」タブを確認してください。\n" "\n" -"注意していただきたいのは、このタクティクが、解決可能な目標を解決不能な目標に変更する可能性があることです。" +"次に、0の後ろの後ろの数字である §14 を証明しましょう。" -#: Game.Levels.Multiplication -msgid "Multiplication World" -msgstr "乗算ワールド" +#: Game.Levels.Tutorial.L03two_eq_ss0 +#. §0: `rfl` +msgid "Now finish the job with §0." +msgstr "§0を使って作業を完了してください。" -#: Game.Levels.LessOrEqual.L10le_one -#. §0: `le_zero` -#. §1: `x ≤ 0` -#. §2: `x = 0` -#. §3: `x ≤ 1` -#. §4: `x = 0` -#. §5: `x = 1` -msgid "" -"We've seen §0, the proof that if §1 then §2.\n" -"Now we'll prove that if §3 then §4 or §5." -msgstr "" -"これまでに、仮定 §1 ならば §2 が成り立つことを示す証明 §0 を見てきました。\n" -"次に、仮定 §3 ならば §4 または §5 が成り立つことを証明します。" +#: Game.Levels.Tutorial.L03two_eq_ss0 +#. §0: `one_eq_succ_zero` +#. §1: `1 = succ 0` +msgid "§0 is a proof of §1.\"" +msgstr "§0 は §1 の証明である。" -#: Game -#. §0: $\\mathbb{N}$ -msgid "" -"In this game you recreate the natural numbers §0 from the Peano axioms,\n" -"learning the basics about theorem proving in Lean.\n" -"\n" -"This is a good first introduction to Lean!" -msgstr "" -"このゲームでは、ペアノの公理に基づいて自然数 §0 を再構成し、Leanにおける定理証明の基礎を習得します。\n" -"\n" -"これは、Leanへの優れた入門となるでしょう!" +#: Game.Levels.Tutorial.L03two_eq_ss0 Game.Levels.Addition.L03add_comm +#: Game.Levels.Implication.L09zero_ne_succ Game.Levels.Algorithm.L05pred +#: Game.Levels.Algorithm.L06is_zero Game.Levels.LessOrEqual.L05le_zero +#. §0: `two_eq_succ_one` +#. §1: `2 = succ 1` +msgid "§0 is a proof of §1." +msgstr "§0 は §1 の証明です。" -#: Game.Levels.Implication.L04succ_inj Game.Levels.Implication.L05succ_inj2 -#: Game.Levels.Algorithm.L05pred Game.Levels.Algorithm.L07succ_ne_succ -#: Game.Levels.AdvAddition.L05add_right_eq_zero -#: Game.Levels.AdvAddition.L06add_left_eq_zero -#: Game.Levels.LessOrEqual.L09succ_le_succ -#. §0: $x+1=4$ -#. §1: $x=3$ -msgid "If §0 then §1." -msgstr "§0 ならば、§1。" +#: Game.Levels.Tutorial.L03two_eq_ss0 +msgid "Can you take it from here?" +msgstr "ここから続けられますか?" -#: Game.Levels.Addition.L04add_assoc -#. §0: $x+y+z$ -#. §1: $(x+y)+z$ -#. §2: $x+(y+z)$ -#. §3: $x+y+z$ -#. §4: $(x+y)+z$ -#. §5: $(x+y)+z$ -#. §6: $x+(y+z)$ -msgid "" -"We've been adding up two numbers; in this level we will add up three.\n" -"\n" -" What does §0 *mean*? It could either mean §1, or it\n" -" could mean §2. In Lean, §3 means §4.\n" -"\n" -" But why do we care which one it means; §5 and §6 are *equal*!\n" -"\n" -" That's true, but we didn't prove it yet. Let's prove it now by induction." -msgstr "" -"二つの数を足し合わせる練習をしてきました。このレベルでは、三つの数を足し合わせます。\n" -"\n" -" §0 は何を意味するのでしょうか?それは §1 または §2 のどちらかです。Lean では、§3 と §4 は同じ意味になります。\n" -"\n" -" しかし、どの意味を持つべきかを気にする必要はありません。なぜなら、§5 と §6 は *等しい* からです!\n" -"\n" -" その通りですが、まだ証明していません。" -"帰納法(`inducution`)でを用いて証明しましょう。" +#: Game.Levels.Tutorial.L03two_eq_ss0 +#. §0: `rw [two_eq_succ_one]` +#. §1: `2` +msgid "Start with §0 to begin to break §1 down into its definition." +msgstr "まず§0から開始し、そこから§1を定義へと分解していくことから始めましょう。" -#: Game.Levels.AdvAddition.L04add_right_eq_self -#. §0: `add_left_eq_self` -#. §1: ``` -#. rw [add_comm] -#. intro h -#. apply add_left_eq_self at h -#. exact h -#. ``` -#. §2: ``` -#. rw [add_comm] -#. exact add_left_eq_self y x -#. ``` -#. §3: `x` -#. §4: ``` -#. induction x with d hd -#. intro h -#. rw [zero_add] at h -#. exact h -#. intro h -#. rw [succ_add] at h -#. apply succ_inj at h -#. apply hd at h -#. exact h -#. ``` +#: Game.Levels.Tutorial.L03two_eq_ss0 +msgid "Numbers" +msgstr "数値" + +#: Game.Levels.Tutorial.L03two_eq_ss0 Game.Levels.Tutorial.L04rw_backwards +#. §0: $2$ +#. §1: $0$ +msgid "§0 is the number after the number after §1." +msgstr "§0 は、§1 の後に続く数値の後に現れる数値です。" + +#: Game.Levels.Tutorial.L03two_eq_ss0 +#. §0: `rw [two_eq_succ_one, one_eq_succ_zero]` +#. §1: `rfl` msgid "" -"Here's a proof using §0:\n" -"§1\n" -"\n" -"and here's an even shorter one using the same idea:\n" -"§2\n" -"\n" -"Alternatively you can just prove it by induction on §3:\n" +"Note that you can do §0\n" +"and then §1 to solve this level in two lines." +msgstr "§0を実行し、その後§1を実行することで、このレベルを2行で解くことができます。" + +#: Game.Levels.Tutorial.L04rw_backwards +#. §0: `h` +#. §1: `X = Y` +#. §2: `rw [h]` +#. §3: `X` +#. §4: `Y` +#. §5: `Y` +#. §6: `X` +#. §7: `rw` +#. §8: `←` +#. §9: `\\l` +#. §10: $2$ +#. §11: $0$ +#. §12: `succ (succ 0)` +#. §13: `2` +msgid "" +"If §0 is a proof of §1 then §2 will\n" +"turn §3s into §4s. But what if we want to\n" +"turn §5s into §6s? To tell the §7 tactic\n" +"we want this, we use a left arrow §8. Type\n" +"§9 and then hit the space bar to get this arrow.\n" "\n" -"§4" +"Let's prove that §10 is the number after the number\n" +"after §11 again, this time by changing §12\n" +"into §13." msgstr "" -"以下は、§0を用いた証明です:\n" -"§1\n" -"\n" -"また、同様の考え方を用いると、さらに短い証明も可能です:\n" -"§2\n" +"もし §0 が §1 の証明である場合、§2 は §3 を §4 に変換します。しかし、§5 を §6 に変換したい場合はどうでしょうか? §7 " +"タクティクに、この変換を指示するために、左矢印 §8 を使用します。 §9 と入力し、スペースキーを押すと、この矢印が得られます。\n" "\n" -"あるいは、§3 に対して数学的帰納法を用いて証明することもできます:\n" -"§4" +"次の証明で、§10 が §11 の後ろの数値の後ろの数値であることを証明しましょう。今回は §12 を §13 に変換して証明します。" -#: Game.Levels.LessOrEqual.L05le_zero -#. §0: `add_right_eq_zero` -#. §1: `symm at` +#: Game.Levels.Tutorial.L04rw_backwards +#. §0: `rw [← one_eq_succ_zero]` +#. §1: `succ 0` +#. §2: `1` +msgid "Try §0 to change §1 into §2." +msgstr "§0を使用して、§1を§2に変換することを試みてください。" + +#: Game.Levels.Tutorial.L04rw_backwards Game.Levels.Tutorial.L05add_zero +#. §0: `rw [← two_eq_succ_one]` +#. §1: `succ 1` +#. §2: `2` +msgid "Now §0 will change §1 into §2." +msgstr "§0 は §1 を §2 に変更します。" + +#: Game.Levels.Tutorial.L04rw_backwards +#. §0: `succ n` +#. §1: `n + 1` msgid "" -"You want to use §0, which you already\n" -"proved, but you'll have to start with §1 your hypothesis." -msgstr "既に証明した§0を使用したいですが、まず§1という仮定から始める必要があります。" +"Why did we not just define §0 to be §1? Because we have not\n" +"even *defined* addition yet! We'll do that in the next level." +msgstr "なぜ、§0を§1に定義しなかったのでしょうか? それは、まだ足し算の演算自体を定義していないからです。この定義は、次の段階で行います。" -#: Game.Levels.Tutorial.L03two_eq_ss0 -#. §0: `1` -#. §1: `succ 0` -#. §2: `rw [one_eq_succ_zero]` -msgid "Next turn §0 into §1 with §2." -msgstr "次のステップとして、§2 を実行して §0 を §1 に変換します。" +#: Game.Levels.Tutorial.L04rw_backwards +#. §0: `2 = 2` +msgid "Can you now change the goal into §0?" +msgstr "目標を§0に変更することは可能ですか?" -#: Game.Levels.Implication.L07intro2 -msgid "intro practice" -msgstr "intro 演習" +#: Game.Levels.Tutorial.L04rw_backwards +msgid "rewriting backwards" +msgstr "逆方向に書き換える" -#: Game.Levels.Addition.L01zero_add -#. §0: `n : ℕ` -#. §1: `n` -#. §2: `induction n with d hd` -#. §3: `n` -#. §4: `d` -#. §5: `hd` -#. §6: ``` -#. 0 + n = n -#. ``` -#. §7: `induction n with d hd` -#. §8: `0 + 0 = 0` -#. §9: `hd : 0 + d = d` -#. §10: `0 + succ d = succ d` +#: Game.Levels.Tutorial.L05add_zero +#. §0: `repeat t` +#. §1: `t` +#. §2: `repeat rw [add_zero]` +#. §3: `a + 0 + (0 + (0 + 0)) = b + 0 + 0` +#. §4: `a = b` msgid "" "## Summary\n" "\n" -"If §0 is an object, and the goal mentions §1, then §2\n" -"attempts to prove the goal by induction on §3, with the inductive\n" -"variable in the successor case being §4, and the inductive hypothesis being " -"§5.\n" -"\n" -"### Example:\n" -"If the goal is\n" -"§6\n" -"\n" -"then\n" -"\n" -"§7\n" +"§0 repeatedly applies the tactic §1\n" +"to the goal. You don't need to use this\n" +"tactic, it just speeds things up sometimes.\n" "\n" -"will turn it into two goals. The first is §8;\n" -"the second has an assumption §9 and goal\n" -"§10.\n" +"## Example\n" "\n" -"Note that you must prove the first\n" -"goal before you can access the second one." +"§2 will turn the goal\n" +"§3\n" +"into the goal\n" +"§4." msgstr "" "## 概要\n" "\n" -"もし §0 がオブジェクトであり、目標に §1 が含まれている場合、§2 は目標を §3 " -"に対する帰納法によって証明しようとします。帰納変数は後続ケースで §4 であり、帰納仮定は §5 です。\n" +"§0 は、タクティク §1 " +"を繰り返し適用することで、目標を解決します。このタクティクの使用は必須ではありませんが、場合によっては処理速度の向上に役立ちます。\n" "\n" -"### 例:\n" -"もし目標が\n" -"§6\n" +"## 例\n" "\n" -"である場合、\n" +"§2 を使用すると、目標 §3 が §4 になります。" + +#: Game.Levels.Tutorial.L05add_zero +#. §0: `2 + 2 = 4` +#. §1: $37$ +#. §2: $x$ +#. §3: $0$ +#. §4: `37 + x` +#. §5: `37 + 0` +#. §6: `37 + succ x` +#. §7: `0` +#. §8: `37 + 0` +#. §9: `37` +#. §10: `a + 0` +#. §11: `a` +#. §12: `a` +#. §13: `add_zero a` +#. §14: `add_zero 37` +#. §15: `37 + 0 = 37` +#. §16: `add_zero x` +#. §17: `x + 0 = x` +#. §18: `add_zero` +#. §19: `? + 0 = ?` +#. §20: `add_zero x : x + 0 = x` +#. §21: `proof : statement` +msgid "" +"We'd like to prove §0 but right now\n" +"we can't even *state* it\n" +"because we haven't yet defined addition.\n" "\n" -"§7\n" +"## Defining addition.\n" "\n" -"は目標を 2 つの目標に変換します。最初の目標は §8 であり、次の目標には仮定 §9 と目標\n" -"§10\n" -"が含まれます。\n" +"How are we going to add §1 to an arbitrary number §2? Well,\n" +"there are only two ways to make numbers in this game: §3\n" +"and successors. So to define §4 we will need\n" +"to know what §5 is and what §6 is.\n" +"Let's start with adding §7.\n" "\n" -"注意していただきたいのは、最初の目標を証明する前に、次の目標にアクセスすることはできないということです。" - -# no-translate -#: Game.Levels.Implication.L09zero_ne_succ -msgid "zero_ne_succ" -msgstr "zero_ne_succ" - -#: Game.Levels.Multiplication.L05one_mul -#. §0: $1\\times m=m$ -#. §1: `succ_mul` -msgid "" -"You can prove §0 in at least three ways.\n" -"Either by induction, or by using §1, or\n" -"by using commutativity. Which do you think is quickest?" +"### Adding 0\n" +"\n" +"To make addition agree with our intuition, we should *define* §8\n" +"to be §9. More generally, we should define §10 to be §11 for\n" +"any number §12. The name of this proof in Lean is §13.\n" +"For example §14 is a proof of §15,\n" +"§16 is a proof of §17, and §18 is a proof\n" +"of §19.\n" +"\n" +"We write §20, so §21." msgstr "" -"少なくとも3つの方法で§0を証明できます。\n" -"いずれも、帰納法を用いる方法、§1を利用する方法、または交換律を用いる方法です。\n" -"これらのうち、最も効率的な方法はどれだとお考えですか?" - -#: Game.Levels.Addition.L02succ_add -#. §0: `succ a + «{d}»` -#. §1: `(succ a) + «{d}»` -#. §2: `succ` -msgid "" -"Note that §0 means §1. Put your cursor\n" -"on any §2 in the goal or assumptions to see what exactly it's eating." -msgstr "注: §0 は §1 を意味します。目標または前提条件内の任意の §2 にカーソルを置くと、実際にどのようなものを参照しているかを確認できます。" - -#: Game.Levels.LessOrEqual.L07or_symm -#. §0: `cases «{h}» with hx hy` -msgid "We don't know whether to go left or right yet. So start with §0." -msgstr "まだどちらに進むべきか決まっていないため、「§0」から開始しましょう。" - -#: Game.Levels.AdvMultiplication.L05le_mul_right -#. §0: $2$ -#. §1: $2 = 37 × 42.$ -#. §2: $2$ -#. §3: $2$ -#. §4: `mul_left_ne_zero` -#. §5: `one_le_of_ne_zero` -#. §6: `mul_le_mul_right` -msgid "" -"One day this game will have a Prime Number World, with a final boss\n" -"of proving that §0 is prime.\n" -"To do this, we will have to rule out things like §1\n" -"We will do this by proving that any factor of §2 is at most §3,\n" -"which we will do using this lemma. The proof I have in mind manipulates the " -"hypothesis\n" -"until it becomes the goal, using §4, §5 and\n" -"§6." -msgstr "" -"いつかこのゲームには「素数ワールド」が追加される予定です。最終的なボス戦は、§0 が素数であることを証明することになります。\n" -"これを実現するためには、§1 などの要素を排除する必要があります。\n" -"具体的には、§2 の任意の因数のうち、最も大きいものが §3 であることを証明します。この証明には、以下の補題を使用します。\n" -"私が考えている証明では、§4、§5、および §6 を用いて、仮定を操作し、最終的に目標(§0 が素数であること)に到達させるようにします。" - -#: Game.Levels.Algorithm.L06is_zero -#. §0: `False` -#. §1: `True` -#. §2: `is_zero (succ a)` -#. §3: `rw [← is_zero_succ a]` -msgid "" -"We're going to change that §0 into §1. Start by changing it into\n" -"§2 by executing §3." -msgstr "" -"§0 を §1 に変更します。まず、§3 を実行して §0 を §2 に変更します。" - -#: Game.Levels.Algorithm.L07succ_ne_succ -#. §0: `contrapose! h` -msgid "" -"Can you take it from here? (note: if you try §0 again, it will\n" -"take you back to where you started!)" -msgstr "引き続き作業を進められますでしょうか?(注:§0を再度実行すると、元の開始地点に戻ります!)" +"私たちは§0を証明したいですが、現在では\n" +"その定理を*記述すること*すらできません。\n" +"なぜなら、加法をまだ定義していないからです。\n" +"\n" +"## 加法の定義\n" +"\n" +"任意の数§2に§1を加える方法はどのようなものでしょうか?\n" +"このゲームでは数を生成する方法は2つしかありません:§3\n" +"と後続数。したがって、§4を定義するには\n" +"§5と§6がどのようなものかを知る必要があります。\n" +"まずは§7を加えることにしましょう。\n" +"\n" +"### 0を加える\n" +"\n" +"加法が直感に合致するようにするためには、§8を\n" +"§9とするべきです。より一般的には、任意の数§12に対して\n" +"§10を§11とするべきです。Leanでのこの証明の名前は§13です。\n" +"例えば、§14は§15の証明、§16は§17の証明、§18は§19の証明です。\n" +"\n" +"私たちは§20と書きます、つまり§21です。" -#: Game.Levels.Power.L05pow_two -#. §0: `pow_two a` -#. §1: `a ^ 2 = a * a` -msgid "§0 says that §1." -msgstr "§0 は、§1 を述べています。" +# no-translate +#: Game.Levels.Tutorial.L05add_zero Game.Levels.Tutorial.L06add_zero2 +#: Game.Levels.Power.L01zero_pow_zero Game.Levels.Algorithm.L09decide2 +#: Game.Levels.AdvAddition.L03add_left_eq_self +#. §0: $a+(b+0)+(c+0)=a+b+c.$ +msgid "§0" +msgstr "§0" -#: Game.Levels.Implication.L04succ_inj -msgid "In the next level, we'll do the same proof but backwards." -msgstr "次のレベルでは、同様の手続きを用いて、証明を逆方向に展開します。" +#: Game.Levels.Tutorial.L05add_zero +#. §0: `rw [add_zero]` +#. §1: `b + 0` +#. §2: `b` +msgid "§0 will change §1 into §2." +msgstr "§0 は §1 を §2 に変換します。" -#: Game.Levels.Multiplication.L08add_mul -#: Game.Levels.LessOrEqual.L09succ_le_succ -#. §0: ``` -#. rw [mul_comm, mul_add] -#. repeat rw [mul_comm c] -#. rfl -#. ``` +#: Game.Levels.Tutorial.L05add_zero +#. §0: `repeat rw [add_zero]` msgid "" -"Here's my proof:\n" -"§0" -msgstr "" -"私の証明:\n" -"§0" - -#: Game.Levels.Implication.L03apply -#. §0: `exact` -msgid "Now finish using the §0 tactic." -msgstr "次に、§0 タクティクを使って処理を完了してください。" +"Those of you interested in speedrunning the game may want to know\n" +"that §0 will do both rewrites at once." +msgstr "ゲームのRTAにご興味のある方は、`§0` は一度に両方のリライトを実行できます。" -#: Game.Levels.Power -#. §0: `37 ^ n` -#. §1: `37 ^ 0` -#. §2: `37 ^ (succ d)` -#. §3: `37 ^ d` -#. §4: `pow_zero (a : ℕ) : a ^ 0 = 1` -#. §5: `pow_succ (a b : ℕ) : a ^ succ b = a ^ b * a` +#: Game.Levels.Tutorial.L05add_zero +#. §0: `add_zero a` +#. §1: `a + 0 = a` +#. §2: `add_zero` +#. §3: `add_zero 37` +#. §4: `37 + 0 = 37` +#. §5: `rw` +#. §6: `rw [add_zero]` +#. §7: `add_zero` +#. §8: $\\forall n ∈ ℕ, n + 0 = n$ +#. §9: `n + 0 = n` msgid "" -"This world introduces exponentiation. If you want to define §0\n" -"then, as always, you will need to know what §1 is, and\n" -"what §2 is, given only §3.\n" +"§0 is a proof that §1.\n" "\n" -"You can probably guess the names of the general theorems:\n" +"## Summary\n" "\n" -" * §4\n" -" * §5\n" +"§2 is really a function, which\n" +"eats a number, and returns a proof of a theorem\n" +"about that number. For example §3 is\n" +"a proof that §4.\n" "\n" -"Using only these, can you get past the final boss level?\n" +"The §5 tactic will accept §6\n" +"and will try to figure out which number you omitted\n" +"to input.\n" "\n" -"The levels in this world were designed by Sian Carey, a UROP student\n" -"at Imperial College London, funded by a Mary Lister McCammon Fellowship\n" -"in the summer of 2019. Thanks to Sian and also thanks to Imperial\n" -"College for funding her." +"## Details\n" +"\n" +"A mathematician sometimes thinks of §7\n" +"as \\\\\"one thing\\\\\", namely a proof of §8.\n" +"This is just another way of saying that it's a function which\n" +"can eat any number n and will return a proof that §9." msgstr "" -"このワールドでは指数演算が導入されます。§0を定義するには、常に §1 と §2 が何であるかを知る必要があります。そして、それらを §3 " -"だけを使って推測する必要があります。\n" +"§0は§1の証明です。\n" "\n" -"一般的な定理の名前はおそらく予想できるでしょう:\n" +"## 概要\n" "\n" -" * §4\n" -" * §5\n" +"§2は実際には関数で、数字を入力するとその数字に関する定理の証明を返します。例えば§3は§4の証明です。\n" "\n" -"これらのものだけを使って最終ボスレベルを突破できるでしょうか?\n" +"§5のタクティクは§6を受け取り、省略された数字を推測しようとします。\n" "\n" -"この世界のレベルは、2019年夏にMary Lister McCammon助成金によりImperial College " -"LondonのUROP学生であるSian Careyによって設計されました。Sianに感謝します。また、Imperial " -"Collegeの助成にも感謝します。" +"## 詳細\n" +"\n" +"数学者は時として§7を「一つのもの」と捉え、それは§8の証明であると言えます。これは、任意の数字nを入力すると§9" +"の証明を返す関数であるという別の表現方法です。" -#: Game.Levels.Implication.L04succ_inj -#. §0: `h` -#. §1: `succ x = succ 3` -#. §2: `succ_inj` -#. §3: `rw [four_eq_succ_three] at h` +#: Game.Levels.Tutorial.L05add_zero +#. §0: `Add a b` +#. §1: `a + b` +#. §2: `add_zero a : a + 0 = a` +#. §3: `add_succ a b : a + succ b = succ (a + b)` +#. §4: `zero_add a : 0 + a = a` msgid "" -"Let's first get §0 into the form §1 so we can\n" -"apply §2. First execute §3\n" -"to change the 4 on the right hand side." +"§0, with notation §1, is\n" +"the usual sum of natural numbers. Internally it is defined\n" +"via the following two hypotheses:\n" +"\n" +"* §2\n" +"\n" +"* §3\n" +"\n" +"Other theorems about naturals, such as §4, are proved\n" +"by induction using these two basic theorems." msgstr "" -"まず、§0 を §1 の形式に変換し、その後 §2 を適用します。\n" -"最初に、§3 を実行して右辺の 4 を変更します。" +"§0、記号§1は、通常の自然数の和を表します。内部的には、以下の2つの仮定を用いて定義されています:\n" +"\n" +"* §2\n" +"\n" +"* §3\n" +"\n" +"また、§4のような他の自然数に関する定理は、これらの基本定理を用いて帰納法によって証明されます。" -#: Game.Levels.Tutorial.L04rw_backwards Game.Levels.Tutorial.L05add_zero -#. §0: `rw [← two_eq_succ_one]` -#. §1: `succ 1` -#. §2: `2` -msgid "Now §0 will change §1 into §2." -msgstr "§0 は §1 を §2 に変更します。" +#: Game.Levels.Tutorial.L05add_zero +msgid "Adding zero" +msgstr "ゼロを加える" -#: Game.Levels.Implication.L07intro2 -#. §0: ``` -#. intro h -#. apply succ_inj -#. repeat rw [succ_eq_add_one] -#. exact h -#. ``` +#: Game.Levels.Tutorial.L06add_zero2 +#. §0: `add_zero c` +#. §1: `c + 0 = c` +#. §2: `b + 0` +#. §3: `b` +#. §4: `rw [add_zero]` +#. §5: `rw [add_zero b]` +#. §6: `rw [add_zero]` msgid "" -"Here's a completely backwards proof:\n" -"§0" +"§0 is a proof of §1 so that was what got rewritten.\n" +"You can now change §2 to §3 with §4 or §5. You\n" +"can usually stick to §6 unless you need real precision." msgstr "" -"以下は、完全に逆順の手順で構成された証明です:\n" -"§0" +"§0 は §1 の証明であるため、それが書き換えられた理由です。\n" +"§4 または §5 を使用して §2 を §3 に変更できます。 通常は §6 を使用すれば十分ですが、より厳密な操作が必要な場合は §4 または " +"§5 を使用してください。" -# no-translate -#: Game.Levels.LessOrEqual.L05le_zero -msgid "x ≤ 0 → x = 0" -msgstr "x ≤ 0 → x = 0" +#: Game.Levels.Tutorial.L06add_zero2 Game.Levels.LessOrEqual.L08le_total +#. §0: `rw [add_zero c]` +msgid "Try §0." +msgstr "§0 を実行してみましょう。" -#: Game.Levels.AdvAddition -msgid "Advanced Addition World" -msgstr "高度な加算ワールド" +#: Game.Levels.Tutorial.L06add_zero2 +#. §0: `add_succ` +msgid "Let's now learn about Peano's second axiom for addition, §0." +msgstr "それでは、ペアノの加法の第2の公理、§0 について学びましょう。" -#: Game.Levels.Tutorial.L01rfl -#. §0: $x$ -#. §1: $q$ -#. §2: $37x+q=37x+q.$ -msgid "If §0 and §1 are arbitrary natural numbers, then §2" -msgstr "任意の自然数§0と§1が与えられたとき、§2" +#: Game.Levels.Tutorial.L06add_zero2 +#. §0: `b + 0` +#. §1: `c + 0` +#. §2: `rw [add_zero]` +#. §3: `b + 0` +#. §4: `c + 0` +#. §5: `add_zero` +msgid "" +"## Precision rewriting\n" +"\n" +"In the last level, there was §0 and §1,\n" +"and §2 changed the first one it saw,\n" +"which was §3. Let's learn how to tell Lean\n" +"to change §4 first by giving §5 an\n" +"explicit input." +msgstr "" +"## 精密な書き換え\n" +"\n" +"直前のレベルでは、§0 と §1 が存在し、\n" +"§2 は最初に見つかった §3 を変更しました。\n" +"Lean に §4 を最初に変更させる方法を学びましょう。\n" +"これを行うには、§5 に明示的な入力を与えます。" -#: Game.Levels.LessOrEqual.L07or_symm -#. §0: `left` -msgid "This time, use the §0 tactic." -msgstr "この場合は、§0 タクティクを使用します。" +#: Game.Levels.Tutorial.L06add_zero2 +msgid "Precision rewriting" +msgstr "精密な書き換え" -#: Game.Levels.Power.L09add_sq -#. §0: $(a+b)^2=a^2+b^2$ +#: Game.Levels.Tutorial.L07add_succ +#. §0: `1` +msgid "Start by unravelling the §0." +msgstr "まず、§0 を解き始めましょう。" + +#: Game.Levels.Tutorial.L07add_succ +msgid "[dramatic music]. Now are you ready to face the first boss of the game?" +msgstr "[壮大なBGMが流れる]. 続いて、ゲームの最初のボスとの戦闘に備えましょう。" + +#: Game.Levels.Tutorial.L07add_succ +#. §0: $0$ +#. §1: $0$ +#. §2: `37 + d = q` +#. §3: `37 + succ d` +#. §4: `succ d` +#. §5: `d` +#. §6: `37 + succ d` +#. §7: `succ q` +#. §8: `q` +#. §9: `x + succ d` +#. §10: `succ (x + d)` +#. §11: `add_succ x d : x + succ d = succ (x + d)` +#. §12: `... + succ ...` +#. §13: `rw [add_succ]` +#. §14: `succ n = n + 1` +#. §15: `+ succ` +#. §16: `rw [add_succ]` +#. §17: `+` +#. §18: `012` msgid "" -"It's all over! You have proved a theorem which has tripped up\n" -"schoolkids for generations (some of them think §0:\n" -"this is \"the freshman's dream\").\n" +"Every number in Lean is either §0 or a successor. We know how to add §1,\n" +"but we need to figure out how to add successors. Let's say we already know\n" +"that §2. What should the answer to §3 be? Well,\n" +"§4 is one bigger than §5, so §6 should be §7,\n" +"the number one bigger than §8. More generally §9 should\n" +"be §10. Let's add this as a lemma.\n" "\n" -"How many rewrites did you use? I can do it in 12.\n" +"* §11\n" "\n" -"But wait! This boss is stirring...and mutating into a second more powerful " -"form!" +"If you ever see §12 in your goal, §13 is\n" +"normally a good idea.\n" +"\n" +"Let's now prove that §14. Figure out how to get §15 into\n" +"the picture, and then §16. Switch between the §17 (addition) and\n" +"§18 (numerals) tabs under \"Theorems\" on the right to\n" +"see which proofs you can rewrite." msgstr "" -"すべて終了しました!あなたは、長年にわたって学校教育で問題となっていた命題を証明しました(一部の人は§0: " -"これを「大学生の夢」と捉えているかもしれません)。\n" +"Leanの数は、§0または後続数のいずれかです。§1を加算する方法は分かっていますが、後続数を加算する方法はまだ分かりません。例えば、§2" +"が分かっているとします。では、§3の答えは何になるべきでしょうか? §4は §5よりも1大きいので、§6は §7、つまり " +"§8よりも1大きい数になるべきです。より一般的には、§9は §10になります。この事実を補題として追加しましょう。\n" "\n" -"あなたは、この命題を証明するために何回も書き換えたでしょうか?私は12回で解決できます。\n" +"* §11\n" "\n" -"しかし、待ってください!この問題はまだ解決していません...そして、さらに複雑な形へと進化しています!" - -#: Game.Levels.Multiplication.L08add_mul -#. §0: $a$ -#. §1: $b$ -#. §2: $c$ -#. §3: $(a + b) \\times c = ac + bc$ -msgid "" -"Addition is distributive over multiplication.\n" -"In other words, for all natural numbers §0, §1 and §2, we have\n" -"§3." -msgstr "" -"加法は乗法に関して分配法則が成り立ちます。\n" -"すなわち、任意の自然数 §0, §1, §2 について、以下の式が成立します。\n" -"§3。" +"もし目標に §12が見つかったら、通常 §13は良いアイデアです。\n" +"\n" +"次に、§14を証明しましょう。§15を図に取り入れる方法を考え、その後 §16を証明します。「Theorems」の右側にある `+` (加算) と " +"`012` (数字) のタブを切り替えて、どの証明を書き換えることができるか確認します。" -#: Game.Levels.Multiplication.L05one_mul -#. §0: `one_mul m` -#. §1: `1 * m = m` -msgid "§0 is the proof §1." -msgstr "§0 は §1 の証明を示す。" +#: Game.Levels.Tutorial.L07add_succ Game.Levels.Tutorial.L08twoaddtwo +#. §0: `rw [add_succ]` +msgid "Now you can §0" +msgstr "§0ができます。" -#: Game.Levels.Algorithm.L03add_algo2 -msgid "making life simple" -msgstr "よりシンプルな生活を実現する" +#: Game.Levels.Tutorial.L07add_succ Game.Levels.Multiplication.L01mul_one +#: Game.Levels.Multiplication.L06two_mul Game.Levels.Algorithm.L07succ_ne_succ +#. §0: `succ_eq_add_one n` +#. §1: `succ n = n + 1` +msgid "§0 is the proof that §1." +msgstr "§0 は、§1 の証明を示しています。" -#: Game.Levels.Implication.L05succ_inj2 -#. §0: `four_eq_succ_three` -msgid "" -"Now rewrite §0 backwards to make the goal\n" -"equal to the hypothesis." -msgstr "§0 を逆順に書き換えることで、目標と仮定を等価にします。" +#: Game.Levels.Tutorial.L07add_succ +#. §0: `rfl` +msgid "And finally §0." +msgstr "そして、最後に、§0。" -#: Game.Levels.Addition.L04add_assoc -msgid "add_assoc (associativity of addition)" -msgstr "add_assoc (加法に関する結合法則)" +#: Game.Levels.Tutorial.L07add_succ +#. §0: `rw [add_zero]` +msgid "And now §0" +msgstr "§0をしましょう。" -#: Game.Levels.Addition.L04add_assoc -#. §0: `add_assoc a b c` -#. §1: `(a + b) + c = a + (b + c)` -#. §2: `(a + b) + c` -#. §3: `a + b + c` -msgid "" -"§0 is a proof\n" -"that §1. Note that in Lean §2 prints\n" -"as §3, because the notation for addition is defined to be left\n" -"associative." -msgstr "" -"§0 は §1 の証明です。\n" -"Lean では、加算の演算が左結合的に定義されているため、§2 は §3 として表示されます。" +#: Game.Levels.Tutorial.L07add_succ Game.Levels.Addition.L01zero_add +#: Game.Levels.Multiplication.L02zero_mul +#. §0: $a$ +#. §1: $\\operatorname{succ}(a) = a+1$ +msgid "For all natural numbers §0, we have §1." +msgstr "すべての自然数 §0 に対して、§1 が成り立ちます。" -#: Game.Levels.Implication.L07intro2 -#. §0: `intro h` -msgid "Start with §0 to assume the hypothesis." -msgstr "まず、 §0 を使用して仮説を提示します。" +#: Game.Levels.Tutorial.L07add_succ +#. §0: `rw [one_eq_succ_zero]` +msgid "§0 will do this." +msgstr "§0 は、この操作を実行します。" # no-translate -#: Game.Levels.Multiplication.L04mul_comm -msgid "mul_comm" -msgstr "mul_comm" +#: Game.Levels.Tutorial.L07add_succ +msgid "add_succ" +msgstr "add_succ" -#: Game.Levels.Algorithm.L09decide2 -#. §0: `2 + 2 ≠ 5` -msgid "" -"We gave a pretty unsatisfactory proof of §0 earlier on; now give a nicer " -"one." -msgstr "これまでの§0の証明は不完全であり、より適切な証明方法を提示します。" +#: Game.Levels.Tutorial.L07add_succ +#. §0: `add_succ a b` +#. §1: `a + succ b = succ (a + b)` +msgid "§0 is the proof of §1." +msgstr "§0 は §1 の証明です。" -#: Game.Levels.Addition.L01zero_add -#. §0: $n = 0$ -#. §1: `X = Y` +# no-translate +#: Game.Levels.Tutorial.L08twoaddtwo +msgid "2+2=4" +msgstr "2+2=4" + +#: Game.Levels.Tutorial.L08twoaddtwo +#. §0: `h : X = Y` +#. §1: `rw [h]` +#. §2: `X` +#. §3: `Y` +#. §4: `nth_rewrite 3 [h]` msgid "" -"Now you have two goals. Once you proved the first, you will jump to the " -"second one.\n" -"This first goal is the base case §0.\n" +"Good luck!\n" "\n" -"Recall that you can rewrite the proof of any lemma which is visible\n" -"in your inventory, or of any assumption displayed above the goal,\n" -"as long as it is of the form §1." +" One last hint. If §0 then §1 will change *all* §2s into §3s.\n" +" If you only want to change one of them, say the 3rd one, then use\n" +" §4." msgstr "" -"現在、2つの目標があります。最初の目標を証明すると、次の目標に進みます。\n" -"この最初の目標は基本ケース §0 です。\n" +"幸運をお祈りいたします!\n" "\n" -"あなたのインベントリに表示されている任意の補題の証明、または目標の上に表示されている任意の仮定の証明を再利用することができます。ただし、その形式は " -"§1 である必要があります。" +"最後のヒントです。もし §0 が真ならば、§1 はすべての §2 を §3 に変換します。\n" +"特定の §2 のみを変更したい場合は、§4 を使用してください(例:3番目のもの)。" -#: Game.Levels.Implication.L05succ_inj2 -#. §0: `x + 1 = 4` -#. §1: `x = 3` -#. §2: `apply` -msgid "" -"In the last level, we manipulated the hypothesis §0\n" -" until it became the goal §1. In this level we'll manipulate\n" -" the goal until it becomes our hypothesis! In other words, we\n" -" will \"argue backwards\". The §2 tactic can do this too.\n" -" Again I will walk you through this one (assuming you're in\n" -" command line mode)." -msgstr "" -"先程のレベルでは、仮定§0を操作して目標§1にしました。このレベルでは、目標を操作して仮定にします!つまり、「逆向きに議論」することです。§2 " -"タクティクもこれを行うことができます。また、コマンドラインモードで操作していると仮定して、この例を一緒に見ていきましょう。" +#: Game.Levels.Tutorial.L08twoaddtwo +#. §0: `nth_rewrite 2 [two_eq_succ_one]` +#. §1: `rw [two_eq_succ_one]` +msgid "§0 is I think quicker than §1." +msgstr "§0 は、§1 よりも高速であると推測されます。" -#: Game.Levels.Tutorial.L06add_zero2 -#. §0: `add_zero c` -#. §1: `c + 0 = c` -#. §2: `b + 0` -#. §3: `b` -#. §4: `rw [add_zero]` -#. §5: `rw [add_zero b]` -#. §6: `rw [add_zero]` -msgid "" -"§0 is a proof of §1 so that was what got rewritten.\n" -"You can now change §2 to §3 with §4 or §5. You\n" -"can usually stick to §6 unless you need real precision." +#: Game.Levels.Tutorial.L08twoaddtwo +#. §0: ```lean +#. nth_rewrite 2 [two_eq_succ_one] -- only change the second `2` to `succ 1`. +#. rw [add_succ] +#. rw [one_eq_succ_zero] +#. rw [add_succ, add_zero] -- two rewrites at once +#. rw [← three_eq_succ_two] -- change `succ 2` to `3` +#. rw [← four_eq_succ_three] +#. rfl +#. ``` +#. §1: `` +#. §2: `>_` +#. §3: `induction` +msgid "" +"Here is an example proof of 2+2=4 showing off various techniques.\n" +"\n" +"§0\n" +"\n" +"Optional extra: you can run this proof yourself. Switch the game into " +"\"Editor mode\" by clicking\n" +"on the §1 button in the top right. You can now see your proof\n" +"written as several lines of code. Move your cursor between lines to see\n" +"the goal state at any point. Now cut and paste your code elsewhere if you\n" +"want to save it, and paste the above proof in instead. Move your cursor\n" +"around to investigate. When you've finished, click the §2 button in the top " +"right to\n" +"move back into \"Typewriter mode\".\n" +"\n" +"You have finished tutorial world!\n" +"Click \"Home\" to go back to the\n" +"overworld, and select Addition World, where you will learn\n" +"about the §3 tactic." msgstr "" -"§0 は §1 の証明であるため、それが書き換えられた理由です。\n" -"§4 または §5 を使用して §2 を §3 に変更できます。 通常は §6 を使用すれば十分ですが、より厳密な操作が必要な場合は §4 または " -"§5 を使用してください。" +"以下は2+2=4を示す証明の例で、様々な手法を披露しています。\n" +"\n" +"§0\n" +"\n" +"オプション:自分でこの証明を実行することもできます。「エディタモード」に切り替えるには、右上の§1" +"ボタンをクリックしてください。現在の証明は、複数行のコードとして表示されます。行の間でカーソルを動かすことで、任意のポイントでの目標状態を確認できます。" +"証明を保存したい場合は、コードを他の場所にコピーし、上記の証明を代入できます。カーソルを動かして調査してください。終了したら、右上の§2" +"ボタンをクリックして「タイプライターモード」に戻ります。\n" +"\n" +"チュートリアルワールドを終了しました!\n" +"「ホーム」をクリックしてオーバーワールドに戻り、加算ワールドを選択して§3タクティクについて学びます。" # no-translate -#: Game.Levels.AdvAddition.L01add_right_cancel -msgid "add_right_cancel" -msgstr "add_right_cancel" - -#: Game.Levels.Implication.L04succ_inj -#. §0: `succ_eq_add_one` -#. §1: `h` -msgid "" -"Now rewrite §0 backwards at §1\n" -"to get the right hand side." -msgstr "§1 を §0 で逆順に書き換えて、右辺を得ます。" +#: Game.Levels.Tutorial.L08twoaddtwo Game.Levels.Implication.L06intro +#: Game.Levels.Implication.L07intro2 Game.Levels.Implication.L09zero_ne_succ +#: Game.Levels.Implication.L10one_ne_zero +#: Game.Levels.Implication.L11two_add_two_ne_five +#: Game.Levels.Algorithm.L02add_algo1 Game.Levels.Algorithm.L06is_zero +#: Game.Levels.Algorithm.L08decide Game.Levels.AdvAddition.L01add_right_cancel +#: Game.Levels.AdvAddition.L02add_left_cancel +#: Game.Levels.AdvAddition.L04add_right_eq_self +#. §0: $2+2=4$ +msgid "§0." +msgstr "§0." -#: Game.Levels.Algorithm.L08decide -#. §0: `decide` -msgid "" -"You can read more about the §0 tactic by clicking\n" -"on it in the top right." -msgstr "§0 タクティクの詳細については、右上のリンクからご確認ください。" +#: Game.Levels.Addition +msgid "Addition World" +msgstr "加算ワールド" -#: Game.Levels.Implication.L08ne -#. §0: `a ≠ b` -#. §1: `(a = b) → False` -#. §2: `P` -#. §3: `P → False` -#. §4: `P` -#. §5: `True → False` -#. §6: `False → False` -#. §7: `a ≠ b` -#. §8: `P → Q` -#. §9: `a ≠ b` -#. §10: `intro h` -#. §11: `h` -#. §12: `a ≠ b` -#. §13: `apply h at h1` -#. §14: `h1` -#. §15: `a = b` +#: Game.Levels.Addition +#. §0: `induction` +#. §1: `x + y = y + x` +#. §2: `rw` +#. §3: `rfl` +#. §4: `induction` msgid "" -"§0 is *notation* for §1.\n" +"Welcome to Addition World! In this world we'll learn the §0 tactic.\n" +"This will enable us to defeat the boss level of this world, namely §1.\n" "\n" -"The reason this is mathematically\n" -"valid is that if §2 is a true-false statement then §3\n" -"is the logical opposite of §4. Indeed §5 is false,\n" -"and §6 is true!\n" +"The tactics §2, §3 and §4 are the only tactics you'll need to\n" +"beat all the levels in Addition World, Multiplication World, and Power " +"World.\n" +"Power World contains the final boss of the game.\n" "\n" -"The upshot of this is that you can treat §7 in exactly\n" -"the same way as you treat any implication §8. For example,\n" -"if your *goal* is of the form §9 then you can make progress\n" -"with §10, and if you have a hypothesis §11 of the\n" -"form §12 then you can §13 if §14 is a proof\n" -"of §15." +"There are plenty more tactics in this game, but you'll only need to know " +"them if you\n" +"want to explore the game further (for example if you decide to 100%\n" +"the game)." msgstr "" -"§0は§1の*表記*です。\n" +"加算ワールドへようこそ!このワールドでは§0 タクティクを学びます。\n" +"これにより、このワールドのボスレベルを攻略することができます、すなわち§1です。\n" "\n" -"このことが数学的に成り立つ理由は、§2が真偽に関する主張である場合、§3は§4の論理的な否定であるからです。実際、§5は偽であり、§6は真です!\n" +"§2, §3, §4 のタクティクのみが必要で、これらを用いて\n" +"加算ワールド、乗算ワールド、冪乗ワールドのすべてのレベルを攻略することができます。\n" +"冪乗ワールドにはゲームの最終ボスが含まれています。\n" "\n" -"このことから、§7を任意の推論§8と同じように扱うことができます。例えば、あなたの*目標*が§9のような形であれば、§10" -"を用いて進展できます。また、仮定§11が§12のような形である場合、§13を行うことが可能です(ただし、§14が§15の証明である場合に限ります)。" +"このゲームにはもっと多くのタクティクがありますが、それらを知る必要はなく、\n" +"ゲームをさらに探索したい場合(例えば、ゲームを100%攻略したい場合)にのみ必要となります。" -#: Game.Levels.Multiplication.L09mul_assoc -#. §0: `mul_assoc a b c` -#. §1: `(a * b) * c = a * (b * c)` -#. §2: `a * b * c` -#. §3: `(a * b) * c` -#. §4: `(a * b) * c = a * (b * c)` -#. §5: `(6 - 2) - 1` -#. §6: `6 - (2 - 1)` +#: Game.Levels.Addition.L01zero_add +#. §0: $0+n=n$ +#. §1: $n$ +#. §2: $n+0=n$ +#. §3: `add_zero` +#. §4: `zero_add` +#. §5: `0 + n = n` +#. §6: `0 + n` +#. §7: `add_zero` +#. §8: `add_succ` +#. §9: `n` +#. §10: `0` +#. §11: `induction` +#. §12: `0 + 0 = 0` +#. §13: `0 + d = d` +#. §14: `0 + succ d = succ d` +#. §15: `0` +#. §16: `>_` msgid "" -"§0 is a proof that §1.\n" +"In this level we're going to prove that §0, where §1 is a secret natural " +"number.\n" "\n" -"Note that when Lean says §2 it means §3.\n" +"Wait, don't we already know that? No! We know that §2, but that's §3.\n" +"This is §4, which is different.\n" "\n" -"Note that §4 cannot be proved by \\\\\"pure thought\\\\\":\n" -"for example subtraction is not associative, as §5 is not\n" -"equal to §6." -msgstr "" -"§0 は §1 の証明です。\n" +"The difficulty with proving §5 is that we do not have a *formula* for\n" +"§6 in general, we can only use §7 and §8 once\n" +"we know whether §9 is §10 or a successor. The §11 tactic splits into these " +"two cases.\n" "\n" -"Lean が §2 と言った場合、それは §3 を意味します。\n" +"The base case will require us to prove §12, and the inductive step\n" +"will ask us to show that if §13 then §14. Because\n" +"§15 and successor are the only way to make numbers, this will cover all the " +"cases.\n" "\n" -"Lean では、§4 は「純粋な思考」だけでは証明できません:\n" -"例えば、減算は結合法則を満たさないため、§5 は §6 と等しくありません。" - -# no-translate -#: Game.Levels.AdvAddition.L03add_left_eq_self -msgid "add_left_eq_self" -msgstr "add_left_eq_self" - -#: GameServer.RpcHandlers -msgid "level completed with warnings… 🎭" -msgstr "レベルが警告付きで完了しました… 🎭" - -#, fuzzy -#: Game.Levels.Implication.L08ne -#. §0: `h2` -#. §1: `x = y → False` -#. §2: `apply` -#. §3: `h2` -#. §4: `at h1` -msgid "" -"Remember that §0 is a proof of §1. Try\n" -"§2ing §3 either §4 or directly to the goal." +"See if you can do your first induction proof in Lean.\n" +"\n" +"(By the way, if you are still in the \"Editor mode\" from the last world, " +"you can swap\n" +"back to \"Typewriter mode\" by clicking the §16 button in the top right.)" msgstr "" -"§0は§1の証明であることを覚えておいてください。\n" -"§2 §3 を、 §4 または直接目標に対して実行できます。" - -#: Game.Levels.AdvMultiplication.L10mul_right_eq_self -#. §0: `apply mul_left_cancel at h` -msgid "You can now §0" -msgstr "§0 ができます" +"このレベルでは、§1という秘密の自然数について、§0を証明します。\n" +"\n" +"待ってください。それでは、既に知っていることではないでしょうか?いいえ!§2は分かっていますが、それは§3です。\n" +"これは§4で、異なります。\n" +"\n" +"§5を証明する難しさは、一般的に§6に対する*公式*が存在しないことです。§7と§8は、§9が§10" +"であるか後続数であることを知った場合にのみ使用できます。§11のタクティクは、これらの2つの場合に分岐します。\n" +"\n" +"基本的な場合は§12を証明する必要がありますし、帰納的なステップでは、もし§13ならば§14が成り立つことを示す必要があります。なぜなら、§15" +"と後続数が数を作る唯一の方法だからです。これにより、すべてのケースをカバーできます。\n" +"\n" +"Leanで初めての帰納法証明に挑戦してみましょう。\n" +"\n" +"(ちなみに、最後のワールドで「エディタモード」にいた場合は、右上にある§16ボタンをクリックして、「タイプライターモード」に戻ることができます。)" -#: Game.Levels.AdvMultiplication.L06mul_right_eq_one -#. §0: `x * y = 1 → x = 1` -#. §1: `x + y = 0 → x = 0` -#. §2: `x ≤ 1` -#. §3: `le_one` -#. §4: `≤` -#. §5: `have` +#: Game.Levels.Addition.L01zero_add +#. §0: `zero_add x` +#. §1: `0 + x = x` +#. §2: `zero_add` +#. §3: `simp` +#. §4: `0 + x` +#. §5: `x` msgid "" -"This level proves §0, the multiplicative analogue of Advanced Addition\n" -"World's §1. The strategy is to prove that §2 and then use the\n" -"lemma §3 from §4 world.\n" +"§0 is the proof of §1.\n" "\n" -"We'll prove it using a new and very useful tactic called §5." +"§2 is a §3 lemma, because replacing §4 by §5\n" +"is almost always what you want to do if you're simplifying an expression." msgstr "" -"このレベルでは、高度な加算ワールドの§1の乗法的な類似である§0を証明します。その戦略は、まず§2を証明し、その後、§4ワールドから§3" -"の補題を使用することです。\n" +"§0 は §1 の証明です。\n" "\n" -"新しく非常に有用なタクティク§5を用いて証明を行います。" +"§2 は §3 の補題であり、§4 を §5 に置換することは、通常、式を簡略化する場合に望ましい操作です。" -# no-translate -#: Game.Levels.Power.L06pow_add -msgid "pow_add" -msgstr "pow_add" - -#: Game.Levels.Tutorial.L06add_zero2 Game.Levels.LessOrEqual.L08le_total -#. §0: `rw [add_zero c]` -msgid "Try §0." -msgstr "§0 を実行してみましょう。" - -#: Game -#. §0: `{0,1,2,3,4,...}` -#. §1: `2 + 2 = 4` -#. §2: `x + y = y + x` +#: Game.Levels.Addition.L01zero_add +#. §0: `n : ℕ` +#. §1: `n` +#. §2: `induction n with d hd` +#. §3: `n` +#. §4: `d` +#. §5: `hd` +#. §6: ``` +#. 0 + n = n +#. ``` +#. §7: `induction n with d hd` +#. §8: `0 + 0 = 0` +#. §9: `hd : 0 + d = d` +#. §10: `0 + succ d = succ d` msgid "" -"# Welcome to the Natural Number Game\n" -"#### An introduction to mathematical proof.\n" -"\n" -"In this game, we will build the basic theory of the natural\n" -"numbers §0 from scratch. Our first goal is to prove\n" -"that §1. Next we'll prove that §2.\n" -"And at the end we'll see if we can prove Fermat's Last Theorem.\n" -"We'll do this by solving levels of a computer puzzle game called Lean.\n" +"## Summary\n" "\n" -"# Read this.\n" +"If §0 is an object, and the goal mentions §1, then §2\n" +"attempts to prove the goal by induction on §3, with the inductive\n" +"variable in the successor case being §4, and the inductive hypothesis being " +"§5.\n" "\n" -"Learning how to use an interactive theorem prover takes time.\n" -"Tests show that the people who get the most out of this game are\n" -"those who read the help texts like this one.\n" +"### Example:\n" +"If the goal is\n" +"§6\n" "\n" -"To start, click on \"Tutorial World\".\n" +"then\n" "\n" -"Note: this is a new Lean 4 version of the game containing several\n" -"worlds which were not present in the old Lean 3 version. More new worlds\n" -"such as Strong Induction World, Even/Odd World and Prime Number World\n" -"are in development; if you want to see their state or even help out, " -"checkout\n" -"out the [issues in the github " -"repo](https://github.com/leanprover-community/NNG4/issues).\n" +"§7\n" "\n" -"## More\n" +"will turn it into two goals. The first is §8;\n" +"the second has an assumption §9 and goal\n" +"§10.\n" "\n" -"Click on the three lines in the top right and select \"Game Info\" for " -"resources,\n" -"links, and ways to interact with the Lean community." +"Note that you must prove the first\n" +"goal before you can access the second one." msgstr "" -"# 自然数ゲームへようこそ\n" -"#### 数学的証明への入門\n" -"\n" -"このゲームでは、自然数 §0 の基本理論をゼロから構築します。最初の目標は §1 を証明することです。次に §2 " -"を証明します。そして最後には、フェルマーの最終定理を証明できるかどうかを見ていきます。これらの目標を達成するために、コンピュータパズルゲーム「Lean」" -"のレベルを解いていきます。\n" +"## 概要\n" "\n" -"# 読んでください。\n" +"もし §0 がオブジェクトであり、目標に §1 が含まれている場合、§2 は目標を §3 " +"に対する帰納法によって証明しようとします。帰納変数は後続ケースで §4 であり、帰納仮定は §5 です。\n" "\n" -"インタラクティブな定理証明システムの使い方を習得するには時間がかかります。テストの結果から、このゲームで最も効果的なのは、このようなヘルプテキストを読む" -"人です。\n" +"### 例:\n" +"もし目標が\n" +"§6\n" "\n" -"開始するには、「チュートリアルワールド」をクリックしてください。\n" +"である場合、\n" "\n" -"注意:これは、旧Lean 3版に存在しなかった複数のワールドを含む新しいLean " -"4版のゲームです。強い帰納法ワールド、偶数/" -"奇数ワールド、素数ワールドなどの新しいワールドの開発が進行中です;これらの状態を確認したいか、協力したい場合は、[GitHubリポジトリのissues]" -"(https://github.com/leanprover-community/NNG4/issues) をチェックしてください。\n" +"§7\n" "\n" -"## 追加情報\n" +"は目標を 2 つの目標に変換します。最初の目標は §8 であり、次の目標には仮定 §9 と目標\n" +"§10\n" +"が含まれます。\n" "\n" -"右上隅の三本線をクリックし、「ゲーム情報」を選択して、リソース、リンク、Leanコミュニティとの交流方法を確認してください。" - -#: Game.Levels.Power.L03pow_one Game.Levels.Power.L04one_pow -#: Game.Levels.Power.L05pow_two -#. §0: $a$ -#. §1: $a ^ 1 = a$ -msgid "For all naturals §0, §1." -msgstr "全ての自然数 §0 について、 §1 。" +"注意していただきたいのは、最初の目標を証明する前に、次の目標にアクセスすることはできないということです。" -#: Game.Levels.Algorithm.L08decide -#. §0: `decide` -#. §1: `DecidableEq ℕ` -#. §2: `instance` -#. §3: `decide` -#. §4: `a = b` -#. §5: `a ≠ b` +#: Game.Levels.Addition.L01zero_add +#. §0: $n = 0$ +#. §1: `X = Y` msgid "" -"# Summary\n" -"\n" -"§0 will attempt to solve a goal if it can find an algorithm which it\n" -"can run to solve it.\n" -"\n" -"## Example\n" +"Now you have two goals. Once you proved the first, you will jump to the " +"second one.\n" +"This first goal is the base case §0.\n" "\n" -"A term of type §1 is an algorithm to decide whether two naturals\n" -"are equal or different. Hence, once this term is made and made into an §2,\n" -"the §3 tactic can use it to solve goals of the form §4 or §5." +"Recall that you can rewrite the proof of any lemma which is visible\n" +"in your inventory, or of any assumption displayed above the goal,\n" +"as long as it is of the form §1." msgstr "" -"# 概要\n" -"\n" -"§0 は、解決可能なアルゴリズムが存在する場合に、目標を解決しようとします。\n" -"\n" -"## 例\n" +"現在、2つの目標があります。最初の目標を証明すると、次の目標に進みます。\n" +"この最初の目標は基本ケース §0 です。\n" "\n" -"型 §1 の項は、2 つの自然数が等しいか異なるかを判定するアルゴリズムです。したがって、この項が作成され、§2 に変換されると、§3 " -"タクティクは、§4 または §5 のような目標を解決するために使用できます。" +"あなたのインベントリに表示されている任意の補題の証明、または目標の上に表示されている任意の仮定の証明を再利用することができます。ただし、その形式は " +"§1 である必要があります。" -#: Game.Levels.Implication.L04succ_inj -#. §0: `apply` -#. §1: `apply succ_inj at h` -#. §2: `h` -#. §3: `x = 3` +#: Game.Levels.Addition.L01zero_add +#. §0: `0 + «{d}»` +#. §1: `rw [«{hd}»]` msgid "" -"Now let's §0 our new theorem. Execute §1\n" -"to change §2 to a proof of §3." -msgstr "それでは、新しい定理を §0 しましょう。§1 を実行することで、`§2` を `§3` の証明に変換します。" +"At this point you see the term §0, so you can use the\n" +"induction hypothesis with §1." +msgstr "現在、項§0が表示されているため、項§1を用いて帰納法の仮定を適用できます。" -#: Game.Levels.Tutorial.L02rw -#. §0: `repeat t` -#. §1: `t` -#. §2: `repeat rw [add_zero]` -#. §3: `a + 0 + (0 + (0 + 0)) = b + 0 + 0` -#. §4: `a = b` -#. §5: `h : X = Y` -#. §6: `X` -#. §7: `nth_rewrite 3 [h]` -#. §8: `X` -#. §9: `Y` -#. §10: `2 + 2 = 4` -#. §11: `nth_rewrite 2 [two_eq_succ_one]` -#. §12: `2 + succ 1 = 4` -#. §13: `rw [two_eq_succ_one]` -#. §14: `succ 1 + succ 1 = 4` +#: Game.Levels.Addition.L01zero_add +#. §0: `n` +#. §1: `induction n with d hd` msgid "" -"## Summary\n" -"\n" -"§0 repeatedly applies the tactic §1\n" -"to the goal. You don't need to use this\n" -"tactic, it just speeds things up sometimes.\n" -"\n" -"## Example\n" -"\n" -"§2 will turn the goal\n" -"§3\n" -"into the goal\n" -"§4.\n" -"\"\n" -"\n" -"TacticDoc nth_rewrite \"\n" -"## Summary\n" -"\n" -"If §5 and there are several §6s in the goal, then\n" -"§7 will just change the third §8 to a §9.\n" -"\n" -"## Example\n" -"\n" -"If the goal is §10 then §11\n" -"will change the goal to §12. In contrast, §13\n" -"will change the goal to §14." +"You can start a proof by induction on §0 by typing:\n" +"§1." msgstr "" -"## 概要\n" -"\n" -"§0 は、目標に対して §1 のタクティクを繰り返し適用します。このタクティクは必須ではありませんが、場合によっては処理を高速化できます。\n" -"\n" -"## 例\n" -"\n" -"§2 は目標\n" -"§3\n" -"を §4 に書き換えます。\n" -"\n" -"---\n" -"\n" -"## 概要\n" -"\n" -"§5 が成り立つ場合に、目標に複数の §6 が含まれる場合、§7 は第三の §8 を §9 に変更します。\n" -"\n" -"## 例\n" -"\n" -"目標が §10 の場合、§11 は目標を §12 に変更します。一方、§13 は目標を §14 に変更します。" +"帰納法を用いて§0について証明を開始するには、次のように入力してください。\n" +"§1." -#: Game.Levels.Tutorial.L01rfl -msgid "The rfl tactic" -msgstr "rfl タクティク" +# no-translate +#: Game.Levels.Addition.L01zero_add +msgid "zero_add" +msgstr "zero_add" -#: Game.Levels.Algorithm.L04add_algo3 -#. §0: ``` -#. macro \"simp_add\" : tactic => `(tactic|( -#. simp only [add_assoc, add_left_comm, add_comm])) -#. ``` -#. §1: `simp_add` -#. §2: `simp only [add_assoc, add_left_comm, add_comm]` -#. §3: `simp_add` +#: Game.Levels.Addition.L01zero_add +#. §0: `add_succ` +msgid "Use §0." +msgstr "§0をご利用ください。" + +#: Game.Levels.Addition.L01zero_add +#. §0: `«{hd}» : 0 + «{d}» = «{d}»` +#. §1: `0 + succ «{d}» = succ «{d}»` msgid "" -"You can make your own tactics in Lean.\n" -"This code here\n" -"§0\n" -"was used to create a new tactic §1, which runs\n" -"§2.\n" -"Try running §3 to solve this level!" -msgstr "" -"Leanでは、独自のタクティクを作成できます。\n" -"以下のコード\n" -"§0\n" -"は、§2を実行する、新しいタクティク§1を作成します。\n" -"§3を実行することで、この問題を解決できます!" +"Now for the second goal. Here you have the induction hypothesis\n" +"§0, and you need to prove that §1." +msgstr "では、次の目標に進みます。 ここで示された帰納法の仮定 §0 を用いて、§1 を証明する必要があります。" -#: Game.Levels.LessOrEqual.L10le_one -#. §0: $x \\leq 1$ -#. §1: $x = 0$ -#. §2: $x = 1$ -msgid "If §0 then either §1 or §2." -msgstr "もし §0 が真ならば、§1 または §2 のいずれかが真です。" +#: Game.Levels.Addition.L01zero_add +#. §0: `add_zero` +msgid "try rewriting §0." +msgstr "§0で書き換えてみてください." + +#: Game.Levels.Addition.L01zero_add +#. §0: `x + y = y + x` +#. §1: `add_comm` +#. §2: `add_zero` +#. §3: `zero_add` +#. §4: `add_comm` +#. §5: `x + y = y + x` +msgid "" +"This lemma would have been easy if we had known that §0. That theorem\n" +" is called §1 and it is *true*, but unfortunately its proof *uses* both\n" +" §2 and §3!\n" +"\n" +" Let's continue on our journey to §4, the proof of §5." +msgstr "" +"この補題は、§0を知っていれば簡単に証明できたでしょう。その定理は§1と呼ばれ、**真**ですが、残念ながらその証明には§2と§3の両方が**使用**" +"されています!\n" +"\n" +"次に、§5の証明である§4へと進みましょう。" + +#: Game.Levels.Addition.L02succ_add +#. §0: $a, b$ +#. §1: $ \\operatorname{succ}(a) + b = \\operatorname{succ}(a + b)$ +msgid "" +"For all natural numbers §0, we have\n" +"§1." +msgstr "" +"すべての自然数 0 に対して、\n" +"§1。" + +#: Game.Levels.Addition.L02succ_add +#. §0: `succ a + «{d}»` +#. §1: `(succ a) + «{d}»` +#. §2: `succ` +msgid "" +"Note that §0 means §1. Put your cursor\n" +"on any §2 in the goal or assumptions to see what exactly it's eating." +msgstr "注: §0 は §1 を意味します。目標または前提条件内の任意の §2 にカーソルを置くと、実際にどのようなものを参照しているかを確認できます。" # no-translate #: Game.Levels.Addition.L02succ_add msgid "succ_add" msgstr "succ_add" -#: Game.Levels.Algorithm.L02add_algo1 +#: Game.Levels.Addition.L02succ_add #. §0: `add_comm` -#. §1: `b` -#. §2: `d` -msgid "Finally use a targeted §0 to switch §1 and §2." -msgstr "最後に、§0 を使用して §1 と §2 を切り替えます。" - -#: Game.Levels.LessOrEqual.L11le_two -#. §0: `≤` -msgid "" -"Nice!\n" -"\n" -"The next step in the development of order theory is to develop\n" -"the theory of the interplay between §0 and multiplication.\n" -"If you've already done Multiplication World, you're now ready for\n" -"Advanced Multiplication World. Click on \"Home\" to access it." -msgstr "" -"素晴らしい!\n" -"\n" -"順序理論の開発における次のステップは、§0" -"と乗算の相互作用に関する理論を発展させることです。すでに「乗算ワールド」を学習済みの場合、現在では「高度な乗算ワールド」に進むことができます。「ホーム」" -"をクリックしてアクセスしてください。" - -#: Game.Levels.Implication.L02exact2 -#. §0: `rw [zero_add] at «{h}»` -#. §1: `zero_add` -#. §2: `«{x}»` -#. §3: `0 + «{x}»` -#. §4: `0 + «{y}»` +#. §1: `succ_add` +#. §2: `succ_add a b` +#. §3: `(succ a) + b = succ (a + b)` +#. §4: `a` +#. §5: `b` +#. §6: `x + y = y + x` +#. §7: `b` +#. §8: `b = 0` +#. §9: `b` msgid "" -"Do that again!\n" -"\n" -"§0 tries to fill in\n" -"the arguments to §1 (finding §2) then it replaces all occurrences of\n" -"§3 it finds. Therefor, it did not rewrite §4, yet." +"Oh no! On the way to §0, a wild §1 appears. §2\n" +"is the proof that §3 for §4 and §5 numbers.\n" +"This result is what's standing in the way of §6. Again\n" +"we have the problem that we are adding §7 to things, so we need\n" +"to use induction to split into the cases where §8 and §9 is a successor." msgstr "" -"再度実行してみてください。\n" -"\n" -"§0は、§1の引数を埋める(§2を見つけます)ことを試みます。その後、見つかったすべての§3を置換します。したがって、§4はまだ書き換えられていません。" +"大変! §0 に向かう途中、野生の §1 が現れました。 §2 は、§3 が §4 と §5 の数値に対して成り立つことを証明しています。この結果が " +"§6 を達成するのを妨げています。さらに、私たちは §7 を何かに加算しているため、§8 と §9 が後者である場合に帰納法を用いる必要があります。" -#: Game.Levels.Multiplication.L07mul_add +#: Game.Levels.Addition.L02succ_add #. §0: `a` #. §1: `b` -#. §2: `c` msgid "" -"Induction on §0 is the most troublesome, then §1,\n" -"and §2 is the easiest." -msgstr "帰納法における§0のケースが最も困難であり、次に§1、そして§2が最も容易です。" +"You might want to think about whether induction\n" +"on §0 or §1 is the best idea." +msgstr "推論を行う際に、§0 または §1 に対する再帰的なアプローチが最適かどうかを検討する必要があります。" -# no-translate -#: Game.Levels.Tutorial.L05add_zero Game.Levels.Tutorial.L06add_zero2 -#: Game.Levels.Power.L01zero_pow_zero Game.Levels.Algorithm.L09decide2 -#: Game.Levels.AdvAddition.L03add_left_eq_self -#. §0: $a+(b+0)+(c+0)=a+b+c.$ -msgid "§0" -msgstr "§0" +#: Game.Levels.Addition.L02succ_add Game.Levels.Multiplication.L08add_mul +#: Game.Levels.Power.L04one_pow Game.Levels.Implication.L10one_ne_zero +#: Game.Levels.Algorithm.L01add_left_comm Game.Levels.LessOrEqual.L02zero_le +#: Game.Levels.LessOrEqual.L03le_succ_self +#: Game.Levels.AdvMultiplication.L01mul_le_mul_right +#: Game.Levels.AdvMultiplication.L02mul_left_ne_zero +#: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero +#: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero +#: Game.Levels.AdvMultiplication.L06mul_right_eq_one +#. §0: `succ_add a b` +#. §1: `succ a + b = succ (a + b)` +msgid "§0 is a proof that §1." +msgstr "§0 は、§1 の証明を示します。" -#: Game.Levels.Implication.L11two_add_two_ne_five -#. §0: `zero_ne_succ` -#. §1: `succ_inj` +#: Game.Levels.Addition.L02succ_add +msgid "Well done! You now have enough tools to tackle the main boss of this level." +msgstr "よくできました!これで、このレベルのメインボスに対抗するための十分なツールが揃いました。" + +#: Game.Levels.Addition.L03add_comm +#. §0: `a` +#. §1: `b` +msgid "Induction on §0 or §1 -- it's all the same in this one." +msgstr "帰納法を適用して、§0または§1に対して -- どちらの場合でも結果は同じです。" + +#: Game.Levels.Addition.L03add_comm +#. §0: `a` +#. §1: `b` +#. §2: $a + b = b + a$ msgid "" -"2 + 2 ≠ 5 is boring to prove in full, given only the tools we have " -"currently.\n" -"To make it a bit less painful, I have unfolded all of the numerals for you.\n" -"See if you can use §0 and §1 to prove this." +"On the set of natural numbers, addition is commutative.\n" +"In other words, if §0 and §1 are arbitrary natural numbers, then\n" +"§2." msgstr "" -"現在のツールだけでは、2 + 2 ≠ 5 の完全な証明は困難です。\n" -"より簡単に証明できるよう、すべての数字を展開しました。\n" -"§0 および §1 を使用して、この証明を試みてください。" +"自然数全体の集合においては、加算は交換法則を満たす。\n" +"すなわち、任意の自然数 §0 と §1 が与えられたとき、\n" +"§2." -#: Game.Levels.LessOrEqual.L08le_total -#. §0: $x$ -#. §1: $y$ -#. §2: $x \\leq y$ -#. §3: $y \\leq x$ -msgid "If §0 and §1 are numbers, then either §2 or §3." -msgstr "数値である§0と§1の場合、§2または§3のいずれかが真となる。" +#: Game.Levels.Addition.L03add_comm +msgid "add_comm (level boss)" +msgstr "add_comm (レベルボス)" -#: Game.Levels.LessOrEqual -#. §0: `a ≤ b` -#. §1: `a ≤ b` -#. §2: `b ≤ c` -#. §3: `a ≤ c` -#. §4: `a ≤ b` -#. §5: `c` -#. §6: `b = a + c` +#: Game.Levels.Addition.L03add_comm msgid "" -"In this world we define §0 and prove standard facts\n" -"about it, such as \"if §1 and §2 then §3.\"\n" -"\n" -"The definition of §4 is \"there exists a number §5\n" -"such that §6. \" So we're going to have to learn\n" -"a tactic to prove \"exists\" theorems, and another one\n" -"to use \"exists\" hypotheses.\n" +"[boss battle music]\n" "\n" -"Click on \"Start\" to proceed." +"Look in your inventory to see the proofs you have available.\n" +"These should be enough." msgstr "" -"このワールドで §0 を定義し、その標準的な事実を証明します。例えば、「§1 と §2 が成り立つならば §3 が成り立つ」などです。\n" -"\n" -"§4 の定義は「ある数 §5 が存在して、§6 " -"が成り立つ」です。そのため、「存在」に関する定理を証明するタクティクと、「存在」に関する仮定を使うタクティクを学ぶ必要があります。\n" +"[ボスバトル音楽]\n" "\n" -"\"開始\" をクリックして進みましょう。" - -#: Game.Levels.Power.L06pow_add Game.Levels.Power.L07mul_pow -#: Game.Levels.Power.L08pow_pow -#. §0: $a$ -#. §1: $m$ -#. §2: $n$ -#. §3: $a^{m + n} = a ^ m a ^ n$ -msgid "For all naturals §0, §1, §2, we have §3." -msgstr "すべての自然数 §0, §1, §2 に対して、 §3 が成り立ちます。" - -# no-translate -#: Game.Levels.AdvMultiplication.L09mul_left_cancel -msgid "mul_left_cancel" -msgstr "mul_left_cancel" +"あなたのインベントリを確認し、利用可能な証明を確認してください。\n" +"これらで十分であるはずです。" -#: Game.Levels.AdvAddition.L06add_left_eq_zero +#: Game.Levels.Addition.L04add_assoc +#. §0: `a + b + c` +#. §1: `(a + b) + c` +#. §2: `+` msgid "" -"You can just mimic the previous proof to do this one -- or you can figure " -"out a way\n" -"of using it." +"Remember that when Lean writes §0, it means §1.\n" +"If you are not sure where the brackets are in an expression, just hover\n" +"your cursor over it and look at what gets highlighted. For example,\n" +"hover over both §2 symbols on the left hand side of the goal and\n" +"you'll see where the invisible brackets are." msgstr "" -"前の証明の手順を参考に、同様の方法でこの証明を行うことができます。\n" -"-- または、それを活用するための別の手段を見つけることも可能です。" +"Leanにおいて「§0」と表示された場合、「§1" +"」を意味することを覚えておいてください。もし式内の括弧の位置が不明な場合は、カーソルをその位置にホバーして表示されるハイライトを確認してください。例えば" +"、目標の左側の両方の「§2」をホバーすると、見えない括弧の位置がわかります。" -#: Game.Levels.Tutorial.L03two_eq_ss0 -#. §0: `0` -#. §1: `n` -#. §2: `succ n` -#. §3: `n` -#. §4: `n` -#. §5: `n` -#. §6: `0` -#. §7: `succ 0` -#. §8: `1` -#. §9: `2 = succ 1` -#. §10: `3 = succ 2` -#. §11: `4 = succ 3` -#. §12: `2 = succ 1` -#. §13: `two_eq_succ_one` -#. §14: $2$ +#: Game.Levels.Addition.L04add_assoc +#. §0: `add_assoc` +#. §1: `add_comm` msgid "" -"## The birth of number.\n" +"A passing mathematician congratulates you on proving that naturals\n" +"are an additive commutative monoid.\n" "\n" -"Numbers in Lean are defined by two rules.\n" +"Let's practice using §0 and §1 in one more level,\n" +"before we leave addition world." +msgstr "" +"「自然数の加法的交換半群であることの証明」に際し、通りすがりの数学者がお祝いの言葉を述べます。\n" "\n" -"* §0 is a number.\n" -"* If §1 is a number, then the *successor* §2 of §3 is a number.\n" -"\n" -"The successor of §4 means the number after §5. Let's learn to\n" -"count, and name a few small numbers.\n" -"\n" -"## Counting to four.\n" +"加算に関する概念を理解するため、§0 と §1 の使い方をもう一度練習しましょう。" + +#: Game.Levels.Addition.L04add_assoc +#. §0: $x+y+z$ +#. §1: $(x+y)+z$ +#. §2: $x+(y+z)$ +#. §3: $x+y+z$ +#. §4: $(x+y)+z$ +#. §5: $(x+y)+z$ +#. §6: $x+(y+z)$ +msgid "" +"We've been adding up two numbers; in this level we will add up three.\n" "\n" -"§6 is a number, so §7 is a number. Let's call this new number §8.\n" -"Similarly let's define §9, §10 and §11.\n" -"This gives us plenty of numbers to be getting along with.\n" +" What does §0 *mean*? It could either mean §1, or it\n" +" could mean §2. In Lean, §3 means §4.\n" "\n" -"The *proof* that §12 is called §13.\n" -"Check out the \"012\" tab in the list of lemmas on the right\n" -"for this and other proofs.\n" +" But why do we care which one it means; §5 and §6 are *equal*!\n" "\n" -"Let's prove that §14 is the number after the number after zero." +" That's true, but we didn't prove it yet. Let's prove it now by induction." msgstr "" -"## 数字の誕生。\n" -"\n" -"Leanにおける数字は、以下の2つのルールで定義されます。\n" -"\n" -"* §0 は数字です。\n" -"* もし §1 が数字ならば、§3 の *後続* §2 も数字です。\n" -"\n" -"§4 の「後続」とは、§5 の次の数字を意味します。数を数えることと、いくつかの小さな数字の名前を学びましょう。\n" -"\n" -"## 4まで数える。\n" +"二つの数を足し合わせる練習をしてきました。このレベルでは、三つの数を足し合わせます。\n" "\n" -"§6 は数字なので、§7 も数字です。この新しい数字を §8 と呼びましょう。同様に §9, §10, §11 " -"を定義します。これで十分な数を手に入れることができます。\n" +" §0 は何を意味するのでしょうか?それは §1 または §2 のどちらかです。Lean では、§3 と §4 は同じ意味になります。\n" "\n" -"§12 が数字であることを示す *証明* §13 があります。証明リストの右側の「012」タブを確認してください。\n" +" しかし、どの意味を持つべきかを気にする必要はありません。なぜなら、§5 と §6 は *等しい* からです!\n" "\n" -"次に、0の後ろの後ろの数字である §14 を証明しましょう。" +" その通りですが、まだ証明していません。帰納法(`inducution`)でを用いて証明しましょう。" -#: Game.Levels.Implication.L04succ_inj -#. §0: `rw [← succ_eq_add_one] at h` -msgid "Concretely: §0." -msgstr "具体的に:§0。" +#: Game.Levels.Addition.L04add_assoc +msgid "add_assoc (associativity of addition)" +msgstr "add_assoc (加法に関する結合法則)" -#: Game.Levels.Power.L01zero_pow_zero -#. §0: `pow_zero a : a ^ 0 = 1` +#: Game.Levels.Addition.L04add_assoc +#. §0: `add_assoc a b c` +#. §1: `(a + b) + c = a + (b + c)` +#. §2: `(a + b) + c` +#. §3: `a + b + c` msgid "" -"§0 is one of the two axioms\n" -"defining exponentiation in this game." -msgstr "§0は、このゲームにおける指数関数の定義を定める公理のうちの1つです。" +"§0 is a proof\n" +"that §1. Note that in Lean §2 prints\n" +"as §3, because the notation for addition is defined to be left\n" +"associative." +msgstr "" +"§0 は §1 の証明です。\n" +"Lean では、加算の演算が左結合的に定義されているため、§2 は §3 として表示されます。" + +#: Game.Levels.Addition.L04add_assoc +#. §0: $a, b$ +#. §1: $c$ +#. §2: $ (a + b) + c = a + (b + c). $ +msgid "" +"On the set of natural numbers, addition is associative.\n" +"In other words, if §0 and §1 are arbitrary natural numbers, we have\n" +"§2" +msgstr "" +"自然数全体の集合においては、加算は結合法則に従います。\n" +"言い換えれば、任意の自然数 §0 と §1 が与えられたとき、以下の関係が成り立ちます。\n" +"§2" + +#: Game.Levels.Addition.L05add_right_comm +#. §0: `add_right_comm a b c` +#. §1: `(a + b) + c = (a + c) + b` +#. §2: `a + b + c` +#. §3: `(a + b) + c` +#. §4: `a + b + c = a + c + b` +msgid "" +"§0 is a proof that §1\n" +"\n" +"In Lean, §2 means §3, so this result gets displayed\n" +"as §4." +msgstr "" +"§0 は §1 の証明を示す\n" +"\n" +"Lean において、§2 は §3 を意味するため、この結果は §4 として表示されます。" #: Game.Levels.Addition.L05add_right_comm #. §0: $a, b$ @@ -2360,1773 +1935,2148 @@ msgstr "" "任意の自然数§0と§1について、以下の関係が成立します。\n" "§2。" -#: Game.Levels.AdvMultiplication.L10mul_right_eq_self -msgid "" -"The lemma proved in the final level of this world will be helpful\n" -"in Divisibility World." -msgstr "最終段階で証明された定理は、整除ワールドの問題を解決する上で役立ちます。" +# no-translate +#: Game.Levels.Addition.L05add_right_comm +msgid "add_right_comm" +msgstr "add_right_comm" -#: Game.Levels.Power.L03pow_one -#. §0: `pow_one a` -#. §1: `a ^ 1 = a` -#. §2: `a ^ 1` -#. §3: `a ^ 0 * a` -#. §4: `1 * a` -#. §5: `a` +#: Game.Levels.Addition.L05add_right_comm +#. §0: `add_comm b c` +#. §1: `b + c = c + b` +#. §2: `a + b + c = a + c + b` +#. §3: `rw [add_comm b c]` +#. §4: `(a + b) + c = (a + c) + b` +#. §5: `b + c` +#. §6: `add_right_comm` +#. §7: `add_assoc` +#. §8: `add_comm` +#. §9: `rw [add_comm b]` +#. §10: `b + ? = ? + b` +#. §11: `rw [add_comm b c]` +#. §12: `b + c = c + b` msgid "" -"§0 says that §1.\n" +"§0 is a proof that §1. But if your goal\n" +"is §2 then §3 will not\n" +"work! Because the goal means §4 so there\n" +"is no §5 term *directly* in the goal.\n" "\n" -"Note that this is not quite true by definition: §2 is\n" -"defined to be §3 so it's §4, and to prove\n" -"that this is equal to §5 you need to use induction somewhere." +"Use associativity and commutativity to prove §6.\n" +"You don't need induction. §7 moves brackets around,\n" +"and §8 moves variables around.\n" +"\n" +"Remember that you can do more targeted rewrites by\n" +"adding explicit variables as inputs to theorems. For example §9\n" +"will only do rewrites of the form §10, and §11\n" +"will only do rewrites of the form §12." msgstr "" -"§0 は §1 を意味します。\n" +"§0 は §1 の証明です。しかし、あなたの目標が §2 である場合、§3 は機能しません!なぜなら、目標は §4 を意味し、目標に直接的に §5 " +"の項が存在しないからです。\n" "\n" -"ただし、これは定義によるものではありません:§2 は §3 と定義されているため、§4 " -"となり、これらが等しいことを証明するためには、どこかで数学的帰納法を用いる必要があります。" +"結びつきと交換律を利用して、§6 を証明してください。帰納法は不要です。§7 は括弧の配置を変更し、§8 は変数の配置を変更します。\n" +"\n" +"明示的な変数を用意することで、より的確な書き換えを行うことができます。例えば、§9 は形式 §10 の書き換えのみを実行し、§11 は形式 §12 " +"の書き換えのみを実行します。" -#: Game.Levels.AdvAddition.L04add_right_eq_self -#. §0: `add_right_eq_self x y` -#. §1: $x + y = x\\implies y=0.$ +#: Game.Levels.Addition.L05add_right_comm +#. §0: `a = 0` +#. §1: `x + a = x` msgid "" -"§0 is the theorem that §1\n" -"Two ways to do it spring to mind; I'll mention them when you've solved it." +"You've now seen all the tactics you need to beat the final boss of the " +"game.\n" +"You can begin the journey towards this boss by entering Multiplication " +"World.\n" +"\n" +"Or you can go off the beaten track and learn some new tactics in " +"Implication\n" +"World. These tactics let you prove more facts about addition, such as\n" +"how to deduce §0 from §1.\n" +"\n" +"Click \"Home\" and make your choice." msgstr "" -"§0 は、§1 を証明する定理です。\n" -"この証明方法は2つ考えられますが、あなたが解決された後に説明します。" +"ゲームの最終ボスを倒すためのすべてのタクティクを習得しました。\n" +"この最終ボスの攻略を目指すには、乗算ワールドへ進んでください。\n" +"\n" +"あるいは、含意ワールドで新たなタクティクを学ぶことも可能です。\n" +"これらのタクティクを用いることで、加算に関するより多くの事実を証明できます。\n" +"例えば、§1から§0を導出する方法を学ぶことができます。\n" +"\n" +"「ホーム」をクリックして選択してください。" -#: Game.Levels.Algorithm -#. §0: $2+2=4$ -#. §1: $a+b+c+d+e=e+d+c+b+a$ +#: Game.Levels.Multiplication +msgid "Multiplication World" +msgstr "乗算ワールド" + +#: Game.Levels.Multiplication +#. §0: `37 * x` +#. §1: $x=0$ +#. §2: $x$ +#. §3: `37 * 0` +#. §4: `0` +#. §5: `37 * d` +#. §6: `37 * succ d` +#. §7: $(d+1)$ +#. §8: $37$ +#. §9: `37 * d + 37` +#. §10: `mul_zero a : a * 0 = 0` +#. §11: `mul_succ a d : a * succ d = a * d + a` +#. §12: `a * b = b * a` +#. §13: `a * (b + c) = a * b + a * c` msgid "" -"Proofs like §0 and §1 are very tedious to do by hand.\n" -"In Algorithm World we learn how to get the computer to do them for us.\n" +"How should we define §0? Just like addition, we need to give definitions\n" +"when §1 and when §2 is a successor.\n" "\n" -"Click on \"Start\" to proceed." +"The zero case is easy: we define §3 to be §4. Now say we know\n" +"§5. What should §6 be? Well, that's §7 §8s,\n" +"so it should be §9.\n" +"\n" +"Here are the definitions in Lean.\n" +"\n" +" * §10\n" +" * §11\n" +"\n" +"In this world, we must not only prove facts about multiplication like §12,\n" +"we must also prove facts about how multiplication interacts with addition, " +"like §13.\n" +"Let's get started." msgstr "" -"手作業での証明、例えば §0 や §1 のようなものは、非常に手間がかかります。\n" -"アルゴリズムワールドでは、コンピュータにこれらの計算を委ねる方法を学習します。\n" +"どのように §0 を定義すべきでしょうか?加法と同様に、§1 であるときと §2 が successor " +"であるときそれぞれに定義を提供する必要があります。\n" "\n" -"「開始」ボタンをクリックして、次のステップに進んでください。" +"ゼロの場合は簡単です:§3 を §4 で定義します。次に §5 を仮定します。§6 のときはどうでしょうか?そうですね、§7 §8 になるので、\n" +"§9になるべきでしょう。\n" +"\n" +"Lean での定義は以下の通りです。\n" +"\n" +" * §10\n" +" * §11\n" +"\n" +"このワールドでは、乗法に関する事実だけでなく、乗法と加法の相互作用に関する事実も証明する必要があります。例えば §12 など。そして §13 " +"なども証明する必要があります。\n" +"始めましょう。" -#: Game.Levels.Implication.L02exact2 -msgid "" -"If the goal is not *exactly* a hypothesis, we can sometimes\n" -"use rewrites to fix things up." -msgstr "目標が *厳密な* 仮説ではない場合、書き換えを利用して問題を解決できることがあります。" +# no-translate +#: Game.Levels.Multiplication.L01mul_one +msgid "mul_one" +msgstr "mul_one" -#: Game.Levels.Algorithm.L06is_zero +#: Game.Levels.Multiplication.L01mul_one +#. §0: `Mul a b` +#. §1: `a * b` +#. §2: `mul_zero a : a * 0 = 0` +#. §3: `mul_succ a b : a * succ b = a * b + a` +#. §4: `zero_mul` msgid "" -"See if you can take it from here. Look at the new lemmas and tactic\n" -"available on the right." -msgstr "右側に表示された、新たに定義された補題とタクティクをご利用ください。" +"§0, with notation §1, is the usual\n" +" product of natural numbers. Internally it is\n" +" via two axioms:\n" +"\n" +" * §2\n" +"\n" +" * §3\n" +"\n" +"Other theorems about naturals, such as §4,\n" +"are proved by induction from these two basic theorems." +msgstr "" +"§1 で表記される §0 は、自然数の積を表す一般的な概念です。内部的には、以下の2つの公理を用いて定義されます:\n" +"\n" +"* §2\n" +"\n" +"* §3\n" +"\n" +"また、§4のような他の自然数に関する定理は、これらの基本定理から帰納法によって証明されます。" -#: Game.Levels.Algorithm.L02add_algo1 -#. §0: `rw [add_left_comm b c]` -#. §1: `b` -#. §2: `c` +#: Game.Levels.Multiplication.L01mul_one +#. §0: `mul_zero` +#. §1: `mul_succ` +#. §2: `1` msgid "" -"Now use §0 to switch §1 and §2 on the left\n" -"hand side." -msgstr "§0 を使用して左側の §1 と §2 の位置を入れ替えます。" +"See the new \"*\" tab in your lemmas, containing §0 and §1.\n" +"Right now these are the only facts we know about multiplication.\n" +"Let's prove nine more.\n" +"\n" +"Let's start with a warm-up: no induction needed for this one,\n" +"because we know §2 is a successor." +msgstr "" +"新しい「*」タブを確認してください。このタブには、§0 と §1 が表示されます。\n" +"現在、これらは乗算に関する唯一の既知的事実です。\n" +"それでは、さらに9つの定理を証明しましょう。\n" +"\n" +"まずは簡単な例から始めましょう。この場合は、帰納法は不要です。\n" +"なぜなら、§2 は後者であるためです。" -#: Game.Levels.Implication -msgid "Implication World" -msgstr "含意ワールド" +#: Game.Levels.Multiplication.L01mul_one Game.Levels.Multiplication.L05one_mul +#: Game.Levels.Multiplication.L06two_mul +#. §0: $m$ +#. §1: $ m \\times 1 = m$ +msgid "For any natural number §0, we have §1." +msgstr "任意の自然数 §0 に対しては、§1 が成り立ちます。" -#: Game.Levels.Tutorial.L06add_zero2 -#. §0: `add_succ` -msgid "Let's now learn about Peano's second axiom for addition, §0." -msgstr "それでは、ペアノの加法の第2の公理、§0 について学びましょう。" +#: Game.Levels.Multiplication.L02zero_mul +#. §0: `zero_mul x` +#. §1: `0 * x = 0` +#. §2: `zero_mul` +#. §3: `simp` +msgid "" +"§0 is the proof that §1.\n" +"\n" +"Note: §2 is a §3 lemma." +msgstr "" +"§0 は、§1 の証明を示します。\n" +"\n" +"注:§2 は、§3 の補題です。" -#: Game.Levels.Algorithm.L03add_algo2 Game.Levels.Algorithm.L04add_algo3 -#. §0: $a, b,\\ldots h$ -#. §1: $(d + f) + (h + (a + c)) + (g + e + b) = a + b + c + d + e + f + g + h$ +#: Game.Levels.Multiplication.L02zero_mul +#. §0: `mul_comm x y : x * y = y * x` +#. §1: `mul_zero` +#. §2: `zero_mul` msgid "" -"If §0 are arbitrary natural numbers, we have\n" -"§1." +"Our first challenge is §0,\n" +"and we want to prove it by induction. The zero\n" +"case will need §1 (which we have)\n" +"and §2 (which we don't), so let's\n" +"start with this." msgstr "" -"任意の自然数§0について、\n" -"§1。" +"最初の課題は§0ですが、帰納法を用いて証明します。\n" +"ゼロの場合には§1(定義済み)と§2(定義されていません)が必要です。まずはこの部分から取り組みます。" -#: Game.Levels.Algorithm.L08decide -#. §0: ``` -#. instance instDecidableEq : DecidableEq ℕ -#. | 0, 0 => isTrue <| by -#. show 0 = 0 -#. rfl -#. | succ m, 0 => isFalse <| by -#. show succ m ≠ 0 -#. exact succ_ne_zero m -#. | 0, succ n => isFalse <| by -#. show 0 ≠ succ n -#. exact zero_ne_succ n -#. | succ m, succ n => -#. match instDecidableEq m n with -#. | isTrue (h : m = n) => isTrue <| by -#. show succ m = succ n -#. rw [h] -#. rfl -#. | isFalse (h : m ≠ n) => isFalse <| by -#. show succ m ≠ succ n -#. exact succ_ne_succ m n h -#. ``` -#. §1: `decide` +# no-translate +#: Game.Levels.Multiplication.L02zero_mul +msgid "zero_mul" +msgstr "zero_mul" + +#: Game.Levels.Multiplication.L03succ_mul +#. §0: $a$ +#. §1: $b$ +#. §2: $(\\operatorname{succ}\\ a) \\times b = a\\times b + b$ msgid "" -"Implementing the algorithm for equality of naturals, and the proof that it " -"is correct,\n" -"looks like this:\n" -"\n" -"§0\n" -"\n" -"This Lean code is a formally verified algorithm for deciding equality\n" -"between two naturals. I've typed it in already, behind the scenes.\n" -"Because the algorithm is formally verified to be correct, we can\n" -"use it in Lean proofs. You can run the algorithm with the §1 tactic." +"For all natural numbers §0 and §1, we have\n" +"§2." msgstr "" -"自然数の等価性アルゴリズムの実装とその正当性の証明は、以下のとおりです:\n" -"\n" -"§0\n" -"\n" -"このLeanコードは、二つの自然数間の等価性を決定する形式的に検証されたアルゴリズムです。私たちは既にこのコードをバックグラウンドで入力しています。アル" -"ゴリズムが形式的に正確であることを保証しているため、Leanの証明内で使用できます。「§1」タクティクを使用してアルゴリズムを実行できます。" +"すべての自然数 §0 と §1 について、\n" +"§2。" -#: Game.Levels.Implication.L06intro -#. §0: `P → Q` -#. §1: `intro h` -#. §2: `h : P` -#. §3: `Q` -#. §4: $P \\implies Q$ -#. §5: $P$ -#. §6: $Q$ -#. §7: `x + 1 = y + 1 → x = y` -#. §8: $x+1=y+1 \\implies x=y$ -#. §9: `intro h` -#. §10: $x+1=y+1$ -#. §11: `h` -#. §12: $x=y$ +#: Game.Levels.Multiplication.L03succ_mul +#. §0: `mul_succ` +#. §1: `succ_mul` msgid "" -"## Summary\n" +"Similarly we have §0\n" +"but we're going to need §1 (guess what it says -- maybe you\n" +"are getting the hang of Lean's naming conventions).\n" "\n" -"If the goal is §0, then §1 will introduce §2 as a hypothesis,\n" -"and change the goal to §3. Mathematically, it says that to prove §4,\n" -"we can assume §5 and then prove §6.\n" +"The last level from addition world might help you in this level.\n" +"If you can't remember what it is, you can go back to the\n" +"home screen by clicking the house icon and then taking a look.\n" +"You won't lose any progress." +msgstr "" +"同様に §0 もありますが、§1 が必要です (内容を推測してみてください。Lean の命名規則をご理解いただけているかもしれません)。\n" "\n" -"### Example:\n" +"加算ワールドの最後のレベルが、このレベルを攻略するのに役立つ可能性があります。もし内容を忘れてしまった場合は、ホーム画面に戻るためにアイコンをクリックし" +"てください。進捗は失われません。" + +# no-translate +#: Game.Levels.Multiplication.L03succ_mul +msgid "succ_mul" +msgstr "succ_mul" + +#: Game.Levels.Multiplication.L03succ_mul +#. §0: `succ_mul a b` +#. §1: `succ a * b = a * b + b` +#. §2: `mul_succ` +#. §3: `mul_comm` +#. §4: `mul_comm` +#. §5: `mul_succ` +msgid "" +"§0 is the proof that §1.\n" "\n" -"If your goal is §7 (the way Lean writes §8)\n" -"then §9 will give you a hypothesis §10 named §11, and the goal\n" -"will change to §12." +"It could be deduced from §2 and §3, however this argument\n" +"would be circular because the proof of §4 uses §5." msgstr "" -"## 概要\n" +"§0 は §1 の証明を示します。\n" "\n" -"もし目標が§0である場合、§1は§2を仮定として導入し、目標を§3に変更します。数学的には、§4の証明のために、§5を仮定し、その後§6" -"を証明すればよいということです。\n" +"ただし、これは §2 と §3 から導出可能ですが、この議論は循環しており、§4 の証明において §5 が使用されているためです。" + +#: Game.Levels.Multiplication.L04mul_comm +#. §0: `mul_comm x y : x * y = y * x` +#. §1: `zero_mul` +#. §2: `mul_zero` +msgid "" +"The first sub-boss of Multiplication World is §0.\n" "\n" -"### 例:\n" +"When you've proved this theorem we will have \"spare\" proofs\n" +"such as §1, which is now easily deducible from §2.\n" +"But we'll keep hold of these proofs anyway, because it's convenient\n" +"to have exactly the right tool for a job." +msgstr "" +"乗算ワールドの最初のサブボスは§0です。\n" "\n" -"もし目標が§7(Leanで記述された§8)である場合、§9は§10という名前の仮定§11を導入し、目標は§12に変更されます。" - -#: Game.Levels.Tutorial.L05add_zero -#. §0: `rw [add_zero]` -#. §1: `b + 0` -#. §2: `b` -msgid "§0 will change §1 into §2." -msgstr "§0 は §1 を §2 に変換します。" +"この定理を証明すると、「余剰」な証明が得られます。\n" +"例えば、§2から容易に導かれる§1があります。\n" +"ただし、これらの証明は保持しておきます。\n" +"特定のタスクに適した道具を手元に置いておくためです。" -#: Game.Levels.Implication.L03apply -#. §0: `apply h2 at h1` -#. §1: `h1` -#. §2: `y = 42` -msgid "Start with §0. This will change §1 to §2." -msgstr "§0から開始します。これにより、§1は§2に変わります。" +# no-translate +#: Game.Levels.Multiplication.L04mul_comm +msgid "mul_comm" +msgstr "mul_comm" -#: Game.Levels.Tutorial.L07add_succ -msgid "[dramatic music]. Now are you ready to face the first boss of the game?" -msgstr "[壮大なBGMが流れる]. 続いて、ゲームの最初のボスとの戦闘に備えましょう。" +#: Game.Levels.Multiplication.L04mul_comm +msgid "Multiplication is commutative." +msgstr "乗算は交換律を満たします。" -#: Game.Levels.AdvAddition -#. §0: $x+y=x\\implies y=0$ -#. §1: `≤` +#: Game.Levels.Multiplication.L04mul_comm +#. §0: `mul_comm` +#. §1: `mul_comm a b` +#. §2: `a * b = b * a` msgid "" -"In Advanced Addition World we will prove some basic\n" -"addition facts such as §0. The theorems\n" -"proved in this world will be used to build\n" -"a theory of inequalities in §1 World.\n" -"\n" -"Click on \"Start\" to proceed." +"§0 is the proof that multiplication is commutative. More precisely,\n" +"§1 is the proof that §2." msgstr "" -"高度な加算ワールドでは、基本的な加法に関するいくつかの事実(§0)の証明を行います。このワールドで証明される定理は、§1" -"ワールドで不等式の理論を構築するために使用されます。\n" -"\n" -"「開始」をクリックして進んでください。" +"§0 は、乗算における交換法則の成立を示す証明です。より具体的には、\n" +"§1 は、§2 が交換法則を満たすことを示す証明です。" -#: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero -#. §0: `tauto` -#. §1: `tauto` -#. §2: `add_zero` -#. §3: `tauto` -#. §4: `a = a` -#. §5: `0 ≠ 1` -#. §6: `0 ≠ 2` -#. §7: `1 ≠ 2` -#. §8: `tauto` -#. §9: `x < 37` -#. §10: `x < 37 → y + z = 42` -#. §11: `y + z = 42` -#. §12: `tauto` -#. §13: `False` -#. §14: `tauto` -#. §15: `True` -#. §16: `tauto` -#. §17: `h1 : a = 37` -#. §18: `h2 : a ≠ 37` -#. §19: `tauto` -#. §20: `False` -#. §21: `False` -#. §22: `h : a ≠ a` -#. §23: `tauto` -#. §24: `tauto` -#. §25: `a = a` -#. §26: `h : 0 = 1` -#. §27: `tauto` -#. §28: `tauto` -#. §29: `0 ≠ 1` -#. §30: `False` -#. §31: `a = 0 → a * b = 0` -#. §32: `a * b ≠ 0 → a ≠ 0` -#. §33: `tauto` -#. §34: `tauto` +#: Game.Levels.Multiplication.L05one_mul +#. §0: $1\\times m=m$ +#. §1: `succ_mul` msgid "" -"# Summary\n" -"\n" -"The §0 tactic will solve any goal which can be solved purely by logic (that " -"is, by\n" -"truth tables).\n" -"\n" -"## Details\n" -"\n" -"§1 *does not do magic*! It doesn't know *anything* about addition or " -"multiplication,\n" -"it doesn't even know §2. The only things that §3 knows about numbers\n" -"are firstly that §4 and secondly that §5, §6, §7 and so on.\n" -"What §8's strength is, is *logic*. If you have a hypothesis §9\n" -"and another hypothesis §10 and your goal is §11 then §12 will\n" -"solve this goal, because to solve that goal you don't need to know any " -"facts\n" -"about inequalities or addition, all you need to know is the rules of logic.\n" -"\n" -"## Example\n" -"\n" -"If you have §13 as a hypothesis, then §14 will solve\n" -"the goal. This is because a false hypothesis implies any hypothesis.\n" -"\n" -"## Example\n" -"\n" -"If your goal is §15, then §16 will solve the goal.\n" -"\n" -"## Example\n" -"\n" -"If you have two hypotheses §17 and §18 then §19 will\n" -"solve the goal because it can prove §20 from your hypotheses, and thus\n" -"prove the goal (as §21 implies anything).\n" -"\n" -"## Example\n" -"\n" -"If you have one hypothesis §22 then §23 will solve the goal because\n" -"§24 is smart enough to know that §25 is true, which gives the contradiction " -"we seek.\n" -"\n" -"## Example\n" -"\n" -"If you have a hypothesis §26 then §27 will solve the goal, because\n" -"§28 knows §29 and this is enough to prove §30, which implies any goal.\n" -"\n" -"## Example\n" -"\n" -"If you have a hypothesis of the form §31 and your goal is §32, then\n" -"§33 will solve the goal, because the goal is logically equivalent to the " -"hypothesis.\n" -"If you switch the goal and hypothesis in this example, §34 would solve it " -"too." +"You can prove §0 in at least three ways.\n" +"Either by induction, or by using §1, or\n" +"by using commutativity. Which do you think is quickest?" msgstr "" -"# 概要\n" -"\n" -"§0 タクティクは、論理のみを用いて解決できる目標(つまり、真偽表で解決できる目標)を解決します。\n" -"\n" -"## 詳細\n" -"\n" -"§1 は *魔法ではありません*!加算や乗算について何も知りませんし、§2 についても同様です。§3 が数について知っているのは、まず §4 " -"であり、次に §5, §6, §7 などです。§8 の強みは *論理* です。仮定 §9 と仮定 §10 があり、目標が §11 の場合、§12 " -"はこの目標を解決します。なぜなら、目標を解決するには不等式や加算に関する事実を知る必要がなく、必要なのは論理のルールだけです。\n" -"\n" -"## 例\n" -"\n" -"仮定として §13 がある場合、§14 は目標を解決します。これは、偽の仮定は任意の仮定を推論するからです。\n" -"\n" -"## 例\n" -"\n" -"目標が §15 の場合、§16 は目標を解決します。\n" -"\n" -"## 例\n" -"\n" -"仮定が §17 と §18 である場合、§19 は目標を解決します。なぜなら、§19 はあなたの仮定から §20 " -"を証明でき、したがって目標を証明できるからです(§21 は任意のものを推論できます)。\n" -"\n" -"## 例\n" -"\n" -"仮定が §22 である場合、§23 は目標を解決します。なぜなら、§24 は §25 が真であることを知っているので、これは求めている矛盾を与えます。\n" -"\n" -"## 例\n" -"\n" -"仮定が §26 の形式である場合、目標が §32 の場合、§33 " -"は目標を解決します。なぜなら、目標は仮定と論理的に等価であるからです。この例で目標と仮定を入れ替えると、§34 も解決します。\n" -"\n" -"## 例\n" -"\n" -"仮定が §31 の形式であり、目標が §32 の場合、§33 " -"は目標を解決します。なぜなら、目標は仮定と論理的に等価であるからです。この例で目標と仮定を入れ替えると、§34 も解決します。" +"少なくとも3つの方法で§0を証明できます。\n" +"いずれも、帰納法を用いる方法、§1を利用する方法、または交換律を用いる方法です。\n" +"これらのうち、最も効率的な方法はどれだとお考えですか?" -#: Game.Levels.Tutorial.L03two_eq_ss0 -#. §0: `rfl` -msgid "Now finish the job with §0." -msgstr "§0を使って作業を完了してください。" +#: Game.Levels.Multiplication.L05one_mul +#. §0: `one_mul m` +#. §1: `1 * m = m` +msgid "§0 is the proof §1." +msgstr "§0 は §1 の証明を示す。" -#: Game.Levels.AdvMultiplication.L10mul_right_eq_self -#. §0: `nth_rewrite 2 [← mul_one a] at h` -msgid "Reduce to the previous lemma with §0" -msgstr "§0 を使用して、直前の補題に変換します。" +# no-translate +#: Game.Levels.Multiplication.L05one_mul +msgid "one_mul" +msgstr "one_mul" -#: Game.Levels.AdvMultiplication.L05le_mul_right -#. §0: `le_mul_right a b` -#. §1: `a * b ≠ 0 → a ≤ a * b` +#: Game.Levels.Multiplication.L05one_mul Game.Levels.Multiplication.L06two_mul +#. §0: ``` +#. rw [mul_comm, mul_one] +#. rfl +#. ``` msgid "" -"§0 is a proof that §1.\n" -"\n" -"It's one way of saying that a divisor of a positive number\n" -"has to be at most that number." +"Here's my solution:\n" +"§0" msgstr "" -"§0 は §1 の証明です。\n" -"\n" -"これは、正の数の約数はその数以下であることを示す一つの方法です。" +"私の解決策:\n" +"§0" -#: Game.Levels.Power.L02zero_pow_succ -#. §0: $m$ -#. §1: $0 ^{\\operatorname{succ} (m)} = 0$ -msgid "For all numbers §0, §1." -msgstr "すべての数 §0 について、 §1 。" +# no-translate +#: Game.Levels.Multiplication.L06two_mul +msgid "two_mul" +msgstr "two_mul" -#: Game.Levels.AdvAddition.L01add_right_cancel -#. §0: `n` -msgid "Start with induction on §0." -msgstr "§0 に対する帰納法から始めてください。" +#: Game.Levels.Multiplication.L06two_mul +msgid "" +"This level is more important than you think; it plays\n" +"a useful role when battling a big boss later on." +msgstr "このレベルは、想像以上に重要な役割を担います。特に、後で登場する強力なボスとの戦闘において、その有効性が発揮されます。" -#: Game.Levels.LessOrEqual.L08le_total -msgid "x ≤ y or y ≤ x" -msgstr "x ≤ y または y ≤ x" +#: Game.Levels.Multiplication.L07mul_add +#. §0: $a$ +#. §1: $b$ +#. §2: $c$ +#. §3: $a(b + c) = ab + ac$ +msgid "" +"Multiplication is distributive over addition on the left.\n" +"In other words, for all natural numbers §0, §1 and §2, we have\n" +"§3." +msgstr "" +"乗算は、左から加算に関して分配法則に従います。\n" +"すなわち、任意の自然数 §0, §1, §2 について、以下の関係が成立します。\n" +"§3." -#: Game.Levels.LessOrEqual.L02zero_le -#. §0: `use` -#. §1: `c` -#. §2: `x = 0 + c` -msgid "To solve this level, you need to §0 a number §1 such that §2." -msgstr "このレベルを解くには、§0 に数値を指定し、§1 とすることで、§2 が成り立つようにする必要があります。" +#: Game.Levels.Multiplication.L07mul_add +#. §0: `a` +#. §1: `b` +#. §2: `c` +msgid "" +"Induction on §0 is the most troublesome, then §1,\n" +"and §2 is the easiest." +msgstr "帰納法における§0のケースが最も困難であり、次に§1、そして§2が最も容易です。" -#: Game.Levels.AdvMultiplication.L06mul_right_eq_one -#. §0: `le_mul_right` -#. §1: `x * y ≠ 0` -#. §2: `have h2 : x * y ≠ 0` -#. §3: `≠` -#. §4: `\\ne` -#. §5: `le_mul_right` +#: Game.Levels.Multiplication.L07mul_add msgid "" -"We want to use §0, but we need a hypothesis §1\n" -"which we don't have. Yet. Execute §2 (you can type §3 with §4).\n" -"You'll be asked to\n" -"prove it, and then you'll have a new hypothesis which you can apply\n" -"§5 to." +"You can do induction on any of the three variables. Some choices\n" +"are harder to push through than others. Can you do the inductive step in\n" +"5 rewrites only?" msgstr "" -"§0 の使用を試みますが、それには §1 という仮定が必要です。しかし、現時点ではその仮定は用意されていません。§2 を実行してください( " -"§4 を入力すると §3 になります)。\n" -"証明が必要ですが、証明後には新しい仮定が得られ、それを §5 で利用できます。" +"任意の3つの変数に対して、帰納法を適用することができます。しかし、すべての選択肢が容易ではありません。5" +"回の書き換えで、帰納的ステップを実行することは可能でしょうか?" -#: Game.Levels.Implication.L03apply -#. §0: $x=37$ -#. §1: $x=37\\implies y=42$ -#. §2: $y=42$ -msgid "If §0 and we know that §1 then we can deduce §2." -msgstr "§0が真であることと、§1について知っていれば、§2を導き出すことができます。" +# no-translate +#: Game.Levels.Multiplication.L07mul_add +msgid "mul_add" +msgstr "mul_add" -#: Game.Levels.Tutorial.L01rfl -#. §0: `rfl` -#. §1: `X = X` -#. §2: `rfl` -#. §3: `A = B` -#. §4: `A` -#. §5: `B` -#. §6: `rfl` -#. §7: ``` -#. x + 37 = x + 37 +#: Game.Levels.Multiplication.L07mul_add +#. §0: ``` +#. induction c with d hd +#. rw [add_zero, mul_zero, add_zero] +#. rfl +#. rw [add_succ, mul_succ, hd, mul_succ, add_assoc] +#. rfl #. ``` -#. §8: `rfl` -#. §9: `0 + x = x` -#. §10: `rfl` -#. §11: $0+x$ -#. §12: $x$ -#. §13: `0 + x` -#. §14: `0 + x` -#. §15: `rfl` -#. §16: `rfl` -#. §17: `mathlib` -#. §18: `zero_add` -#. §19: `add_zero` +#. §1: `a` +#. §2: `b` msgid "" -"## Summary\n" -"\n" -"§0 proves goals of the form §1.\n" +"Here's my solution:\n" +"§0\n" "\n" -"In other words, the §2 tactic will close any goal of the\n" -"form §3 if §4 and §5 are *identical*.\n" +"Inducting on §1 or §2 also works, but might take longer." +msgstr "" +"私の解法:\n" +"§0\n" "\n" -"§6 is short for \\\\\"reflexivity (of equality)\\\\\".\n" +"§1 または §2 に関する帰納法も有効ですが、より時間のかかる場合があります。" + +#: Game.Levels.Multiplication.L07mul_add +#. §0: $a(b+c)=ab+ac$ +#. §1: $(b+c)a=ba+ca$ +#. §2: `mul_add a b c` +#. §3: `a * (b + c) = a * b + a * c` +msgid "" +"Our next goal is \"left and right distributivity\",\n" +"meaning §0 and §1. Rather than\n" +"these slightly pompous names, the name of the proofs\n" +"in Lean are descriptive. Let's start with\n" +"§2, the proof of §3.\n" +"Note that the left hand side contains a multiplication\n" +"and then an addition." +msgstr "" +"次の目標は「左と右の分配法則」を達成することです。具体的には、式§0と§1" +"についてです。これらの表現はやや冗長ですが、Leanの証明名は説明的であるという原則に従います。まずは、式§3の証明である§2" +"から始めましょう。留意すべき点は、左辺には乗算が含まれており、その後に加算が行われることです。" + +#: Game.Levels.Multiplication.L07mul_add +#. §0: `mul_add a b c` +#. §1: `a * (b + c) = a * b + a * c` +msgid "" +"Multiplication distributes\n" +"over addition on the left.\n" "\n" -"## Example:\n" +"§0 is the proof that §1." +msgstr "" +"乗算は、加算に対して左側で分配されます。\n" "\n" -"If the goal looks like this:\n" +"§0 は §1 の証明です。" + +#: Game.Levels.Multiplication.L08add_mul +#: Game.Levels.LessOrEqual.L09succ_le_succ +#. §0: ``` +#. rw [mul_comm, mul_add] +#. repeat rw [mul_comm c] +#. rfl +#. ``` +msgid "" +"Here's my proof:\n" +"§0" +msgstr "" +"私の証明:\n" +"§0" + +#: Game.Levels.Multiplication.L08add_mul +#. §0: $a$ +#. §1: $b$ +#. §2: $c$ +#. §3: $(a + b) \\times c = ac + bc$ +msgid "" +"Addition is distributive over multiplication.\n" +"In other words, for all natural numbers §0, §1 and §2, we have\n" +"§3." +msgstr "" +"加法は乗法に関して分配法則が成り立ちます。\n" +"すなわち、任意の自然数 §0, §1, §2 について、以下の式が成立します。\n" +"§3。" + +#: Game.Levels.Multiplication.L08add_mul +#. §0: `add_mul` +msgid "" +"§0 is just as fiddly to prove by induction; but there's a trick\n" +"which avoids it. Can you spot it?" +msgstr "§0を帰納法で証明することは、同様に複雑です。しかし、それを利用せずに証明できる方法があります。それは何かを見抜けますか?" + +# no-translate +#: Game.Levels.Multiplication.L08add_mul +msgid "add_mul" +msgstr "add_mul" + +# no-translate +#: Game.Levels.Multiplication.L09mul_assoc +msgid "mul_assoc" +msgstr "mul_assoc" + +#: Game.Levels.Multiplication.L09mul_assoc +msgid "" +"A passing mathematician notes that you've proved\n" +"that the natural numbers are a commutative semiring.\n" "\n" -"§7\n" +"If you want to begin your journey to the final boss, head for Power World." +msgstr "" +"通りすがりの数学者が、自然数が可換半環であることを証明したことを指摘しました。\n" "\n" -"then §8 will close it. But if it looks like §9 then §10 won't work, because " -"even\n" -"though §11 and §12 are always equal as *numbers*, they are not equal as " -"*terms*.\n" -"The only term which is identical to §13 is §14.\n" +"最終ボスとの戦いを開始するには、冪乗ワールドへ進んでください。" + +#: Game.Levels.Multiplication.L09mul_assoc +#. §0: `mul_assoc a b c` +#. §1: `(a * b) * c = a * (b * c)` +#. §2: `a * b * c` +#. §3: `(a * b) * c` +#. §4: `(a * b) * c = a * (b * c)` +#. §5: `(6 - 2) - 1` +#. §6: `6 - (2 - 1)` +msgid "" +"§0 is a proof that §1.\n" "\n" -"## Details\n" +"Note that when Lean says §2 it means §3.\n" "\n" -"§15 is short for \\\\\"reflexivity of equality\\\\\".\n" +"Note that §4 cannot be proved by \\\\\"pure thought\\\\\":\n" +"for example subtraction is not associative, as §5 is not\n" +"equal to §6." +msgstr "" +"§0 は §1 の証明です。\n" "\n" -"## Game Implementation\n" +"Lean が §2 と言った場合、それは §3 を意味します。\n" "\n" -"*Note that our §16 is weaker than the version used in core Lean and §17,\n" -"for pedagogical purposes; mathematicians do not distinguish between " -"propositional\n" -"and definitional equality because they think about definitions in a " -"different way\n" -"to type theorists (§18 and §19 are both \\\\\"facts\\\\\" as far\n" -"as mathematicians are concerned, and who cares what the definition of " -"addition is).*" +"Lean では、§4 は「純粋な思考」だけでは証明できません:\n" +"例えば、減算は結合法則を満たさないため、§5 は §6 と等しくありません。" + +#: Game.Levels.Multiplication.L09mul_assoc +msgid "" +"We now have enough to prove that multiplication is associative,\n" +"the boss level of multiplication world. Good luck!" +msgstr "乗算が結合的であることを証明するための準備は整いました。これは、乗算ワールドのボスレベルです。成功をお祈りします!" + +#: Game.Levels.Multiplication.L09mul_assoc +#. §0: $a$ +#. §1: $b$ +#. §2: $c$ +#. §3: $(ab)c = a(bc)$ +msgid "" +"Multiplication is associative.\n" +"In other words, for all natural numbers §0, §1 and §2, we have\n" +"§3." msgstr "" -"## 概要\n" +"乗算は結合法則に従います。\n" +"言い換えれば、任意の自然数 §0, §1, §2 について、以下のことが成り立ちます。\n" +"§3。" + +#: Game.Levels.Implication +msgid "Implication World" +msgstr "含意ワールド" + +#: Game.Levels.Implication +#. §0: $2+2=4$ +#. §1: $2+2\\neq 5$ +#. §2: $x + y = y + x$ +#. §3: $x+1=4 \\implies x=3.$ +msgid "" +"We've proved that §0; in Implication World we'll learn\n" +"how to prove §1.\n" "\n" -"§0 は、形式 §1 のような目標を証明します。\n" +"In Addition World we proved *equalities* like §2.\n" +"In this second tutorial world we'll learn some new tactics,\n" +"enabling us to prove *implications*\n" +"like §3\n" "\n" -"つまり、§2 タクティクは、§4 と §5 が *完全に同一* である場合に、形式 §3 の任意の目標を解決します。\n" +"We'll also learn two new fundamental facts about\n" +"natural numbers, which Peano introduced as axioms.\n" "\n" -"§6 は、「等号の反射律」の略です。\n" +"Click on \"Start\" to proceed." +msgstr "" +"私たちは§0の証明を示しました; 含意ワールドでは、§1を証明する方法について学びます。\n" "\n" -"## 例\n" +"加法ワールドでは、§2のような等式を証明しました。\n" +"この二つ目のチュートリアルワールドでは、新しいタクティク(証明手法)を学び、これを使って§3のような推論を証明できるようになります。\n" "\n" -"もし目標が以下のようであれば:\n" +"また、ペアノが公理として導入した自然数に関する二つの新しい基本的事実についても学びます。\n" "\n" -"§7\n" +"「開始」をクリックして進みましょう。" + +#: Game.Levels.Implication.L01exact +#. §0: `P` +#. §1: `exact h` +#. §2: `h` +#. §3: `P` +#. §4: `x = 37` +#. §5: `h : x = 37` +#. §6: `exact h` +#. §7: `x + 0 = x` +#. §8: `exact add_zero x` +#. §9: `exact add_zero` +#. §10: `exact h` +#. §11: `h` +#. §12: `add_zero` +#. §13: `∀ n, n + 0 = n` +#. §14: `? + 0 = ?` +#. §15: `?` +#. §16: `rw` +#. §17: `apply` +#. §18: `x + 0 = x` +#. §19: `rw [add_zero]` +#. §20: `rw [add_zero x]` +#. §21: `x = x` +#. §22: `rw` +#. §23: `add_zero` +msgid "" +"## Summary\n" "\n" -"§8 でそれを解決できます。しかし、もし目標が §9 のように見えた場合、§10 は機能しません。なぜなら、§11 と §12 " -"は数値としては常に等しいですが、項としては等しくないからです。§13 と完全に一致する項は §14 だけです。\n" +"If the goal is a statement §0, then §1 will close the goal if §2 is a proof " +"of §3.\n" "\n" -"## 詳細\n" +"### Example\n" "\n" -"§15 は、「等号の反射律」の略です。\n" +"If the goal is §4 and you have a hypothesis §5\n" +"then §6 will solve the goal.\n" "\n" -"## ゲームの実装\n" +"### Example\n" "\n" -"注意点として、当の §16 は、コア Lean および §17 " -"で使用されているバージョンよりも弱く、教育目的のためにそう設計されています。数学的には、論理的等価と定義的等価を区別しない理由は、定義の考え方がタイプ理" -"論家と異なるからです(数学的には §18 と §19 はどちらも「事実」であり、加法の定義などは誰がどう思っても構いません)。" - -#: Game -msgid "" -"*Game version: 4.3*\n" -"\n" -"*Recent additions: bug fixes*\n" -"\n" -"## Progress saving\n" -"\n" -"The game stores your progress in your local browser storage.\n" -"If you delete it, your progress will be lost!\n" -"\n" -"Warning: In most browsers, deleting cookies will also clear the local " -"storage\n" -"(or \"local site data\"). Make sure to download your game progress first!\n" -"\n" -"## Credits\n" -"\n" -"* **Creators:** Kevin Buzzard, Jon Eugster\n" -"* **Original Lean3-version:** Kevin Buzzard, Mohammad Pedramfar\n" -"* **Game Engine:** Alexander Bentkamp, Jon Eugster, Patrick Massot\n" -"* **Additional levels:** Sian Carey, Ivan Farabella, Archie Browne.\n" -"* **Additional thanks:** All the student beta testers, all the schools\n" -"who invited Kevin to speak, and all the schoolkids who asked him questions\n" -"about the material.\n" -"\n" -"## Resources\n" -"\n" -"* The [Lean Zulip chat](https://leanprover.zulipchat.com/) forum\n" -"* [Original Lean3 " -"version](https://github.com/ImperialCollegeLondon/natural_number_game/) (no " -"longer maintained)\n" -"\n" -"## Problems?\n" -"\n" -"Please ask any questions about this game in the\n" -"[Lean Zulip chat](https://leanprover.zulipchat.com/) forum, for example in\n" -"the stream \"New Members\". The community will happily help. Note that\n" -"the Lean Zulip chat is a professional research forum.\n" -"Please use your full real name there, stay on topic, and be nice. If you're\n" -"looking for somewhere less formal (e.g. you want to post natural number\n" -"game memes) then head on over to the [Lean " -"Discord](https://discord.gg/WZ9bs9UCvx).\n" +"If the goal is §7 then §8 will close the goal.\n" "\n" -"Alternatively, if you experience issues / bugs you can also open github " -"issues:\n" +"### Exact needs to be exactly right\n" "\n" -"* For issues with the game engine, please open an\n" -"[issue at the " -"lean4game](https://github.com/leanprover-community/lean4game/issues) repo.\n" -"* For issues about the game's content, please open an\n" -"[issue at the NNG](https://github.com/hhu-adam/NNG4/issues) repo." +"Note that §9 will *not work* in the previous example;\n" +"for §10 to work, §11 has to be *exactly* a proof of the goal.\n" +"§12 is a proof of §13 or, if you like,\n" +"a proof of §14 where §15 needs to be supplied by the user.\n" +"This is in contrast to §16 and §17, which will \\\\\"guess the inputs\\\\\"\n" +"if necessary. If the goal is §18 then §19\n" +"and §20 will both change the goal to §21,\n" +"because §22 guesses the input to the function §23." msgstr "" -"*ゲームバージョン: 4.3*\n" -"\n" -"*最近の追加: バグ修正*\n" -"\n" -"## 進捗保存\n" -"\n" -"ゲームは、あなたの進捗をローカルブラウザストレージに保存します。\n" -"これを削除すると、進捗が失われます!\n" -"\n" -"注意:多くのブラウザでは、クッキーを削除するとローカルストレージ(または「ローカルサイトデータ」)もクリアされます。進捗をダウンロードしてから削除するこ" -"とを確認してください!\n" -"\n" -"## 謝辞\n" +"## 概要\n" "\n" -"* **クリエイター:** Kevin Buzzard, Jon Eugster\n" -"* **オリジナルLean3バージョン:** Kevin Buzzard, Mohammad Pedramfar\n" -"* **ゲームエンジン:** Alexander Bentkamp, Jon Eugster, Patrick Massot\n" -"* **追加レベル:** Sian Carey, Ivan Farabella, Archie Browne.\n" -"* **追加の感謝:** 全ての学生ベータテスト者、Kevinを講演に招待した全ての学校、質問をした全ての学校の子供たち\n" +"目標が §0 である場合に、§2 が §3 の証明ならば、目標は §1 で解決されます。\n" "\n" -"## リソース\n" +"### 例\n" "\n" -"* [Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラム\n" -"* " -"[元のLean3版](https://github.com/ImperialCollegeLondon/natural_number_game/)" -"(現在メンテナンスされていません)\n" +"目標が §4 である場合、仮定 §5 があるならば、§6 は目標を解決します。\n" "\n" -"## お困りですか?\n" +"### 例\n" "\n" -"このゲームに関する質問は、[Lean Zulipチャット](https://leanprover.zulipchat.com/) " -"フォーラムで質問してください。例えば、「New Members」ストリームで質問できます。コミュニティは喜んでお手伝いします。注意: Lean " -"Zulipチャットはプロフェッショナルな研究フォーラムです。そこでフルネームを使用し、トピックに集中し、丁寧に接してください。より非公式な場所(例えば、" -"自然数ゲームのメモを投稿したい場合)を探している場合は、[Lean Discord](https://discord.gg/WZ9bs9UCvx) " -"に移動してください。\n" -"(訳注: これらはいずれも外国語のコミュニティです。もし日本語で質問をしたいのであれば、[Lean " -"の日本語コミュニティ](https://lean-ja.github.io/about/)上で質問すると良いでしょう。)\n" +"目標が §7 である場合、§8 は目標を解決します。\n" "\n" -"または、問題やバグが発生した場合は、GitHubの問題をオープンすることもできます:\n" +"### 正確な記述が必要\n" "\n" -"* " -"ゲームエンジンに関する問題は、[lean4game](https://github.com/leanprover-community/lean4" -"game/issues) リポジトリで問題をオープンしてください。\n" -"* ゲームの内容に関する問題は、[NNG](https://github.com/hhu-adam/NNG4/issues) " -"リポジトリで問題をオープンしてください。" +"注意点として、前の例では §9 は *機能しません*;\n" +"§10 が機能するためには、§11 は目標の *正確な* 証明である必要があります。\n" +"§12 は目標の §13 の証明であるか、あるいは §14 の証明で、§15 はユーザーによって提供される必要があります。\n" +"これは §16 と §17 とは異なり、必要に応じてこれらの関数は *入力の推測* を行います。もし目標が §18 である場合、§19 と §20 " +"は両方とも目標を §21 に変更します。\n" +"これは §22 が関数 §23 の入力を推測するからです。" -#: Game.Levels.AdvMultiplication.L02mul_left_ne_zero -#. §0: `b = 0` -#. §1: `a * b = 0` -#. §2: `X ≠ 0` -#. §3: `X = 0 → False` -#. §4: `Show more help!` +#: Game.Levels.Implication.L01exact +#. §0: `exact h1` +#, fuzzy msgid "" -"We want to reduce this to a hypothesis §0 and a goal §1,\n" -"which is logically equivalent but much easier to prove. Remember that §2\n" -"is notation for §3. Click on §4 if you need hints." -msgstr "" -"この部分を仮定§0と目標§1に簡略化したいと考えています。\n" -"これは論理的に同等ですが、証明がはるかに簡単になります。\n" -"§2は§3の表記法です。ヒントが必要な場合は§4 (訳注:\"より多くのヘルプを表示!\")をク" -"リックしてください。" +"The goal in this level is one of our hypotheses. Solve the goal by " +"executing §0." +msgstr "このレベルの目標は、当方の仮説の一つです。目標を達成するためには、§0を実行してください。" -#: Game.Levels.Tutorial.L05add_zero -#. §0: `repeat rw [add_zero]` -msgid "" -"Those of you interested in speedrunning the game may want to know\n" -"that §0 will do both rewrites at once." -msgstr "ゲームのスピードランにご興味のある方は、`§0` は一度に両方のリライトを実行できます。" +#: Game.Levels.Implication.L01exact +#. §0: $x+y=37$ +#. §1: $3x+z=42$ +#. §2: $x+y=37$ +msgid "Assuming §0 and §1, we have §2." +msgstr "前提として§0および§1を仮定します。その結果、§2が導き出されます。" -#: Game.Levels.Tutorial.L07add_succ -#. §0: $0$ -#. §1: $0$ -#. §2: `37 + d = q` -#. §3: `37 + succ d` -#. §4: `succ d` -#. §5: `d` -#. §6: `37 + succ d` -#. §7: `succ q` -#. §8: `q` -#. §9: `x + succ d` -#. §10: `succ (x + d)` -#. §11: `add_succ x d : x + succ d = succ (x + d)` -#. §12: `... + succ ...` -#. §13: `rw [add_succ]` -#. §14: `succ n = n + 1` -#. §15: `+ succ` -#. §16: `rw [add_succ]` -#. §17: `+` -#. §18: `012` +#: Game.Levels.Implication.L01exact Game.Levels.LessOrEqual.L01le_refl +#. §0: `exact` +msgid "The §0 tactic" +msgstr "§0 タクティク" + +#: Game.Levels.Implication.L01exact +#. §0: $P\\implies Q$ +#. §1: $P$ +#. §2: $Q$ +#. §3: `exact` +#. §4: `exact h` msgid "" -"Every number in Lean is either §0 or a successor. We know how to add §1,\n" -"but we need to figure out how to add successors. Let's say we already know\n" -"that §2. What should the answer to §3 be? Well,\n" -"§4 is one bigger than §5, so §6 should be §7,\n" -"the number one bigger than §8. More generally §9 should\n" -"be §10. Let's add this as a lemma.\n" -"\n" -"* §11\n" -"\n" -"If you ever see §12 in your goal, §13 is\n" -"normally a good idea.\n" +"In this world we'll learn how to prove theorems of the form §0.\n" +"In other words, how to prove theorems of the form \"if §1 is true, then §2 " +"is true.\"\n" +"To do that we need to learn some more tactics.\n" "\n" -"Let's now prove that §14. Figure out how to get §15 into\n" -"the picture, and then §16. Switch between the §17 (addition) and\n" -"§18 (numerals) tabs under \"Theorems\" on the right to\n" -"see which proofs you can rewrite." +"The §3 tactic can be used to close a goal which is exactly one of\n" +"the hypotheses. It takes the name of the hypothesis as argument: §4." msgstr "" -"Leanの数は、§0または後続数のいずれかです。§1を加算する方法は分かっていますが、後続数を加算する方法はまだ分かりません。例えば、§2" -"が分かっているとします。では、§3の答えは何になるべきでしょうか? §4は §5よりも1大きいので、§6は §7、つまり " -"§8よりも1大きい数になるべきです。より一般的には、§9は §10になります。この事実を補題として追加しましょう。\n" -"\n" -"* §11\n" -"\n" -"もし目標に §12が見つかったら、通常 §13は良いアイデアです。\n" +"このワールドでは、形式 §0 の定理の証明方法を学びます。\n" +"つまり、「§1 が真ならば、§2 が真である」という形式の定理を証明する方法です。\n" +"そのためには、いくつかのタクティクを学ぶ必要があります。\n" "\n" -"次に、§14を証明しましょう。§15を図に取り入れる方法を考え、その後 §16を証明します。「Theorems」の右側にある `+` (加算) と " -"`012` (数字) のタブを切り替えて、どの証明を書き換えることができるか確認します。" +"§3 のタクティクは、仮定のうち厳密に一つの目標を閉じるために使用できます。このタクティクには仮定の名前が引数として与えられます:§4。" -#: Game.Levels.Algorithm.L06is_zero -#. §0: `trivial` -#. §1: `True` +#: Game.Levels.Implication.L02exact2 +#. §0: `rw [zero_add] at «{h}»` +#. §1: `«{h}»` msgid "" -"# Summary\n" +"You can use §0 to rewrite at §1 instead\n" +"of at the goal." +msgstr "§0 を使用して、目標ではなく §1 を書き換えることができます。" + +#: Game.Levels.Implication.L02exact2 +#. §0: ``` +#. repeat rw [zero_add] at h +#. exact h +#. ``` +msgid "" +"Here's a two-line proof:\n" +"§0" +msgstr "" +"以下は2行の証明です:\n" +"§0" + +#: Game.Levels.Implication.L02exact2 +#. §0: `rw [zero_add] at «{h}»` +#. §1: `zero_add` +#. §2: `«{x}»` +#. §3: `0 + «{x}»` +#. §4: `0 + «{y}»` +msgid "" +"Do that again!\n" "\n" -"§0 will solve the goal §1." +"§0 tries to fill in\n" +"the arguments to §1 (finding §2) then it replaces all occurrences of\n" +"§3 it finds. Therefor, it did not rewrite §4, yet." msgstr "" -"# 概要\n" +"再度実行してみてください。\n" "\n" -"§0 は、目標 §1 を解決します。" +"§0は、§1の引数を埋める(§2を見つけます)ことを試みます。その後、見つかったすべての§3を置換します。したがって、§4はまだ書き換えられていません。" -#: Game.Levels.Power.L02zero_pow_succ -#. §0: $0^0=1$ -#. §1: $0^n=0$ -#. §2: $n>0$ -#. §3: $n$ +#: Game.Levels.Implication.L02exact2 msgid "" -"Although §0 in this game, §1 if §2, i.e., if\n" -"§3 is a successor." -msgstr "このゲームでは、§0 が成立し、かつ §1 が §2 となる場合、つまり §3 がその後の値である場合に、以下のことが言えます。" +"If the goal is not *exactly* a hypothesis, we can sometimes\n" +"use rewrites to fix things up." +msgstr "目標が *厳密な* 仮説ではない場合、書き換えを利用して問題を解決できることがあります。" -#: Game.Levels.AdvAddition.L05add_right_eq_zero -#. §0: `b = 0` -#. §1: `b ≠ 0` -#. §2: `cases b with d` +#: Game.Levels.Implication.L02exact2 +#. §0: $0+x=(0+y)+2$ +#. §1: $x=y+2$ +msgid "Assuming §0, we have §1." +msgstr "前提として§0を仮定するならば、§1は成立します。" + +#: Game.Levels.Implication.L02exact2 +#. §0: `exact` +msgid "§0 practice." +msgstr "§0 演習。" + +#: Game.Levels.Implication.L02exact2 +#. §0: `rw [«{h}»]` +#. §1: `rfl` +#. §2: `exact «{h}»` msgid "" -"Here we want to deal with the cases §0 and §1 separately,\n" -"so start with §2." -msgstr "ここでは§0と§1のケースについて個別に検討するため、まず§2から説明します。" +"Now you could finish with §0 then §1, but §2\n" +"does it in one line." +msgstr "現在、§0 と §1 で処理を終えることができますが、§2 は 1 行で完結します。" -#: Game.Levels.AdvMultiplication.L09mul_left_cancel -#. §0: `hd` -#. §1: `c` -#. §2: `a * d = a * c → d = c` +#: Game.Levels.Implication.L03apply +#. §0: `apply` +msgid "The §0 tactic." +msgstr "§0 タクティク" + +#: Game.Levels.Implication.L03apply +#. §0: `h2` +#. §1: `x = 37` +#. §2: `y = 42` #. §3: `apply` -#. §4: `at` -#. §5: `a * d = a * ?` +#. §4: `apply` msgid "" -"The inductive hypothesis §0 is \"For all natural numbers §1, §2\".\n" -"You can §3 it §4 any hypothesis of the form §5." +"In this level, the hypothesis §0 is an *implication*. It says\n" +"that *if* §1 *then* §2. We can use this\n" +"hypothesis with the §3 tactic. Remember you can click on\n" +"§4 or any other tactic on the right to see a detailed explanation\n" +"of what it does, with examples." msgstr "" -"帰納的仮定 §0 は「全ての自然数 §1 について §2」です。\n" -"あなたは、仮定 §5 の形式に対して、これを§3できます。" -"(訳注: 原文は \"You can §3 it §4 any hypothesis of the form §5.\" です。\n" -"つまり、 §3 §0 §4 §5 のような形で使用できます。)" +"このレベルでは、仮定 §0 は *含意* です。「もし §1 ならば " +"§2」という形で表現されます。この仮定は、§3というタクティクを用いて利用できます。右側の任意のタクティク(例:§4" +")をクリックすると、その詳細な説明と例を確認できます。" -#: Game.Levels.Multiplication.L07mul_add -msgid "" -"You can do induction on any of the three variables. Some choices\n" -"are harder to push through than others. Can you do the inductive step in\n" -"5 rewrites only?" -msgstr "" -"任意の3つの変数に対して、帰納法を適用することができます。しかし、すべての選択肢が容易ではありません。5" -"回の書き換えで、帰納的ステップを実行することは可能でしょうか?" +#: Game.Levels.Implication.L03apply +#. §0: `exact` +msgid "Now finish using the §0 tactic." +msgstr "次に、§0 タクティクを使って処理を完了してください。" -#: Game.Levels.Addition.L01zero_add -#. §0: `0 + «{d}»` -#. §1: `rw [«{hd}»]` -msgid "" -"At this point you see the term §0, so you can use the\n" -"induction hypothesis with §1." -msgstr "現在、項§0が表示されているため、項§1を用いて帰納法の仮定を適用できます。" +#: Game.Levels.Implication.L03apply +#. §0: `apply h2 at h1` +#. §1: `h1` +#. §2: `y = 42` +msgid "Start with §0. This will change §1 to §2." +msgstr "§0から開始します。これにより、§1は§2に変わります。" -#: Game.Levels.Power.L01zero_pow_zero -#. §0: `0 ^ 0` -#. §1: `0 ^ 0 = 1` +#: Game.Levels.Implication.L03apply +#. §0: $x=37$ +#. §1: $x=37\\implies y=42$ +#. §2: $y=42$ +msgid "If §0 and we know that §1 then we can deduce §2." +msgstr "§0が真であることと、§1について知っていれば、§2を導き出すことができます。" + +#: Game.Levels.Implication.L03apply +#. §0: `t : P → Q` +#. §1: $P \\implies Q$ +#. §2: `h : P` +#. §3: `P` +#. §4: `apply t at h` +#. §5: `h` +#. §6: `Q` +#. §7: `P` +#. §8: `t` +#. §9: `Q` +#. §10: `Q` +#. §11: `apply t` +#. §12: `P` +#. §13: `Q` +#. §14: `t` +#. §15: `P` +#. §16: `P` +#. §17: `succ_inj x y` +#. §18: `succ x = succ y → x = y` +#. §19: `h : succ (a + 37) = succ (b + 42)` +#. §20: `apply succ_inj at h` +#. §21: `h` +#. §22: `a + 37 = b + 42` +#. §23: `apply succ_inj (a + 37) (b + 42) at h` +#. §24: `succ_inj` +#. §25: `a * b = 7` +#. §26: `apply succ_inj` +#. §27: `succ (a * b) = succ 7` msgid "" -"Mathematicians sometimes debate what §0 is;\n" -"the answer depends, of course, on your definitions. In this\n" -"game, §1. See if you can prove it.\n" +"## Summary\n" "\n" -"Check out the *Pow* tab in your list of theorems\n" -"to see the new proofs which are available." +"If §0 is a proof that §1, and §2 is a proof of §3,\n" +"then §4 will change §5 to a proof of §6. The idea is that if\n" +"you know §7 is true, then you can deduce from §8 that §9 is true.\n" +"\n" +"If the *goal* is §10, then §11 will \\\\\"argue backwards\\\\\" and change " +"the\n" +"goal to §12. The idea here is that if you want to prove §13, then by §14\n" +"it suffices to prove §15, so you can reduce the goal to proving §16.\n" +"\n" +"### Example:\n" +"\n" +"§17 is a proof that §18.\n" +"\n" +"So if you have a hypothesis §19\n" +"then §20 will change §21 to §22.\n" +"You could write §23\n" +"but Lean is smart enough to figure out the inputs to §24.\n" +"\n" +"### Example\n" +"\n" +"If the goal is §25, then §26 will turn the\n" +"goal into §27." msgstr "" -"数学者は、§0 が何であるかを議論することがあります。その答えは、定義によって異なります。このゲームでは、§1 です。証明できるかを試してみてください。\n" +"## 概要\n" "\n" -"証明一覧のタブから *Pow* (訳注: `^`) を選択して、利用可能な新しい証明を確認してください。" +"もし §0 が §1 の証明であり、 §2 が §3 の証明である場合、§4 は §5 を §6 の証明に変換します。つまり、§7 " +"が真であることを知っている場合、§8 から §9 が真であることを導くことができます。\n" +"\n" +"もし *目標* が §10 である場合、§11 は「逆向きに推論」し、目標を §12 に変更します。この手法は、§13 を証明するために §14 から " +"§15 を証明すれば十分であるという考えに基づいています。したがって、目標を §16 の証明に簡略化できます。\n" +"\n" +"### 例:\n" +"\n" +"§17 が §18 の証明であるとします。\n" +"\n" +"仮定として §19 がある場合、§20 は §21 を §22 に変更します。 §23 のような記述も可能です。ただし、Lean は §24 " +"の入力を見抜くことができます。\n" +"\n" +"### 例\n" +"\n" +"もし目標が §25 である場合、§26 は目標を §27 に変更します。" -#: Game.Levels.Implication.L09zero_ne_succ -#. §0: `1` -#. §1: `succ 0` -#. §2: `h` -msgid "Now change §0 to §1 in §2." -msgstr "§2 の §0 を §1 に変更してください。" +#: Game.Levels.Implication.L04succ_inj +#. §0: $a$ +#. §1: $b$ +#. §2: `succ_inj a b` +#. §3: $ (\\operatorname{succ}(a) = \\operatorname{succ}(b)) \\implies a=b$ +#. §4: `succ_inj` +#. §5: `succ_inj` +#. §6: $$a$$ +#. §7: $$b$$ +#. §8: $ ( \\operatorname{succ}(a) = \\operatorname{succ}(b)) \\implies a=b$ +#. §9: `succ_inj` +#. §10: `succ` +#. §11: `succ_inj` +#. §12: $\\forall a, b \\in \\mathbb{N}, ( \\operatorname{succ}(a) = \\operatorname{succ}(b)) \\implies a=b$ +#. §13: `succ_inj` +#. §14: `pred` +msgid "" +"# Statement\n" +"\n" +"If §0 and §1 are numbers, then\n" +"§2 is the proof that\n" +"§3.\n" +"\n" +"## More technical details\n" +"\n" +"There are other ways to think about §4.\n" +"\n" +"You can think about §5 itself as a function which takes two\n" +"numbers §6 and §7 as input, and outputs a proof of\n" +"§8.\n" +"\n" +"You can think of §9 itself as a proof; it is the proof\n" +"that §10 is an injective function. In other words,\n" +"§11 is a proof of\n" +"§12.\n" +"\n" +"§13 was postulated as an axiom by Peano, but\n" +"in Lean it can be proved using §14, a mathematically\n" +"pathological function." +msgstr "" +"# 命題\n" +"\n" +"§0 と §1 が数値である場合、\n" +"§2 は §3 の証明です。\n" +"\n" +"## さらなる技術的な詳細\n" +"\n" +"§4 について考える方法は他にもあります。\n" +"\n" +"§5 を、入力として 2 つの数値 §6 と §7 を受け取り、出力として §8 の証明を生成する関数と捉えることができます。\n" +"\n" +"§9 は自身が証明であり、これは §10 が単射関数であることを示す証明です。言い換えれば、\n" +"§11 は §12 の証明となります。\n" +"\n" +"ペアノによって公理として導入された §13 ですが、Lean では §14、すなわち数学的に異常な関数を用いて証明できます。" -#: Game.Levels.Implication.L05succ_inj2 -#. §0: `apply t at h` -#. §1: `apply t` -#. §2: `apply` +#: Game.Levels.Implication.L04succ_inj +#. §0: `a` +#. §1: `b` +#. §2: `succ_inj a b` +#. §3: `succ a = succ b` +#. §4: `a = b` +#. §5: $x+1=4 \\implies x=3$ msgid "" -"Many people find §0 easy, but some find §1 confusing.\n" -"If you find it confusing, then just argue forwards.\n" +"If §0 and §1 are numbers, then §2 is a proof\n" +"that §3 implies §4. Click on this theorem in the *Peano*\n" +"tab for more information.\n" "\n" -"You can read more about the §2 tactic in its documentation, which you can " -"view by\n" -"clicking on the tactic in the list on the right." +"Peano had this theorem as an axiom, but in Algorithm World\n" +"we will show how to prove it in Lean. Right now let's just assume it,\n" +"and let's prove §5 using it. Again, we will proceed\n" +"by manipulating our hypothesis until it becomes the goal. I will\n" +"walk you through this level." msgstr "" -"多くの人は§0を容易に理解しますが、一部の人々は§1について混乱することがあります。\n" -"もし混乱する場合は、証明を前向きに進めてください。\n" +"もし §0 と §1 が数値である場合、§2 は §3 が §4 を導くことの証明です。*Peano* " +"タブでこの定理について詳しく知ることができます。\n" "\n" -"§2" -"のタクティクについては、その詳細な説明がドキュメンテーションに記載されています。リストの右側にあるタクティクをクリックすることで、ドキュメンテーションを" -"表示できます。" +"Peanoはこの定理を公理としていましたが、アルゴリズムワールドでは Lean " +"を用いてこの定理を証明する方法を示します。現在ではこの定理を仮定し、§5 " +"を用いて証明しましょう。また、証明は仮定を操作することで目標に近づけることで進めていきます。このレベルについて一緒に学びましょう。" -#: Game.Levels.Algorithm.L03add_algo2 -msgid "Let's now make our own tactic to do this." -msgstr "それでは、独自のタクティクを作成して、この機能を実装してみましょう。" +#: Game.Levels.Implication.L04succ_inj Game.Levels.Implication.L05succ_inj2 +#: Game.Levels.Algorithm.L05pred Game.Levels.Algorithm.L07succ_ne_succ +#: Game.Levels.AdvAddition.L05add_right_eq_zero +#: Game.Levels.AdvAddition.L06add_left_eq_zero +#: Game.Levels.LessOrEqual.L09succ_le_succ +#. §0: $x+1=4$ +#. §1: $x=3$ +msgid "If §0 then §1." +msgstr "§0 ならば、§1。" -#: Game.Levels.Tutorial.L02rw +#: Game.Levels.Implication.L04succ_inj +msgid "In the next level, we'll do the same proof but backwards." +msgstr "次のレベルでは、同様の手続きを用いて、証明を逆方向に展開します。" + +#: Game.Levels.Implication.L04succ_inj #. §0: `h` -#. §1: `X = Y` -#. §2: `rw [h]` -#. §3: `X` -#. §4: `Y` -#. §5: `rw [← h]` -#. §6: `Y` -#. §7: `X` -#. §8: `\\left ` -#. §9: `\\l` -#. §10: `rw [h1, h2]` -#. §11: `rw [h] at h2` -#. §12: `X` -#. §13: `Y` -#. §14: `h2` -#. §15: `rw [h] at h1 h2 ⊢` -#. §16: `X` -#. §17: `Y` -#. §18: `⊢` -#. §19: `\\|-` -#. §20: `repeat rw [add_zero]` -#. §21: `? + 0` -#. §22: `?` -#. §23: `? + 0` -#. §24: `nth_rewrite 2 [h]` -#. §25: `X` -#. §26: `Y` -#. §27: `h : x = y + y` -#. §28: ``` -#. succ (x + 0) = succ (y + y) -#. ``` -#. §29: `rw [add_zero]` -#. §30: `succ x = succ (y + y)` -#. §31: `rw [h]` -#. §32: `succ (y + y) = succ (y + y)` -#. §33: `rfl` -#. §34: `rw` -#. §35: ``` -#. h1 : x = y + 3 -#. h2 : 2 * y = x -#. ``` -#. §36: `rw [h1] at h2` -#. §37: `h2` -#. §38: `h2 : 2 * y = y + 3` -#. §39: `rw h` -#. §40: `h` -#. §41: `A = B` -#. §42: `h` -#. §43: `rw` -#. §44: `rw [P = Q]` -#. §45: `P = Q` -#. §46: `h : P = Q` -#. §47: `rw [h]` -#. §48: `rw` -#. §49: `h : A = B` -#. §50: `A` -#. §51: `rw [h]` -#. §52: `B` -#. §53: `A` -#. §54: `add_zero` -#. §55: `? + 0 = ?` -#. §56: `add_zero` -#. §57: `?` -#. §58: `rw` -#. §59: `x + 0` -#. §60: `?` -#. §61: `x` -#. §62: `x + 0` -#. §63: `x` -#. §64: `rw [add_zero]` -#. §65: `(0 + 0) + (x + 0) + (0 + 0) + (x + 0)` -#. §66: `0 + (x + 0) + 0 + (x + 0)` -#. §67: `b + c + a = b + (a + c)` -#. §68: `a + c` -#. §69: `c + a` -#. §70: `rw [add_comm]` -#. §71: `rw [add_comm a c]` -#. §72: `a + c` -#. §73: `c + a` -#. §74: `add_comm` -#. §75: `?1 + ?2 = ?2 + ?1` -#. §76: `add_comm a` -#. §77: `a + ? = ? + a` -#. §78: `add_comm a c` -#. §79: `a + c = c + a` -#. §80: `h : X = Y` -#. §81: `rw [h]` -#. §82: `X` -#. §83: `Y` -#. §84: `X` -#. §85: `Y` -#. §86: `nth_rewrite 37 [h]` +#. §1: `succ x = succ 3` +#. §2: `succ_inj` +#. §3: `rw [four_eq_succ_three] at h` msgid "" -"## Summary\n" -"\n" -"If §0 is a proof of an equality §1, then §2 will change\n" -"all §3s in the goal to §4s. It's the way to \\\\\"substitute in\\\\\".\n" -"\n" -"## Variants\n" -"\n" -"* §5 (changes §6s to §7s; get the back arrow by typing §8 or §9.)\n" -"\n" -"* §10 (a sequence of rewrites)\n" -"\n" -"* §11 (changes §12s to §13s in hypothesis §14)\n" -"\n" -"* §15 (changes §16s to §17s in two hypotheses and the goal;\n" -"get the §18 symbol with §19.)\n" -"\n" -"* §20 will keep changing §21 to §22\n" -"until there are no more matches for §23.\n" -"\n" -"* §24 will change only the second §25 in the goal to §26.\n" -"\n" -"### Example:\n" -"\n" -"If you have the assumption §27 and your goal is\n" -"§28\n" -"\n" -"then\n" -"\n" -"§29\n" +"Let's first get §0 into the form §1 so we can\n" +"apply §2. First execute §3\n" +"to change the 4 on the right hand side." +msgstr "" +"まず、§0 を §1 の形式に変換し、その後 §2 を適用します。\n" +"最初に、§3 を実行して右辺の 4 を変更します。" + +#: Game.Levels.Implication.L04succ_inj +#. §0: `succ_eq_add_one` +#. §1: `h` +msgid "" +"Now rewrite §0 backwards at §1\n" +"to get the right hand side." +msgstr "§1 を §0 で逆順に書き換えて、右辺を得ます。" + +#: Game.Levels.Implication.L04succ_inj +#. §0: `apply` +#. §1: `apply succ_inj at h` +#. §2: `h` +#. §3: `x = 3` +msgid "" +"Now let's §0 our new theorem. Execute §1\n" +"to change §2 to a proof of §3." +msgstr "それでは、新しい定理を §0 しましょう。§1 を実行することで、`§2` を `§3` の証明に変換します。" + +#: Game.Levels.Implication.L04succ_inj +#. §0: `rw [← succ_eq_add_one] at h` +msgid "Concretely: §0." +msgstr "具体的に:§0。" + +#: Game.Levels.Implication.L04succ_inj +#. §0: `←` +#. §1: `rw` +#. §2: `rw` +#. §3: `←` +#. §4: `\\l` +msgid "" +"You can put a §0 in front of any theorem provided to §1 to rewrite\n" +"the other way around. Look at the docs for §2 for an explanation. Type §3 " +"with §4." +msgstr "" +"任意の定理 §1 の先頭に §0 を付与することで、その定理を逆方向に記述することができます。詳細については、§2 " +"のドキュメントをご参照ください。「§4」と入力し、その後「§3」を入力してください。" + +#: Game.Levels.Implication.L04succ_inj +msgid "succ_inj : the successor function is injective" +msgstr "succ_inj : 後者関数は単射" + +#: Game.Levels.Implication.L04succ_inj +msgid "Now finish in one line." +msgstr "一行で証明を完結させます。" + +#: Game.Levels.Implication.L04succ_inj +#. §0: `exact h` +msgid "" +"And now we've deduced what we wanted to prove: the goal is one of our " +"assumptions.\n" +"Finish the level with §0." +msgstr "" +"そして、目的を証明するために必要な結論を得ることができました。この結論が、当初提示した仮定の一つと一致します。\n" +"レベルを完了するには、§0 を使用してください。" + +#: Game.Levels.Implication.L05succ_inj2 +msgid "Arguing backwards" +msgstr "推論を逆方向に進める" + +#: Game.Levels.Implication.L05succ_inj2 +#. §0: `four_eq_succ_three` +msgid "" +"Now rewrite §0 backwards to make the goal\n" +"equal to the hypothesis." +msgstr "§0 を逆順に書き換えることで、目標と仮定を等価にします。" + +#: Game.Levels.Implication.L05succ_inj2 +#. §0: `x + 1 = 4` +#. §1: `x = 3` +#. §2: `apply` +msgid "" +"In the last level, we manipulated the hypothesis §0\n" +" until it became the goal §1. In this level we'll manipulate\n" +" the goal until it becomes our hypothesis! In other words, we\n" +" will \"argue backwards\". The §2 tactic can do this too.\n" +" Again I will walk you through this one (assuming you're in\n" +" command line mode)." +msgstr "" +"先程のレベルでは、仮定§0を操作して目標§1にしました。このレベルでは、目標を操作して仮定にします!つまり、「逆向きに議論」することです。§2 " +"タクティクもこれを行うことができます。また、コマンドラインモードで操作していると仮定して、この例を一緒に見ていきましょう。" + +#: Game.Levels.Implication.L05succ_inj2 +#. §0: `apply t at h` +#. §1: `apply t` +#. §2: `apply` +msgid "" +"Many people find §0 easy, but some find §1 confusing.\n" +"If you find it confusing, then just argue forwards.\n" "\n" -"will change the goal into §30, and then\n" +"You can read more about the §2 tactic in its documentation, which you can " +"view by\n" +"clicking on the tactic in the list on the right." +msgstr "" +"多くの人は§0を容易に理解しますが、一部の人々は§1について混乱することがあります。\n" +"もし混乱する場合は、証明を前向きに進めてください。\n" "\n" -"§31\n" +"§2" +"のタクティクについては、その詳細な説明がドキュメンテーションに記載されています。リストの右側にあるタクティクをクリックすることで、ドキュメンテーションを" +"表示できます。" + +#: Game.Levels.Implication.L05succ_inj2 +#. §0: `exact h` +msgid "You can now finish with §0." +msgstr "これで §0 の部分を完了してください。" + +#: Game.Levels.Implication.L05succ_inj2 +#. §0: `apply succ_inj` +#. §1: `succ_inj` +msgid "Start with §0 to apply §1 to the *goal*." +msgstr "*目標*に §1 を適用するために、まず §0 を使用してください。" + +#: Game.Levels.Implication.L05succ_inj2 +#. §0: $P\\implies Q$ +#. §1: $Q$ +#. §2: $P$ +#. §3: `rw [succ_eq_add_one]` +msgid "" +"Applying a proof of §0 to the *goal* changes §1 to §2.\n" +"Now try §3 to make the goal more like the hypothesis." +msgstr "" +"証明 §0 を *目標* に対して適用することで、§1 が §2 になります。\n" +"次に §3 を試し、目標を仮定に近づけることを試みてください。" + +# no-translate +#: Game.Levels.Implication.L06intro +msgid "intro" +msgstr "intro" + +#: Game.Levels.Implication.L06intro +#. §0: `P → Q` +#. §1: `intro h` +#. §2: `h : P` +#. §3: `Q` +#. §4: $P \\implies Q$ +#. §5: $P$ +#. §6: $Q$ +#. §7: `x + 1 = y + 1 → x = y` +#. §8: $x+1=y+1 \\implies x=y$ +#. §9: `intro h` +#. §10: $x+1=y+1$ +#. §11: `h` +#. §12: $x=y$ +msgid "" +"## Summary\n" "\n" -"will change the goal into §32, which\n" -"can be solved with §33.\n" +"If the goal is §0, then §1 will introduce §2 as a hypothesis,\n" +"and change the goal to §3. Mathematically, it says that to prove §4,\n" +"we can assume §5 and then prove §6.\n" "\n" "### Example:\n" "\n" -"You can use §34 to change a hypothesis as well.\n" -"For example, if you have two hypotheses\n" -"§35\n" -"then §36 will turn §37 into §38.\n" -"\n" -"## Common errors\n" -"\n" -"* You need the square brackets. §39 is never correct.\n" -"\n" -"* If §40 is not a *proof* of an *equality* (a statement of the form §41),\n" -"for example if §42 is a function or an implication,\n" -"then §43 is not the tactic you want to use. For example,\n" -"§44 is never correct: §45 is the theorem *statement*,\n" -"not the proof. If §46 is the proof, then §47 will work.\n" -"\n" -"## Details\n" -"\n" -"The §48 tactic is a way to do \\\\\"substituting in\\\\\". There\n" -"are two distinct situations where you can use this tactic.\n" -"\n" -"1) Basic usage: if §49 is an assumption or\n" -"the proof of a theorem, and if the goal contains one or more §50s, then §51\n" -"will change them all to §52s. The tactic will error\n" -"if there are no §53s in the goal.\n" -"\n" -"2) Advanced usage: Assumptions coming from theorem proofs\n" -"often have missing pieces. For example §54\n" -"is a proof that §55 because §56 really is a function,\n" -"and §57 is the input. In this situation §58 will look through the goal\n" -"for any subterm of the form §59, and the moment it\n" -"finds one it fixes §60 to be §61 then changes all §62s to §63s.\n" -"\n" -"Exercise: think about why §64 changes the term\n" -"§65 to\n" -"§66\n" -"\n" -"If you can't remember the name of the proof of an equality, look it up in\n" -"the list of lemmas on the right.\n" -"\n" -"## Targeted usage\n" -"\n" -"If your goal is §67 and you want to rewrite §68\n" -"to §69, then §70 will not work because Lean finds another\n" -"addition first and swaps those inputs instead. Use §71 to\n" -"guarantee that Lean rewrites §72 to §73. This works because\n" -"§74 is a proof that §75, §76 is a proof\n" -"that §77, and §78 is a proof that §79.\n" -"\n" -"If §80 then §81 will turn all §82s into §83s.\n" -"If you only want to change the 37th occurrence of §84\n" -"to §85 then do §86." +"If your goal is §7 (the way Lean writes §8)\n" +"then §9 will give you a hypothesis §10 named §11, and the goal\n" +"will change to §12." msgstr "" "## 概要\n" "\n" -"もし §0 が等式 §1 の証明であるならば、§2 は目標内のすべての §3 を §4 に変更します。これは「代入」を行う方法です。\n" -"\n" -"## バリエーション\n" -"\n" -"* §5 (目標内の §6 を §7 に変更;バックアローは §8 または §9 を入力することで取得します。)\n" -"\n" -"* §10 (一連の変換)\n" -"\n" -"* §11 (仮定 §14 内を §12 から §13 に変更)\n" -"\n" -"* §15 (目標と 2 つの仮定内を §16 から §17 に変更;§18 のシンボルは §19 で取得します。)\n" -"\n" -"* §20 は §21 を §22 に変更し続けるまで、§23 との一致がなくなるまで変更します。\n" -"\n" -"* §24 は目標内の第 2 の §25 のみ §26 に変更します。\n" -"\n" -"### 例:\n" -"\n" -"仮定 §27 があり、目標が §28 の場合、\n" -"\n" -"§29\n" -"\n" -"は目標を §30 に変更し、\n" -"\n" -"§31\n" -"\n" -"は目標を §32 に変更し、\n" -"\n" -"§33 で解決できます。\n" +"もし目標が§0である場合、§1は§2を仮定として導入し、目標を§3に変更します。数学的には、§4の証明のために、§5を仮定し、その後§6" +"を証明すればよいということです。\n" "\n" "### 例:\n" "\n" -"仮定を変更することもできます。例えば、仮定が 2 つある場合、\n" -"\n" -"§35\n" -"\n" -"§36 は §37 を §38 に変換します。\n" -"\n" -"## 一般的なエラー\n" -"\n" -"* クオート記号が必要です。§39 は決して正しくありません。\n" -"\n" -"* §40 が等式 (形式 §41 のステートメント) の証明でない場合、例えば §42 が関数または推論である場合、\n" -"\n" -"§43 は使用したいタクティクではありません。例えば、\n" -"\n" -"§44 は常に正しくありません:§45 は定理のステートメントであり、\n" -"\n" -"証明ではありません。§46 が証明である場合、§47 は機能します。\n" -"\n" -"## 詳細\n" -"\n" -"§48 タクティクは「代入」を行う方法です。このタクティクを使用できる 2 つの異なる状況があります。\n" -"\n" -"1) 基本的な使用法:§49 が仮定または定理の証明であり、目標内に 1 つ以上の §50 が含まれている場合、\n" -"\n" -"§51 はそれら全てを §52 に変更します。タクティクは目標内に §53 が存在しない場合にエラーを発生させます。\n" -"\n" -"2) 高度な使用法:定理の証明から得られる仮定はしばしば欠落している部分を持っています。例えば、\n" -"\n" -"§54 は §55 を証明しており、\n" -"\n" -"§56 は実際には関数であり、\n" -"\n" -"§57 は入力です。この状況では、\n" -"\n" -"§58 は目標内を検索し、\n" -"\n" -"§59 のサブタームを見つけた瞬間に、\n" -"\n" -"§60 を §61 に固定し、\n" -"\n" -"すべての §62 を §63 に変更します。\n" -"\n" -"演習:なぜ §64 は項 §65 を §66 に変更するのか考えてみてください。\n" -"\n" -"等式の証明の名前を忘れた場合は、\n" -"\n" -"右側の補題一覧で調べてください。\n" -"\n" -"## 対象的な使用法\n" -"\n" -"目標が §67 であり、\n" -"\n" -"§68 を §69 に書き換えることを望む場合、\n" -"\n" -"§70 は Lean が別の加算を見つけ、\n" -"\n" -"その入力を交換するためには機能しません。 §71 を使用して、\n" +"もし目標が§7(Leanで記述された§8)である場合、§9は§10という名前の仮定§11を導入し、目標は§12に変更されます。" + +#: Game.Levels.Implication.L06intro +#. §0: `exact h` +msgid "Now §0 finishes the job." +msgstr "これで §0 が目的を達成します。" + +#: Game.Levels.Implication.L06intro +#. §0: `intro h` +#. §1: `h` +msgid "Start with §0 to assume the hypothesis and call its proof §1." +msgstr "§0 を使用して仮定を§1とし、開始します。" + +#: Game.Levels.Implication.L06intro +#. §0: `apply` +#. §1: `P → Q` +#. §2: `P → Q` +#. §3: `P` +#. §4: `Q` +#. §5: `intro` +msgid "" +"We have seen how to §0 theorems and assumptions\n" +"of the form §1. But what if our *goal* is of the form §2?\n" +"To prove this goal, we need to know how to say \"let's assume §3 and deduce " +"§4\"\n" +"in Lean. We do this with the §5 tactic." +msgstr "" +"私たちは、形式 §1 の定理や仮定の §0 の方法を見ました。\n" +"しかし、もし私たちの *目標* が形式 §2 の場合は、どうすれば良いでしょうか?\n" +"この目標を証明するには、Lean で \"§3 という仮定を設け、 §4 を導く\" という方法を知る必要があります。これを行うためには、§5 " +"タクティクを使用します。" + +#: Game.Levels.Implication.L07intro2 +#. §0: `apply succ_inj at h` +#. §1: `succ` +msgid "Now §0 to cancel the §1s." +msgstr "`§0` を使用して `§1` を消去します。" + +#: Game.Levels.Implication.L07intro2 +#. §0: $x+1=y+1\\implies x=y$ +msgid "" +"Let's see if you can use the tactics we've learnt to prove §0.\n" +"Try this one by yourself; if you need help then click on \"Show more " +"help!\"." +msgstr "" +"これまで学んだタクティクを使って、§0の証明が可能か試してみましょう。\n" +"ご自身で試すことをお勧めします。もしお手伝いが必要な場合は、「より多くのヘルプを表示!」をクリックしてください。" + +#: Game.Levels.Implication.L07intro2 +msgid "intro practice" +msgstr "intro 演習" + +#: Game.Levels.Implication.L07intro2 +#. §0: ``` +#. intro h +#. apply succ_inj +#. repeat rw [succ_eq_add_one] +#. exact h +#. ``` +msgid "" +"Here's a completely backwards proof:\n" +"§0" +msgstr "" +"以下は、完全に逆順の手順で構成された証明です:\n" +"§0" + +#: Game.Levels.Implication.L07intro2 +#. §0: `intro h` +msgid "Start with §0 to assume the hypothesis." +msgstr "まず、 §0 を使用して仮説を提示します。" + +#: Game.Levels.Implication.L07intro2 +#. §0: `repeat rw [← succ_eq_add_one] at h` +#. §1: `h` +#. §2: `succ x = succ y` +msgid "" +"Now §0 is the quickest way to\n" +"change §1 to §2." +msgstr "現在、§0 は §1 を §2 に変更するための最も効率的な手段です。" + +#: Game.Levels.Implication.L07intro2 +#. §0: `rw [h]` +#. §1: `rfl` +#. §2: `exact h` +msgid "Now §0 then §1 works, but §2 is quicker." +msgstr "現在、§0 および §1 は正しく機能しますが、§2 の方が高速です。" + +#: Game.Levels.Implication.L08ne +#. §0: `x ≠ y` +#. §1: `x = y → False` +msgid "Remember, §0 is *notation* for §1." +msgstr "覚えておいてください。§0 は §1 の *表記* です。" + +#: Game.Levels.Implication.L08ne +#. §0: $x=y$ +#. §1: $x \\neq y$ +msgid "If §0 and §1 then we can deduce a contradiction." +msgstr "もし §0 が真であり、かつ §1 も真であるならば、矛盾を導き出すことができます。" + +#: Game.Levels.Implication.L08ne +#. §0: `a ≠ b` +#. §1: `(a = b) → False` +#. §2: `P` +#. §3: `P → False` +#. §4: `P` +#. §5: `True → False` +#. §6: `False → False` +#. §7: `a ≠ b` +#. §8: `P → Q` +#. §9: `a ≠ b` +#. §10: `intro h` +#. §11: `h` +#. §12: `a ≠ b` +#. §13: `apply h at h1` +#. §14: `h1` +#. §15: `a = b` +msgid "" +"§0 is *notation* for §1.\n" "\n" -"Lean が §72 を §73 に書き換えることを保証します。これは、\n" +"The reason this is mathematically\n" +"valid is that if §2 is a true-false statement then §3\n" +"is the logical opposite of §4. Indeed §5 is false,\n" +"and §6 is true!\n" "\n" -"§74 は §75 を証明しており、\n" +"The upshot of this is that you can treat §7 in exactly\n" +"the same way as you treat any implication §8. For example,\n" +"if your *goal* is of the form §9 then you can make progress\n" +"with §10, and if you have a hypothesis §11 of the\n" +"form §12 then you can §13 if §14 is a proof\n" +"of §15." +msgstr "" +"§0は§1の*表記*です。\n" "\n" -"§76 は §77 を証明しており、\n" +"このことが数学的に成り立つ理由は、§2が真偽に関する主張である場合、§3は§4の論理的な否定であるからです。実際、§5は偽であり、§6は真です!\n" "\n" -"§78 は §79 を証明しているためです。\n" +"このことから、§7を任意の推論§8と同じように扱うことができます。例えば、あなたの*目標*が§9のような形であれば、§10" +"を用いて進展できます。また、仮定§11が§12のような形である場合、§13を行うことが可能です(ただし、§14が§15の証明である場合に限ります)。" + +#: Game.Levels.Implication.L08ne +#. §0: `h2` +#. §1: `x = y → False` +#. §2: `apply` +#. §3: `h2` +#. §4: `at h1` +#, fuzzy +msgid "" +"Remember that §0 is a proof of §1. Try\n" +"§2ing §3 either §4 or directly to the goal." +msgstr "" +"§0は§1の証明であることを覚えておいてください。\n" +"§2 §3 を、 §4 または直接目標に対して実行できます。" + +# no-translate +#: Game.Levels.Implication.L08ne +msgid "≠" +msgstr "≠" + +#: Game.Levels.Implication.L08ne +#. §0: `2 + 2 ≠ 5` +#. §1: `≠` +#. §2: `a ≠ b` +#. §3: `a = b → False` +#. §4: `False` +#. §5: `→` +#. §6: `True → False` +#. §7: `False → False` +#. §8: `X → False` +#. §9: `X` +#. §10: `a ≠ b` +#. §11: `False` +#. §12: `False` +msgid "" +"We still can't prove §0 because we have not talked about the\n" +"definition of §1. In Lean, §2 is *notation* for §3.\n" +"Here §4 is a generic false proposition, and §5 is Lean's notation\n" +"for \"implies\". In logic we learn\n" +"that §6 is false, but §7 is true. Hence\n" +"§8 is the logical opposite of §9.\n" "\n" -"§80 が成立する場合、\n" +"Even though §10 does not look like an implication,\n" +"you should treat it as an implication. The next two levels will show you " +"how.\n" "\n" -"§81 はすべての §82 を §83 に変換します。\n" +"§11 is a goal which you cannot deduce from a consistent set of assumptions!\n" +"So if your goal is §12 then you had better hope that your hypotheses\n" +"are contradictory, which they are in this level." +msgstr "" +"まだ §0 の証明はできません。なぜなら、§1 の定義について議論していないからです。Lean では、§2 は §3 の *表記* です。\n" +"ここでは §4 は一般的な偽命題であり、§5 は Lean における \"implies\" の表記です。論理学では §6 " +"が偽であると学習しますが、§7 は真です。したがって §8 は §9 の論理的対偶となります。\n" "\n" -"§84 の 37 番目の出現のみを §85 に変更したい場合は、\n" +"§10 は含意のように見えないかもしれませんが、含意として扱うべきです。次の 2 つのレベルでその方法を学びます。\n" "\n" -"§86 を実行します。" - -# no-translate -#: Game.Levels.AdvAddition.L06add_left_eq_zero -msgid "add_left_eq_zero" -msgstr "add_left_eq_zero" +"§11 は一貫性のある仮定から導き出せない目標です!したがって、目標が §12 の場合、仮定が矛盾していることを期待し、このレベルではそうしています。" -#: Game.Levels.Tutorial.L07add_succ Game.Levels.Tutorial.L08twoaddtwo -#. §0: `rw [add_succ]` -msgid "Now you can §0" -msgstr "§0ができます。" +#: Game.Levels.Implication.L09zero_ne_succ +#: Game.Levels.AdvMultiplication.L06mul_right_eq_one +#. §0: `apply zero_ne_succ at h` +msgid "Now you can §0." +msgstr "§0 を使用できます。" -#: Game.Levels.Implication.L04succ_inj -#. §0: `←` -#. §1: `rw` -#. §2: `rw` -#. §3: `←` -#. §4: `\\l` +#: Game.Levels.Implication.L09zero_ne_succ +#. §0: `2 + 2 ≠ 5` +#. §1: `0 ≠ 1` +#. §2: `zero_ne_succ n` +#. §3: `0 ≠ succ n` msgid "" -"You can put a §0 in front of any theorem provided to §1 to rewrite\n" -"the other way around. Look at the docs for §2 for an explanation. Type §3 " -"with §4." +"As warm-up for §0 let's prove §1. To do this we need to\n" +"introduce Peano's last axiom §2, a proof that §3.\n" +"To learn about this result, click on it in the list of lemmas on the right." msgstr "" -"任意の定理 §1 の先頭に §0 を付与することで、その定理を逆方向に記述することができます。詳細については、§2 " -"のドキュメントをご参照ください。「§4」と入力し、その後「§3」を入力してください。" +"ウォーミングアップとして、§0 の前に §1 を証明します。これを行うためには、ペアノの最後の公理 §2 と §3 " +"の証明が必要です。この結果について学ぶには、右側の定理一覧から該当する項目をクリックしてください。" -#: Game.Levels.Implication.L05succ_inj2 -#. §0: `exact h` -msgid "You can now finish with §0." -msgstr "これで §0 の部分を完了してください。" +# no-translate +#: Game.Levels.Implication.L09zero_ne_succ +msgid "zero_ne_succ" +msgstr "zero_ne_succ" -#: Game -msgid "Natural Number Game" -msgstr "自然数ゲーム" +#: Game.Levels.Implication.L09zero_ne_succ +#. §0: `1` +#. §1: `succ 0` +#. §2: `h` +msgid "Now change §0 to §1 in §2." +msgstr "§2 の §0 を §1 に変更してください。" -#: Game.Levels.AdvAddition.L05add_right_eq_zero -#. §0: `n` -#. §1: `cases n with d` -#. §2: `n = 0` -#. §3: `n = succ d` -#. §4: `h` -#. §5: `cases h with...` -#. §6: `n : ℕ` -#. §7: `cases n with d` -#. §8: `n` -#. §9: `n` -#. §10: `succ d` -#. §11: `0` -#. §12: `h : P ∨ Q` -#. §13: `cases h with hp hq` -#. §14: `hp : P` -#. §15: `hq : Q` -#. §16: `h : False` -#. §17: `cases h` -#. §18: `False` -#. §19: `h : a ≤ b` -#. §20: `cases h with c hc` -#. §21: `c` -#. §22: `hc : b = a + c` -#. §23: `a ≤ b` -#. §24: `∃ c, b = a + c` +#: Game.Levels.Implication.L09zero_ne_succ +#. §0: `zero_ne_succ n` +#. §1: `0 ≠ succ n` +#. §2: `a ≠ b` +#. §3: `a = b → False` +#. §4: `zero_ne_succ n` +#. §5: `0 = succ n → False` +#. §6: `False` +#. §7: `apply zero_ne_succ at h` +#. §8: `h` +#. §9: `0 = succ n` +msgid "" +"§0 is the proof that §1.\n" +"\n" +"In Lean, §2 is *defined to mean* §3. Hence\n" +"§4 is really a proof of §5.\n" +"Here §6 is a generic false statement. This means that\n" +"you can §7 if §8 is a proof of §9." +msgstr "" +"§0 は §1 の証明を示します。\n" +"\n" +"Lean では、§2 が §3 に *定義されている* ことを意味します。したがって、§4 は実際に §5 の証明です。ここで §6 " +"は一般的な偽の命題です。つまり、§8 が §9 の証明である場合、§7 を実行できます。" + +#: Game.Levels.Implication.L09zero_ne_succ +#: Game.Levels.AdvAddition.L01add_right_cancel +msgid "Nice!" +msgstr "素晴らしい!" + +#: Game.Levels.Implication.L09zero_ne_succ Game.Levels.LessOrEqual.L04le_trans +#: Game.Levels.LessOrEqual.L08le_total +#: Game.Levels.AdvMultiplication.L02mul_left_ne_zero +#: Game.Levels.AdvMultiplication.L08mul_eq_zero +#. §0: `intro h` +msgid "Start with §0." +msgstr "§0 から開始してください。" + +#: Game.Levels.Implication.L10one_ne_zero +#. §0: `symm` +#. §1: `X = Y` +#. §2: `Y = X` +#. §3: `X ≠ Y` +#. §4: `X ↔ Y` +#. §5: `2 + 2 = 4` +#. §6: `symm` +#. §7: `4 = 2 + 2` +#. §8: `h : 2 + 2 ≠ 5` +#. §9: `symm at h` +#. §10: `h` +#. §11: `5 ≠ 2 + 2` msgid "" "## Summary\n" "\n" -"If §0 is a number, then §1 will break the goal into two goals,\n" -"one with §2 and the other with §3.\n" +"The §0 tactic will change a goal or hypothesis of\n" +"the form §1 to §2. It will also work on §3\n" +"and on §4.\n" "\n" -"If §4 is a proof (for example a hypothesis), then §5 will break the\n" -"proof up into the pieces used to prove it.\n" +"### Example\n" "\n" -"## Example\n" +"If the goal is §5 then §6 will change it to §7.\n" "\n" -"If §6 is a number, then §7 will break the goal into two goals,\n" -"one with §8 replaced by 0 and the other with §9 replaced by §10. This\n" -"corresponds to the mathematical idea that every natural number is either " -"§11\n" -"or a successor.\n" +"### Example\n" "\n" -"## Example\n" +"If §8 then §9 will change §10 to §11." +msgstr "" +"## 概要\n" "\n" -"If §12 is a hypothesis, then §13 will turn one goal\n" -"into two goals, one with a hypothesis §14 and the other with a\n" -"hypothesis §15.\n" +"タクティク §0 は、目標または仮定が §1 の形式の場合を §2 に変更します。また、§3 および §4 も対象となります。\n" "\n" -"## Example\n" +"### 例\n" "\n" -"If §16 is a hypothesis, then §17 will turn one goal into no goals,\n" -"because there are no ways to make a proof of §18! And if you have no goals " -"left,\n" -"you have finished the level.\n" +"もし目標が §5 の場合、§6 によってそれを §7 に変更します。\n" "\n" -"## Example\n" +"### 例\n" "\n" -"If §19 is a hypothesis, then §20 will create a new number §21\n" -"and a proof §22. This is because the *definition* of §23 is\n" -"§24." +"もし §8 の場合、§9 によって §10 を §11 に変更します。" + +# no-translate +#: Game.Levels.Implication.L10one_ne_zero +msgid "1 ≠ 0" +msgstr "1 ≠ 0" + +#: Game.Levels.Implication.L10one_ne_zero +#. §0: `zero_ne_succ n` +#. §1: `0 = succ n → False` +#. §2: `succ n = 0` +#. §3: `symm` +#. §4: `x = y` +#. §5: `y = x` +#. §6: `x ≠ y` +#. §7: `y ≠ x` +#. §8: `symm at h` +#. §9: `h` +#. §10: $0 \\neq 1$ +#. §11: `zero_ne_one` +#. §12: $1 \\neq 0$ +msgid "" +"We know §0 is a proof of §1 -- but what\n" +"if we have a hypothesis §2? It's the wrong way around!\n" +"\n" +"The §3 tactic changes a goal §4 to §5, and a goal §6\n" +"to §7. And §8\n" +"does the same for a hypothesis §9. We've proved §10 and called\n" +"the proof §11; now try proving §12." msgstr "" -"## 概要\n" +"私たちは、§0 が §1 の証明であることを知っています。しかし、もし §2 という仮定がある場合、それは逆になってしまいます。\n" "\n" -"もし §0 が数値である場合、§1 は目標を二つに分割し、一つには §2 を、もう一つには §3 を含めます。\n" +"§3 のタクティクは、目標 §4 を §5 に、目標 §6 を §7 に変更します。また、§8 も仮定 §9 に対して同様の操作を行います。\n" "\n" -"もし §4 が証明(例えば仮定)である場合、§5 はその証明に使用された部分に分割します。\n" +"§10 を証明し、その証明を §11 と命名しました。次に §12 を証明してみてください。" + +#: Game.Levels.Implication.L10one_ne_zero +#. §0: ``` +#. symm +#. exact zero_ne_one +#. ``` +#. §1: `exact` +msgid "" +"What do you think of this two-liner:\n" +"§0\n" "\n" -"## 例\n" +"§1 doesn't just take hypotheses, it will eat any proof which exists\n" +"in the system." +msgstr "" +"この2行についてどう思いますか:\n" +"§0\n" "\n" -"もし §6 が数値である場合、§7 は目標を二つに分割し、一つには §8 を 0 に置き換えたもの、もう一つには §9 を §10 " -"に置き換えたものが含まれます。これは、すべての自然数が §11 または後続数であることを示す数学的な考え方に合致します。\n" +"§1 は、単に仮定を受け取るだけでなく、システム内に存在する任意の証明を評価します。" + +# no-translate +#: Game.Levels.Implication.L11two_add_two_ne_five +msgid "2 + 2 ≠ 5" +msgstr "2 + 2 ≠ 5" + +#: Game.Levels.Implication.L11two_add_two_ne_five +#. §0: `zero_ne_succ` +#. §1: `succ_inj` +msgid "" +"2 + 2 ≠ 5 is boring to prove in full, given only the tools we have " +"currently.\n" +"To make it a bit less painful, I have unfolded all of the numerals for you.\n" +"See if you can use §0 and §1 to prove this." +msgstr "" +"現在のツールだけでは、2 + 2 ≠ 5 の完全な証明は困難です。\n" +"より簡単に証明できるよう、すべての数字を展開しました。\n" +"§0 および §1 を使用して、この証明を試みてください。" + +#: Game.Levels.Implication.L11two_add_two_ne_five +#. §0: ``` +#. intro h +#. rw [add_succ, add_succ, add_zero] at h +#. repeat apply succ_inj at h +#. apply zero_ne_succ at h +#. exact h +#. ``` +#. §1: $20 + 20 ≠ 41$ +msgid "" +"Here's my proof:\n" +"§0\n" "\n" -"## 例\n" +"Even though Lean is a theorem prover, right now it's pretty clear that we " +"have not\n" +"developed enough material to make it an adequate calculator. In Algorithm\n" +"World, a more computer-sciency world, we will develop machinery which makes\n" +"questions like this much easier, and goals like §1 feasible.\n" +"Alternatively you can do more mathematics in Advanced Addition World, where " +"we prove\n" +"the lemmas needed to get a working theory of inequalities. Click \"Home\" " +"and\n" +"decide your route." +msgstr "" +"私の証明:\n" +"§0\n" "\n" -"もし §12 が仮定である場合、§13 は一つの目標を二つに分割し、一つには §14 という仮定が含まれ、もう一つには §15 " -"という仮定が含まれます。\n" +"Leanは定理証明システムですが、現時点では十分な量の理論が開発されておらず、適切な計算機としての機能を十分に備えていません。アルゴリズムワールドでは、" +"よりコンピュータサイエンスに特化した環境で、このような問題を扱うための機械を開発し、§1" +"のような目標を達成することが可能になります。あるいは、不等式の理論を実現するための補題を証明する高度な加算ワールドで、より多くの数学を学ぶこともできます" +"。「ホーム」をクリックして、ご自身のルートを選択してください。" + +#: Game.Levels.Power +#. §0: `37 ^ n` +#. §1: `37 ^ 0` +#. §2: `37 ^ (succ d)` +#. §3: `37 ^ d` +#. §4: `pow_zero (a : ℕ) : a ^ 0 = 1` +#. §5: `pow_succ (a b : ℕ) : a ^ succ b = a ^ b * a` +msgid "" +"This world introduces exponentiation. If you want to define §0\n" +"then, as always, you will need to know what §1 is, and\n" +"what §2 is, given only §3.\n" "\n" -"## 例\n" +"You can probably guess the names of the general theorems:\n" "\n" -"もし §16 が仮定である場合、§17 は一つの目標を無数の目標に分割しません。なぜなら、§18 " -"の証明方法が存在しないからです!そして、目標が残っていない場合、レベルは終了します。\n" +" * §4\n" +" * §5\n" "\n" -"## 例\n" +"Using only these, can you get past the final boss level?\n" "\n" -"もし §19 が仮定である場合、§20 は新しい数値 §21 と証明 §22 を作成します。これは §23 の定義が §24 であるからです。" +"The levels in this world were designed by Sian Carey, a UROP student\n" +"at Imperial College London, funded by a Mary Lister McCammon Fellowship\n" +"in the summer of 2019. Thanks to Sian and also thanks to Imperial\n" +"College for funding her." +msgstr "" +"このワールドでは指数演算が導入されます。§0を定義するには、常に §1 と §2 が何であるかを知る必要があります。そして、それらを §3 " +"だけを使って推測する必要があります。\n" +"\n" +"一般的な定理の名前はおそらく予想できるでしょう:\n" +"\n" +" * §4\n" +" * §5\n" +"\n" +"これらのものだけを使って最終ボスレベルを突破できるでしょうか?\n" +"\n" +"この世界のレベルは、2019年夏にMary Lister McCammon助成金によりImperial College " +"LondonのUROP学生であるSian Careyによって設計されました。Sianに感謝します。また、Imperial " +"Collegeの助成にも感謝します。" -#: Game.Levels.LessOrEqual.L04le_trans -#. §0: `«{ha}»` -#. §1: `«{y}» = «{x}» + «{a}»` -#. §2: `hxy` -#. §3: `«{hyz}»` -#. §4: `cases «{hyz}» with b hb` -msgid "" -"Now §0 is a proof that §1, and §2 has vanished. Similarly, you can destruct\n" -"§3 into its parts with §4." -msgstr "現在、§0 は §1 の証明を示します。また、§2 は消えました。同様に、§4 を用いて §3 を構成要素に分解することができます。" +#: Game.Levels.Power +msgid "Power World" +msgstr "冪乗ワールド" -#: Game.Levels.Implication.L04succ_inj -msgid "succ_inj : the successor function is injective" -msgstr "succ_inj : 後者関数は単射" +# no-translate +#: Game.Levels.Power.L01zero_pow_zero +msgid "zero_pow_zero" +msgstr "zero_pow_zero" -#: Game.Levels.Tutorial.L06add_zero2 -#. §0: `b + 0` -#. §1: `c + 0` -#. §2: `rw [add_zero]` -#. §3: `b + 0` -#. §4: `c + 0` -#. §5: `add_zero` +#: Game.Levels.Power.L01zero_pow_zero +#. §0: `pow_zero a : a ^ 0 = 1` msgid "" -"## Precision rewriting\n" -"\n" -"In the last level, there was §0 and §1,\n" -"and §2 changed the first one it saw,\n" -"which was §3. Let's learn how to tell Lean\n" -"to change §4 first by giving §5 an\n" -"explicit input." +"§0 is one of the two axioms\n" +"defining exponentiation in this game." +msgstr "§0は、このゲームにおける指数関数の定義を定める公理のうちの1つです。" + +#: Game.Levels.Power.L01zero_pow_zero +#. §0: `0 ^ 0` +#. §1: `0 ^ 0 = 1` +msgid "" +"Mathematicians sometimes debate what §0 is;\n" +"the answer depends, of course, on your definitions. In this\n" +"game, §1. See if you can prove it.\n" +"\n" +"Check out the *Pow* tab in your list of theorems\n" +"to see the new proofs which are available." msgstr "" -"## 精密な書き換え\n" +"数学者は、§0 が何であるかを議論することがあります。その答えは、定義によって異なります。このゲームでは、§1 " +"です。証明できるかを試してみてください。\n" "\n" -"直前のレベルでは、§0 と §1 が存在し、\n" -"§2 は最初に見つかった §3 を変更しました。\n" -"Lean に §4 を最初に変更させる方法を学びましょう。\n" -"これを行うには、§5 に明示的な入力を与えます。" +"証明一覧のタブから *Pow* (訳注: `^`) を選択して、利用可能な新しい証明を確認してください。" -#: Game.Levels.LessOrEqual.L01le_refl -#. §0: `a ≤ b` -#. §1: `∃ c, b = a + c` -#. §2: `a ≤ b` -#. §3: `use` -#. §4: `h : a ≤ b` -#. §5: `cases h with c hc` +#: Game.Levels.Power.L01zero_pow_zero +#. §0: `Pow a b` +#. §1: `a ^ b` +#. §2: `pow_zero a : a ^ 0 = 1` +#. §3: `pow_succ a b : a ^ succ b = a ^ b * a` +#. §4: `0 ^ 0 = 1` msgid "" -"§0 is *notation* for §1.\n" +"§0, with notation §1, is the usual\n" +" exponentiation of natural numbers. Internally it is\n" +" defined via two axioms:\n" "\n" -"Because this game doesn't have negative numbers, this definition\n" -"is mathematically valid.\n" +" * §2\n" "\n" -"This means that if you have a goal of the form §2 you can\n" -"make progress with the §3 tactic, and if you have a hypothesis\n" -"§4, you can make progress with §5." +" * §3\n" +"\n" +"Note in particular that §4." msgstr "" -"§0は§1の表記です。\n" +"§0、記号§1を用いる場合は、通常の自然数の累乗を意味します。内部的には、以下の2つの公理によって定義されます。\n" "\n" -"このゲームには負の数が存在しないため、この定義は数学的に有効です。\n" +"* §2\n" "\n" -"これにより、あなたが§2という形式の目標を持つ場合、§3の手法を用いて進展できます。また、仮定§4を持っている場合、§5の手法を用いて進展できます。" - -#: Game.Levels.Implication.L06intro -#. §0: `exact h` -msgid "Now §0 finishes the job." -msgstr "これで §0 が目的を達成します。" - -#: Game.Levels.LessOrEqual.L01le_refl -#. §0: `«{x}» ≤ «{x}»` -#. §1: `«{x}» = «{x}» + 0` -#. §2: `use 0` -msgid "" -"The reason §0 is because §1.\n" -"So you should start this proof with §2." -msgstr "理由は§0であるため、この命題は正しいと言えます。したがって、この証明は§2から始めるのが適切です。" - -#: Game.Levels.LessOrEqual.L04le_trans Game.Levels.LessOrEqual.L06le_antisymm -#. §0: $x \\leq y$ -#. §1: $y \\leq z$ -#. §2: $x \\leq z$ -msgid "If §0 and §1, then §2." -msgstr "もし §0 かつ §1 が真ならば、§2 は真である。" +"* §3\n" +"\n" +"特に注意すべきは§4です。" -#: Game.Levels.AdvMultiplication.L05le_mul_right -#. §0: ``` -#. apply mul_left_ne_zero at h -#. apply one_le_of_ne_zero at h -#. apply mul_le_mul_right 1 b a at h -#. rw [one_mul, mul_comm] at h -#. exact h -#. ``` +#: Game.Levels.Power.L01zero_pow_zero +#. §0: `0 ^ 0 = 0` +#. §1: `0 ^ 0 = 1` msgid "" -"Here's what I was thinking of:\n" -"§0" +"Mathematicians sometimes argue that §0 is also\n" +"a good convention. But it is not a good convention in this\n" +"game; all the later levels come out beautifully with the\n" +"convention that §1." msgstr "" -"以下のように考えていました:\n" -"§0" +"数学者は、§0も有効な慣習であると主張することもあります。しかし、このゲームにおいては、そのような慣習は適切ではありません。§1" +"の慣習を用いると、以降のすべてのレベルが自然に解決されます。" -#: Game.Levels.Tutorial.L08twoaddtwo -#. §0: `nth_rewrite 2 [two_eq_succ_one]` -#. §1: `rw [two_eq_succ_one]` -msgid "§0 is I think quicker than §1." -msgstr "§0 は、§1 よりも高速であると推測されます。" +#: Game.Levels.Power.L02zero_pow_succ +#. §0: $m$ +#. §1: $0 ^{\\operatorname{succ} (m)} = 0$ +msgid "For all numbers §0, §1." +msgstr "すべての数 §0 について、 §1 。" -#: GameServer.RpcHandlers -msgid "intermediate goal solved! 🎉" -msgstr "中間目標が達成されました!🎉" +#: Game.Levels.Power.L02zero_pow_succ +#. §0: $0^0=1$ +#. §1: $0^n=0$ +#. §2: $n>0$ +#. §3: $n$ +msgid "" +"Although §0 in this game, §1 if §2, i.e., if\n" +"§3 is a successor." +msgstr "このゲームでは、§0 が成立し、かつ §1 が §2 となる場合、つまり §3 がその後の値である場合に、以下のことが言えます。" -#: Game.Levels.Addition.L04add_assoc -#. §0: $a, b$ -#. §1: $c$ -#. §2: $ (a + b) + c = a + (b + c). $ +#: Game.Levels.Power.L02zero_pow_succ +#. §0: `0 ^ 0 = 1` +#. §1: `n` +#. §2: `0 ^ n = 0` msgid "" -"On the set of natural numbers, addition is associative.\n" -"In other words, if §0 and §1 are arbitrary natural numbers, we have\n" -"§2" -msgstr "" -"自然数全体の集合においては、加算は結合法則に従います。\n" -"言い換えれば、任意の自然数 §0 と §1 が与えられたとき、以下の関係が成り立ちます。\n" -"§2" +"We've just seen that §0, but if §1\n" +"is a successor, then §2. We prove that here." +msgstr "これまでに §0 について説明しました。しかし、もし §1 が後続の値であるならば、それは §2 となります。このことの証明を以下に示します。" -#: Game.Levels.LessOrEqual.L04le_trans -#. §0: `use` +#: Game.Levels.Power.L02zero_pow_succ +#. §0: `pow_succ a b : a ^ (succ b) = a ^ b * a` msgid "" -"Now you need to figure out which number to §0. See if you can take it from " -"here." -msgstr "今度は、 §0 の部分にどのような数値を入力すれば良いか検討してください。この部分から推論を進めることができれば、ご自身で試してみてください。" +"§0 is one of the\n" +"two axioms defining exponentiation in this game." +msgstr "§0は、このゲームにおける指数関数の定義を定める2つの公理のうちの1つです。" -#: Game.Levels.Implication.L03apply -#. §0: `t : P → Q` -#. §1: $P \\implies Q$ -#. §2: `h : P` -#. §3: `P` -#. §4: `apply t at h` -#. §5: `h` -#. §6: `Q` -#. §7: `P` -#. §8: `t` -#. §9: `Q` -#. §10: `Q` -#. §11: `apply t` -#. §12: `P` -#. §13: `Q` -#. §14: `t` -#. §15: `P` -#. §16: `P` -#. §17: `succ_inj x y` -#. §18: `succ x = succ y → x = y` -#. §19: `h : succ (a + 37) = succ (b + 42)` -#. §20: `apply succ_inj at h` -#. §21: `h` -#. §22: `a + 37 = b + 42` -#. §23: `apply succ_inj (a + 37) (b + 42) at h` -#. §24: `succ_inj` -#. §25: `a * b = 7` -#. §26: `apply succ_inj` -#. §27: `succ (a * b) = succ 7` +# no-translate +#: Game.Levels.Power.L02zero_pow_succ +msgid "zero_pow_succ" +msgstr "zero_pow_succ" + +#: Game.Levels.Power.L03pow_one Game.Levels.Power.L04one_pow +#: Game.Levels.Power.L05pow_two +#. §0: $a$ +#. §1: $a ^ 1 = a$ +msgid "For all naturals §0, §1." +msgstr "全ての自然数 §0 について、 §1 。" + +#: Game.Levels.Power.L03pow_one +#. §0: `pow_one a` +#. §1: `a ^ 1 = a` +#. §2: `a ^ 1` +#. §3: `a ^ 0 * a` +#. §4: `1 * a` +#. §5: `a` msgid "" -"## Summary\n" -"\n" -"If §0 is a proof that §1, and §2 is a proof of §3,\n" -"then §4 will change §5 to a proof of §6. The idea is that if\n" -"you know §7 is true, then you can deduce from §8 that §9 is true.\n" -"\n" -"If the *goal* is §10, then §11 will \\\\\"argue backwards\\\\\" and change " -"the\n" -"goal to §12. The idea here is that if you want to prove §13, then by §14\n" -"it suffices to prove §15, so you can reduce the goal to proving §16.\n" -"\n" -"### Example:\n" -"\n" -"§17 is a proof that §18.\n" -"\n" -"So if you have a hypothesis §19\n" -"then §20 will change §21 to §22.\n" -"You could write §23\n" -"but Lean is smart enough to figure out the inputs to §24.\n" -"\n" -"### Example\n" +"§0 says that §1.\n" "\n" -"If the goal is §25, then §26 will turn the\n" -"goal into §27." +"Note that this is not quite true by definition: §2 is\n" +"defined to be §3 so it's §4, and to prove\n" +"that this is equal to §5 you need to use induction somewhere." msgstr "" -"## 概要\n" -"\n" -"もし §0 が §1 の証明であり、 §2 が §3 の証明である場合、§4 は §5 を §6 の証明に変換します。つまり、§7 " -"が真であることを知っている場合、§8 から §9 が真であることを導くことができます。\n" -"\n" -"もし *目標* が §10 である場合、§11 は「逆向きに推論」し、目標を §12 に変更します。この手法は、§13 を証明するために §14 から " -"§15 を証明すれば十分であるという考えに基づいています。したがって、目標を §16 の証明に簡略化できます。\n" -"\n" -"### 例:\n" -"\n" -"§17 が §18 の証明であるとします。\n" -"\n" -"仮定として §19 がある場合、§20 は §21 を §22 に変更します。 §23 のような記述も可能です。ただし、Lean は §24 " -"の入力を見抜くことができます。\n" -"\n" -"### 例\n" +"§0 は §1 を意味します。\n" "\n" -"もし目標が §25 である場合、§26 は目標を §27 に変更します。" +"ただし、これは定義によるものではありません:§2 は §3 と定義されているため、§4 " +"となり、これらが等しいことを証明するためには、どこかで数学的帰納法を用いる必要があります。" + +# no-translate +#: Game.Levels.Power.L03pow_one +msgid "pow_one" +msgstr "pow_one" + +# no-translate +#: Game.Levels.Power.L04one_pow +msgid "one_pow" +msgstr "one_pow" + +#: Game.Levels.Power.L05pow_two +msgid "Note: this lemma will be useful for the final boss!" +msgstr "この定理は、最終ボスとの戦闘において役立ちます。" + +#: Game.Levels.Power.L05pow_two +#. §0: `pow_two a` +#. §1: `a ^ 2 = a * a` +msgid "§0 says that §1." +msgstr "§0 は、§1 を述べています。" + +# no-translate +#: Game.Levels.Power.L05pow_two +msgid "pow_two" +msgstr "pow_two" -#: Game.Levels.LessOrEqual.L08le_total -#. §0: `cases «{h2}» with e he` -msgid "Now §0." -msgstr "§0 をしましょう。" +# no-translate +#: Game.Levels.Power.L06pow_add +msgid "pow_add" +msgstr "pow_add" -#: Game.Levels.Multiplication.L08add_mul -#. §0: `add_mul` -msgid "" -"§0 is just as fiddly to prove by induction; but there's a trick\n" -"which avoids it. Can you spot it?" -msgstr "§0を帰納法で証明することは、同様に複雑です。しかし、それを利用せずに証明できる方法があります。それは何かを見抜けますか?" +#: Game.Levels.Power.L06pow_add Game.Levels.Power.L07mul_pow +#: Game.Levels.Power.L08pow_pow +#. §0: $a$ +#. §1: $m$ +#. §2: $n$ +#. §3: $a^{m + n} = a ^ m a ^ n$ +msgid "For all naturals §0, §1, §2, we have §3." +msgstr "すべての自然数 §0, §1, §2 に対して、 §3 が成り立ちます。" -#: Game.Levels.Implication.L07intro2 -#. §0: `repeat rw [← succ_eq_add_one] at h` -#. §1: `h` -#. §2: `succ x = succ y` +#: Game.Levels.Power.L06pow_add msgid "" -"Now §0 is the quickest way to\n" -"change §1 to §2." -msgstr "現在、§0 は §1 を §2 に変更するための最も効率的な手段です。" +"Let's now begin our approach to the final boss,\n" +"by proving some more subtle facts about powers." +msgstr "それでは、最終ボスの攻略に向けて、さらに詳細な冪乗に関する事実の証明から始めましょう。" -#: Game.Levels.LessOrEqual.L03le_succ_self -#. §0: ``` -#. use 1 -#. exact succ_eq_add_one x -#. ``` -#. §1: `succ_eq_add_one x` -#. §2: `succ x = x + 1` +#: Game.Levels.Power.L06pow_add Game.Levels.Power.L07mul_pow +#: Game.Levels.Power.L08pow_pow +#. §0: `pow_add a m n` +#. §1: $a^{m+n}=a^ma^n.$ +msgid "§0 is a proof that §1" +msgstr "§0 は §1 の証明を示すものです。" + +# no-translate +#: Game.Levels.Power.L07mul_pow +msgid "mul_pow" +msgstr "mul_pow" + +#: Game.Levels.Power.L07mul_pow +#. §0: `a * b` +#. §1: `rw [mul_comm]` +#. §2: `rw` msgid "" -"Here's a two-liner:\n" -"§0\n" +"The music gets ever more dramatic, as we explore\n" +"the interplay between exponentiation and multiplication.\n" "\n" -"This works because §1 is a proof of §2." +"If you're having trouble exchanging the right §0\n" +"because §1 swaps the wrong multiplication,\n" +"then read the documentation of §2 for tips on how to fix this." msgstr "" -"以下は2行で構成された証明です:\n" -"§0\n" +"音楽はますますドラマチックになり、指数演算と乗算の関係を探求します。\n" "\n" -"これは、§1が§2を証明するため有効です。" - -#: Game.Levels.Algorithm.L06is_zero -#. §0: `intro h` -#. §1: `X ≠ Y` -#. §2: `X = Y → False` -msgid "" -"Start with §0 (remembering that §1 is just notation\n" -"for §2)." -msgstr "§0 から開始してください(§1 が §2 の表記法であるという点にご留意ください)。" +"もし、指数演算と乗算の順序を正しく交換できない場合で、§1 が誤った乗算を交換してしまう場合は、§2 " +"のドキュメンテーションを参照して修正方法を確認してください。" -#: Game.Levels.Addition.L01zero_add -#. §0: `n` -#. §1: `induction n with d hd` +#: Game.Levels.Power.L08pow_pow +#. §0: `pow_pow` msgid "" -"You can start a proof by induction on §0 by typing:\n" -"§1." +"One of the best named levels in the game, a savage §0\n" +"sub-boss appears as the music reaches a frenzy. What\n" +"else could there be to prove about powers after this?" msgstr "" -"帰納法を用いて§0について証明を開始するには、次のように入力してください。\n" -"§1." +"ゲーム内で最も適切に名前が付けられたレベルの一つとして知られる場面では、音楽が最高潮に達すると、凶暴なサブボスが出現します。これ以降、冪乗に関するどのよ" +"うなことが証明可能でしょうか?" -#: Game.Levels.Tutorial.L08twoaddtwo -#. §0: ```lean -#. nth_rewrite 2 [two_eq_succ_one] -- only change the second `2` to `succ 1`. -#. rw [add_succ] -#. rw [one_eq_succ_zero] -#. rw [add_succ, add_zero] -- two rewrites at once -#. rw [← three_eq_succ_two] -- change `succ 2` to `3` -#. rw [← four_eq_succ_three] -#. rfl -#. ``` -#. §1: `` -#. §2: `>_` -#. §3: `induction` +# no-translate +#: Game.Levels.Power.L08pow_pow +msgid "pow_pow" +msgstr "pow_pow" + +#: Game.Levels.Power.L08pow_pow msgid "" -"Here is an example proof of 2+2=4 showing off various techniques.\n" +"The music dies down. Is that it?\n" "\n" -"§0\n" +"Course it isn't, you can\n" +"clearly see that there are two levels left.\n" "\n" -"Optional extra: you can run this proof yourself. Switch the game into " -"\"Editor mode\" by clicking\n" -"on the §1 button in the top right. You can now see your proof\n" -"written as several lines of code. Move your cursor between lines to see\n" -"the goal state at any point. Now cut and paste your code elsewhere if you\n" -"want to save it, and paste the above proof in instead. Move your cursor\n" -"around to investigate. When you've finished, click the §2 button in the top " -"right to\n" -"move back into \"Typewriter mode\".\n" +"A passing mathematician says that mathematicians don't have a name\n" +"for the structure you just constructed. You feel cheated.\n" "\n" -"You have finished tutorial world!\n" -"Click \"Home\" to go back to the\n" -"overworld, and select Addition World, where you will learn\n" -"about the §3 tactic." +"Suddenly the music starts up again. This really is the final boss." msgstr "" -"以下は2+2=4を示す証明の例で、様々な手法を披露しています。\n" +"音楽は静まり返ります。これで終わりですか?\n" "\n" -"§0\n" +"まだ2つのレベルが存在することが分かります。\n" "\n" -"オプション:自分でこの証明を実行することもできます。「エディタモード」に切り替えるには、右上の§1" -"ボタンをクリックしてください。現在の証明は、複数行のコードとして表示されます。行の間でカーソルを動かすことで、任意のポイントでの目標状態を確認できます。" -"証明を保存したい場合は、コードを他の場所にコピーし、上記の証明を代入できます。カーソルを動かして調査してください。終了したら、右上の§2" -"ボタンをクリックして「タイプライターモード」に戻ります。\n" +"通りすがりの数学者が、「あなたが構築した構造には、数学的な名称がない」と言います。あなたは落胆します。\n" "\n" -"チュートリアルワールドを終了しました!\n" -"「ホーム」をクリックしてオーバーワールドに戻り、加算ワールドを選択して§3タクティクについて学びます。" +"突然、再び音楽が流れ始めます。これがまさに最終ボスです。" -#: Game.Levels.Power.L01zero_pow_zero -#. §0: `Pow a b` -#. §1: `a ^ b` -#. §2: `pow_zero a : a ^ 0 = 1` -#. §3: `pow_succ a b : a ^ succ b = a ^ b * a` -#. §4: `0 ^ 0 = 1` +#: Game.Levels.Power.L09add_sq +#. §0: `add_sq a b` +#. §1: $(a+b)^2=a^2+b^2+2ab.$ +msgid "§0 is the statement that §1" +msgstr "§0 は §1 を表す命題です。" + +#: Game.Levels.Power.L09add_sq +#. §0: $(a+b)^2=a^2+b^2$ msgid "" -"§0, with notation §1, is the usual\n" -" exponentiation of natural numbers. Internally it is\n" -" defined via two axioms:\n" -"\n" -" * §2\n" +"It's all over! You have proved a theorem which has tripped up\n" +"schoolkids for generations (some of them think §0:\n" +"this is \"the freshman's dream\").\n" "\n" -" * §3\n" +"How many rewrites did you use? I can do it in 12.\n" "\n" -"Note in particular that §4." +"But wait! This boss is stirring...and mutating into a second more powerful " +"form!" msgstr "" -"§0、記号§1を用いる場合は、通常の自然数の累乗を意味します。内部的には、以下の2つの公理によって定義されます。\n" -"\n" -"* §2\n" +"すべて終了しました!あなたは、長年にわたって学校教育で問題となっていた命題を証明しました(一部の人は§0: " +"これを「大学生の夢」と捉えているかもしれません)。\n" "\n" -"* §3\n" +"あなたは、この命題を証明するために何回も書き換えたでしょうか?私は12回で解決できます。\n" "\n" -"特に注意すべきは§4です。" +"しかし、待ってください!この問題はまだ解決していません...そして、さらに複雑な形へと進化しています!" -#: Game.Levels.LessOrEqual.L07or_symm -#. §0: `≤` -#. §1: `a` -#. §2: `b` -#. §3: `a ≤ b` -#. §4: `b ≤ a` -#. §5: `or` -#. §6: `∨` -#. §7: `\\or` -#. §8: `left` -#. §9: `right` -#. §10: `h` -#. §11: `cases h with h1 h2` +#: Game.Levels.Power.L09add_sq +#. §0: $a$ +#. §1: $b$ +#. §2: $$(a+b)^2=a^2+b^2+2ab.$$ msgid "" -"Totality of §0 is the boss level of this world, and it's coming up next. It " -"says that\n" -"if §1 and §2 are naturals then either §3 or §4.\n" -"But we haven't talked about §5 at all. Here's a run-through.\n" +"For all numbers §0 and §1, we have\n" +"§2" +msgstr "" +"全ての数 §0 と §1 について、\n" +"§2" + +#: Game.Levels.Power.L09add_sq +msgid "[final boss music]" +msgstr "[最終ボス戦のテーマ音楽]" + +# no-translate +#: Game.Levels.Power.L09add_sq +msgid "add_sq" +msgstr "add_sq" + +#: Game.Levels.Power.L10FLT +#. §0: $a$ +#. §1: $b$ +#. §2: $c$ +#. §3: $n$ +#. §4: $$(a+1)^{n+3}+(b+1)^{n+3}\\not=(c+1)^{n+3}.$$ +msgid "" +"For all naturals §0 §1 §2 and §3, we have\n" +"§4" +msgstr "すべての自然数 §0, §1, §2, §3 について、§4 が成立します。" + +#: Game.Levels.Power.L10FLT +#. §0: $x,y,z>0$ +#. §1: $m \\geq 3$ +#. §2: $x^m+y^m\\not =z^m$ +#. §3: $m \\geq 3$ +#. §4: `n + 3` +#. §5: `m` +#. §6: `x > 0` +#. §7: `a + 1` +msgid "" +"We now have enough to state a mathematically accurate, but slightly\n" +"clunky, version of Fermat's Last Theorem.\n" "\n" -"1) The notation for \"or\" is §6. You won't need to type it, but you can\n" -"type it with §7.\n" +"Fermat's Last Theorem states that if §0 and §1 then §2.\n" +"If you didn't do inequality world yet then we can't talk about §3,\n" +"so we have to resort to the hack of using §4 for §5,\n" +"which guarantees it's big enough. Similarly instead of §6 we\n" +"use §7.\n" "\n" -"2) If you have an \"or\" statement in the *goal*, then two tactics make\n" -"progress: §8 and §9. But don't choose a direction unless your\n" -"hypotheses guarantee that it's the correct one.\n" +"This level looks superficially like other levels we have seen,\n" +"but the shortest solution known to humans would translate into\n" +"many millions of lines of Lean code. The author of this game,\n" +"Kevin Buzzard, is working on translating the proof by Wiles\n" +"and Taylor into Lean, although this task will take many years.\n" +"\n" +"## CONGRATULATIONS!\n" "\n" -"3) If you have an \"or\" statement as a *hypothesis* §10, then\n" -"§11 will create two goals, one where you went left,\n" -"and the other where you went right." +"You've finished the main quest of the natural number game!\n" +"If you would like to learn more about how to use Lean to\n" +"prove theorems in mathematics, then take a look\n" +"at [Mathematics In " +"Lean](https://leanprover-community.github.io/mathematics_in_lean/),\n" +"an interactive textbook which you can read in your browser,\n" +"and which explains how to work with many more mathematical concepts in Lean." msgstr "" -"§0 の全域性は、このワールドにおけるボスレベルであり、次に登場します。これは、§1 と §2 が自然数である場合に、§3 または §4 " -"であることを示しています。しかし、§5 についてはまだ触れていません。以下に概要を示します。\n" +"現在、フェルマーの最終定理の数学的に正確だが、やや冗長なバージョンを記述するのに十分な情報があります。\n" "\n" -"1) 「または」の表記は §6 です。「または」を直接入力する必要はありませんが、§7 を使用して入力できます。\n" +"フェルマーの最終定理は、 §0 と §1 が成り立つならば、 §2 が成り立つ、と述べることができます。 ≤ ワールド がまだ完了していない場合は、 " +"§3 について議論することができません。そのため、 §4 を §5 " +"の代わりに使うという手法を用いる必要があります。これにより、十分な大きさになることが保証されます。同様に、§6の代わりに§7を使用します。\n" "\n" -"2) 目標に「または」という文がある場合、2 つのタクティク §8 と §9 " -"を用いて進めます。ただし、方向を選択する前に、仮定が正しい方向であることを保証していることを確認してください。\n" +"このレベルは、これまでに見た他のレベルと似ていますが、人間が知っている最も短い解は、数百万行の Lean コードに変換されます。このゲームの作者である " +"Kevin Buzzard は、ウィルズとテイラーの証明を Lean に翻訳する作業に取り組んでいますが、この作業には数年かかるでしょう。\n" "\n" -"3) 仮定 §10 に「または」という文がある場合、§11 は 2 " -"つの目標を作成します。一つは左に進んだ場合に生成され、もう一つは右に進んだ場合に生成されます。" - -#: Game.Levels.Tutorial.L03two_eq_ss0 -#. §0: `one_eq_succ_zero` -#. §1: `1 = succ 0` -msgid "§0 is a proof of §1.\"" -msgstr "§0 は §1 の証明である。" - -# no-translate -#: Game.Levels.Addition.L01zero_add -msgid "zero_add" -msgstr "zero_add" +"## おめでとう!\n" +"自然数ゲームの主要な冒険を終えました!\n" +"Leanを使用して数学の定理を証明する方法をさらに学びたい場合は、「Mathematics In " +"Lean」を参照してください。これはブラウザで読むことができる対話型教科書で、Leanでより多くの数学的概念を扱う方法を説明しています。" -#: Game.Levels.AdvMultiplication.L09mul_left_cancel -#. §0: `induction b with d hd generalizing c` -msgid "The way to start this proof is §0." -msgstr "この証明を開始する方法は §0 です。" +#: Game.Levels.Power.L10FLT +msgid "Fermat's Last Theorem" +msgstr "フェルマーの最終定理" -#: Game.Levels.Power.L02zero_pow_succ -#. §0: `0 ^ 0 = 1` -#. §1: `n` -#. §2: `0 ^ n = 0` +#: Game.Levels.Power.L10FLT +#. §0: `xyzzy` +#. §1: `sorry` +#. §2: `xyzzy` msgid "" -"We've just seen that §0, but if §1\n" -"is a successor, then §2. We prove that here." -msgstr "これまでに §0 について説明しました。しかし、もし §1 が後続の値であるならば、それは §2 となります。このことの証明を以下に示します。" +"§0 is an ancient magic spell, believed to be the origin of the\n" +"modern word §1. The game won't complain - or notice - if you\n" +"prove anything with §2." +msgstr "" +"§0は、古くから伝わる魔法の呪文であり、現代の単語§1の起源であると考えられています。ゲームは、あなたがどのような方法で証明を行ったとしても、§2" +"を用いて何を証明したかに関わらず、問題を示しません。" -#: Game.Levels.Multiplication.L02zero_mul -#. §0: `zero_mul x` -#. §1: `0 * x = 0` -#. §2: `zero_mul` -#. §3: `simp` +#: Game.Levels.Power.L10FLT msgid "" -"§0 is the proof that §1.\n" +"Congratulations! You have proved Fermat's Last Theorem!\n" "\n" -"Note: §2 is a §3 lemma." +"Either that, or you used magic..." msgstr "" -"§0 は、§1 の証明を示します。\n" +"おめでとうございます!あなたはフェルマーの最終定理を証明されました。\n" "\n" -"注:§2 は、§3 の補題です。" +"もしくは、魔法を使用したかもしれません..." -#: Game.Levels.LessOrEqual.L06le_antisymm -#. §0: $\\leq$ -#. §1: $x \\leq y$ -#. §2: $y \\leq x$ -#. §3: $x = y$ +#: Game.Levels.Algorithm +#. §0: $2+2=4$ +#. §1: $a+b+c+d+e=e+d+c+b+a$ msgid "" -"This level asks you to prove *antisymmetry* of §0.\n" -"In other words, if §1 and §2 then §3.\n" -"It's the trickiest one so far. Good luck!" +"Proofs like §0 and §1 are very tedious to do by hand.\n" +"In Algorithm World we learn how to get the computer to do them for us.\n" +"\n" +"Click on \"Start\" to proceed." msgstr "" -"このレベルでは、§0の「反対称性」を証明してください。\n" -"すなわち、「§1かつ§2ならば§3」が成り立つことを示します。\n" -"これまでのところ、最も難易度の高い問題です。頑張ってください!" +"手作業での証明、例えば §0 や §1 のようなものは、非常に手間がかかります。\n" +"アルゴリズムワールドでは、コンピュータにこれらの計算を委ねる方法を学習します。\n" +"\n" +"「開始」ボタンをクリックして、次のステップに進んでください。" -#: Game.Levels.AdvMultiplication.L02mul_left_ne_zero -#. §0: `contrapose!` -msgid "" -"If you have completed Algorithm World then you can use the §0 tactic\n" -"here. If not then I'll talk you through a manual approach." -msgstr "アルゴリズムワールドを完了している場合は、ここで §0 タクティクを使用できます。\n" -"完了していない場合は、手動での手順をご説明します。" +#: Game.Levels.Algorithm +msgid "Algorithm World" +msgstr "アルゴリズムワールド" -#: Game.Levels.Tutorial.L02rw -#. §0: $2y=2(x+7)$ -#. §1: `h` -#. §2: $y = x + 7$ -#. §3: `h` -#. §4: `h` -#. §5: `x` -#. §6: `rfl` -#. §7: $y$ -#. §8: `h` -#. §9: `rw` +# no-translate +#: Game.Levels.Algorithm.L01add_left_comm +msgid "add_left_comm" +msgstr "add_left_comm" + +#: Game.Levels.Algorithm.L01add_left_comm +#. §0: $a, b, c$ +#. §1: $a+(b+c)=b+(a+c)$ +msgid "If §0 are numbers, then §1." +msgstr "もし§0が数値ならば、§1。" + +#: Game.Levels.Algorithm.L01add_left_comm +#. §0: `add_left_comm` +#. §1: `rw [add_comm b c]` +#. §2: `a + b + c` +#. §3: `(a + b) + c` msgid "" -"In this level the *goal* is §0 but to help us we\n" -"have an *assumption* §1 saying that §2. Check that you can see §3 in\n" -"your list of assumptions. Lean thinks of §4 as being a secret proof of the\n" -"assumption, rather like §5 is a secret number.\n" +"Having to rearrange variables manually using commutativity and\n" +"associativity is very tedious. We start by reminding you of this. §0\n" +"is a key component in the first algorithm which we'll explain, but we need\n" +"to prove it manually.\n" "\n" -"Before we can use §6, we have to \"substitute in for §7\".\n" -"We do this in Lean by *rewriting* the goal with §8,\n" -"using the §9 tactic." +"Remember that you can do precision commutativity rewriting\n" +"with things like §1. And remember that\n" +"§2 means §3." msgstr "" -"このレベルにおける目標は§0ですが、それを達成するために、§1という仮定があります。その内容は§2です。仮定リストに§3" -"が表示されていることを確認してください。Leanは§4を、仮定の秘密の証明と見なします。これは、§5が秘密の数値に似ています。\n" +"手動で変数を再配置するために、交換法則と結合法則を使用することは非常に手間がかかります。まずは、この点について改めて確認しましょう。§0 " +"は、最初のアルゴリズムの説明において重要な要素ですが、手動で証明する必要があります。\n" "\n" -"§6を使用する前に、「§7に置き換える」必要があります。Leanでは、§8を使用して目標を書き換え、§9タクティクを使用してこれを実行します。" +"交換法則に基づいた精密な再配置は、§1のような操作で行うことができます。また、§2 は §3 を意味します。" -#: Game.Levels.Implication.L09zero_ne_succ -#. §0: `zero_ne_succ n` -#. §1: `0 ≠ succ n` -#. §2: `a ≠ b` -#. §3: `a = b → False` -#. §4: `zero_ne_succ n` -#. §5: `0 = succ n → False` -#. §6: `False` -#. §7: `apply zero_ne_succ at h` -#. §8: `h` -#. §9: `0 = succ n` +#: Game.Levels.Algorithm.L02add_algo1 +#. §0: `(a + a + 1) + (b + b + 1) = (a + b + 1) + (a + b + 1)` +#. §1: `(a + b) + (c + d) = ((a + c) + d) + b` +#. §2: `a+b+c+d` +#. §3: `a+c+d+b` +#. §4: `b` +#. §5: `c` +#. §6: `b` +#. §7: `d` +#. §8: `add_left_comm` msgid "" -"§0 is the proof that §1.\n" +"In some later worlds, we're going to see some much nastier levels,\n" +"like §0.\n" +"Brackets need to be moved around, and variables need to be swapped.\n" "\n" -"In Lean, §2 is *defined to mean* §3. Hence\n" -"§4 is really a proof of §5.\n" -"Here §6 is a generic false statement. This means that\n" -"you can §7 if §8 is a proof of §9." +"In this level, §1,\n" +"let's forget about the brackets and just think about\n" +"the variable order.\n" +"To turn §2 into §3 we need to swap §4 and §5,\n" +"and then swap §6 and §7. But this is easier than you\n" +"think with §8." msgstr "" -"§0 は §1 の証明を示します。\n" +"いくつかの後続のワールドでは、より複雑なレベルを見ることになります(例:§0)。\n" +"括弧の位置を調整し、変数の順序を変更する必要があります。\n" "\n" -"Lean では、§2 が §3 に *定義されている* ことを意味します。したがって、§4 は実際に §5 の証明です。ここで §6 " -"は一般的な偽の命題です。つまり、§8 が §9 の証明である場合、§7 を実行できます。" +"このレベル(§1)では、括弧は無視して変数の順序のみを考慮しましょう。\n" +"§2から§3への変更には、§4と§5の順序を入れ替え、さらに§6と§7の順序を入れ替える必要があります。しかし、§8" +"を用いることで、意外と簡単に実現できます。" -# no-translate -#: Game.Levels.Multiplication.L01mul_one -msgid "mul_one" -msgstr "mul_one" +#: Game.Levels.Algorithm.L02add_algo1 +#. §0: `add_comm` +#. §1: `b` +#. §2: `d` +msgid "Finally use a targeted §0 to switch §1 and §2." +msgstr "最後に、§0 を使用して §1 と §2 を切り替えます。" -#: Game.Levels.AdvAddition.L02add_left_cancel -#. §0: `add_left_cancel a b n` -#. §1: $n+a=n+b\\implies a=b$ -#. §2: `n` -#. §3: `add_right_cancel` +#: Game.Levels.Algorithm.L02add_algo1 +#. §0: `rw [add_left_comm b c]` +#. §1: `b` +#. §2: `c` msgid "" -"§0 is the theorem that §1.\n" -"You can prove it by induction on §2 or you can deduce it from §3." -msgstr "" -"§0 は §1 を示す定理です。\n" -"この定理を証明するには、§2 に関する数学的帰納法を用いるか、§3 から推論できます。" +"Now use §0 to switch §1 and §2 on the left\n" +"hand side." +msgstr "§0 を使用して左側の §1 と §2 の位置を入れ替えます。" -#: Game.Levels.AdvMultiplication.L06mul_right_eq_one -#. §0: `rw [«{h}»] at «{h2}»` -#. §1: `apply le_one at «{h2}»` -msgid "Now §0 so you can §1." -msgstr "§0 を実行することで、 §1 が可能になります。" +#: Game.Levels.Algorithm.L02add_algo1 +msgid "making life easier" +msgstr "生活をより簡単に" -#: Game.Levels.LessOrEqual.L11le_two -#. §0: $x \\leq 2$ -#. §1: $x = 0$ -#. §2: $1$ -#. §3: $2$ -msgid "If §0 then §1 or §2 or §3." -msgstr "もし §0 が真ならば、§1 または §2 または §3 が少なくとも 1 つが真である。" +#: Game.Levels.Algorithm.L02add_algo1 +#. §0: `repeat rw [add_assoc]` +msgid "Start with §0 to push all the brackets to the right." +msgstr "開始時に §0 を使用し、すべての括弧を右側に移動させます。" + +#: Game.Levels.Algorithm.L02add_algo1 +msgid "" +"So that's the algorithm: now let's use automation to perform it\n" +"automatically." +msgstr "したがって、このアルゴリズムを使用します。次に、このアルゴリズムを自動的に実行するために、自動化ツールを使用しましょう。" + +#: Game.Levels.Algorithm.L02add_algo1 +#. §0: $a, b$ +#. §1: $c$ +#. §2: $d$ +#. §3: $(a + b) + (c + d) = ((a + c) + d) + b.$ +msgid "" +"If §0, §1 and §2 are numbers, we have\n" +"§3" +msgstr "" +"もし §0, §1, §2 が数値である場合、以下のようになります。\n" +"§3" -#: Game.Levels.Tutorial.L03two_eq_ss0 Game.Levels.Addition.L03add_comm -#: Game.Levels.Implication.L09zero_ne_succ Game.Levels.Algorithm.L05pred -#: Game.Levels.Algorithm.L06is_zero Game.Levels.LessOrEqual.L05le_zero -#. §0: `two_eq_succ_one` -#. §1: `2 = succ 1` -msgid "§0 is a proof of §1." -msgstr "§0 は §1 の証明です。" +#: Game.Levels.Algorithm.L03add_algo2 +msgid "making life simple" +msgstr "よりシンプルな生活を実現する" -#: Game.Levels.Power.L10FLT -#. §0: $a$ -#. §1: $b$ -#. §2: $c$ -#. §3: $n$ -#. §4: $$(a+1)^{n+3}+(b+1)^{n+3}\\not=(c+1)^{n+3}.$$ +#: Game.Levels.Algorithm.L03add_algo2 Game.Levels.Algorithm.L04add_algo3 +#. §0: $a, b,\\ldots h$ +#. §1: $(d + f) + (h + (a + c)) + (g + e + b) = a + b + c + d + e + f + g + h$ msgid "" -"For all naturals §0 §1 §2 and §3, we have\n" -"§4" +"If §0 are arbitrary natural numbers, we have\n" +"§1." msgstr "" -"すべての自然数 §0, §1, §2, §3 について、§4 が成立します。" +"任意の自然数§0について、\n" +"§1。" -#: Game.Levels.LessOrEqual.L06le_antisymm -#: Game.Levels.AdvMultiplication.L07mul_ne_zero -#: Game.Levels.AdvMultiplication.L09mul_left_cancel -#: Game.Levels.AdvMultiplication.L10mul_right_eq_self -#. §0: `le_antisymm x y` -#. §1: `x ≤ y` -#. §2: `y ≤ x` -#. §3: `x = y` -msgid "§0 is a proof that if §1 and §2 then §3." -msgstr "§0 は、§1 と §2 が成り立つとき、§3 が成り立つことを証明します。" +#: Game.Levels.Algorithm.L03add_algo2 +msgid "Let's now make our own tactic to do this." +msgstr "それでは、独自のタクティクを作成して、この機能を実装してみましょう。" -#: Game.Levels.AdvAddition.L02add_left_cancel -#. §0: ``` -#. repeat rw [add_comm n] -#. exact add_right_cancel a b n -#. ``` +#: Game.Levels.Algorithm.L03add_algo2 +#. §0: `simp` +#. §1: `simp` +#. §2: `add_comm` msgid "" -"How about this for a proof:\n" -"§0" +"# Overview\n" +"\n" +"Lean's simplifier, §0, will rewrite every lemma\n" +"tagged with §1 and every lemma fed to it by the user, as much as it can.\n" +"Furthermore, it will attempt to order variables into an internal order if " +"fed\n" +"lemmas such as §2, so that it does not go into an infinite loop." msgstr "" -"この証明はどうでしょうか:\n" -"§0" - -#: Game.Levels.Implication.L07intro2 -#. §0: `rw [h]` -#. §1: `rfl` -#. §2: `exact h` -msgid "Now §0 then §1 works, but §2 is quicker." -msgstr "現在、§0 および §1 は正しく機能しますが、§2 の方が高速です。" +"# 概要\n" +"\n" +"Leanの簡略化処理器 §0 は、§1 でタグ付けされたすべての定理およびユーザーから与えられたすべての定理をできる限り簡略化します。さらに、§2 " +"のような定理を与えると、内部的な順序で変数を並べ替える試みも行い、無限ループに陥らないようにします。" -#: Game.Levels.LessOrEqual.L01le_refl -#. §0: `le_refl x` -#. §1: `x ≤ x` -#. §2: $\\le$ +#: Game.Levels.Algorithm.L03add_algo2 +#. §0: `simp` +#. §1: `rw` +#. §2: `simp` msgid "" -"§0 is a proof of §1.\n" +"Lean's simplifier, §0, is \"§1 on steroids\". It will rewrite every lemma\n" +"tagged with §2 and every lemma fed to it by the user, as much as it can.\n" "\n" -"The reason for the name is that this lemma is \"reflexivity of §2\"" +"This level is not a level which you want to solve by hand.\n" +"Get the simplifier to solve it for you." msgstr "" -"§0 は §1 の証明です。\n" +"Leanの簡約化処理器、§0は「§1の強化版」です。これは、§2" +"でタグ付けされたすべての定理およびユーザーによって与えられたすべての定理をできる限り簡約化します。\n" "\n" -"この名称は、「§2 の反射性」であることを示すために付けられました。" +"このレベルでは手作業での解決が推奨されません。\n" +"簡約化処理器に任せて解いてください。" -#: Game.Levels.Addition.L03add_comm -msgid "add_comm (level boss)" -msgstr "add_comm (レベルボス)" +#: Game.Levels.Algorithm.L03add_algo2 +#. §0: `simp only [add_left_comm, add_comm]` +msgid "Solve this level in one line with §0" +msgstr "このレベルを、1行で解決してください:§0" -#: Game.Levels.Multiplication.L02zero_mul -#. §0: `mul_comm x y : x * y = y * x` -#. §1: `mul_zero` -#. §2: `zero_mul` +#: Game.Levels.Algorithm.L04add_algo3 +#. §0: ``` +#. macro \"simp_add\" : tactic => `(tactic|( +#. simp only [add_assoc, add_left_comm, add_comm])) +#. ``` +#. §1: `simp_add` +#. §2: `simp only [add_assoc, add_left_comm, add_comm]` +#. §3: `simp_add` msgid "" -"Our first challenge is §0,\n" -"and we want to prove it by induction. The zero\n" -"case will need §1 (which we have)\n" -"and §2 (which we don't), so let's\n" -"start with this." +"You can make your own tactics in Lean.\n" +"This code here\n" +"§0\n" +"was used to create a new tactic §1, which runs\n" +"§2.\n" +"Try running §3 to solve this level!" msgstr "" -"最初の課題は§0ですが、帰納法を用いて証明します。\n" -"ゼロの場合には§1(定義済み)と§2(定義されていません)が必要です。まずはこの部分から取り組みます。" +"Leanでは、独自のタクティクを作成できます。\n" +"以下のコード\n" +"§0\n" +"は、§2を実行する、新しいタクティク§1を作成します。\n" +"§3を実行することで、この問題を解決できます!" #: Game.Levels.Algorithm.L04add_algo3 #. §0: `simp_add` @@ -4148,327 +4098,219 @@ msgid "" "involving numerals, such as §0." msgstr "数値に関連する問題を扱う場合、例えば§0に対して、より効率的なアプローチを検討しましょう。" -#: Game.Levels.Multiplication.L09mul_assoc -msgid "" -"We now have enough to prove that multiplication is associative,\n" -"the boss level of multiplication world. Good luck!" -msgstr "乗算が結合的であることを証明するための準備は整いました。これは、乗算ワールドのボスレベルです。成功をお祈りします!" +#: Game.Levels.Algorithm.L04add_algo3 +msgid "the simplest approach" +msgstr "最もシンプルなアプローチ" # no-translate -#: Game.Levels.Power.L08pow_pow -msgid "pow_pow" -msgstr "pow_pow" - -#: Game.Levels.Implication.L04succ_inj -msgid "Now finish in one line." -msgstr "一行で証明を完結させます。" +#: Game.Levels.Algorithm.L05pred +msgid "pred" +msgstr "pred" -#: Game.Levels.LessOrEqual.L11le_two -#. §0: `le_two x` -#. §1: `x ≤ 2` -#. §2: `x = 0` -#. §3: `x = 1` -#. §4: `x = 2` -msgid "§0 is a proof that if §1 then §2 or §3 or §4." -msgstr "§0 は、もし §1 が真ならば、§2 または §3 または §4 がいずれか真であることを示す証明です。" +#: Game.Levels.Algorithm.L05pred +#. §0: `rw [← pred_succ a]` +msgid "Start with §0 and take it from there." +msgstr "開始にあたり、§0から始め、それに基づいて進んでください。" -#: Game.Levels.AdvAddition.L06add_left_eq_zero -#. §0: ``` -#. rw [add_comm] -#. exact add_right_eq_zero b a +#: Game.Levels.Algorithm.L05pred +#. §0: `0` +#. §1: `pred` +#. §2: ``` +#. pred 0 := 37 +#. pred (succ n) := n #. ``` -#. §1: `≤` -msgid "" -"How about this for a proof:\n" -"\n" -"§0\n" -"\n" -"That's the end of Advanced Addition World! You'll need these theorems\n" -"for the next world, §1 World. Click on \"Home\" to access it." -msgstr "" -"以下のいずれかの証明方法はいかがでしょうか:\n" -"\n" -"§0\n" -"\n" -"高度な加算ワールドはこれで終了です。次の §1 ワールドでは、これらの定理が必要になります。「ホーム」ボタンをクリックしてアクセスしてください。" - -#: Game.Levels.Multiplication.L01mul_one -#. §0: `Mul a b` -#. §1: `a * b` -#. §2: `mul_zero a : a * 0 = 0` -#. §3: `mul_succ a b : a * succ b = a * b + a` -#. §4: `zero_mul` -msgid "" -"§0, with notation §1, is the usual\n" -" product of natural numbers. Internally it is\n" -" via two axioms:\n" -"\n" -" * §2\n" -"\n" -" * §3\n" -"\n" -"Other theorems about naturals, such as §4,\n" -"are proved by induction from these two basic theorems." -msgstr "" -"§1 で表記される §0 は、自然数の積を表す一般的な概念です。内部的には、以下の2つの公理を用いて定義されます:\n" -"\n" -"* §2\n" -"\n" -"* §3\n" -"\n" -"また、§4のような他の自然数に関する定理は、これらの基本定理から帰納法によって証明されます。" - -#: Game.Levels.Tutorial.L05add_zero -#. §0: `add_zero a` -#. §1: `a + 0 = a` -#. §2: `add_zero` -#. §3: `add_zero 37` -#. §4: `37 + 0 = 37` -#. §5: `rw` -#. §6: `rw [add_zero]` -#. §7: `add_zero` -#. §8: $\\forall n ∈ ℕ, n + 0 = n$ -#. §9: `n + 0 = n` +#. §3: `pred_succ` +#. §4: `pred (succ n) = n` +#. §5: `succ_inj` msgid "" -"§0 is a proof that §1.\n" -"\n" -"## Summary\n" -"\n" -"§2 is really a function, which\n" -"eats a number, and returns a proof of a theorem\n" -"about that number. For example §3 is\n" -"a proof that §4.\n" -"\n" -"The §5 tactic will accept §6\n" -"and will try to figure out which number you omitted\n" -"to input.\n" -"\n" -"## Details\n" +"We now start work on an algorithm to do addition more efficiently. Recall " +"that\n" +"we defined addition by recursion, saying what it did on §0 and successors.\n" +"It is an axiom of Lean that recursion is a valid\n" +"way to define functions from types such as the naturals.\n" "\n" -"A mathematician sometimes thinks of §7\n" -"as \\\\\"one thing\\\\\", namely a proof of §8.\n" -"This is just another way of saying that it's a function which\n" -"can eat any number n and will return a proof that §9." -msgstr "" -"§0は§1の証明です。\n" +"Let's define a new function §1 from the naturals to the naturals, which\n" +"attempts to subtract 1 from the input. The definition is this:\n" "\n" -"## 概要\n" +"§2\n" "\n" -"§2は実際には関数で、数字を入力するとその数字に関する定理の証明を返します。例えば§3は§4の証明です。\n" +"We cannot subtract one from 0, so we just return a junk value. As well as " +"this\n" +"definition, we also create a new lemma §3, which says that §4.\n" +"Let's use this lemma to prove §5, the theorem which\n" +"Peano assumed as an axiom and which we have already used extensively " +"without justification." +msgstr "" +"効率的な加算を行うアルゴリズムの作成を開始します。再帰によって加算を定義したことを思い出してください。具体的には、0" +"と後者に対して何を行うかを定義しました。Leanの公理として、再帰は自然数などの型から関数を定義する有効な方法であるとされています。\n" "\n" -"§5のタクティクは§6を受け取り、省略された数字を推測しようとします。\n" +"自然数から自然数への新しい関数§1を定義します。これは、入力から1を引こうとする関数です。その定義は以下の通りです:\n" "\n" -"## 詳細\n" +"§2\n" "\n" -"数学者は時として§7を「一つのもの」と捉え、それは§8の証明であると言えます。これは、任意の数字nを入力すると§9" -"の証明を返す関数であるという別の表現方法です。" +"0から1を引くことはできませんので、無効な値を返します。この定義とともに、新しい補題§3も定義します。これは§4を述べています。この補題を使って、§5" +"(ペアノが公理として仮定し、以前にも正当化せずに頻繁に使用した定理)を証明しましょう。" -#: Game.Levels.Power.L09add_sq -#. §0: $a$ -#. §1: $b$ -#. §2: $$(a+b)^2=a^2+b^2+2ab.$$ +#: Game.Levels.Algorithm.L05pred +#. §0: `succ_inj` +#. §1: $0$ msgid "" -"For all numbers §0 and §1, we have\n" -"§2" +"Nice! You've proved §0!\n" +"Let's now prove Peano's other axiom, that successors can't be §1." msgstr "" -"全ての数 §0 と §1 について、\n" -"§2" +"素晴らしい!あなたは§0を証明されました!\n" +"次に、ペアノの別の公理である「後続が§1にならない」ことを証明しましょう。" -#: Game.Levels.Tutorial.L01rfl -#. §0: `rfl` -#. §1: `rfl` -#. §2: `rfl` -#. §3: `rw` +#: Game.Levels.Algorithm.L06is_zero +#. §0: `False` +#. §1: `True` +#. §2: `is_zero (succ a)` +#. §3: `rw [← is_zero_succ a]` msgid "" -"Congratulations! You completed your first verified proof!\n" -"\n" -"Remember that §0 is a *tactic*. If you ever want information about the §1 " -"tactic,\n" -"you can click on §2 in the list of tactics on the right.\n" -"\n" -"Now click on \"Next\" to learn about the §3 tactic." -msgstr "" -"おめでとうございます!あなたは初めての検証証明を完了しました!\n" -"\n" -"覚えておいてください。 §0 は*タクティク*と呼ばれる操作です。もし §1 のタクティクに関する情報が必要な場合は、右側のタクティク一覧にある §2" -" をクリックしてください。\n" -"\n" -"「次」をクリックして、 §3 のタクティクについて学びましょう。" +"We're going to change that §0 into §1. Start by changing it into\n" +"§2 by executing §3." +msgstr "§0 を §1 に変更します。まず、§3 を実行して §0 を §2 に変更します。" -#: Game.Levels.Implication.L02exact2 -#. §0: $0+x=(0+y)+2$ -#. §1: $x=y+2$ -msgid "Assuming §0, we have §1." -msgstr "前提として§0を仮定するならば、§1は成立します。" +#: Game.Levels.Algorithm.L06is_zero +msgid "" +"See if you can take it from here. Look at the new lemmas and tactic\n" +"available on the right." +msgstr "右側に表示された、新たに定義された補題とタクティクをご利用ください。" -#: Game.Levels.AdvAddition.L01add_right_cancel -#. §0: `add_right_cancel a b n` -#. §1: $a+n=b+n\\implies a=b$ +#: Game.Levels.Algorithm.L06is_zero +#. §0: `trivial` +#. §1: `True` msgid "" -"In this world I will mostly leave you on your own.\n" +"# Summary\n" "\n" -"§0 is the theorem that §1." +"§0 will solve the goal §1." msgstr "" -"このワールドでは、基本的にはご自身で学習を進めていただきます。\n" +"# 概要\n" "\n" -"§0は、§1という定理です。" - -#: Game.Levels.Power.L06pow_add -msgid "" -"Let's now begin our approach to the final boss,\n" -"by proving some more subtle facts about powers." -msgstr "それでは、最終ボスの攻略に向けて、さらに詳細な冪乗に関する事実の証明から始めましょう。" - -#: Game.Levels.LessOrEqual.L09succ_le_succ -#. §0: `succ_le_succ x y` -#. §1: `succ x ≤ succ y` -#. §2: `x ≤ y` -msgid "§0 is a proof that if §1 then §2." -msgstr "§0 は、§1 が成り立つ場合に §2 が成り立つことを示す証明です。" - -# no-translate -#: Game.Levels.Implication.L08ne -msgid "≠" -msgstr "≠" - -#: Game.Levels.AdvMultiplication.L09mul_left_cancel -#. §0: `c = 0` -#. §1: `c = succ e` -#. §2: `cases c with e` -msgid "Split into cases §0 and §1 with §2." -msgstr "§2 で§0 と §1 にケースを分けましょう。" +"§0 は、目標 §1 を解決します。" -#: Game.Levels.Implication.L06intro +#: Game.Levels.Algorithm.L06is_zero #. §0: `intro h` -#. §1: `h` -msgid "Start with §0 to assume the hypothesis and call its proof §1." -msgstr "§0 を使用して仮定を§1とし、開始します。" +#. §1: `X ≠ Y` +#. §2: `X = Y → False` +msgid "" +"Start with §0 (remembering that §1 is just notation\n" +"for §2)." +msgstr "§0 から開始してください(§1 が §2 の表記法であるという点にご留意ください)。" # no-translate -#: Game.Levels.AdvMultiplication.L10mul_right_eq_self -msgid "mul_right_eq_self" -msgstr "mul_right_eq_self" - -#: Game.Levels.Addition.L02succ_add -#. §0: `add_comm` -#. §1: `succ_add` -#. §2: `succ_add a b` -#. §3: `(succ a) + b = succ (a + b)` -#. §4: `a` -#. §5: `b` -#. §6: `x + y = y + x` -#. §7: `b` -#. §8: `b = 0` -#. §9: `b` -msgid "" -"Oh no! On the way to §0, a wild §1 appears. §2\n" -"is the proof that §3 for §4 and §5 numbers.\n" -"This result is what's standing in the way of §6. Again\n" -"we have the problem that we are adding §7 to things, so we need\n" -"to use induction to split into the cases where §8 and §9 is a successor." -msgstr "" -"大変! §0 に向かう途中、野生の §1 が現れました。 §2 は、§3 が §4 と §5 の数値に対して成り立つことを証明しています。この結果が " -"§6 を達成するのを妨げています。さらに、私たちは §7 を何かに加算しているため、§8 と §9 が後者である場合に帰納法を用いる必要があります。" +#: Game.Levels.Algorithm.L06is_zero +msgid "is_zero" +msgstr "is_zero" -#: Game.Levels.Algorithm.L03add_algo2 -#. §0: `simp` -#. §1: `simp` -#. §2: `add_comm` +#: Game.Levels.Algorithm.L06is_zero +#. §0: `is_zero` +#. §1: ``` +#. is_zero 0 := True +#. is_zero (succ n) := False +#. ``` +#. §2: `is_zero_zero` +#. §3: `is_zero_succ n` +#. §4: `is_zero 0 = True` +#. §5: `is_zero (succ n) = False` +#. §6: `succ_ne_zero` +#. §7: `zero_ne_succ` +#. §8: `zero_ne_succ` +#. §9: `True` +#. §10: `trivial` msgid "" -"# Overview\n" +"We define a function §0 thus:\n" "\n" -"Lean's simplifier, §0, will rewrite every lemma\n" -"tagged with §1 and every lemma fed to it by the user, as much as it can.\n" -"Furthermore, it will attempt to order variables into an internal order if " -"fed\n" -"lemmas such as §2, so that it does not go into an infinite loop." +"§1\n" +"\n" +"We also create two lemmas, §2 and §3, saying that §4\n" +"and §5. Let's use these lemmas to prove §6, Peano's\n" +"Last Axiom. Actually, we have been using §7 before, but it's handy to have\n" +"this opposite version too, which can be proved in the same way. Note: you " +"can\n" +"cheat here by using §8 but the point of this world is to show\n" +"you how to *prove* results like that.\n" +"\n" +"If you can turn your goal into §9, then the §10 tactic will solve it." msgstr "" -"# 概要\n" +"関数 §0 は以下の通り定義します:\n" "\n" -"Leanの簡略化処理器 §0 は、§1 でタグ付けされたすべての定理およびユーザーから与えられたすべての定理をできる限り簡略化します。さらに、§2 " -"のような定理を与えると、内部的な順序で変数を並べ替える試みも行い、無限ループに陥らないようにします。" - -#: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero -#. §0: `cases ha with n hn` -msgid "Now take apart the existence statement with §0." -msgstr "次に、存在文を §0 を用いて分解します。" - -# no-translate -#: Game.Levels.Tutorial.L08twoaddtwo Game.Levels.Implication.L06intro -#: Game.Levels.Implication.L07intro2 Game.Levels.Implication.L09zero_ne_succ -#: Game.Levels.Implication.L10one_ne_zero -#: Game.Levels.Implication.L11two_add_two_ne_five -#: Game.Levels.Algorithm.L02add_algo1 Game.Levels.Algorithm.L06is_zero -#: Game.Levels.Algorithm.L08decide Game.Levels.AdvAddition.L01add_right_cancel -#: Game.Levels.AdvAddition.L02add_left_cancel -#: Game.Levels.AdvAddition.L04add_right_eq_self -#. §0: $2+2=4$ -msgid "§0." -msgstr "§0." +"§1\n" +"\n" +"また、補題 §2 と §3 を定義し、それぞれ §4\n" +"と §5 とします。これらの補題を用いて、ペアノの最終公理 §6 の証明を行います。実際、§7 " +"は以前から使用していましたが、同じ方法で証明できる逆の命題も用意しておくと便利です。注意:ここでは §8 " +"を使用して解決することも可能ですが、このワールドの目的は、そのような結果を証明する方法を示すことです。\n" +"\n" +"目標を §9 に変換できれば、§10 タクティクを用いて解決できます。" -#: Game.Levels.Power.L10FLT -#. §0: $x,y,z>0$ -#. §1: $m \\geq 3$ -#. §2: $x^m+y^m\\not =z^m$ -#. §3: $m \\geq 3$ -#. §4: `n + 3` -#. §5: `m` -#. §6: `x > 0` -#. §7: `a + 1` +#: Game.Levels.Algorithm.L07succ_ne_succ +#. §0: `a` +#. §1: `b` +#. §2: `a = b` +#. §3: `a` +#. §4: `b` +#. §5: `0` +#. §6: `a` +#. §7: `b` +#. §8: `0` +#. §9: `0` +#. §10: `succ n` +#. §11: `a = succ m` +#. §12: `b = succ n` +#. §13: `m = n` +#. §14: `0 = 0` +#. §15: `rfl` +#. §16: `0 ≠ succ n` +#. §17: `zero_ne_succ n` +#. §18: `succ m ≠ 0` +#. §19: `succ_ne_zero m` +#. §20: `h : m = n` +#. §21: `succ m = succ n` +#. §22: `rw [h]` +#. §23: `rfl` +#. §24: `a ≠ b` +#. §25: `succ a ≠ succ b` msgid "" -"We now have enough to state a mathematically accurate, but slightly\n" -"clunky, version of Fermat's Last Theorem.\n" +"Here we begin to\n" +"develop an algorithm which, given two naturals §0 and §1, returns the " +"answer\n" +"to \"does §2?\"\n" "\n" -"Fermat's Last Theorem states that if §0 and §1 then §2.\n" -"If you didn't do inequality world yet then we can't talk about §3,\n" -"so we have to resort to the hack of using §4 for §5,\n" -"which guarantees it's big enough. Similarly instead of §6 we\n" -"use §7.\n" +"Here is the algorithm. First note that §3 and §4 are numbers, and hence\n" +"are either §5 or successors.\n" "\n" -"This level looks superficially like other levels we have seen,\n" -"but the shortest solution known to humans would translate into\n" -"many millions of lines of Lean code. The author of this game,\n" -"Kevin Buzzard, is working on translating the proof by Wiles\n" -"and Taylor into Lean, although this task will take many years.\n" +"*) If §6 and §7 are both §8, return \"yes\".\n" "\n" -"## CONGRATULATIONS!\n" +"*) If one is §9 and the other is §10, return \"no\".\n" "\n" -"You've finished the main quest of the natural number game!\n" -"If you would like to learn more about how to use Lean to\n" -"prove theorems in mathematics, then take a look\n" -"at [Mathematics In " -"Lean](https://leanprover-community.github.io/mathematics_in_lean/),\n" -"an interactive textbook which you can read in your browser,\n" -"and which explains how to work with many more mathematical concepts in Lean." +"*) If §11 and §12, then return the answer to \"does §13?\"\n" +"\n" +"Our job now is to *prove* that this algorithm always gives the correct " +"answer. The proof that\n" +"§14 is §15. The proof that §16 is §17, and the proof\n" +"that §18 is §19. The proof that if §20 then\n" +"§21 is §22 and then §23. This level is a proof of the one\n" +"remaining job we have to do: if §24 then §25." msgstr "" -"現在、フェルマーの最終定理の数学的に正確だが、やや冗長なバージョンを記述するのに十分な情報があります。\n" +"ここでは、与えられた自然数 §0 と §1 に対して、「§2」という質問の答えを返すアルゴリズムを開発します。\n" "\n" -"フェルマーの最終定理は、 §0 と §1 が成り立つならば、 §2 " -"が成り立つ、と述べることができます。 ≤ ワールド がまだ完了していない場合は、 §3 について議論することができません。そのため、 §4" -" を §5 の代わりに使うという手法を用いる必要があります。これにより、十分な大きさになることが保証されます。同様に、§6の代わりに§7" -"を使用します。\n" +"このアルゴリズムは以下の手順で動作します。まず、§3 と §4 が数値であり、したがって §5 または §5 の後者であることに注意してください。\n" "\n" -"このレベルは、これまでに見た他のレベルと似ていますが、人間が知っている最も短い解は、数百万行の Lean コードに変換されます。このゲームの作者である " -"Kevin Buzzard は、ウィルズとテイラーの証明を Lean に翻訳する作業に取り組んでいますが、この作業には数年かかるでしょう。\n" +"1. §6 と §7 が両方とも §8 である場合、「yes」と返答します。\n" +"2. 一方が §9 で他方が §10 である場合、「no」と返答します。\n" +"3. §11 と §12 の場合、「§13 ?」 という質問の答えを返します。\n" "\n" -"## おめでとう!\n" -"自然数ゲームの主要な冒険を終えました!\n" -"Leanを使用して数学の定理を証明する方法をさらに学びたい場合は、「Mathematics In " -"Lean」を参照してください。これはブラウザで読むことができる対話型教科書で、Leanでより多くの数学的概念を扱う方法を説明しています。" - -# decideはタクティク名なのでそのまま -#: Game.Levels.Algorithm.L09decide2 -msgid "decide again" -msgstr "もう一度 decide" - -# no-translate -#: Game.Levels.LessOrEqual.L03le_succ_self -msgid "x ≤ succ x" -msgstr "x ≤ succ x" +"現在の課題は、このアルゴリズムが常に正しい答えを返すことを証明することです。具体的には、以下の命題を証明する必要があります:§14 が §15 " +"であること、§16 が §17 であること、§18 が §19 であること、そして §20 が真であるならば、§21 が §22 であり、さらに " +"§23 であることを証明します。この段階では、残る最後の課題である「§24 が真であるならば、§25 である」という命題を証明します。" -#: Game.Levels.Tutorial.L02rw -msgid "Can you take it from here? Click on \"Show more help!\" if you need a hint." -msgstr "引き続きご自身で解決いただけますでしょうか? ヒントが必要な場合は、「より多くのヘルプを表示!」をクリックしてください。" +#: Game.Levels.Algorithm.L07succ_ne_succ +#. §0: `contrapose! h` +msgid "" +"Can you take it from here? (note: if you try §0 again, it will\n" +"take you back to where you started!)" +msgstr "引き続き作業を進められますでしょうか?(注:§0を再度実行すると、元の開始地点に戻ります!)" #: Game.Levels.Algorithm.L07succ_ne_succ #. §0: `contrapose! h` @@ -4479,76 +4321,6 @@ msgid "" "contrapositive, namely a hypothesis of §1 and a goal of §2." msgstr "開始にあたっては、§0 を出発点とし、目標をその対偶に変換します。具体的には、§1 の仮定と §2 の目標を設定します。" -# no-translate -#: Game.Levels.Multiplication.L07mul_add -msgid "mul_add" -msgstr "mul_add" - -#: Game.Levels.Addition.L02succ_add -#. §0: `a` -#. §1: `b` -msgid "" -"You might want to think about whether induction\n" -"on §0 or §1 is the best idea." -msgstr "推論を行う際に、§0 または §1 に対する再帰的なアプローチが最適かどうかを検討する必要があります。" - -#: Game.Levels.LessOrEqual.L04le_trans -#. §0: `le_trans x y z` -#. §1: `x ≤ y` -#. §2: `y ≤ z` -#. §3: `x ≤ z` -#. §4: `x ≤ y → (y ≤ z → x ≤ z)` -#. §5: $x \\le y$ -#. §6: $y \\le z$ -#. §7: $x \\le z$ -#. §8: `a + b + c` -#. §9: `(a + b) + c` -#. §10: `+` -#. §11: `→` -#. §12: `x ≤ y → y ≤ z → x ≤ z` -#. §13: `≤` -#. §14: $P \\implies Q \\implies R$ -#. §15: $P \\implies Q$ -#. §16: $Q \\implies R$ -msgid "" -"§0 is a proof that if §1 and §2 then §3.\n" -"More precisely, it is a proof that §4. In words,\n" -"If §5 then (pause) if §6 then §7.\n" -"\n" -"## A note on associativity\n" -"\n" -"In Lean, §8 means §9, because §10 is left associative. However\n" -"§11 is right associative. This means that §12 in Lean means\n" -"exactly that §13 is transitive. This is different to how mathematicians use\n" -"§14; for them, this usually means that §15\n" -"and §16." -msgstr "" -"§0は、§1と§2ならば§3であることを証明しています。\n" -"より正確には、§4を証明しています。具体的には、\n" -"§5ならば(一時停止)、§6ならば§7です。\n" -"\n" -"## 結合性に関する注記\n" -"\n" -"Leanでは、§8は§9を意味し、§10は左から結合します。しかし、§11は右から結合します。これにより、Leanでは§12は§13" -"が転置的であることを意味します。これは、数学的な文脈では通常§14を意味しません;数学的には、これは通常§15と§16の両方が成り立つことを意味します。" - -#: Game.Levels.Algorithm.L02add_algo1 -msgid "making life easier" -msgstr "生活をより簡単に" - -#: Game.Levels.Addition.L01zero_add -#. §0: `add_succ` -msgid "Use §0." -msgstr "§0をご利用ください。" - -#: Game.Levels.LessOrEqual.L07or_symm -#. §0: `or` -#. §1: `right` -msgid "" -"Now we can prove the §0 statement by proving the statement on the right,\n" -"so use the §1 tactic." -msgstr "今では、§0の命題を証明するために、右側の命題を証明することができます。そのため、§1のタクティクを使用します。" - #: Game.Levels.Algorithm.L07succ_ne_succ #. §0: `h : a ≠ b` #. §1: `c ≠ d` @@ -4596,174 +4368,155 @@ msgstr "" "\n" "です。" -#: Game.Levels.Addition.L02succ_add Game.Levels.Multiplication.L08add_mul -#: Game.Levels.Power.L04one_pow Game.Levels.Implication.L10one_ne_zero -#: Game.Levels.Algorithm.L01add_left_comm Game.Levels.LessOrEqual.L02zero_le -#: Game.Levels.LessOrEqual.L03le_succ_self -#: Game.Levels.AdvMultiplication.L01mul_le_mul_right -#: Game.Levels.AdvMultiplication.L02mul_left_ne_zero -#: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero -#: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero -#: Game.Levels.AdvMultiplication.L06mul_right_eq_one -#. §0: `succ_add a b` -#. §1: `succ a + b = succ (a + b)` -msgid "§0 is a proof that §1." -msgstr "§0 は、§1 の証明を示します。" +#: Game.Levels.Algorithm.L07succ_ne_succ +msgid "An algorithm for equality" +msgstr "等価性を扱うためのアルゴリズム" # no-translate -#: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero -msgid "eq_succ_of_ne_zero" -msgstr "eq_succ_of_ne_zero" +#: Game.Levels.Algorithm.L08decide +msgid "decide" +msgstr "decide" -#: Game.Levels.Multiplication.L07mul_add -#. §0: ``` -#. induction c with d hd -#. rw [add_zero, mul_zero, add_zero] -#. rfl -#. rw [add_succ, mul_succ, hd, mul_succ, add_assoc] -#. rfl -#. ``` -#. §1: `a` -#. §2: `b` +#: Game.Levels.Algorithm.L08decide +#. §0: `decide` msgid "" -"Here's my solution:\n" -"§0\n" +"You can read more about the §0 tactic by clicking\n" +"on it in the top right." +msgstr "§0 タクティクの詳細については、右上のリンクからご確認ください。" + +#: Game.Levels.Algorithm.L08decide +#. §0: `decide` +#. §1: `DecidableEq ℕ` +#. §2: `instance` +#. §3: `decide` +#. §4: `a = b` +#. §5: `a ≠ b` +msgid "" +"# Summary\n" "\n" -"Inducting on §1 or §2 also works, but might take longer." +"§0 will attempt to solve a goal if it can find an algorithm which it\n" +"can run to solve it.\n" +"\n" +"## Example\n" +"\n" +"A term of type §1 is an algorithm to decide whether two naturals\n" +"are equal or different. Hence, once this term is made and made into an §2,\n" +"the §3 tactic can use it to solve goals of the form §4 or §5." msgstr "" -"私の解法:\n" -"§0\n" +"# 概要\n" "\n" -"§1 または §2 に関する帰納法も有効ですが、より時間のかかる場合があります。" - -#: Game.Levels.Implication.L05succ_inj2 -#. §0: `apply succ_inj` -#. §1: `succ_inj` -msgid "Start with §0 to apply §1 to the *goal*." -msgstr "*目標*に §1 を適用するために、まず §0 を使用してください。" - -# no-translate -#: Game.Levels.Multiplication.L02zero_mul -msgid "zero_mul" -msgstr "zero_mul" - -#: Game.Levels.Tutorial.L03two_eq_ss0 -msgid "Can you take it from here?" -msgstr "ここから続けられますか?" - -# no-translate -#: Game.Levels.Power.L07mul_pow -msgid "mul_pow" -msgstr "mul_pow" - -#: Game.Levels.LessOrEqual.L04le_trans -#. §0: `≤` -#. §1: `ℕ` -msgid "" -"A passing mathematician remarks that with reflexivity and transitivity out " -"of the way,\n" -"you have proved that §0 is a *preorder* on §1." -msgstr "「反射律と伝搬律をクリアすれば、あなたは §0 が §1 上の *部分順序関係* であることを証明した」と、通りすがりの数学者が言いました。" +"§0 は、解決可能なアルゴリズムが存在する場合に、目標を解決しようとします。\n" +"\n" +"## 例\n" +"\n" +"型 §1 の項は、2 つの自然数が等しいか異なるかを判定するアルゴリズムです。したがって、この項が作成され、§2 に変換されると、§3 " +"タクティクは、§4 または §5 のような目標を解決するために使用できます。" -#: Game.Levels.LessOrEqual.L06le_antisymm +#: Game.Levels.Algorithm.L08decide #. §0: ``` -#. cases hxy with a ha -#. cases hyx with b hb -#. rw [ha] -#. rw [ha, add_assoc] at hb -#. symm at hb -#. apply add_right_eq_self at hb -#. apply add_right_eq_zero at hb -#. rw [hb, add_zero] +#. instance instDecidableEq : DecidableEq ℕ +#. | 0, 0 => isTrue <| by +#. show 0 = 0 +#. rfl +#. | succ m, 0 => isFalse <| by +#. show succ m ≠ 0 +#. exact succ_ne_zero m +#. | 0, succ n => isFalse <| by +#. show 0 ≠ succ n +#. exact zero_ne_succ n +#. | succ m, succ n => +#. match instDecidableEq m n with +#. | isTrue (h : m = n) => isTrue <| by +#. show succ m = succ n +#. rw [h] #. rfl +#. | isFalse (h : m ≠ n) => isFalse <| by +#. show succ m ≠ succ n +#. exact succ_ne_succ m n h #. ``` -#. §1: `≤` -#. §2: `ℕ` -#. §3: `≤` +#. §1: `decide` msgid "" -"Here's my proof:\n" -"§0\n" +"Implementing the algorithm for equality of naturals, and the proof that it " +"is correct,\n" +"looks like this:\n" "\n" -"A passing mathematician remarks that with antisymmetry as well,\n" -"you have proved that §1 is a *partial order* on §2.\n" +"§0\n" "\n" -"The boss level of this world is to prove\n" -"that §3 is a total order. Let's learn two more easy tactics\n" -"first." +"This Lean code is a formally verified algorithm for deciding equality\n" +"between two naturals. I've typed it in already, behind the scenes.\n" +"Because the algorithm is formally verified to be correct, we can\n" +"use it in Lean proofs. You can run the algorithm with the §1 tactic." msgstr "" -"私の証明:\n" -"§0\n" +"自然数の等価性アルゴリズムの実装とその正当性の証明は、以下のとおりです:\n" "\n" -"通りすがりの数学者は、反対称性も考慮すると、\n" -"あなたは§1が§2上の*部分順序*であることを証明しました。\n" +"§0\n" "\n" -"このワールドのボスレベルは、§3が完全順序であることを証明することです。\n" -"まずは2つの簡単なタクティクを学習しましょう。" - -# no-translate -#: Game.Levels.Multiplication.L05one_mul -msgid "one_mul" -msgstr "one_mul" +"このLeanコードは、二つの自然数間の等価性を決定する形式的に検証されたアルゴリズムです。私たちは既にこのコードをバックグラウンドで入力しています。アル" +"ゴリズムが形式的に正確であることを保証しているため、Leanの証明内で使用できます。「§1」タクティクを使用してアルゴリズムを実行できます。" -#: Game.Levels.Addition.L01zero_add -#. §0: `«{hd}» : 0 + «{d}» = «{d}»` -#. §1: `0 + succ «{d}» = succ «{d}»` +#: Game.Levels.Algorithm.L09decide2 msgid "" -"Now for the second goal. Here you have the induction hypothesis\n" -"§0, and you need to prove that §1." -msgstr "では、次の目標に進みます。 ここで示された帰納法の仮定 §0 を用いて、§1 を証明する必要があります。" - -# no-translate -#: Game.Levels.Algorithm.L05pred -msgid "pred" -msgstr "pred" - -#: Game.Levels.Implication.L01exact Game.Levels.LessOrEqual.L01le_refl -#. §0: `exact` -msgid "The §0 tactic" -msgstr "§0 タクティク" +"Congratulations! You've finished Algorithm World. These algorithms\n" +"will be helpful for you in Even-Odd World (when someone gets around to\n" +"implementing it)." +msgstr "" +"おめでとうございます!あなたはアルゴリズムワールドを完了しました。\n" +"これらのアルゴリズムは、Even-Oddワールド(誰かが実装してくれたら)\n" +"でも、あなたにとって役立ちます。" -#: Game.Levels.Tutorial.L04rw_backwards -#. §0: `succ n` -#. §1: `n + 1` +#: Game.Levels.Algorithm.L09decide2 +#. §0: `2 + 2 ≠ 5` msgid "" -"Why did we not just define §0 to be §1? Because we have not\n" -"even *defined* addition yet! We'll do that in the next level." -msgstr "なぜ、§0を§1に定義しなかったのでしょうか? それは、まだ足し算の演算自体を定義していないからです。この定義は、次の段階で行います。" +"We gave a pretty unsatisfactory proof of §0 earlier on; now give a nicer " +"one." +msgstr "これまでの§0の証明は不完全であり、より適切な証明方法を提示します。" -#: Game.Levels.Tutorial.L02rw -#. §0: $x$ -#. §1: $y$ -#. §2: $y = x + 7$ -#. §3: $2y = 2(x + 7)$ -msgid "If §0 and §1 are natural numbers, and §2, then §3." -msgstr "自然数§0と§1が存在し、かつ§2が真ならば、§3は真である。" +# decideはタクティク名なのでそのまま +#: Game.Levels.Algorithm.L09decide2 +msgid "decide again" +msgstr "もう一度 decide" -#: Game.Levels.Power.L09add_sq -msgid "[final boss music]" -msgstr "[最終ボス戦のテーマ音楽]" +#: Game.Levels.AdvAddition +msgid "Advanced Addition World" +msgstr "高度な加算ワールド" -#: Game.Levels.Tutorial.L07add_succ Game.Levels.Multiplication.L01mul_one -#: Game.Levels.Multiplication.L06two_mul Game.Levels.Algorithm.L07succ_ne_succ -#. §0: `succ_eq_add_one n` -#. §1: `succ n = n + 1` -msgid "§0 is the proof that §1." -msgstr "§0 は、§1 の証明を示しています。" +#: Game.Levels.AdvAddition +#. §0: $x+y=x\\implies y=0$ +#. §1: `≤` +msgid "" +"In Advanced Addition World we will prove some basic\n" +"addition facts such as §0. The theorems\n" +"proved in this world will be used to build\n" +"a theory of inequalities in §1 World.\n" +"\n" +"Click on \"Start\" to proceed." +msgstr "" +"高度な加算ワールドでは、基本的な加法に関するいくつかの事実(§0)の証明を行います。このワールドで証明される定理は、§1" +"ワールドで不等式の理論を構築するために使用されます。\n" +"\n" +"「開始」をクリックして進んでください。" # no-translate -#: Game.Levels.Addition.L05add_right_comm -msgid "add_right_comm" -msgstr "add_right_comm" +#: Game.Levels.AdvAddition.L01add_right_cancel +msgid "add_right_cancel" +msgstr "add_right_cancel" -#: Game.Levels.Addition.L01zero_add -#. §0: `add_zero` -msgid "try rewriting §0." -msgstr "§0で書き換えてみてください." +#: Game.Levels.AdvAddition.L01add_right_cancel +#. §0: `n` +msgid "Start with induction on §0." +msgstr "§0 に対する帰納法から始めてください。" -# no-translate -#: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero -msgid "one_le_of_ne_zero" -msgstr "one_le_of_ne_zero" +#: Game.Levels.AdvAddition.L01add_right_cancel +#. §0: `add_right_cancel a b n` +#. §1: $a+n=b+n\\implies a=b$ +msgid "" +"In this world I will mostly leave you on your own.\n" +"\n" +"§0 is the theorem that §1." +msgstr "" +"このワールドでは、基本的にはご自身で学習を進めていただきます。\n" +"\n" +"§0は、§1という定理です。" #: Game.Levels.AdvAddition.L01add_right_cancel #: Game.Levels.AdvAddition.L02add_left_cancel @@ -4775,729 +4528,832 @@ msgid "§0 is the theorem that §1" msgstr "§0は§1の定理です。" # no-translate -#: Game.Levels.Power.L04one_pow -msgid "one_pow" -msgstr "one_pow" - -#: Game.Levels.Algorithm.L01add_left_comm -#. §0: $a, b, c$ -#. §1: $a+(b+c)=b+(a+c)$ -msgid "If §0 are numbers, then §1." -msgstr "もし§0が数値ならば、§1。" +#: Game.Levels.AdvAddition.L02add_left_cancel +msgid "add_left_cancel" +msgstr "add_left_cancel" -#: Game.Levels.LessOrEqual.L01le_refl -#. §0: `a ≤ b` -#. §1: `∃ c, b = a + c` -#. §2: `a ≤ b` -#. §3: `c` -#. §4: `b = a + c` -#. §5: `use` +#: Game.Levels.AdvAddition.L02add_left_cancel +#. §0: `add_left_cancel a b n` +#. §1: $n+a=n+b\\implies a=b$ +#. §2: `n` +#. §3: `add_right_cancel` msgid "" -"§0 is *notation* for §1. This \"backwards E\"\n" -"means \"there exists\". So §2 means that there exists\n" -"a number §3 such that §4. This definition works\n" -"because there are no negative numbers in this game.\n" -"\n" -"To *prove* an \"exists\" statement, use the §5 tactic.\n" -"Let's see an example." +"§0 is the theorem that §1.\n" +"You can prove it by induction on §2 or you can deduce it from §3." msgstr "" -"§0は§1の記号です。「反転したE」とは「存在」を表します。したがって、§2は、「ある数§3が存在し、かつ§4" -"を満たす」ことを意味します。この定義は、このゲームには負の数が含まれないため有効です。\n" -"\n" -"「存在する」文を証明するには、§5のタクティクを使用します。例を見てみましょう。" - -# no-translate -#: Game.Levels.LessOrEqual.L02zero_le -msgid "0 ≤ x" -msgstr "0 ≤ x" +"§0 は §1 を示す定理です。\n" +"この定理を証明するには、§2 に関する数学的帰納法を用いるか、§3 から推論できます。" -# no-translate -#: Game.Levels.LessOrEqual.L07or_symm -#. §0: `or` -msgid "Dealing with §0" -msgstr "§0 を扱う方法" +#: Game.Levels.AdvAddition.L02add_left_cancel +#. §0: ``` +#. repeat rw [add_comm n] +#. exact add_right_cancel a b n +#. ``` +msgid "" +"How about this for a proof:\n" +"§0" +msgstr "" +"この証明はどうでしょうか:\n" +"§0" # no-translate -#: Game.Levels.Multiplication.L08add_mul -msgid "add_mul" -msgstr "add_mul" - -#: Game.Levels.AdvMultiplication.L07mul_ne_zero -#. §0: `apply eq_succ_of_ne_zero at ha` -#. §1: `... at hb` -msgid "Start with §0 and §1" -msgstr "開始には、§0 と §1 を使用してください。" +#: Game.Levels.AdvAddition.L03add_left_eq_self +msgid "add_left_eq_self" +msgstr "add_left_eq_self" -#: Game.Levels.Power.L02zero_pow_succ -#. §0: `pow_succ a b : a ^ (succ b) = a ^ b * a` +#: Game.Levels.AdvAddition.L03add_left_eq_self +#. §0: `y` +#. §1: `add_left_eq_self` +#. §2: `add_right_cancel` +#. §3: `` +#. §4: `>_` +#. §5: ``` +#. nth_rewrite 2 [← zero_add y] +#. exact add_right_cancel x 0 y +#. ``` msgid "" -"§0 is one of the\n" -"two axioms defining exponentiation in this game." -msgstr "§0は、このゲームにおける指数関数の定義を定める2つの公理のうちの1つです。" +"Did you use induction on §0?\n" +"Here's a two-line proof of §1 which uses §2.\n" +"If you want to inspect it, you can go into editor mode by clicking §3 in " +"the top right\n" +"and then just cut and paste the proof and move your cursor around it\n" +"to see the hypotheses and goal at any given point\n" +"(although you'll lose your own proof this way). Click §4 to get\n" +"back to command line mode.\n" +"§5" +msgstr "" +"帰納法を用いて §0 を証明しましたか?\n" +"§2 を使用した §1 の 2 行の証明があります。\n" +"証明を確認したい場合は、右上の §3 をクリックしてエディタモードに入り、\n" +"その後証明をコピー&ペーストし、カーソルを移動させて任意の時点での仮定と目標を確認できます。(ただし、この方法ではご自身の証明は失われます)。§4 " +"をクリックしてコマンドラインモード (タイプライターモード) に戻ってください。\n" +"§5" -#: Game.Levels.Multiplication.L01mul_one -#. §0: `mul_zero` -#. §1: `mul_succ` -#. §2: `1` +#: Game.Levels.AdvAddition.L04add_right_eq_self +#. §0: `add_left_eq_self` +#. §1: ``` +#. rw [add_comm] +#. intro h +#. apply add_left_eq_self at h +#. exact h +#. ``` +#. §2: ``` +#. rw [add_comm] +#. exact add_left_eq_self y x +#. ``` +#. §3: `x` +#. §4: ``` +#. induction x with d hd +#. intro h +#. rw [zero_add] at h +#. exact h +#. intro h +#. rw [succ_add] at h +#. apply succ_inj at h +#. apply hd at h +#. exact h +#. ``` msgid "" -"See the new \"*\" tab in your lemmas, containing §0 and §1.\n" -"Right now these are the only facts we know about multiplication.\n" -"Let's prove nine more.\n" +"Here's a proof using §0:\n" +"§1\n" "\n" -"Let's start with a warm-up: no induction needed for this one,\n" -"because we know §2 is a successor." +"and here's an even shorter one using the same idea:\n" +"§2\n" +"\n" +"Alternatively you can just prove it by induction on §3:\n" +"\n" +"§4" msgstr "" -"新しい「*」タブを確認してください。このタブには、§0 と §1 が表示されます。\n" -"現在、これらは乗算に関する唯一の既知的事実です。\n" -"それでは、さらに9つの定理を証明しましょう。\n" +"以下は、§0を用いた証明です:\n" +"§1\n" "\n" -"まずは簡単な例から始めましょう。この場合は、帰納法は不要です。\n" -"なぜなら、§2 は後者であるためです。" - -#: Game.Levels.Implication.L09zero_ne_succ -#: Game.Levels.AdvAddition.L01add_right_cancel -msgid "Nice!" -msgstr "素晴らしい!" +"また、同様の考え方を用いると、さらに短い証明も可能です:\n" +"§2\n" +"\n" +"あるいは、§3 に対して数学的帰納法を用いて証明することもできます:\n" +"§4" -#: Game.Levels.Multiplication.L01mul_one Game.Levels.Multiplication.L05one_mul -#: Game.Levels.Multiplication.L06two_mul -#. §0: $m$ -#. §1: $ m \\times 1 = m$ -msgid "For any natural number §0, we have §1." -msgstr "任意の自然数 §0 に対しては、§1 が成り立ちます。" +#: Game.Levels.AdvAddition.L04add_right_eq_self +#. §0: `add_right_eq_self x y` +#. §1: $x + y = x\\implies y=0.$ +msgid "" +"§0 is the theorem that §1\n" +"Two ways to do it spring to mind; I'll mention them when you've solved it." +msgstr "" +"§0 は、§1 を証明する定理です。\n" +"この証明方法は2つ考えられますが、あなたが解決された後に説明します。" -#: Game.Levels.Tutorial.L02rw -#. §0: `rw [h]` -#. §1: `y` -#. §2: `x + 7` -msgid "First execute §0 to replace the §1 with §2." -msgstr "まず、 §0 を実行して §1 を §2 に置き換えてください。" +# no-translate +#: Game.Levels.AdvAddition.L04add_right_eq_self +msgid "add_right_eq_self" +msgstr "add_right_eq_self" -#: Game.Levels.Implication -#. §0: $2+2=4$ -#. §1: $2+2\\neq 5$ -#. §2: $x + y = y + x$ -#. §3: $x+1=4 \\implies x=3.$ +#: Game.Levels.AdvAddition.L05add_right_eq_zero +#. §0: `≤` +#. §1: `a + b = 0` +#. §2: `a = 0` +#. §3: `b = 0` +#. §4: `cases` +#. §5: `cases` +#. §6: `b = 0` +#. §7: `b = succ d` +#. §8: `hd` +#. §9: `induction b with d hd` +#. §10: `cases b with d` +#. §11: `b = 0` +#. §12: `b = succ d` +#. §13: `h : False` +#. §14: `cases h` +#. §15: `False` msgid "" -"We've proved that §0; in Implication World we'll learn\n" -"how to prove §1.\n" +"The next result we'll need in §0 World is that if §1 then §2 and §3.\n" +"Let's prove one of these facts in this level, and the other in the next.\n" "\n" -"In Addition World we proved *equalities* like §2.\n" -"In this second tutorial world we'll learn some new tactics,\n" -"enabling us to prove *implications*\n" -"like §3\n" +"## A new tactic: §4\n" "\n" -"We'll also learn two new fundamental facts about\n" -"natural numbers, which Peano introduced as axioms.\n" +"The §5 tactic will split an object or hypothesis up into the possible ways\n" +"that it could have been created.\n" "\n" -"Click on \"Start\" to proceed." +"For example, sometimes you want to deal with the two cases §6 and §7 " +"separately,\n" +"but don't need the inductive hypothesis §8 that comes with §9.\n" +"In this situation you can use §10 instead. There are two ways to make\n" +"a number: it's either zero or a successor. So you will end up with two " +"goals, one\n" +"with §11 and one with §12.\n" +"\n" +"Another example: if you have a hypothesis §13 then you are done, because a " +"false statement implies\n" +"any statement. Here §14 will close the goal, because there are *no* ways to\n" +"make a proof of §15! So you will end up with no goals, meaning you have " +"proved everything." msgstr "" -"私たちは§0の証明を示しました; 含意ワールドでは、§1を証明する方法について学びます。\n" +"次に §0 ワールドで必要となる結果は、「もし §1 ならば §2 と §3 である」というものです。\n" +"このレベルで一つの事実を証明し、次のレベルでもう一つの事実を証明しましょう。\n" "\n" -"加法ワールドでは、§2のような等式を証明しました。\n" -"この二つ目のチュートリアルワールドでは、新しいタクティク(証明手法)を学び、これを使って§3のような推論を証明できるようになります。\n" +"## 新しいタクティク: §4\n" "\n" -"また、ペアノが公理として導入した自然数に関する二つの新しい基本的事実についても学びます。\n" +"§5 タクティクは、目的や仮定を生成された可能性のある方法に分割します。\n" "\n" -"「開始」をクリックして進みましょう。" - -# no-translate -#: Game.Levels.LessOrEqual.L11le_two -msgid "le_two" -msgstr "le_two" - -# no-translate -#: Game.Levels.Power.L05pow_two -msgid "pow_two" -msgstr "pow_two" +"例えば、時々 §6 と §7 の二つのケースを個別に扱いたい場合がありますが、§9 が伴う §8 の帰納的仮定は必要ありません。\n" +"この状況では、§10 を使用することができます。数を作る方法は二つあります:ゼロか後続です。したがって、二つの目標が残ります。一つには §11 " +"があり、もう一つには §12 があります。\n" +"\n" +"別の例:仮定 §13 がある場合、証明は完了します。偽の命題は任意の命題を導くからです。ここでは §14 が目標を閉じます。なぜなら §15 " +"の証明を作る方法は *ありません*!したがって、目標が残らないため、すべてを証明したということになります。" -#: Game.Levels.AdvMultiplication.L08mul_eq_zero -#. §0: ``` -#. have h2 := mul_ne_zero a b -#. tauto -#. ``` -#. §1: `mul_ne_zero a b` +#: Game.Levels.AdvAddition.L05add_right_eq_zero +#. §0: `b = 0` +#. §1: `b ≠ 0` +#. §2: `cases b with d` msgid "" -"Here's the short proof:\n" -"§0\n" -"This works because, given §1,\n" -"the argument is reduced to pure logic." -msgstr "" -"以下は短い証明です:\n" -"§0\n" -"これは、与えられた §1 から\n" -"議論が純粋な論理に簡約されるためです。" - -#: Game.Levels.Algorithm.L05pred -#. §0: `rw [← pred_succ a]` -msgid "Start with §0 and take it from there." -msgstr "開始にあたり、§0から始め、それに基づいて進んでください。" +"Here we want to deal with the cases §0 and §1 separately,\n" +"so start with §2." +msgstr "ここでは§0と§1のケースについて個別に検討するため、まず§2から説明します。" -#: Game.Levels.Algorithm.L05pred -#. §0: `0` -#. §1: `pred` -#. §2: ``` -#. pred 0 := 37 -#. pred (succ n) := n -#. ``` -#. §3: `pred_succ` -#. §4: `pred (succ n) = n` -#. §5: `succ_inj` +#: Game.Levels.AdvAddition.L05add_right_eq_zero +#. §0: `n` +#. §1: `cases n with d` +#. §2: `n = 0` +#. §3: `n = succ d` +#. §4: `h` +#. §5: `cases h with...` +#. §6: `n : ℕ` +#. §7: `cases n with d` +#. §8: `n` +#. §9: `n` +#. §10: `succ d` +#. §11: `0` +#. §12: `h : P ∨ Q` +#. §13: `cases h with hp hq` +#. §14: `hp : P` +#. §15: `hq : Q` +#. §16: `h : False` +#. §17: `cases h` +#. §18: `False` +#. §19: `h : a ≤ b` +#. §20: `cases h with c hc` +#. §21: `c` +#. §22: `hc : b = a + c` +#. §23: `a ≤ b` +#. §24: `∃ c, b = a + c` msgid "" -"We now start work on an algorithm to do addition more efficiently. Recall " -"that\n" -"we defined addition by recursion, saying what it did on §0 and successors.\n" -"It is an axiom of Lean that recursion is a valid\n" -"way to define functions from types such as the naturals.\n" +"## Summary\n" "\n" -"Let's define a new function §1 from the naturals to the naturals, which\n" -"attempts to subtract 1 from the input. The definition is this:\n" +"If §0 is a number, then §1 will break the goal into two goals,\n" +"one with §2 and the other with §3.\n" "\n" -"§2\n" +"If §4 is a proof (for example a hypothesis), then §5 will break the\n" +"proof up into the pieces used to prove it.\n" "\n" -"We cannot subtract one from 0, so we just return a junk value. As well as " -"this\n" -"definition, we also create a new lemma §3, which says that §4.\n" -"Let's use this lemma to prove §5, the theorem which\n" -"Peano assumed as an axiom and which we have already used extensively " -"without justification." +"## Example\n" +"\n" +"If §6 is a number, then §7 will break the goal into two goals,\n" +"one with §8 replaced by 0 and the other with §9 replaced by §10. This\n" +"corresponds to the mathematical idea that every natural number is either " +"§11\n" +"or a successor.\n" +"\n" +"## Example\n" +"\n" +"If §12 is a hypothesis, then §13 will turn one goal\n" +"into two goals, one with a hypothesis §14 and the other with a\n" +"hypothesis §15.\n" +"\n" +"## Example\n" +"\n" +"If §16 is a hypothesis, then §17 will turn one goal into no goals,\n" +"because there are no ways to make a proof of §18! And if you have no goals " +"left,\n" +"you have finished the level.\n" +"\n" +"## Example\n" +"\n" +"If §19 is a hypothesis, then §20 will create a new number §21\n" +"and a proof §22. This is because the *definition* of §23 is\n" +"§24." msgstr "" -"効率的な加算を行うアルゴリズムの作成を開始します。再帰によって加算を定義したことを思い出してください。具体的には、0" -"と後者に対して何を行うかを定義しました。Leanの公理として、再帰は自然数などの型から関数を定義する有効な方法であるとされています。\n" +"## 概要\n" +"\n" +"もし §0 が数値である場合、§1 は目標を二つに分割し、一つには §2 を、もう一つには §3 を含めます。\n" +"\n" +"もし §4 が証明(例えば仮定)である場合、§5 はその証明に使用された部分に分割します。\n" +"\n" +"## 例\n" +"\n" +"もし §6 が数値である場合、§7 は目標を二つに分割し、一つには §8 を 0 に置き換えたもの、もう一つには §9 を §10 " +"に置き換えたものが含まれます。これは、すべての自然数が §11 または後続数であることを示す数学的な考え方に合致します。\n" "\n" -"自然数から自然数への新しい関数§1を定義します。これは、入力から1を引こうとする関数です。その定義は以下の通りです:\n" +"## 例\n" "\n" -"§2\n" +"もし §12 が仮定である場合、§13 は一つの目標を二つに分割し、一つには §14 という仮定が含まれ、もう一つには §15 " +"という仮定が含まれます。\n" "\n" -"0から1を引くことはできませんので、無効な値を返します。この定義とともに、新しい補題§3も定義します。これは§4を述べています。この補題を使って、§5" -"(ペアノが公理として仮定し、以前にも正当化せずに頻繁に使用した定理)を証明しましょう。" +"## 例\n" +"\n" +"もし §16 が仮定である場合、§17 は一つの目標を無数の目標に分割しません。なぜなら、§18 " +"の証明方法が存在しないからです!そして、目標が残っていない場合、レベルは終了します。\n" +"\n" +"## 例\n" +"\n" +"もし §19 が仮定である場合、§20 は新しい数値 §21 と証明 §22 を作成します。これは §23 の定義が §24 であるからです。" + +#: Game.Levels.AdvAddition.L05add_right_eq_zero +#: Game.Levels.AdvAddition.L06add_left_eq_zero +#. §0: $a+b=0 \\implies a=0$ +msgid "A proof that §0." +msgstr "§0 の証明。" + +#: Game.Levels.AdvAddition.L05add_right_eq_zero +msgid "Well done!" +msgstr "よくできました!" # no-translate -#: Game.Levels.Algorithm.L06is_zero -msgid "is_zero" -msgstr "is_zero" +#: Game.Levels.AdvAddition.L05add_right_eq_zero +msgid "add_right_eq_zero" +msgstr "add_right_eq_zero" -#: Game.Levels.Multiplication.L09mul_assoc -#. §0: $a$ -#. §1: $b$ -#. §2: $c$ -#. §3: $(ab)c = a(bc)$ +#: Game.Levels.AdvAddition.L06add_left_eq_zero msgid "" -"Multiplication is associative.\n" -"In other words, for all natural numbers §0, §1 and §2, we have\n" -"§3." +"You can just mimic the previous proof to do this one -- or you can figure " +"out a way\n" +"of using it." msgstr "" -"乗算は結合法則に従います。\n" -"言い換えれば、任意の自然数 §0, §1, §2 について、以下のことが成り立ちます。\n" -"§3。" +"前の証明の手順を参考に、同様の方法でこの証明を行うことができます。\n" +"-- または、それを活用するための別の手段を見つけることも可能です。" -#: Game.Levels.Algorithm.L03add_algo2 -#. §0: `simp` -#. §1: `rw` -#. §2: `simp` +# no-translate +#: Game.Levels.AdvAddition.L06add_left_eq_zero +msgid "add_left_eq_zero" +msgstr "add_left_eq_zero" + +#: Game.Levels.AdvAddition.L06add_left_eq_zero +#. §0: ``` +#. rw [add_comm] +#. exact add_right_eq_zero b a +#. ``` +#. §1: `≤` msgid "" -"Lean's simplifier, §0, is \"§1 on steroids\". It will rewrite every lemma\n" -"tagged with §2 and every lemma fed to it by the user, as much as it can.\n" +"How about this for a proof:\n" "\n" -"This level is not a level which you want to solve by hand.\n" -"Get the simplifier to solve it for you." +"§0\n" +"\n" +"That's the end of Advanced Addition World! You'll need these theorems\n" +"for the next world, §1 World. Click on \"Home\" to access it." msgstr "" -"Leanの簡約化処理器、§0は「§1の強化版」です。これは、§2" -"でタグ付けされたすべての定理およびユーザーによって与えられたすべての定理をできる限り簡約化します。\n" +"以下のいずれかの証明方法はいかがでしょうか:\n" "\n" -"このレベルでは手作業での解決が推奨されません。\n" -"簡約化処理器に任せて解いてください。" +"§0\n" +"\n" +"高度な加算ワールドはこれで終了です。次の §1 ワールドでは、これらの定理が必要になります。「ホーム」ボタンをクリックしてアクセスしてください。" -#: Game.Levels.Tutorial.L02rw -#. §0: `h : X = Y` -#. §1: `X` -#. §2: `nth_rewrite 3 [h]` -#. §3: `X` -#. §4: `Y` -#. §5: `2 + 2 = 4` -#. §6: `nth_rewrite 2 [two_eq_succ_one]` -#. §7: `2 + succ 1 = 4` -#. §8: `rw [two_eq_succ_one]` -#. §9: `succ 1 + succ 1 = 4` +#: Game.Levels.LessOrEqual +#. §0: `a ≤ b` +#. §1: `a ≤ b` +#. §2: `b ≤ c` +#. §3: `a ≤ c` +#. §4: `a ≤ b` +#. §5: `c` +#. §6: `b = a + c` msgid "" -"## Summary\n" -"\n" -"If §0 and there are several §1s in the goal, then\n" -"§2 will just change the third §3 to a §4.\n" +"In this world we define §0 and prove standard facts\n" +"about it, such as \"if §1 and §2 then §3.\"\n" "\n" -"## Example\n" +"The definition of §4 is \"there exists a number §5\n" +"such that §6. \" So we're going to have to learn\n" +"a tactic to prove \"exists\" theorems, and another one\n" +"to use \"exists\" hypotheses.\n" "\n" -"If the goal is §5 then §6\n" -"will change the goal to §7. In contrast, §8\n" -"will change the goal to §9." +"Click on \"Start\" to proceed." msgstr "" -"## 概要\n" -"\n" -"目標に §0 が存在し、かつ目標に複数の §1 が存在する場合には、§2 は第三の §3 を §4 に変更します。\n" +"このワールドで §0 を定義し、その標準的な事実を証明します。例えば、「§1 と §2 が成り立つならば §3 が成り立つ」などです。\n" "\n" -"## 例\n" +"§4 の定義は「ある数 §5 が存在して、§6 " +"が成り立つ」です。そのため、「存在」に関する定理を証明するタクティクと、「存在」に関する仮定を使うタクティクを学ぶ必要があります。\n" "\n" -"もし目標が §5 である場合、§6 は目標を §7 に変更します。一方、§8 は目標を §9 に変更します。" +"\"開始\" をクリックして進みましょう。" -#: Game.Levels.Implication.L05succ_inj2 -#. §0: $P\\implies Q$ -#. §1: $Q$ -#. §2: $P$ -#. §3: `rw [succ_eq_add_one]` -msgid "" -"Applying a proof of §0 to the *goal* changes §1 to §2.\n" -"Now try §3 to make the goal more like the hypothesis." -msgstr "" -"証明 §0 を *目標* に対して適用することで、§1 が §2 になります。\n" -"次に §3 を試し、目標を仮定に近づけることを試みてください。" +#: Game.Levels.LessOrEqual +msgid "≤ World" +msgstr "≤ ワールド" -#: Game.Levels.Multiplication.L03succ_mul -#. §0: $a$ -#. §1: $b$ -#. §2: $(\\operatorname{succ}\\ a) \\times b = a\\times b + b$ +#: Game.Levels.LessOrEqual.L01le_refl +msgid "You can probably take it from here." +msgstr "ここからでも進めることができるでしょう。" + +#: Game.Levels.LessOrEqual.L01le_refl +#. §0: `a ≤ b` +#. §1: `∃ c, b = a + c` +#. §2: `a ≤ b` +#. §3: `use` +#. §4: `h : a ≤ b` +#. §5: `cases h with c hc` msgid "" -"For all natural numbers §0 and §1, we have\n" -"§2." +"§0 is *notation* for §1.\n" +"\n" +"Because this game doesn't have negative numbers, this definition\n" +"is mathematically valid.\n" +"\n" +"This means that if you have a goal of the form §2 you can\n" +"make progress with the §3 tactic, and if you have a hypothesis\n" +"§4, you can make progress with §5." msgstr "" -"すべての自然数 §0 と §1 について、\n" -"§2。" - -#: Game.Levels.AdvAddition.L05add_right_eq_zero -#: Game.Levels.AdvAddition.L06add_left_eq_zero -#. §0: $a+b=0 \\implies a=0$ -msgid "A proof that §0." -msgstr "§0 の証明。" - -#: Game.Levels.Algorithm.L02add_algo1 -#. §0: `repeat rw [add_assoc]` -msgid "Start with §0 to push all the brackets to the right." -msgstr "開始時に §0 を使用し、すべての括弧を右側に移動させます。" +"§0は§1の表記です。\n" +"\n" +"このゲームには負の数が存在しないため、この定義は数学的に有効です。\n" +"\n" +"これにより、あなたが§2という形式の目標を持つ場合、§3の手法を用いて進展できます。また、仮定§4を持っている場合、§5の手法を用いて進展できます。" -#: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero -#. §0: `cases a with d` -#. §1: `a = 0` -#. §2: `a = succ d` -msgid "Start with §0 to do a case split on §1 and §2." -msgstr "開始にあたり、§0 を用いて §1 と §2 に対してケース分割を実行します。" +#: Game.Levels.LessOrEqual.L01le_refl +#. §0: `«{x}» ≤ «{x}»` +#. §1: `«{x}» = «{x}» + 0` +#. §2: `use 0` +msgid "" +"The reason §0 is because §1.\n" +"So you should start this proof with §2." +msgstr "理由は§0であるため、この命題は正しいと言えます。したがって、この証明は§2から始めるのが適切です。" -#: Game.Levels.AdvMultiplication.L09mul_left_cancel -#. §0: `mul_eq_zero` -#. §1: `tauto` -#. §2: `a = 0` -#. §3: `a ≠ 0` +#: Game.Levels.LessOrEqual.L01le_refl +#. §0: `le_refl x` +#. §1: `x ≤ x` +#. §2: $\\le$ msgid "" -"Use §0 and remember that §1 will solve a goal\n" -"if there are hypotheses §2 and §3." -msgstr "§0を使用します。仮定として§2と§3が存在する場合、§1を用いることで目標を解決できます。" +"§0 is a proof of §1.\n" +"\n" +"The reason for the name is that this lemma is \"reflexivity of §2\"" +msgstr "" +"§0 は §1 の証明です。\n" +"\n" +"この名称は、「§2 の反射性」であることを示すために付けられました。" -#: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero -msgid "The previous lemma can be used to prove this one." -msgstr "前の定理を用いることで、この定理の証明が可能となります。" +#: Game.Levels.LessOrEqual.L01le_refl +#. §0: `a ≤ b` +#. §1: `∃ c, b = a + c` +#. §2: `a ≤ b` +#. §3: `c` +#. §4: `b = a + c` +#. §5: `use` +msgid "" +"§0 is *notation* for §1. This \"backwards E\"\n" +"means \"there exists\". So §2 means that there exists\n" +"a number §3 such that §4. This definition works\n" +"because there are no negative numbers in this game.\n" +"\n" +"To *prove* an \"exists\" statement, use the §5 tactic.\n" +"Let's see an example." +msgstr "" +"§0は§1の記号です。「反転したE」とは「存在」を表します。したがって、§2は、「ある数§3が存在し、かつ§4" +"を満たす」ことを意味します。この定義は、このゲームには負の数が含まれないため有効です。\n" +"\n" +"「存在する」文を証明するには、§5のタクティクを使用します。例を見てみましょう。" -#: Game.Levels.Algorithm.L06is_zero -#. §0: `is_zero` -#. §1: ``` -#. is_zero 0 := True -#. is_zero (succ n) := False -#. ``` -#. §2: `is_zero_zero` -#. §3: `is_zero_succ n` -#. §4: `is_zero 0 = True` -#. §5: `is_zero (succ n) = False` -#. §6: `succ_ne_zero` -#. §7: `zero_ne_succ` -#. §8: `zero_ne_succ` -#. §9: `True` -#. §10: `trivial` +#: Game.Levels.LessOrEqual.L01le_refl Game.Levels.LessOrEqual.L02zero_le +#: Game.Levels.LessOrEqual.L03le_succ_self +#. §0: $x$ +#. §1: $x \\le x$ +msgid "If §0 is a number, then §1." +msgstr "もし §0 が数値であるならば、§1 は真となる。" + +#: Game.Levels.LessOrEqual.L01le_refl +#. §0: `use` +#. §1: `x` +#. §2: `x = 37` +#. §3: `use 37` +#. §4: `a ≤ b` +#. §5: `c` +#. §6: `b = a + c` +#. §7: `a ≤ b` +#. §8: `use` +#. §9: `b - a` +#. §10: `use b - a` +#. §11: `use` +#. §12: `use 37` +#. §13: `use a` +#. §14: `use a * a + 1` +#, fuzzy msgid "" -"We define a function §0 thus:\n" +"## Summary\n" "\n" -"§1\n" +"The §0 tactic makes progress with goals which claim something *exists*.\n" +"If the goal claims that some §1 exists with some property, and you know\n" +"that §2 will work, then §3 will make progress.\n" "\n" -"We also create two lemmas, §2 and §3, saying that §4\n" -"and §5. Let's use these lemmas to prove §6, Peano's\n" -"Last Axiom. Actually, we have been using §7 before, but it's handy to have\n" -"this opposite version too, which can be proved in the same way. Note: you " -"can\n" -"cheat here by using §8 but the point of this world is to show\n" -"you how to *prove* results like that.\n" +"Because §4 is notation for \\\\\"there exists §5 such that §6\\\\\",\n" +"you can make progress on goals of the form §7 by §8ing the\n" +"number which is morally §9 (i.e. §10)\n" "\n" -"If you can turn your goal into §9, then the §10 tactic will solve it." +"Any of the following examples is possible assuming the type of the argument " +"passed to the §11 function is accurate:\n" +"\n" +"- §12\n" +"- §13\n" +"- §14" msgstr "" -"関数 §0 は以下の通り定義します:\n" +"## 概要\n" "\n" -"§1\n" +"§0 タクティクは、「何かが存在する」という主張を含む目標に対して、進展を促します。\n" +"もし目標が「ある特定の性質を持つものが存在する」と主張し、その存在を示す方法が §2 である場合、§3 は進展を促します。\n" "\n" -"また、補題 §2 と §3 を定義し、それぞれ §4\n" -"と §5 とします。これらの補題を用いて、ペアノの最終公理 §6 の証明を行います。実際、§7 " -"は以前から使用していましたが、同じ方法で証明できる逆の命題も用意しておくと便利です。注意:ここでは §8 " -"を使用して解決することも可能ですが、このワールドの目的は、そのような結果を証明する方法を示すことです。\n" +"§4 は「§6 を満たす §5 が存在する」という主張を表す記号であり、目標が §7 のような形式の場合、§8 を行うことで、道徳的に §9 (つまり " +"§10) とみなされる番号を用いて進展させることができます。\n" "\n" -"目標を §9 に変換できれば、§10 タクティクを用いて解決できます。" - -# no-translate -#: Game.Levels.AdvMultiplication.L08mul_eq_zero -msgid "mul_eq_zero" -msgstr "mul_eq_zero" +"以下のいずれかの例が可能です(ただし、§11 関数に渡される引数の型が正確である場合):\n" +"\n" +"- §12\n" +"- §13\n" +"- §14" -#: Game.Levels.Tutorial.L03two_eq_ss0 -#. §0: `rw [two_eq_succ_one]` -#. §1: `2` -msgid "Start with §0 to begin to break §1 down into its definition." -msgstr "まず§0から開始し、そこから§1を定義へと分解していくことから始めましょう。" +#: Game.Levels.LessOrEqual.L02zero_le +#. §0: `use` +#. §1: `c` +#. §2: `x = 0 + c` +msgid "To solve this level, you need to §0 a number §1 such that §2." +msgstr "このレベルを解くには、§0 に数値を指定し、§1 とすることで、§2 が成り立つようにする必要があります。" # no-translate -#: Game.Levels.Implication.L10one_ne_zero -msgid "1 ≠ 0" -msgstr "1 ≠ 0" +#: Game.Levels.LessOrEqual.L02zero_le +msgid "0 ≤ x" +msgstr "0 ≤ x" -# no-translate -#: Game.Levels.AdvMultiplication.L01mul_le_mul_right -msgid "mul_le_mul_right" -msgstr "mul_le_mul_right" +#: Game.Levels.LessOrEqual.L03le_succ_self +#. §0: ``` +#. use 1 +#. exact succ_eq_add_one x +#. ``` +#. §1: `succ_eq_add_one x` +#. §2: `succ x = x + 1` +msgid "" +"Here's a two-liner:\n" +"§0\n" +"\n" +"This works because §1 is a proof of §2." +msgstr "" +"以下は2行で構成された証明です:\n" +"§0\n" +"\n" +"これは、§1が§2を証明するため有効です。" # no-translate -#: Game.Levels.AdvAddition.L04add_right_eq_self -msgid "add_right_eq_self" -msgstr "add_right_eq_self" +#: Game.Levels.LessOrEqual.L03le_succ_self +msgid "x ≤ succ x" +msgstr "x ≤ succ x" -#: Game.Levels.Implication.L08ne -#. §0: `2 + 2 ≠ 5` -#. §1: `≠` -#. §2: `a ≠ b` -#. §3: `a = b → False` -#. §4: `False` -#. §5: `→` -#. §6: `True → False` -#. §7: `False → False` -#. §8: `X → False` -#. §9: `X` -#. §10: `a ≠ b` -#. §11: `False` -#. §12: `False` +#: Game.Levels.LessOrEqual.L03le_succ_self +#. §0: `use` +#. §1: `use` msgid "" -"We still can't prove §0 because we have not talked about the\n" -"definition of §1. In Lean, §2 is *notation* for §3.\n" -"Here §4 is a generic false proposition, and §5 is Lean's notation\n" -"for \"implies\". In logic we learn\n" -"that §6 is false, but §7 is true. Hence\n" -"§8 is the logical opposite of §9.\n" -"\n" -"Even though §10 does not look like an implication,\n" -"you should treat it as an implication. The next two levels will show you " -"how.\n" -"\n" -"§11 is a goal which you cannot deduce from a consistent set of assumptions!\n" -"So if your goal is §12 then you had better hope that your hypotheses\n" -"are contradictory, which they are in this level." +"If you §0 the wrong number, you get stuck with a goal you can't prove.\n" +"What number will you §1 here?" msgstr "" -"まだ §0 の証明はできません。なぜなら、§1 の定義について議論していないからです。Lean では、§2 は §3 の *表記* です。\n" -"ここでは §4 は一般的な偽命題であり、§5 は Lean における \"implies\" の表記です。論理学では §6 " -"が偽であると学習しますが、§7 は真です。したがって §8 は §9 の論理的対偶となります。\n" -"\n" -"§10 は含意のように見えないかもしれませんが、含意として扱うべきです。次の 2 つのレベルでその方法を学びます。\n" -"\n" -"§11 は一貫性のある仮定から導き出せない目標です!したがって、目標が §12 の場合、仮定が矛盾していることを期待し、このレベルではそうしています。" +"もし、間違った数字を §0 した場合、証明不可能な目標に陥ります。\n" +"どのような数字を §1 しますか?" #: Game.Levels.LessOrEqual.L04le_trans -msgid "x ≤ y and y ≤ z implies x ≤ z" -msgstr "x ≦ y かつ y ≦ z ならば、x ≦ z が成り立つ。" +#. §0: `cases` +#. §1: `hxy` +msgid "" +"In this level, we see inequalities as *hypotheses*. We have not seen this " +"before.\n" +"The §0 tactic can be used to take §1 apart." +msgstr "" +"このレベルでは、不等式を *仮定* として扱います。これまではこのような扱いがありませんでした。\n" +"§0 タクティクは、§1 を分解するために使用できます。" -#: Game.Levels.Implication.L02exact2 -#. §0: `exact` -msgid "§0 practice." -msgstr "§0 演習。" +#: Game.Levels.LessOrEqual.L04le_trans +#. §0: `«{ha}»` +#. §1: `«{y}» = «{x}» + «{a}»` +#. §2: `hxy` +#. §3: `«{hyz}»` +#. §4: `cases «{hyz}» with b hb` +msgid "" +"Now §0 is a proof that §1, and §2 has vanished. Similarly, you can destruct\n" +"§3 into its parts with §4." +msgstr "現在、§0 は §1 の証明を示します。また、§2 は消えました。同様に、§4 を用いて §3 を構成要素に分解することができます。" -#: Game.Levels.Implication.L10one_ne_zero -#. §0: `zero_ne_succ n` -#. §1: `0 = succ n → False` -#. §2: `succ n = 0` -#. §3: `symm` -#. §4: `x = y` -#. §5: `y = x` -#. §6: `x ≠ y` -#. §7: `y ≠ x` -#. §8: `symm at h` -#. §9: `h` -#. §10: $0 \\neq 1$ -#. §11: `zero_ne_one` -#. §12: $1 \\neq 0$ +#: Game.Levels.LessOrEqual.L04le_trans Game.Levels.LessOrEqual.L06le_antisymm +#. §0: $x \\leq y$ +#. §1: $y \\leq z$ +#. §2: $x \\leq z$ +msgid "If §0 and §1, then §2." +msgstr "もし §0 かつ §1 が真ならば、§2 は真である。" + +#: Game.Levels.LessOrEqual.L04le_trans +#. §0: `use` msgid "" -"We know §0 is a proof of §1 -- but what\n" -"if we have a hypothesis §2? It's the wrong way around!\n" +"Now you need to figure out which number to §0. See if you can take it from " +"here." +msgstr "今度は、 §0 の部分にどのような数値を入力すれば良いか検討してください。この部分から推論を進めることができれば、ご自身で試してみてください。" + +#: Game.Levels.LessOrEqual.L04le_trans +#. §0: `le_trans x y z` +#. §1: `x ≤ y` +#. §2: `y ≤ z` +#. §3: `x ≤ z` +#. §4: `x ≤ y → (y ≤ z → x ≤ z)` +#. §5: $x \\le y$ +#. §6: $y \\le z$ +#. §7: $x \\le z$ +#. §8: `a + b + c` +#. §9: `(a + b) + c` +#. §10: `+` +#. §11: `→` +#. §12: `x ≤ y → y ≤ z → x ≤ z` +#. §13: `≤` +#. §14: $P \\implies Q \\implies R$ +#. §15: $P \\implies Q$ +#. §16: $Q \\implies R$ +msgid "" +"§0 is a proof that if §1 and §2 then §3.\n" +"More precisely, it is a proof that §4. In words,\n" +"If §5 then (pause) if §6 then §7.\n" "\n" -"The §3 tactic changes a goal §4 to §5, and a goal §6\n" -"to §7. And §8\n" -"does the same for a hypothesis §9. We've proved §10 and called\n" -"the proof §11; now try proving §12." +"## A note on associativity\n" +"\n" +"In Lean, §8 means §9, because §10 is left associative. However\n" +"§11 is right associative. This means that §12 in Lean means\n" +"exactly that §13 is transitive. This is different to how mathematicians use\n" +"§14; for them, this usually means that §15\n" +"and §16." msgstr "" -"私たちは、§0 が §1 の証明であることを知っています。しかし、もし §2 という仮定がある場合、それは逆になってしまいます。\n" +"§0は、§1と§2ならば§3であることを証明しています。\n" +"より正確には、§4を証明しています。具体的には、\n" +"§5ならば(一時停止)、§6ならば§7です。\n" "\n" -"§3 のタクティクは、目標 §4 を §5 に、目標 §6 を §7 に変更します。また、§8 も仮定 §9 に対して同様の操作を行います。\n" +"## 結合性に関する注記\n" "\n" -"§10 を証明し、その証明を §11 と命名しました。次に §12 を証明してみてください。" +"Leanでは、§8は§9を意味し、§10は左から結合します。しかし、§11は右から結合します。これにより、Leanでは§12は§13" +"が転置的であることを意味します。これは、数学的な文脈では通常§14を意味しません;数学的には、これは通常§15と§16の両方が成り立つことを意味します。" -#: Game.Levels.Addition.L02succ_add -msgid "Well done! You now have enough tools to tackle the main boss of this level." -msgstr "よくできました!これで、このレベルのメインボスに対抗するための十分なツールが揃いました。" +#: Game.Levels.LessOrEqual.L04le_trans +#. §0: `≤` +#. §1: `ℕ` +msgid "" +"A passing mathematician remarks that with reflexivity and transitivity out " +"of the way,\n" +"you have proved that §0 is a *preorder* on §1." +msgstr "「反射律と伝搬律をクリアすれば、あなたは §0 が §1 上の *部分順序関係* であることを証明した」と、通りすがりの数学者が言いました。" + +#: Game.Levels.LessOrEqual.L04le_trans +msgid "x ≤ y and y ≤ z implies x ≤ z" +msgstr "x ≦ y かつ y ≦ z ならば、x ≦ z が成り立つ。" -#: Game.Levels.LessOrEqual.L03le_succ_self -#. §0: `use` -#. §1: `use` -msgid "" -"If you §0 the wrong number, you get stuck with a goal you can't prove.\n" -"What number will you §1 here?" -msgstr "" -"もし、間違った数字を §0 した場合、証明不可能な目標に陥ります。\n" -"どのような数字を §1 しますか?" +#: Game.Levels.LessOrEqual.L05le_zero +#. §0: $x \\leq 0$ +#. §1: $x=0$ +msgid "If §0, then §1." +msgstr "もし §0 ならば、§1 。" -#: Game.Levels.Multiplication.L04mul_comm -msgid "Multiplication is commutative." -msgstr "乗算は交換律を満たします。" +#: Game.Levels.LessOrEqual.L05le_zero +#. §0: `le_zero x` +#. §1: `x ≤ 0 → x = 0` +msgid "§0 is a proof of the implication §1." +msgstr "§0 は、§1 の推論を示しています。" -#: Game.Levels.Multiplication.L03succ_mul -#. §0: `mul_succ` -#. §1: `succ_mul` +#: Game.Levels.LessOrEqual.L05le_zero +#. §0: `add_right_eq_zero` +#. §1: `symm at` msgid "" -"Similarly we have §0\n" -"but we're going to need §1 (guess what it says -- maybe you\n" -"are getting the hang of Lean's naming conventions).\n" -"\n" -"The last level from addition world might help you in this level.\n" -"If you can't remember what it is, you can go back to the\n" -"home screen by clicking the house icon and then taking a look.\n" -"You won't lose any progress." -msgstr "" -"同様に §0 もありますが、§1 が必要です (内容を推測してみてください。Lean の命名規則をご理解いただけているかもしれません)。\n" -"\n" -"加算ワールドの最後のレベルが、このレベルを攻略するのに役立つ可能性があります。もし内容を忘れてしまった場合は、ホーム画面に戻るためにアイコンをクリックし" -"てください。進捗は失われません。" - -#: Game.Levels.Implication.L09zero_ne_succ Game.Levels.LessOrEqual.L04le_trans -#: Game.Levels.LessOrEqual.L08le_total -#: Game.Levels.AdvMultiplication.L02mul_left_ne_zero -#: Game.Levels.AdvMultiplication.L08mul_eq_zero -#. §0: `intro h` -msgid "Start with §0." -msgstr "§0 から開始してください。" +"You want to use §0, which you already\n" +"proved, but you'll have to start with §1 your hypothesis." +msgstr "既に証明した§0を使用したいですが、まず§1という仮定から始める必要があります。" # no-translate -#: Game.Levels.Multiplication.L03succ_mul -msgid "succ_mul" -msgstr "succ_mul" +#: Game.Levels.LessOrEqual.L05le_zero +msgid "x ≤ 0 → x = 0" +msgstr "x ≤ 0 → x = 0" -#: Game.Levels.Algorithm.L01add_left_comm -#. §0: `add_left_comm` -#. §1: `rw [add_comm b c]` -#. §2: `a + b + c` -#. §3: `(a + b) + c` +#: Game.Levels.LessOrEqual.L05le_zero msgid "" -"Having to rearrange variables manually using commutativity and\n" -"associativity is very tedious. We start by reminding you of this. §0\n" -"is a key component in the first algorithm which we'll explain, but we need\n" -"to prove it manually.\n" -"\n" -"Remember that you can do precision commutativity rewriting\n" -"with things like §1. And remember that\n" -"§2 means §3." -msgstr "" -"手動で変数を再配置するために、交換法則と結合法則を使用することは非常に手間がかかります。まずは、この点について改めて確認しましょう。§0 " -"は、最初のアルゴリズムの説明において重要な要素ですが、手動で証明する必要があります。\n" -"\n" -"交換法則に基づいた精密な再配置は、§1のような操作で行うことができます。また、§2 は §3 を意味します。" - -#: Game.Levels.Tutorial.L03two_eq_ss0 -msgid "Numbers" -msgstr "数値" +"It's \"intuitively obvious\" that there are no numbers less than zero,\n" +"but to prove it you will need a result which you showed in advanced\n" +"addition world." +msgstr "ゼロ未満の数が存在しないことは、「直感的に明らか」ですが、これを証明するためには、高度な加算ワールドで示された結果が必要となります。" -#: Game.Levels.Tutorial.L07add_succ -#. §0: `rfl` -msgid "And finally §0." -msgstr "そして、最後に、§0。" +#: Game.Levels.LessOrEqual.L06le_antisymm +msgid "x ≤ y and y ≤ x implies x = y" +msgstr "x ≤ y かつ y ≤ x であるとき x = y" -#: Game.Levels.Multiplication -#. §0: `37 * x` -#. §1: $x=0$ -#. §2: $x$ -#. §3: `37 * 0` -#. §4: `0` -#. §5: `37 * d` -#. §6: `37 * succ d` -#. §7: $(d+1)$ -#. §8: $37$ -#. §9: `37 * d + 37` -#. §10: `mul_zero a : a * 0 = 0` -#. §11: `mul_succ a d : a * succ d = a * d + a` -#. §12: `a * b = b * a` -#. §13: `a * (b + c) = a * b + a * c` +#: Game.Levels.LessOrEqual.L06le_antisymm +#. §0: $\\leq$ +#. §1: $x \\leq y$ +#. §2: $y \\leq x$ +#. §3: $x = y$ msgid "" -"How should we define §0? Just like addition, we need to give definitions\n" -"when §1 and when §2 is a successor.\n" -"\n" -"The zero case is easy: we define §3 to be §4. Now say we know\n" -"§5. What should §6 be? Well, that's §7 §8s,\n" -"so it should be §9.\n" -"\n" -"Here are the definitions in Lean.\n" -"\n" -" * §10\n" -" * §11\n" -"\n" -"In this world, we must not only prove facts about multiplication like §12,\n" -"we must also prove facts about how multiplication interacts with addition, " -"like §13.\n" -"Let's get started." +"This level asks you to prove *antisymmetry* of §0.\n" +"In other words, if §1 and §2 then §3.\n" +"It's the trickiest one so far. Good luck!" msgstr "" -"どのように §0 を定義すべきでしょうか?加法と同様に、§1 であるときと §2 が successor " -"であるときそれぞれに定義を提供する必要があります。\n" -"\n" -"ゼロの場合は簡単です:§3 を §4 で定義します。次に §5 を仮定します。§6 のときはどうでしょうか?そうですね、§7 §8 になるので、\n" -"§9になるべきでしょう。\n" -"\n" -"Lean での定義は以下の通りです。\n" -"\n" -" * §10\n" -" * §11\n" -"\n" -"このワールドでは、乗法に関する事実だけでなく、乗法と加法の相互作用に関する事実も証明する必要があります。例えば §12 など。そして §13 " -"なども証明する必要があります。\n" -"始めましょう。" +"このレベルでは、§0の「反対称性」を証明してください。\n" +"すなわち、「§1かつ§2ならば§3」が成り立つことを示します。\n" +"これまでのところ、最も難易度の高い問題です。頑張ってください!" -#: Game.Levels.Implication.L10one_ne_zero +#: Game.Levels.LessOrEqual.L06le_antisymm +#: Game.Levels.AdvMultiplication.L07mul_ne_zero +#: Game.Levels.AdvMultiplication.L09mul_left_cancel +#: Game.Levels.AdvMultiplication.L10mul_right_eq_self +#. §0: `le_antisymm x y` +#. §1: `x ≤ y` +#. §2: `y ≤ x` +#. §3: `x = y` +msgid "§0 is a proof that if §1 and §2 then §3." +msgstr "§0 は、§1 と §2 が成り立つとき、§3 が成り立つことを証明します。" + +#: Game.Levels.LessOrEqual.L06le_antisymm #. §0: ``` -#. symm -#. exact zero_ne_one +#. cases hxy with a ha +#. cases hyx with b hb +#. rw [ha] +#. rw [ha, add_assoc] at hb +#. symm at hb +#. apply add_right_eq_self at hb +#. apply add_right_eq_zero at hb +#. rw [hb, add_zero] +#. rfl #. ``` -#. §1: `exact` +#. §1: `≤` +#. §2: `ℕ` +#. §3: `≤` msgid "" -"What do you think of this two-liner:\n" +"Here's my proof:\n" "§0\n" "\n" -"§1 doesn't just take hypotheses, it will eat any proof which exists\n" -"in the system." +"A passing mathematician remarks that with antisymmetry as well,\n" +"you have proved that §1 is a *partial order* on §2.\n" +"\n" +"The boss level of this world is to prove\n" +"that §3 is a total order. Let's learn two more easy tactics\n" +"first." msgstr "" -"この2行についてどう思いますか:\n" +"私の証明:\n" "§0\n" "\n" -"§1 は、単に仮定を受け取るだけでなく、システム内に存在する任意の証明を評価します。" - -# no-translate -#: Game.Levels.LessOrEqual.L09succ_le_succ -msgid "succ x ≤ succ y → x ≤ y" -msgstr " succ x ≤ succ y → x ≤ y" - -#: Game -msgid "The classical introduction game for Lean." -msgstr "Lean 4 用の、古典的な導入ゲーム。" +"通りすがりの数学者は、反対称性も考慮すると、\n" +"あなたは§1が§2上の*部分順序*であることを証明しました。\n" +"\n" +"このワールドのボスレベルは、§3が完全順序であることを証明することです。\n" +"まずは2つの簡単なタクティクを学習しましょう。" -#: Game.Levels.Implication.L02exact2 -#. §0: `rw [«{h}»]` -#. §1: `rfl` -#. §2: `exact «{h}»` -msgid "" -"Now you could finish with §0 then §1, but §2\n" -"does it in one line." -msgstr "現在、§0 と §1 で処理を終えることができますが、§2 は 1 行で完結します。" +#: Game.Levels.LessOrEqual.L07or_symm +#. §0: $x=37$ +#. §1: $y=42$ +#. §2: $y=42$ +#. §3: $x=37$ +msgid "If §0 or §1, then §2 or §3." +msgstr "もし §0 または §1 なら、§2 または §3 。" -#: Game.Levels.Addition.L05add_right_comm -#. §0: `add_comm b c` -#. §1: `b + c = c + b` -#. §2: `a + b + c = a + c + b` -#. §3: `rw [add_comm b c]` -#. §4: `(a + b) + c = (a + c) + b` -#. §5: `b + c` -#. §6: `add_right_comm` -#. §7: `add_assoc` -#. §8: `add_comm` -#. §9: `rw [add_comm b]` -#. §10: `b + ? = ? + b` -#. §11: `rw [add_comm b c]` -#. §12: `b + c = c + b` +#: Game.Levels.LessOrEqual.L07or_symm +#. §0: `left` +#. §1: `P ∨ Q` +#. §2: `P` +#. §3: `P ∨ Q` +#. §4: `P` +#. §5: `apply` +#. §6: $P \\implies P \\lor Q.$ msgid "" -"§0 is a proof that §1. But if your goal\n" -"is §2 then §3 will not\n" -"work! Because the goal means §4 so there\n" -"is no §5 term *directly* in the goal.\n" +"# Summary\n" +"The §0 tactic changes a goal of §1 into a goal of §2.\n" +"Use it when your hypotheses guarantee that the reason that §3\n" +"is true is because in fact §4 is true.\n" "\n" -"Use associativity and commutativity to prove §6.\n" -"You don't need induction. §7 moves brackets around,\n" -"and §8 moves variables around.\n" +"Internally this tactic is just §5ing a theorem\n" +"saying that §6\n" "\n" -"Remember that you can do more targeted rewrites by\n" -"adding explicit variables as inputs to theorems. For example §9\n" -"will only do rewrites of the form §10, and §11\n" -"will only do rewrites of the form §12." +"Note that this tactic can turn a solvable goal into an unsolvable\n" +"one." msgstr "" -"§0 は §1 の証明です。しかし、あなたの目標が §2 である場合、§3 は機能しません!なぜなら、目標は §4 を意味し、目標に直接的に §5 " -"の項が存在しないからです。\n" +"# 概要\n" +"§0 タクティクは、目標 §1 を §2 に変更します。\n" +"仮定が、§3 が真である理由は実際には §4 が真であることを保証する場合に使用します。\n" "\n" -"結びつきと交換律を利用して、§6 を証明してください。帰納法は不要です。§7 は括弧の配置を変更し、§8 は変数の配置を変更します。\n" +"内部的には、このタクティクは §6 という定理を §5 します。\n" "\n" -"明示的な変数を用意することで、より的確な書き換えを行うことができます。例えば、§9 は形式 §10 の書き換えのみを実行し、§11 は形式 §12 " -"の書き換えのみを実行します。" - -#: Game.Levels.Power.L10FLT -msgid "Fermat's Last Theorem" -msgstr "フェルマーの最終定理" +"注意していただきたいのは、このタクティクが、解決可能な目標を解決不能な目標に変更する可能性があることです。" -#: Game.Levels.Implication.L06intro -#. §0: `apply` -#. §1: `P → Q` -#. §2: `P → Q` -#. §3: `P` -#. §4: `Q` -#. §5: `intro` -msgid "" -"We have seen how to §0 theorems and assumptions\n" -"of the form §1. But what if our *goal* is of the form §2?\n" -"To prove this goal, we need to know how to say \"let's assume §3 and deduce " -"§4\"\n" -"in Lean. We do this with the §5 tactic." -msgstr "" -"私たちは、形式 §1 の定理や仮定の §0 の方法を見ました。\n" -"しかし、もし私たちの *目標* が形式 §2 の場合は、どうすれば良いでしょうか?\n" -"この目標を証明するには、Lean で \"§3 という仮定を設け、 §4 を導く\" という方法を知る必要があります。これを行うためには、§5 " -"タクティクを使用します。" +#: Game.Levels.LessOrEqual.L07or_symm +#. §0: `cases «{h}» with hx hy` +msgid "We don't know whether to go left or right yet. So start with §0." +msgstr "まだどちらに進むべきか決まっていないため、「§0」から開始しましょう。" -#: Game.Levels.LessOrEqual.L01le_refl Game.Levels.LessOrEqual.L02zero_le -#: Game.Levels.LessOrEqual.L03le_succ_self -#. §0: $x$ -#. §1: $x \\le x$ -msgid "If §0 is a number, then §1." -msgstr "もし §0 が数値であるならば、§1 は真となる。" +#: Game.Levels.LessOrEqual.L07or_symm +#. §0: `left` +msgid "This time, use the §0 tactic." +msgstr "この場合は、§0 タクティクを使用します。" -#: Game.Levels.LessOrEqual.L10le_one -#. §0: ``` -#. cases x with y -#. left -#. rfl -#. rw [one_eq_succ_zero] at hx ⊢ -#. apply succ_le_succ at hx -#. apply le_zero at hx -#. rw [hx] -#. right -#. rfl -#. ``` +#: Game.Levels.LessOrEqual.L07or_symm +#. §0: `≤` +#. §1: `a` +#. §2: `b` +#. §3: `a ≤ b` +#. §4: `b ≤ a` +#. §5: `or` +#. §6: `∨` +#. §7: `\\or` +#. §8: `left` +#. §9: `right` +#. §10: `h` +#. §11: `cases h with h1 h2` msgid "" -"Here's my proof:\n" -"§0\n" +"Totality of §0 is the boss level of this world, and it's coming up next. It " +"says that\n" +"if §1 and §2 are naturals then either §3 or §4.\n" +"But we haven't talked about §5 at all. Here's a run-through.\n" "\n" -"If you solved this level then you should be fine with the next level!" +"1) The notation for \"or\" is §6. You won't need to type it, but you can\n" +"type it with §7.\n" +"\n" +"2) If you have an \"or\" statement in the *goal*, then two tactics make\n" +"progress: §8 and §9. But don't choose a direction unless your\n" +"hypotheses guarantee that it's the correct one.\n" +"\n" +"3) If you have an \"or\" statement as a *hypothesis* §10, then\n" +"§11 will create two goals, one where you went left,\n" +"and the other where you went right." msgstr "" -"私の証明:\n" -"§0\n" +"§0 の全域性は、このワールドにおけるボスレベルであり、次に登場します。これは、§1 と §2 が自然数である場合に、§3 または §4 " +"であることを示しています。しかし、§5 についてはまだ触れていません。以下に概要を示します。\n" "\n" -"この問題を解けた場合、次の問題も理解できるはずです。" +"1) 「または」の表記は §6 です。「または」を直接入力する必要はありませんが、§7 を使用して入力できます。\n" +"\n" +"2) 目標に「または」という文がある場合、2 つのタクティク §8 と §9 " +"を用いて進めます。ただし、方向を選択する前に、仮定が正しい方向であることを保証していることを確認してください。\n" +"\n" +"3) 仮定 §10 に「または」という文がある場合、§11 は 2 " +"つの目標を作成します。一つは左に進んだ場合に生成され、もう一つは右に進んだ場合に生成されます。" -#: Game.Levels.Tutorial.L04rw_backwards -#. §0: `2 = 2` -msgid "Can you now change the goal into §0?" -msgstr "目標を§0に変更することは可能ですか?" +#: Game.Levels.LessOrEqual.L07or_symm +#. §0: `or` +#. §1: `right` +msgid "" +"Now we can prove the §0 statement by proving the statement on the right,\n" +"so use the §1 tactic." +msgstr "今では、§0の命題を証明するために、右側の命題を証明することができます。そのため、§1のタクティクを使用します。" # no-translate -#: Game.Levels.Power.L09add_sq -msgid "add_sq" -msgstr "add_sq" +#: Game.Levels.LessOrEqual.L07or_symm +#. §0: `or` +msgid "Dealing with §0" +msgstr "§0 を扱う方法" + +#: Game.Levels.LessOrEqual.L07or_symm +msgid "Ready for the boss level of this world?" +msgstr "この世界の最終ボス戦に挑戦する準備はできていますか?" + +#: Game.Levels.LessOrEqual.L08le_total +#. §0: $x$ +#. §1: $y$ +#. §2: $x \\leq y$ +#. §3: $y \\leq x$ +msgid "If §0 and §1 are numbers, then either §2 or §3." +msgstr "数値である§0と§1の場合、§2または§3のいずれかが真となる。" + +#: Game.Levels.LessOrEqual.L08le_total +msgid "x ≤ y or y ≤ x" +msgstr "x ≤ y または y ≤ x" + +#: Game.Levels.LessOrEqual.L08le_total +#. §0: `cases «{h2}» with e he` +msgid "Now §0." +msgstr "§0 をしましょう。" #: Game.Levels.LessOrEqual.L08le_total #. §0: `a` @@ -5535,146 +5391,157 @@ msgstr "" "\n" "このワールドの最後の数レベルは、それほど難しくありません。" -#: Game.Levels.AdvAddition.L03add_left_eq_self -#. §0: `y` -#. §1: `add_left_eq_self` -#. §2: `add_right_cancel` -#. §3: `` -#. §4: `>_` -#. §5: ``` -#. nth_rewrite 2 [← zero_add y] -#. exact add_right_cancel x 0 y -#. ``` -msgid "" -"Did you use induction on §0?\n" -"Here's a two-line proof of §1 which uses §2.\n" -"If you want to inspect it, you can go into editor mode by clicking §3 in " -"the top right\n" -"and then just cut and paste the proof and move your cursor around it\n" -"to see the hypotheses and goal at any given point\n" -"(although you'll lose your own proof this way). Click §4 to get\n" -"back to command line mode.\n" -"§5" -msgstr "" -"帰納法を用いて §0 を証明しましたか?\n" -"§2 を使用した §1 の 2 行の証明があります。\n" -"証明を確認したい場合は、右上の §3 をクリックしてエディタモードに入り、\n" -"その後証明をコピー&ペーストし、カーソルを移動させて任意の時点での仮定と目標を確認できます。(ただし、この方法ではご自身の証明は失われます)。§4 " -"をクリックしてコマンドラインモード (タイプライターモード) に戻ってください。\n" -"§5" - -#: Game.Levels.LessOrEqual.L05le_zero -msgid "" -"It's \"intuitively obvious\" that there are no numbers less than zero,\n" -"but to prove it you will need a result which you showed in advanced\n" -"addition world." -msgstr "ゼロ未満の数が存在しないことは、「直感的に明らか」ですが、これを証明するためには、高度な加算ワールドで示された結果が必要となります。" - -#: Game.Levels.Implication.L04succ_inj -#. §0: `exact h` -msgid "" -"And now we've deduced what we wanted to prove: the goal is one of our " -"assumptions.\n" -"Finish the level with §0." -msgstr "" -"そして、目的を証明するために必要な結論を得ることができました。この結論が、当初提示した仮定の一つと一致します。\n" -"レベルを完了するには、§0 を使用してください。" +#: Game.Levels.LessOrEqual.L08le_total +#. §0: `cases «{e}» with a` +msgid "You still don't know which way to go, so do §0." +msgstr "まだ進むべき方向が不明なため、§0を実行します。" -#: Game.Levels.Tutorial.L07add_succ -#. §0: `rw [add_zero]` -msgid "And now §0" -msgstr "§0をしましょう。" +#: Game.Levels.LessOrEqual.L08le_total +#. §0: `le_total x y` +#. §1: `x ≤ y` +#. §2: `y ≤ x` +msgid "§0 is a proof that §1 or §2." +msgstr "§0 は、§1 または §2 の証明を示すものです。" -#: Game.Levels.Power.L06pow_add Game.Levels.Power.L07mul_pow -#: Game.Levels.Power.L08pow_pow -#. §0: `pow_add a m n` -#. §1: $a^{m+n}=a^ma^n.$ -msgid "§0 is a proof that §1" -msgstr "§0 は §1 の証明を示すものです。" +#: Game.Levels.LessOrEqual.L09succ_le_succ +#. §0: `succ_le_succ x y` +#. §1: `succ x ≤ succ y` +#. §2: `x ≤ y` +msgid "§0 is a proof that if §1 then §2." +msgstr "§0 は、§1 が成り立つ場合に §2 が成り立つことを示す証明です。" -#: Game.Levels.LessOrEqual -msgid "≤ World" -msgstr "≤ ワールド" +# no-translate +#: Game.Levels.LessOrEqual.L09succ_le_succ +msgid "succ x ≤ succ y → x ≤ y" +msgstr " succ x ≤ succ y → x ≤ y" -#: Game.Levels.Multiplication.L05one_mul Game.Levels.Multiplication.L06two_mul -#. §0: ``` -#. rw [mul_comm, mul_one] -#. rfl -#. ``` +#: Game.Levels.LessOrEqual.L09succ_le_succ +#. §0: `x ≤ 0` +#. §1: `x = 0` +#. §2: `≤ 1` +#. §3: `≤ 2` msgid "" -"Here's my solution:\n" -"§0" +"We've proved that §0 implies §1. The last two levels\n" +"in this world will prove which numbers are §2 and §3.\n" +"This lemma will be helpful for them." msgstr "" -"私の解決策:\n" -"§0" - -#: Game.Levels.Algorithm.L07succ_ne_succ -msgid "An algorithm for equality" -msgstr "等価性を扱うためのアルゴリズム" +"私たちは、§0 が §1 を意味することを示しました。この世界における最後の2つのレベルにおいて、どの数値が §2 および §3 " +"に該当するかを証明します。この定理は、彼らに非常に役立ちます。" # no-translate -#: Game.Levels.AdvMultiplication.L05le_mul_right -msgid "le_mul_right" -msgstr "le_mul_right" +#: Game.Levels.LessOrEqual.L10le_one +msgid "x ≤ 1" +msgstr "x ≤ 1" + +#: Game.Levels.LessOrEqual.L10le_one +#. §0: `le_zero` +#. §1: `x ≤ 0` +#. §2: `x = 0` +#. §3: `x ≤ 1` +#. §4: `x = 0` +#. §5: `x = 1` +msgid "" +"We've seen §0, the proof that if §1 then §2.\n" +"Now we'll prove that if §3 then §4 or §5." +msgstr "" +"これまでに、仮定 §1 ならば §2 が成り立つことを示す証明 §0 を見てきました。\n" +"次に、仮定 §3 ならば §4 または §5 が成り立つことを証明します。" -#: Game.Levels.Power -msgid "Power World" -msgstr "冪乗ワールド" +#: Game.Levels.LessOrEqual.L10le_one +#. §0: $x \\leq 1$ +#. §1: $x = 0$ +#. §2: $x = 1$ +msgid "If §0 then either §1 or §2." +msgstr "もし §0 が真ならば、§1 または §2 のいずれかが真です。" -#: Game.Levels.AdvMultiplication.L10mul_right_eq_self +#: Game.Levels.LessOrEqual.L10le_one #. §0: ``` -#. nth_rewrite 2 [← mul_one a] at h -#. exact mul_left_cancel a b 1 ha h +#. cases x with y +#. left +#. rfl +#. rw [one_eq_succ_zero] at hx ⊢ +#. apply succ_le_succ at hx +#. apply le_zero at hx +#. rw [hx] +#. right +#. rfl #. ``` msgid "" -"A two-line proof is\n" -"\n" +"Here's my proof:\n" "§0\n" "\n" -"We now have all the tools necessary to set up the basic theory of " -"divisibility of naturals." +"If you solved this level then you should be fine with the next level!" msgstr "" -"二行の証明は\n" -"\n" +"私の証明:\n" "§0\n" "\n" -"これまでに得られたツールを用いて、自然数の除法の基本的な理論を構築することが可能になりました。" - -# no-translate -#: Game.Levels.Multiplication.L06two_mul -msgid "two_mul" -msgstr "two_mul" +"この問題を解けた場合、次の問題も理解できるはずです。" -#: Game.Levels.Algorithm.L04add_algo3 -msgid "the simplest approach" -msgstr "最もシンプルなアプローチ" +#: Game.Levels.LessOrEqual.L10le_one +#: Game.Levels.AdvMultiplication.L08mul_eq_zero +#. §0: `le_one x` +#. §1: `x ≤ 1` +#. §2: `x = 0` +#. §3: `x = 1` +msgid "§0 is a proof that if §1 then §2 or §3." +msgstr "§0 は、もし §1 が成り立つならば、§2 または §3 が成り立つという証明です。" -#: Game.Levels.Implication.L01exact -#. §0: $P\\implies Q$ -#. §1: $P$ -#. §2: $Q$ -#. §3: `exact` -#. §4: `exact h` +#: Game.Levels.LessOrEqual.L11le_two +#. §0: `∨` +#. §1: `x = 0 ∨ x = 1 ∨ x = 2` +#. §2: `x = 0 ∨ (x = 1 ∨ x = 2)` +#. §3: `left` +#. §4: `right` msgid "" -"In this world we'll learn how to prove theorems of the form §0.\n" -"In other words, how to prove theorems of the form \"if §1 is true, then §2 " -"is true.\"\n" -"To do that we need to learn some more tactics.\n" +"We'll need this lemma to prove that two is prime!\n" "\n" -"The §3 tactic can be used to close a goal which is exactly one of\n" -"the hypotheses. It takes the name of the hypothesis as argument: §4." +"You'll need to know that §0 is right associative. This means that\n" +"§1 actually means §2.\n" +"This affects how §3 and §4 work." msgstr "" -"このワールドでは、形式 §0 の定理の証明方法を学びます。\n" -"つまり、「§1 が真ならば、§2 が真である」という形式の定理を証明する方法です。\n" -"そのためには、いくつかのタクティクを学ぶ必要があります。\n" +"この定理を利用して、2 が素数であることを証明できます!\n" "\n" -"§3 のタクティクは、仮定のうち厳密に一つの目標を閉じるために使用できます。このタクティクには仮定の名前が引数として与えられます:§4。" +"§0 が右結合であるという性質を理解しておく必要があります。\n" +"これは、§1 が実際に §2 と同じ意味であることを示します。\n" +"これにより、§3 および §4 の動作が影響を受けます。" -#: Game.Levels.Algorithm.L02add_algo1 +#: Game.Levels.LessOrEqual.L11le_two +#. §0: `≤` msgid "" -"So that's the algorithm: now let's use automation to perform it\n" -"automatically." -msgstr "したがって、このアルゴリズムを使用します。次に、このアルゴリズムを自動的に実行するために、自動化ツールを使用しましょう。" +"Nice!\n" +"\n" +"The next step in the development of order theory is to develop\n" +"the theory of the interplay between §0 and multiplication.\n" +"If you've already done Multiplication World, you're now ready for\n" +"Advanced Multiplication World. Click on \"Home\" to access it." +msgstr "" +"素晴らしい!\n" +"\n" +"順序理論の開発における次のステップは、§0" +"と乗算の相互作用に関する理論を発展させることです。すでに「乗算ワールド」を学習済みの場合、現在では「高度な乗算ワールド」に進むことができます。「ホーム」" +"をクリックしてアクセスしてください。" + +#: Game.Levels.LessOrEqual.L11le_two +#. §0: $x \\leq 2$ +#. §1: $x = 0$ +#. §2: $1$ +#. §3: $2$ +msgid "If §0 then §1 or §2 or §3." +msgstr "もし §0 が真ならば、§1 または §2 または §3 が少なくとも 1 つが真である。" + +#: Game.Levels.LessOrEqual.L11le_two +#. §0: `le_two x` +#. §1: `x ≤ 2` +#. §2: `x = 0` +#. §3: `x = 1` +#. §4: `x = 2` +msgid "§0 is a proof that if §1 then §2 or §3 or §4." +msgstr "§0 は、もし §1 が真ならば、§2 または §3 または §4 がいずれか真であることを示す証明です。" + +# no-translate +#: Game.Levels.LessOrEqual.L11le_two +msgid "le_two" +msgstr "le_two" #: Game.Levels.AdvMultiplication #. §0: `x + y = 0 → x = 0` @@ -5704,80 +5571,23 @@ msgstr "" "高度な *乗算* ワールドでは、乗算に関する類似した事実(§2など)が証明され、\n" "§3(後者の結果では§4を仮定)も証明されました。これにより、*整除*ワールドへの移行準備ができます。\n" "\n" -"*乗算* ワールドは、 *加算* ワールドよりも複雑です。同様に、高度な *乗算* ワールドは、高度な *加算* ワールドよりも複雑です。これは、ある変数がゼロでない" -"という追加の仮定の下でのみ成り立つ特定の中間結果があるためです。これにより、予期せぬ追加の複雑さが生じます。" +"*乗算* ワールドは、 *加算* ワールドよりも複雑です。同様に、高度な *乗算* ワールドは、高度な *加算* " +"ワールドよりも複雑です。これは、ある変数がゼロでないという追加の仮定の下でのみ成り立つ特定の中間結果があるためです。これにより、予期せぬ追加の複雑さが生" +"じます。" -#: Game.Levels.Algorithm.L03add_algo2 -#. §0: `simp only [add_left_comm, add_comm]` -msgid "Solve this level in one line with §0" -msgstr "このレベルを、1行で解決してください:§0" - -#: Game.Levels.Algorithm.L05pred -#. §0: `succ_inj` -#. §1: $0$ -msgid "" -"Nice! You've proved §0!\n" -"Let's now prove Peano's other axiom, that successors can't be §1." -msgstr "" -"素晴らしい!あなたは§0を証明されました!\n" -"次に、ペアノの別の公理である「後続が§1にならない」ことを証明しましょう。" - -#: Game.Levels.Tutorial.L07add_succ Game.Levels.Addition.L01zero_add -#: Game.Levels.Multiplication.L02zero_mul -#. §0: $a$ -#. §1: $\\operatorname{succ}(a) = a+1$ -msgid "For all natural numbers §0, we have §1." -msgstr "すべての自然数 §0 に対して、§1 が成り立ちます。" - -#: Game.Levels.AdvAddition.L05add_right_eq_zero -msgid "Well done!" -msgstr "よくできました!" - -#: Game.Levels.Tutorial.L06add_zero2 -msgid "Precision rewriting" -msgstr "精密な書き換え" - -#: Game.Levels.Multiplication.L07mul_add -#. §0: $a(b+c)=ab+ac$ -#. §1: $(b+c)a=ba+ca$ -#. §2: `mul_add a b c` -#. §3: `a * (b + c) = a * b + a * c` -msgid "" -"Our next goal is \"left and right distributivity\",\n" -"meaning §0 and §1. Rather than\n" -"these slightly pompous names, the name of the proofs\n" -"in Lean are descriptive. Let's start with\n" -"§2, the proof of §3.\n" -"Note that the left hand side contains a multiplication\n" -"and then an addition." -msgstr "" -"次の目標は「左と右の分配法則」を達成することです。具体的には、式§0と§1" -"についてです。これらの表現はやや冗長ですが、Leanの証明名は説明的であるという原則に従います。まずは、式§3の証明である§2" -"から始めましょう。留意すべき点は、左辺には乗算が含まれており、その後に加算が行われることです。" +#: Game.Levels.AdvMultiplication +msgid "Advanced Multiplication World" +msgstr "高度な乗算ワールド" -#: Game.Levels.Power.L10FLT -#. §0: `xyzzy` -#. §1: `sorry` -#. §2: `xyzzy` -msgid "" -"§0 is an ancient magic spell, believed to be the origin of the\n" -"modern word §1. The game won't complain - or notice - if you\n" -"prove anything with §2." -msgstr "" -"§0は、古くから伝わる魔法の呪文であり、現代の単語§1の起源であると考えられています。ゲームは、あなたがどのような方法で証明を行ったとしても、§2" -"を用いて何を証明したかに関わらず、問題を示しません。" +#: Game.Levels.AdvMultiplication.L01mul_le_mul_right +#. §0: `t = 0` +msgid "Let's warm up with an easy one, which works even if §0." +msgstr "まずは、簡単に問題を解いてみましょう。この問題は、§0 の場合に有効です。" -#: Game.Levels.Power.L01zero_pow_zero -#. §0: `0 ^ 0 = 0` -#. §1: `0 ^ 0 = 1` -msgid "" -"Mathematicians sometimes argue that §0 is also\n" -"a good convention. But it is not a good convention in this\n" -"game; all the later levels come out beautifully with the\n" -"convention that §1." -msgstr "" -"数学者は、§0も有効な慣習であると主張することもあります。しかし、このゲームにおいては、そのような慣習は適切ではありません。§1" -"の慣習を用いると、以降のすべてのレベルが自然に解決されます。" +# no-translate +#: Game.Levels.AdvMultiplication.L01mul_le_mul_right +msgid "mul_le_mul_right" +msgstr "mul_le_mul_right" #: Game.Levels.AdvMultiplication.L01mul_le_mul_right #. §0: ``` @@ -5793,186 +5603,193 @@ msgstr "" "私の証明:\n" "§0" -#: Game.Levels.Multiplication.L06two_mul +# no-translate +#: Game.Levels.AdvMultiplication.L02mul_left_ne_zero +msgid "mul_left_ne_zero" +msgstr "mul_left_ne_zero" + +#: Game.Levels.AdvMultiplication.L02mul_left_ne_zero +#. §0: `apply h` +msgid "Now §0 and you can probably take it from here." +msgstr "§0を実行し、ここから推論を進めることができます。" + +#: Game.Levels.AdvMultiplication.L02mul_left_ne_zero +#. §0: `b = 0` +#. §1: `a * b = 0` +#. §2: `X ≠ 0` +#. §3: `X = 0 → False` +#. §4: `Show more help!` msgid "" -"This level is more important than you think; it plays\n" -"a useful role when battling a big boss later on." -msgstr "このレベルは、想像以上に重要な役割を担います。特に、後で登場する強力なボスとの戦闘において、その有効性が発揮されます。" +"We want to reduce this to a hypothesis §0 and a goal §1,\n" +"which is logically equivalent but much easier to prove. Remember that §2\n" +"is notation for §3. Click on §4 if you need hints." +msgstr "" +"この部分を仮定§0と目標§1に簡略化したいと考えています。\n" +"これは論理的に同等ですが、証明がはるかに簡単になります。\n" +"§2は§3の表記法です。ヒントが必要な場合は§4 (訳注:\"より多くのヘルプを表示!\")をクリックしてください。" + +#: Game.Levels.AdvMultiplication.L02mul_left_ne_zero +#. §0: `contrapose!` +msgid "" +"If you have completed Algorithm World then you can use the §0 tactic\n" +"here. If not then I'll talk you through a manual approach." +msgstr "" +"アルゴリズムワールドを完了している場合は、ここで §0 タクティクを使用できます。\n" +"完了していない場合は、手動での手順をご説明します。" + +#: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero +#. §0: `a ≠ 0` +#. §1: `tauto` +msgid "" +"Multiplication usually makes a number bigger, but multiplication by zero " +"can make\n" +"it smaller. Thus many lemmas about inequalities and multiplication need the\n" +"hypothesis §0. Here is a key lemma that enables us to use this hypothesis.\n" +"To help us with the proof, we can use the §1 tactic. Click on the tactic's " +"name\n" +"on the right to see what it does." +msgstr "" +"乗算は通常、数値を大きくしますが、ゼロによる乗算はその数値を小さくすることがあります。そのため、不等式や乗算に関する多くの補題では、§0 " +"の仮定が必要です。この仮定を使用するための重要な補題があります。証明の助けとなるために、§1 " +"のタクティクを使用できます。タクティクの名前を右側でクリックすると、その機能が表示されます。" -#: Game.Levels.Tutorial.L05add_zero -#. §0: `Add a b` -#. §1: `a + b` -#. §2: `add_zero a : a + 0 = a` -#. §3: `add_succ a b : a + succ b = succ (a + b)` -#. §4: `zero_add a : 0 + a = a` +#: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero +#. §0: `tauto` +#. §1: `tauto` +#. §2: `add_zero` +#. §3: `tauto` +#. §4: `a = a` +#. §5: `0 ≠ 1` +#. §6: `0 ≠ 2` +#. §7: `1 ≠ 2` +#. §8: `tauto` +#. §9: `x < 37` +#. §10: `x < 37 → y + z = 42` +#. §11: `y + z = 42` +#. §12: `tauto` +#. §13: `False` +#. §14: `tauto` +#. §15: `True` +#. §16: `tauto` +#. §17: `h1 : a = 37` +#. §18: `h2 : a ≠ 37` +#. §19: `tauto` +#. §20: `False` +#. §21: `False` +#. §22: `h : a ≠ a` +#. §23: `tauto` +#. §24: `tauto` +#. §25: `a = a` +#. §26: `h : 0 = 1` +#. §27: `tauto` +#. §28: `tauto` +#. §29: `0 ≠ 1` +#. §30: `False` +#. §31: `a = 0 → a * b = 0` +#. §32: `a * b ≠ 0 → a ≠ 0` +#. §33: `tauto` +#. §34: `tauto` msgid "" -"§0, with notation §1, is\n" -"the usual sum of natural numbers. Internally it is defined\n" -"via the following two hypotheses:\n" +"# Summary\n" "\n" -"* §2\n" +"The §0 tactic will solve any goal which can be solved purely by logic (that " +"is, by\n" +"truth tables).\n" "\n" -"* §3\n" +"## Details\n" "\n" -"Other theorems about naturals, such as §4, are proved\n" -"by induction using these two basic theorems." -msgstr "" -"§0、記号§1は、通常の自然数の和を表します。内部的には、以下の2つの仮定を用いて定義されています:\n" +"§1 *does not do magic*! It doesn't know *anything* about addition or " +"multiplication,\n" +"it doesn't even know §2. The only things that §3 knows about numbers\n" +"are firstly that §4 and secondly that §5, §6, §7 and so on.\n" +"What §8's strength is, is *logic*. If you have a hypothesis §9\n" +"and another hypothesis §10 and your goal is §11 then §12 will\n" +"solve this goal, because to solve that goal you don't need to know any " +"facts\n" +"about inequalities or addition, all you need to know is the rules of logic.\n" "\n" -"* §2\n" +"## Example\n" "\n" -"* §3\n" +"If you have §13 as a hypothesis, then §14 will solve\n" +"the goal. This is because a false hypothesis implies any hypothesis.\n" "\n" -"また、§4のような他の自然数に関する定理は、これらの基本定理を用いて帰納法によって証明されます。" - -#: Game.Levels.AdvMultiplication.L06mul_right_eq_one -#. §0: `cases h2 with h0 h1` -msgid "" -"Now §0 and deal with the two\n" -"cases separately." -msgstr "次に、§0 の内容と、それとは異なるもう一つのケースについて、それぞれ個別に検討します。" - -#: Game.Levels.Power.L08pow_pow -msgid "" -"The music dies down. Is that it?\n" +"## Example\n" "\n" -"Course it isn't, you can\n" -"clearly see that there are two levels left.\n" +"If your goal is §15, then §16 will solve the goal.\n" "\n" -"A passing mathematician says that mathematicians don't have a name\n" -"for the structure you just constructed. You feel cheated.\n" +"## Example\n" "\n" -"Suddenly the music starts up again. This really is the final boss." -msgstr "" -"音楽は静まり返ります。これで終わりですか?\n" +"If you have two hypotheses §17 and §18 then §19 will\n" +"solve the goal because it can prove §20 from your hypotheses, and thus\n" +"prove the goal (as §21 implies anything).\n" "\n" -"まだ2つのレベルが存在することが分かります。\n" +"## Example\n" "\n" -"通りすがりの数学者が、「あなたが構築した構造には、数学的な名称がない」と言います。あなたは落胆します。\n" +"If you have one hypothesis §22 then §23 will solve the goal because\n" +"§24 is smart enough to know that §25 is true, which gives the contradiction " +"we seek.\n" "\n" -"突然、再び音楽が流れ始めます。これがまさに最終ボスです。" - -#: Game.Levels.LessOrEqual.L10le_one -#: Game.Levels.AdvMultiplication.L08mul_eq_zero -#. §0: `le_one x` -#. §1: `x ≤ 1` -#. §2: `x = 0` -#. §3: `x = 1` -msgid "§0 is a proof that if §1 then §2 or §3." -msgstr "§0 は、もし §1 が成り立つならば、§2 または §3 が成り立つという証明です。" - -#: Game.Levels.Tutorial -msgid "Tutorial World" -msgstr "チュートリアルワールド" - -#: Game.Levels.Tutorial.L07add_succ -#. §0: `rw [one_eq_succ_zero]` -msgid "§0 will do this." -msgstr "§0 は、この操作を実行します。" - -#: Game.Levels.LessOrEqual.L09succ_le_succ -#. §0: `x ≤ 0` -#. §1: `x = 0` -#. §2: `≤ 1` -#. §3: `≤ 2` -msgid "" -"We've proved that §0 implies §1. The last two levels\n" -"in this world will prove which numbers are §2 and §3.\n" -"This lemma will be helpful for them." -msgstr "" -"私たちは、§0 が §1 を意味することを示しました。この世界における最後の2つのレベルにおいて、どの数値が §2 および §3 " -"に該当するかを証明します。この定理は、彼らに非常に役立ちます。" - -#: Game.Levels.LessOrEqual.L08le_total -#. §0: `cases «{e}» with a` -msgid "You still don't know which way to go, so do §0." -msgstr "まだ進むべき方向が不明なため、§0を実行します。" - -#: Game.Levels.AdvMultiplication -msgid "Advanced Multiplication World" -msgstr "高度な乗算ワールド" - -#: Game.Levels.Addition.L05add_right_comm -#. §0: `a = 0` -#. §1: `x + a = x` -msgid "" -"You've now seen all the tactics you need to beat the final boss of the " -"game.\n" -"You can begin the journey towards this boss by entering Multiplication " -"World.\n" +"## Example\n" "\n" -"Or you can go off the beaten track and learn some new tactics in " -"Implication\n" -"World. These tactics let you prove more facts about addition, such as\n" -"how to deduce §0 from §1.\n" +"If you have a hypothesis §26 then §27 will solve the goal, because\n" +"§28 knows §29 and this is enough to prove §30, which implies any goal.\n" "\n" -"Click \"Home\" and make your choice." +"## Example\n" +"\n" +"If you have a hypothesis of the form §31 and your goal is §32, then\n" +"§33 will solve the goal, because the goal is logically equivalent to the " +"hypothesis.\n" +"If you switch the goal and hypothesis in this example, §34 would solve it " +"too." msgstr "" -"ゲームの最終ボスを倒すためのすべてのタクティクを習得しました。\n" -"この最終ボスの攻略を目指すには、乗算ワールドへ進んでください。\n" +"# 概要\n" "\n" -"あるいは、含意ワールドで新たなタクティクを学ぶことも可能です。\n" -"これらのタクティクを用いることで、加算に関するより多くの事実を証明できます。\n" -"例えば、§1から§0を導出する方法を学ぶことができます。\n" +"§0 タクティクは、論理のみを用いて解決できる目標(つまり、真偽表で解決できる目標)を解決します。\n" "\n" -"「ホーム」をクリックして選択してください。" - -#: Game.Levels.Tutorial.L03two_eq_ss0 Game.Levels.Tutorial.L04rw_backwards -#. §0: $2$ -#. §1: $0$ -msgid "§0 is the number after the number after §1." -msgstr "§0 は、§1 の後に続く数値の後に現れる数値です。" - -#: Game.Levels.Tutorial.L02rw -#. §0: `2 + 2 = 4` -msgid "You now know enough tactics to prove §0! Let's begin the journey." -msgstr "あなたは、十分なタクティクを習得し、§0の証明が可能になりました。それでは、学習の旅を始めましょう。" - -#: Game.Levels.Multiplication.L03succ_mul -#. §0: `succ_mul a b` -#. §1: `succ a * b = a * b + b` -#. §2: `mul_succ` -#. §3: `mul_comm` -#. §4: `mul_comm` -#. §5: `mul_succ` -msgid "" -"§0 is the proof that §1.\n" +"## 詳細\n" "\n" -"It could be deduced from §2 and §3, however this argument\n" -"would be circular because the proof of §4 uses §5." -msgstr "" -"§0 は §1 の証明を示します。\n" +"§1 は *魔法ではありません*!加算や乗算について何も知りませんし、§2 についても同様です。§3 が数について知っているのは、まず §4 " +"であり、次に §5, §6, §7 などです。§8 の強みは *論理* です。仮定 §9 と仮定 §10 があり、目標が §11 の場合、§12 " +"はこの目標を解決します。なぜなら、目標を解決するには不等式や加算に関する事実を知る必要がなく、必要なのは論理のルールだけです。\n" "\n" -"ただし、これは §2 と §3 から導出可能ですが、この議論は循環しており、§4 の証明において §5 が使用されているためです。" - -# UIと揃える -#: GameServer.RpcHandlers -msgid "level completed! 🎉" -msgstr "レベル完了!🎉" - -#: Game.Levels.Power.L07mul_pow -#. §0: `a * b` -#. §1: `rw [mul_comm]` -#. §2: `rw` -msgid "" -"The music gets ever more dramatic, as we explore\n" -"the interplay between exponentiation and multiplication.\n" +"## 例\n" "\n" -"If you're having trouble exchanging the right §0\n" -"because §1 swaps the wrong multiplication,\n" -"then read the documentation of §2 for tips on how to fix this." -msgstr "" -"音楽はますますドラマチックになり、指数演算と乗算の関係を探求します。\n" +"仮定として §13 がある場合、§14 は目標を解決します。これは、偽の仮定は任意の仮定を推論するからです。\n" "\n" -"もし、指数演算と乗算の順序を正しく交換できない場合で、§1 が誤った乗算を交換してしまう場合は、§2 " -"のドキュメンテーションを参照して修正方法を確認してください。" +"## 例\n" +"\n" +"目標が §15 の場合、§16 は目標を解決します。\n" +"\n" +"## 例\n" +"\n" +"仮定が §17 と §18 である場合、§19 は目標を解決します。なぜなら、§19 はあなたの仮定から §20 " +"を証明でき、したがって目標を証明できるからです(§21 は任意のものを推論できます)。\n" +"\n" +"## 例\n" +"\n" +"仮定が §22 である場合、§23 は目標を解決します。なぜなら、§24 は §25 が真であることを知っているので、これは求めている矛盾を与えます。\n" +"\n" +"## 例\n" +"\n" +"仮定が §26 の形式である場合、目標が §32 の場合、§33 " +"は目標を解決します。なぜなら、目標は仮定と論理的に等価であるからです。この例で目標と仮定を入れ替えると、§34 も解決します。\n" +"\n" +"## 例\n" +"\n" +"仮定が §31 の形式であり、目標が §32 の場合、§33 " +"は目標を解決します。なぜなら、目標は仮定と論理的に等価であるからです。この例で目標と仮定を入れ替えると、§34 も解決します。" -#: Game.Levels.LessOrEqual.L08le_total -#. §0: `le_total x y` -#. §1: `x ≤ y` -#. §2: `y ≤ x` -msgid "§0 is a proof that §1 or §2." -msgstr "§0 は、§1 または §2 の証明を示すものです。" +# no-translate +#: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero +msgid "eq_succ_of_ne_zero" +msgstr "eq_succ_of_ne_zero" + +#: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero +#. §0: `cases a with d` +#. §1: `a = 0` +#. §2: `a = succ d` +msgid "Start with §0 to do a case split on §1 and §2." +msgstr "開始にあたり、§0 を用いて §1 と §2 に対してケース分割を実行します。" #: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero #. §0: `ha : 0 ≠ 0` @@ -5982,89 +5799,220 @@ msgid "" "from a false statement. The §1 tactic will close this goal." msgstr "基本的なケースでは、仮定§0が存在します。偽の文から任意の結論を導き出すことができます。§1というタクティクは、この目標を解決します。" -# no-translate -#: Game.Levels.Tutorial.L07add_succ -msgid "add_succ" -msgstr "add_succ" +#: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero +#. §0: `apply eq_succ_of_ne_zero at ha` +msgid "Use the previous lemma with §0." +msgstr "前の定理を適用するために、§0を使用してください。" + +#: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero +#. §0: `cases ha with n hn` +msgid "Now take apart the existence statement with §0." +msgstr "次に、存在文を §0 を用いて分解します。" # no-translate -#: Game.Levels.Power.L03pow_one -msgid "pow_one" -msgstr "pow_one" +#: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero +msgid "one_le_of_ne_zero" +msgstr "one_le_of_ne_zero" -#: Game.Levels.Implication.L11two_add_two_ne_five -#. §0: ``` -#. intro h -#. rw [add_succ, add_succ, add_zero] at h -#. repeat apply succ_inj at h -#. apply zero_ne_succ at h -#. exact h -#. ``` -#. §1: $20 + 20 ≠ 41$ +#: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero +msgid "The previous lemma can be used to prove this one." +msgstr "前の定理を用いることで、この定理の証明が可能となります。" + +#: Game.Levels.AdvMultiplication.L05le_mul_right +#. §0: $2$ +#. §1: $2 = 37 × 42.$ +#. §2: $2$ +#. §3: $2$ +#. §4: `mul_left_ne_zero` +#. §5: `one_le_of_ne_zero` +#. §6: `mul_le_mul_right` msgid "" -"Here's my proof:\n" -"§0\n" +"One day this game will have a Prime Number World, with a final boss\n" +"of proving that §0 is prime.\n" +"To do this, we will have to rule out things like §1\n" +"We will do this by proving that any factor of §2 is at most §3,\n" +"which we will do using this lemma. The proof I have in mind manipulates the " +"hypothesis\n" +"until it becomes the goal, using §4, §5 and\n" +"§6." +msgstr "" +"いつかこのゲームには「素数ワールド」が追加される予定です。最終的なボス戦は、§0 が素数であることを証明することになります。\n" +"これを実現するためには、§1 などの要素を排除する必要があります。\n" +"具体的には、§2 の任意の因数のうち、最も大きいものが §3 であることを証明します。この証明には、以下の補題を使用します。\n" +"私が考えている証明では、§4、§5、および §6 を用いて、仮定を操作し、最終的に目標(§0 が素数であること)に到達させるようにします。" + +#: Game.Levels.AdvMultiplication.L05le_mul_right +#. §0: `le_mul_right a b` +#. §1: `a * b ≠ 0 → a ≤ a * b` +msgid "" +"§0 is a proof that §1.\n" "\n" -"Even though Lean is a theorem prover, right now it's pretty clear that we " -"have not\n" -"developed enough material to make it an adequate calculator. In Algorithm\n" -"World, a more computer-sciency world, we will develop machinery which makes\n" -"questions like this much easier, and goals like §1 feasible.\n" -"Alternatively you can do more mathematics in Advanced Addition World, where " -"we prove\n" -"the lemmas needed to get a working theory of inequalities. Click \"Home\" " -"and\n" -"decide your route." +"It's one way of saying that a divisor of a positive number\n" +"has to be at most that number." msgstr "" -"私の証明:\n" -"§0\n" +"§0 は §1 の証明です。\n" "\n" -"Leanは定理証明システムですが、現時点では十分な量の理論が開発されておらず、適切な計算機としての機能を十分に備えていません。アルゴリズムワールドでは、" -"よりコンピュータサイエンスに特化した環境で、このような問題を扱うための機械を開発し、§1" -"のような目標を達成することが可能になります。あるいは、不等式の理論を実現するための補題を証明する高度な加算ワールドで、より多くの数学を学ぶこともできます" -"。「ホーム」をクリックして、ご自身のルートを選択してください。" +"これは、正の数の約数はその数以下であることを示す一つの方法です。" -#: Game.Levels.Tutorial.L03two_eq_ss0 -#. §0: `rw [two_eq_succ_one, one_eq_succ_zero]` -#. §1: `rfl` +#: Game.Levels.AdvMultiplication.L05le_mul_right +#. §0: ``` +#. apply mul_left_ne_zero at h +#. apply one_le_of_ne_zero at h +#. apply mul_le_mul_right 1 b a at h +#. rw [one_mul, mul_comm] at h +#. exact h +#. ``` msgid "" -"Note that you can do §0\n" -"and then §1 to solve this level in two lines." +"Here's what I was thinking of:\n" +"§0" msgstr "" -"§0を実行し、その後§1を実行することで、このレベルを2行で解くことができます。" +"以下のように考えていました:\n" +"§0" # no-translate -#: Game.Levels.AdvAddition.L05add_right_eq_zero -msgid "add_right_eq_zero" -msgstr "add_right_eq_zero" +#: Game.Levels.AdvMultiplication.L05le_mul_right +msgid "le_mul_right" +msgstr "le_mul_right" -#: Game.Levels.Tutorial.L05add_zero -msgid "Adding zero" -msgstr "ゼロを加える" +#: Game.Levels.AdvMultiplication.L06mul_right_eq_one +#. §0: `tauto` +msgid "§0 is good enough to solve this goal." +msgstr "§0 は、この問題を解決するために十分な情報を提供します。" -#: Game.Levels.Addition.L03add_comm +#: Game.Levels.AdvMultiplication.L06mul_right_eq_one +#. §0: `have` +#. §1: `a` +#. §2: `have ha : a = 0` +#. §3: `a = 0` +#. §4: `ha : a = 0` +#. §5: `have` +#. §6: `a` +#. §7: `b` +#. §8: `have h2 : succ a = succ b → a = b := succ_inj a b` +#. §9: `h2 : succ a = succ b → a = b` +#. §10: `succ_inj a b` +#. §11: `have h2 := succ_inj a b` +#. §12: `h2 : succ a = succ b → a = b` msgid "" -"[boss battle music]\n" +"# Summary\n" "\n" -"Look in your inventory to see the proofs you have available.\n" -"These should be enough." +"The §0 tactic can be used to add new hypotheses to a level, but of course\n" +"you have to prove them.\n" +"\n" +"\n" +"## Example\n" +"\n" +"The simplest usage is like this. If you have §1 in your context and you " +"execute\n" +"\n" +"§2\n" +"\n" +"then you will get a new goal §3 to prove, and after you've proved\n" +"it you will have a new hypothesis §4 in your original goal.\n" +"\n" +"## Example\n" +"\n" +"If you already have a proof of what you want to §5, you\n" +"can just create it immediately. For example, if you have §6 and §7\n" +"number objects, then\n" +"\n" +"§8\n" +"\n" +"will directly add a new hypothesis §9\n" +"to the context, because you just supplied the proof of it (§10).\n" +"\n" +"## Example\n" +"\n" +"If you have a proof to hand, then you don't even need to state what you\n" +"are proving. For example\n" +"\n" +"§11\n" +"\n" +"will add §12 as a hypothesis." msgstr "" -"[ボスバトル音楽]\n" +"# 概要\n" "\n" -"あなたのインベントリを確認し、利用可能な証明を確認してください。\n" -"これらで十分であるはずです。" +"§0 タクティックは、レベルに新しい仮定を追加するために使用できますが、それらを証明する必要があります。\n" +"\n" +"## 例\n" +"\n" +"最も単純な使用法は以下の通りです。コンテキストに§1がある場合、§2を実行すると、新しい目標§3が生成され、それを証明すると元の目標に新しい仮定§4" +"が追加されます。\n" +"\n" +"## 例\n" +"\n" +"既に証明したいものを持っている場合、それをすぐに作成することができます。例えば、§6と§7で番号付けされたオブジェクトがある場合、§8" +"を実行すると、その証明(§10)を提供したため、コンテキストに新しい仮定§9が追加されます。\n" +"\n" +"## 例\n" +"\n" +"証明を持っている場合、証明したいものを明示する必要すらありません。例えば、§11を実行すると、§12が仮定として追加されます。" -#: Game.Levels.Algorithm.L02add_algo1 -#. §0: $a, b$ -#. §1: $c$ -#. §2: $d$ -#. §3: $(a + b) + (c + d) = ((a + c) + d) + b.$ +# no-translate +#: Game.Levels.AdvMultiplication.L06mul_right_eq_one +msgid "mul_right_eq_one" +msgstr "mul_right_eq_one" + +#: Game.Levels.AdvMultiplication.L06mul_right_eq_one +#. §0: `x * y = 1 → x = 1` +#. §1: `x + y = 0 → x = 0` +#. §2: `x ≤ 1` +#. §3: `le_one` +#. §4: `≤` +#. §5: `have` msgid "" -"If §0, §1 and §2 are numbers, we have\n" -"§3" +"This level proves §0, the multiplicative analogue of Advanced Addition\n" +"World's §1. The strategy is to prove that §2 and then use the\n" +"lemma §3 from §4 world.\n" +"\n" +"We'll prove it using a new and very useful tactic called §5." msgstr "" -"もし §0, §1, §2 が数値である場合、以下のようになります。\n" -"§3" +"このレベルでは、高度な加算ワールドの§1の乗法的な類似である§0を証明します。その戦略は、まず§2を証明し、その後、§4ワールドから§3" +"の補題を使用することです。\n" +"\n" +"新しく非常に有用なタクティク§5を用いて証明を行います。" + +#: Game.Levels.AdvMultiplication.L06mul_right_eq_one +#. §0: `le_mul_right` +#. §1: `x * y ≠ 0` +#. §2: `have h2 : x * y ≠ 0` +#. §3: `≠` +#. §4: `\\ne` +#. §5: `le_mul_right` +msgid "" +"We want to use §0, but we need a hypothesis §1\n" +"which we don't have. Yet. Execute §2 (you can type §3 with §4).\n" +"You'll be asked to\n" +"prove it, and then you'll have a new hypothesis which you can apply\n" +"§5 to." +msgstr "" +"§0 の使用を試みますが、それには §1 という仮定が必要です。しかし、現時点ではその仮定は用意されていません。§2 を実行してください( §4 " +"を入力すると §3 になります)。\n" +"証明が必要ですが、証明後には新しい仮定が得られ、それを §5 で利用できます。" + +#: Game.Levels.AdvMultiplication.L06mul_right_eq_one +#. §0: `rw [«{h}»] at «{h2}»` +#. §1: `apply le_one at «{h2}»` +msgid "Now §0 so you can §1." +msgstr "§0 を実行することで、 §1 が可能になります。" + +#: Game.Levels.AdvMultiplication.L06mul_right_eq_one +#. §0: `cases h2 with h0 h1` +msgid "" +"Now §0 and deal with the two\n" +"cases separately." +msgstr "次に、§0 の内容と、それとは異なるもう一つのケースについて、それぞれ個別に検討します。" + +# no-translate +#: Game.Levels.AdvMultiplication.L07mul_ne_zero +msgid "mul_ne_zero" +msgstr "mul_ne_zero" + +#: Game.Levels.AdvMultiplication.L07mul_ne_zero +#. §0: `apply eq_succ_of_ne_zero at ha` +#. §1: `... at hb` +msgid "Start with §0 and §1" +msgstr "開始には、§0 と §1 を使用してください。" #: Game.Levels.AdvMultiplication.L07mul_ne_zero #. §0: `a ≠ 0` @@ -6084,127 +6032,176 @@ msgstr "" "このレベルでは、§0 と §1 であることを証明する必要があります。一つの戦略は、§3 と §4 をそれぞれ「〜の §6」という形で定義し、そこから " "§7 が同様に「〜の §7」であると導出し、最後に §8 を示すことです。" -# no-translate -#: Game.Levels.Power.L02zero_pow_succ -msgid "zero_pow_succ" -msgstr "zero_pow_succ" +#: Game.Levels.AdvMultiplication.L08mul_eq_zero +#. §0: `a * b = 0` +#. §1: `a = 0` +#. §2: `b = 0` +msgid "" +"This level proves that if §0 then §1 or §2. It is\n" +"logically equivalent to the last level, so there is a very short proof." +msgstr "このレベルでは、§0ならば§1または§2であることを証明します。これは直前のレベルと同等の論理構造を持つため、非常に短い証明で済みます。" -#: Game.Levels.LessOrEqual.L07or_symm -msgid "Ready for the boss level of this world?" -msgstr "この世界の最終ボス戦に挑戦する準備はできていますか?" +#: Game.Levels.AdvMultiplication.L08mul_eq_zero +#. §0: `h2` +#. §1: `tauto` +msgid "" +"Now the goal can be deduced from §0 by pure logic, so use the §1\n" +"tactic." +msgstr "現在の目標は、§0 から純粋な論理によって導き出すことができます。そのため、§1 のタクティクを使用します。" -#: Game.Levels.Multiplication.L07mul_add -#. §0: `mul_add a b c` -#. §1: `a * (b + c) = a * b + a * c` +#: Game.Levels.AdvMultiplication.L08mul_eq_zero +#. §0: ``` +#. have h2 := mul_ne_zero a b +#. tauto +#. ``` +#. §1: `mul_ne_zero a b` msgid "" -"Multiplication distributes\n" -"over addition on the left.\n" -"\n" -"§0 is the proof that §1." +"Here's the short proof:\n" +"§0\n" +"This works because, given §1,\n" +"the argument is reduced to pure logic." msgstr "" -"乗算は、加算に対して左側で分配されます。\n" -"\n" -"§0 は §1 の証明です。" - -#: Game.Levels.Algorithm -msgid "Algorithm World" -msgstr "アルゴリズムワールド" +"以下は短い証明です:\n" +"§0\n" +"これは、与えられた §1 から\n" +"議論が純粋な論理に簡約されるためです。" -#: Game.Levels.Tutorial.L07add_succ -#. §0: `add_succ a b` -#. §1: `a + succ b = succ (a + b)` -msgid "§0 is the proof of §1." -msgstr "§0 は §1 の証明です。" +# no-translate +#: Game.Levels.AdvMultiplication.L08mul_eq_zero +msgid "mul_eq_zero" +msgstr "mul_eq_zero" -#: Game.Levels.Power.L10FLT +#: Game.Levels.AdvMultiplication.L09mul_left_cancel +#. §0: `a * b = a * c` +#. §1: `a ≠ 0` +#. §2: `b = c` +#. §3: `induction b with d hd` +#. §4: `a * d = a * c → d = c` +#. §5: `a * succ d = a * c` +#. §6: `a ≠ 0` +#. §7: `b` +#. §8: `c` +#. §9: `a * b = a * c` +#. §10: `b = c` +#. §11: `c` msgid "" -"Congratulations! You have proved Fermat's Last Theorem!\n" +"In this level we prove that if §0 and §1 then §2. It is tricky, for\n" +"several reasons. One of these is that\n" +"we need to introduce a new idea: we will need to understand the concept of\n" +"mathematical induction a little better.\n" "\n" -"Either that, or you used magic..." +"Starting with §3 is too naive, because in the inductive step\n" +"the hypothesis is §4 but what we know is §5,\n" +"so the induction hypothesis does not apply!\n" +"\n" +"Assume §6 is fixed. The actual statement we want to prove by induction on " +"§7 is\n" +"\"for all §8, if §9 then §10\". This *can* be proved by induction,\n" +"because we now have the flexibility to change §11." msgstr "" -"おめでとうございます!あなたはフェルマーの最終定理を証明されました。\n" +"このレベルでは、§0 と §1 が成り立つ場合に、§2 が成り立つことを証明します。\n" +"これはいくつかの理由から複雑です。\n" +"そのうちの一つは、新しいアイデアを導入する必要があるためです:\n" +"数学的帰納法の概念についてもう少し深く理解する必要があります。\n" "\n" -"もしくは、魔法を使用したかもしれません..." +"§3 から始めるのは単純すぎるため、帰納的ステップでは仮定が §4 ですが、実際には §5 が成り立っているため、帰納仮定は適用できません!\n" +"\n" +"§6 を固定します。実際に証明したい主張は、§7 に関する帰納法による証明で、「全ての §8 について、§9 が成り立つならば §10 " +"が成り立つ」というものです。\n" +"この主張は帰納法で証明できます。なぜなら、今では §11 を変更できる柔軟性があるからです。" -#: Game.Levels.Multiplication.L04mul_comm -#. §0: `mul_comm` -#. §1: `mul_comm a b` -#. §2: `a * b = b * a` +# no-translate +#: Game.Levels.AdvMultiplication.L09mul_left_cancel +msgid "mul_left_cancel" +msgstr "mul_left_cancel" + +#: Game.Levels.AdvMultiplication.L09mul_left_cancel +#. §0: `hd` +#. §1: `c` +#. §2: `a * d = a * c → d = c` +#. §3: `apply` +#. §4: `at` +#. §5: `a * d = a * ?` msgid "" -"§0 is the proof that multiplication is commutative. More precisely,\n" -"§1 is the proof that §2." +"The inductive hypothesis §0 is \"For all natural numbers §1, §2\".\n" +"You can §3 it §4 any hypothesis of the form §5." msgstr "" -"§0 は、乗算における交換法則の成立を示す証明です。より具体的には、\n" -"§1 は、§2 が交換法則を満たすことを示す証明です。" +"帰納的仮定 §0 は「全ての自然数 §1 について §2」です。\n" +"あなたは、仮定 §5 の形式に対して、これを§3できます。(訳注: 原文は \"You can §3 it §4 any hypothesis of " +"the form §5.\" です。\n" +"つまり、 §3 §0 §4 §5 のような形で使用できます。)" -#: Game.Levels.Tutorial.L04rw_backwards -msgid "rewriting backwards" -msgstr "逆方向に書き換える" +#: Game.Levels.AdvMultiplication.L09mul_left_cancel +#. §0: `induction b with d hd generalizing c` +msgid "The way to start this proof is §0." +msgstr "この証明を開始する方法は §0 です。" -#, fuzzy -#: Game.Levels.LessOrEqual.L01le_refl -#. §0: `use` -#. §1: `x` -#. §2: `x = 37` -#. §3: `use 37` -#. §4: `a ≤ b` -#. §5: `c` -#. §6: `b = a + c` -#. §7: `a ≤ b` -#. §8: `use` -#. §9: `b - a` -#. §10: `use b - a` -#. §11: `use` -#. §12: `use 37` -#. §13: `use a` -#. §14: `use a * a + 1` +#: Game.Levels.AdvMultiplication.L09mul_left_cancel +#. §0: `c = 0` +#. §1: `c = succ e` +#. §2: `cases c with e` +msgid "Split into cases §0 and §1 with §2." +msgstr "§2 で§0 と §1 にケースを分けましょう。" + +#: Game.Levels.AdvMultiplication.L09mul_left_cancel +#. §0: `mul_eq_zero` +#. §1: `tauto` +#. §2: `a = 0` +#. §3: `a ≠ 0` msgid "" -"## Summary\n" -"\n" -"The §0 tactic makes progress with goals which claim something *exists*.\n" -"If the goal claims that some §1 exists with some property, and you know\n" -"that §2 will work, then §3 will make progress.\n" -"\n" -"Because §4 is notation for \\\\\"there exists §5 such that §6\\\\\",\n" -"you can make progress on goals of the form §7 by §8ing the\n" -"number which is morally §9 (i.e. §10)\n" +"Use §0 and remember that §1 will solve a goal\n" +"if there are hypotheses §2 and §3." +msgstr "§0を使用します。仮定として§2と§3が存在する場合、§1を用いることで目標を解決できます。" + +#: Game.Levels.AdvMultiplication.L10mul_right_eq_self +#. §0: `apply mul_left_cancel at h` +msgid "You can now §0" +msgstr "§0 ができます" + +#: Game.Levels.AdvMultiplication.L10mul_right_eq_self +msgid "" +"The lemma proved in the final level of this world will be helpful\n" +"in Divisibility World." +msgstr "最終段階で証明された定理は、整除ワールドの問題を解決する上で役立ちます。" + +#: Game.Levels.AdvMultiplication.L10mul_right_eq_self +#. §0: `nth_rewrite 2 [← mul_one a] at h` +msgid "Reduce to the previous lemma with §0" +msgstr "§0 を使用して、直前の補題に変換します。" + +# no-translate +#: Game.Levels.AdvMultiplication.L10mul_right_eq_self +msgid "mul_right_eq_self" +msgstr "mul_right_eq_self" + +#: Game.Levels.AdvMultiplication.L10mul_right_eq_self +#. §0: ``` +#. nth_rewrite 2 [← mul_one a] at h +#. exact mul_left_cancel a b 1 ha h +#. ``` +msgid "" +"A two-line proof is\n" "\n" -"Any of the following examples is possible assuming the type of the argument " -"passed to the §11 function is accurate:\n" +"§0\n" "\n" -"- §12\n" -"- §13\n" -"- §14" +"We now have all the tools necessary to set up the basic theory of " +"divisibility of naturals." msgstr "" -"## 概要\n" -"\n" -"§0 タクティクは、「何かが存在する」という主張を含む目標に対して、進展を促します。\n" -"もし目標が「ある特定の性質を持つものが存在する」と主張し、その存在を示す方法が §2 である場合、§3 は進展を促します。\n" -"\n" -"§4 は「§6 を満たす §5 が存在する」という主張を表す記号であり、目標が §7 のような形式の場合、§8 を行うことで、道徳的に §9 (つまり §10) " -"とみなされる番号を用いて進展させることができます。\n" +"二行の証明は\n" "\n" -"以下のいずれかの例が可能です(ただし、§11 関数に渡される引数の型が正確である場合):\n" +"§0\n" "\n" -"- §12\n" -"- §13\n" -"- §14" +"これまでに得られたツールを用いて、自然数の除法の基本的な理論を構築することが可能になりました。" -#: Game.Levels.Addition.L01zero_add -#. §0: `x + y = y + x` -#. §1: `add_comm` -#. §2: `add_zero` -#. §3: `zero_add` -#. §4: `add_comm` -#. §5: `x + y = y + x` -msgid "" -"This lemma would have been easy if we had known that §0. That theorem\n" -" is called §1 and it is *true*, but unfortunately its proof *uses* both\n" -" §2 and §3!\n" -"\n" -" Let's continue on our journey to §4, the proof of §5." -msgstr "" -"この補題は、§0を知っていれば簡単に証明できたでしょう。その定理は§1と呼ばれ、**真**ですが、残念ながらその証明には§2と§3の両方が**使用**" -"されています!\n" -"\n" -"次に、§5の証明である§4へと進みましょう。" +#: GameServer.RpcHandlers +msgid "level completed with warnings… 🎭" +msgstr "レベルが警告付きで完了しました… 🎭" + +#: GameServer.RpcHandlers +msgid "intermediate goal solved! 🎉" +msgstr "中間目標が達成されました!🎉" + +# UIと揃える +#: GameServer.RpcHandlers +msgid "level completed! 🎉" +msgstr "レベル完了!🎉" From d0153df978f363e104f31907f103f86c33021fbe Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sat, 2 May 2026 13:26:16 +0900 Subject: [PATCH 099/147] ja: add fuzzy marker to all translations --- .i18n/ja/Game.po | 428 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 428 insertions(+) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 54a09784..f201e94f 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -14,6 +14,7 @@ msgstr "" #: Game #. §0: $\\mathbb{N}$ +#, fuzzy msgid "" "In this game you recreate the natural numbers §0 from the Peano axioms,\n" "learning the basics about theorem proving in Lean.\n" @@ -28,6 +29,7 @@ msgstr "" #. §0: `{0,1,2,3,4,...}` #. §1: `2 + 2 = 4` #. §2: `x + y = y + x` +#, fuzzy msgid "" "# Welcome to the Natural Number Game\n" "#### An introduction to mathematical proof.\n" @@ -84,6 +86,7 @@ msgstr "" "右上隅の三本線をクリックし、「ゲーム情報」を選択して、リソース、リンク、Leanコミュニティとの交流方法を確認してください。" #: Game +#, fuzzy msgid "" "*Game version: 4.3*\n" "\n" @@ -181,15 +184,18 @@ msgstr "" "リポジトリで問題をオープンしてください。" #: Game +#, fuzzy msgid "Natural Number Game" msgstr "自然数ゲーム" #: Game +#, fuzzy msgid "The classical introduction game for Lean." msgstr "Lean 4 用の、古典的な導入ゲーム。" #: Game.Levels.Tutorial #. §0: `2 + 2 = 4` +#, fuzzy msgid "" "Welcome to tutorial world! In this world we learn the basics\n" "of proving theorems. The boss level of this world\n" @@ -209,11 +215,13 @@ msgstr "" "基本的なタクティクについて学びましょう。「開始」をクリックして冒険を始めてください。" #: Game.Levels.Tutorial +#, fuzzy msgid "Tutorial World" msgstr "チュートリアルワールド" #: Game.Levels.Tutorial.L01rfl #. §0: `rfl` +#, fuzzy msgid "" "In order to use the tactic §0 you can enter it in the text box\n" "under the goal and hit \"Execute\"." @@ -232,6 +240,7 @@ msgstr "タクティク §0 を使用するには、目標の下にあるテキ #. §9: $X = X$ #. §10: $37x+q=37x+q$ #. §11: `rfl` +#, fuzzy msgid "" "# Read this first\n" "\n" @@ -270,10 +279,12 @@ msgstr "" #. §0: $x$ #. §1: $q$ #. §2: $37x+q=37x+q.$ +#, fuzzy msgid "If §0 and §1 are arbitrary natural numbers, then §2" msgstr "任意の自然数§0と§1が与えられたとき、§2" #: Game.Levels.Tutorial.L01rfl +#, fuzzy msgid "The rfl tactic" msgstr "rfl タクティク" @@ -300,6 +311,7 @@ msgstr "rfl タクティク" #. §17: `mathlib` #. §18: `zero_add` #. §19: `add_zero` +#, fuzzy msgid "" "## Summary\n" "\n" @@ -369,6 +381,7 @@ msgstr "" #. §1: `rfl` #. §2: `rfl` #. §3: `rw` +#, fuzzy msgid "" "Congratulations! You completed your first verified proof!\n" "\n" @@ -386,11 +399,13 @@ msgstr "" "「次」をクリックして、 §3 のタクティクについて学びましょう。" #: Game.Levels.Tutorial.L02rw +#, fuzzy msgid "the rw tactic" msgstr "rw タクティク" #: Game.Levels.Tutorial.L02rw #. §0: `rfl` +#, fuzzy msgid "Now §0 will work." msgstr "現在、§0 は正常に動作します。" @@ -410,6 +425,7 @@ msgstr "現在、§0 は正常に動作します。" #. §12: `2 + succ 1 = 4` #. §13: `rw [two_eq_succ_one]` #. §14: `succ 1 + succ 1 = 4` +#, fuzzy msgid "" "## Summary\n" "\n" @@ -550,6 +566,7 @@ msgstr "" #. §84: `X` #. §85: `Y` #. §86: `nth_rewrite 37 [h]` +#, fuzzy msgid "" "## Summary\n" "\n" @@ -761,6 +778,7 @@ msgstr "" #. §7: $y$ #. §8: `h` #. §9: `rw` +#, fuzzy msgid "" "In this level the *goal* is §0 but to help us we\n" "have an *assumption* §1 saying that §2. Check that you can see §3 in\n" @@ -777,6 +795,7 @@ msgstr "" "§6を使用する前に、「§7に置き換える」必要があります。Leanでは、§8を使用して目標を書き換え、§9タクティクを使用してこれを実行します。" #: Game.Levels.Tutorial.L02rw +#, fuzzy msgid "Can you take it from here? Click on \"Show more help!\" if you need a hint." msgstr "引き続きご自身で解決いただけますでしょうか? ヒントが必要な場合は、「より多くのヘルプを表示!」をクリックしてください。" @@ -785,6 +804,7 @@ msgstr "引き続きご自身で解決いただけますでしょうか? ヒ #. §1: $y$ #. §2: $y = x + 7$ #. §3: $2y = 2(x + 7)$ +#, fuzzy msgid "If §0 and §1 are natural numbers, and §2, then §3." msgstr "自然数§0と§1が存在し、かつ§2が真ならば、§3は真である。" @@ -792,6 +812,7 @@ msgstr "自然数§0と§1が存在し、かつ§2が真ならば、§3は真で #. §0: `rw [h]` #. §1: `y` #. §2: `x + 7` +#, fuzzy msgid "First execute §0 to replace the §1 with §2." msgstr "まず、 §0 を実行して §1 を §2 に置き換えてください。" @@ -806,6 +827,7 @@ msgstr "まず、 §0 を実行して §1 を §2 に置き換えてください #. §7: `2 + succ 1 = 4` #. §8: `rw [two_eq_succ_one]` #. §9: `succ 1 + succ 1 = 4` +#, fuzzy msgid "" "## Summary\n" "\n" @@ -828,6 +850,7 @@ msgstr "" #: Game.Levels.Tutorial.L02rw #. §0: `2 + 2 = 4` +#, fuzzy msgid "You now know enough tactics to prove §0! Let's begin the journey." msgstr "あなたは、十分なタクティクを習得し、§0の証明が可能になりました。それでは、学習の旅を始めましょう。" @@ -838,6 +861,7 @@ msgstr "あなたは、十分なタクティクを習得し、§0の証明が可 #. §3: `MyNat` #. §4: `ℕ` #. §5: `Nat` +#, fuzzy msgid "" "§0 is the natural numbers, just called \\\\\"numbers\\\\\" in this game. " "It's\n" @@ -868,6 +892,7 @@ msgstr "" #. §0: `1` #. §1: `succ 0` #. §2: `rw [one_eq_succ_zero]` +#, fuzzy msgid "Next turn §0 into §1 with §2." msgstr "次のステップとして、§2 を実行して §0 を §1 に変換します。" @@ -887,6 +912,7 @@ msgstr "次のステップとして、§2 を実行して §0 を §1 に変換 #. §12: `2 = succ 1` #. §13: `two_eq_succ_one` #. §14: $2$ +#, fuzzy msgid "" "## The birth of number.\n" "\n" @@ -930,12 +956,14 @@ msgstr "" #: Game.Levels.Tutorial.L03two_eq_ss0 #. §0: `rfl` +#, fuzzy msgid "Now finish the job with §0." msgstr "§0を使って作業を完了してください。" #: Game.Levels.Tutorial.L03two_eq_ss0 #. §0: `one_eq_succ_zero` #. §1: `1 = succ 0` +#, fuzzy msgid "§0 is a proof of §1.\"" msgstr "§0 は §1 の証明である。" @@ -944,32 +972,38 @@ msgstr "§0 は §1 の証明である。" #: Game.Levels.Algorithm.L06is_zero Game.Levels.LessOrEqual.L05le_zero #. §0: `two_eq_succ_one` #. §1: `2 = succ 1` +#, fuzzy msgid "§0 is a proof of §1." msgstr "§0 は §1 の証明です。" #: Game.Levels.Tutorial.L03two_eq_ss0 +#, fuzzy msgid "Can you take it from here?" msgstr "ここから続けられますか?" #: Game.Levels.Tutorial.L03two_eq_ss0 #. §0: `rw [two_eq_succ_one]` #. §1: `2` +#, fuzzy msgid "Start with §0 to begin to break §1 down into its definition." msgstr "まず§0から開始し、そこから§1を定義へと分解していくことから始めましょう。" #: Game.Levels.Tutorial.L03two_eq_ss0 +#, fuzzy msgid "Numbers" msgstr "数値" #: Game.Levels.Tutorial.L03two_eq_ss0 Game.Levels.Tutorial.L04rw_backwards #. §0: $2$ #. §1: $0$ +#, fuzzy msgid "§0 is the number after the number after §1." msgstr "§0 は、§1 の後に続く数値の後に現れる数値です。" #: Game.Levels.Tutorial.L03two_eq_ss0 #. §0: `rw [two_eq_succ_one, one_eq_succ_zero]` #. §1: `rfl` +#, fuzzy msgid "" "Note that you can do §0\n" "and then §1 to solve this level in two lines." @@ -990,6 +1024,7 @@ msgstr "§0を実行し、その後§1を実行することで、このレベル #. §11: $0$ #. §12: `succ (succ 0)` #. §13: `2` +#, fuzzy msgid "" "If §0 is a proof of §1 then §2 will\n" "turn §3s into §4s. But what if we want to\n" @@ -1010,6 +1045,7 @@ msgstr "" #. §0: `rw [← one_eq_succ_zero]` #. §1: `succ 0` #. §2: `1` +#, fuzzy msgid "Try §0 to change §1 into §2." msgstr "§0を使用して、§1を§2に変換することを試みてください。" @@ -1017,12 +1053,14 @@ msgstr "§0を使用して、§1を§2に変換することを試みてくださ #. §0: `rw [← two_eq_succ_one]` #. §1: `succ 1` #. §2: `2` +#, fuzzy msgid "Now §0 will change §1 into §2." msgstr "§0 は §1 を §2 に変更します。" #: Game.Levels.Tutorial.L04rw_backwards #. §0: `succ n` #. §1: `n + 1` +#, fuzzy msgid "" "Why did we not just define §0 to be §1? Because we have not\n" "even *defined* addition yet! We'll do that in the next level." @@ -1030,10 +1068,12 @@ msgstr "なぜ、§0を§1に定義しなかったのでしょうか? それ #: Game.Levels.Tutorial.L04rw_backwards #. §0: `2 = 2` +#, fuzzy msgid "Can you now change the goal into §0?" msgstr "目標を§0に変更することは可能ですか?" #: Game.Levels.Tutorial.L04rw_backwards +#, fuzzy msgid "rewriting backwards" msgstr "逆方向に書き換える" @@ -1043,6 +1083,7 @@ msgstr "逆方向に書き換える" #. §2: `repeat rw [add_zero]` #. §3: `a + 0 + (0 + (0 + 0)) = b + 0 + 0` #. §4: `a = b` +#, fuzzy msgid "" "## Summary\n" "\n" @@ -1089,6 +1130,7 @@ msgstr "" #. §19: `? + 0 = ?` #. §20: `add_zero x : x + 0 = x` #. §21: `proof : statement` +#, fuzzy msgid "" "We'd like to prove §0 but right now\n" "we can't even *state* it\n" @@ -1139,6 +1181,7 @@ msgstr "" #: Game.Levels.Power.L01zero_pow_zero Game.Levels.Algorithm.L09decide2 #: Game.Levels.AdvAddition.L03add_left_eq_self #. §0: $a+(b+0)+(c+0)=a+b+c.$ +#, fuzzy msgid "§0" msgstr "§0" @@ -1146,11 +1189,13 @@ msgstr "§0" #. §0: `rw [add_zero]` #. §1: `b + 0` #. §2: `b` +#, fuzzy msgid "§0 will change §1 into §2." msgstr "§0 は §1 を §2 に変換します。" #: Game.Levels.Tutorial.L05add_zero #. §0: `repeat rw [add_zero]` +#, fuzzy msgid "" "Those of you interested in speedrunning the game may want to know\n" "that §0 will do both rewrites at once." @@ -1167,6 +1212,7 @@ msgstr "ゲームのRTAにご興味のある方は、`§0` は一度に両方の #. §7: `add_zero` #. §8: $\\forall n ∈ ℕ, n + 0 = n$ #. §9: `n + 0 = n` +#, fuzzy msgid "" "§0 is a proof that §1.\n" "\n" @@ -1207,6 +1253,7 @@ msgstr "" #. §2: `add_zero a : a + 0 = a` #. §3: `add_succ a b : a + succ b = succ (a + b)` #. §4: `zero_add a : 0 + a = a` +#, fuzzy msgid "" "§0, with notation §1, is\n" "the usual sum of natural numbers. Internally it is defined\n" @@ -1228,6 +1275,7 @@ msgstr "" "また、§4のような他の自然数に関する定理は、これらの基本定理を用いて帰納法によって証明されます。" #: Game.Levels.Tutorial.L05add_zero +#, fuzzy msgid "Adding zero" msgstr "ゼロを加える" @@ -1239,6 +1287,7 @@ msgstr "ゼロを加える" #. §4: `rw [add_zero]` #. §5: `rw [add_zero b]` #. §6: `rw [add_zero]` +#, fuzzy msgid "" "§0 is a proof of §1 so that was what got rewritten.\n" "You can now change §2 to §3 with §4 or §5. You\n" @@ -1250,11 +1299,13 @@ msgstr "" #: Game.Levels.Tutorial.L06add_zero2 Game.Levels.LessOrEqual.L08le_total #. §0: `rw [add_zero c]` +#, fuzzy msgid "Try §0." msgstr "§0 を実行してみましょう。" #: Game.Levels.Tutorial.L06add_zero2 #. §0: `add_succ` +#, fuzzy msgid "Let's now learn about Peano's second axiom for addition, §0." msgstr "それでは、ペアノの加法の第2の公理、§0 について学びましょう。" @@ -1265,6 +1316,7 @@ msgstr "それでは、ペアノの加法の第2の公理、§0 について学 #. §3: `b + 0` #. §4: `c + 0` #. §5: `add_zero` +#, fuzzy msgid "" "## Precision rewriting\n" "\n" @@ -1282,15 +1334,18 @@ msgstr "" "これを行うには、§5 に明示的な入力を与えます。" #: Game.Levels.Tutorial.L06add_zero2 +#, fuzzy msgid "Precision rewriting" msgstr "精密な書き換え" #: Game.Levels.Tutorial.L07add_succ #. §0: `1` +#, fuzzy msgid "Start by unravelling the §0." msgstr "まず、§0 を解き始めましょう。" #: Game.Levels.Tutorial.L07add_succ +#, fuzzy msgid "[dramatic music]. Now are you ready to face the first boss of the game?" msgstr "[壮大なBGMが流れる]. 続いて、ゲームの最初のボスとの戦闘に備えましょう。" @@ -1314,6 +1369,7 @@ msgstr "[壮大なBGMが流れる]. 続いて、ゲームの最初のボスと #. §16: `rw [add_succ]` #. §17: `+` #. §18: `012` +#, fuzzy msgid "" "Every number in Lean is either §0 or a successor. We know how to add §1,\n" "but we need to figure out how to add successors. Let's say we already know\n" @@ -1345,6 +1401,7 @@ msgstr "" #: Game.Levels.Tutorial.L07add_succ Game.Levels.Tutorial.L08twoaddtwo #. §0: `rw [add_succ]` +#, fuzzy msgid "Now you can §0" msgstr "§0ができます。" @@ -1352,16 +1409,19 @@ msgstr "§0ができます。" #: Game.Levels.Multiplication.L06two_mul Game.Levels.Algorithm.L07succ_ne_succ #. §0: `succ_eq_add_one n` #. §1: `succ n = n + 1` +#, fuzzy msgid "§0 is the proof that §1." msgstr "§0 は、§1 の証明を示しています。" #: Game.Levels.Tutorial.L07add_succ #. §0: `rfl` +#, fuzzy msgid "And finally §0." msgstr "そして、最後に、§0。" #: Game.Levels.Tutorial.L07add_succ #. §0: `rw [add_zero]` +#, fuzzy msgid "And now §0" msgstr "§0をしましょう。" @@ -1369,27 +1429,32 @@ msgstr "§0をしましょう。" #: Game.Levels.Multiplication.L02zero_mul #. §0: $a$ #. §1: $\\operatorname{succ}(a) = a+1$ +#, fuzzy msgid "For all natural numbers §0, we have §1." msgstr "すべての自然数 §0 に対して、§1 が成り立ちます。" #: Game.Levels.Tutorial.L07add_succ #. §0: `rw [one_eq_succ_zero]` +#, fuzzy msgid "§0 will do this." msgstr "§0 は、この操作を実行します。" # no-translate #: Game.Levels.Tutorial.L07add_succ +#, fuzzy msgid "add_succ" msgstr "add_succ" #: Game.Levels.Tutorial.L07add_succ #. §0: `add_succ a b` #. §1: `a + succ b = succ (a + b)` +#, fuzzy msgid "§0 is the proof of §1." msgstr "§0 は §1 の証明です。" # no-translate #: Game.Levels.Tutorial.L08twoaddtwo +#, fuzzy msgid "2+2=4" msgstr "2+2=4" @@ -1399,6 +1464,7 @@ msgstr "2+2=4" #. §2: `X` #. §3: `Y` #. §4: `nth_rewrite 3 [h]` +#, fuzzy msgid "" "Good luck!\n" "\n" @@ -1414,6 +1480,7 @@ msgstr "" #: Game.Levels.Tutorial.L08twoaddtwo #. §0: `nth_rewrite 2 [two_eq_succ_one]` #. §1: `rw [two_eq_succ_one]` +#, fuzzy msgid "§0 is I think quicker than §1." msgstr "§0 は、§1 よりも高速であると推測されます。" @@ -1430,6 +1497,7 @@ msgstr "§0 は、§1 よりも高速であると推測されます。" #. §1: `` #. §2: `>_` #. §3: `induction` +#, fuzzy msgid "" "Here is an example proof of 2+2=4 showing off various techniques.\n" "\n" @@ -1472,10 +1540,12 @@ msgstr "" #: Game.Levels.AdvAddition.L02add_left_cancel #: Game.Levels.AdvAddition.L04add_right_eq_self #. §0: $2+2=4$ +#, fuzzy msgid "§0." msgstr "§0." #: Game.Levels.Addition +#, fuzzy msgid "Addition World" msgstr "加算ワールド" @@ -1485,6 +1555,7 @@ msgstr "加算ワールド" #. §2: `rw` #. §3: `rfl` #. §4: `induction` +#, fuzzy msgid "" "Welcome to Addition World! In this world we'll learn the §0 tactic.\n" "This will enable us to defeat the boss level of this world, namely §1.\n" @@ -1527,6 +1598,7 @@ msgstr "" #. §14: `0 + succ d = succ d` #. §15: `0` #. §16: `>_` +#, fuzzy msgid "" "In this level we're going to prove that §0, where §1 is a secret natural " "number.\n" @@ -1572,6 +1644,7 @@ msgstr "" #. §3: `simp` #. §4: `0 + x` #. §5: `x` +#, fuzzy msgid "" "§0 is the proof of §1.\n" "\n" @@ -1596,6 +1669,7 @@ msgstr "" #. §8: `0 + 0 = 0` #. §9: `hd : 0 + d = d` #. §10: `0 + succ d = succ d` +#, fuzzy msgid "" "## Summary\n" "\n" @@ -1641,6 +1715,7 @@ msgstr "" #: Game.Levels.Addition.L01zero_add #. §0: $n = 0$ #. §1: `X = Y` +#, fuzzy msgid "" "Now you have two goals. Once you proved the first, you will jump to the " "second one.\n" @@ -1659,6 +1734,7 @@ msgstr "" #: Game.Levels.Addition.L01zero_add #. §0: `0 + «{d}»` #. §1: `rw [«{hd}»]` +#, fuzzy msgid "" "At this point you see the term §0, so you can use the\n" "induction hypothesis with §1." @@ -1667,6 +1743,7 @@ msgstr "現在、項§0が表示されているため、項§1を用いて帰納 #: Game.Levels.Addition.L01zero_add #. §0: `n` #. §1: `induction n with d hd` +#, fuzzy msgid "" "You can start a proof by induction on §0 by typing:\n" "§1." @@ -1676,17 +1753,20 @@ msgstr "" # no-translate #: Game.Levels.Addition.L01zero_add +#, fuzzy msgid "zero_add" msgstr "zero_add" #: Game.Levels.Addition.L01zero_add #. §0: `add_succ` +#, fuzzy msgid "Use §0." msgstr "§0をご利用ください。" #: Game.Levels.Addition.L01zero_add #. §0: `«{hd}» : 0 + «{d}» = «{d}»` #. §1: `0 + succ «{d}» = succ «{d}»` +#, fuzzy msgid "" "Now for the second goal. Here you have the induction hypothesis\n" "§0, and you need to prove that §1." @@ -1694,6 +1774,7 @@ msgstr "では、次の目標に進みます。 ここで示された帰納法 #: Game.Levels.Addition.L01zero_add #. §0: `add_zero` +#, fuzzy msgid "try rewriting §0." msgstr "§0で書き換えてみてください." @@ -1704,6 +1785,7 @@ msgstr "§0で書き換えてみてください." #. §3: `zero_add` #. §4: `add_comm` #. §5: `x + y = y + x` +#, fuzzy msgid "" "This lemma would have been easy if we had known that §0. That theorem\n" " is called §1 and it is *true*, but unfortunately its proof *uses* both\n" @@ -1719,6 +1801,7 @@ msgstr "" #: Game.Levels.Addition.L02succ_add #. §0: $a, b$ #. §1: $ \\operatorname{succ}(a) + b = \\operatorname{succ}(a + b)$ +#, fuzzy msgid "" "For all natural numbers §0, we have\n" "§1." @@ -1730,6 +1813,7 @@ msgstr "" #. §0: `succ a + «{d}»` #. §1: `(succ a) + «{d}»` #. §2: `succ` +#, fuzzy msgid "" "Note that §0 means §1. Put your cursor\n" "on any §2 in the goal or assumptions to see what exactly it's eating." @@ -1737,6 +1821,7 @@ msgstr "注: §0 は §1 を意味します。目標または前提条件内の # no-translate #: Game.Levels.Addition.L02succ_add +#, fuzzy msgid "succ_add" msgstr "succ_add" @@ -1751,6 +1836,7 @@ msgstr "succ_add" #. §7: `b` #. §8: `b = 0` #. §9: `b` +#, fuzzy msgid "" "Oh no! On the way to §0, a wild §1 appears. §2\n" "is the proof that §3 for §4 and §5 numbers.\n" @@ -1764,6 +1850,7 @@ msgstr "" #: Game.Levels.Addition.L02succ_add #. §0: `a` #. §1: `b` +#, fuzzy msgid "" "You might want to think about whether induction\n" "on §0 or §1 is the best idea." @@ -1780,16 +1867,19 @@ msgstr "推論を行う際に、§0 または §1 に対する再帰的なアプ #: Game.Levels.AdvMultiplication.L06mul_right_eq_one #. §0: `succ_add a b` #. §1: `succ a + b = succ (a + b)` +#, fuzzy msgid "§0 is a proof that §1." msgstr "§0 は、§1 の証明を示します。" #: Game.Levels.Addition.L02succ_add +#, fuzzy msgid "Well done! You now have enough tools to tackle the main boss of this level." msgstr "よくできました!これで、このレベルのメインボスに対抗するための十分なツールが揃いました。" #: Game.Levels.Addition.L03add_comm #. §0: `a` #. §1: `b` +#, fuzzy msgid "Induction on §0 or §1 -- it's all the same in this one." msgstr "帰納法を適用して、§0または§1に対して -- どちらの場合でも結果は同じです。" @@ -1797,6 +1887,7 @@ msgstr "帰納法を適用して、§0または§1に対して -- どちらの #. §0: `a` #. §1: `b` #. §2: $a + b = b + a$ +#, fuzzy msgid "" "On the set of natural numbers, addition is commutative.\n" "In other words, if §0 and §1 are arbitrary natural numbers, then\n" @@ -1807,10 +1898,12 @@ msgstr "" "§2." #: Game.Levels.Addition.L03add_comm +#, fuzzy msgid "add_comm (level boss)" msgstr "add_comm (レベルボス)" #: Game.Levels.Addition.L03add_comm +#, fuzzy msgid "" "[boss battle music]\n" "\n" @@ -1826,6 +1919,7 @@ msgstr "" #. §0: `a + b + c` #. §1: `(a + b) + c` #. §2: `+` +#, fuzzy msgid "" "Remember that when Lean writes §0, it means §1.\n" "If you are not sure where the brackets are in an expression, just hover\n" @@ -1840,6 +1934,7 @@ msgstr "" #: Game.Levels.Addition.L04add_assoc #. §0: `add_assoc` #. §1: `add_comm` +#, fuzzy msgid "" "A passing mathematician congratulates you on proving that naturals\n" "are an additive commutative monoid.\n" @@ -1859,6 +1954,7 @@ msgstr "" #. §4: $(x+y)+z$ #. §5: $(x+y)+z$ #. §6: $x+(y+z)$ +#, fuzzy msgid "" "We've been adding up two numbers; in this level we will add up three.\n" "\n" @@ -1878,6 +1974,7 @@ msgstr "" " その通りですが、まだ証明していません。帰納法(`inducution`)でを用いて証明しましょう。" #: Game.Levels.Addition.L04add_assoc +#, fuzzy msgid "add_assoc (associativity of addition)" msgstr "add_assoc (加法に関する結合法則)" @@ -1886,6 +1983,7 @@ msgstr "add_assoc (加法に関する結合法則)" #. §1: `(a + b) + c = a + (b + c)` #. §2: `(a + b) + c` #. §3: `a + b + c` +#, fuzzy msgid "" "§0 is a proof\n" "that §1. Note that in Lean §2 prints\n" @@ -1899,6 +1997,7 @@ msgstr "" #. §0: $a, b$ #. §1: $c$ #. §2: $ (a + b) + c = a + (b + c). $ +#, fuzzy msgid "" "On the set of natural numbers, addition is associative.\n" "In other words, if §0 and §1 are arbitrary natural numbers, we have\n" @@ -1914,6 +2013,7 @@ msgstr "" #. §2: `a + b + c` #. §3: `(a + b) + c` #. §4: `a + b + c = a + c + b` +#, fuzzy msgid "" "§0 is a proof that §1\n" "\n" @@ -1928,6 +2028,7 @@ msgstr "" #. §0: $a, b$ #. §1: $c$ #. §2: $(a + b) + c = (a + c) + b$ +#, fuzzy msgid "" "If §0 and §1 are arbitrary natural numbers, we have\n" "§2." @@ -1937,6 +2038,7 @@ msgstr "" # no-translate #: Game.Levels.Addition.L05add_right_comm +#, fuzzy msgid "add_right_comm" msgstr "add_right_comm" @@ -1954,6 +2056,7 @@ msgstr "add_right_comm" #. §10: `b + ? = ? + b` #. §11: `rw [add_comm b c]` #. §12: `b + c = c + b` +#, fuzzy msgid "" "§0 is a proof that §1. But if your goal\n" "is §2 then §3 will not\n" @@ -1980,6 +2083,7 @@ msgstr "" #: Game.Levels.Addition.L05add_right_comm #. §0: `a = 0` #. §1: `x + a = x` +#, fuzzy msgid "" "You've now seen all the tactics you need to beat the final boss of the " "game.\n" @@ -2003,6 +2107,7 @@ msgstr "" "「ホーム」をクリックして選択してください。" #: Game.Levels.Multiplication +#, fuzzy msgid "Multiplication World" msgstr "乗算ワールド" @@ -2021,6 +2126,7 @@ msgstr "乗算ワールド" #. §11: `mul_succ a d : a * succ d = a * d + a` #. §12: `a * b = b * a` #. §13: `a * (b + c) = a * b + a * c` +#, fuzzy msgid "" "How should we define §0? Just like addition, we need to give definitions\n" "when §1 and when §2 is a successor.\n" @@ -2056,6 +2162,7 @@ msgstr "" # no-translate #: Game.Levels.Multiplication.L01mul_one +#, fuzzy msgid "mul_one" msgstr "mul_one" @@ -2065,6 +2172,7 @@ msgstr "mul_one" #. §2: `mul_zero a : a * 0 = 0` #. §3: `mul_succ a b : a * succ b = a * b + a` #. §4: `zero_mul` +#, fuzzy msgid "" "§0, with notation §1, is the usual\n" " product of natural numbers. Internally it is\n" @@ -2089,6 +2197,7 @@ msgstr "" #. §0: `mul_zero` #. §1: `mul_succ` #. §2: `1` +#, fuzzy msgid "" "See the new \"*\" tab in your lemmas, containing §0 and §1.\n" "Right now these are the only facts we know about multiplication.\n" @@ -2108,6 +2217,7 @@ msgstr "" #: Game.Levels.Multiplication.L06two_mul #. §0: $m$ #. §1: $ m \\times 1 = m$ +#, fuzzy msgid "For any natural number §0, we have §1." msgstr "任意の自然数 §0 に対しては、§1 が成り立ちます。" @@ -2116,6 +2226,7 @@ msgstr "任意の自然数 §0 に対しては、§1 が成り立ちます。" #. §1: `0 * x = 0` #. §2: `zero_mul` #. §3: `simp` +#, fuzzy msgid "" "§0 is the proof that §1.\n" "\n" @@ -2129,6 +2240,7 @@ msgstr "" #. §0: `mul_comm x y : x * y = y * x` #. §1: `mul_zero` #. §2: `zero_mul` +#, fuzzy msgid "" "Our first challenge is §0,\n" "and we want to prove it by induction. The zero\n" @@ -2141,6 +2253,7 @@ msgstr "" # no-translate #: Game.Levels.Multiplication.L02zero_mul +#, fuzzy msgid "zero_mul" msgstr "zero_mul" @@ -2148,6 +2261,7 @@ msgstr "zero_mul" #. §0: $a$ #. §1: $b$ #. §2: $(\\operatorname{succ}\\ a) \\times b = a\\times b + b$ +#, fuzzy msgid "" "For all natural numbers §0 and §1, we have\n" "§2." @@ -2158,6 +2272,7 @@ msgstr "" #: Game.Levels.Multiplication.L03succ_mul #. §0: `mul_succ` #. §1: `succ_mul` +#, fuzzy msgid "" "Similarly we have §0\n" "but we're going to need §1 (guess what it says -- maybe you\n" @@ -2175,6 +2290,7 @@ msgstr "" # no-translate #: Game.Levels.Multiplication.L03succ_mul +#, fuzzy msgid "succ_mul" msgstr "succ_mul" @@ -2185,6 +2301,7 @@ msgstr "succ_mul" #. §3: `mul_comm` #. §4: `mul_comm` #. §5: `mul_succ` +#, fuzzy msgid "" "§0 is the proof that §1.\n" "\n" @@ -2199,6 +2316,7 @@ msgstr "" #. §0: `mul_comm x y : x * y = y * x` #. §1: `zero_mul` #. §2: `mul_zero` +#, fuzzy msgid "" "The first sub-boss of Multiplication World is §0.\n" "\n" @@ -2216,10 +2334,12 @@ msgstr "" # no-translate #: Game.Levels.Multiplication.L04mul_comm +#, fuzzy msgid "mul_comm" msgstr "mul_comm" #: Game.Levels.Multiplication.L04mul_comm +#, fuzzy msgid "Multiplication is commutative." msgstr "乗算は交換律を満たします。" @@ -2227,6 +2347,7 @@ msgstr "乗算は交換律を満たします。" #. §0: `mul_comm` #. §1: `mul_comm a b` #. §2: `a * b = b * a` +#, fuzzy msgid "" "§0 is the proof that multiplication is commutative. More precisely,\n" "§1 is the proof that §2." @@ -2237,6 +2358,7 @@ msgstr "" #: Game.Levels.Multiplication.L05one_mul #. §0: $1\\times m=m$ #. §1: `succ_mul` +#, fuzzy msgid "" "You can prove §0 in at least three ways.\n" "Either by induction, or by using §1, or\n" @@ -2249,11 +2371,13 @@ msgstr "" #: Game.Levels.Multiplication.L05one_mul #. §0: `one_mul m` #. §1: `1 * m = m` +#, fuzzy msgid "§0 is the proof §1." msgstr "§0 は §1 の証明を示す。" # no-translate #: Game.Levels.Multiplication.L05one_mul +#, fuzzy msgid "one_mul" msgstr "one_mul" @@ -2262,6 +2386,7 @@ msgstr "one_mul" #. rw [mul_comm, mul_one] #. rfl #. ``` +#, fuzzy msgid "" "Here's my solution:\n" "§0" @@ -2271,10 +2396,12 @@ msgstr "" # no-translate #: Game.Levels.Multiplication.L06two_mul +#, fuzzy msgid "two_mul" msgstr "two_mul" #: Game.Levels.Multiplication.L06two_mul +#, fuzzy msgid "" "This level is more important than you think; it plays\n" "a useful role when battling a big boss later on." @@ -2285,6 +2412,7 @@ msgstr "このレベルは、想像以上に重要な役割を担います。特 #. §1: $b$ #. §2: $c$ #. §3: $a(b + c) = ab + ac$ +#, fuzzy msgid "" "Multiplication is distributive over addition on the left.\n" "In other words, for all natural numbers §0, §1 and §2, we have\n" @@ -2298,12 +2426,14 @@ msgstr "" #. §0: `a` #. §1: `b` #. §2: `c` +#, fuzzy msgid "" "Induction on §0 is the most troublesome, then §1,\n" "and §2 is the easiest." msgstr "帰納法における§0のケースが最も困難であり、次に§1、そして§2が最も容易です。" #: Game.Levels.Multiplication.L07mul_add +#, fuzzy msgid "" "You can do induction on any of the three variables. Some choices\n" "are harder to push through than others. Can you do the inductive step in\n" @@ -2314,6 +2444,7 @@ msgstr "" # no-translate #: Game.Levels.Multiplication.L07mul_add +#, fuzzy msgid "mul_add" msgstr "mul_add" @@ -2327,6 +2458,7 @@ msgstr "mul_add" #. ``` #. §1: `a` #. §2: `b` +#, fuzzy msgid "" "Here's my solution:\n" "§0\n" @@ -2343,6 +2475,7 @@ msgstr "" #. §1: $(b+c)a=ba+ca$ #. §2: `mul_add a b c` #. §3: `a * (b + c) = a * b + a * c` +#, fuzzy msgid "" "Our next goal is \"left and right distributivity\",\n" "meaning §0 and §1. Rather than\n" @@ -2359,6 +2492,7 @@ msgstr "" #: Game.Levels.Multiplication.L07mul_add #. §0: `mul_add a b c` #. §1: `a * (b + c) = a * b + a * c` +#, fuzzy msgid "" "Multiplication distributes\n" "over addition on the left.\n" @@ -2376,6 +2510,7 @@ msgstr "" #. repeat rw [mul_comm c] #. rfl #. ``` +#, fuzzy msgid "" "Here's my proof:\n" "§0" @@ -2388,6 +2523,7 @@ msgstr "" #. §1: $b$ #. §2: $c$ #. §3: $(a + b) \\times c = ac + bc$ +#, fuzzy msgid "" "Addition is distributive over multiplication.\n" "In other words, for all natural numbers §0, §1 and §2, we have\n" @@ -2399,6 +2535,7 @@ msgstr "" #: Game.Levels.Multiplication.L08add_mul #. §0: `add_mul` +#, fuzzy msgid "" "§0 is just as fiddly to prove by induction; but there's a trick\n" "which avoids it. Can you spot it?" @@ -2406,15 +2543,18 @@ msgstr "§0を帰納法で証明することは、同様に複雑です。しか # no-translate #: Game.Levels.Multiplication.L08add_mul +#, fuzzy msgid "add_mul" msgstr "add_mul" # no-translate #: Game.Levels.Multiplication.L09mul_assoc +#, fuzzy msgid "mul_assoc" msgstr "mul_assoc" #: Game.Levels.Multiplication.L09mul_assoc +#, fuzzy msgid "" "A passing mathematician notes that you've proved\n" "that the natural numbers are a commutative semiring.\n" @@ -2433,6 +2573,7 @@ msgstr "" #. §4: `(a * b) * c = a * (b * c)` #. §5: `(6 - 2) - 1` #. §6: `6 - (2 - 1)` +#, fuzzy msgid "" "§0 is a proof that §1.\n" "\n" @@ -2450,6 +2591,7 @@ msgstr "" "例えば、減算は結合法則を満たさないため、§5 は §6 と等しくありません。" #: Game.Levels.Multiplication.L09mul_assoc +#, fuzzy msgid "" "We now have enough to prove that multiplication is associative,\n" "the boss level of multiplication world. Good luck!" @@ -2460,6 +2602,7 @@ msgstr "乗算が結合的であることを証明するための準備は整い #. §1: $b$ #. §2: $c$ #. §3: $(ab)c = a(bc)$ +#, fuzzy msgid "" "Multiplication is associative.\n" "In other words, for all natural numbers §0, §1 and §2, we have\n" @@ -2470,6 +2613,7 @@ msgstr "" "§3。" #: Game.Levels.Implication +#, fuzzy msgid "Implication World" msgstr "含意ワールド" @@ -2478,6 +2622,7 @@ msgstr "含意ワールド" #. §1: $2+2\\neq 5$ #. §2: $x + y = y + x$ #. §3: $x+1=4 \\implies x=3.$ +#, fuzzy msgid "" "We've proved that §0; in Implication World we'll learn\n" "how to prove §1.\n" @@ -2526,6 +2671,7 @@ msgstr "" #. §21: `x = x` #. §22: `rw` #. §23: `add_zero` +#, fuzzy msgid "" "## Summary\n" "\n" @@ -2576,6 +2722,7 @@ msgstr "" #: Game.Levels.Implication.L01exact #. §0: `exact h1` #, fuzzy +#, fuzzy msgid "" "The goal in this level is one of our hypotheses. Solve the goal by " "executing §0." @@ -2585,11 +2732,13 @@ msgstr "このレベルの目標は、当方の仮説の一つです。目標を #. §0: $x+y=37$ #. §1: $3x+z=42$ #. §2: $x+y=37$ +#, fuzzy msgid "Assuming §0 and §1, we have §2." msgstr "前提として§0および§1を仮定します。その結果、§2が導き出されます。" #: Game.Levels.Implication.L01exact Game.Levels.LessOrEqual.L01le_refl #. §0: `exact` +#, fuzzy msgid "The §0 tactic" msgstr "§0 タクティク" @@ -2599,6 +2748,7 @@ msgstr "§0 タクティク" #. §2: $Q$ #. §3: `exact` #. §4: `exact h` +#, fuzzy msgid "" "In this world we'll learn how to prove theorems of the form §0.\n" "In other words, how to prove theorems of the form \"if §1 is true, then §2 " @@ -2617,6 +2767,7 @@ msgstr "" #: Game.Levels.Implication.L02exact2 #. §0: `rw [zero_add] at «{h}»` #. §1: `«{h}»` +#, fuzzy msgid "" "You can use §0 to rewrite at §1 instead\n" "of at the goal." @@ -2627,6 +2778,7 @@ msgstr "§0 を使用して、目標ではなく §1 を書き換えることが #. repeat rw [zero_add] at h #. exact h #. ``` +#, fuzzy msgid "" "Here's a two-line proof:\n" "§0" @@ -2640,6 +2792,7 @@ msgstr "" #. §2: `«{x}»` #. §3: `0 + «{x}»` #. §4: `0 + «{y}»` +#, fuzzy msgid "" "Do that again!\n" "\n" @@ -2652,6 +2805,7 @@ msgstr "" "§0は、§1の引数を埋める(§2を見つけます)ことを試みます。その後、見つかったすべての§3を置換します。したがって、§4はまだ書き換えられていません。" #: Game.Levels.Implication.L02exact2 +#, fuzzy msgid "" "If the goal is not *exactly* a hypothesis, we can sometimes\n" "use rewrites to fix things up." @@ -2660,11 +2814,13 @@ msgstr "目標が *厳密な* 仮説ではない場合、書き換えを利用 #: Game.Levels.Implication.L02exact2 #. §0: $0+x=(0+y)+2$ #. §1: $x=y+2$ +#, fuzzy msgid "Assuming §0, we have §1." msgstr "前提として§0を仮定するならば、§1は成立します。" #: Game.Levels.Implication.L02exact2 #. §0: `exact` +#, fuzzy msgid "§0 practice." msgstr "§0 演習。" @@ -2672,6 +2828,7 @@ msgstr "§0 演習。" #. §0: `rw [«{h}»]` #. §1: `rfl` #. §2: `exact «{h}»` +#, fuzzy msgid "" "Now you could finish with §0 then §1, but §2\n" "does it in one line." @@ -2679,6 +2836,7 @@ msgstr "現在、§0 と §1 で処理を終えることができますが、§2 #: Game.Levels.Implication.L03apply #. §0: `apply` +#, fuzzy msgid "The §0 tactic." msgstr "§0 タクティク" @@ -2688,6 +2846,7 @@ msgstr "§0 タクティク" #. §2: `y = 42` #. §3: `apply` #. §4: `apply` +#, fuzzy msgid "" "In this level, the hypothesis §0 is an *implication*. It says\n" "that *if* §1 *then* §2. We can use this\n" @@ -2701,6 +2860,7 @@ msgstr "" #: Game.Levels.Implication.L03apply #. §0: `exact` +#, fuzzy msgid "Now finish using the §0 tactic." msgstr "次に、§0 タクティクを使って処理を完了してください。" @@ -2708,6 +2868,7 @@ msgstr "次に、§0 タクティクを使って処理を完了してくださ #. §0: `apply h2 at h1` #. §1: `h1` #. §2: `y = 42` +#, fuzzy msgid "Start with §0. This will change §1 to §2." msgstr "§0から開始します。これにより、§1は§2に変わります。" @@ -2715,6 +2876,7 @@ msgstr "§0から開始します。これにより、§1は§2に変わります #. §0: $x=37$ #. §1: $x=37\\implies y=42$ #. §2: $y=42$ +#, fuzzy msgid "If §0 and we know that §1 then we can deduce §2." msgstr "§0が真であることと、§1について知っていれば、§2を導き出すことができます。" @@ -2747,6 +2909,7 @@ msgstr "§0が真であることと、§1について知っていれば、§2を #. §25: `a * b = 7` #. §26: `apply succ_inj` #. §27: `succ (a * b) = succ 7` +#, fuzzy msgid "" "## Summary\n" "\n" @@ -2808,6 +2971,7 @@ msgstr "" #. §12: $\\forall a, b \\in \\mathbb{N}, ( \\operatorname{succ}(a) = \\operatorname{succ}(b)) \\implies a=b$ #. §13: `succ_inj` #. §14: `pred` +#, fuzzy msgid "" "# Statement\n" "\n" @@ -2855,6 +3019,7 @@ msgstr "" #. §3: `succ a = succ b` #. §4: `a = b` #. §5: $x+1=4 \\implies x=3$ +#, fuzzy msgid "" "If §0 and §1 are numbers, then §2 is a proof\n" "that §3 implies §4. Click on this theorem in the *Peano*\n" @@ -2880,10 +3045,12 @@ msgstr "" #: Game.Levels.LessOrEqual.L09succ_le_succ #. §0: $x+1=4$ #. §1: $x=3$ +#, fuzzy msgid "If §0 then §1." msgstr "§0 ならば、§1。" #: Game.Levels.Implication.L04succ_inj +#, fuzzy msgid "In the next level, we'll do the same proof but backwards." msgstr "次のレベルでは、同様の手続きを用いて、証明を逆方向に展開します。" @@ -2892,6 +3059,7 @@ msgstr "次のレベルでは、同様の手続きを用いて、証明を逆方 #. §1: `succ x = succ 3` #. §2: `succ_inj` #. §3: `rw [four_eq_succ_three] at h` +#, fuzzy msgid "" "Let's first get §0 into the form §1 so we can\n" "apply §2. First execute §3\n" @@ -2903,6 +3071,7 @@ msgstr "" #: Game.Levels.Implication.L04succ_inj #. §0: `succ_eq_add_one` #. §1: `h` +#, fuzzy msgid "" "Now rewrite §0 backwards at §1\n" "to get the right hand side." @@ -2913,6 +3082,7 @@ msgstr "§1 を §0 で逆順に書き換えて、右辺を得ます。" #. §1: `apply succ_inj at h` #. §2: `h` #. §3: `x = 3` +#, fuzzy msgid "" "Now let's §0 our new theorem. Execute §1\n" "to change §2 to a proof of §3." @@ -2920,6 +3090,7 @@ msgstr "それでは、新しい定理を §0 しましょう。§1 を実行す #: Game.Levels.Implication.L04succ_inj #. §0: `rw [← succ_eq_add_one] at h` +#, fuzzy msgid "Concretely: §0." msgstr "具体的に:§0。" @@ -2929,6 +3100,7 @@ msgstr "具体的に:§0。" #. §2: `rw` #. §3: `←` #. §4: `\\l` +#, fuzzy msgid "" "You can put a §0 in front of any theorem provided to §1 to rewrite\n" "the other way around. Look at the docs for §2 for an explanation. Type §3 " @@ -2938,15 +3110,18 @@ msgstr "" "のドキュメントをご参照ください。「§4」と入力し、その後「§3」を入力してください。" #: Game.Levels.Implication.L04succ_inj +#, fuzzy msgid "succ_inj : the successor function is injective" msgstr "succ_inj : 後者関数は単射" #: Game.Levels.Implication.L04succ_inj +#, fuzzy msgid "Now finish in one line." msgstr "一行で証明を完結させます。" #: Game.Levels.Implication.L04succ_inj #. §0: `exact h` +#, fuzzy msgid "" "And now we've deduced what we wanted to prove: the goal is one of our " "assumptions.\n" @@ -2956,11 +3131,13 @@ msgstr "" "レベルを完了するには、§0 を使用してください。" #: Game.Levels.Implication.L05succ_inj2 +#, fuzzy msgid "Arguing backwards" msgstr "推論を逆方向に進める" #: Game.Levels.Implication.L05succ_inj2 #. §0: `four_eq_succ_three` +#, fuzzy msgid "" "Now rewrite §0 backwards to make the goal\n" "equal to the hypothesis." @@ -2970,6 +3147,7 @@ msgstr "§0 を逆順に書き換えることで、目標と仮定を等価に #. §0: `x + 1 = 4` #. §1: `x = 3` #. §2: `apply` +#, fuzzy msgid "" "In the last level, we manipulated the hypothesis §0\n" " until it became the goal §1. In this level we'll manipulate\n" @@ -2985,6 +3163,7 @@ msgstr "" #. §0: `apply t at h` #. §1: `apply t` #. §2: `apply` +#, fuzzy msgid "" "Many people find §0 easy, but some find §1 confusing.\n" "If you find it confusing, then just argue forwards.\n" @@ -3002,12 +3181,14 @@ msgstr "" #: Game.Levels.Implication.L05succ_inj2 #. §0: `exact h` +#, fuzzy msgid "You can now finish with §0." msgstr "これで §0 の部分を完了してください。" #: Game.Levels.Implication.L05succ_inj2 #. §0: `apply succ_inj` #. §1: `succ_inj` +#, fuzzy msgid "Start with §0 to apply §1 to the *goal*." msgstr "*目標*に §1 を適用するために、まず §0 を使用してください。" @@ -3016,6 +3197,7 @@ msgstr "*目標*に §1 を適用するために、まず §0 を使用してく #. §1: $Q$ #. §2: $P$ #. §3: `rw [succ_eq_add_one]` +#, fuzzy msgid "" "Applying a proof of §0 to the *goal* changes §1 to §2.\n" "Now try §3 to make the goal more like the hypothesis." @@ -3025,6 +3207,7 @@ msgstr "" # no-translate #: Game.Levels.Implication.L06intro +#, fuzzy msgid "intro" msgstr "intro" @@ -3042,6 +3225,7 @@ msgstr "intro" #. §10: $x+1=y+1$ #. §11: `h` #. §12: $x=y$ +#, fuzzy msgid "" "## Summary\n" "\n" @@ -3066,12 +3250,14 @@ msgstr "" #: Game.Levels.Implication.L06intro #. §0: `exact h` +#, fuzzy msgid "Now §0 finishes the job." msgstr "これで §0 が目的を達成します。" #: Game.Levels.Implication.L06intro #. §0: `intro h` #. §1: `h` +#, fuzzy msgid "Start with §0 to assume the hypothesis and call its proof §1." msgstr "§0 を使用して仮定を§1とし、開始します。" @@ -3082,6 +3268,7 @@ msgstr "§0 を使用して仮定を§1とし、開始します。" #. §3: `P` #. §4: `Q` #. §5: `intro` +#, fuzzy msgid "" "We have seen how to §0 theorems and assumptions\n" "of the form §1. But what if our *goal* is of the form §2?\n" @@ -3097,11 +3284,13 @@ msgstr "" #: Game.Levels.Implication.L07intro2 #. §0: `apply succ_inj at h` #. §1: `succ` +#, fuzzy msgid "Now §0 to cancel the §1s." msgstr "`§0` を使用して `§1` を消去します。" #: Game.Levels.Implication.L07intro2 #. §0: $x+1=y+1\\implies x=y$ +#, fuzzy msgid "" "Let's see if you can use the tactics we've learnt to prove §0.\n" "Try this one by yourself; if you need help then click on \"Show more " @@ -3111,6 +3300,7 @@ msgstr "" "ご自身で試すことをお勧めします。もしお手伝いが必要な場合は、「より多くのヘルプを表示!」をクリックしてください。" #: Game.Levels.Implication.L07intro2 +#, fuzzy msgid "intro practice" msgstr "intro 演習" @@ -3121,6 +3311,7 @@ msgstr "intro 演習" #. repeat rw [succ_eq_add_one] #. exact h #. ``` +#, fuzzy msgid "" "Here's a completely backwards proof:\n" "§0" @@ -3130,6 +3321,7 @@ msgstr "" #: Game.Levels.Implication.L07intro2 #. §0: `intro h` +#, fuzzy msgid "Start with §0 to assume the hypothesis." msgstr "まず、 §0 を使用して仮説を提示します。" @@ -3137,6 +3329,7 @@ msgstr "まず、 §0 を使用して仮説を提示します。" #. §0: `repeat rw [← succ_eq_add_one] at h` #. §1: `h` #. §2: `succ x = succ y` +#, fuzzy msgid "" "Now §0 is the quickest way to\n" "change §1 to §2." @@ -3146,18 +3339,21 @@ msgstr "現在、§0 は §1 を §2 に変更するための最も効率的な #. §0: `rw [h]` #. §1: `rfl` #. §2: `exact h` +#, fuzzy msgid "Now §0 then §1 works, but §2 is quicker." msgstr "現在、§0 および §1 は正しく機能しますが、§2 の方が高速です。" #: Game.Levels.Implication.L08ne #. §0: `x ≠ y` #. §1: `x = y → False` +#, fuzzy msgid "Remember, §0 is *notation* for §1." msgstr "覚えておいてください。§0 は §1 の *表記* です。" #: Game.Levels.Implication.L08ne #. §0: $x=y$ #. §1: $x \\neq y$ +#, fuzzy msgid "If §0 and §1 then we can deduce a contradiction." msgstr "もし §0 が真であり、かつ §1 も真であるならば、矛盾を導き出すことができます。" @@ -3178,6 +3374,7 @@ msgstr "もし §0 が真であり、かつ §1 も真であるならば、矛 #. §13: `apply h at h1` #. §14: `h1` #. §15: `a = b` +#, fuzzy msgid "" "§0 is *notation* for §1.\n" "\n" @@ -3207,6 +3404,7 @@ msgstr "" #. §3: `h2` #. §4: `at h1` #, fuzzy +#, fuzzy msgid "" "Remember that §0 is a proof of §1. Try\n" "§2ing §3 either §4 or directly to the goal." @@ -3216,6 +3414,7 @@ msgstr "" # no-translate #: Game.Levels.Implication.L08ne +#, fuzzy msgid "≠" msgstr "≠" @@ -3233,6 +3432,7 @@ msgstr "≠" #. §10: `a ≠ b` #. §11: `False` #. §12: `False` +#, fuzzy msgid "" "We still can't prove §0 because we have not talked about the\n" "definition of §1. In Lean, §2 is *notation* for §3.\n" @@ -3260,6 +3460,7 @@ msgstr "" #: Game.Levels.Implication.L09zero_ne_succ #: Game.Levels.AdvMultiplication.L06mul_right_eq_one #. §0: `apply zero_ne_succ at h` +#, fuzzy msgid "Now you can §0." msgstr "§0 を使用できます。" @@ -3268,6 +3469,7 @@ msgstr "§0 を使用できます。" #. §1: `0 ≠ 1` #. §2: `zero_ne_succ n` #. §3: `0 ≠ succ n` +#, fuzzy msgid "" "As warm-up for §0 let's prove §1. To do this we need to\n" "introduce Peano's last axiom §2, a proof that §3.\n" @@ -3278,6 +3480,7 @@ msgstr "" # no-translate #: Game.Levels.Implication.L09zero_ne_succ +#, fuzzy msgid "zero_ne_succ" msgstr "zero_ne_succ" @@ -3285,6 +3488,7 @@ msgstr "zero_ne_succ" #. §0: `1` #. §1: `succ 0` #. §2: `h` +#, fuzzy msgid "Now change §0 to §1 in §2." msgstr "§2 の §0 を §1 に変更してください。" @@ -3299,6 +3503,7 @@ msgstr "§2 の §0 を §1 に変更してください。" #. §7: `apply zero_ne_succ at h` #. §8: `h` #. §9: `0 = succ n` +#, fuzzy msgid "" "§0 is the proof that §1.\n" "\n" @@ -3314,6 +3519,7 @@ msgstr "" #: Game.Levels.Implication.L09zero_ne_succ #: Game.Levels.AdvAddition.L01add_right_cancel +#, fuzzy msgid "Nice!" msgstr "素晴らしい!" @@ -3322,6 +3528,7 @@ msgstr "素晴らしい!" #: Game.Levels.AdvMultiplication.L02mul_left_ne_zero #: Game.Levels.AdvMultiplication.L08mul_eq_zero #. §0: `intro h` +#, fuzzy msgid "Start with §0." msgstr "§0 から開始してください。" @@ -3338,6 +3545,7 @@ msgstr "§0 から開始してください。" #. §9: `symm at h` #. §10: `h` #. §11: `5 ≠ 2 + 2` +#, fuzzy msgid "" "## Summary\n" "\n" @@ -3367,6 +3575,7 @@ msgstr "" # no-translate #: Game.Levels.Implication.L10one_ne_zero +#, fuzzy msgid "1 ≠ 0" msgstr "1 ≠ 0" @@ -3384,6 +3593,7 @@ msgstr "1 ≠ 0" #. §10: $0 \\neq 1$ #. §11: `zero_ne_one` #. §12: $1 \\neq 0$ +#, fuzzy msgid "" "We know §0 is a proof of §1 -- but what\n" "if we have a hypothesis §2? It's the wrong way around!\n" @@ -3405,6 +3615,7 @@ msgstr "" #. exact zero_ne_one #. ``` #. §1: `exact` +#, fuzzy msgid "" "What do you think of this two-liner:\n" "§0\n" @@ -3419,12 +3630,14 @@ msgstr "" # no-translate #: Game.Levels.Implication.L11two_add_two_ne_five +#, fuzzy msgid "2 + 2 ≠ 5" msgstr "2 + 2 ≠ 5" #: Game.Levels.Implication.L11two_add_two_ne_five #. §0: `zero_ne_succ` #. §1: `succ_inj` +#, fuzzy msgid "" "2 + 2 ≠ 5 is boring to prove in full, given only the tools we have " "currently.\n" @@ -3444,6 +3657,7 @@ msgstr "" #. exact h #. ``` #. §1: $20 + 20 ≠ 41$ +#, fuzzy msgid "" "Here's my proof:\n" "§0\n" @@ -3474,6 +3688,7 @@ msgstr "" #. §3: `37 ^ d` #. §4: `pow_zero (a : ℕ) : a ^ 0 = 1` #. §5: `pow_succ (a b : ℕ) : a ^ succ b = a ^ b * a` +#, fuzzy msgid "" "This world introduces exponentiation. If you want to define §0\n" "then, as always, you will need to know what §1 is, and\n" @@ -3506,16 +3721,19 @@ msgstr "" "Collegeの助成にも感謝します。" #: Game.Levels.Power +#, fuzzy msgid "Power World" msgstr "冪乗ワールド" # no-translate #: Game.Levels.Power.L01zero_pow_zero +#, fuzzy msgid "zero_pow_zero" msgstr "zero_pow_zero" #: Game.Levels.Power.L01zero_pow_zero #. §0: `pow_zero a : a ^ 0 = 1` +#, fuzzy msgid "" "§0 is one of the two axioms\n" "defining exponentiation in this game." @@ -3524,6 +3742,7 @@ msgstr "§0は、このゲームにおける指数関数の定義を定める公 #: Game.Levels.Power.L01zero_pow_zero #. §0: `0 ^ 0` #. §1: `0 ^ 0 = 1` +#, fuzzy msgid "" "Mathematicians sometimes debate what §0 is;\n" "the answer depends, of course, on your definitions. In this\n" @@ -3543,6 +3762,7 @@ msgstr "" #. §2: `pow_zero a : a ^ 0 = 1` #. §3: `pow_succ a b : a ^ succ b = a ^ b * a` #. §4: `0 ^ 0 = 1` +#, fuzzy msgid "" "§0, with notation §1, is the usual\n" " exponentiation of natural numbers. Internally it is\n" @@ -3565,6 +3785,7 @@ msgstr "" #: Game.Levels.Power.L01zero_pow_zero #. §0: `0 ^ 0 = 0` #. §1: `0 ^ 0 = 1` +#, fuzzy msgid "" "Mathematicians sometimes argue that §0 is also\n" "a good convention. But it is not a good convention in this\n" @@ -3577,6 +3798,7 @@ msgstr "" #: Game.Levels.Power.L02zero_pow_succ #. §0: $m$ #. §1: $0 ^{\\operatorname{succ} (m)} = 0$ +#, fuzzy msgid "For all numbers §0, §1." msgstr "すべての数 §0 について、 §1 。" @@ -3585,6 +3807,7 @@ msgstr "すべての数 §0 について、 §1 。" #. §1: $0^n=0$ #. §2: $n>0$ #. §3: $n$ +#, fuzzy msgid "" "Although §0 in this game, §1 if §2, i.e., if\n" "§3 is a successor." @@ -3594,6 +3817,7 @@ msgstr "このゲームでは、§0 が成立し、かつ §1 が §2 となる #. §0: `0 ^ 0 = 1` #. §1: `n` #. §2: `0 ^ n = 0` +#, fuzzy msgid "" "We've just seen that §0, but if §1\n" "is a successor, then §2. We prove that here." @@ -3601,6 +3825,7 @@ msgstr "これまでに §0 について説明しました。しかし、もし #: Game.Levels.Power.L02zero_pow_succ #. §0: `pow_succ a b : a ^ (succ b) = a ^ b * a` +#, fuzzy msgid "" "§0 is one of the\n" "two axioms defining exponentiation in this game." @@ -3608,6 +3833,7 @@ msgstr "§0は、このゲームにおける指数関数の定義を定める2 # no-translate #: Game.Levels.Power.L02zero_pow_succ +#, fuzzy msgid "zero_pow_succ" msgstr "zero_pow_succ" @@ -3615,6 +3841,7 @@ msgstr "zero_pow_succ" #: Game.Levels.Power.L05pow_two #. §0: $a$ #. §1: $a ^ 1 = a$ +#, fuzzy msgid "For all naturals §0, §1." msgstr "全ての自然数 §0 について、 §1 。" @@ -3625,6 +3852,7 @@ msgstr "全ての自然数 §0 について、 §1 。" #. §3: `a ^ 0 * a` #. §4: `1 * a` #. §5: `a` +#, fuzzy msgid "" "§0 says that §1.\n" "\n" @@ -3639,31 +3867,37 @@ msgstr "" # no-translate #: Game.Levels.Power.L03pow_one +#, fuzzy msgid "pow_one" msgstr "pow_one" # no-translate #: Game.Levels.Power.L04one_pow +#, fuzzy msgid "one_pow" msgstr "one_pow" #: Game.Levels.Power.L05pow_two +#, fuzzy msgid "Note: this lemma will be useful for the final boss!" msgstr "この定理は、最終ボスとの戦闘において役立ちます。" #: Game.Levels.Power.L05pow_two #. §0: `pow_two a` #. §1: `a ^ 2 = a * a` +#, fuzzy msgid "§0 says that §1." msgstr "§0 は、§1 を述べています。" # no-translate #: Game.Levels.Power.L05pow_two +#, fuzzy msgid "pow_two" msgstr "pow_two" # no-translate #: Game.Levels.Power.L06pow_add +#, fuzzy msgid "pow_add" msgstr "pow_add" @@ -3673,10 +3907,12 @@ msgstr "pow_add" #. §1: $m$ #. §2: $n$ #. §3: $a^{m + n} = a ^ m a ^ n$ +#, fuzzy msgid "For all naturals §0, §1, §2, we have §3." msgstr "すべての自然数 §0, §1, §2 に対して、 §3 が成り立ちます。" #: Game.Levels.Power.L06pow_add +#, fuzzy msgid "" "Let's now begin our approach to the final boss,\n" "by proving some more subtle facts about powers." @@ -3686,11 +3922,13 @@ msgstr "それでは、最終ボスの攻略に向けて、さらに詳細な冪 #: Game.Levels.Power.L08pow_pow #. §0: `pow_add a m n` #. §1: $a^{m+n}=a^ma^n.$ +#, fuzzy msgid "§0 is a proof that §1" msgstr "§0 は §1 の証明を示すものです。" # no-translate #: Game.Levels.Power.L07mul_pow +#, fuzzy msgid "mul_pow" msgstr "mul_pow" @@ -3698,6 +3936,7 @@ msgstr "mul_pow" #. §0: `a * b` #. §1: `rw [mul_comm]` #. §2: `rw` +#, fuzzy msgid "" "The music gets ever more dramatic, as we explore\n" "the interplay between exponentiation and multiplication.\n" @@ -3713,6 +3952,7 @@ msgstr "" #: Game.Levels.Power.L08pow_pow #. §0: `pow_pow` +#, fuzzy msgid "" "One of the best named levels in the game, a savage §0\n" "sub-boss appears as the music reaches a frenzy. What\n" @@ -3723,10 +3963,12 @@ msgstr "" # no-translate #: Game.Levels.Power.L08pow_pow +#, fuzzy msgid "pow_pow" msgstr "pow_pow" #: Game.Levels.Power.L08pow_pow +#, fuzzy msgid "" "The music dies down. Is that it?\n" "\n" @@ -3749,11 +3991,13 @@ msgstr "" #: Game.Levels.Power.L09add_sq #. §0: `add_sq a b` #. §1: $(a+b)^2=a^2+b^2+2ab.$ +#, fuzzy msgid "§0 is the statement that §1" msgstr "§0 は §1 を表す命題です。" #: Game.Levels.Power.L09add_sq #. §0: $(a+b)^2=a^2+b^2$ +#, fuzzy msgid "" "It's all over! You have proved a theorem which has tripped up\n" "schoolkids for generations (some of them think §0:\n" @@ -3775,6 +4019,7 @@ msgstr "" #. §0: $a$ #. §1: $b$ #. §2: $$(a+b)^2=a^2+b^2+2ab.$$ +#, fuzzy msgid "" "For all numbers §0 and §1, we have\n" "§2" @@ -3783,11 +4028,13 @@ msgstr "" "§2" #: Game.Levels.Power.L09add_sq +#, fuzzy msgid "[final boss music]" msgstr "[最終ボス戦のテーマ音楽]" # no-translate #: Game.Levels.Power.L09add_sq +#, fuzzy msgid "add_sq" msgstr "add_sq" @@ -3797,6 +4044,7 @@ msgstr "add_sq" #. §2: $c$ #. §3: $n$ #. §4: $$(a+1)^{n+3}+(b+1)^{n+3}\\not=(c+1)^{n+3}.$$ +#, fuzzy msgid "" "For all naturals §0 §1 §2 and §3, we have\n" "§4" @@ -3811,6 +4059,7 @@ msgstr "すべての自然数 §0, §1, §2, §3 について、§4 が成立し #. §5: `m` #. §6: `x > 0` #. §7: `a + 1` +#, fuzzy msgid "" "We now have enough to state a mathematically accurate, but slightly\n" "clunky, version of Fermat's Last Theorem.\n" @@ -3852,6 +4101,7 @@ msgstr "" "Lean」を参照してください。これはブラウザで読むことができる対話型教科書で、Leanでより多くの数学的概念を扱う方法を説明しています。" #: Game.Levels.Power.L10FLT +#, fuzzy msgid "Fermat's Last Theorem" msgstr "フェルマーの最終定理" @@ -3859,6 +4109,7 @@ msgstr "フェルマーの最終定理" #. §0: `xyzzy` #. §1: `sorry` #. §2: `xyzzy` +#, fuzzy msgid "" "§0 is an ancient magic spell, believed to be the origin of the\n" "modern word §1. The game won't complain - or notice - if you\n" @@ -3868,6 +4119,7 @@ msgstr "" "を用いて何を証明したかに関わらず、問題を示しません。" #: Game.Levels.Power.L10FLT +#, fuzzy msgid "" "Congratulations! You have proved Fermat's Last Theorem!\n" "\n" @@ -3880,6 +4132,7 @@ msgstr "" #: Game.Levels.Algorithm #. §0: $2+2=4$ #. §1: $a+b+c+d+e=e+d+c+b+a$ +#, fuzzy msgid "" "Proofs like §0 and §1 are very tedious to do by hand.\n" "In Algorithm World we learn how to get the computer to do them for us.\n" @@ -3892,17 +4145,20 @@ msgstr "" "「開始」ボタンをクリックして、次のステップに進んでください。" #: Game.Levels.Algorithm +#, fuzzy msgid "Algorithm World" msgstr "アルゴリズムワールド" # no-translate #: Game.Levels.Algorithm.L01add_left_comm +#, fuzzy msgid "add_left_comm" msgstr "add_left_comm" #: Game.Levels.Algorithm.L01add_left_comm #. §0: $a, b, c$ #. §1: $a+(b+c)=b+(a+c)$ +#, fuzzy msgid "If §0 are numbers, then §1." msgstr "もし§0が数値ならば、§1。" @@ -3911,6 +4167,7 @@ msgstr "もし§0が数値ならば、§1。" #. §1: `rw [add_comm b c]` #. §2: `a + b + c` #. §3: `(a + b) + c` +#, fuzzy msgid "" "Having to rearrange variables manually using commutativity and\n" "associativity is very tedious. We start by reminding you of this. §0\n" @@ -3936,6 +4193,7 @@ msgstr "" #. §6: `b` #. §7: `d` #. §8: `add_left_comm` +#, fuzzy msgid "" "In some later worlds, we're going to see some much nastier levels,\n" "like §0.\n" @@ -3959,6 +4217,7 @@ msgstr "" #. §0: `add_comm` #. §1: `b` #. §2: `d` +#, fuzzy msgid "Finally use a targeted §0 to switch §1 and §2." msgstr "最後に、§0 を使用して §1 と §2 を切り替えます。" @@ -3966,21 +4225,25 @@ msgstr "最後に、§0 を使用して §1 と §2 を切り替えます。" #. §0: `rw [add_left_comm b c]` #. §1: `b` #. §2: `c` +#, fuzzy msgid "" "Now use §0 to switch §1 and §2 on the left\n" "hand side." msgstr "§0 を使用して左側の §1 と §2 の位置を入れ替えます。" #: Game.Levels.Algorithm.L02add_algo1 +#, fuzzy msgid "making life easier" msgstr "生活をより簡単に" #: Game.Levels.Algorithm.L02add_algo1 #. §0: `repeat rw [add_assoc]` +#, fuzzy msgid "Start with §0 to push all the brackets to the right." msgstr "開始時に §0 を使用し、すべての括弧を右側に移動させます。" #: Game.Levels.Algorithm.L02add_algo1 +#, fuzzy msgid "" "So that's the algorithm: now let's use automation to perform it\n" "automatically." @@ -3991,6 +4254,7 @@ msgstr "したがって、このアルゴリズムを使用します。次に、 #. §1: $c$ #. §2: $d$ #. §3: $(a + b) + (c + d) = ((a + c) + d) + b.$ +#, fuzzy msgid "" "If §0, §1 and §2 are numbers, we have\n" "§3" @@ -3999,12 +4263,14 @@ msgstr "" "§3" #: Game.Levels.Algorithm.L03add_algo2 +#, fuzzy msgid "making life simple" msgstr "よりシンプルな生活を実現する" #: Game.Levels.Algorithm.L03add_algo2 Game.Levels.Algorithm.L04add_algo3 #. §0: $a, b,\\ldots h$ #. §1: $(d + f) + (h + (a + c)) + (g + e + b) = a + b + c + d + e + f + g + h$ +#, fuzzy msgid "" "If §0 are arbitrary natural numbers, we have\n" "§1." @@ -4013,6 +4279,7 @@ msgstr "" "§1。" #: Game.Levels.Algorithm.L03add_algo2 +#, fuzzy msgid "Let's now make our own tactic to do this." msgstr "それでは、独自のタクティクを作成して、この機能を実装してみましょう。" @@ -4020,6 +4287,7 @@ msgstr "それでは、独自のタクティクを作成して、この機能を #. §0: `simp` #. §1: `simp` #. §2: `add_comm` +#, fuzzy msgid "" "# Overview\n" "\n" @@ -4038,6 +4306,7 @@ msgstr "" #. §0: `simp` #. §1: `rw` #. §2: `simp` +#, fuzzy msgid "" "Lean's simplifier, §0, is \"§1 on steroids\". It will rewrite every lemma\n" "tagged with §2 and every lemma fed to it by the user, as much as it can.\n" @@ -4053,6 +4322,7 @@ msgstr "" #: Game.Levels.Algorithm.L03add_algo2 #. §0: `simp only [add_left_comm, add_comm]` +#, fuzzy msgid "Solve this level in one line with §0" msgstr "このレベルを、1行で解決してください:§0" @@ -4064,6 +4334,7 @@ msgstr "このレベルを、1行で解決してください:§0" #. §1: `simp_add` #. §2: `simp only [add_assoc, add_left_comm, add_comm]` #. §3: `simp_add` +#, fuzzy msgid "" "You can make your own tactics in Lean.\n" "This code here\n" @@ -4081,6 +4352,7 @@ msgstr "" #: Game.Levels.Algorithm.L04add_algo3 #. §0: `simp_add` #. §1: `a + (b + c) + (d + e) = e + (d + (c + b)) + a` +#, fuzzy msgid "" "# Overview\n" "\n" @@ -4093,22 +4365,26 @@ msgstr "" #: Game.Levels.Algorithm.L04add_algo3 #. §0: `20 + 20 = 40` +#, fuzzy msgid "" "Let's now move on to a more efficient approach to questions\n" "involving numerals, such as §0." msgstr "数値に関連する問題を扱う場合、例えば§0に対して、より効率的なアプローチを検討しましょう。" #: Game.Levels.Algorithm.L04add_algo3 +#, fuzzy msgid "the simplest approach" msgstr "最もシンプルなアプローチ" # no-translate #: Game.Levels.Algorithm.L05pred +#, fuzzy msgid "pred" msgstr "pred" #: Game.Levels.Algorithm.L05pred #. §0: `rw [← pred_succ a]` +#, fuzzy msgid "Start with §0 and take it from there." msgstr "開始にあたり、§0から始め、それに基づいて進んでください。" @@ -4122,6 +4398,7 @@ msgstr "開始にあたり、§0から始め、それに基づいて進んでく #. §3: `pred_succ` #. §4: `pred (succ n) = n` #. §5: `succ_inj` +#, fuzzy msgid "" "We now start work on an algorithm to do addition more efficiently. Recall " "that\n" @@ -4154,6 +4431,7 @@ msgstr "" #: Game.Levels.Algorithm.L05pred #. §0: `succ_inj` #. §1: $0$ +#, fuzzy msgid "" "Nice! You've proved §0!\n" "Let's now prove Peano's other axiom, that successors can't be §1." @@ -4166,12 +4444,14 @@ msgstr "" #. §1: `True` #. §2: `is_zero (succ a)` #. §3: `rw [← is_zero_succ a]` +#, fuzzy msgid "" "We're going to change that §0 into §1. Start by changing it into\n" "§2 by executing §3." msgstr "§0 を §1 に変更します。まず、§3 を実行して §0 を §2 に変更します。" #: Game.Levels.Algorithm.L06is_zero +#, fuzzy msgid "" "See if you can take it from here. Look at the new lemmas and tactic\n" "available on the right." @@ -4180,6 +4460,7 @@ msgstr "右側に表示された、新たに定義された補題とタクティ #: Game.Levels.Algorithm.L06is_zero #. §0: `trivial` #. §1: `True` +#, fuzzy msgid "" "# Summary\n" "\n" @@ -4193,6 +4474,7 @@ msgstr "" #. §0: `intro h` #. §1: `X ≠ Y` #. §2: `X = Y → False` +#, fuzzy msgid "" "Start with §0 (remembering that §1 is just notation\n" "for §2)." @@ -4200,6 +4482,7 @@ msgstr "§0 から開始してください(§1 が §2 の表記法である # no-translate #: Game.Levels.Algorithm.L06is_zero +#, fuzzy msgid "is_zero" msgstr "is_zero" @@ -4218,6 +4501,7 @@ msgstr "is_zero" #. §8: `zero_ne_succ` #. §9: `True` #. §10: `trivial` +#, fuzzy msgid "" "We define a function §0 thus:\n" "\n" @@ -4271,6 +4555,7 @@ msgstr "" #. §23: `rfl` #. §24: `a ≠ b` #. §25: `succ a ≠ succ b` +#, fuzzy msgid "" "Here we begin to\n" "develop an algorithm which, given two naturals §0 and §1, returns the " @@ -4307,6 +4592,7 @@ msgstr "" #: Game.Levels.Algorithm.L07succ_ne_succ #. §0: `contrapose! h` +#, fuzzy msgid "" "Can you take it from here? (note: if you try §0 again, it will\n" "take you back to where you started!)" @@ -4316,6 +4602,7 @@ msgstr "引き続き作業を進められますでしょうか?(注:§0を #. §0: `contrapose! h` #. §1: `succ m = succ n` #. §2: `m = n` +#, fuzzy msgid "" "Start with §0, to change the goal into its\n" "contrapositive, namely a hypothesis of §1 and a goal of §2." @@ -4327,6 +4614,7 @@ msgstr "開始にあたっては、§0 を出発点とし、目標をその対 #. §2: `contrapose! h` #. §3: `h : c = d` #. §4: `a = b` +#, fuzzy msgid "" "# Summary\n" "\n" @@ -4369,16 +4657,19 @@ msgstr "" "です。" #: Game.Levels.Algorithm.L07succ_ne_succ +#, fuzzy msgid "An algorithm for equality" msgstr "等価性を扱うためのアルゴリズム" # no-translate #: Game.Levels.Algorithm.L08decide +#, fuzzy msgid "decide" msgstr "decide" #: Game.Levels.Algorithm.L08decide #. §0: `decide` +#, fuzzy msgid "" "You can read more about the §0 tactic by clicking\n" "on it in the top right." @@ -4391,6 +4682,7 @@ msgstr "§0 タクティクの詳細については、右上のリンクから #. §3: `decide` #. §4: `a = b` #. §5: `a ≠ b` +#, fuzzy msgid "" "# Summary\n" "\n" @@ -4435,6 +4727,7 @@ msgstr "" #. exact succ_ne_succ m n h #. ``` #. §1: `decide` +#, fuzzy msgid "" "Implementing the algorithm for equality of naturals, and the proof that it " "is correct,\n" @@ -4455,6 +4748,7 @@ msgstr "" "ゴリズムが形式的に正確であることを保証しているため、Leanの証明内で使用できます。「§1」タクティクを使用してアルゴリズムを実行できます。" #: Game.Levels.Algorithm.L09decide2 +#, fuzzy msgid "" "Congratulations! You've finished Algorithm World. These algorithms\n" "will be helpful for you in Even-Odd World (when someone gets around to\n" @@ -4466,6 +4760,7 @@ msgstr "" #: Game.Levels.Algorithm.L09decide2 #. §0: `2 + 2 ≠ 5` +#, fuzzy msgid "" "We gave a pretty unsatisfactory proof of §0 earlier on; now give a nicer " "one." @@ -4473,16 +4768,19 @@ msgstr "これまでの§0の証明は不完全であり、より適切な証明 # decideはタクティク名なのでそのまま #: Game.Levels.Algorithm.L09decide2 +#, fuzzy msgid "decide again" msgstr "もう一度 decide" #: Game.Levels.AdvAddition +#, fuzzy msgid "Advanced Addition World" msgstr "高度な加算ワールド" #: Game.Levels.AdvAddition #. §0: $x+y=x\\implies y=0$ #. §1: `≤` +#, fuzzy msgid "" "In Advanced Addition World we will prove some basic\n" "addition facts such as §0. The theorems\n" @@ -4498,17 +4796,20 @@ msgstr "" # no-translate #: Game.Levels.AdvAddition.L01add_right_cancel +#, fuzzy msgid "add_right_cancel" msgstr "add_right_cancel" #: Game.Levels.AdvAddition.L01add_right_cancel #. §0: `n` +#, fuzzy msgid "Start with induction on §0." msgstr "§0 に対する帰納法から始めてください。" #: Game.Levels.AdvAddition.L01add_right_cancel #. §0: `add_right_cancel a b n` #. §1: $a+n=b+n\\implies a=b$ +#, fuzzy msgid "" "In this world I will mostly leave you on your own.\n" "\n" @@ -4524,11 +4825,13 @@ msgstr "" #: Game.Levels.AdvAddition.L04add_right_eq_self #. §0: `add_right_cancel a b n` #. §1: $a+n=b+n \\implies a=b.$ +#, fuzzy msgid "§0 is the theorem that §1" msgstr "§0は§1の定理です。" # no-translate #: Game.Levels.AdvAddition.L02add_left_cancel +#, fuzzy msgid "add_left_cancel" msgstr "add_left_cancel" @@ -4537,6 +4840,7 @@ msgstr "add_left_cancel" #. §1: $n+a=n+b\\implies a=b$ #. §2: `n` #. §3: `add_right_cancel` +#, fuzzy msgid "" "§0 is the theorem that §1.\n" "You can prove it by induction on §2 or you can deduce it from §3." @@ -4549,6 +4853,7 @@ msgstr "" #. repeat rw [add_comm n] #. exact add_right_cancel a b n #. ``` +#, fuzzy msgid "" "How about this for a proof:\n" "§0" @@ -4558,6 +4863,7 @@ msgstr "" # no-translate #: Game.Levels.AdvAddition.L03add_left_eq_self +#, fuzzy msgid "add_left_eq_self" msgstr "add_left_eq_self" @@ -4571,6 +4877,7 @@ msgstr "add_left_eq_self" #. nth_rewrite 2 [← zero_add y] #. exact add_right_cancel x 0 y #. ``` +#, fuzzy msgid "" "Did you use induction on §0?\n" "Here's a two-line proof of §1 which uses §2.\n" @@ -4613,6 +4920,7 @@ msgstr "" #. apply hd at h #. exact h #. ``` +#, fuzzy msgid "" "Here's a proof using §0:\n" "§1\n" @@ -4636,6 +4944,7 @@ msgstr "" #: Game.Levels.AdvAddition.L04add_right_eq_self #. §0: `add_right_eq_self x y` #. §1: $x + y = x\\implies y=0.$ +#, fuzzy msgid "" "§0 is the theorem that §1\n" "Two ways to do it spring to mind; I'll mention them when you've solved it." @@ -4645,6 +4954,7 @@ msgstr "" # no-translate #: Game.Levels.AdvAddition.L04add_right_eq_self +#, fuzzy msgid "add_right_eq_self" msgstr "add_right_eq_self" @@ -4665,6 +4975,7 @@ msgstr "add_right_eq_self" #. §13: `h : False` #. §14: `cases h` #. §15: `False` +#, fuzzy msgid "" "The next result we'll need in §0 World is that if §1 then §2 and §3.\n" "Let's prove one of these facts in this level, and the other in the next.\n" @@ -4706,6 +5017,7 @@ msgstr "" #. §0: `b = 0` #. §1: `b ≠ 0` #. §2: `cases b with d` +#, fuzzy msgid "" "Here we want to deal with the cases §0 and §1 separately,\n" "so start with §2." @@ -4737,6 +5049,7 @@ msgstr "ここでは§0と§1のケースについて個別に検討するため #. §22: `hc : b = a + c` #. §23: `a ≤ b` #. §24: `∃ c, b = a + c` +#, fuzzy msgid "" "## Summary\n" "\n" @@ -4801,19 +5114,23 @@ msgstr "" #: Game.Levels.AdvAddition.L05add_right_eq_zero #: Game.Levels.AdvAddition.L06add_left_eq_zero #. §0: $a+b=0 \\implies a=0$ +#, fuzzy msgid "A proof that §0." msgstr "§0 の証明。" #: Game.Levels.AdvAddition.L05add_right_eq_zero +#, fuzzy msgid "Well done!" msgstr "よくできました!" # no-translate #: Game.Levels.AdvAddition.L05add_right_eq_zero +#, fuzzy msgid "add_right_eq_zero" msgstr "add_right_eq_zero" #: Game.Levels.AdvAddition.L06add_left_eq_zero +#, fuzzy msgid "" "You can just mimic the previous proof to do this one -- or you can figure " "out a way\n" @@ -4824,6 +5141,7 @@ msgstr "" # no-translate #: Game.Levels.AdvAddition.L06add_left_eq_zero +#, fuzzy msgid "add_left_eq_zero" msgstr "add_left_eq_zero" @@ -4833,6 +5151,7 @@ msgstr "add_left_eq_zero" #. exact add_right_eq_zero b a #. ``` #. §1: `≤` +#, fuzzy msgid "" "How about this for a proof:\n" "\n" @@ -4855,6 +5174,7 @@ msgstr "" #. §4: `a ≤ b` #. §5: `c` #. §6: `b = a + c` +#, fuzzy msgid "" "In this world we define §0 and prove standard facts\n" "about it, such as \"if §1 and §2 then §3.\"\n" @@ -4874,10 +5194,12 @@ msgstr "" "\"開始\" をクリックして進みましょう。" #: Game.Levels.LessOrEqual +#, fuzzy msgid "≤ World" msgstr "≤ ワールド" #: Game.Levels.LessOrEqual.L01le_refl +#, fuzzy msgid "You can probably take it from here." msgstr "ここからでも進めることができるでしょう。" @@ -4888,6 +5210,7 @@ msgstr "ここからでも進めることができるでしょう。" #. §3: `use` #. §4: `h : a ≤ b` #. §5: `cases h with c hc` +#, fuzzy msgid "" "§0 is *notation* for §1.\n" "\n" @@ -4908,6 +5231,7 @@ msgstr "" #. §0: `«{x}» ≤ «{x}»` #. §1: `«{x}» = «{x}» + 0` #. §2: `use 0` +#, fuzzy msgid "" "The reason §0 is because §1.\n" "So you should start this proof with §2." @@ -4917,6 +5241,7 @@ msgstr "理由は§0であるため、この命題は正しいと言えます。 #. §0: `le_refl x` #. §1: `x ≤ x` #. §2: $\\le$ +#, fuzzy msgid "" "§0 is a proof of §1.\n" "\n" @@ -4933,6 +5258,7 @@ msgstr "" #. §3: `c` #. §4: `b = a + c` #. §5: `use` +#, fuzzy msgid "" "§0 is *notation* for §1. This \"backwards E\"\n" "means \"there exists\". So §2 means that there exists\n" @@ -4951,6 +5277,7 @@ msgstr "" #: Game.Levels.LessOrEqual.L03le_succ_self #. §0: $x$ #. §1: $x \\le x$ +#, fuzzy msgid "If §0 is a number, then §1." msgstr "もし §0 が数値であるならば、§1 は真となる。" @@ -4971,6 +5298,7 @@ msgstr "もし §0 が数値であるならば、§1 は真となる。" #. §13: `use a` #. §14: `use a * a + 1` #, fuzzy +#, fuzzy msgid "" "## Summary\n" "\n" @@ -5007,11 +5335,13 @@ msgstr "" #. §0: `use` #. §1: `c` #. §2: `x = 0 + c` +#, fuzzy msgid "To solve this level, you need to §0 a number §1 such that §2." msgstr "このレベルを解くには、§0 に数値を指定し、§1 とすることで、§2 が成り立つようにする必要があります。" # no-translate #: Game.Levels.LessOrEqual.L02zero_le +#, fuzzy msgid "0 ≤ x" msgstr "0 ≤ x" @@ -5022,6 +5352,7 @@ msgstr "0 ≤ x" #. ``` #. §1: `succ_eq_add_one x` #. §2: `succ x = x + 1` +#, fuzzy msgid "" "Here's a two-liner:\n" "§0\n" @@ -5035,12 +5366,14 @@ msgstr "" # no-translate #: Game.Levels.LessOrEqual.L03le_succ_self +#, fuzzy msgid "x ≤ succ x" msgstr "x ≤ succ x" #: Game.Levels.LessOrEqual.L03le_succ_self #. §0: `use` #. §1: `use` +#, fuzzy msgid "" "If you §0 the wrong number, you get stuck with a goal you can't prove.\n" "What number will you §1 here?" @@ -5051,6 +5384,7 @@ msgstr "" #: Game.Levels.LessOrEqual.L04le_trans #. §0: `cases` #. §1: `hxy` +#, fuzzy msgid "" "In this level, we see inequalities as *hypotheses*. We have not seen this " "before.\n" @@ -5065,6 +5399,7 @@ msgstr "" #. §2: `hxy` #. §3: `«{hyz}»` #. §4: `cases «{hyz}» with b hb` +#, fuzzy msgid "" "Now §0 is a proof that §1, and §2 has vanished. Similarly, you can destruct\n" "§3 into its parts with §4." @@ -5074,11 +5409,13 @@ msgstr "現在、§0 は §1 の証明を示します。また、§2 は消え #. §0: $x \\leq y$ #. §1: $y \\leq z$ #. §2: $x \\leq z$ +#, fuzzy msgid "If §0 and §1, then §2." msgstr "もし §0 かつ §1 が真ならば、§2 は真である。" #: Game.Levels.LessOrEqual.L04le_trans #. §0: `use` +#, fuzzy msgid "" "Now you need to figure out which number to §0. See if you can take it from " "here." @@ -5102,6 +5439,7 @@ msgstr "今度は、 §0 の部分にどのような数値を入力すれば良 #. §14: $P \\implies Q \\implies R$ #. §15: $P \\implies Q$ #. §16: $Q \\implies R$ +#, fuzzy msgid "" "§0 is a proof that if §1 and §2 then §3.\n" "More precisely, it is a proof that §4. In words,\n" @@ -5127,6 +5465,7 @@ msgstr "" #: Game.Levels.LessOrEqual.L04le_trans #. §0: `≤` #. §1: `ℕ` +#, fuzzy msgid "" "A passing mathematician remarks that with reflexivity and transitivity out " "of the way,\n" @@ -5134,24 +5473,28 @@ msgid "" msgstr "「反射律と伝搬律をクリアすれば、あなたは §0 が §1 上の *部分順序関係* であることを証明した」と、通りすがりの数学者が言いました。" #: Game.Levels.LessOrEqual.L04le_trans +#, fuzzy msgid "x ≤ y and y ≤ z implies x ≤ z" msgstr "x ≦ y かつ y ≦ z ならば、x ≦ z が成り立つ。" #: Game.Levels.LessOrEqual.L05le_zero #. §0: $x \\leq 0$ #. §1: $x=0$ +#, fuzzy msgid "If §0, then §1." msgstr "もし §0 ならば、§1 。" #: Game.Levels.LessOrEqual.L05le_zero #. §0: `le_zero x` #. §1: `x ≤ 0 → x = 0` +#, fuzzy msgid "§0 is a proof of the implication §1." msgstr "§0 は、§1 の推論を示しています。" #: Game.Levels.LessOrEqual.L05le_zero #. §0: `add_right_eq_zero` #. §1: `symm at` +#, fuzzy msgid "" "You want to use §0, which you already\n" "proved, but you'll have to start with §1 your hypothesis." @@ -5159,10 +5502,12 @@ msgstr "既に証明した§0を使用したいですが、まず§1という仮 # no-translate #: Game.Levels.LessOrEqual.L05le_zero +#, fuzzy msgid "x ≤ 0 → x = 0" msgstr "x ≤ 0 → x = 0" #: Game.Levels.LessOrEqual.L05le_zero +#, fuzzy msgid "" "It's \"intuitively obvious\" that there are no numbers less than zero,\n" "but to prove it you will need a result which you showed in advanced\n" @@ -5170,6 +5515,7 @@ msgid "" msgstr "ゼロ未満の数が存在しないことは、「直感的に明らか」ですが、これを証明するためには、高度な加算ワールドで示された結果が必要となります。" #: Game.Levels.LessOrEqual.L06le_antisymm +#, fuzzy msgid "x ≤ y and y ≤ x implies x = y" msgstr "x ≤ y かつ y ≤ x であるとき x = y" @@ -5178,6 +5524,7 @@ msgstr "x ≤ y かつ y ≤ x であるとき x = y" #. §1: $x \\leq y$ #. §2: $y \\leq x$ #. §3: $x = y$ +#, fuzzy msgid "" "This level asks you to prove *antisymmetry* of §0.\n" "In other words, if §1 and §2 then §3.\n" @@ -5195,6 +5542,7 @@ msgstr "" #. §1: `x ≤ y` #. §2: `y ≤ x` #. §3: `x = y` +#, fuzzy msgid "§0 is a proof that if §1 and §2 then §3." msgstr "§0 は、§1 と §2 が成り立つとき、§3 が成り立つことを証明します。" @@ -5213,6 +5561,7 @@ msgstr "§0 は、§1 と §2 が成り立つとき、§3 が成り立つこと #. §1: `≤` #. §2: `ℕ` #. §3: `≤` +#, fuzzy msgid "" "Here's my proof:\n" "§0\n" @@ -5238,6 +5587,7 @@ msgstr "" #. §1: $y=42$ #. §2: $y=42$ #. §3: $x=37$ +#, fuzzy msgid "If §0 or §1, then §2 or §3." msgstr "もし §0 または §1 なら、§2 または §3 。" @@ -5249,6 +5599,7 @@ msgstr "もし §0 または §1 なら、§2 または §3 。" #. §4: `P` #. §5: `apply` #. §6: $P \\implies P \\lor Q.$ +#, fuzzy msgid "" "# Summary\n" "The §0 tactic changes a goal of §1 into a goal of §2.\n" @@ -5271,11 +5622,13 @@ msgstr "" #: Game.Levels.LessOrEqual.L07or_symm #. §0: `cases «{h}» with hx hy` +#, fuzzy msgid "We don't know whether to go left or right yet. So start with §0." msgstr "まだどちらに進むべきか決まっていないため、「§0」から開始しましょう。" #: Game.Levels.LessOrEqual.L07or_symm #. §0: `left` +#, fuzzy msgid "This time, use the §0 tactic." msgstr "この場合は、§0 タクティクを使用します。" @@ -5292,6 +5645,7 @@ msgstr "この場合は、§0 タクティクを使用します。" #. §9: `right` #. §10: `h` #. §11: `cases h with h1 h2` +#, fuzzy msgid "" "Totality of §0 is the boss level of this world, and it's coming up next. It " "says that\n" @@ -5323,6 +5677,7 @@ msgstr "" #: Game.Levels.LessOrEqual.L07or_symm #. §0: `or` #. §1: `right` +#, fuzzy msgid "" "Now we can prove the §0 statement by proving the statement on the right,\n" "so use the §1 tactic." @@ -5331,10 +5686,12 @@ msgstr "今では、§0の命題を証明するために、右側の命題を証 # no-translate #: Game.Levels.LessOrEqual.L07or_symm #. §0: `or` +#, fuzzy msgid "Dealing with §0" msgstr "§0 を扱う方法" #: Game.Levels.LessOrEqual.L07or_symm +#, fuzzy msgid "Ready for the boss level of this world?" msgstr "この世界の最終ボス戦に挑戦する準備はできていますか?" @@ -5343,15 +5700,18 @@ msgstr "この世界の最終ボス戦に挑戦する準備はできています #. §1: $y$ #. §2: $x \\leq y$ #. §3: $y \\leq x$ +#, fuzzy msgid "If §0 and §1 are numbers, then either §2 or §3." msgstr "数値である§0と§1の場合、§2または§3のいずれかが真となる。" #: Game.Levels.LessOrEqual.L08le_total +#, fuzzy msgid "x ≤ y or y ≤ x" msgstr "x ≤ y または y ≤ x" #: Game.Levels.LessOrEqual.L08le_total #. §0: `cases «{h2}» with e he` +#, fuzzy msgid "Now §0." msgstr "§0 をしましょう。" @@ -5360,6 +5720,7 @@ msgstr "§0 をしましょう。" #. §1: `cases a with b` #. §2: `a = 0` #. §3: `a = succ b` +#, fuzzy msgid "" "This is I think the toughest level yet. Tips: if §0 is a number\n" "then §1 will split into cases §2 and §3.\n" @@ -5376,6 +5737,7 @@ msgstr "" #: Game.Levels.LessOrEqual.L08le_total #. §0: `ℕ` +#, fuzzy msgid "" "Very well done.\n" "\n" @@ -5393,6 +5755,7 @@ msgstr "" #: Game.Levels.LessOrEqual.L08le_total #. §0: `cases «{e}» with a` +#, fuzzy msgid "You still don't know which way to go, so do §0." msgstr "まだ進むべき方向が不明なため、§0を実行します。" @@ -5400,6 +5763,7 @@ msgstr "まだ進むべき方向が不明なため、§0を実行します。" #. §0: `le_total x y` #. §1: `x ≤ y` #. §2: `y ≤ x` +#, fuzzy msgid "§0 is a proof that §1 or §2." msgstr "§0 は、§1 または §2 の証明を示すものです。" @@ -5407,11 +5771,13 @@ msgstr "§0 は、§1 または §2 の証明を示すものです。" #. §0: `succ_le_succ x y` #. §1: `succ x ≤ succ y` #. §2: `x ≤ y` +#, fuzzy msgid "§0 is a proof that if §1 then §2." msgstr "§0 は、§1 が成り立つ場合に §2 が成り立つことを示す証明です。" # no-translate #: Game.Levels.LessOrEqual.L09succ_le_succ +#, fuzzy msgid "succ x ≤ succ y → x ≤ y" msgstr " succ x ≤ succ y → x ≤ y" @@ -5420,6 +5786,7 @@ msgstr " succ x ≤ succ y → x ≤ y" #. §1: `x = 0` #. §2: `≤ 1` #. §3: `≤ 2` +#, fuzzy msgid "" "We've proved that §0 implies §1. The last two levels\n" "in this world will prove which numbers are §2 and §3.\n" @@ -5430,6 +5797,7 @@ msgstr "" # no-translate #: Game.Levels.LessOrEqual.L10le_one +#, fuzzy msgid "x ≤ 1" msgstr "x ≤ 1" @@ -5440,6 +5808,7 @@ msgstr "x ≤ 1" #. §3: `x ≤ 1` #. §4: `x = 0` #. §5: `x = 1` +#, fuzzy msgid "" "We've seen §0, the proof that if §1 then §2.\n" "Now we'll prove that if §3 then §4 or §5." @@ -5451,6 +5820,7 @@ msgstr "" #. §0: $x \\leq 1$ #. §1: $x = 0$ #. §2: $x = 1$ +#, fuzzy msgid "If §0 then either §1 or §2." msgstr "もし §0 が真ならば、§1 または §2 のいずれかが真です。" @@ -5466,6 +5836,7 @@ msgstr "もし §0 が真ならば、§1 または §2 のいずれかが真で #. right #. rfl #. ``` +#, fuzzy msgid "" "Here's my proof:\n" "§0\n" @@ -5483,6 +5854,7 @@ msgstr "" #. §1: `x ≤ 1` #. §2: `x = 0` #. §3: `x = 1` +#, fuzzy msgid "§0 is a proof that if §1 then §2 or §3." msgstr "§0 は、もし §1 が成り立つならば、§2 または §3 が成り立つという証明です。" @@ -5492,6 +5864,7 @@ msgstr "§0 は、もし §1 が成り立つならば、§2 または §3 が成 #. §2: `x = 0 ∨ (x = 1 ∨ x = 2)` #. §3: `left` #. §4: `right` +#, fuzzy msgid "" "We'll need this lemma to prove that two is prime!\n" "\n" @@ -5507,6 +5880,7 @@ msgstr "" #: Game.Levels.LessOrEqual.L11le_two #. §0: `≤` +#, fuzzy msgid "" "Nice!\n" "\n" @@ -5526,6 +5900,7 @@ msgstr "" #. §1: $x = 0$ #. §2: $1$ #. §3: $2$ +#, fuzzy msgid "If §0 then §1 or §2 or §3." msgstr "もし §0 が真ならば、§1 または §2 または §3 が少なくとも 1 つが真である。" @@ -5535,11 +5910,13 @@ msgstr "もし §0 が真ならば、§1 または §2 または §3 が少な #. §2: `x = 0` #. §3: `x = 1` #. §4: `x = 2` +#, fuzzy msgid "§0 is a proof that if §1 then §2 or §3 or §4." msgstr "§0 は、もし §1 が真ならば、§2 または §3 または §4 がいずれか真であることを示す証明です。" # no-translate #: Game.Levels.LessOrEqual.L11le_two +#, fuzzy msgid "le_two" msgstr "le_two" @@ -5549,6 +5926,7 @@ msgstr "le_two" #. §2: `x * y = 1 → x = 1` #. §3: `x * y = x → y = 1` #. §4: `x ≠ 0` +#, fuzzy msgid "" "Advanced *Addition* World proved various implications\n" "involving addition, such as §0 and §1.\n" @@ -5576,16 +5954,19 @@ msgstr "" "じます。" #: Game.Levels.AdvMultiplication +#, fuzzy msgid "Advanced Multiplication World" msgstr "高度な乗算ワールド" #: Game.Levels.AdvMultiplication.L01mul_le_mul_right #. §0: `t = 0` +#, fuzzy msgid "Let's warm up with an easy one, which works even if §0." msgstr "まずは、簡単に問題を解いてみましょう。この問題は、§0 の場合に有効です。" # no-translate #: Game.Levels.AdvMultiplication.L01mul_le_mul_right +#, fuzzy msgid "mul_le_mul_right" msgstr "mul_le_mul_right" @@ -5596,6 +5977,7 @@ msgstr "mul_le_mul_right" #. rw [hd, add_mul] #. rfl #. ``` +#, fuzzy msgid "" "My proof:\n" "§0" @@ -5605,11 +5987,13 @@ msgstr "" # no-translate #: Game.Levels.AdvMultiplication.L02mul_left_ne_zero +#, fuzzy msgid "mul_left_ne_zero" msgstr "mul_left_ne_zero" #: Game.Levels.AdvMultiplication.L02mul_left_ne_zero #. §0: `apply h` +#, fuzzy msgid "Now §0 and you can probably take it from here." msgstr "§0を実行し、ここから推論を進めることができます。" @@ -5619,6 +6003,7 @@ msgstr "§0を実行し、ここから推論を進めることができます。 #. §2: `X ≠ 0` #. §3: `X = 0 → False` #. §4: `Show more help!` +#, fuzzy msgid "" "We want to reduce this to a hypothesis §0 and a goal §1,\n" "which is logically equivalent but much easier to prove. Remember that §2\n" @@ -5630,6 +6015,7 @@ msgstr "" #: Game.Levels.AdvMultiplication.L02mul_left_ne_zero #. §0: `contrapose!` +#, fuzzy msgid "" "If you have completed Algorithm World then you can use the §0 tactic\n" "here. If not then I'll talk you through a manual approach." @@ -5640,6 +6026,7 @@ msgstr "" #: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero #. §0: `a ≠ 0` #. §1: `tauto` +#, fuzzy msgid "" "Multiplication usually makes a number bigger, but multiplication by zero " "can make\n" @@ -5689,6 +6076,7 @@ msgstr "" #. §32: `a * b ≠ 0 → a ≠ 0` #. §33: `tauto` #. §34: `tauto` +#, fuzzy msgid "" "# Summary\n" "\n" @@ -5781,6 +6169,7 @@ msgstr "" # no-translate #: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero +#, fuzzy msgid "eq_succ_of_ne_zero" msgstr "eq_succ_of_ne_zero" @@ -5788,12 +6177,14 @@ msgstr "eq_succ_of_ne_zero" #. §0: `cases a with d` #. §1: `a = 0` #. §2: `a = succ d` +#, fuzzy msgid "Start with §0 to do a case split on §1 and §2." msgstr "開始にあたり、§0 を用いて §1 と §2 に対してケース分割を実行します。" #: Game.Levels.AdvMultiplication.L03eq_succ_of_ne_zero #. §0: `ha : 0 ≠ 0` #. §1: `tauto` +#, fuzzy msgid "" "In the \"base case\" we have a hypothesis §0, and you can deduce anything\n" "from a false statement. The §1 tactic will close this goal." @@ -5801,20 +6192,24 @@ msgstr "基本的なケースでは、仮定§0が存在します。偽の文か #: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero #. §0: `apply eq_succ_of_ne_zero at ha` +#, fuzzy msgid "Use the previous lemma with §0." msgstr "前の定理を適用するために、§0を使用してください。" #: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero #. §0: `cases ha with n hn` +#, fuzzy msgid "Now take apart the existence statement with §0." msgstr "次に、存在文を §0 を用いて分解します。" # no-translate #: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero +#, fuzzy msgid "one_le_of_ne_zero" msgstr "one_le_of_ne_zero" #: Game.Levels.AdvMultiplication.L04one_le_of_ne_zero +#, fuzzy msgid "The previous lemma can be used to prove this one." msgstr "前の定理を用いることで、この定理の証明が可能となります。" @@ -5826,6 +6221,7 @@ msgstr "前の定理を用いることで、この定理の証明が可能とな #. §4: `mul_left_ne_zero` #. §5: `one_le_of_ne_zero` #. §6: `mul_le_mul_right` +#, fuzzy msgid "" "One day this game will have a Prime Number World, with a final boss\n" "of proving that §0 is prime.\n" @@ -5844,6 +6240,7 @@ msgstr "" #: Game.Levels.AdvMultiplication.L05le_mul_right #. §0: `le_mul_right a b` #. §1: `a * b ≠ 0 → a ≤ a * b` +#, fuzzy msgid "" "§0 is a proof that §1.\n" "\n" @@ -5862,6 +6259,7 @@ msgstr "" #. rw [one_mul, mul_comm] at h #. exact h #. ``` +#, fuzzy msgid "" "Here's what I was thinking of:\n" "§0" @@ -5871,11 +6269,13 @@ msgstr "" # no-translate #: Game.Levels.AdvMultiplication.L05le_mul_right +#, fuzzy msgid "le_mul_right" msgstr "le_mul_right" #: Game.Levels.AdvMultiplication.L06mul_right_eq_one #. §0: `tauto` +#, fuzzy msgid "§0 is good enough to solve this goal." msgstr "§0 は、この問題を解決するために十分な情報を提供します。" @@ -5893,6 +6293,7 @@ msgstr "§0 は、この問題を解決するために十分な情報を提供 #. §10: `succ_inj a b` #. §11: `have h2 := succ_inj a b` #. §12: `h2 : succ a = succ b → a = b` +#, fuzzy msgid "" "# Summary\n" "\n" @@ -5950,6 +6351,7 @@ msgstr "" # no-translate #: Game.Levels.AdvMultiplication.L06mul_right_eq_one +#, fuzzy msgid "mul_right_eq_one" msgstr "mul_right_eq_one" @@ -5960,6 +6362,7 @@ msgstr "mul_right_eq_one" #. §3: `le_one` #. §4: `≤` #. §5: `have` +#, fuzzy msgid "" "This level proves §0, the multiplicative analogue of Advanced Addition\n" "World's §1. The strategy is to prove that §2 and then use the\n" @@ -5979,6 +6382,7 @@ msgstr "" #. §3: `≠` #. §4: `\\ne` #. §5: `le_mul_right` +#, fuzzy msgid "" "We want to use §0, but we need a hypothesis §1\n" "which we don't have. Yet. Execute §2 (you can type §3 with §4).\n" @@ -5993,11 +6397,13 @@ msgstr "" #: Game.Levels.AdvMultiplication.L06mul_right_eq_one #. §0: `rw [«{h}»] at «{h2}»` #. §1: `apply le_one at «{h2}»` +#, fuzzy msgid "Now §0 so you can §1." msgstr "§0 を実行することで、 §1 が可能になります。" #: Game.Levels.AdvMultiplication.L06mul_right_eq_one #. §0: `cases h2 with h0 h1` +#, fuzzy msgid "" "Now §0 and deal with the two\n" "cases separately." @@ -6005,12 +6411,14 @@ msgstr "次に、§0 の内容と、それとは異なるもう一つのケー # no-translate #: Game.Levels.AdvMultiplication.L07mul_ne_zero +#, fuzzy msgid "mul_ne_zero" msgstr "mul_ne_zero" #: Game.Levels.AdvMultiplication.L07mul_ne_zero #. §0: `apply eq_succ_of_ne_zero at ha` #. §1: `... at hb` +#, fuzzy msgid "Start with §0 and §1" msgstr "開始には、§0 と §1 を使用してください。" @@ -6024,6 +6432,7 @@ msgstr "開始には、§0 と §1 を使用してください。" #. §6: `a * b` #. §7: `succ` #. §8: `apply zero_ne_succ` +#, fuzzy msgid "" "This level proves that if §0 and §1 then §2. One strategy\n" "is to write both §3 and §4 as §5 of something, deduce that §6 is\n" @@ -6036,6 +6445,7 @@ msgstr "" #. §0: `a * b = 0` #. §1: `a = 0` #. §2: `b = 0` +#, fuzzy msgid "" "This level proves that if §0 then §1 or §2. It is\n" "logically equivalent to the last level, so there is a very short proof." @@ -6044,6 +6454,7 @@ msgstr "このレベルでは、§0ならば§1または§2であることを証 #: Game.Levels.AdvMultiplication.L08mul_eq_zero #. §0: `h2` #. §1: `tauto` +#, fuzzy msgid "" "Now the goal can be deduced from §0 by pure logic, so use the §1\n" "tactic." @@ -6055,6 +6466,7 @@ msgstr "現在の目標は、§0 から純粋な論理によって導き出す #. tauto #. ``` #. §1: `mul_ne_zero a b` +#, fuzzy msgid "" "Here's the short proof:\n" "§0\n" @@ -6068,6 +6480,7 @@ msgstr "" # no-translate #: Game.Levels.AdvMultiplication.L08mul_eq_zero +#, fuzzy msgid "mul_eq_zero" msgstr "mul_eq_zero" @@ -6084,6 +6497,7 @@ msgstr "mul_eq_zero" #. §9: `a * b = a * c` #. §10: `b = c` #. §11: `c` +#, fuzzy msgid "" "In this level we prove that if §0 and §1 then §2. It is tricky, for\n" "several reasons. One of these is that\n" @@ -6112,6 +6526,7 @@ msgstr "" # no-translate #: Game.Levels.AdvMultiplication.L09mul_left_cancel +#, fuzzy msgid "mul_left_cancel" msgstr "mul_left_cancel" @@ -6122,6 +6537,7 @@ msgstr "mul_left_cancel" #. §3: `apply` #. §4: `at` #. §5: `a * d = a * ?` +#, fuzzy msgid "" "The inductive hypothesis §0 is \"For all natural numbers §1, §2\".\n" "You can §3 it §4 any hypothesis of the form §5." @@ -6133,6 +6549,7 @@ msgstr "" #: Game.Levels.AdvMultiplication.L09mul_left_cancel #. §0: `induction b with d hd generalizing c` +#, fuzzy msgid "The way to start this proof is §0." msgstr "この証明を開始する方法は §0 です。" @@ -6140,6 +6557,7 @@ msgstr "この証明を開始する方法は §0 です。" #. §0: `c = 0` #. §1: `c = succ e` #. §2: `cases c with e` +#, fuzzy msgid "Split into cases §0 and §1 with §2." msgstr "§2 で§0 と §1 にケースを分けましょう。" @@ -6148,6 +6566,7 @@ msgstr "§2 で§0 と §1 にケースを分けましょう。" #. §1: `tauto` #. §2: `a = 0` #. §3: `a ≠ 0` +#, fuzzy msgid "" "Use §0 and remember that §1 will solve a goal\n" "if there are hypotheses §2 and §3." @@ -6155,10 +6574,12 @@ msgstr "§0を使用します。仮定として§2と§3が存在する場合、 #: Game.Levels.AdvMultiplication.L10mul_right_eq_self #. §0: `apply mul_left_cancel at h` +#, fuzzy msgid "You can now §0" msgstr "§0 ができます" #: Game.Levels.AdvMultiplication.L10mul_right_eq_self +#, fuzzy msgid "" "The lemma proved in the final level of this world will be helpful\n" "in Divisibility World." @@ -6166,11 +6587,13 @@ msgstr "最終段階で証明された定理は、整除ワールドの問題を #: Game.Levels.AdvMultiplication.L10mul_right_eq_self #. §0: `nth_rewrite 2 [← mul_one a] at h` +#, fuzzy msgid "Reduce to the previous lemma with §0" msgstr "§0 を使用して、直前の補題に変換します。" # no-translate #: Game.Levels.AdvMultiplication.L10mul_right_eq_self +#, fuzzy msgid "mul_right_eq_self" msgstr "mul_right_eq_self" @@ -6179,6 +6602,7 @@ msgstr "mul_right_eq_self" #. nth_rewrite 2 [← mul_one a] at h #. exact mul_left_cancel a b 1 ha h #. ``` +#, fuzzy msgid "" "A two-line proof is\n" "\n" @@ -6193,15 +6617,19 @@ msgstr "" "\n" "これまでに得られたツールを用いて、自然数の除法の基本的な理論を構築することが可能になりました。" +# UIと揃える #: GameServer.RpcHandlers +#, fuzzy msgid "level completed with warnings… 🎭" msgstr "レベルが警告付きで完了しました… 🎭" #: GameServer.RpcHandlers +#, fuzzy msgid "intermediate goal solved! 🎉" msgstr "中間目標が達成されました!🎉" # UIと揃える #: GameServer.RpcHandlers +#, fuzzy msgid "level completed! 🎉" msgstr "レベル完了!🎉" From 0f1ed167ca08fc9394afa734b7690fe1df1c0998 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 4 May 2026 00:47:43 +0900 Subject: [PATCH 100/147] ja: add glossary.csv --- .i18n/ja/glossary.csv | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .i18n/ja/glossary.csv diff --git a/.i18n/ja/glossary.csv b/.i18n/ja/glossary.csv new file mode 100644 index 00000000..986da04c --- /dev/null +++ b/.i18n/ja/glossary.csv @@ -0,0 +1,35 @@ +# 原語が`/` で始まるものはJavaScript RegExp(iフラグ自動付与) +原語,対訳,備考 +# 一般的(表記揺れ対策) +open an issue,issueを作成 +# UI (lean4gameでの表記) +Show more help!,助けて! +Next,次 +Home,ホーム + +# 数学 +/axioms?/,公理 +associativity,結合性 +totality,全順序性 +implication,含意 +transitivity,推移性 +reflexivity,反射性 +the freshman's dream,一年生の夢,Wikipediaに記述あり +natural numbers,自然数 + +# Lean +/tactics?/,タクティク +goal,ゴール,一般語句との混在に注意 + +# Worlds +world,ワールド +Addition World,加算ワールド +Multiplication World,乗算ワールド +Implication World,含意ワールド +Power World,冪乗ワールド +successor,後者,Wikipediaから +zero,0,ゼロと0で表記揺れが発生 +Advanced Addition World,高度な加算ワールド +Advanced Multiplication World,高度な乗算ワールド +# 統一したい語句 +Can you take it from here?,ここから続けられますか? From 6a1758faf24b92d2ae393187de4af3d961dc828c Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Wed, 6 May 2026 01:45:56 +0900 Subject: [PATCH 101/147] add some word to glossary and meta comment --- .i18n/ja/Game.po | 2 ++ .i18n/ja/glossary.csv | 15 ++++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index f201e94f..dd1a368e 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1,3 +1,5 @@ +# no-translate: 翻訳不要(タクティク名のみなど) +# msgid "" msgstr "" "Project-Id-Version: Game v4.23.0\n" diff --git a/.i18n/ja/glossary.csv b/.i18n/ja/glossary.csv index 986da04c..f171c4cf 100644 --- a/.i18n/ja/glossary.csv +++ b/.i18n/ja/glossary.csv @@ -6,6 +6,7 @@ open an issue,issueを作成 Show more help!,助けて! Next,次 Home,ホーム +progress,セーブデータ,意訳 進捗でも良いかと思ったが、こちらのほうが概念として伝わりやすそう UIも同じ表記 # 数学 /axioms?/,公理 @@ -16,20 +17,24 @@ transitivity,推移性 reflexivity,反射性 the freshman's dream,一年生の夢,Wikipediaに記述あり natural numbers,自然数 +mathematical proof,数学の証明,数学的は一般的ではなさそうと判断 # Lean /tactics?/,タクティク goal,ゴール,一般語句との混在に注意 # Worlds -world,ワールド +successor,後者,Wikipediaから +zero,0,ゼロと0で表記揺れが発生 この0は数学の0に対して使用し、"ゼロから作る" のようなものには当てはめない +Strong Induction World,強帰納法ワールド,fuzzy WIISは強数学的帰納法 強い帰納法などの表現もあり +Advanced Addition World,高度な加算ワールド +Advanced Multiplication World,高度な乗算ワールド Addition World,加算ワールド Multiplication World,乗算ワールド Implication World,含意ワールド Power World,冪乗ワールド -successor,後者,Wikipediaから -zero,0,ゼロと0で表記揺れが発生 -Advanced Addition World,高度な加算ワールド -Advanced Multiplication World,高度な乗算ワールド +Even/Odd World,偶数/奇数ワールド +world,ワールド # 統一したい語句 Can you take it from here?,ここから続けられますか? + From 5e86961747aac8d6aeb6847cef0b7a5487712eb7 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 4 May 2026 04:12:36 +0900 Subject: [PATCH 102/147] ja: improve translations --- .i18n/ja/Game.po | 64 +++++++++++++++++++++++------------------------- 1 file changed, 30 insertions(+), 34 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index dd1a368e..1b7d25e1 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -16,7 +16,6 @@ msgstr "" #: Game #. §0: $\\mathbb{N}$ -#, fuzzy msgid "" "In this game you recreate the natural numbers §0 from the Peano axioms,\n" "learning the basics about theorem proving in Lean.\n" @@ -25,13 +24,12 @@ msgid "" msgstr "" "このゲームでは、ペアノの公理に基づいて自然数 §0 を再構成し、Leanにおける定理証明の基礎を習得します。\n" "\n" -"これは、Leanへの優れた入門となるでしょう!" +"これは、Leanへの良い入門となるでしょう!" #: Game #. §0: `{0,1,2,3,4,...}` #. §1: `2 + 2 = 4` #. §2: `x + y = y + x` -#, fuzzy msgid "" "# Welcome to the Natural Number Game\n" "#### An introduction to mathematical proof.\n" @@ -65,30 +63,31 @@ msgid "" "links, and ways to interact with the Lean community." msgstr "" "# 自然数ゲームへようこそ\n" -"#### 数学的証明への入門\n" +"#### 数学の証明への入門\n" "\n" -"このゲームでは、自然数 §0 の基本理論をゼロから構築します。最初の目標は §1 を証明することです。次に §2 " -"を証明します。そして最後には、フェルマーの最終定理を証明できるかどうかを見ていきます。これらの目標を達成するために、コンピュータパズルゲーム「Lean」" +"このゲームでは、自然数 §0 の基礎理論をゼロから構築します。最初の目標は §1 を証明することです。次に §2 " +"を証明します。そして最後には、フェルマーの最終定理を証明できるかどうかを見ていきます。これらの目標を達成するために、Leanと呼ばれるコンピュータパズルゲーム" "のレベルを解いていきます。\n" "\n" "# 読んでください。\n" "\n" -"インタラクティブな定理証明システムの使い方を習得するには時間がかかります。テストの結果から、このゲームで最も効果的なのは、このようなヘルプテキストを読む" -"人です。\n" +"インタラクティブな定理証明システムの使い方を習得するには時間がかかります。" +"テストの結果から、このゲームで最も効果的なのは、" +"このようなヘルプテキストを読む人です。\n" "\n" "開始するには、「チュートリアルワールド」をクリックしてください。\n" "\n" -"注意:これは、旧Lean 3版に存在しなかった複数のワールドを含む新しいLean " -"4版のゲームです。強い帰納法ワールド、偶数/" -"奇数ワールド、素数ワールドなどの新しいワールドの開発が進行中です;これらの状態を確認したいか、協力したい場合は、[GitHubリポジトリのissues]" +"注意:これは、旧Lean 3版に存在しなかった複数のワールドを含む" +"新しいLean 4版のゲームです。強い帰納法ワールド、偶数/奇数ワールド、" +"素数ワールドなどの新しいワールドの開発が進行中です;これらの状態を確認したいか、協力したい場合は、[GitHubリポジトリのissues]" "(https://github.com/leanprover-community/NNG4/issues) をチェックしてください。\n" "\n" "## 追加情報\n" "\n" "右上隅の三本線をクリックし、「ゲーム情報」を選択して、リソース、リンク、Leanコミュニティとの交流方法を確認してください。" +# Progress savingはUIと同じ内容 #: Game -#, fuzzy msgid "" "*Game version: 4.3*\n" "\n" @@ -144,56 +143,53 @@ msgstr "" "\n" "*最近の追加: バグ修正*\n" "\n" -"## 進捗保存\n" +"## セーブデータの保存\n" "\n" -"ゲームは、あなたの進捗をローカルブラウザストレージに保存します。\n" -"これを削除すると、進捗が失われます!\n" +"このゲームは、あなたのセーブデータをローカルブラウザストレージに保存します。\n" +"これを削除すると、セーブデータが失われます!\n" "\n" -"注意:多くのブラウザでは、クッキーを削除するとローカルストレージ(または「ローカルサイトデータ」)もクリアされます。進捗をダウンロードしてから削除するこ" -"とを確認してください!\n" +"注意:多くのブラウザでは、クッキーを削除するとローカルストレージ" +"(または「ローカルサイトデータ」)も削除されます。" +"セーブデータを削除する前に、必ずセーブデータをダウンロードしてください!\n" "\n" -"## 謝辞\n" +"## クレジット\n" "\n" "* **クリエイター:** Kevin Buzzard, Jon Eugster\n" "* **オリジナルLean3バージョン:** Kevin Buzzard, Mohammad Pedramfar\n" "* **ゲームエンジン:** Alexander Bentkamp, Jon Eugster, Patrick Massot\n" "* **追加レベル:** Sian Carey, Ivan Farabella, Archie Browne.\n" -"* **追加の感謝:** 全ての学生ベータテスト者、Kevinを講演に招待した全ての学校、質問をした全ての学校の子供たち\n" +"* **協力・謝辞:** ベータテストに参加した全ての学生達、Kevinを講演に招待した全ての学校、内容について質問をしてくれた全ての学校の子供たち\n" "\n" "## リソース\n" "\n" "* [Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラム\n" "* " -"[元のLean3版](https://github.com/ImperialCollegeLondon/natural_number_game/)" +"[オリジナルのLean3版](https://github.com/ImperialCollegeLondon/natural_number_game/)" "(現在メンテナンスされていません)\n" "\n" "## お困りですか?\n" "\n" "このゲームに関する質問は、[Lean Zulipチャット](https://leanprover.zulipchat.com/) " "フォーラムで質問してください。例えば、「New Members」ストリームで質問できます。コミュニティは喜んでお手伝いします。注意: Lean " -"Zulipチャットはプロフェッショナルな研究フォーラムです。そこでフルネームを使用し、トピックに集中し、丁寧に接してください。より非公式な場所(例えば、" -"自然数ゲームのメモを投稿したい場合)を探している場合は、[Lean Discord](https://discord.gg/WZ9bs9UCvx) " -"に移動してください。\n" +"Zulipチャットはプロフェッショナルな研究フォーラムです。そこでは本名を使用し、トピックに集中し、丁寧に接してください。よりカジュアルな場所(例えば、" +"自然数ゲームのミームを投稿したい場合)を探している場合は、" +"[Lean Discord](https://discord.gg/WZ9bs9UCvx) にアクセスしてください。\n" "(訳注: これらはいずれも外国語のコミュニティです。もし日本語で質問をしたいのであれば、[Lean " "の日本語コミュニティ](https://lean-ja.github.io/about/)上で質問すると良いでしょう。)\n" "\n" -"または、問題やバグが発生した場合は、GitHubの問題をオープンすることもできます:\n" +"あるいは、問題やバグが発生した場合は、GitHubのissueを作成することもできます:\n" "\n" -"* " -"ゲームエンジンに関する問題は、[lean4game](https://github.com/leanprover-community/lean4" -"game/issues) リポジトリで問題をオープンしてください。\n" -"* ゲームの内容に関する問題は、[NNG](https://github.com/hhu-adam/NNG4/issues) " -"リポジトリで問題をオープンしてください。" +"* ゲームエンジンに関する問題は、[lean4gameリポジトリでissueを作成]" +"(https://github.com/leanprover-community/lean4game/issues) してください。\n" +"* ゲームの内容に関する問題は、[NNGリポジトリでissueを作成](https://github.com/hhu-adam/NNG4/issues) してください。" #: Game -#, fuzzy msgid "Natural Number Game" msgstr "自然数ゲーム" #: Game -#, fuzzy msgid "The classical introduction game for Lean." -msgstr "Lean 4 用の、古典的な導入ゲーム。" +msgstr "古典的なLeanの導入ゲーム。" #: Game.Levels.Tutorial #. §0: `2 + 2 = 4` @@ -6623,12 +6619,12 @@ msgstr "" #: GameServer.RpcHandlers #, fuzzy msgid "level completed with warnings… 🎭" -msgstr "レベルが警告付きで完了しました… 🎭" +msgstr "レベル完了(警告あり) 🎭" #: GameServer.RpcHandlers #, fuzzy msgid "intermediate goal solved! 🎉" -msgstr "中間目標が達成されました!🎉" +msgstr "中間ゴール解決!🎉" # UIと揃える #: GameServer.RpcHandlers From c30ca70d54b1760869298fe72406be089dcba327 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 4 May 2026 04:13:36 +0900 Subject: [PATCH 103/147] ja: update json --- .i18n/ja/Game.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.i18n/ja/Game.json b/.i18n/ja/Game.json index 12681d58..45f96cde 100644 --- a/.i18n/ja/Game.json +++ b/.i18n/ja/Game.json @@ -126,13 +126,13 @@ "making life simple": "よりシンプルな生活を実現する", "making life easier": "生活をより簡単に", "level completed! 🎉": "レベル完了!🎉", - "level completed with warnings… 🎭": "レベルが警告付きで完了しました… 🎭", + "level completed with warnings… 🎭": "レベル完了(警告あり) 🎭", "le_two": "le_two", "le_mul_right": "le_mul_right", "is_zero": "is_zero", "intro practice": "intro 演習", "intro": "intro", - "intermediate goal solved! 🎉": "中間目標が達成されました!🎉", + "intermediate goal solved! 🎉": "中間ゴール解決!🎉", "eq_succ_of_ne_zero": "eq_succ_of_ne_zero", "decide again": "もう一度 decide", "decide": "decide", @@ -245,7 +245,7 @@ "To solve this level, you need to §0 a number §1 such that §2.": "このレベルを解くには、§0 に数値を指定し、§1 とすることで、§2 が成り立つようにする必要があります。", "Those of you interested in speedrunning the game may want to know\nthat §0 will do both rewrites at once.": - "ゲームのスピードランにご興味のある方は、`§0` は一度に両方のリライトを実行できます。", + "ゲームのRTAにご興味のある方は、`§0` は一度に両方のリライトを実行できます。", "This world introduces exponentiation. If you want to define §0\nthen, as always, you will need to know what §1 is, and\nwhat §2 is, given only §3.\n\nYou can probably guess the names of the general theorems:\n\n * §4\n * §5\n\nUsing only these, can you get past the final boss level?\n\nThe levels in this world were designed by Sian Carey, a UROP student\nat Imperial College London, funded by a Mary Lister McCammon Fellowship\nin the summer of 2019. Thanks to Sian and also thanks to Imperial\nCollege for funding her.": "このワールドでは指数演算が導入されます。§0を定義するには、常に §1 と §2 が何であるかを知る必要があります。そして、それらを §3 だけを使って推測する必要があります。\n\n一般的な定理の名前はおそらく予想できるでしょう:\n\n * §4\n * §5\n\nこれらのものだけを使って最終ボスレベルを突破できるでしょうか?\n\nこの世界のレベルは、2019年夏にMary Lister McCammon助成金によりImperial College LondonのUROP学生であるSian Careyによって設計されました。Sianに感謝します。また、Imperial Collegeの助成にも感謝します。", "This time, use the §0 tactic.": "この場合は、§0 タクティクを使用します。", @@ -285,7 +285,7 @@ "このレベルの目標は、当方の仮説の一つです。目標を達成するためには、§0を実行してください。", "The first sub-boss of Multiplication World is §0.\n\nWhen you've proved this theorem we will have \"spare\" proofs\nsuch as §1, which is now easily deducible from §2.\nBut we'll keep hold of these proofs anyway, because it's convenient\nto have exactly the right tool for a job.": "乗算ワールドの最初のサブボスは§0です。\n\nこの定理を証明すると、「余剰」な証明が得られます。\n例えば、§2から容易に導かれる§1があります。\nただし、これらの証明は保持しておきます。\n特定のタスクに適した道具を手元に置いておくためです。", - "The classical introduction game for Lean.": "Lean 4 用の、古典的な導入ゲーム。", + "The classical introduction game for Lean.": "古典的なLeanの導入ゲーム。", "Start with §0. This will change §1 to §2.": "§0から開始します。これにより、§1は§2に変わります。", "Start with §0.": "§0 から開始してください。", "Start with §0, to change the goal into its\ncontrapositive, namely a hypothesis of §1 and a goal of §2.": @@ -456,7 +456,7 @@ "In this level the *goal* is §0 but to help us we\nhave an *assumption* §1 saying that §2. Check that you can see §3 in\nyour list of assumptions. Lean thinks of §4 as being a secret proof of the\nassumption, rather like §5 is a secret number.\n\nBefore we can use §6, we have to \"substitute in for §7\".\nWe do this in Lean by *rewriting* the goal with §8,\nusing the §9 tactic.": "このレベルにおける目標は§0ですが、それを達成するために、§1という仮定があります。その内容は§2です。仮定リストに§3が表示されていることを確認してください。Leanは§4を、仮定の秘密の証明と見なします。これは、§5が秘密の数値に似ています。\n\n§6を使用する前に、「§7に置き換える」必要があります。Leanでは、§8を使用して目標を書き換え、§9タクティクを使用してこれを実行します。", "In this game you recreate the natural numbers §0 from the Peano axioms,\nlearning the basics about theorem proving in Lean.\n\nThis is a good first introduction to Lean!": - "このゲームでは、ペアノの公理に基づいて自然数 §0 を再構成し、Leanにおける定理証明の基礎を習得します。\n\nこれは、Leanへの優れた入門となるでしょう!", + "このゲームでは、ペアノの公理に基づいて自然数 §0 を再構成し、Leanにおける定理証明の基礎を習得します。\n\nこれは、Leanへの良い入門となるでしょう!", "In the next level, we'll do the same proof but backwards.": "次のレベルでは、同様の手続きを用いて、証明を逆方向に展開します。", "In the last level, we manipulated the hypothesis §0\n until it became the goal §1. In this level we'll manipulate\n the goal until it becomes our hypothesis! In other words, we\n will \"argue backwards\". The §2 tactic can do this too.\n Again I will walk you through this one (assuming you're in\n command line mode).": @@ -617,7 +617,7 @@ "1 ≠ 0": "1 ≠ 0", "0 ≤ x": "0 ≤ x", "*Game version: 4.3*\n\n*Recent additions: bug fixes*\n\n## Progress saving\n\nThe game stores your progress in your local browser storage.\nIf you delete it, your progress will be lost!\n\nWarning: In most browsers, deleting cookies will also clear the local storage\n(or \"local site data\"). Make sure to download your game progress first!\n\n## Credits\n\n* **Creators:** Kevin Buzzard, Jon Eugster\n* **Original Lean3-version:** Kevin Buzzard, Mohammad Pedramfar\n* **Game Engine:** Alexander Bentkamp, Jon Eugster, Patrick Massot\n* **Additional levels:** Sian Carey, Ivan Farabella, Archie Browne.\n* **Additional thanks:** All the student beta testers, all the schools\nwho invited Kevin to speak, and all the schoolkids who asked him questions\nabout the material.\n\n## Resources\n\n* The [Lean Zulip chat](https://leanprover.zulipchat.com/) forum\n* [Original Lean3 version](https://github.com/ImperialCollegeLondon/natural_number_game/) (no longer maintained)\n\n## Problems?\n\nPlease ask any questions about this game in the\n[Lean Zulip chat](https://leanprover.zulipchat.com/) forum, for example in\nthe stream \"New Members\". The community will happily help. Note that\nthe Lean Zulip chat is a professional research forum.\nPlease use your full real name there, stay on topic, and be nice. If you're\nlooking for somewhere less formal (e.g. you want to post natural number\ngame memes) then head on over to the [Lean Discord](https://discord.gg/WZ9bs9UCvx).\n\nAlternatively, if you experience issues / bugs you can also open github issues:\n\n* For issues with the game engine, please open an\n[issue at the lean4game](https://github.com/leanprover-community/lean4game/issues) repo.\n* For issues about the game's content, please open an\n[issue at the NNG](https://github.com/hhu-adam/NNG4/issues) repo.": - "*ゲームバージョン: 4.3*\n\n*最近の追加: バグ修正*\n\n## 進捗保存\n\nゲームは、あなたの進捗をローカルブラウザストレージに保存します。\nこれを削除すると、進捗が失われます!\n\n注意:多くのブラウザでは、クッキーを削除するとローカルストレージ(または「ローカルサイトデータ」)もクリアされます。進捗をダウンロードしてから削除することを確認してください!\n\n## 謝辞\n\n* **クリエイター:** Kevin Buzzard, Jon Eugster\n* **オリジナルLean3バージョン:** Kevin Buzzard, Mohammad Pedramfar\n* **ゲームエンジン:** Alexander Bentkamp, Jon Eugster, Patrick Massot\n* **追加レベル:** Sian Carey, Ivan Farabella, Archie Browne.\n* **追加の感謝:** 全ての学生ベータテスト者、Kevinを講演に招待した全ての学校、質問をした全ての学校の子供たち\n\n## リソース\n\n* [Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラム\n* [元のLean3版](https://github.com/ImperialCollegeLondon/natural_number_game/)(現在メンテナンスされていません)\n\n## お困りですか?\n\nこのゲームに関する質問は、[Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラムで質問してください。例えば、「New Members」ストリームで質問できます。コミュニティは喜んでお手伝いします。注意: Lean Zulipチャットはプロフェッショナルな研究フォーラムです。そこでフルネームを使用し、トピックに集中し、丁寧に接してください。より非公式な場所(例えば、自然数ゲームのメモを投稿したい場合)を探している場合は、[Lean Discord](https://discord.gg/WZ9bs9UCvx) に移動してください。\n(訳注: これらはいずれも外国語のコミュニティです。もし日本語で質問をしたいのであれば、[Lean の日本語コミュニティ](https://lean-ja.github.io/about/)上で質問すると良いでしょう。)\n\nまたは、問題やバグが発生した場合は、GitHubの問題をオープンすることもできます:\n\n* ゲームエンジンに関する問題は、[lean4game](https://github.com/leanprover-community/lean4game/issues) リポジトリで問題をオープンしてください。\n* ゲームの内容に関する問題は、[NNG](https://github.com/hhu-adam/NNG4/issues) リポジトリで問題をオープンしてください。", + "*ゲームバージョン: 4.3*\n\n*最近の追加: バグ修正*\n\n## セーブデータの保存\n\nこのゲームは、あなたのセーブデータをローカルブラウザストレージに保存します。\nこれを削除すると、セーブデータが失われます!\n\n注意:多くのブラウザでは、クッキーを削除するとローカルストレージ(または「ローカルサイトデータ」)も削除されます。セーブデータを削除する前に、必ずセーブデータをダウンロードしてください!\n\n## クレジット\n\n* **クリエイター:** Kevin Buzzard, Jon Eugster\n* **オリジナルLean3バージョン:** Kevin Buzzard, Mohammad Pedramfar\n* **ゲームエンジン:** Alexander Bentkamp, Jon Eugster, Patrick Massot\n* **追加レベル:** Sian Carey, Ivan Farabella, Archie Browne.\n* **協力・謝辞:** ベータテストに参加した全ての学生達、Kevinを講演に招待した全ての学校、内容について質問をしてくれた全ての学校の子供たち\n\n## リソース\n\n* [Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラム\n* [オリジナルのLean3版](https://github.com/ImperialCollegeLondon/natural_number_game/)(現在メンテナンスされていません)\n\n## お困りですか?\n\nこのゲームに関する質問は、[Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラムで質問してください。例えば、「New Members」ストリームで質問できます。コミュニティは喜んでお手伝いします。注意: Lean Zulipチャットはプロフェッショナルな研究フォーラムです。そこでは本名を使用し、トピックに集中し、丁寧に接してください。よりカジュアルな場所(例えば、自然数ゲームのミームを投稿したい場合)を探している場合は、[Lean Discord](https://discord.gg/WZ9bs9UCvx) にアクセスしてください。\n(訳注: これらはいずれも外国語のコミュニティです。もし日本語で質問をしたいのであれば、[Lean の日本語コミュニティ](https://lean-ja.github.io/about/)上で質問すると良いでしょう。)\n\nあるいは、問題やバグが発生した場合は、GitHubのissueを作成することもできます:\n\n* ゲームエンジンに関する問題は、[lean4gameリポジトリでissueを作成](https://github.com/leanprover-community/lean4game/issues) してください。\n* ゲームの内容に関する問題は、[NNGリポジトリでissueを作成](https://github.com/hhu-adam/NNG4/issues) してください。", "## The birth of number.\n\nNumbers in Lean are defined by two rules.\n\n* §0 is a number.\n* If §1 is a number, then the *successor* §2 of §3 is a number.\n\nThe successor of §4 means the number after §5. Let's learn to\ncount, and name a few small numbers.\n\n## Counting to four.\n\n§6 is a number, so §7 is a number. Let's call this new number §8.\nSimilarly let's define §9, §10 and §11.\nThis gives us plenty of numbers to be getting along with.\n\nThe *proof* that §12 is called §13.\nCheck out the \"012\" tab in the list of lemmas on the right\nfor this and other proofs.\n\nLet's prove that §14 is the number after the number after zero.": "## 数字の誕生。\n\nLeanにおける数字は、以下の2つのルールで定義されます。\n\n* §0 は数字です。\n* もし §1 が数字ならば、§3 の *後続* §2 も数字です。\n\n§4 の「後続」とは、§5 の次の数字を意味します。数を数えることと、いくつかの小さな数字の名前を学びましょう。\n\n## 4まで数える。\n\n§6 は数字なので、§7 も数字です。この新しい数字を §8 と呼びましょう。同様に §9, §10, §11 を定義します。これで十分な数を手に入れることができます。\n\n§12 が数字であることを示す *証明* §13 があります。証明リストの右側の「012」タブを確認してください。\n\n次に、0の後ろの後ろの数字である §14 を証明しましょう。", "## Summary\n\n§0 repeatedly applies the tactic §1\nto the goal. You don't need to use this\ntactic, it just speeds things up sometimes.\n\n## Example\n\n§2 will turn the goal\n§3\ninto the goal\n§4.\n\"\n\nTacticDoc nth_rewrite \"\n## Summary\n\nIf §5 and there are several §6s in the goal, then\n§7 will just change the third §8 to a §9.\n\n## Example\n\nIf the goal is §10 then §11\nwill change the goal to §12. In contrast, §13\nwill change the goal to §14.": @@ -647,7 +647,7 @@ "## Precision rewriting\n\nIn the last level, there was §0 and §1,\nand §2 changed the first one it saw,\nwhich was §3. Let's learn how to tell Lean\nto change §4 first by giving §5 an\nexplicit input.": "## 精密な書き換え\n\n直前のレベルでは、§0 と §1 が存在し、\n§2 は最初に見つかった §3 を変更しました。\nLean に §4 を最初に変更させる方法を学びましょう。\nこれを行うには、§5 に明示的な入力を与えます。", "# Welcome to the Natural Number Game\n#### An introduction to mathematical proof.\n\nIn this game, we will build the basic theory of the natural\nnumbers §0 from scratch. Our first goal is to prove\nthat §1. Next we'll prove that §2.\nAnd at the end we'll see if we can prove Fermat's Last Theorem.\nWe'll do this by solving levels of a computer puzzle game called Lean.\n\n# Read this.\n\nLearning how to use an interactive theorem prover takes time.\nTests show that the people who get the most out of this game are\nthose who read the help texts like this one.\n\nTo start, click on \"Tutorial World\".\n\nNote: this is a new Lean 4 version of the game containing several\nworlds which were not present in the old Lean 3 version. More new worlds\nsuch as Strong Induction World, Even/Odd World and Prime Number World\nare in development; if you want to see their state or even help out, checkout\nout the [issues in the github repo](https://github.com/leanprover-community/NNG4/issues).\n\n## More\n\nClick on the three lines in the top right and select \"Game Info\" for resources,\nlinks, and ways to interact with the Lean community.": - "# 自然数ゲームへようこそ\n#### 数学的証明への入門\n\nこのゲームでは、自然数 §0 の基本理論をゼロから構築します。最初の目標は §1 を証明することです。次に §2 を証明します。そして最後には、フェルマーの最終定理を証明できるかどうかを見ていきます。これらの目標を達成するために、コンピュータパズルゲーム「Lean」のレベルを解いていきます。\n\n# 読んでください。\n\nインタラクティブな定理証明システムの使い方を習得するには時間がかかります。テストの結果から、このゲームで最も効果的なのは、このようなヘルプテキストを読む人です。\n\n開始するには、「チュートリアルワールド」をクリックしてください。\n\n注意:これは、旧Lean 3版に存在しなかった複数のワールドを含む新しいLean 4版のゲームです。強い帰納法ワールド、偶数/奇数ワールド、素数ワールドなどの新しいワールドの開発が進行中です;これらの状態を確認したいか、協力したい場合は、[GitHubリポジトリのissues](https://github.com/leanprover-community/NNG4/issues) をチェックしてください。\n\n## 追加情報\n\n右上隅の三本線をクリックし、「ゲーム情報」を選択して、リソース、リンク、Leanコミュニティとの交流方法を確認してください。", + "# 自然数ゲームへようこそ\n#### 数学の証明への入門\n\nこのゲームでは、自然数 §0 の基礎理論をゼロから構築します。最初の目標は §1 を証明することです。次に §2 を証明します。そして最後には、フェルマーの最終定理を証明できるかどうかを見ていきます。これらの目標を達成するために、Leanと呼ばれるコンピュータパズルゲームのレベルを解いていきます。\n\n# 読んでください。\n\nインタラクティブな定理証明システムの使い方を習得するには時間がかかります。テストの結果から、このゲームで最も効果的なのは、このようなヘルプテキストを読む人です。\n\n開始するには、「チュートリアルワールド」をクリックしてください。\n\n注意:これは、旧Lean 3版に存在しなかった複数のワールドを含む新しいLean 4版のゲームです。強い帰納法ワールド、偶数/奇数ワールド、素数ワールドなどの新しいワールドの開発が進行中です;これらの状態を確認したいか、協力したい場合は、[GitHubリポジトリのissues](https://github.com/leanprover-community/NNG4/issues) をチェックしてください。\n\n## 追加情報\n\n右上隅の三本線をクリックし、「ゲーム情報」を選択して、リソース、リンク、Leanコミュニティとの交流方法を確認してください。", "# Summary\nThe §0 tactic changes a goal of §1 into a goal of §2.\nUse it when your hypotheses guarantee that the reason that §3\nis true is because in fact §4 is true.\n\nInternally this tactic is just §5ing a theorem\nsaying that §6\n\nNote that this tactic can turn a solvable goal into an unsolvable\none.": "# 概要\n§0 タクティクは、目標 §1 を §2 に変更します。\n仮定が、§3 が真である理由は実際には §4 が真であることを保証する場合に使用します。\n\n内部的には、このタクティクは §6 という定理を §5 します。\n\n注意していただきたいのは、このタクティクが、解決可能な目標を解決不能な目標に変更する可能性があることです。", "# Summary\n\n§0 will solve the goal §1.": "# 概要\n\n§0 は、目標 §1 を解決します。", From 3cc1ffffdad56812b082ccd488010a291ba09ce6 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 4 May 2026 04:22:49 +0900 Subject: [PATCH 104/147] ja: fix translations --- .i18n/ja/Game.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 1b7d25e1..58675a32 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -78,7 +78,7 @@ msgstr "" "開始するには、「チュートリアルワールド」をクリックしてください。\n" "\n" "注意:これは、旧Lean 3版に存在しなかった複数のワールドを含む" -"新しいLean 4版のゲームです。強い帰納法ワールド、偶数/奇数ワールド、" +"新しいLean 4版のゲームです。強帰納法ワールド、偶数/奇数ワールド、" "素数ワールドなどの新しいワールドの開発が進行中です;これらの状態を確認したいか、協力したい場合は、[GitHubリポジトリのissues]" "(https://github.com/leanprover-community/NNG4/issues) をチェックしてください。\n" "\n" From 3fcc8aeca1d9d705ce21fe53c8d229e135c65ca8 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 4 May 2026 04:23:13 +0900 Subject: [PATCH 105/147] ja: generate json --- .i18n/ja/Game.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.i18n/ja/Game.json b/.i18n/ja/Game.json index 45f96cde..1d18ba82 100644 --- a/.i18n/ja/Game.json +++ b/.i18n/ja/Game.json @@ -647,7 +647,7 @@ "## Precision rewriting\n\nIn the last level, there was §0 and §1,\nand §2 changed the first one it saw,\nwhich was §3. Let's learn how to tell Lean\nto change §4 first by giving §5 an\nexplicit input.": "## 精密な書き換え\n\n直前のレベルでは、§0 と §1 が存在し、\n§2 は最初に見つかった §3 を変更しました。\nLean に §4 を最初に変更させる方法を学びましょう。\nこれを行うには、§5 に明示的な入力を与えます。", "# Welcome to the Natural Number Game\n#### An introduction to mathematical proof.\n\nIn this game, we will build the basic theory of the natural\nnumbers §0 from scratch. Our first goal is to prove\nthat §1. Next we'll prove that §2.\nAnd at the end we'll see if we can prove Fermat's Last Theorem.\nWe'll do this by solving levels of a computer puzzle game called Lean.\n\n# Read this.\n\nLearning how to use an interactive theorem prover takes time.\nTests show that the people who get the most out of this game are\nthose who read the help texts like this one.\n\nTo start, click on \"Tutorial World\".\n\nNote: this is a new Lean 4 version of the game containing several\nworlds which were not present in the old Lean 3 version. More new worlds\nsuch as Strong Induction World, Even/Odd World and Prime Number World\nare in development; if you want to see their state or even help out, checkout\nout the [issues in the github repo](https://github.com/leanprover-community/NNG4/issues).\n\n## More\n\nClick on the three lines in the top right and select \"Game Info\" for resources,\nlinks, and ways to interact with the Lean community.": - "# 自然数ゲームへようこそ\n#### 数学の証明への入門\n\nこのゲームでは、自然数 §0 の基礎理論をゼロから構築します。最初の目標は §1 を証明することです。次に §2 を証明します。そして最後には、フェルマーの最終定理を証明できるかどうかを見ていきます。これらの目標を達成するために、Leanと呼ばれるコンピュータパズルゲームのレベルを解いていきます。\n\n# 読んでください。\n\nインタラクティブな定理証明システムの使い方を習得するには時間がかかります。テストの結果から、このゲームで最も効果的なのは、このようなヘルプテキストを読む人です。\n\n開始するには、「チュートリアルワールド」をクリックしてください。\n\n注意:これは、旧Lean 3版に存在しなかった複数のワールドを含む新しいLean 4版のゲームです。強い帰納法ワールド、偶数/奇数ワールド、素数ワールドなどの新しいワールドの開発が進行中です;これらの状態を確認したいか、協力したい場合は、[GitHubリポジトリのissues](https://github.com/leanprover-community/NNG4/issues) をチェックしてください。\n\n## 追加情報\n\n右上隅の三本線をクリックし、「ゲーム情報」を選択して、リソース、リンク、Leanコミュニティとの交流方法を確認してください。", + "# 自然数ゲームへようこそ\n#### 数学の証明への入門\n\nこのゲームでは、自然数 §0 の基礎理論をゼロから構築します。最初の目標は §1 を証明することです。次に §2 を証明します。そして最後には、フェルマーの最終定理を証明できるかどうかを見ていきます。これらの目標を達成するために、Leanと呼ばれるコンピュータパズルゲームのレベルを解いていきます。\n\n# 読んでください。\n\nインタラクティブな定理証明システムの使い方を習得するには時間がかかります。テストの結果から、このゲームで最も効果的なのは、このようなヘルプテキストを読む人です。\n\n開始するには、「チュートリアルワールド」をクリックしてください。\n\n注意:これは、旧Lean 3版に存在しなかった複数のワールドを含む新しいLean 4版のゲームです。強帰納法ワールド、偶数/奇数ワールド、素数ワールドなどの新しいワールドの開発が進行中です;これらの状態を確認したいか、協力したい場合は、[GitHubリポジトリのissues](https://github.com/leanprover-community/NNG4/issues) をチェックしてください。\n\n## 追加情報\n\n右上隅の三本線をクリックし、「ゲーム情報」を選択して、リソース、リンク、Leanコミュニティとの交流方法を確認してください。", "# Summary\nThe §0 tactic changes a goal of §1 into a goal of §2.\nUse it when your hypotheses guarantee that the reason that §3\nis true is because in fact §4 is true.\n\nInternally this tactic is just §5ing a theorem\nsaying that §6\n\nNote that this tactic can turn a solvable goal into an unsolvable\none.": "# 概要\n§0 タクティクは、目標 §1 を §2 に変更します。\n仮定が、§3 が真である理由は実際には §4 が真であることを保証する場合に使用します。\n\n内部的には、このタクティクは §6 という定理を §5 します。\n\n注意していただきたいのは、このタクティクが、解決可能な目標を解決不能な目標に変更する可能性があることです。", "# Summary\n\n§0 will solve the goal §1.": "# 概要\n\n§0 は、目標 §1 を解決します。", From 2eea2df367009f7bc7bc657c26963189e258568d Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 4 May 2026 04:25:25 +0900 Subject: [PATCH 106/147] ja: update translation --- .i18n/ja/Game.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 58675a32..dd56e857 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -164,8 +164,8 @@ msgstr "" "\n" "* [Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラム\n" "* " -"[オリジナルのLean3版](https://github.com/ImperialCollegeLondon/natural_number_game/)" -"(現在メンテナンスされていません)\n" +"[オリジナルのLean3バージョン](https://github.com/ImperialCollegeLondon/natural_number_game/)" +"(メンテナンス終了)\n" "\n" "## お困りですか?\n" "\n" From 8bf29f01ec008e8389bab92a68f2fe9fa9c249bf Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 4 May 2026 04:25:58 +0900 Subject: [PATCH 107/147] ja: generate json --- .i18n/ja/Game.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.i18n/ja/Game.json b/.i18n/ja/Game.json index 1d18ba82..f8cf752d 100644 --- a/.i18n/ja/Game.json +++ b/.i18n/ja/Game.json @@ -617,7 +617,7 @@ "1 ≠ 0": "1 ≠ 0", "0 ≤ x": "0 ≤ x", "*Game version: 4.3*\n\n*Recent additions: bug fixes*\n\n## Progress saving\n\nThe game stores your progress in your local browser storage.\nIf you delete it, your progress will be lost!\n\nWarning: In most browsers, deleting cookies will also clear the local storage\n(or \"local site data\"). Make sure to download your game progress first!\n\n## Credits\n\n* **Creators:** Kevin Buzzard, Jon Eugster\n* **Original Lean3-version:** Kevin Buzzard, Mohammad Pedramfar\n* **Game Engine:** Alexander Bentkamp, Jon Eugster, Patrick Massot\n* **Additional levels:** Sian Carey, Ivan Farabella, Archie Browne.\n* **Additional thanks:** All the student beta testers, all the schools\nwho invited Kevin to speak, and all the schoolkids who asked him questions\nabout the material.\n\n## Resources\n\n* The [Lean Zulip chat](https://leanprover.zulipchat.com/) forum\n* [Original Lean3 version](https://github.com/ImperialCollegeLondon/natural_number_game/) (no longer maintained)\n\n## Problems?\n\nPlease ask any questions about this game in the\n[Lean Zulip chat](https://leanprover.zulipchat.com/) forum, for example in\nthe stream \"New Members\". The community will happily help. Note that\nthe Lean Zulip chat is a professional research forum.\nPlease use your full real name there, stay on topic, and be nice. If you're\nlooking for somewhere less formal (e.g. you want to post natural number\ngame memes) then head on over to the [Lean Discord](https://discord.gg/WZ9bs9UCvx).\n\nAlternatively, if you experience issues / bugs you can also open github issues:\n\n* For issues with the game engine, please open an\n[issue at the lean4game](https://github.com/leanprover-community/lean4game/issues) repo.\n* For issues about the game's content, please open an\n[issue at the NNG](https://github.com/hhu-adam/NNG4/issues) repo.": - "*ゲームバージョン: 4.3*\n\n*最近の追加: バグ修正*\n\n## セーブデータの保存\n\nこのゲームは、あなたのセーブデータをローカルブラウザストレージに保存します。\nこれを削除すると、セーブデータが失われます!\n\n注意:多くのブラウザでは、クッキーを削除するとローカルストレージ(または「ローカルサイトデータ」)も削除されます。セーブデータを削除する前に、必ずセーブデータをダウンロードしてください!\n\n## クレジット\n\n* **クリエイター:** Kevin Buzzard, Jon Eugster\n* **オリジナルLean3バージョン:** Kevin Buzzard, Mohammad Pedramfar\n* **ゲームエンジン:** Alexander Bentkamp, Jon Eugster, Patrick Massot\n* **追加レベル:** Sian Carey, Ivan Farabella, Archie Browne.\n* **協力・謝辞:** ベータテストに参加した全ての学生達、Kevinを講演に招待した全ての学校、内容について質問をしてくれた全ての学校の子供たち\n\n## リソース\n\n* [Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラム\n* [オリジナルのLean3版](https://github.com/ImperialCollegeLondon/natural_number_game/)(現在メンテナンスされていません)\n\n## お困りですか?\n\nこのゲームに関する質問は、[Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラムで質問してください。例えば、「New Members」ストリームで質問できます。コミュニティは喜んでお手伝いします。注意: Lean Zulipチャットはプロフェッショナルな研究フォーラムです。そこでは本名を使用し、トピックに集中し、丁寧に接してください。よりカジュアルな場所(例えば、自然数ゲームのミームを投稿したい場合)を探している場合は、[Lean Discord](https://discord.gg/WZ9bs9UCvx) にアクセスしてください。\n(訳注: これらはいずれも外国語のコミュニティです。もし日本語で質問をしたいのであれば、[Lean の日本語コミュニティ](https://lean-ja.github.io/about/)上で質問すると良いでしょう。)\n\nあるいは、問題やバグが発生した場合は、GitHubのissueを作成することもできます:\n\n* ゲームエンジンに関する問題は、[lean4gameリポジトリでissueを作成](https://github.com/leanprover-community/lean4game/issues) してください。\n* ゲームの内容に関する問題は、[NNGリポジトリでissueを作成](https://github.com/hhu-adam/NNG4/issues) してください。", + "*ゲームバージョン: 4.3*\n\n*最近の追加: バグ修正*\n\n## セーブデータの保存\n\nこのゲームは、あなたのセーブデータをローカルブラウザストレージに保存します。\nこれを削除すると、セーブデータが失われます!\n\n注意:多くのブラウザでは、クッキーを削除するとローカルストレージ(または「ローカルサイトデータ」)も削除されます。セーブデータを削除する前に、必ずセーブデータをダウンロードしてください!\n\n## クレジット\n\n* **クリエイター:** Kevin Buzzard, Jon Eugster\n* **オリジナルLean3バージョン:** Kevin Buzzard, Mohammad Pedramfar\n* **ゲームエンジン:** Alexander Bentkamp, Jon Eugster, Patrick Massot\n* **追加レベル:** Sian Carey, Ivan Farabella, Archie Browne.\n* **協力・謝辞:** ベータテストに参加した全ての学生達、Kevinを講演に招待した全ての学校、内容について質問をしてくれた全ての学校の子供たち\n\n## リソース\n\n* [Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラム\n* [オリジナルのLean3バージョン](https://github.com/ImperialCollegeLondon/natural_number_game/)(メンテナンス終了)\n\n## お困りですか?\n\nこのゲームに関する質問は、[Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラムで質問してください。例えば、「New Members」ストリームで質問できます。コミュニティは喜んでお手伝いします。注意: Lean Zulipチャットはプロフェッショナルな研究フォーラムです。そこでは本名を使用し、トピックに集中し、丁寧に接してください。よりカジュアルな場所(例えば、自然数ゲームのミームを投稿したい場合)を探している場合は、[Lean Discord](https://discord.gg/WZ9bs9UCvx) にアクセスしてください。\n(訳注: これらはいずれも外国語のコミュニティです。もし日本語で質問をしたいのであれば、[Lean の日本語コミュニティ](https://lean-ja.github.io/about/)上で質問すると良いでしょう。)\n\nあるいは、問題やバグが発生した場合は、GitHubのissueを作成することもできます:\n\n* ゲームエンジンに関する問題は、[lean4gameリポジトリでissueを作成](https://github.com/leanprover-community/lean4game/issues) してください。\n* ゲームの内容に関する問題は、[NNGリポジトリでissueを作成](https://github.com/hhu-adam/NNG4/issues) してください。", "## The birth of number.\n\nNumbers in Lean are defined by two rules.\n\n* §0 is a number.\n* If §1 is a number, then the *successor* §2 of §3 is a number.\n\nThe successor of §4 means the number after §5. Let's learn to\ncount, and name a few small numbers.\n\n## Counting to four.\n\n§6 is a number, so §7 is a number. Let's call this new number §8.\nSimilarly let's define §9, §10 and §11.\nThis gives us plenty of numbers to be getting along with.\n\nThe *proof* that §12 is called §13.\nCheck out the \"012\" tab in the list of lemmas on the right\nfor this and other proofs.\n\nLet's prove that §14 is the number after the number after zero.": "## 数字の誕生。\n\nLeanにおける数字は、以下の2つのルールで定義されます。\n\n* §0 は数字です。\n* もし §1 が数字ならば、§3 の *後続* §2 も数字です。\n\n§4 の「後続」とは、§5 の次の数字を意味します。数を数えることと、いくつかの小さな数字の名前を学びましょう。\n\n## 4まで数える。\n\n§6 は数字なので、§7 も数字です。この新しい数字を §8 と呼びましょう。同様に §9, §10, §11 を定義します。これで十分な数を手に入れることができます。\n\n§12 が数字であることを示す *証明* §13 があります。証明リストの右側の「012」タブを確認してください。\n\n次に、0の後ろの後ろの数字である §14 を証明しましょう。", "## Summary\n\n§0 repeatedly applies the tactic §1\nto the goal. You don't need to use this\ntactic, it just speeds things up sometimes.\n\n## Example\n\n§2 will turn the goal\n§3\ninto the goal\n§4.\n\"\n\nTacticDoc nth_rewrite \"\n## Summary\n\nIf §5 and there are several §6s in the goal, then\n§7 will just change the third §8 to a §9.\n\n## Example\n\nIf the goal is §10 then §11\nwill change the goal to §12. In contrast, §13\nwill change the goal to §14.": From a80feb005f33034f50f59652b382a84241e796e3 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 4 May 2026 04:31:00 +0900 Subject: [PATCH 108/147] ja: update translation --- .i18n/ja/Game.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index dd56e857..e12fdda2 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -171,7 +171,7 @@ msgstr "" "\n" "このゲームに関する質問は、[Lean Zulipチャット](https://leanprover.zulipchat.com/) " "フォーラムで質問してください。例えば、「New Members」ストリームで質問できます。コミュニティは喜んでお手伝いします。注意: Lean " -"Zulipチャットはプロフェッショナルな研究フォーラムです。そこでは本名を使用し、トピックに集中し、丁寧に接してください。よりカジュアルな場所(例えば、" +"Zulipチャットはプロフェッショナルな研究フォーラムです。そこでは本名(フルネーム)を使用し、トピックに集中し、丁寧に接してください。よりカジュアルな場所(例えば、" "自然数ゲームのミームを投稿したい場合)を探している場合は、" "[Lean Discord](https://discord.gg/WZ9bs9UCvx) にアクセスしてください。\n" "(訳注: これらはいずれも外国語のコミュニティです。もし日本語で質問をしたいのであれば、[Lean " From 1c3010e1416e40c927aebb48bf74b4d053671fb0 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 4 May 2026 04:31:17 +0900 Subject: [PATCH 109/147] ja: generate json --- .i18n/ja/Game.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.i18n/ja/Game.json b/.i18n/ja/Game.json index f8cf752d..4586c0c8 100644 --- a/.i18n/ja/Game.json +++ b/.i18n/ja/Game.json @@ -617,7 +617,7 @@ "1 ≠ 0": "1 ≠ 0", "0 ≤ x": "0 ≤ x", "*Game version: 4.3*\n\n*Recent additions: bug fixes*\n\n## Progress saving\n\nThe game stores your progress in your local browser storage.\nIf you delete it, your progress will be lost!\n\nWarning: In most browsers, deleting cookies will also clear the local storage\n(or \"local site data\"). Make sure to download your game progress first!\n\n## Credits\n\n* **Creators:** Kevin Buzzard, Jon Eugster\n* **Original Lean3-version:** Kevin Buzzard, Mohammad Pedramfar\n* **Game Engine:** Alexander Bentkamp, Jon Eugster, Patrick Massot\n* **Additional levels:** Sian Carey, Ivan Farabella, Archie Browne.\n* **Additional thanks:** All the student beta testers, all the schools\nwho invited Kevin to speak, and all the schoolkids who asked him questions\nabout the material.\n\n## Resources\n\n* The [Lean Zulip chat](https://leanprover.zulipchat.com/) forum\n* [Original Lean3 version](https://github.com/ImperialCollegeLondon/natural_number_game/) (no longer maintained)\n\n## Problems?\n\nPlease ask any questions about this game in the\n[Lean Zulip chat](https://leanprover.zulipchat.com/) forum, for example in\nthe stream \"New Members\". The community will happily help. Note that\nthe Lean Zulip chat is a professional research forum.\nPlease use your full real name there, stay on topic, and be nice. If you're\nlooking for somewhere less formal (e.g. you want to post natural number\ngame memes) then head on over to the [Lean Discord](https://discord.gg/WZ9bs9UCvx).\n\nAlternatively, if you experience issues / bugs you can also open github issues:\n\n* For issues with the game engine, please open an\n[issue at the lean4game](https://github.com/leanprover-community/lean4game/issues) repo.\n* For issues about the game's content, please open an\n[issue at the NNG](https://github.com/hhu-adam/NNG4/issues) repo.": - "*ゲームバージョン: 4.3*\n\n*最近の追加: バグ修正*\n\n## セーブデータの保存\n\nこのゲームは、あなたのセーブデータをローカルブラウザストレージに保存します。\nこれを削除すると、セーブデータが失われます!\n\n注意:多くのブラウザでは、クッキーを削除するとローカルストレージ(または「ローカルサイトデータ」)も削除されます。セーブデータを削除する前に、必ずセーブデータをダウンロードしてください!\n\n## クレジット\n\n* **クリエイター:** Kevin Buzzard, Jon Eugster\n* **オリジナルLean3バージョン:** Kevin Buzzard, Mohammad Pedramfar\n* **ゲームエンジン:** Alexander Bentkamp, Jon Eugster, Patrick Massot\n* **追加レベル:** Sian Carey, Ivan Farabella, Archie Browne.\n* **協力・謝辞:** ベータテストに参加した全ての学生達、Kevinを講演に招待した全ての学校、内容について質問をしてくれた全ての学校の子供たち\n\n## リソース\n\n* [Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラム\n* [オリジナルのLean3バージョン](https://github.com/ImperialCollegeLondon/natural_number_game/)(メンテナンス終了)\n\n## お困りですか?\n\nこのゲームに関する質問は、[Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラムで質問してください。例えば、「New Members」ストリームで質問できます。コミュニティは喜んでお手伝いします。注意: Lean Zulipチャットはプロフェッショナルな研究フォーラムです。そこでは本名を使用し、トピックに集中し、丁寧に接してください。よりカジュアルな場所(例えば、自然数ゲームのミームを投稿したい場合)を探している場合は、[Lean Discord](https://discord.gg/WZ9bs9UCvx) にアクセスしてください。\n(訳注: これらはいずれも外国語のコミュニティです。もし日本語で質問をしたいのであれば、[Lean の日本語コミュニティ](https://lean-ja.github.io/about/)上で質問すると良いでしょう。)\n\nあるいは、問題やバグが発生した場合は、GitHubのissueを作成することもできます:\n\n* ゲームエンジンに関する問題は、[lean4gameリポジトリでissueを作成](https://github.com/leanprover-community/lean4game/issues) してください。\n* ゲームの内容に関する問題は、[NNGリポジトリでissueを作成](https://github.com/hhu-adam/NNG4/issues) してください。", + "*ゲームバージョン: 4.3*\n\n*最近の追加: バグ修正*\n\n## セーブデータの保存\n\nこのゲームは、あなたのセーブデータをローカルブラウザストレージに保存します。\nこれを削除すると、セーブデータが失われます!\n\n注意:多くのブラウザでは、クッキーを削除するとローカルストレージ(または「ローカルサイトデータ」)も削除されます。セーブデータを削除する前に、必ずセーブデータをダウンロードしてください!\n\n## クレジット\n\n* **クリエイター:** Kevin Buzzard, Jon Eugster\n* **オリジナルLean3バージョン:** Kevin Buzzard, Mohammad Pedramfar\n* **ゲームエンジン:** Alexander Bentkamp, Jon Eugster, Patrick Massot\n* **追加レベル:** Sian Carey, Ivan Farabella, Archie Browne.\n* **協力・謝辞:** ベータテストに参加した全ての学生達、Kevinを講演に招待した全ての学校、内容について質問をしてくれた全ての学校の子供たち\n\n## リソース\n\n* [Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラム\n* [オリジナルのLean3バージョン](https://github.com/ImperialCollegeLondon/natural_number_game/)(メンテナンス終了)\n\n## お困りですか?\n\nこのゲームに関する質問は、[Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラムで質問してください。例えば、「New Members」ストリームで質問できます。コミュニティは喜んでお手伝いします。注意: Lean Zulipチャットはプロフェッショナルな研究フォーラムです。そこでは本名(フルネーム)を使用し、トピックに集中し、丁寧に接してください。よりカジュアルな場所(例えば、自然数ゲームのミームを投稿したい場合)を探している場合は、[Lean Discord](https://discord.gg/WZ9bs9UCvx) にアクセスしてください。\n(訳注: これらはいずれも外国語のコミュニティです。もし日本語で質問をしたいのであれば、[Lean の日本語コミュニティ](https://lean-ja.github.io/about/)上で質問すると良いでしょう。)\n\nあるいは、問題やバグが発生した場合は、GitHubのissueを作成することもできます:\n\n* ゲームエンジンに関する問題は、[lean4gameリポジトリでissueを作成](https://github.com/leanprover-community/lean4game/issues) してください。\n* ゲームの内容に関する問題は、[NNGリポジトリでissueを作成](https://github.com/hhu-adam/NNG4/issues) してください。", "## The birth of number.\n\nNumbers in Lean are defined by two rules.\n\n* §0 is a number.\n* If §1 is a number, then the *successor* §2 of §3 is a number.\n\nThe successor of §4 means the number after §5. Let's learn to\ncount, and name a few small numbers.\n\n## Counting to four.\n\n§6 is a number, so §7 is a number. Let's call this new number §8.\nSimilarly let's define §9, §10 and §11.\nThis gives us plenty of numbers to be getting along with.\n\nThe *proof* that §12 is called §13.\nCheck out the \"012\" tab in the list of lemmas on the right\nfor this and other proofs.\n\nLet's prove that §14 is the number after the number after zero.": "## 数字の誕生。\n\nLeanにおける数字は、以下の2つのルールで定義されます。\n\n* §0 は数字です。\n* もし §1 が数字ならば、§3 の *後続* §2 も数字です。\n\n§4 の「後続」とは、§5 の次の数字を意味します。数を数えることと、いくつかの小さな数字の名前を学びましょう。\n\n## 4まで数える。\n\n§6 は数字なので、§7 も数字です。この新しい数字を §8 と呼びましょう。同様に §9, §10, §11 を定義します。これで十分な数を手に入れることができます。\n\n§12 が数字であることを示す *証明* §13 があります。証明リストの右側の「012」タブを確認してください。\n\n次に、0の後ろの後ろの数字である §14 を証明しましょう。", "## Summary\n\n§0 repeatedly applies the tactic §1\nto the goal. You don't need to use this\ntactic, it just speeds things up sometimes.\n\n## Example\n\n§2 will turn the goal\n§3\ninto the goal\n§4.\n\"\n\nTacticDoc nth_rewrite \"\n## Summary\n\nIf §5 and there are several §6s in the goal, then\n§7 will just change the third §8 to a §9.\n\n## Example\n\nIf the goal is §10 then §11\nwill change the goal to §12. In contrast, §13\nwill change the goal to §14.": From 91c359a7e694148643bd62aafa4d4ad777e8c202 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 10 May 2026 03:07:23 +0900 Subject: [PATCH 110/147] add meta comment --- .i18n/ja/Game.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index e12fdda2..3217e814 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1,5 +1,5 @@ # no-translate: 翻訳不要(タクティク名のみなど) -# +# lean4game-statement: lean4gameに表示される msgid "" msgstr "" "Project-Id-Version: Game v4.23.0\n" From 6d8d805500fa77716d51d28db08347e333f0cdf7 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 17 May 2026 03:01:34 +0900 Subject: [PATCH 111/147] ja: improve translation Tutorial.L01 --- .i18n/ja/Game.po | 64 ++++++++++++++++++++----------------------- .i18n/ja/Rules.md | 7 +++++ .i18n/ja/glossary.csv | 10 +++++-- 3 files changed, 45 insertions(+), 36 deletions(-) create mode 100644 .i18n/ja/Rules.md diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 3217e814..57925986 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -193,7 +193,6 @@ msgstr "古典的なLeanの導入ゲーム。" #: Game.Levels.Tutorial #. §0: `2 + 2 = 4` -#, fuzzy msgid "" "Welcome to tutorial world! In this world we learn the basics\n" "of proving theorems. The boss level of this world\n" @@ -206,24 +205,23 @@ msgid "" "Let's learn some basic tactics. Click on \"Start\" below\n" "to begin your quest." msgstr "" -"チュートリアルワールドへようこそ!この世界では、定理の証明方法の基本を学びます。この世界の最終ボスは定理§0です。\n" +"チュートリアルワールドへようこそ!このワールドでは、定理を証明する方法の基本を学びます。このワールドのボスは定理§0です。\n" "\n" -"定理を証明するには、*タクティク*と呼ばれるツールを使ってパズルを解きます。目標は、適切な順序でタクティクを適用して定理を証明することです。\n" +"定理を証明するには、*タクティク* (tactics) " +"と呼ばれるツールを使ってパズルを解きます。各レベルの目的は、適切な順序でタクティクを適用して定理を証明することです。\n" "\n" "基本的なタクティクについて学びましょう。「開始」をクリックして冒険を始めてください。" #: Game.Levels.Tutorial -#, fuzzy msgid "Tutorial World" msgstr "チュートリアルワールド" #: Game.Levels.Tutorial.L01rfl #. §0: `rfl` -#, fuzzy msgid "" "In order to use the tactic §0 you can enter it in the text box\n" "under the goal and hit \"Execute\"." -msgstr "タクティク §0 を使用するには、目標の下にあるテキストボックスに記述し、「実行」ボタンをクリックしてください。" +msgstr "§0 タクティクを使用するには、ゴールの下にあるテキストボックスに入力し、「実行」ボタンをクリックしてください。" #: Game.Levels.Tutorial.L01rfl #. §0: $37$ @@ -238,7 +236,6 @@ msgstr "タクティク §0 を使用するには、目標の下にあるテキ #. §9: $X = X$ #. §10: $37x+q=37x+q$ #. §11: `rfl` -#, fuzzy msgid "" "# Read this first\n" "\n" @@ -259,30 +256,31 @@ msgid "" "\n" "Prove that §10 by executing the §11 tactic." msgstr "" -"# まずはこちらを読む\n" +"# まずはここから\n" "\n" -"このゲームの各レベルでは、数学的な定理(「目標」)を証明します。\n" -"目標は数に関する主張です。このゲームには既知の値を持つ数がいくつかあります。\n" -"その数には§0のような名前がついています。他の数は秘密です。§1や§2のような名前で呼ばれます。§3" -"は数であることは分かっていますが、具体的にはどの数かは分かりません。\n" +"このゲームの各レベルでは、数学の定理(「ゴール」)を証明していきます。\n" +"ゴールは *数* に関する命題です。このゲームにはすでに値が分かっている数がいくつかあります。\n" +"そうした数には §0 のような名前がついています。\n" +"一方で、正体が秘密にされている数もあります。\n" +"それらは§1 や §2 などと呼ばれます。\n" +"§3は数であることは分かっていますが、具体的にはどの数なのかは分かりません。\n" "\n" -"この最初のレベルでは、§4という定理を証明します。\n" -"下の*対象*に§5が表示されているので、§6と§7は数であることが分かります。\n" +"この最初のレベルでは、 §4 という定理を証明します。\n" +"下の *対象* に §5 が表示されているので、 §6 と §7 が数であることが分かります。\n" "\n" -"Leanで目標を解決するには*タクティク*を使用します。最初に学ぶタクティクは§8で、これは§9のような形式の定理を証明します。\n" +"Leanでゴールを解決するには*タクティク*を使用します。最初に学ぶタクティクは§8で、これは§9という形の全ての定理を証明します。\n" "\n" -"§10を証明するために§11 タクティクを実行してください。" +"§11 タクティクを実行して、§10を証明してください。" +# lean4game-statement #: Game.Levels.Tutorial.L01rfl #. §0: $x$ #. §1: $q$ #. §2: $37x+q=37x+q.$ -#, fuzzy msgid "If §0 and §1 are arbitrary natural numbers, then §2" -msgstr "任意の自然数§0と§1が与えられたとき、§2" +msgstr "任意の自然数 §0 、 §1 に対して、 §2" #: Game.Levels.Tutorial.L01rfl -#, fuzzy msgid "The rfl tactic" msgstr "rfl タクティク" @@ -309,7 +307,6 @@ msgstr "rfl タクティク" #. §17: `mathlib` #. §18: `zero_add` #. §19: `add_zero` -#, fuzzy msgid "" "## Summary\n" "\n" @@ -349,37 +346,36 @@ msgid "" msgstr "" "## 概要\n" "\n" -"§0 は、形式 §1 のような目標を証明します。\n" +"§0 は §1 という形式のゴールを解決します。\n" "\n" -"つまり、§2 タクティクは、§4 と §5 が *完全に同一* である場合に、形式 §3 の任意の目標を解決します。\n" +"つまり、§4 と §5 が *完全に同一* である場合、§2 タクティク は §3 という形式の任意のゴールを解決します。\n" "\n" -"§6 は、「等号の反射律」の略です。\n" +"§6 は「(等号の)反射律 (reflexivity)」の略です。\n" "\n" "## 例\n" "\n" -"もし目標が以下のようであれば:\n" +"ゴールが以下のような場合:\n" "\n" "§7\n" "\n" -"§8 でそれを解決できます。しかし、もし目標が §9 のように見えた場合、§10 は機能しません。なぜなら、§11 と §12 " -"は数値としては常に等しいですが、項としては等しくないからです。§13 と完全に一致する項は §14 だけです。\n" +"§8 で証明できます。しかし、ゴールが §9 のような場合、§10 は機能しません。なぜなら、§11 と §12 " +"は *数* としては常に等しいですが、 *項* としては等しくないからです。§13 と完全に同一な項は §14 だけです。\n" "\n" "## 詳細\n" "\n" -"§15 は、「等号の反射律」の略です。\n" +"§15 は「等号の反射律 (reflexivity of equality)」の略です。\n" "\n" "## ゲームの実装\n" "\n" -"注意点として、当の §16 は、コア Lean および §17 " -"で使用されているバージョンよりも弱く、教育目的のためにそう設計されています。数学的には、論理的等価と定義的等価を区別しない理由は、定義の考え方がタイプ理" -"論家と異なるからです(数学的には §18 と §19 はどちらも「事実」であり、加法の定義などは誰がどう思っても構いません)。" +"このゲームの §16 は、教育的な目的から、Lean本体のコアや §17 " +"で使われているものよりも機能が制限されていることに注意してください。数学者が命題上の等しさと定義上の等しさを区別しないのは、定義に対する考え方が型理論の専門家とは異なるからです" +"(数学者にとって §18 と §19 はどちらも「事実」であり、加法の定義がどうなっているかは重要ではありません)。\n" #: Game.Levels.Tutorial.L01rfl #. §0: `rfl` #. §1: `rfl` #. §2: `rfl` #. §3: `rw` -#, fuzzy msgid "" "Congratulations! You completed your first verified proof!\n" "\n" @@ -389,12 +385,12 @@ msgid "" "\n" "Now click on \"Next\" to learn about the §3 tactic." msgstr "" -"おめでとうございます!あなたは初めての検証証明を完了しました!\n" +"おめでとうございます!初めての証明が完成しました!\n" "\n" -"覚えておいてください。 §0 は*タクティク*と呼ばれる操作です。もし §1 のタクティクに関する情報が必要な場合は、右側のタクティク一覧にある §2 " +"§0 は *タクティク* であることを覚えておいてください。もし §1 タクティクについて情報が必要になったら、右側のタクティク一覧にある §2 " "をクリックしてください。\n" "\n" -"「次」をクリックして、 §3 のタクティクについて学びましょう。" +"「次」をクリックして、 §3 タクティクについて学びましょう。" #: Game.Levels.Tutorial.L02rw #, fuzzy diff --git a/.i18n/ja/Rules.md b/.i18n/ja/Rules.md new file mode 100644 index 00000000..80977805 --- /dev/null +++ b/.i18n/ja/Rules.md @@ -0,0 +1,7 @@ +# Rule + +* 特別な記載が無い限り、glossary.csv の対訳に従う +* 原文の語順に関わらず、特定のタクティクに言及する際は、 "rfl タクティク" のようにする + * **例外:原文で "the `...` tactic" ではなく タクティク名単体 (例: `rfl`) のみが記述されている箇所については、日本語でも「タクティク」を付けず、単体で表記する** +* 「tactics」は「タクティク」と訳す(末尾の「ス」は含めない) +* "solve the goal" の「ゴールを閉じる」は、「ゴールを解決する」に統一する diff --git a/.i18n/ja/glossary.csv b/.i18n/ja/glossary.csv index f171c4cf..077e1ab6 100644 --- a/.i18n/ja/glossary.csv +++ b/.i18n/ja/glossary.csv @@ -13,15 +13,21 @@ progress,セーブデータ,意訳 進捗でも良いかと思ったが、こち associativity,結合性 totality,全順序性 implication,含意 -transitivity,推移性 -reflexivity,反射性 +transitivity,推移律 +reflexivity,反射律 the freshman's dream,一年生の夢,Wikipediaに記述あり natural numbers,自然数 mathematical proof,数学の証明,数学的は一般的ではなさそうと判断 +theorem,定理 +Statement,命題,文脈で主張やステートメントにする +Proposition,命題 # Lean /tactics?/,タクティク goal,ゴール,一般語句との混在に注意 +object,対象,ローカルコンテキスト の項目が表示されるが、仮定と分けて表示されたりすることもあるため対象 と訳すのが無難と判断 +definitional equality,定義上の等しさ,https://github.com/lean-ja/fp-lean-ja/issues/91 +propositional equality,命題上の等しさ,https://github.com/lean-ja/fp-lean-ja/issues/91 # Worlds successor,後者,Wikipediaから From 1b2bb6d4ae0d9403f19730a03e6045138182ccf5 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Wed, 20 May 2026 01:01:01 +0900 Subject: [PATCH 112/147] ja: improve translation Tutorial.L02 --- .i18n/ja/Game.po | 204 +++++++++++++++++++---------------------------- 1 file changed, 81 insertions(+), 123 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 57925986..1470d77b 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1,5 +1,5 @@ # no-translate: 翻訳不要(タクティク名のみなど) -# lean4game-statement: lean4gameに表示される +# lean4game-statement: lean4gameに表示される命題 msgid "" msgstr "" "Project-Id-Version: Game v4.23.0\n" @@ -66,20 +66,19 @@ msgstr "" "#### 数学の証明への入門\n" "\n" "このゲームでは、自然数 §0 の基礎理論をゼロから構築します。最初の目標は §1 を証明することです。次に §2 " -"を証明します。そして最後には、フェルマーの最終定理を証明できるかどうかを見ていきます。これらの目標を達成するために、Leanと呼ばれるコンピュータパズルゲーム" -"のレベルを解いていきます。\n" +"を証明します。そして最後には、フェルマーの最終定理を証明できるかどうかを見ていきます。これらの目標を達成するために、Leanと呼ばれるコンピュータパズル" +"ゲームのレベルを解いていきます。\n" "\n" "# 読んでください。\n" "\n" -"インタラクティブな定理証明システムの使い方を習得するには時間がかかります。" -"テストの結果から、このゲームで最も効果的なのは、" -"このようなヘルプテキストを読む人です。\n" +"インタラクティブな定理証明システムの使い方を習得するには時間がかかります。テストの結果から、このゲームで最も効果的なのは、このようなヘルプテキストを読む" +"人です。\n" "\n" "開始するには、「チュートリアルワールド」をクリックしてください。\n" "\n" -"注意:これは、旧Lean 3版に存在しなかった複数のワールドを含む" -"新しいLean 4版のゲームです。強帰納法ワールド、偶数/奇数ワールド、" -"素数ワールドなどの新しいワールドの開発が進行中です;これらの状態を確認したいか、協力したい場合は、[GitHubリポジトリのissues]" +"注意:これは、旧Lean 3版に存在しなかった複数のワールドを含む新しいLean " +"4版のゲームです。強帰納法ワールド、偶数/" +"奇数ワールド、素数ワールドなどの新しいワールドの開発が進行中です;これらの状態を確認したいか、協力したい場合は、[GitHubリポジトリのissues]" "(https://github.com/leanprover-community/NNG4/issues) をチェックしてください。\n" "\n" "## 追加情報\n" @@ -148,9 +147,8 @@ msgstr "" "このゲームは、あなたのセーブデータをローカルブラウザストレージに保存します。\n" "これを削除すると、セーブデータが失われます!\n" "\n" -"注意:多くのブラウザでは、クッキーを削除するとローカルストレージ" -"(または「ローカルサイトデータ」)も削除されます。" -"セーブデータを削除する前に、必ずセーブデータをダウンロードしてください!\n" +"注意:多くのブラウザでは、クッキーを削除するとローカルストレージ(または「ローカルサイトデータ」)も削除されます。セーブデータを削除する前に、必ずセーブ" +"データをダウンロードしてください!\n" "\n" "## クレジット\n" "\n" @@ -164,24 +162,27 @@ msgstr "" "\n" "* [Lean Zulipチャット](https://leanprover.zulipchat.com/) フォーラム\n" "* " -"[オリジナルのLean3バージョン](https://github.com/ImperialCollegeLondon/natural_number_game/)" -"(メンテナンス終了)\n" +"[オリジナルのLean3バージョン](https://github.com/ImperialCollegeLondon/natural_number_" +"game/)(メンテナンス終了)\n" "\n" "## お困りですか?\n" "\n" "このゲームに関する質問は、[Lean Zulipチャット](https://leanprover.zulipchat.com/) " "フォーラムで質問してください。例えば、「New Members」ストリームで質問できます。コミュニティは喜んでお手伝いします。注意: Lean " -"Zulipチャットはプロフェッショナルな研究フォーラムです。そこでは本名(フルネーム)を使用し、トピックに集中し、丁寧に接してください。よりカジュアルな場所(例えば、" -"自然数ゲームのミームを投稿したい場合)を探している場合は、" -"[Lean Discord](https://discord.gg/WZ9bs9UCvx) にアクセスしてください。\n" +"Zulipチャットはプロフェッショナルな研究フォーラムです。そこでは本名(フルネーム)を使用し、トピックに集中し、丁寧に接してください。よりカジュアルな" +"場所(例えば、自然数ゲームのミームを投稿したい場合)を探している場合は、[Lean " +"Discord](https://discord.gg/WZ9bs9UCvx) にアクセスしてください。\n" "(訳注: これらはいずれも外国語のコミュニティです。もし日本語で質問をしたいのであれば、[Lean " "の日本語コミュニティ](https://lean-ja.github.io/about/)上で質問すると良いでしょう。)\n" "\n" "あるいは、問題やバグが発生した場合は、GitHubのissueを作成することもできます:\n" "\n" -"* ゲームエンジンに関する問題は、[lean4gameリポジトリでissueを作成]" -"(https://github.com/leanprover-community/lean4game/issues) してください。\n" -"* ゲームの内容に関する問題は、[NNGリポジトリでissueを作成](https://github.com/hhu-adam/NNG4/issues) してください。" +"* " +"ゲームエンジンに関する問題は、[lean4gameリポジトリでissueを作成](https://github.com/leanprover-" +"community/lean4game/issues) してください。\n" +"* " +"ゲームの内容に関する問題は、[NNGリポジトリでissueを作成](https://github.com/hhu-adam/NNG4/issues) " +"してください。" #: Game msgid "Natural Number Game" @@ -358,8 +359,8 @@ msgstr "" "\n" "§7\n" "\n" -"§8 で証明できます。しかし、ゴールが §9 のような場合、§10 は機能しません。なぜなら、§11 と §12 " -"は *数* としては常に等しいですが、 *項* としては等しくないからです。§13 と完全に同一な項は §14 だけです。\n" +"§8 で証明できます。しかし、ゴールが §9 のような場合、§10 は機能しません。なぜなら、§11 と §12 は *数* " +"としては常に等しいですが、 *項* としては等しくないからです。§13 と完全に同一な項は §14 だけです。\n" "\n" "## 詳細\n" "\n" @@ -368,8 +369,8 @@ msgstr "" "## ゲームの実装\n" "\n" "このゲームの §16 は、教育的な目的から、Lean本体のコアや §17 " -"で使われているものよりも機能が制限されていることに注意してください。数学者が命題上の等しさと定義上の等しさを区別しないのは、定義に対する考え方が型理論の専門家とは異なるからです" -"(数学者にとって §18 と §19 はどちらも「事実」であり、加法の定義がどうなっているかは重要ではありません)。\n" +"で使われているものよりも機能が制限されていることに注意してください。数学者が命題上の等しさと定義上の等しさを区別しないのは、定義に対する考え方が型理論の" +"専門家とは異なるからです(数学者にとって §18 と §19 はどちらも「事実」であり、加法の定義がどうなっているかは重要ではありません)。\n" #: Game.Levels.Tutorial.L01rfl #. §0: `rfl` @@ -393,7 +394,6 @@ msgstr "" "「次」をクリックして、 §3 タクティクについて学びましょう。" #: Game.Levels.Tutorial.L02rw -#, fuzzy msgid "the rw tactic" msgstr "rw タクティク" @@ -401,7 +401,7 @@ msgstr "rw タクティク" #. §0: `rfl` #, fuzzy msgid "Now §0 will work." -msgstr "現在、§0 は正常に動作します。" +msgstr "これで §0 が使えるようになります。" #: Game.Levels.Tutorial.L02rw #. §0: `repeat t` @@ -419,7 +419,6 @@ msgstr "現在、§0 は正常に動作します。" #. §12: `2 + succ 1 = 4` #. §13: `rw [two_eq_succ_one]` #. §14: `succ 1 + succ 1 = 4` -#, fuzzy msgid "" "## Summary\n" "\n" @@ -449,23 +448,25 @@ msgid "" msgstr "" "## 概要\n" "\n" -"§0 は、目標に対して §1 のタクティクを繰り返し適用します。このタクティクは必須ではありませんが、場合によっては処理を高速化できます。\n" +"§0 は、§1 タクティクをゴールに対して繰り返し適用します。このタクティクを使う必要はありませんが、時として作業をスピードアップさせてくれます。\n" "\n" "## 例\n" "\n" -"§2 は目標\n" +"§2 はゴール\n" "§3\n" -"を §4 に書き換えます。\n" -"\n" -"---\n" +"をゴール\n" +"§4\n" +"に変更します。\n" +"\"\n" "\n" +"TacticDoc nth_rewrite \"\n" "## 概要\n" "\n" -"§5 が成り立つ場合に、目標に複数の §6 が含まれる場合、§7 は第三の §8 を §9 に変更します。\n" +"§5 であり、かつゴール内に複数の §6 が存在する場合、§7 は3番目の §8 を §9 に変更します。\n" "\n" "## 例\n" "\n" -"目標が §10 の場合、§11 は目標を §12 に変更します。一方、§13 は目標を §14 に変更します。" +"ゴールが §10 の場合、§11 はゴールを §12 に変更します。 一方で、§13 はゴールを §14 に変更します。" #: Game.Levels.Tutorial.L02rw #. §0: `h` @@ -560,7 +561,6 @@ msgstr "" #. §84: `X` #. §85: `Y` #. §86: `nth_rewrite 37 [h]` -#, fuzzy msgid "" "## Summary\n" "\n" @@ -618,7 +618,7 @@ msgid "" "\n" "## Details\n" "\n" -"The §48 tactic is a way to do \\\\\"substituting in\\\\\". There\n" +"The §48 tactic is a way to do \\\"substituting in\\\". There\n" "are two distinct situations where you can use this tactic.\n" "\n" "1) Basic usage: if §49 is an assumption or\n" @@ -655,111 +655,70 @@ msgid "" msgstr "" "## 概要\n" "\n" -"もし §0 が等式 §1 の証明であるならば、§2 は目標内のすべての §3 を §4 に変更します。これは「代入」を行う方法です。\n" +"もし §0 が等式 §1 の証明であるならば、§2 はゴール内のすべての §3 を §4 に変更します。これは「代入」を行う方法です。\n" "\n" "## バリエーション\n" "\n" -"* §5 (目標内の §6 を §7 に変更;バックアローは §8 または §9 を入力することで取得します。)\n" +"* §5(§6 を §7 に変更します。左向きの矢印(←)は §8 または §9 と入力することで入力できます。)\n" "\n" -"* §10 (一連の変換)\n" +"* §10(一連の書き換え)\n" "\n" -"* §11 (仮定 §14 内を §12 から §13 に変更)\n" +"* §11(仮定 §14 内の §12 を §13 に変更します)\n" "\n" -"* §15 (目標と 2 つの仮定内を §16 から §17 に変更;§18 のシンボルは §19 で取得します。)\n" +"* §15(2つの仮定とゴール内の §16 を §17 に変更します。§18 記号は §19 で入力できます。)\n" "\n" -"* §20 は §21 を §22 に変更し続けるまで、§23 との一致がなくなるまで変更します。\n" +"* §20 は、§23 と一致するものがなくなるまで、§21 を §22 に変更し続けます。\n" "\n" -"* §24 は目標内の第 2 の §25 のみ §26 に変更します。\n" +"* §24 は、ゴール内の 2 番目の §25 のみを §26 に変更します。\n" "\n" "### 例:\n" "\n" -"仮定 §27 があり、目標が §28 の場合、\n" -"\n" -"§29\n" +"仮定 §27 があり、ゴールが以下の場合、\n" +"§28\n" "\n" -"は目標を §30 に変更し、\n" +"§29 はゴールを §30 に変更し、次に\n" "\n" "§31\n" "\n" -"は目標を §32 に変更し、\n" -"\n" -"§33 で解決できます。\n" +"はゴールを §32 に変更します。これは §33 で解決できます。\n" "\n" "### 例:\n" "\n" -"仮定を変更することもできます。例えば、仮定が 2 つある場合、\n" -"\n" +"§34 を使って仮定を変更することもできます。例えば、2つの仮定\n" "§35\n" +"がある場合、§36 は §37 を §38 に変換します。\n" "\n" -"§36 は §37 を §38 に変換します。\n" -"\n" -"## 一般的なエラー\n" -"\n" -"* クオート記号が必要です。§39 は決して正しくありません。\n" -"\n" -"* §40 が等式 (形式 §41 のステートメント) の証明でない場合、例えば §42 が関数または推論である場合、\n" +"## よくあるエラー\n" "\n" -"§43 は使用したいタクティクではありません。例えば、\n" +"* 角括弧([])が必要です。§39 は決して正しくありません。\n" "\n" -"§44 は常に正しくありません:§45 は定理のステートメントであり、\n" -"\n" -"証明ではありません。§46 が証明である場合、§47 は機能します。\n" +"* もし §40 が *等式*(§41 という形式の命題)の *証明* ではない場合(例えば §42 が関数や含意である場合など)、§43 " +"はあなたが使いたいタクティクではありません。例えば、§44 は決して正しくありません。§45 は定理の *命題* であり、証明ではありません。もし " +"§46 が証明であれば、§47 が機能します。\n" "\n" "## 詳細\n" "\n" -"§48 タクティクは「代入」を行う方法です。このタクティクを使用できる 2 つの異なる状況があります。\n" -"\n" -"1) 基本的な使用法:§49 が仮定または定理の証明であり、目標内に 1 つ以上の §50 が含まれている場合、\n" -"\n" -"§51 はそれら全てを §52 に変更します。タクティクは目標内に §53 が存在しない場合にエラーを発生させます。\n" -"\n" -"2) 高度な使用法:定理の証明から得られる仮定はしばしば欠落している部分を持っています。例えば、\n" -"\n" -"§54 は §55 を証明しており、\n" +"§48 タクティクは「代入」を行う方法です。このタクティクを使用できる状況は、大きく分けて2つあります。\n" "\n" -"§56 は実際には関数であり、\n" +"1) 基本的な使用法:§49 が仮定または定理の証明であり、ゴール内に1つ以上の §50 が含まれている場合、§51 はそれらすべてを §52 " +"に変更します。ゴール内に §53 が存在しない場合、このタクティクはエラーになります。\n" "\n" -"§57 は入力です。この状況では、\n" +"2) 高度な使用法:定理の証明から得られる仮定は、しばしば欠落している部分を持っています。例えば §54 は §55 の証明ですが、これは §56 " +"が実際には関数であり、§57 がその入力であるためです。この状況では、§58 はゴール内から §59 という形式の部分項を探し、見つけた瞬間に §60 " +"を §61 に固定して、すべての §62 を §63 に変更します。\n" "\n" -"§58 は目標内を検索し、\n" +"演習:なぜ §64 が項 §65 を §66 に変更するのか考えてみてください。\n" "\n" -"§59 のサブタームを見つけた瞬間に、\n" +"等式の証明の名前を忘れた場合は、右側の補題一覧で調べてください。\n" "\n" -"§60 を §61 に固定し、\n" +"## ターゲットを指定した使用法\n" "\n" -"すべての §62 を §63 に変更します。\n" +"ゴールが §67 で、§68 を §69 に書き換えたい場合、§70 は機能しません。Lean " +"が別の加算を先に見つけてしまい、そちらの入力を入れ替えてしまうからです。Lean が確実に §72 を §73 に書き換えるようにするには、§71 " +"を使用してください。これが機能するのは、§74 が §75 の証明であり、§76 が §77 の証明であり、§78 が §79 の証明だからです。\n" "\n" -"演習:なぜ §64 は項 §65 を §66 に変更するのか考えてみてください。\n" -"\n" -"等式の証明の名前を忘れた場合は、\n" -"\n" -"右側の補題一覧で調べてください。\n" -"\n" -"## 対象的な使用法\n" -"\n" -"目標が §67 であり、\n" -"\n" -"§68 を §69 に書き換えることを望む場合、\n" -"\n" -"§70 は Lean が別の加算を見つけ、\n" -"\n" -"その入力を交換するためには機能しません。 §71 を使用して、\n" -"\n" -"Lean が §72 を §73 に書き換えることを保証します。これは、\n" -"\n" -"§74 は §75 を証明しており、\n" -"\n" -"§76 は §77 を証明しており、\n" -"\n" -"§78 は §79 を証明しているためです。\n" -"\n" -"§80 が成立する場合、\n" -"\n" -"§81 はすべての §82 を §83 に変換します。\n" -"\n" -"§84 の 37 番目の出現のみを §85 に変更したい場合は、\n" -"\n" -"§86 を実行します。" +"もし §80 ならば、§81 はすべての §82 を §83 に変換します。もし §84 の 37 番目の出現のみを §85 " +"に変更したい場合は、§86 を実行してください。" #: Game.Levels.Tutorial.L02rw #. §0: $2y=2(x+7)$ @@ -772,7 +731,6 @@ msgstr "" #. §7: $y$ #. §8: `h` #. §9: `rw` -#, fuzzy msgid "" "In this level the *goal* is §0 but to help us we\n" "have an *assumption* §1 saying that §2. Check that you can see §3 in\n" @@ -783,33 +741,35 @@ msgid "" "We do this in Lean by *rewriting* the goal with §8,\n" "using the §9 tactic." msgstr "" -"このレベルにおける目標は§0ですが、それを達成するために、§1という仮定があります。その内容は§2です。仮定リストに§3" -"が表示されていることを確認してください。Leanは§4を、仮定の秘密の証明と見なします。これは、§5が秘密の数値に似ています。\n" +" このレベルのゴールは§0ですが、手助けとなる仮定 §1 があり、\n" +"それは §2 という内容です。仮定のリストに§3があることを確認してください。Leanは、\n" +"§5が秘密の数であるのと同じように、§4をその仮定の秘密の証明であると考えています。\n" "\n" -"§6を使用する前に、「§7に置き換える」必要があります。Leanでは、§8を使用して目標を書き換え、§9タクティクを使用してこれを実行します。" +"§6 を使う前に、「 §7 に代入」する必要があります。\n" +"Leanでは、 §9 タクティクを使用して、\n" +"ゴールを §8 で書き換えることでこれを行います。" #: Game.Levels.Tutorial.L02rw -#, fuzzy msgid "Can you take it from here? Click on \"Show more help!\" if you need a hint." -msgstr "引き続きご自身で解決いただけますでしょうか? ヒントが必要な場合は、「より多くのヘルプを表示!」をクリックしてください。" +msgstr "ここから続けられますか? ヒントが必要な場合は、「助けて!」をクリックしてください。" +# lean4game-statement #: Game.Levels.Tutorial.L02rw #. §0: $x$ #. §1: $y$ #. §2: $y = x + 7$ #. §3: $2y = 2(x + 7)$ -#, fuzzy msgid "If §0 and §1 are natural numbers, and §2, then §3." -msgstr "自然数§0と§1が存在し、かつ§2が真ならば、§3は真である。" +msgstr "§0, §1 を自然数とし、 §2 とするとき、 §3 である。" #: Game.Levels.Tutorial.L02rw #. §0: `rw [h]` #. §1: `y` #. §2: `x + 7` -#, fuzzy msgid "First execute §0 to replace the §1 with §2." msgstr "まず、 §0 を実行して §1 を §2 に置き換えてください。" +# repeat タクティクの説明と揃える #: Game.Levels.Tutorial.L02rw #. §0: `h : X = Y` #. §1: `X` @@ -821,7 +781,6 @@ msgstr "まず、 §0 を実行して §1 を §2 に置き換えてください #. §7: `2 + succ 1 = 4` #. §8: `rw [two_eq_succ_one]` #. §9: `succ 1 + succ 1 = 4` -#, fuzzy msgid "" "## Summary\n" "\n" @@ -836,17 +795,16 @@ msgid "" msgstr "" "## 概要\n" "\n" -"目標に §0 が存在し、かつ目標に複数の §1 が存在する場合には、§2 は第三の §3 を §4 に変更します。\n" +"§0 であり、かつゴール内に複数の §1 が存在する場合、§2 は3番目の §3 を §4 に変更します。\n" "\n" "## 例\n" "\n" -"もし目標が §5 である場合、§6 は目標を §7 に変更します。一方、§8 は目標を §9 に変更します。" +"ゴールが §5 の場合、§6 はゴールを §7 に変更します。 一方で、§8 はゴールを §9 に変更します。" #: Game.Levels.Tutorial.L02rw #. §0: `2 + 2 = 4` -#, fuzzy msgid "You now know enough tactics to prove §0! Let's begin the journey." -msgstr "あなたは、十分なタクティクを習得し、§0の証明が可能になりました。それでは、学習の旅を始めましょう。" +msgstr "§0を証明するのに十分なタクティクを習得しました。それでは、学習の旅を始めましょう。" #: Game.Levels.Tutorial.L03two_eq_ss0 #. §0: `ℕ` From bca97a0d2db12a0863320b8765ad246e64d48d3f Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Wed, 20 May 2026 03:31:42 +0900 Subject: [PATCH 113/147] ja: improve translation Tutorial.L03 --- .i18n/ja/Game.po | 59 ++++++++++++++++++++---------------------------- 1 file changed, 24 insertions(+), 35 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 1470d77b..e007a0fb 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -399,7 +399,6 @@ msgstr "rw タクティク" #: Game.Levels.Tutorial.L02rw #. §0: `rfl` -#, fuzzy msgid "Now §0 will work." msgstr "これで §0 が使えるようになります。" @@ -813,7 +812,6 @@ msgstr "§0を証明するのに十分なタクティクを習得しました。 #. §3: `MyNat` #. §4: `ℕ` #. §5: `Nat` -#, fuzzy msgid "" "§0 is the natural numbers, just called \\\\\"numbers\\\\\" in this game. " "It's\n" @@ -829,24 +827,22 @@ msgid "" "It is distinct from the Lean natural numbers §5, which should hopefully\n" "never leak into the natural number game.*" msgstr "" -"§0 は自然数を指し、「数」と呼ばれています。このゲームでは、以下の2つのルールを用いて定義されます。\n" +"§0 は自然数であり、このゲームでは単に「数」と呼ばれます。自然数は以下の2つの規則によって定義されます。\n" "\n" -"* §1(0は数)\n" -"* §2(数の後続も数)\n" +"* §1 (0は数)\n" +"* §2 (ある数の後者は数)\n" "\n" "## ゲームの実装\n" "\n" -"* " -"このゲームは、独自の自然数のコピーを使用します。「§3」という名前で参照され、記号は「§4」で表されます。これは、Leanの自然数「§5" -"」とは異なり、自然数ゲームに影響を与えることはありません。" +"*このゲームでは、§3 という名前で、§4 という表記を持つ独自の自然数を使用します。これは Lean の自然数である §5 とは区別されており、§5 " +"がこの自然数ゲームに紛れ込むことがないようになっています。*" #: Game.Levels.Tutorial.L03two_eq_ss0 #. §0: `1` #. §1: `succ 0` #. §2: `rw [one_eq_succ_zero]` -#, fuzzy msgid "Next turn §0 into §1 with §2." -msgstr "次のステップとして、§2 を実行して §0 を §1 に変換します。" +msgstr "次は §2 を実行して、§0 を §1 に書き換えましょう。" #: Game.Levels.Tutorial.L03two_eq_ss0 #. §0: `0` @@ -864,7 +860,6 @@ msgstr "次のステップとして、§2 を実行して §0 を §1 に変換 #. §12: `2 = succ 1` #. §13: `two_eq_succ_one` #. §14: $2$ -#, fuzzy msgid "" "## The birth of number.\n" "\n" @@ -888,78 +883,72 @@ msgid "" "\n" "Let's prove that §14 is the number after the number after zero." msgstr "" -"## 数字の誕生。\n" +"## 数の誕生。\n" "\n" -"Leanにおける数字は、以下の2つのルールで定義されます。\n" +"Leanにおける数は、以下の2つの規則で定義されます。\n" "\n" -"* §0 は数字です。\n" -"* もし §1 が数字ならば、§3 の *後続* §2 も数字です。\n" +"* §0 は数です。\n" +"* もし §1 が数ならば、§3 の *後者* (successor) §2 も数です。\n" "\n" -"§4 の「後続」とは、§5 の次の数字を意味します。数を数えることと、いくつかの小さな数字の名前を学びましょう。\n" +"§4 の「後者」とは、§5 の次の数を意味します。数を数えることと、いくつかの小さな数の名前を学びましょう。\n" "\n" "## 4まで数える。\n" "\n" -"§6 は数字なので、§7 も数字です。この新しい数字を §8 と呼びましょう。同様に §9, §10, §11 " -"を定義します。これで十分な数を手に入れることができます。\n" +"§6 は数なので、§7 も数です。この新しい数を §8 と呼びましょう。同様に §9, §10, §11 " +"を定義します。これで十分な数を手に入れることができました。\n" "\n" -"§12 が数字であることを示す *証明* §13 があります。証明リストの右側の「012」タブを確認してください。\n" +"§12 の *証明* は §13 と呼ばれます。\n" +"この証明やその他の証明については、右側の補題 (Theorems) リストにある「012」タブを確認してください。\n" "\n" -"次に、0の後ろの後ろの数字である §14 を証明しましょう。" +"それでは、 §14 が0の次の次の数であることを証明しましょう。" #: Game.Levels.Tutorial.L03two_eq_ss0 #. §0: `rfl` -#, fuzzy msgid "Now finish the job with §0." -msgstr "§0を使って作業を完了してください。" +msgstr "あとは §0 を使ってゴールを解決しましょう。" #: Game.Levels.Tutorial.L03two_eq_ss0 #. §0: `one_eq_succ_zero` #. §1: `1 = succ 0` -#, fuzzy msgid "§0 is a proof of §1.\"" -msgstr "§0 は §1 の証明である。" +msgstr "§0 は §1 の証明です。" #: Game.Levels.Tutorial.L03two_eq_ss0 Game.Levels.Addition.L03add_comm #: Game.Levels.Implication.L09zero_ne_succ Game.Levels.Algorithm.L05pred #: Game.Levels.Algorithm.L06is_zero Game.Levels.LessOrEqual.L05le_zero #. §0: `two_eq_succ_one` #. §1: `2 = succ 1` -#, fuzzy msgid "§0 is a proof of §1." msgstr "§0 は §1 の証明です。" #: Game.Levels.Tutorial.L03two_eq_ss0 -#, fuzzy msgid "Can you take it from here?" -msgstr "ここから続けられますか?" +msgstr "ここからは自力で進められますか?" #: Game.Levels.Tutorial.L03two_eq_ss0 #. §0: `rw [two_eq_succ_one]` #. §1: `2` -#, fuzzy msgid "Start with §0 to begin to break §1 down into its definition." -msgstr "まず§0から開始し、そこから§1を定義へと分解していくことから始めましょう。" +msgstr "まずは§0を実行して、§1を定義へと分解していくことから始めましょう。" #: Game.Levels.Tutorial.L03two_eq_ss0 -#, fuzzy msgid "Numbers" -msgstr "数値" +msgstr "数" +# lean4game-statement #: Game.Levels.Tutorial.L03two_eq_ss0 Game.Levels.Tutorial.L04rw_backwards #. §0: $2$ #. §1: $0$ -#, fuzzy msgid "§0 is the number after the number after §1." -msgstr "§0 は、§1 の後に続く数値の後に現れる数値です。" +msgstr "§0 は、§1 の後に続く数の後に続く数である。" #: Game.Levels.Tutorial.L03two_eq_ss0 #. §0: `rw [two_eq_succ_one, one_eq_succ_zero]` #. §1: `rfl` -#, fuzzy msgid "" "Note that you can do §0\n" "and then §1 to solve this level in two lines." -msgstr "§0を実行し、その後§1を実行することで、このレベルを2行で解くことができます。" +msgstr "ちなみに、§0を実行し、その後§1を実行すれば、このレベルを2行で解くもことできます。" #: Game.Levels.Tutorial.L04rw_backwards #. §0: `h` From c8d383f91bbfa32d2bd3a0dd23c4262a2a0ef7f4 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Fri, 22 May 2026 03:17:55 +0900 Subject: [PATCH 114/147] ja_JP: improve Tutorial.L04 translation --- .i18n/ja/Game.po | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index e007a0fb..82b35d2f 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -965,7 +965,6 @@ msgstr "ちなみに、§0を実行し、その後§1を実行すれば、この #. §11: $0$ #. §12: `succ (succ 0)` #. §13: `2` -#, fuzzy msgid "" "If §0 is a proof of §1 then §2 will\n" "turn §3s into §4s. But what if we want to\n" @@ -977,44 +976,39 @@ msgid "" "after §11 again, this time by changing §12\n" "into §13." msgstr "" -"もし §0 が §1 の証明である場合、§2 は §3 を §4 に変換します。しかし、§5 を §6 に変換したい場合はどうでしょうか? §7 " -"タクティクに、この変換を指示するために、左矢印 §8 を使用します。 §9 と入力し、スペースキーを押すと、この矢印が得られます。\n" +"§0 が §1 の証明である場合、§2 は §3 を §4 に書き換えます。しかし、§5 を §6 に書き換えたい場合はどうでしょうか? §7 " +"タクティクにそのことを伝えるには、左向き矢印 §8 を使用します。§9 と入力してからスペースキーを押すと、この矢印を入力できます。\n" "\n" -"次の証明で、§10 が §11 の後ろの数値の後ろの数値であることを証明しましょう。今回は §12 を §13 に変換して証明します。" +"§10 が §11 の後の後の数であることを、今度は §12 を §13 に書き換えることで、もう一度証明してみましょう。" #: Game.Levels.Tutorial.L04rw_backwards #. §0: `rw [← one_eq_succ_zero]` #. §1: `succ 0` #. §2: `1` -#, fuzzy msgid "Try §0 to change §1 into §2." -msgstr "§0を使用して、§1を§2に変換することを試みてください。" +msgstr "§0 を実行して、§1 を §2 に書き換えてみてください。" #: Game.Levels.Tutorial.L04rw_backwards Game.Levels.Tutorial.L05add_zero #. §0: `rw [← two_eq_succ_one]` #. §1: `succ 1` #. §2: `2` -#, fuzzy msgid "Now §0 will change §1 into §2." -msgstr "§0 は §1 を §2 に変更します。" +msgstr "§0 を使えば、 §1 を §2 に書き換えることができます。" #: Game.Levels.Tutorial.L04rw_backwards #. §0: `succ n` #. §1: `n + 1` -#, fuzzy msgid "" "Why did we not just define §0 to be §1? Because we have not\n" "even *defined* addition yet! We'll do that in the next level." -msgstr "なぜ、§0を§1に定義しなかったのでしょうか? それは、まだ足し算の演算自体を定義していないからです。この定義は、次の段階で行います。" +msgstr "なぜ§0を§1と定義しなかったのでしょうか?それは、まだ加算を*定義*すらしていないからです!次のレベルで加算を定義しましょう。" #: Game.Levels.Tutorial.L04rw_backwards #. §0: `2 = 2` -#, fuzzy msgid "Can you now change the goal into §0?" -msgstr "目標を§0に変更することは可能ですか?" +msgstr "ゴールを§0にすることはできますか?" #: Game.Levels.Tutorial.L04rw_backwards -#, fuzzy msgid "rewriting backwards" msgstr "逆方向に書き換える" From 44e9b28573feafbc618c88caf162b489dd261f44 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Wed, 27 May 2026 01:45:25 +0900 Subject: [PATCH 115/147] ja_JP: improve Tutorial.L05 translation --- .i18n/ja/Game.po | 57 +++++++++++++++++++++--------------------------- 1 file changed, 25 insertions(+), 32 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 82b35d2f..036525df 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1012,13 +1012,13 @@ msgstr "ゴールを§0にすることはできますか?" msgid "rewriting backwards" msgstr "逆方向に書き換える" +# 他のrepeat タクティクの説明と併せる #: Game.Levels.Tutorial.L05add_zero #. §0: `repeat t` #. §1: `t` #. §2: `repeat rw [add_zero]` #. §3: `a + 0 + (0 + (0 + 0)) = b + 0 + 0` #. §4: `a = b` -#, fuzzy msgid "" "## Summary\n" "\n" @@ -1035,12 +1035,15 @@ msgid "" msgstr "" "## 概要\n" "\n" -"§0 は、タクティク §1 " -"を繰り返し適用することで、目標を解決します。このタクティクの使用は必須ではありませんが、場合によっては処理速度の向上に役立ちます。\n" +"§0 は、§1 タクティクをゴールに対して繰り返し適用します。このタクティクを使う必要はありませんが、時として作業をスピードアップさせてくれます。\n" "\n" "## 例\n" "\n" -"§2 を使用すると、目標 §3 が §4 になります。" +"§2 はゴール\n" +"§3\n" +"をゴール\n" +"§4\n" +"に変更します。\n" #: Game.Levels.Tutorial.L05add_zero #. §0: `2 + 2 = 4` @@ -1065,7 +1068,6 @@ msgstr "" #. §19: `? + 0 = ?` #. §20: `add_zero x : x + 0 = x` #. §21: `proof : statement` -#, fuzzy msgid "" "We'd like to prove §0 but right now\n" "we can't even *state* it\n" @@ -1090,33 +1092,27 @@ msgid "" "\n" "We write §20, so §21." msgstr "" -"私たちは§0を証明したいですが、現在では\n" -"その定理を*記述すること*すらできません。\n" -"なぜなら、加法をまだ定義していないからです。\n" +"私たちは§0を証明したいのですが、加法をまだ定義していないため、現時点ではその命題を*述べること*すらできません。\n" "\n" "## 加法の定義\n" "\n" -"任意の数§2に§1を加える方法はどのようなものでしょうか?\n" -"このゲームでは数を生成する方法は2つしかありません:§3\n" -"と後続数。したがって、§4を定義するには\n" -"§5と§6がどのようなものかを知る必要があります。\n" -"まずは§7を加えることにしましょう。\n" +"任意の数§2に対して§1を加えるにはどうすればよいでしょうか?実のところ、このゲームで数を作る方法は2つしかありません。§3と後者です。したがって、§4" +"を定義するには、§5と§6が何であるかを知る必要があります。\n" +"まずは§7を加えることから始めましょう。\n" "\n" "### 0を加える\n" "\n" -"加法が直感に合致するようにするためには、§8を\n" -"§9とするべきです。より一般的には、任意の数§12に対して\n" -"§10を§11とするべきです。Leanでのこの証明の名前は§13です。\n" +"加法を私たちの直感に合わせるために、§8を§9であると*定義*するべきです。より一般的には、任意の数§12に対して§10を§11" +"であると定義するべきです。Leanにおけるこの証明の名前は§13です。\n" "例えば、§14は§15の証明、§16は§17の証明、§18は§19の証明です。\n" "\n" -"私たちは§20と書きます、つまり§21です。" +"§20 という書き方は、§21 (証明の名前: 命題)という形式を表しています。" # no-translate #: Game.Levels.Tutorial.L05add_zero Game.Levels.Tutorial.L06add_zero2 #: Game.Levels.Power.L01zero_pow_zero Game.Levels.Algorithm.L09decide2 #: Game.Levels.AdvAddition.L03add_left_eq_self #. §0: $a+(b+0)+(c+0)=a+b+c.$ -#, fuzzy msgid "§0" msgstr "§0" @@ -1124,17 +1120,17 @@ msgstr "§0" #. §0: `rw [add_zero]` #. §1: `b + 0` #. §2: `b` -#, fuzzy msgid "§0 will change §1 into §2." -msgstr "§0 は §1 を §2 に変換します。" +msgstr "§0 は §1 を §2 に書き換えます。" #: Game.Levels.Tutorial.L05add_zero #. §0: `repeat rw [add_zero]` -#, fuzzy msgid "" "Those of you interested in speedrunning the game may want to know\n" "that §0 will do both rewrites at once." -msgstr "ゲームのRTAにご興味のある方は、`§0` は一度に両方のリライトを実行できます。" +msgstr "" +"このゲームのRTAに興味がある方は、\n" +"§0 を使えば両方の書き換えを一度に行えることを知っておくと役立つかもしれません。" #: Game.Levels.Tutorial.L05add_zero #. §0: `add_zero a` @@ -1147,7 +1143,6 @@ msgstr "ゲームのRTAにご興味のある方は、`§0` は一度に両方の #. §7: `add_zero` #. §8: $\\forall n ∈ ℕ, n + 0 = n$ #. §9: `n + 0 = n` -#, fuzzy msgid "" "§0 is a proof that §1.\n" "\n" @@ -1173,14 +1168,14 @@ msgstr "" "\n" "## 概要\n" "\n" -"§2は実際には関数で、数字を入力するとその数字に関する定理の証明を返します。例えば§3は§4の証明です。\n" +"§2は実際には関数で、数を受け取ってその数に関する定理の証明を返します。例えば§3は§4の証明です。\n" "\n" -"§5のタクティクは§6を受け取り、省略された数字を推測しようとします。\n" +"§5 タクティクは§6を受け取り、あなたが入力しなかった数を推測しようとします。\n" "\n" "## 詳細\n" "\n" -"数学者は時として§7を「一つのもの」と捉え、それは§8の証明であると言えます。これは、任意の数字nを入力すると§9" -"の証明を返す関数であるという別の表現方法です。" +"数学者は時として§7を「一つのもの」、すなわち§8の証明として捉えることがあります。これは、それが任意の数 n " +"を受け取って§9の証明を返す関数である、ということを別の表現で言い換えたものです。" #: Game.Levels.Tutorial.L05add_zero #. §0: `Add a b` @@ -1188,7 +1183,6 @@ msgstr "" #. §2: `add_zero a : a + 0 = a` #. §3: `add_succ a b : a + succ b = succ (a + b)` #. §4: `zero_add a : 0 + a = a` -#, fuzzy msgid "" "§0, with notation §1, is\n" "the usual sum of natural numbers. Internally it is defined\n" @@ -1201,18 +1195,17 @@ msgid "" "Other theorems about naturals, such as §4, are proved\n" "by induction using these two basic theorems." msgstr "" -"§0、記号§1は、通常の自然数の和を表します。内部的には、以下の2つの仮定を用いて定義されています:\n" +"§0(表記は §1)は、通常の自然数の和を表します。内部的には、以下の2つの仮定によって定義されています。\n" "\n" "* §2\n" "\n" "* §3\n" "\n" -"また、§4のような他の自然数に関する定理は、これらの基本定理を用いて帰納法によって証明されます。" +"§4のような自然数に関する他の定理は、これらの基本定理を用いた帰納法によって証明されます。\n" #: Game.Levels.Tutorial.L05add_zero -#, fuzzy msgid "Adding zero" -msgstr "ゼロを加える" +msgstr "0を加える" #: Game.Levels.Tutorial.L06add_zero2 #. §0: `add_zero c` From 033fb6fc7abdeba61020574d0147f3198f7c08ad Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Wed, 27 May 2026 02:04:56 +0900 Subject: [PATCH 116/147] ja_JP: improve Tutorial.L06 translation --- .i18n/ja/Game.po | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 036525df..4e77a62a 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1215,25 +1215,22 @@ msgstr "0を加える" #. §4: `rw [add_zero]` #. §5: `rw [add_zero b]` #. §6: `rw [add_zero]` -#, fuzzy msgid "" "§0 is a proof of §1 so that was what got rewritten.\n" "You can now change §2 to §3 with §4 or §5. You\n" "can usually stick to §6 unless you need real precision." msgstr "" -"§0 は §1 の証明であるため、それが書き換えられた理由です。\n" -"§4 または §5 を使用して §2 を §3 に変更できます。 通常は §6 を使用すれば十分ですが、より厳密な操作が必要な場合は §4 または " -"§5 を使用してください。" +"§0 は §1 の証明ですので、それを使って書き換えが行われました。\n" +"これによって、§4 または §5 を使って §2 を §3 に変えることができるようになります。\n" +"正確に指定する必要がある場合を除いて、通常は §6 を使うだけで十分です。" #: Game.Levels.Tutorial.L06add_zero2 Game.Levels.LessOrEqual.L08le_total #. §0: `rw [add_zero c]` -#, fuzzy msgid "Try §0." -msgstr "§0 を実行してみましょう。" +msgstr "§0 を試してみてください。" #: Game.Levels.Tutorial.L06add_zero2 #. §0: `add_succ` -#, fuzzy msgid "Let's now learn about Peano's second axiom for addition, §0." msgstr "それでは、ペアノの加法の第2の公理、§0 について学びましょう。" @@ -1244,7 +1241,6 @@ msgstr "それでは、ペアノの加法の第2の公理、§0 について学 #. §3: `b + 0` #. §4: `c + 0` #. §5: `add_zero` -#, fuzzy msgid "" "## Precision rewriting\n" "\n" @@ -1256,13 +1252,12 @@ msgid "" msgstr "" "## 精密な書き換え\n" "\n" -"直前のレベルでは、§0 と §1 が存在し、\n" +"前のレベルでは、§0 と §1 が存在し、\n" "§2 は最初に見つかった §3 を変更しました。\n" -"Lean に §4 を最初に変更させる方法を学びましょう。\n" +"Lean に §4 を先に変更させる方法を学びましょう。\n" "これを行うには、§5 に明示的な入力を与えます。" #: Game.Levels.Tutorial.L06add_zero2 -#, fuzzy msgid "Precision rewriting" msgstr "精密な書き換え" From 226acf69a19e11459591cd07f3deb4f6e768e349 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Thu, 28 May 2026 01:15:22 +0900 Subject: [PATCH 117/147] ja_JP: improve Tutorial.L07 translation --- .i18n/ja/Game.po | 41 ++++++++++++++++------------------------- 1 file changed, 16 insertions(+), 25 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 4e77a62a..9b238db7 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1263,14 +1263,12 @@ msgstr "精密な書き換え" #: Game.Levels.Tutorial.L07add_succ #. §0: `1` -#, fuzzy msgid "Start by unravelling the §0." -msgstr "まず、§0 を解き始めましょう。" +msgstr "まず、§0 の定義を展開しましょう。" #: Game.Levels.Tutorial.L07add_succ -#, fuzzy msgid "[dramatic music]. Now are you ready to face the first boss of the game?" -msgstr "[壮大なBGMが流れる]. 続いて、ゲームの最初のボスとの戦闘に備えましょう。" +msgstr "[ドラマチックな音楽]. さあ、このゲーム最初のボスに挑む準備はいいですか?" #: Game.Levels.Tutorial.L07add_succ #. §0: $0$ @@ -1292,7 +1290,6 @@ msgstr "[壮大なBGMが流れる]. 続いて、ゲームの最初のボスと #. §16: `rw [add_succ]` #. §17: `+` #. §18: `012` -#, fuzzy msgid "" "Every number in Lean is either §0 or a successor. We know how to add §1,\n" "but we need to figure out how to add successors. Let's say we already know\n" @@ -1311,67 +1308,61 @@ msgid "" "§18 (numerals) tabs under \"Theorems\" on the right to\n" "see which proofs you can rewrite." msgstr "" -"Leanの数は、§0または後続数のいずれかです。§1を加算する方法は分かっていますが、後続数を加算する方法はまだ分かりません。例えば、§2" -"が分かっているとします。では、§3の答えは何になるべきでしょうか? §4は §5よりも1大きいので、§6は §7、つまり " -"§8よりも1大きい数になるべきです。より一般的には、§9は §10になります。この事実を補題として追加しましょう。\n" +"Leanにおける数は、§0または後者のいずれかです。§1を加算する方法は分かっていますが、後者を加算する方法を考える必要があります。例えば、§2" +"であると分かっているとしましょう。このとき、§3の答えはどうなるべきでしょうか?\n" +"§4は§5より1大きいので、§6は§8より1大きい数である§7になるはずです。より一般的には、§9は§10" +"となります。この事実を補題として追加しましょう。\n" "\n" "* §11\n" "\n" -"もし目標に §12が見つかったら、通常 §13は良いアイデアです。\n" +"もしゴールの中に§12を見かけたら、通常は§13とするのが良い方法です。\n" "\n" -"次に、§14を証明しましょう。§15を図に取り入れる方法を考え、その後 §16を証明します。「Theorems」の右側にある `+` (加算) と " -"`012` (数字) のタブを切り替えて、どの証明を書き換えることができるか確認します。" +"それでは、§14を証明しましょう。まずは§15をどのように組み込むか考え、次に§16を使います。右側の「定理(Theorems)」の下にある§17と§1" +"8のタブを切り替えて、どの証明を書き換えに利用できるか確認してみてください。\n" #: Game.Levels.Tutorial.L07add_succ Game.Levels.Tutorial.L08twoaddtwo #. §0: `rw [add_succ]` -#, fuzzy msgid "Now you can §0" -msgstr "§0ができます。" +msgstr "これで§0が使えるようになりました。" #: Game.Levels.Tutorial.L07add_succ Game.Levels.Multiplication.L01mul_one #: Game.Levels.Multiplication.L06two_mul Game.Levels.Algorithm.L07succ_ne_succ #. §0: `succ_eq_add_one n` #. §1: `succ n = n + 1` -#, fuzzy msgid "§0 is the proof that §1." -msgstr "§0 は、§1 の証明を示しています。" +msgstr "§0 は §1 の証明です。" #: Game.Levels.Tutorial.L07add_succ #. §0: `rfl` -#, fuzzy msgid "And finally §0." -msgstr "そして、最後に、§0。" +msgstr "そして最後に §0 です。" #: Game.Levels.Tutorial.L07add_succ #. §0: `rw [add_zero]` -#, fuzzy msgid "And now §0" -msgstr "§0をしましょう。" +msgstr "そして次は §0 です。" +# lean4game-statement #: Game.Levels.Tutorial.L07add_succ Game.Levels.Addition.L01zero_add #: Game.Levels.Multiplication.L02zero_mul #. §0: $a$ #. §1: $\\operatorname{succ}(a) = a+1$ -#, fuzzy msgid "For all natural numbers §0, we have §1." -msgstr "すべての自然数 §0 に対して、§1 が成り立ちます。" +msgstr "任意の自然数 §0 に対して、§1 が成り立つ。" #: Game.Levels.Tutorial.L07add_succ #. §0: `rw [one_eq_succ_zero]` -#, fuzzy msgid "§0 will do this." -msgstr "§0 は、この操作を実行します。" +msgstr "§0 を実行すると、この操作ができます。" # no-translate #: Game.Levels.Tutorial.L07add_succ -#, fuzzy msgid "add_succ" msgstr "add_succ" #: Game.Levels.Tutorial.L07add_succ #. §0: `add_succ a b` #. §1: `a + succ b = succ (a + b)` -#, fuzzy msgid "§0 is the proof of §1." msgstr "§0 は §1 の証明です。" From 36df34597e5002b5a6e9d557760e2131df0ccbc5 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Thu, 28 May 2026 02:06:17 +0900 Subject: [PATCH 118/147] ja_JP: improve Tutorial.L08 translation --- .i18n/ja/Game.po | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 9b238db7..7021f619 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1368,7 +1368,6 @@ msgstr "§0 は §1 の証明です。" # no-translate #: Game.Levels.Tutorial.L08twoaddtwo -#, fuzzy msgid "2+2=4" msgstr "2+2=4" @@ -1378,7 +1377,6 @@ msgstr "2+2=4" #. §2: `X` #. §3: `Y` #. §4: `nth_rewrite 3 [h]` -#, fuzzy msgid "" "Good luck!\n" "\n" @@ -1388,15 +1386,14 @@ msgid "" msgstr "" "幸運をお祈りいたします!\n" "\n" -"最後のヒントです。もし §0 が真ならば、§1 はすべての §2 を §3 に変換します。\n" -"特定の §2 のみを変更したい場合は、§4 を使用してください(例:3番目のもの)。" +" 最後のヒントです。もし §0 ならば、§1 は *すべての* §2 を §3 に書き換えます。\n" +" 特定の §2 だけを変更したい場合、例えば3番目のものであれば §4 を使用してください。" #: Game.Levels.Tutorial.L08twoaddtwo #. §0: `nth_rewrite 2 [two_eq_succ_one]` #. §1: `rw [two_eq_succ_one]` -#, fuzzy msgid "§0 is I think quicker than §1." -msgstr "§0 は、§1 よりも高速であると推測されます。" +msgstr "§0 のほうが §1 よりも手っ取り早いと思います。" #: Game.Levels.Tutorial.L08twoaddtwo #. §0: ```lean @@ -1411,7 +1408,6 @@ msgstr "§0 は、§1 よりも高速であると推測されます。" #. §1: `` #. §2: `>_` #. §3: `induction` -#, fuzzy msgid "" "Here is an example proof of 2+2=4 showing off various techniques.\n" "\n" @@ -1432,17 +1428,17 @@ msgid "" "overworld, and select Addition World, where you will learn\n" "about the §3 tactic." msgstr "" -"以下は2+2=4を示す証明の例で、様々な手法を披露しています。\n" +"以下は 2+2=4 を示す証明の例で、様々な手法を紹介しています。\n" "\n" "§0\n" "\n" -"オプション:自分でこの証明を実行することもできます。「エディタモード」に切り替えるには、右上の§1" -"ボタンをクリックしてください。現在の証明は、複数行のコードとして表示されます。行の間でカーソルを動かすことで、任意のポイントでの目標状態を確認できます。" -"証明を保存したい場合は、コードを他の場所にコピーし、上記の証明を代入できます。カーソルを動かして調査してください。終了したら、右上の§2" -"ボタンをクリックして「タイプライターモード」に戻ります。\n" +"追加のオプション:自分でこの証明を試すこともできます。画面右上の §1 " +"ボタンをクリックして、ゲームを「エディタモード」に切り替えてください。すると、現在の証明が数行のコードとして表示されます。行の間でカーソルを動かすことで" +"、任意の時点でのゴールの状態を確認できます。この証明を保存しておきたい場合は、コードを他の場所にコピーペーストしておき、代わりに上記の証明を貼り付けてください。カーソ" +"ルを動かして内容を調べてみましょう。確認が終わったら、右上の §2 ボタンをクリックして「タイプライターモード」に戻ってください。\n" "\n" -"チュートリアルワールドを終了しました!\n" -"「ホーム」をクリックしてオーバーワールドに戻り、加算ワールドを選択して§3タクティクについて学びます。" +"チュートリアルワールドをクリアしました!\n" +"「ホーム」をクリックして全体マップに戻り、加算ワールドを選択しましょう。そこでは §3 タクティクについて学びます。" # no-translate #: Game.Levels.Tutorial.L08twoaddtwo Game.Levels.Implication.L06intro From fb895bcc8e9e9143bc50d531e9513073a502eb11 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Fri, 29 May 2026 01:54:18 +0900 Subject: [PATCH 119/147] ja_JP: improve Addition.L01 translation --- .i18n/ja/Game.po | 93 ++++++++++++++++++++---------------------------- 1 file changed, 38 insertions(+), 55 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 7021f619..116c5569 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1434,12 +1434,13 @@ msgstr "" "\n" "追加のオプション:自分でこの証明を試すこともできます。画面右上の §1 " "ボタンをクリックして、ゲームを「エディタモード」に切り替えてください。すると、現在の証明が数行のコードとして表示されます。行の間でカーソルを動かすことで" -"、任意の時点でのゴールの状態を確認できます。この証明を保存しておきたい場合は、コードを他の場所にコピーペーストしておき、代わりに上記の証明を貼り付けてください。カーソ" -"ルを動かして内容を調べてみましょう。確認が終わったら、右上の §2 ボタンをクリックして「タイプライターモード」に戻ってください。\n" +"、任意の時点でのゴールの状態を確認できます。この証明を保存しておきたい場合は、コードを他の場所にコピーペーストしておき、代わりに上記の証明を貼り付けてく" +"ださい。カーソルを動かして内容を調べてみましょう。確認が終わったら、右上の §2 ボタンをクリックして「タイプライターモード」に戻ってください。\n" "\n" "チュートリアルワールドをクリアしました!\n" "「ホーム」をクリックして全体マップに戻り、加算ワールドを選択しましょう。そこでは §3 タクティクについて学びます。" +# lean4game-statement # no-translate #: Game.Levels.Tutorial.L08twoaddtwo Game.Levels.Implication.L06intro #: Game.Levels.Implication.L07intro2 Game.Levels.Implication.L09zero_ne_succ @@ -1450,12 +1451,10 @@ msgstr "" #: Game.Levels.AdvAddition.L02add_left_cancel #: Game.Levels.AdvAddition.L04add_right_eq_self #. §0: $2+2=4$ -#, fuzzy msgid "§0." msgstr "§0." #: Game.Levels.Addition -#, fuzzy msgid "Addition World" msgstr "加算ワールド" @@ -1465,7 +1464,6 @@ msgstr "加算ワールド" #. §2: `rw` #. §3: `rfl` #. §4: `induction` -#, fuzzy msgid "" "Welcome to Addition World! In this world we'll learn the §0 tactic.\n" "This will enable us to defeat the boss level of this world, namely §1.\n" @@ -1480,15 +1478,13 @@ msgid "" "want to explore the game further (for example if you decide to 100%\n" "the game)." msgstr "" -"加算ワールドへようこそ!このワールドでは§0 タクティクを学びます。\n" -"これにより、このワールドのボスレベルを攻略することができます、すなわち§1です。\n" +"加算ワールドへようこそ!このワールドでは §0 タクティクを学びます。これによって、このワールドのボスレベルである §1 を解決できるようになります。\n" "\n" -"§2, §3, §4 のタクティクのみが必要で、これらを用いて\n" -"加算ワールド、乗算ワールド、冪乗ワールドのすべてのレベルを攻略することができます。\n" -"冪乗ワールドにはゲームの最終ボスが含まれています。\n" +"§2、§3、および §4 " +"だけあれば、加算ワールド、乗算ワールド、および冪乗ワールドのすべてのレベルを解決できます。冪乗ワールドには、このゲームの最終ボスが待ち構えています。\n" "\n" -"このゲームにはもっと多くのタクティクがありますが、それらを知る必要はなく、\n" -"ゲームをさらに探索したい場合(例えば、ゲームを100%攻略したい場合)にのみ必要となります。" +"このゲームには他にもたくさんのタクティクが登場しますが、それらを知る必要があるのは、ゲームをさらに深く探索したい場合(例えば、ゲームを100%" +"クリアしたい場合など)だけです。\n" #: Game.Levels.Addition.L01zero_add #. §0: $0+n=n$ @@ -1508,7 +1504,6 @@ msgstr "" #. §14: `0 + succ d = succ d` #. §15: `0` #. §16: `>_` -#, fuzzy msgid "" "In this level we're going to prove that §0, where §1 is a secret natural " "number.\n" @@ -1532,20 +1527,21 @@ msgid "" "you can swap\n" "back to \"Typewriter mode\" by clicking the §16 button in the top right.)" msgstr "" -"このレベルでは、§1という秘密の自然数について、§0を証明します。\n" +"このレベルでは §0 を証明します。ここで §1 は秘密の自然数です。\n" "\n" -"待ってください。それでは、既に知っていることではないでしょうか?いいえ!§2は分かっていますが、それは§3です。\n" -"これは§4で、異なります。\n" +"ちょっと待ってください、それは既に知っていることではありませんか?いいえ!私たちが知っているのは §2 ですが、それは §3 です。\n" +"今は §4 で、これは別の定理です。\n" "\n" -"§5を証明する難しさは、一般的に§6に対する*公式*が存在しないことです。§7と§8は、§9が§10" -"であるか後続数であることを知った場合にのみ使用できます。§11のタクティクは、これらの2つの場合に分岐します。\n" +"§5 を証明するのが難しいのは、一般に §6 に対する*公式*がないからです。§7 や §8 は、§9 が §10 " +"であるか後者であるかが分かって初めて使うことができます。§11 タクティクは、この2つの場合に分岐します。\n" "\n" -"基本的な場合は§12を証明する必要がありますし、帰納的なステップでは、もし§13ならば§14が成り立つことを示す必要があります。なぜなら、§15" -"と後続数が数を作る唯一の方法だからです。これにより、すべてのケースをカバーできます。\n" +"基底段階では §12 を証明する必要があり、帰納段階では「もし §13 ならば §14」を示す必要があります。§15 " +"と後者が数を作る唯一の方法であるため、これで全てのケースを網羅したことになります。\n" "\n" -"Leanで初めての帰納法証明に挑戦してみましょう。\n" +"Leanで初めての帰納法による証明に挑戦してみましょう。\n" "\n" -"(ちなみに、最後のワールドで「エディタモード」にいた場合は、右上にある§16ボタンをクリックして、「タイプライターモード」に戻ることができます。)" +"(ちなみに、前のワールドで「エディタモード」になっていた場合は、右上にある §16 " +"ボタンをクリックして「タイプライターモード」に戻すことができます。)\n" #: Game.Levels.Addition.L01zero_add #. §0: `zero_add x` @@ -1554,7 +1550,6 @@ msgstr "" #. §3: `simp` #. §4: `0 + x` #. §5: `x` -#, fuzzy msgid "" "§0 is the proof of §1.\n" "\n" @@ -1563,7 +1558,7 @@ msgid "" msgstr "" "§0 は §1 の証明です。\n" "\n" -"§2 は §3 の補題であり、§4 を §5 に置換することは、通常、式を簡略化する場合に望ましい操作です。" +"§2 が §3 補題であるのは、式を簡略化する際に §4 を §5 に置き換えることは、ほとんど常にやりたいことだからです。\n" #: Game.Levels.Addition.L01zero_add #. §0: `n : ℕ` @@ -1579,7 +1574,6 @@ msgstr "" #. §8: `0 + 0 = 0` #. §9: `hd : 0 + d = d` #. §10: `0 + succ d = succ d` -#, fuzzy msgid "" "## Summary\n" "\n" @@ -1605,27 +1599,23 @@ msgid "" msgstr "" "## 概要\n" "\n" -"もし §0 がオブジェクトであり、目標に §1 が含まれている場合、§2 は目標を §3 " -"に対する帰納法によって証明しようとします。帰納変数は後続ケースで §4 であり、帰納仮定は §5 です。\n" +"§0 が対象であり、ゴールに §1 が含まれている場合、§2 は §3 に対する帰納法によってゴールの証明を試みます。その際、後者ケースの帰納変数は " +"§4 となり、帰納仮定は §5 となります。\n" "\n" "### 例:\n" -"もし目標が\n" +"ゴールが\n" "§6\n" -"\n" -"である場合、\n" +"であるとき、\n" "\n" "§7\n" "\n" -"は目標を 2 つの目標に変換します。最初の目標は §8 であり、次の目標には仮定 §9 と目標\n" -"§10\n" -"が含まれます。\n" +"を実行すると、ゴールが 2 つに分割されます。1 つ目のゴールは §8 です。2 つ目のゴールには仮定 §9 とゴール §10 が含まれます。\n" "\n" -"注意していただきたいのは、最初の目標を証明する前に、次の目標にアクセスすることはできないということです。" +"注意:2 つ目のゴールに進む前に、必ず 1 つ目のゴールを解決する必要があります。\n" #: Game.Levels.Addition.L01zero_add #. §0: $n = 0$ #. §1: `X = Y` -#, fuzzy msgid "" "Now you have two goals. Once you proved the first, you will jump to the " "second one.\n" @@ -1635,58 +1625,52 @@ msgid "" "in your inventory, or of any assumption displayed above the goal,\n" "as long as it is of the form §1." msgstr "" -"現在、2つの目標があります。最初の目標を証明すると、次の目標に進みます。\n" -"この最初の目標は基本ケース §0 です。\n" +"現在、2つのゴールがあります。最初のゴールを証明すると、2番目のゴールに進みます。\n" +"この最初のゴールは基底段階 §0 です。\n" "\n" -"あなたのインベントリに表示されている任意の補題の証明、または目標の上に表示されている任意の仮定の証明を再利用することができます。ただし、その形式は " -"§1 である必要があります。" +"インベントリに表示されている任意の補題、またはゴールの上の対象として表示されている任意の仮定が §1 " +"という形式であれば、それらを使って書き換えができることを思い出してください。" #: Game.Levels.Addition.L01zero_add #. §0: `0 + «{d}»` #. §1: `rw [«{hd}»]` -#, fuzzy msgid "" "At this point you see the term §0, so you can use the\n" "induction hypothesis with §1." -msgstr "現在、項§0が表示されているため、項§1を用いて帰納法の仮定を適用できます。" +msgstr "この時点で項§0が表示されているので、§1を用いて帰納法の仮定を適用できます。" #: Game.Levels.Addition.L01zero_add #. §0: `n` #. §1: `induction n with d hd` -#, fuzzy msgid "" "You can start a proof by induction on §0 by typing:\n" "§1." msgstr "" -"帰納法を用いて§0について証明を開始するには、次のように入力してください。\n" -"§1." +"§0に関する帰納法を用いた証明を開始するには、次のように入力してください。\n" +"§1.\n" # no-translate #: Game.Levels.Addition.L01zero_add -#, fuzzy msgid "zero_add" msgstr "zero_add" #: Game.Levels.Addition.L01zero_add #. §0: `add_succ` -#, fuzzy msgid "Use §0." -msgstr "§0をご利用ください。" +msgstr "§0を使ってください。" #: Game.Levels.Addition.L01zero_add #. §0: `«{hd}» : 0 + «{d}» = «{d}»` #. §1: `0 + succ «{d}» = succ «{d}»` -#, fuzzy msgid "" "Now for the second goal. Here you have the induction hypothesis\n" "§0, and you need to prove that §1." -msgstr "では、次の目標に進みます。 ここで示された帰納法の仮定 §0 を用いて、§1 を証明する必要があります。" +msgstr "次は2番目のゴールです。帰納法の仮定 §0 を使って、§1 を証明しましょう。" #: Game.Levels.Addition.L01zero_add #. §0: `add_zero` -#, fuzzy msgid "try rewriting §0." -msgstr "§0で書き換えてみてください." +msgstr "§0 を使って書き換えてみてください。" #: Game.Levels.Addition.L01zero_add #. §0: `x + y = y + x` @@ -1695,7 +1679,6 @@ msgstr "§0で書き換えてみてください." #. §3: `zero_add` #. §4: `add_comm` #. §5: `x + y = y + x` -#, fuzzy msgid "" "This lemma would have been easy if we had known that §0. That theorem\n" " is called §1 and it is *true*, but unfortunately its proof *uses* both\n" @@ -1703,10 +1686,10 @@ msgid "" "\n" " Let's continue on our journey to §4, the proof of §5." msgstr "" -"この補題は、§0を知っていれば簡単に証明できたでしょう。その定理は§1と呼ばれ、**真**ですが、残念ながらその証明には§2と§3の両方が**使用**" -"されています!\n" +"もし§0であることを知っていれば、この補題の証明は簡単だったでしょう。その定理は§1と呼ばれており、それは*真*ですが、残念ながらその証明には§2と§3" +"の両方を*使用*します!\n" "\n" -"次に、§5の証明である§4へと進みましょう。" +"それでは、§5の証明である§4を目指して旅を続けましょう。" #: Game.Levels.Addition.L02succ_add #. §0: $a, b$ From 85358358094f6e95418b17e1668249555a5d91ed Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 31 May 2026 02:16:24 +0900 Subject: [PATCH 120/147] ja_JP: improve Addition.L02 translation --- .i18n/ja/Game.po | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 116c5569..ebc52e54 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1691,30 +1691,31 @@ msgstr "" "\n" "それでは、§5の証明である§4を目指して旅を続けましょう。" +# 改行が無いものと揃える +# lean4game-statement #: Game.Levels.Addition.L02succ_add #. §0: $a, b$ #. §1: $ \\operatorname{succ}(a) + b = \\operatorname{succ}(a + b)$ -#, fuzzy msgid "" "For all natural numbers §0, we have\n" "§1." msgstr "" -"すべての自然数 0 に対して、\n" -"§1。" +"任意の自然数 §0 に対して、\n" +"§1 が成り立つ。" #: Game.Levels.Addition.L02succ_add #. §0: `succ a + «{d}»` #. §1: `(succ a) + «{d}»` #. §2: `succ` -#, fuzzy msgid "" "Note that §0 means §1. Put your cursor\n" "on any §2 in the goal or assumptions to see what exactly it's eating." -msgstr "注: §0 は §1 を意味します。目標または前提条件内の任意の §2 にカーソルを置くと、実際にどのようなものを参照しているかを確認できます。" +msgstr "" +"§0 は §1 を意味することに注意してください。\n" +"ゴールや仮定にある §2 にカーソルを置くと、それが具体的に何を引数に取っているかを確認できます。" # no-translate #: Game.Levels.Addition.L02succ_add -#, fuzzy msgid "succ_add" msgstr "succ_add" @@ -1729,7 +1730,6 @@ msgstr "succ_add" #. §7: `b` #. §8: `b = 0` #. §9: `b` -#, fuzzy msgid "" "Oh no! On the way to §0, a wild §1 appears. §2\n" "is the proof that §3 for §4 and §5 numbers.\n" @@ -1737,17 +1737,17 @@ msgid "" "we have the problem that we are adding §7 to things, so we need\n" "to use induction to split into the cases where §8 and §9 is a successor." msgstr "" -"大変! §0 に向かう途中、野生の §1 が現れました。 §2 は、§3 が §4 と §5 の数値に対して成り立つことを証明しています。この結果が " -"§6 を達成するのを妨げています。さらに、私たちは §7 を何かに加算しているため、§8 と §9 が後者である場合に帰納法を用いる必要があります。" +"大変です!§0 に向かう途中で、野生の §1 が現れました!§2 は、自然数 §4 と §5 に対して §3 が成り立つことの証明です。この結果が " +"§6 の行く手を阻んでいます。またしても §7 を加算しているという問題に直面しているため、帰納法を使って §8 の場合と §9 " +"が後者の場合に分けて考える必要があります。" #: Game.Levels.Addition.L02succ_add #. §0: `a` #. §1: `b` -#, fuzzy msgid "" "You might want to think about whether induction\n" "on §0 or §1 is the best idea." -msgstr "推論を行う際に、§0 または §1 に対する再帰的なアプローチが最適かどうかを検討する必要があります。" +msgstr "§0 と §1 のどちらについて帰納法を使うのが良いか、考えてみてください。" #: Game.Levels.Addition.L02succ_add Game.Levels.Multiplication.L08add_mul #: Game.Levels.Power.L04one_pow Game.Levels.Implication.L10one_ne_zero @@ -1760,14 +1760,12 @@ msgstr "推論を行う際に、§0 または §1 に対する再帰的なアプ #: Game.Levels.AdvMultiplication.L06mul_right_eq_one #. §0: `succ_add a b` #. §1: `succ a + b = succ (a + b)` -#, fuzzy msgid "§0 is a proof that §1." -msgstr "§0 は、§1 の証明を示します。" +msgstr "§0 は、§1 の証明です。" #: Game.Levels.Addition.L02succ_add -#, fuzzy msgid "Well done! You now have enough tools to tackle the main boss of this level." -msgstr "よくできました!これで、このレベルのメインボスに対抗するための十分なツールが揃いました。" +msgstr "お疲れ様でした!これで、このレベルのメインボスに挑むための準備が整いました。" #: Game.Levels.Addition.L03add_comm #. §0: `a` @@ -5012,9 +5010,8 @@ msgid "A proof that §0." msgstr "§0 の証明。" #: Game.Levels.AdvAddition.L05add_right_eq_zero -#, fuzzy msgid "Well done!" -msgstr "よくできました!" +msgstr "お疲れ様でした!" # no-translate #: Game.Levels.AdvAddition.L05add_right_eq_zero From cf1e6dba17bd072876b2f5dc284fcac5b5fb6115 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 31 May 2026 02:47:43 +0900 Subject: [PATCH 121/147] ja_JP: improve Addition.L03 translation --- .i18n/ja/Game.po | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index ebc52e54..70c7493b 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1770,31 +1770,28 @@ msgstr "お疲れ様でした!これで、このレベルのメインボスに #: Game.Levels.Addition.L03add_comm #. §0: `a` #. §1: `b` -#, fuzzy msgid "Induction on §0 or §1 -- it's all the same in this one." -msgstr "帰納法を適用して、§0または§1に対して -- どちらの場合でも結果は同じです。" +msgstr "§0と§1のどちらに対して帰納法を使っても、このレベルでは同じように証明できます。" +# lean4game-statement #: Game.Levels.Addition.L03add_comm #. §0: `a` #. §1: `b` #. §2: $a + b = b + a$ -#, fuzzy msgid "" "On the set of natural numbers, addition is commutative.\n" "In other words, if §0 and §1 are arbitrary natural numbers, then\n" "§2." msgstr "" -"自然数全体の集合においては、加算は交換法則を満たす。\n" -"すなわち、任意の自然数 §0 と §1 が与えられたとき、\n" -"§2." +"自然数全体の集合において、加法は交換法則を満たす。\n" +"言い換えれば、任意の自然数 §0 と §1 に対して、\n" +"§2 が成り立つ。" #: Game.Levels.Addition.L03add_comm -#, fuzzy msgid "add_comm (level boss)" -msgstr "add_comm (レベルボス)" +msgstr "add_comm (ボスレベル)" #: Game.Levels.Addition.L03add_comm -#, fuzzy msgid "" "[boss battle music]\n" "\n" @@ -1803,8 +1800,8 @@ msgid "" msgstr "" "[ボスバトル音楽]\n" "\n" -"あなたのインベントリを確認し、利用可能な証明を確認してください。\n" -"これらで十分であるはずです。" +"インベントリを見て、利用可能な証明を確認してください。\n" +"これらで十分なはずです。" #: Game.Levels.Addition.L04add_assoc #. §0: `a + b + c` From 6fb0dd9773c7362801467ea35c2702b16e6b5faa Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Tue, 2 Jun 2026 01:44:59 +0900 Subject: [PATCH 122/147] ja_JP: improve Addition.L04 translation --- .i18n/ja/Game.po | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 70c7493b..536653a0 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1807,7 +1807,6 @@ msgstr "" #. §0: `a + b + c` #. §1: `(a + b) + c` #. §2: `+` -#, fuzzy msgid "" "Remember that when Lean writes §0, it means §1.\n" "If you are not sure where the brackets are in an expression, just hover\n" @@ -1815,14 +1814,13 @@ msgid "" "hover over both §2 symbols on the left hand side of the goal and\n" "you'll see where the invisible brackets are." msgstr "" -"Leanにおいて「§0」と表示された場合、「§1" -"」を意味することを覚えておいてください。もし式内の括弧の位置が不明な場合は、カーソルをその位置にホバーして表示されるハイライトを確認してください。例えば" -"、目標の左側の両方の「§2」をホバーすると、見えない括弧の位置がわかります。" +"Lean が §0 と書くとき、それは §1 を意味するということを覚えておいてください。\n" +"式の中の括弧がどこにあるか分からないときは、その式の上にカーソルを置いて、どこがハイライトされるかを確認してみてください。例えば、ゴールの左辺にある " +"2 つの §2 記号の上にカーソルを合わせると、隠れている括弧がどこにあるかが分かります。" #: Game.Levels.Addition.L04add_assoc #. §0: `add_assoc` #. §1: `add_comm` -#, fuzzy msgid "" "A passing mathematician congratulates you on proving that naturals\n" "are an additive commutative monoid.\n" @@ -1830,9 +1828,9 @@ msgid "" "Let's practice using §0 and §1 in one more level,\n" "before we leave addition world." msgstr "" -"「自然数の加法的交換半群であることの証明」に際し、通りすがりの数学者がお祝いの言葉を述べます。\n" +"通りすがりの数学者が、自然数が加法的可換モノイドであることを証明したあなたにお祝いの言葉を述べています。\n" "\n" -"加算に関する概念を理解するため、§0 と §1 の使い方をもう一度練習しましょう。" +"加算ワールドを去る前に、 §0 と §1 を使う練習をもう1つのレベルでやっておきましょう。" #: Game.Levels.Addition.L04add_assoc #. §0: $x+y+z$ @@ -1842,7 +1840,6 @@ msgstr "" #. §4: $(x+y)+z$ #. §5: $(x+y)+z$ #. §6: $x+(y+z)$ -#, fuzzy msgid "" "We've been adding up two numbers; in this level we will add up three.\n" "\n" @@ -1853,25 +1850,23 @@ msgid "" "\n" " That's true, but we didn't prove it yet. Let's prove it now by induction." msgstr "" -"二つの数を足し合わせる練習をしてきました。このレベルでは、三つの数を足し合わせます。\n" +"これまで二つの数を足し合わせる練習をしてきました。このレベルでは、三つの数を足し合わせます。\n" "\n" -" §0 は何を意味するのでしょうか?それは §1 または §2 のどちらかです。Lean では、§3 と §4 は同じ意味になります。\n" +" §0 は何を *意味する* のでしょうか?それは §1 または §2 のどちらかです。Lean では、§3 は §4 を意味します。\n" "\n" -" しかし、どの意味を持つべきかを気にする必要はありません。なぜなら、§5 と §6 は *等しい* からです!\n" +" しかし、どちらの意味であるかを気にする必要があるでしょうか。なぜなら、§5 と §6 は *等しい* からです!\n" "\n" -" その通りですが、まだ証明していません。帰納法(`inducution`)でを用いて証明しましょう。" +" その通りですが、まだ証明していません。今から帰納法(`induction`)を用いて証明しましょう。" #: Game.Levels.Addition.L04add_assoc -#, fuzzy msgid "add_assoc (associativity of addition)" -msgstr "add_assoc (加法に関する結合法則)" +msgstr "add_assoc (加法の結合法則)" #: Game.Levels.Addition.L04add_assoc #. §0: `add_assoc a b c` #. §1: `(a + b) + c = a + (b + c)` #. §2: `(a + b) + c` #. §3: `a + b + c` -#, fuzzy msgid "" "§0 is a proof\n" "that §1. Note that in Lean §2 prints\n" @@ -1879,21 +1874,22 @@ msgid "" "associative." msgstr "" "§0 は §1 の証明です。\n" -"Lean では、加算の演算が左結合的に定義されているため、§2 は §3 として表示されます。" +"Lean では加法の記法が左結合として定義されているため、§2 は §3 として表示されることに注意してください。" +# lean4game-statement #: Game.Levels.Addition.L04add_assoc #. §0: $a, b$ #. §1: $c$ #. §2: $ (a + b) + c = a + (b + c). $ -#, fuzzy msgid "" "On the set of natural numbers, addition is associative.\n" "In other words, if §0 and §1 are arbitrary natural numbers, we have\n" "§2" msgstr "" -"自然数全体の集合においては、加算は結合法則に従います。\n" -"言い換えれば、任意の自然数 §0 と §1 が与えられたとき、以下の関係が成り立ちます。\n" -"§2" +"自然数の集合において、加法は結合法則を満たす。\n" +"言い換えれば、任意の自然数 §0 と §1 に対して、\n" +"§2\n" +"が成り立つ。" #: Game.Levels.Addition.L05add_right_comm #. §0: `add_right_comm a b c` From 36ccd3a7c0f994fd47d16021acbd4f29d5fa0425 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sat, 20 Jun 2026 15:55:17 +0900 Subject: [PATCH 123/147] ja_JP: improve Addition.L05 translation --- .i18n/ja/Game.po | 36 ++++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 536653a0..3c7cb9f9 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1856,7 +1856,7 @@ msgstr "" "\n" " しかし、どちらの意味であるかを気にする必要があるでしょうか。なぜなら、§5 と §6 は *等しい* からです!\n" "\n" -" その通りですが、まだ証明していません。今から帰納法(`induction`)を用いて証明しましょう。" +" その通りですが、まだ証明していません。今から帰納法を用いて証明しましょう。" #: Game.Levels.Addition.L04add_assoc msgid "add_assoc (associativity of addition)" @@ -1897,32 +1897,27 @@ msgstr "" #. §2: `a + b + c` #. §3: `(a + b) + c` #. §4: `a + b + c = a + c + b` -#, fuzzy msgid "" "§0 is a proof that §1\n" "\n" "In Lean, §2 means §3, so this result gets displayed\n" "as §4." msgstr "" -"§0 は §1 の証明を示す\n" +"§0 は §1 の証明です。\n" "\n" -"Lean において、§2 は §3 を意味するため、この結果は §4 として表示されます。" +"Lean では §2 は §3 を意味するので、表示上は §4 となります。" #: Game.Levels.Addition.L05add_right_comm #. §0: $a, b$ #. §1: $c$ #. §2: $(a + b) + c = (a + c) + b$ -#, fuzzy msgid "" "If §0 and §1 are arbitrary natural numbers, we have\n" "§2." -msgstr "" -"任意の自然数§0と§1について、以下の関係が成立します。\n" -"§2。" +msgstr "任意の自然数§0と§1に対して、§2が成り立つ。" # no-translate #: Game.Levels.Addition.L05add_right_comm -#, fuzzy msgid "add_right_comm" msgstr "add_right_comm" @@ -1940,7 +1935,6 @@ msgstr "add_right_comm" #. §10: `b + ? = ? + b` #. §11: `rw [add_comm b c]` #. §12: `b + c = c + b` -#, fuzzy msgid "" "§0 is a proof that §1. But if your goal\n" "is §2 then §3 will not\n" @@ -1956,18 +1950,17 @@ msgid "" "will only do rewrites of the form §10, and §11\n" "will only do rewrites of the form §12." msgstr "" -"§0 は §1 の証明です。しかし、あなたの目標が §2 である場合、§3 は機能しません!なぜなら、目標は §4 を意味し、目標に直接的に §5 " -"の項が存在しないからです。\n" +"§0 は §1 であることを示す証明です。しかし、ゴールが §2 である場合、§3 はうまくいきません!なぜなら、ゴールは §4 " +"を意味しており、ゴール内には §5 の項が*直接*現れていないからです。\n" "\n" -"結びつきと交換律を利用して、§6 を証明してください。帰納法は不要です。§7 は括弧の配置を変更し、§8 は変数の配置を変更します。\n" +"結合法則と交換法則を利用して、§6 を証明してください。帰納法を使う必要はありません。§7 は括弧の位置を変更し、§8 は変数の位置を変更します。\n" "\n" -"明示的な変数を用意することで、より的確な書き換えを行うことができます。例えば、§9 は形式 §10 の書き換えのみを実行し、§11 は形式 §12 " -"の書き換えのみを実行します。" +"定理に引数として具体的な変数を渡すことで、より的確な書き換えができることを覚えておいてください。例えば、§9 は §10 " +"という形式の書き換えのみを行い、§11 は §12 という形式の書き換えのみを行います。" #: Game.Levels.Addition.L05add_right_comm #. §0: `a = 0` #. §1: `x + a = x` -#, fuzzy msgid "" "You've now seen all the tactics you need to beat the final boss of the " "game.\n" @@ -1981,14 +1974,13 @@ msgid "" "\n" "Click \"Home\" and make your choice." msgstr "" -"ゲームの最終ボスを倒すためのすべてのタクティクを習得しました。\n" -"この最終ボスの攻略を目指すには、乗算ワールドへ進んでください。\n" +"ゲームの最終ボスを攻略するために必要なすべてのタクティクを習得しました。\n" +"乗算ワールドに進むことで、この最終ボスへの挑戦を開始できます。\n" "\n" -"あるいは、含意ワールドで新たなタクティクを学ぶことも可能です。\n" -"これらのタクティクを用いることで、加算に関するより多くの事実を証明できます。\n" -"例えば、§1から§0を導出する方法を学ぶことができます。\n" +"あるいは、少し寄り道をして含意ワールドで新たなタクティクを学ぶこともできます。これらのタクティクを使うと、加算に関するより多くの事実を証明できるようにな" +"ります。例えば、§1 から §0 を導出する方法などです。\n" "\n" -"「ホーム」をクリックして選択してください。" +"「ホーム」をクリックして、どちらに進むか選んでください。" #: Game.Levels.Multiplication #, fuzzy From 0cdc4d2fcae3aaf8ba7ce3b5612df2aa85a37cc0 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sat, 20 Jun 2026 16:15:54 +0900 Subject: [PATCH 124/147] ja_JP: improve Rules and glossary --- .i18n/ja/Rules.md | 9 +++++++++ .i18n/ja/glossary.csv | 12 ++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/.i18n/ja/Rules.md b/.i18n/ja/Rules.md index 80977805..ee0a2e22 100644 --- a/.i18n/ja/Rules.md +++ b/.i18n/ja/Rules.md @@ -5,3 +5,12 @@ * **例外:原文で "the `...` tactic" ではなく タクティク名単体 (例: `rfl`) のみが記述されている箇所については、日本語でも「タクティク」を付けず、単体で表記する** * 「tactics」は「タクティク」と訳す(末尾の「ス」は含めない) * "solve the goal" の「ゴールを閉じる」は、「ゴールを解決する」に統一する +* lean4game-statement コメントが付いているものは数学の教科書でよくみられるような常体を用いる それ以外は敬体を用いる +* "右側" として言及されている箇所は訳されていない。そのため、Theorems, Tactics, Definitions は原語を全てに付加する + * 該当箇所はUI上の表記を意味する。 + * "右側" として言及されていない箇所は、UI上の表記ではなく単語それ自体の意味であるため、このルールは適用されない + * 右側を翻訳対象にする変更が入ったことが確認されたら、削除する + * "右側の補題" は、どの訳語でもないため、これを維持する +* 原文で強調(イタリック体 `*...*` や太字 `**...**` など)が使用されている場合は、訳文でも Markdown 記法による同様の強調を維持する +* `§0 is a proof that §1.` は "§0 は §1 の証明です。" と訳する +* コンテキストが不足している箇所は、ユーザに確認を取る diff --git a/.i18n/ja/glossary.csv b/.i18n/ja/glossary.csv index 077e1ab6..69051665 100644 --- a/.i18n/ja/glossary.csv +++ b/.i18n/ja/glossary.csv @@ -7,10 +7,13 @@ Show more help!,助けて! Next,次 Home,ホーム progress,セーブデータ,意訳 進捗でも良いかと思ったが、こちらのほうが概念として伝わりやすそう UIも同じ表記 +Editor mode,エディタモード +Typewriter mode,タイプライターモード # 数学 /axioms?/,公理 -associativity,結合性 +associativity,結合法則 +commutativity,交換法則 totality,全順序性 implication,含意 transitivity,推移律 @@ -21,6 +24,11 @@ mathematical proof,数学の証明,数学的は一般的ではなさそうと判 theorem,定理 Statement,命題,文脈で主張やステートメントにする Proposition,命題 +subterm,部分項,JAIST 計算理論研究室 +base case,基底段階,http://dopal.cs.uec.ac.jp/okamotoy/lect/2013/discretemath/term12.pdf 電通大離散数学用語一覧 +induction step,帰納段階,http://dopal.cs.uec.ac.jp/okamotoy/lect/2013/discretemath/term12.pdf 電通大離散数学用語一覧 +commutative monoid,可換モノイド +additive monoid,加法的モノイド,この表現自体は直接使用されないが、参考訳として記載 # Lean /tactics?/,タクティク @@ -42,5 +50,5 @@ Power World,冪乗ワールド Even/Odd World,偶数/奇数ワールド world,ワールド # 統一したい語句 -Can you take it from here?,ここから続けられますか? +Can you take it from here?,ここからは自力で進められますか? From 47867ea6ccd81199e94fcea98c08f7ba2622db18 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sat, 20 Jun 2026 19:40:57 +0900 Subject: [PATCH 125/147] ja_JP: improve Multiplication translation --- .i18n/ja/Game.po | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 3c7cb9f9..804f598d 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -1983,7 +1983,6 @@ msgstr "" "「ホーム」をクリックして、どちらに進むか選んでください。" #: Game.Levels.Multiplication -#, fuzzy msgid "Multiplication World" msgstr "乗算ワールド" @@ -2002,7 +2001,6 @@ msgstr "乗算ワールド" #. §11: `mul_succ a d : a * succ d = a * d + a` #. §12: `a * b = b * a` #. §13: `a * (b + c) = a * b + a * c` -#, fuzzy msgid "" "How should we define §0? Just like addition, we need to give definitions\n" "when §1 and when §2 is a successor.\n" @@ -2021,20 +2019,18 @@ msgid "" "like §13.\n" "Let's get started." msgstr "" -"どのように §0 を定義すべきでしょうか?加法と同様に、§1 であるときと §2 が successor " -"であるときそれぞれに定義を提供する必要があります。\n" +"§0 をどのように定義すべきでしょうか。加法と同様に、§1 の場合と §2 が後者である場合について、それぞれ定義を与える必要があります。\n" "\n" -"ゼロの場合は簡単です:§3 を §4 で定義します。次に §5 を仮定します。§6 のときはどうでしょうか?そうですね、§7 §8 になるので、\n" -"§9になるべきでしょう。\n" +"0 の場合は簡単です。§3 を §4 と定義します。次に、§5 を仮定します。このとき §6 " +"はどのようになるべきでしょうか。そうですね、これは §7 個の §8 ですから、§9 であるべきでしょう。\n" "\n" -"Lean での定義は以下の通りです。\n" +"Lean における定義は以下の通りです。\n" "\n" " * §10\n" " * §11\n" "\n" -"このワールドでは、乗法に関する事実だけでなく、乗法と加法の相互作用に関する事実も証明する必要があります。例えば §12 など。そして §13 " -"なども証明する必要があります。\n" -"始めましょう。" +"このワールドでは、§12 のような乗法に関する事実だけでなく、§13 " +"のように乗法が加法とどのように相互作用するかという事実も証明しなければなりません。それでは始めましょう。" # no-translate #: Game.Levels.Multiplication.L01mul_one From 167778cb51f9f420c46a9fc2970d54a1a4c89f9f Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sat, 20 Jun 2026 23:33:22 +0900 Subject: [PATCH 126/147] ja_JP: improve Multiplication.L01 translation --- .i18n/ja/Game.po | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 804f598d..75c6ee6f 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -2034,7 +2034,6 @@ msgstr "" # no-translate #: Game.Levels.Multiplication.L01mul_one -#, fuzzy msgid "mul_one" msgstr "mul_one" @@ -2044,7 +2043,6 @@ msgstr "mul_one" #. §2: `mul_zero a : a * 0 = 0` #. §3: `mul_succ a b : a * succ b = a * b + a` #. §4: `zero_mul` -#, fuzzy msgid "" "§0, with notation §1, is the usual\n" " product of natural numbers. Internally it is\n" @@ -2057,13 +2055,13 @@ msgid "" "Other theorems about naturals, such as §4,\n" "are proved by induction from these two basic theorems." msgstr "" -"§1 で表記される §0 は、自然数の積を表す一般的な概念です。内部的には、以下の2つの公理を用いて定義されます:\n" +"§0(表記は §1)は、自然数の通常の積です。内部的には、以下の2つの公理によって定義されます。\n" "\n" "* §2\n" "\n" "* §3\n" "\n" -"また、§4のような他の自然数に関する定理は、これらの基本定理から帰納法によって証明されます。" +"§4 のような自然数に関する他の定理は、これら2つの基本的な定理から帰納法を用いて証明されます。" #: Game.Levels.Multiplication.L01mul_one #. §0: `mul_zero` @@ -2078,20 +2076,20 @@ msgid "" "Let's start with a warm-up: no induction needed for this one,\n" "because we know §2 is a successor." msgstr "" -"新しい「*」タブを確認してください。このタブには、§0 と §1 が表示されます。\n" -"現在、これらは乗算に関する唯一の既知的事実です。\n" -"それでは、さらに9つの定理を証明しましょう。\n" +"補題の新しい「*」タブを確認してください。ここには §0 と §1 が含まれています。\n" +"現時点では、これらが乗算について知っている事実のすべてです。\n" +"あと9つ、証明してみましょう。\n" "\n" -"まずは簡単な例から始めましょう。この場合は、帰納法は不要です。\n" -"なぜなら、§2 は後者であるためです。" +"まずは準備運動から始めます。この問題に帰納法は必要ありません。\n" +"なぜなら、私たちは §2 が後者であることを知っているからです。" +# lean4game-statement #: Game.Levels.Multiplication.L01mul_one Game.Levels.Multiplication.L05one_mul #: Game.Levels.Multiplication.L06two_mul #. §0: $m$ #. §1: $ m \\times 1 = m$ -#, fuzzy msgid "For any natural number §0, we have §1." -msgstr "任意の自然数 §0 に対しては、§1 が成り立ちます。" +msgstr "任意の自然数 §0 に対して §1 が成り立つ。" #: Game.Levels.Multiplication.L02zero_mul #. §0: `zero_mul x` From dcad5c8c09fd2ee275a806c07a9fe254a8c074a3 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 5 Jul 2026 01:05:44 +0900 Subject: [PATCH 127/147] ja_JP: improve Multiplication.L02 translation --- .i18n/ja/Game.po | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 75c6ee6f..50fc95ac 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -2021,8 +2021,8 @@ msgid "" msgstr "" "§0 をどのように定義すべきでしょうか。加法と同様に、§1 の場合と §2 が後者である場合について、それぞれ定義を与える必要があります。\n" "\n" -"0 の場合は簡単です。§3 を §4 と定義します。次に、§5 を仮定します。このとき §6 " -"はどのようになるべきでしょうか。そうですね、これは §7 個の §8 ですから、§9 であるべきでしょう。\n" +"0 の場合は簡単です。§3 を §4 と定義します。次に、§5 を仮定します。このとき §6 はどのようになるべきでしょうか。そうですね、これは §7 " +"個の §8 ですから、§9 であるべきでしょう。\n" "\n" "Lean における定義は以下の通りです。\n" "\n" @@ -2077,11 +2077,11 @@ msgid "" "because we know §2 is a successor." msgstr "" "補題の新しい「*」タブを確認してください。ここには §0 と §1 が含まれています。\n" -"現時点では、これらが乗算について知っている事実のすべてです。\n" +"現時点では、これらが乗算について私たちが知っている事実のすべてです。\n" "あと9つ、証明してみましょう。\n" "\n" "まずは準備運動から始めます。この問題に帰納法は必要ありません。\n" -"なぜなら、私たちは §2 が後者であることを知っているからです。" +"なぜなら、§2 が後者であることを私たちは知っているからです。" # lean4game-statement #: Game.Levels.Multiplication.L01mul_one Game.Levels.Multiplication.L05one_mul @@ -2096,21 +2096,19 @@ msgstr "任意の自然数 §0 に対して §1 が成り立つ。" #. §1: `0 * x = 0` #. §2: `zero_mul` #. §3: `simp` -#, fuzzy msgid "" "§0 is the proof that §1.\n" "\n" "Note: §2 is a §3 lemma." msgstr "" -"§0 は、§1 の証明を示します。\n" +"§0 は §1 の証明です。\n" "\n" -"注:§2 は、§3 の補題です。" +"注:§2 は §3 補題です。" #: Game.Levels.Multiplication.L02zero_mul #. §0: `mul_comm x y : x * y = y * x` #. §1: `mul_zero` #. §2: `zero_mul` -#, fuzzy msgid "" "Our first challenge is §0,\n" "and we want to prove it by induction. The zero\n" @@ -2118,12 +2116,11 @@ msgid "" "and §2 (which we don't), so let's\n" "start with this." msgstr "" -"最初の課題は§0ですが、帰納法を用いて証明します。\n" -"ゼロの場合には§1(定義済み)と§2(定義されていません)が必要です。まずはこの部分から取り組みます。" +"最初の課題は §0 です。これを数学的帰納法を用いて証明してみましょう。\n" +"0 のケースには §1(定義済み)と §2(未定義)が必要ですので、まずはこの部分から取り組みます。" # no-translate #: Game.Levels.Multiplication.L02zero_mul -#, fuzzy msgid "zero_mul" msgstr "zero_mul" From fef5f19fffc5d51c591e439fc7709a2f52c5edf4 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Wed, 8 Jul 2026 23:11:12 +0900 Subject: [PATCH 128/147] ja_JP: improve Multiplication.L03 translation --- .i18n/ja/Game.po | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 50fc95ac..a06ba9ea 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -2067,7 +2067,6 @@ msgstr "" #. §0: `mul_zero` #. §1: `mul_succ` #. §2: `1` -#, fuzzy msgid "" "See the new \"*\" tab in your lemmas, containing §0 and §1.\n" "Right now these are the only facts we know about multiplication.\n" @@ -2124,22 +2123,22 @@ msgstr "" msgid "zero_mul" msgstr "zero_mul" +# lean4game-statement #: Game.Levels.Multiplication.L03succ_mul #. §0: $a$ #. §1: $b$ #. §2: $(\\operatorname{succ}\\ a) \\times b = a\\times b + b$ -#, fuzzy msgid "" "For all natural numbers §0 and §1, we have\n" "§2." msgstr "" "すべての自然数 §0 と §1 について、\n" -"§2。" +"§2が成り立つ。" +# 用語集のセーブデータだと状況として不自然な訳だったので、"ゲームの進行状況" と翻訳 #: Game.Levels.Multiplication.L03succ_mul #. §0: `mul_succ` #. §1: `succ_mul` -#, fuzzy msgid "" "Similarly we have §0\n" "but we're going to need §1 (guess what it says -- maybe you\n" @@ -2150,14 +2149,13 @@ msgid "" "home screen by clicking the house icon and then taking a look.\n" "You won't lose any progress." msgstr "" -"同様に §0 もありますが、§1 が必要です (内容を推測してみてください。Lean の命名規則をご理解いただけているかもしれません)。\n" +"同様に §0 もありますが、§1 が必要になります(中身が何であるか推測してみてください。Lean の命名規則にも慣れてきた頃ではないでしょうか)。\n" "\n" -"加算ワールドの最後のレベルが、このレベルを攻略するのに役立つ可能性があります。もし内容を忘れてしまった場合は、ホーム画面に戻るためにアイコンをクリックし" -"てください。進捗は失われません。" +"加算ワールドの最後のレベルが、このレベルの攻略に役立つかもしれません。もし内容を忘れてしまった場合は、家のアイコンをクリックしてホーム画面に戻り、確認し" +"てみましょう。ゲームの進行状況が失われることはありません。" # no-translate #: Game.Levels.Multiplication.L03succ_mul -#, fuzzy msgid "succ_mul" msgstr "succ_mul" @@ -2168,16 +2166,16 @@ msgstr "succ_mul" #. §3: `mul_comm` #. §4: `mul_comm` #. §5: `mul_succ` -#, fuzzy msgid "" "§0 is the proof that §1.\n" "\n" "It could be deduced from §2 and §3, however this argument\n" "would be circular because the proof of §4 uses §5." msgstr "" -"§0 は §1 の証明を示します。\n" +"§0 は §1 の証明です。\n" "\n" -"ただし、これは §2 と §3 から導出可能ですが、この議論は循環しており、§4 の証明において §5 が使用されているためです。" +"この補題は §2 および §3 から導出することもできますが、§4 の証明において §5 " +"が使用されているため、そのような議論は循環論法になってしまいます。" #: Game.Levels.Multiplication.L04mul_comm #. §0: `mul_comm x y : x * y = y * x` From b0d1746c290bbf0411f008326ccab08de7ab105a Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 13 Jul 2026 21:27:47 +0900 Subject: [PATCH 129/147] ja_JP: improve Multiplication.L04 translation --- .i18n/ja/Game.po | 19 +++++++------------ .i18n/ja/Rules.md | 42 ++++++++++++++++++++++++++++-------------- .i18n/ja/glossary.csv | 3 +++ 3 files changed, 38 insertions(+), 26 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index a06ba9ea..7626069c 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -2181,7 +2181,6 @@ msgstr "" #. §0: `mul_comm x y : x * y = y * x` #. §1: `zero_mul` #. §2: `mul_zero` -#, fuzzy msgid "" "The first sub-boss of Multiplication World is §0.\n" "\n" @@ -2190,35 +2189,31 @@ msgid "" "But we'll keep hold of these proofs anyway, because it's convenient\n" "to have exactly the right tool for a job." msgstr "" -"乗算ワールドの最初のサブボスは§0です。\n" +"乗算ワールドの最初のサブボスは §0 です。\n" "\n" -"この定理を証明すると、「余剰」な証明が得られます。\n" -"例えば、§2から容易に導かれる§1があります。\n" -"ただし、これらの証明は保持しておきます。\n" -"特定のタスクに適した道具を手元に置いておくためです。" +"この定理を証明すると、§2 から容易に導ける §1 " +"のような「余分な」証明が得られることになります。しかし、これらの証明はそのまま手元に残しておきます。ある作業に対してまさに適切な道具を持っておくことは便" +"利だからです。" # no-translate #: Game.Levels.Multiplication.L04mul_comm -#, fuzzy msgid "mul_comm" msgstr "mul_comm" #: Game.Levels.Multiplication.L04mul_comm -#, fuzzy msgid "Multiplication is commutative." -msgstr "乗算は交換律を満たします。" +msgstr "乗算は交換法則を満たします。" #: Game.Levels.Multiplication.L04mul_comm #. §0: `mul_comm` #. §1: `mul_comm a b` #. §2: `a * b = b * a` -#, fuzzy msgid "" "§0 is the proof that multiplication is commutative. More precisely,\n" "§1 is the proof that §2." msgstr "" -"§0 は、乗算における交換法則の成立を示す証明です。より具体的には、\n" -"§1 は、§2 が交換法則を満たすことを示す証明です。" +"§0 は乗算が交換法則を満たすことの証明です。より具体的には、\n" +"§1 は §2 の証明です。" #: Game.Levels.Multiplication.L05one_mul #. §0: $1\\times m=m$ diff --git a/.i18n/ja/Rules.md b/.i18n/ja/Rules.md index ee0a2e22..31a98a23 100644 --- a/.i18n/ja/Rules.md +++ b/.i18n/ja/Rules.md @@ -1,16 +1,30 @@ -# Rule +# 翻訳スタイルガイド & ルール -* 特別な記載が無い限り、glossary.csv の対訳に従う -* 原文の語順に関わらず、特定のタクティクに言及する際は、 "rfl タクティク" のようにする +## 1. 基本原則 +* 特別な記載が無い限り、常に `glossary.csv` の対訳を最優先で適用してください。 +* 原文で強調(イタリック体 `*...*`, 太字 `**...**` など)が使用されている場合は、訳文でも Markdown 記法による同様の強調を完全に維持してください。 +* コンテキスト(文脈)が不足しており判断がつかない箇所は、翻訳を保留し、ユーザに確認を求めるコメントを出力してください。 + +## 2. 文体(敬体・常体の使い分け) +* **常体(〜だ・である)の適用条件:** * `lean4game-statement` コメントが付いている行。 +* **敬体(〜です・ます)の適用条件:** + * 上記以外の一般的な解説、UIの説明、チュートリアル部分。 + +## 3. 専門用語・タクティクの表記規則 +* **「tactics」の翻訳:** 常に「タクティク」と訳してください(末尾に「ス」は付けない)。 +* 原文の語順に関わらず、特定のタクティクに言及する際は、 "rfl タクティク" のようにしてください * **例外:原文で "the `...` tactic" ではなく タクティク名単体 (例: `rfl`) のみが記述されている箇所については、日本語でも「タクティク」を付けず、単体で表記する** -* 「tactics」は「タクティク」と訳す(末尾の「ス」は含めない) -* "solve the goal" の「ゴールを閉じる」は、「ゴールを解決する」に統一する -* lean4game-statement コメントが付いているものは数学の教科書でよくみられるような常体を用いる それ以外は敬体を用いる -* "右側" として言及されている箇所は訳されていない。そのため、Theorems, Tactics, Definitions は原語を全てに付加する - * 該当箇所はUI上の表記を意味する。 - * "右側" として言及されていない箇所は、UI上の表記ではなく単語それ自体の意味であるため、このルールは適用されない - * 右側を翻訳対象にする変更が入ったことが確認されたら、削除する - * "右側の補題" は、どの訳語でもないため、これを維持する -* 原文で強調(イタリック体 `*...*` や太字 `**...**` など)が使用されている場合は、訳文でも Markdown 記法による同様の強調を維持する -* `§0 is a proof that §1.` は "§0 は §1 の証明です。" と訳する -* コンテキストが不足している箇所は、ユーザに確認を取る +* **「solve the goal」の翻訳:** 常に「ゴールを解決する」に統一してください(「ゴールを閉じる」は使用禁止)。 +* **「lemmas」の翻訳(重要):** + * 常に日本語(「補題」など)に翻訳してください。 + * **注意:** 後述の「UIルール」は `lemmas` には**絶対に適用しないでください**(原語を残してはいけません)。 + +## 4. UI(画面右側)に関する特殊ルール +* 画面の「右側(Right side)」と言及されている文脈、またはUI上の表記(Theorems, Tactics, Definitions)を指している箇所では、原語(英語)を必ず併記または残してください。 + * UI上に表示されているのはこの3単語のみです。 +* ※ 「右側の補題」という表現はそのまま維持してください。 + +## 5. テンプレート・変数ルール +* 原文 `§0 is a proof that §1.` に対する訳文は、必ず `"§0 は §1 の証明です。"` としてください。 + * 注意: `§0` や `§1` などのプレースホルダー(記号)は、順序や形式を変更せず、そのまま訳文に含めてください。 +* `lean4game-statement` コメントが付いている場合、 原文 `For §0, we have §1.` に対する訳文は、 `§0 について、 §1 が成り立つ.` と訳してください。 diff --git a/.i18n/ja/glossary.csv b/.i18n/ja/glossary.csv index 69051665..99ff3575 100644 --- a/.i18n/ja/glossary.csv +++ b/.i18n/ja/glossary.csv @@ -29,6 +29,8 @@ base case,基底段階,http://dopal.cs.uec.ac.jp/okamotoy/lect/2013/discretemath induction step,帰納段階,http://dopal.cs.uec.ac.jp/okamotoy/lect/2013/discretemath/term12.pdf 電通大離散数学用語一覧 commutative monoid,可換モノイド additive monoid,加法的モノイド,この表現自体は直接使用されないが、参考訳として記載 +commutative ring,可換環 +commutative semiring,可換半環 # Lean /tactics?/,タクティク @@ -36,6 +38,7 @@ goal,ゴール,一般語句との混在に注意 object,対象,ローカルコンテキスト の項目が表示されるが、仮定と分けて表示されたりすることもあるため対象 と訳すのが無難と判断 definitional equality,定義上の等しさ,https://github.com/lean-ja/fp-lean-ja/issues/91 propositional equality,命題上の等しさ,https://github.com/lean-ja/fp-lean-ja/issues/91 +simp lemma,simp 補題 # Worlds successor,後者,Wikipediaから From 358befed2ff4f7d11fd50ef7cf1e59bf489ed37b Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 20 Jul 2026 00:25:27 +0900 Subject: [PATCH 130/147] ja_JP: improve Multiplication.L05 translation --- .i18n/ja/Game.po | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 7626069c..e2585c98 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -2218,26 +2218,22 @@ msgstr "" #: Game.Levels.Multiplication.L05one_mul #. §0: $1\\times m=m$ #. §1: `succ_mul` -#, fuzzy msgid "" "You can prove §0 in at least three ways.\n" "Either by induction, or by using §1, or\n" "by using commutativity. Which do you think is quickest?" msgstr "" -"少なくとも3つの方法で§0を証明できます。\n" -"いずれも、帰納法を用いる方法、§1を利用する方法、または交換律を用いる方法です。\n" -"これらのうち、最も効率的な方法はどれだとお考えですか?" +"§0 は少なくとも3通りの方法で証明できます。\n" +"帰納法を用いる方法、§1 を利用する方法、あるいは交換法則を用いる方法です。どの方法が一番速いと思いますか?" #: Game.Levels.Multiplication.L05one_mul #. §0: `one_mul m` #. §1: `1 * m = m` -#, fuzzy msgid "§0 is the proof §1." -msgstr "§0 は §1 の証明を示す。" +msgstr "§0 は §1 の証明です。" # no-translate #: Game.Levels.Multiplication.L05one_mul -#, fuzzy msgid "one_mul" msgstr "one_mul" @@ -2246,12 +2242,11 @@ msgstr "one_mul" #. rw [mul_comm, mul_one] #. rfl #. ``` -#, fuzzy msgid "" "Here's my solution:\n" "§0" msgstr "" -"私の解決策:\n" +"解答例は以下の通りです:\n" "§0" # no-translate From 26fa2fad08cc3410197f4e8c190861d92a2d849e Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 20 Jul 2026 02:14:18 +0900 Subject: [PATCH 131/147] ja_JP: improve Multiplication.L06 translation --- .i18n/ja/Game.po | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index e2585c98..82c5c79e 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -2251,16 +2251,14 @@ msgstr "" # no-translate #: Game.Levels.Multiplication.L06two_mul -#, fuzzy msgid "two_mul" msgstr "two_mul" #: Game.Levels.Multiplication.L06two_mul -#, fuzzy msgid "" "This level is more important than you think; it plays\n" "a useful role when battling a big boss later on." -msgstr "このレベルは、想像以上に重要な役割を担います。特に、後で登場する強力なボスとの戦闘において、その有効性が発揮されます。" +msgstr "このレベルは、皆さんが思っている以上に重要です。後ほど強力なボスと戦う際、ここで学ぶことが役に立ちます。" #: Game.Levels.Multiplication.L07mul_add #. §0: $a$ From 8c0789ea149c195fe1ee86e3fb2674e8f161293a Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 20 Jul 2026 03:18:29 +0900 Subject: [PATCH 132/147] ja_JP: improve Multiplication.L07 translation --- .i18n/ja/Game.po | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 82c5c79e..16ef6aac 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -2265,42 +2265,39 @@ msgstr "このレベルは、皆さんが思っている以上に重要です。 #. §1: $b$ #. §2: $c$ #. §3: $a(b + c) = ab + ac$ -#, fuzzy msgid "" "Multiplication is distributive over addition on the left.\n" "In other words, for all natural numbers §0, §1 and §2, we have\n" "§3." msgstr "" -"乗算は、左から加算に関して分配法則に従います。\n" -"すなわち、任意の自然数 §0, §1, §2 について、以下の関係が成立します。\n" -"§3." +"乗算は左側から加算に対して分配可能です。\n" +"言い換えると、すべての自然数 §0, §1, §2 について、\n" +"§3 が成り立ちます。" #: Game.Levels.Multiplication.L07mul_add #. §0: `a` #. §1: `b` #. §2: `c` -#, fuzzy msgid "" "Induction on §0 is the most troublesome, then §1,\n" "and §2 is the easiest." -msgstr "帰納法における§0のケースが最も困難であり、次に§1、そして§2が最も容易です。" +msgstr "§0 に関する帰納法が最も難しく、次が §1 で、§2 が最も簡単です。" #: Game.Levels.Multiplication.L07mul_add -#, fuzzy msgid "" "You can do induction on any of the three variables. Some choices\n" "are harder to push through than others. Can you do the inductive step in\n" "5 rewrites only?" msgstr "" -"任意の3つの変数に対して、帰納法を適用することができます。しかし、すべての選択肢が容易ではありません。5" -"回の書き換えで、帰納的ステップを実行することは可能でしょうか?" +"3つの変数のどれに対しても帰納法を適用できますが、選択によっては証明が難しくなることがあります。5" +"回の書き換えだけで帰納的ステップを実行できるでしょうか?" # no-translate #: Game.Levels.Multiplication.L07mul_add -#, fuzzy msgid "mul_add" msgstr "mul_add" +# 1行目は他の翻訳と同じとなるように設定 #: Game.Levels.Multiplication.L07mul_add #. §0: ``` #. induction c with d hd @@ -2311,24 +2308,22 @@ msgstr "mul_add" #. ``` #. §1: `a` #. §2: `b` -#, fuzzy msgid "" "Here's my solution:\n" "§0\n" "\n" "Inducting on §1 or §2 also works, but might take longer." msgstr "" -"私の解法:\n" +"解答例は以下の通りです:\n" "§0\n" "\n" -"§1 または §2 に関する帰納法も有効ですが、より時間のかかる場合があります。" +"§1 や §2 で帰納法を用いることでも証明できますが、少し時間がかかるかもしれません。" #: Game.Levels.Multiplication.L07mul_add #. §0: $a(b+c)=ab+ac$ #. §1: $(b+c)a=ba+ca$ #. §2: `mul_add a b c` #. §3: `a * (b + c) = a * b + a * c` -#, fuzzy msgid "" "Our next goal is \"left and right distributivity\",\n" "meaning §0 and §1. Rather than\n" @@ -2338,21 +2333,20 @@ msgid "" "Note that the left hand side contains a multiplication\n" "and then an addition." msgstr "" -"次の目標は「左と右の分配法則」を達成することです。具体的には、式§0と§1" -"についてです。これらの表現はやや冗長ですが、Leanの証明名は説明的であるという原則に従います。まずは、式§3の証明である§2" -"から始めましょう。留意すべき点は、左辺には乗算が含まれており、その後に加算が行われることです。" +"次のゴールは「左および右の分配法則(left and right distributivity)」、つまり §0 と §1 " +"です。このような少々堅苦しい名称よりも、Lean における証明名は、その内容を表すようなものになっています。まずは §3 の証明である §2 " +"から始めましょう。左辺には乗算と、その後の加算が含まれていることに注目してください。" #: Game.Levels.Multiplication.L07mul_add #. §0: `mul_add a b c` #. §1: `a * (b + c) = a * b + a * c` -#, fuzzy msgid "" "Multiplication distributes\n" "over addition on the left.\n" "\n" "§0 is the proof that §1." msgstr "" -"乗算は、加算に対して左側で分配されます。\n" +"乗算は加算に対して左から分配されます。\n" "\n" "§0 は §1 の証明です。" From 4dca593525c956e413c40c0b4502cb20ba9d83d7 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 20 Jul 2026 12:53:20 +0900 Subject: [PATCH 133/147] ja_JP: improve Multiplication.L08 translation --- .i18n/ja/Game.po | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 16ef6aac..1f2fae16 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -2357,40 +2357,36 @@ msgstr "" #. repeat rw [mul_comm c] #. rfl #. ``` -#, fuzzy msgid "" "Here's my proof:\n" "§0" msgstr "" -"私の証明:\n" +"以下が証明の例です。\n" "§0" +# lean4game-statement #: Game.Levels.Multiplication.L08add_mul #. §0: $a$ #. §1: $b$ #. §2: $c$ #. §3: $(a + b) \\times c = ac + bc$ -#, fuzzy msgid "" "Addition is distributive over multiplication.\n" "In other words, for all natural numbers §0, §1 and §2, we have\n" "§3." msgstr "" -"加法は乗法に関して分配法則が成り立ちます。\n" -"すなわち、任意の自然数 §0, §1, §2 について、以下の式が成立します。\n" -"§3。" +"加法は乗法に関して分配的である。\n" +"言い換えると、任意の自然数 §0, §1, §2 について、 §3 が成り立つ。" #: Game.Levels.Multiplication.L08add_mul #. §0: `add_mul` -#, fuzzy msgid "" "§0 is just as fiddly to prove by induction; but there's a trick\n" "which avoids it. Can you spot it?" -msgstr "§0を帰納法で証明することは、同様に複雑です。しかし、それを利用せずに証明できる方法があります。それは何かを見抜けますか?" +msgstr "§0 の証明も同様に帰納法を使うと手間がかかりますが、それを使わずに済むコツがあります。何だか分かりますか?" # no-translate #: Game.Levels.Multiplication.L08add_mul -#, fuzzy msgid "add_mul" msgstr "add_mul" From acf2936150c32da06e5f65f0890c0175eb16918e Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 20 Jul 2026 22:04:30 +0900 Subject: [PATCH 134/147] ja_JP: improve Multiplication.L09 translation --- .i18n/ja/Game.po | 22 +++++--------- .i18n/ja/Rules.md | 70 ++++++++++++++++++++++++++----------------- .i18n/ja/glossary.csv | 1 + 3 files changed, 51 insertions(+), 42 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 1f2fae16..e9c51f9b 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -2392,21 +2392,19 @@ msgstr "add_mul" # no-translate #: Game.Levels.Multiplication.L09mul_assoc -#, fuzzy msgid "mul_assoc" msgstr "mul_assoc" #: Game.Levels.Multiplication.L09mul_assoc -#, fuzzy msgid "" "A passing mathematician notes that you've proved\n" "that the natural numbers are a commutative semiring.\n" "\n" "If you want to begin your journey to the final boss, head for Power World." msgstr "" -"通りすがりの数学者が、自然数が可換半環であることを証明したことを指摘しました。\n" +"通りすがりの数学者が、自然数が可換半環であることをあなたが証明したことに気がつきました。\n" "\n" -"最終ボスとの戦いを開始するには、冪乗ワールドへ進んでください。" +"最終ボスへの旅を始めるなら、冪乗ワールドへ向かいましょう。" #: Game.Levels.Multiplication.L09mul_assoc #. §0: `mul_assoc a b c` @@ -2416,7 +2414,6 @@ msgstr "" #. §4: `(a * b) * c = a * (b * c)` #. §5: `(6 - 2) - 1` #. §6: `6 - (2 - 1)` -#, fuzzy msgid "" "§0 is a proof that §1.\n" "\n" @@ -2428,32 +2425,29 @@ msgid "" msgstr "" "§0 は §1 の証明です。\n" "\n" -"Lean が §2 と言った場合、それは §3 を意味します。\n" +"Lean が §2 と言うとき、それは §3 を意味することに注意してください。\n" "\n" -"Lean では、§4 は「純粋な思考」だけでは証明できません:\n" -"例えば、減算は結合法則を満たさないため、§5 は §6 と等しくありません。" +"なお、§4 は「純粋な思考」のみによって証明することはできません。例えば、減算には結合法則が成り立たないため、§5 は §6 と等しくありません。" #: Game.Levels.Multiplication.L09mul_assoc -#, fuzzy msgid "" "We now have enough to prove that multiplication is associative,\n" "the boss level of multiplication world. Good luck!" -msgstr "乗算が結合的であることを証明するための準備は整いました。これは、乗算ワールドのボスレベルです。成功をお祈りします!" +msgstr "乗算が結合的であることを証明する準備が整いました。これは乗算ワールドのボスレベルです。健闘を祈ります!" +# lean4game-statement #: Game.Levels.Multiplication.L09mul_assoc #. §0: $a$ #. §1: $b$ #. §2: $c$ #. §3: $(ab)c = a(bc)$ -#, fuzzy msgid "" "Multiplication is associative.\n" "In other words, for all natural numbers §0, §1 and §2, we have\n" "§3." msgstr "" -"乗算は結合法則に従います。\n" -"言い換えれば、任意の自然数 §0, §1, §2 について、以下のことが成り立ちます。\n" -"§3。" +"乗算は結合法則を満たす。\n" +"言い換えれば、任意の自然数 §0, §1, §2 について、 §3 が成り立つ。" #: Game.Levels.Implication #, fuzzy diff --git a/.i18n/ja/Rules.md b/.i18n/ja/Rules.md index 31a98a23..e5d0b3c7 100644 --- a/.i18n/ja/Rules.md +++ b/.i18n/ja/Rules.md @@ -1,30 +1,44 @@ # 翻訳スタイルガイド & ルール -## 1. 基本原則 -* 特別な記載が無い限り、常に `glossary.csv` の対訳を最優先で適用してください。 -* 原文で強調(イタリック体 `*...*`, 太字 `**...**` など)が使用されている場合は、訳文でも Markdown 記法による同様の強調を完全に維持してください。 -* コンテキスト(文脈)が不足しており判断がつかない箇所は、翻訳を保留し、ユーザに確認を求めるコメントを出力してください。 - -## 2. 文体(敬体・常体の使い分け) -* **常体(〜だ・である)の適用条件:** * `lean4game-statement` コメントが付いている行。 -* **敬体(〜です・ます)の適用条件:** - * 上記以外の一般的な解説、UIの説明、チュートリアル部分。 - -## 3. 専門用語・タクティクの表記規則 -* **「tactics」の翻訳:** 常に「タクティク」と訳してください(末尾に「ス」は付けない)。 -* 原文の語順に関わらず、特定のタクティクに言及する際は、 "rfl タクティク" のようにしてください - * **例外:原文で "the `...` tactic" ではなく タクティク名単体 (例: `rfl`) のみが記述されている箇所については、日本語でも「タクティク」を付けず、単体で表記する** -* **「solve the goal」の翻訳:** 常に「ゴールを解決する」に統一してください(「ゴールを閉じる」は使用禁止)。 -* **「lemmas」の翻訳(重要):** - * 常に日本語(「補題」など)に翻訳してください。 - * **注意:** 後述の「UIルール」は `lemmas` には**絶対に適用しないでください**(原語を残してはいけません)。 - -## 4. UI(画面右側)に関する特殊ルール -* 画面の「右側(Right side)」と言及されている文脈、またはUI上の表記(Theorems, Tactics, Definitions)を指している箇所では、原語(英語)を必ず併記または残してください。 - * UI上に表示されているのはこの3単語のみです。 -* ※ 「右側の補題」という表現はそのまま維持してください。 - -## 5. テンプレート・変数ルール -* 原文 `§0 is a proof that §1.` に対する訳文は、必ず `"§0 は §1 の証明です。"` としてください。 - * 注意: `§0` や `§1` などのプレースホルダー(記号)は、順序や形式を変更せず、そのまま訳文に含めてください。 -* `lean4game-statement` コメントが付いている場合、 原文 `For §0, we have §1.` に対する訳文は、 `§0 について、 §1 が成り立つ.` と訳してください。 +本ガイドラインは、Natural Number Game 4 (NNG4) の翻訳における絶対的な基準です。AIは出力を生成する前に、必ずこのルールを参照してください。 + +## 1. 翻訳プロセスの基本原則 +* **用語集の優先**: `glossary.csv` に記載されている対訳は、あらゆる場合に最優先で使用してください。 +* **強調記法**: 原文の強調(`*...*`, `**...**`)は、訳文でもMarkdown記法で完全に維持してください。 +* **文体**: + * `lean4game-statement` が付いた行:**常体**(〜だ・である) + * 上記以外:**敬体**(〜です・ます) + +## 2. 専門用語・タクティク・補題のルール +* **「タクティク」の表記**: 常に「タクティク」と訳し、「ス」を付けない。 +* **タクティク名**: + * 原文が "the `...` tactic" の場合:「`...` タクティク」と表記。 + * 原文がタクティク単体の場合:「`...`」と表記。 +* **「ゴールを解決する」**: "solve the goal" の訳として必ず使用する(「ゴールを閉じる」は使用禁止)。 +* **「補題」**: "lemmas" は必ず「補題」と訳す。**原語を併記してはならない**。 + +## 3. 表記・併記に関する厳格なルール +以下の基準に基づき、原語併記の可否を判断してください。 + +### A. 原語併記が必要なケース(限定的) +* **UI要素の見出し**: `Theorems`, `Tactics`, `Definitions` などのパネル見出し。 + * 形式:`日本語訳 (English)` +* **UI上の固有名詞**: UIパネル内に表示されているタクティク名や補題名(例: `rfl`, `add_assoc`)。 + * 形式:`日本語訳 (English)` + +### B. 原語併記を禁止するケース(重要) +* **ナラティブ要素**: ストーリー上の地名(例: Power World)、キャラクター名、概念の導 +入。 + * 対応:用語集の対訳がある場合は対訳のみを使用し、**原語を併記してはならない**。 + * 理由:ナラティブの一貫性と可読性を損なうため。 + +## 4. テンプレート・変数変換ルール +* `§0` などのプレースホルダーは、**順序や形式を変更せず、そのまま訳文に含めてください**。 +* **§0 is a proof that §1.** -> `§0 は §1 の証明です。` +* **For §0, we have §1.** (statementのみ) -> `§0 について、 §1 が成り立つ.` +* **For all natural numbers** (statementのみ) -> `任意の自然数` + +## 5. 日本語表現の品質基準(校正指針) +* **自然な日本語**: 英語の構文(「〜を持つ」「〜によって提供される」)を直訳せず、文脈に応じて自然な日本語に再構成する。 +* **「あなた」の削除**: 文脈上主語を省略できる場合は、積極的に省略すること。 +* **数式の配置**: プレースホルダー(`§1` 等)を、日本語の文法上自然な位置に配置する。必要に応じて前後に半角スペースを入れる。 diff --git a/.i18n/ja/glossary.csv b/.i18n/ja/glossary.csv index 99ff3575..6b99e522 100644 --- a/.i18n/ja/glossary.csv +++ b/.i18n/ja/glossary.csv @@ -31,6 +31,7 @@ commutative monoid,可換モノイド additive monoid,加法的モノイド,この表現自体は直接使用されないが、参考訳として記載 commutative ring,可換環 commutative semiring,可換半環 +multiplication,乗算 # Lean /tactics?/,タクティク From fb64d129ef665884b98f2b4a1e292fe69e3d0c8c Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sat, 1 Aug 2026 02:47:47 +0900 Subject: [PATCH 135/147] ja_JP: improve Implication introduction translation --- .i18n/ja/Game.po | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index e9c51f9b..d7663a15 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -2450,7 +2450,6 @@ msgstr "" "言い換えれば、任意の自然数 §0, §1, §2 について、 §3 が成り立つ。" #: Game.Levels.Implication -#, fuzzy msgid "Implication World" msgstr "含意ワールド" @@ -2459,7 +2458,6 @@ msgstr "含意ワールド" #. §1: $2+2\\neq 5$ #. §2: $x + y = y + x$ #. §3: $x+1=4 \\implies x=3.$ -#, fuzzy msgid "" "We've proved that §0; in Implication World we'll learn\n" "how to prove §1.\n" @@ -2474,12 +2472,12 @@ msgid "" "\n" "Click on \"Start\" to proceed." msgstr "" -"私たちは§0の証明を示しました; 含意ワールドでは、§1を証明する方法について学びます。\n" +"私たちは §0 を証明しました。含意ワールドでは、§1 を証明する方法について学びます。\n" "\n" -"加法ワールドでは、§2のような等式を証明しました。\n" -"この二つ目のチュートリアルワールドでは、新しいタクティク(証明手法)を学び、これを使って§3のような推論を証明できるようになります。\n" +"加算ワールドでは、§2 のような等式を証明しました。この2つ目のチュートリアルワールドでは、新しいタクティクをいくつか学び、§3 " +"のような含意を証明できるようになります。\n" "\n" -"また、ペアノが公理として導入した自然数に関する二つの新しい基本的事実についても学びます。\n" +"また、ペアノが公理として導入した、自然数に関する2つの新しい基本的事実についても学びます。\n" "\n" "「開始」をクリックして進みましょう。" From 530a2120bf2be80f8cbaca1e7502cc1338d40eef Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sat, 1 Aug 2026 02:52:33 +0900 Subject: [PATCH 136/147] ja_JP: improve rules --- .i18n/ja/Rules.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.i18n/ja/Rules.md b/.i18n/ja/Rules.md index e5d0b3c7..2ac13193 100644 --- a/.i18n/ja/Rules.md +++ b/.i18n/ja/Rules.md @@ -20,11 +20,11 @@ ## 3. 表記・併記に関する厳格なルール 以下の基準に基づき、原語併記の可否を判断してください。 -### A. 原語併記が必要なケース(限定的) -* **UI要素の見出し**: `Theorems`, `Tactics`, `Definitions` などのパネル見出し。 - * 形式:`日本語訳 (English)` +### A. 原語表記のみが必要なケース(限定的) +* **UI要素の見出し**: `Theorems`, `Tactics`, `Definitions` のみ。 + * 形式:`English` * **UI上の固有名詞**: UIパネル内に表示されているタクティク名や補題名(例: `rfl`, `add_assoc`)。 - * 形式:`日本語訳 (English)` + * 形式:`English` ### B. 原語併記を禁止するケース(重要) * **ナラティブ要素**: ストーリー上の地名(例: Power World)、キャラクター名、概念の導 From 32c0f47b9aeb918eee2ef50b97d9e2eb6f2376da Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sat, 1 Aug 2026 13:01:26 +0900 Subject: [PATCH 137/147] ja_JP: improve Implication.L01 translation --- .i18n/ja/Game.po | 35 +++++++++++++++-------------------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index d7663a15..2c4d6104 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -2506,7 +2506,6 @@ msgstr "" #. §21: `x = x` #. §22: `rw` #. §23: `add_zero` -#, fuzzy msgid "" "## Summary\n" "\n" @@ -2535,45 +2534,42 @@ msgid "" msgstr "" "## 概要\n" "\n" -"目標が §0 である場合に、§2 が §3 の証明ならば、目標は §1 で解決されます。\n" +"ゴールが命題 §0 である場合、§2 が §3 の証明であれば、§1 はゴールを解決します。\n" "\n" "### 例\n" "\n" -"目標が §4 である場合、仮定 §5 があるならば、§6 は目標を解決します。\n" +"ゴールが §4 であり、仮定 §5 がある場合、§6 はゴールを解決します。\n" "\n" "### 例\n" "\n" -"目標が §7 である場合、§8 は目標を解決します。\n" +"ゴールが §7 である場合、§8 はゴールを解決します。\n" "\n" -"### 正確な記述が必要\n" +"### `exact` タクティクには正確さが必要\n" "\n" "注意点として、前の例では §9 は *機能しません*;\n" -"§10 が機能するためには、§11 は目標の *正確な* 証明である必要があります。\n" -"§12 は目標の §13 の証明であるか、あるいは §14 の証明で、§15 はユーザーによって提供される必要があります。\n" -"これは §16 と §17 とは異なり、必要に応じてこれらの関数は *入力の推測* を行います。もし目標が §18 である場合、§19 と §20 " -"は両方とも目標を §21 に変更します。\n" -"これは §22 が関数 §23 の入力を推測するからです。" +"§10 が機能するためには、§11 がゴールに対する *正確な* 証明である必要があります。\n" +"§12 は §13 の証明、あるいは言い換えれば、§15 をユーザーが提供する必要がある §14 の証明となります。\n" +"これは必要に応じて「入力を推測する」 §16 や §17 とは対照的です。ゴールが §18 である場合、§19 と §20 はどちらもゴールを §21 " +"に変更します。\n" +"これは §22 が関数 §23 の入力を推測するためです。" #: Game.Levels.Implication.L01exact #. §0: `exact h1` -#, fuzzy -#, fuzzy msgid "" "The goal in this level is one of our hypotheses. Solve the goal by " "executing §0." -msgstr "このレベルの目標は、当方の仮説の一つです。目標を達成するためには、§0を実行してください。" +msgstr "このレベルのゴールは、すでに仮定として与えられています。§0 を実行してゴールを解決してください。" +# lean4game-statement #: Game.Levels.Implication.L01exact #. §0: $x+y=37$ #. §1: $3x+z=42$ #. §2: $x+y=37$ -#, fuzzy msgid "Assuming §0 and §1, we have §2." -msgstr "前提として§0および§1を仮定します。その結果、§2が導き出されます。" +msgstr "§0 および §1 を仮定すると、 §2 が成り立つ。" #: Game.Levels.Implication.L01exact Game.Levels.LessOrEqual.L01le_refl #. §0: `exact` -#, fuzzy msgid "The §0 tactic" msgstr "§0 タクティク" @@ -2583,7 +2579,6 @@ msgstr "§0 タクティク" #. §2: $Q$ #. §3: `exact` #. §4: `exact h` -#, fuzzy msgid "" "In this world we'll learn how to prove theorems of the form §0.\n" "In other words, how to prove theorems of the form \"if §1 is true, then §2 " @@ -2593,11 +2588,11 @@ msgid "" "The §3 tactic can be used to close a goal which is exactly one of\n" "the hypotheses. It takes the name of the hypothesis as argument: §4." msgstr "" -"このワールドでは、形式 §0 の定理の証明方法を学びます。\n" -"つまり、「§1 が真ならば、§2 が真である」という形式の定理を証明する方法です。\n" +"このワールドでは、 §0 という形式の定理の証明方法を学びます。\n" +"つまり、「 §1 ならば §2 」という形式の定理を証明する方法です。\n" "そのためには、いくつかのタクティクを学ぶ必要があります。\n" "\n" -"§3 のタクティクは、仮定のうち厳密に一つの目標を閉じるために使用できます。このタクティクには仮定の名前が引数として与えられます:§4。" +"§3 タクティクは、仮定と完全に一致するゴールを解決するために使用できます。このタクティクには引数として仮定の名前を与えます: §4 。" #: Game.Levels.Implication.L02exact2 #. §0: `rw [zero_add] at «{h}»` From 883612c18a85470b804293770e6aeab412473362 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Tue, 4 Aug 2026 03:03:32 +0900 Subject: [PATCH 138/147] ja_JP: improve Implication.L02 translation --- .i18n/ja/Game.po | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 2c4d6104..87c1e3b7 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -2597,23 +2597,21 @@ msgstr "" #: Game.Levels.Implication.L02exact2 #. §0: `rw [zero_add] at «{h}»` #. §1: `«{h}»` -#, fuzzy msgid "" "You can use §0 to rewrite at §1 instead\n" "of at the goal." -msgstr "§0 を使用して、目標ではなく §1 を書き換えることができます。" +msgstr "§0 を使用すれば、ゴールではなく §1 を書き換えることができます。" #: Game.Levels.Implication.L02exact2 #. §0: ``` #. repeat rw [zero_add] at h #. exact h #. ``` -#, fuzzy msgid "" "Here's a two-line proof:\n" "§0" msgstr "" -"以下は2行の証明です:\n" +"こちらが2行の証明です:\n" "§0" #: Game.Levels.Implication.L02exact2 @@ -2622,7 +2620,6 @@ msgstr "" #. §2: `«{x}»` #. §3: `0 + «{x}»` #. §4: `0 + «{y}»` -#, fuzzy msgid "" "Do that again!\n" "\n" @@ -2630,27 +2627,25 @@ msgid "" "the arguments to §1 (finding §2) then it replaces all occurrences of\n" "§3 it finds. Therefor, it did not rewrite §4, yet." msgstr "" -"再度実行してみてください。\n" +"もう一度実行してみてください!\n" "\n" -"§0は、§1の引数を埋める(§2を見つけます)ことを試みます。その後、見つかったすべての§3を置換します。したがって、§4はまだ書き換えられていません。" +"§0 は §1 の引数を埋め(§2 を特定し)、その後 §3 を見つけ出してすべて置換しようとします。そのため、§4 はまだ書き換えられていません。" #: Game.Levels.Implication.L02exact2 -#, fuzzy msgid "" "If the goal is not *exactly* a hypothesis, we can sometimes\n" "use rewrites to fix things up." -msgstr "目標が *厳密な* 仮説ではない場合、書き換えを利用して問題を解決できることがあります。" +msgstr "ゴールが仮説と *厳密に* 一致していない場合、書き換えを利用してゴールを解決できることがあります。" +# lean4game-statement #: Game.Levels.Implication.L02exact2 #. §0: $0+x=(0+y)+2$ #. §1: $x=y+2$ -#, fuzzy msgid "Assuming §0, we have §1." -msgstr "前提として§0を仮定するならば、§1は成立します。" +msgstr "§0 について、 §1 が成り立つ。" #: Game.Levels.Implication.L02exact2 #. §0: `exact` -#, fuzzy msgid "§0 practice." msgstr "§0 演習。" @@ -2658,11 +2653,10 @@ msgstr "§0 演習。" #. §0: `rw [«{h}»]` #. §1: `rfl` #. §2: `exact «{h}»` -#, fuzzy msgid "" "Now you could finish with §0 then §1, but §2\n" "does it in one line." -msgstr "現在、§0 と §1 で処理を終えることができますが、§2 は 1 行で完結します。" +msgstr "§0 を実行してから §1 を実行して終わらせることもできますが、§2 なら 1 行で完結します。" #: Game.Levels.Implication.L03apply #. §0: `apply` From b40f89540d9ff1a7638625c1c6302a5034191f4c Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Wed, 5 Aug 2026 03:31:41 +0900 Subject: [PATCH 139/147] ja_JP: improve Implication.L03 translation --- .i18n/ja/Game.po | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 87c1e3b7..4678ac18 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -2660,9 +2660,8 @@ msgstr "§0 を実行してから §1 を実行して終わらせることもで #: Game.Levels.Implication.L03apply #. §0: `apply` -#, fuzzy msgid "The §0 tactic." -msgstr "§0 タクティク" +msgstr "§0 タクティク。" #: Game.Levels.Implication.L03apply #. §0: `h2` @@ -2670,7 +2669,6 @@ msgstr "§0 タクティク" #. §2: `y = 42` #. §3: `apply` #. §4: `apply` -#, fuzzy msgid "" "In this level, the hypothesis §0 is an *implication*. It says\n" "that *if* §1 *then* §2. We can use this\n" @@ -2678,31 +2676,28 @@ msgid "" "§4 or any other tactic on the right to see a detailed explanation\n" "of what it does, with examples." msgstr "" -"このレベルでは、仮定 §0 は *含意* です。「もし §1 ならば " -"§2」という形で表現されます。この仮定は、§3というタクティクを用いて利用できます。右側の任意のタクティク(例:§4" -")をクリックすると、その詳細な説明と例を確認できます。" +"このレベルでは、仮定 §0 は *含意* です。これは「§1 ならば §2」ということを表しています。この仮定は §3 " +"タクティクを用いて利用できます。右側の §4 や他のタクティクをクリックすると、その詳細な説明と例を確認できることを覚えておいてください。" #: Game.Levels.Implication.L03apply #. §0: `exact` -#, fuzzy msgid "Now finish using the §0 tactic." -msgstr "次に、§0 タクティクを使って処理を完了してください。" +msgstr "あとは §0 タクティクを使ってゴールを解決してください。" #: Game.Levels.Implication.L03apply #. §0: `apply h2 at h1` #. §1: `h1` #. §2: `y = 42` -#, fuzzy msgid "Start with §0. This will change §1 to §2." -msgstr "§0から開始します。これにより、§1は§2に変わります。" +msgstr "§0 を使って開始してください。これにより、 §1 が §2 に変わります。" +# lean4game-statement #: Game.Levels.Implication.L03apply #. §0: $x=37$ #. §1: $x=37\\implies y=42$ #. §2: $y=42$ -#, fuzzy msgid "If §0 and we know that §1 then we can deduce §2." -msgstr "§0が真であることと、§1について知っていれば、§2を導き出すことができます。" +msgstr "§0 であり、かつ §1 ならば、 §2 。" #: Game.Levels.Implication.L03apply #. §0: `t : P → Q` @@ -2733,7 +2728,6 @@ msgstr "§0が真であることと、§1について知っていれば、§2を #. §25: `a * b = 7` #. §26: `apply succ_inj` #. §27: `succ (a * b) = succ 7` -#, fuzzy msgid "" "## Summary\n" "\n" @@ -2762,22 +2756,22 @@ msgid "" msgstr "" "## 概要\n" "\n" -"もし §0 が §1 の証明であり、 §2 が §3 の証明である場合、§4 は §5 を §6 の証明に変換します。つまり、§7 " -"が真であることを知っている場合、§8 から §9 が真であることを導くことができます。\n" +"もし §0 が §1 の証明であり、§2 が §3 の証明であるならば、§4 は §5 を §6 の証明へと変換します。これは、§7 " +"が真であることを知っていれば、§8 から §9 が真であることを導けるという考え方に基づいています。\n" "\n" -"もし *目標* が §10 である場合、§11 は「逆向きに推論」し、目標を §12 に変更します。この手法は、§13 を証明するために §14 から " -"§15 を証明すれば十分であるという考えに基づいています。したがって、目標を §16 の証明に簡略化できます。\n" +"もしゴールが §10 である場合、§11 を使うと「ゴールを遡って推論」し、ゴールを §12 に変更できます。これは、§13 を証明したいとき、§14 " +"により §15 を証明すれば十分であるため、ゴールを §16 の証明に置き換えられるという考え方です。\n" "\n" "### 例:\n" "\n" "§17 が §18 の証明であるとします。\n" "\n" -"仮定として §19 がある場合、§20 は §21 を §22 に変更します。 §23 のような記述も可能です。ただし、Lean は §24 " -"の入力を見抜くことができます。\n" +"このとき、仮定 §19 があれば、§20 によって §21 は §22 に変わります。§23 と記述することもできますが、Lean は §24 " +"の入力値が何であるかを賢く推論してくれます。\n" "\n" "### 例\n" "\n" -"もし目標が §25 である場合、§26 は目標を §27 に変更します。" +"もしゴールが §25 である場合、§26 を使うとゴールは §27 に変わります。" #: Game.Levels.Implication.L04succ_inj #. §0: $a$ From ce10b11a8ef9a0474d0a0c60266a3f440b1ad2aa Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Thu, 6 Aug 2026 03:43:45 +0900 Subject: [PATCH 140/147] ja_JP: improve Implication.L04 translation --- .i18n/ja/Game.po | 61 ++++++++++++++++++------------------------- .i18n/ja/glossary.csv | 1 + 2 files changed, 26 insertions(+), 36 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 4678ac18..2d3e9138 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -2789,7 +2789,6 @@ msgstr "" #. §12: $\\forall a, b \\in \\mathbb{N}, ( \\operatorname{succ}(a) = \\operatorname{succ}(b)) \\implies a=b$ #. §13: `succ_inj` #. §14: `pred` -#, fuzzy msgid "" "# Statement\n" "\n" @@ -2816,19 +2815,17 @@ msgid "" msgstr "" "# 命題\n" "\n" -"§0 と §1 が数値である場合、\n" -"§2 は §3 の証明です。\n" +"§0 と §1 が自然数であるとき、§2 は §3 の証明です。\n" "\n" "## さらなる技術的な詳細\n" "\n" "§4 について考える方法は他にもあります。\n" "\n" -"§5 を、入力として 2 つの数値 §6 と §7 を受け取り、出力として §8 の証明を生成する関数と捉えることができます。\n" +"§5 を、2 つの自然数 §6 と §7 を入力として受け取り、§8 の証明を出力する関数と捉えることもできます。\n" "\n" -"§9 は自身が証明であり、これは §10 が単射関数であることを示す証明です。言い換えれば、\n" -"§11 は §12 の証明となります。\n" +"§9 自体を一つの証明と考えることもできます。これは、§10 が単射関数であることの証明です。言い換えれば、§11 は §12 の証明となります。\n" "\n" -"ペアノによって公理として導入された §13 ですが、Lean では §14、すなわち数学的に異常な関数を用いて証明できます。" +"§13 はペアノによって公理として導入されましたが、Lean では §14 という数学における病的な関数を用いて証明可能です。" #: Game.Levels.Implication.L04succ_inj #. §0: `a` @@ -2837,7 +2834,6 @@ msgstr "" #. §3: `succ a = succ b` #. §4: `a = b` #. §5: $x+1=4 \\implies x=3$ -#, fuzzy msgid "" "If §0 and §1 are numbers, then §2 is a proof\n" "that §3 implies §4. Click on this theorem in the *Peano*\n" @@ -2849,13 +2845,13 @@ msgid "" "by manipulating our hypothesis until it becomes the goal. I will\n" "walk you through this level." msgstr "" -"もし §0 と §1 が数値である場合、§2 は §3 が §4 を導くことの証明です。*Peano* " -"タブでこの定理について詳しく知ることができます。\n" +"もし §0 と §1 が自然数ならば、§2 は §3 ならば §4 の証明となります。この定理の詳細は、*Peano* " +"タブをクリックして確認してください。\n" "\n" -"Peanoはこの定理を公理としていましたが、アルゴリズムワールドでは Lean " -"を用いてこの定理を証明する方法を示します。現在ではこの定理を仮定し、§5 " -"を用いて証明しましょう。また、証明は仮定を操作することで目標に近づけることで進めていきます。このレベルについて一緒に学びましょう。" +"ペアノはこの定理を公理としていましたが、アルゴリズムワールドでは Lean で証明する方法を学びます。今回はこの定理を公理として受け入れ、それを用いて " +"§5 を証明しましょう。ここでも、仮定を操作してゴールを解決する手順で進めていきます。このレベルは一緒に解いていきましょう。" +# lean4game-statement #: Game.Levels.Implication.L04succ_inj Game.Levels.Implication.L05succ_inj2 #: Game.Levels.Algorithm.L05pred Game.Levels.Algorithm.L07succ_ne_succ #: Game.Levels.AdvAddition.L05add_right_eq_zero @@ -2863,90 +2859,83 @@ msgstr "" #: Game.Levels.LessOrEqual.L09succ_le_succ #. §0: $x+1=4$ #. §1: $x=3$ -#, fuzzy msgid "If §0 then §1." -msgstr "§0 ならば、§1。" +msgstr "§0 ならば §1。" #: Game.Levels.Implication.L04succ_inj -#, fuzzy msgid "In the next level, we'll do the same proof but backwards." -msgstr "次のレベルでは、同様の手続きを用いて、証明を逆方向に展開します。" +msgstr "次のレベルでは、同様の証明を逆順で行います。" #: Game.Levels.Implication.L04succ_inj #. §0: `h` #. §1: `succ x = succ 3` #. §2: `succ_inj` #. §3: `rw [four_eq_succ_three] at h` -#, fuzzy msgid "" "Let's first get §0 into the form §1 so we can\n" "apply §2. First execute §3\n" "to change the 4 on the right hand side." -msgstr "" -"まず、§0 を §1 の形式に変換し、その後 §2 を適用します。\n" -"最初に、§3 を実行して右辺の 4 を変更します。" +msgstr "まずは §0 を §1 の形に変形して、§2 が使えるようにしましょう。手始めに §3 を実行して、右辺の 4 を書き換えます。" #: Game.Levels.Implication.L04succ_inj #. §0: `succ_eq_add_one` #. §1: `h` -#, fuzzy msgid "" "Now rewrite §0 backwards at §1\n" "to get the right hand side." -msgstr "§1 を §0 で逆順に書き換えて、右辺を得ます。" +msgstr "§1 を §0 で逆向きに書き換えて、右辺を得ます。" #: Game.Levels.Implication.L04succ_inj #. §0: `apply` #. §1: `apply succ_inj at h` #. §2: `h` #. §3: `x = 3` -#, fuzzy msgid "" "Now let's §0 our new theorem. Execute §1\n" "to change §2 to a proof of §3." -msgstr "それでは、新しい定理を §0 しましょう。§1 を実行することで、`§2` を `§3` の証明に変換します。" +msgstr "それでは、新しい定理を §0 しましょう。§1 を実行することで、§2 を §3 の証明に変換します。" #: Game.Levels.Implication.L04succ_inj #. §0: `rw [← succ_eq_add_one] at h` -#, fuzzy msgid "Concretely: §0." -msgstr "具体的に:§0。" +msgstr "具体的には、§0 です。" +# §0: `←` +# §1: `rw` +# §2: `rw` +# §3: `←` +# §4: `\\l` #: Game.Levels.Implication.L04succ_inj #. §0: `←` #. §1: `rw` #. §2: `rw` #. §3: `←` #. §4: `\\l` -#, fuzzy msgid "" "You can put a §0 in front of any theorem provided to §1 to rewrite\n" "the other way around. Look at the docs for §2 for an explanation. Type §3 " "with §4." msgstr "" -"任意の定理 §1 の先頭に §0 を付与することで、その定理を逆方向に記述することができます。詳細については、§2 " -"のドキュメントをご参照ください。「§4」と入力し、その後「§3」を入力してください。" +"§1 で使用する定理の先頭に §0 を付けると、書き換えの方向を逆にすることができます。詳細については §2 のドキュメントを参照してください。§4 " +"と入力すれば §3 が入力されます。" #: Game.Levels.Implication.L04succ_inj -#, fuzzy msgid "succ_inj : the successor function is injective" msgstr "succ_inj : 後者関数は単射" #: Game.Levels.Implication.L04succ_inj -#, fuzzy msgid "Now finish in one line." -msgstr "一行で証明を完結させます。" +msgstr "あとは1行で完結させましょう。" #: Game.Levels.Implication.L04succ_inj #. §0: `exact h` -#, fuzzy msgid "" "And now we've deduced what we wanted to prove: the goal is one of our " "assumptions.\n" "Finish the level with §0." msgstr "" -"そして、目的を証明するために必要な結論を得ることができました。この結論が、当初提示した仮定の一つと一致します。\n" -"レベルを完了するには、§0 を使用してください。" +"これで証明したかったことが導かれました。ゴールが仮定の一つと一致します。\n" +"§0 でレベルを完了させましょう。" #: Game.Levels.Implication.L05succ_inj2 #, fuzzy diff --git a/.i18n/ja/glossary.csv b/.i18n/ja/glossary.csv index 6b99e522..47fc76b5 100644 --- a/.i18n/ja/glossary.csv +++ b/.i18n/ja/glossary.csv @@ -32,6 +32,7 @@ additive monoid,加法的モノイド,この表現自体は直接使用されな commutative ring,可換環 commutative semiring,可換半環 multiplication,乗算 +pathological function,病的な関数,https://ja.wikipedia.org/wiki/%E7%97%85%E7%9A%84%E3%81%AA_(%E6%95%B0%E5%AD%A6) # Lean /tactics?/,タクティク From d565d37810800e05149a677850953d18e30f12ed Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Sun, 16 Aug 2026 23:24:59 +0900 Subject: [PATCH 141/147] ja_JP: improve Implication.L05 translation --- .i18n/ja/Game.po | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 2d3e9138..d4fa5983 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -2938,23 +2938,20 @@ msgstr "" "§0 でレベルを完了させましょう。" #: Game.Levels.Implication.L05succ_inj2 -#, fuzzy msgid "Arguing backwards" -msgstr "推論を逆方向に進める" +msgstr "逆向きの推論" #: Game.Levels.Implication.L05succ_inj2 #. §0: `four_eq_succ_three` -#, fuzzy msgid "" "Now rewrite §0 backwards to make the goal\n" "equal to the hypothesis." -msgstr "§0 を逆順に書き換えることで、目標と仮定を等価にします。" +msgstr "今度は §0 を逆に書き換えて、ゴールを仮定と同じにしましょう。" #: Game.Levels.Implication.L05succ_inj2 #. §0: `x + 1 = 4` #. §1: `x = 3` #. §2: `apply` -#, fuzzy msgid "" "In the last level, we manipulated the hypothesis §0\n" " until it became the goal §1. In this level we'll manipulate\n" @@ -2963,14 +2960,14 @@ msgid "" " Again I will walk you through this one (assuming you're in\n" " command line mode)." msgstr "" -"先程のレベルでは、仮定§0を操作して目標§1にしました。このレベルでは、目標を操作して仮定にします!つまり、「逆向きに議論」することです。§2 " -"タクティクもこれを行うことができます。また、コマンドラインモードで操作していると仮定して、この例を一緒に見ていきましょう。" +"前回のレベルでは仮定 §0 を操作してゴール §1 " +"に変形させましたが、今回のレベルではゴールを操作して仮定へと変形させていきます!言い換えれば、「逆向きに推論」するわけです。 §2 " +"タクティクを用いても同様のことが行えます。今回も、手順を一つずつ解説していきましょう(コマンドラインモードでプレイしていると仮定します)。" #: Game.Levels.Implication.L05succ_inj2 #. §0: `apply t at h` #. §1: `apply t` #. §2: `apply` -#, fuzzy msgid "" "Many people find §0 easy, but some find §1 confusing.\n" "If you find it confusing, then just argue forwards.\n" @@ -2979,38 +2976,33 @@ msgid "" "view by\n" "clicking on the tactic in the list on the right." msgstr "" -"多くの人は§0を容易に理解しますが、一部の人々は§1について混乱することがあります。\n" -"もし混乱する場合は、証明を前向きに進めてください。\n" +"§0 を容易だと感じる人は多いですが、§1 は分かりにくいと感じる人もいます。\n" +"もし分かりにくい場合は、単に前向きに推論を進めてみてください。\n" "\n" -"§2" -"のタクティクについては、その詳細な説明がドキュメンテーションに記載されています。リストの右側にあるタクティクをクリックすることで、ドキュメンテーションを" -"表示できます。" +"§2 タクティクについての詳細はドキュメントで確認できます。右側のリストにあるタクティク名をクリックすると表示されます。" #: Game.Levels.Implication.L05succ_inj2 #. §0: `exact h` -#, fuzzy msgid "You can now finish with §0." -msgstr "これで §0 の部分を完了してください。" +msgstr "あとは §0 でゴールを解決できます。" #: Game.Levels.Implication.L05succ_inj2 #. §0: `apply succ_inj` #. §1: `succ_inj` -#, fuzzy msgid "Start with §0 to apply §1 to the *goal*." -msgstr "*目標*に §1 を適用するために、まず §0 を使用してください。" +msgstr "*ゴール* に §1 を適用するために、§0 を実行してください。" #: Game.Levels.Implication.L05succ_inj2 #. §0: $P\\implies Q$ #. §1: $Q$ #. §2: $P$ #. §3: `rw [succ_eq_add_one]` -#, fuzzy msgid "" "Applying a proof of §0 to the *goal* changes §1 to §2.\n" "Now try §3 to make the goal more like the hypothesis." msgstr "" -"証明 §0 を *目標* に対して適用することで、§1 が §2 になります。\n" -"次に §3 を試し、目標を仮定に近づけることを試みてください。" +"証明 §0 を *ゴール* に適用すると、§1 は §2 になります。\n" +"次に §3 を試して、ゴールを仮定の形に近づけてみてください。" # no-translate #: Game.Levels.Implication.L06intro From 047e684c32436d30a3c34aa67e60d3dbf5b7477b Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 17 Aug 2026 00:39:31 +0900 Subject: [PATCH 142/147] ja_JP: improve Implication.L06 translation --- .i18n/ja/Game.po | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index d4fa5983..8ec3df79 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -3006,7 +3006,6 @@ msgstr "" # no-translate #: Game.Levels.Implication.L06intro -#, fuzzy msgid "intro" msgstr "intro" @@ -3024,7 +3023,6 @@ msgstr "intro" #. §10: $x+1=y+1$ #. §11: `h` #. §12: $x=y$ -#, fuzzy msgid "" "## Summary\n" "\n" @@ -3040,25 +3038,26 @@ msgid "" msgstr "" "## 概要\n" "\n" -"もし目標が§0である場合、§1は§2を仮定として導入し、目標を§3に変更します。数学的には、§4の証明のために、§5を仮定し、その後§6" -"を証明すればよいということです。\n" +"ゴールが §0 である場合、§1 を実行すると §2 が仮定として導入され、ゴールが §3 になります。数学的に言えば、これは「§4 " +"を証明するために、§5 を仮定して §6 を証明すればよい」ということを意味します。\n" "\n" "### 例:\n" "\n" -"もし目標が§7(Leanで記述された§8)である場合、§9は§10という名前の仮定§11を導入し、目標は§12に変更されます。" +"ゴールが §7 (Lean における §8 の表記)である場合、§9 を実行すると §11 という名前で §10 が仮定として導入され、ゴールは " +"§12 になります。" #: Game.Levels.Implication.L06intro #. §0: `exact h` -#, fuzzy msgid "Now §0 finishes the job." -msgstr "これで §0 が目的を達成します。" +msgstr "これで §0 によりゴールを解決できます。" +# §0: `intro h` +# §1: `h` #: Game.Levels.Implication.L06intro #. §0: `intro h` #. §1: `h` -#, fuzzy msgid "Start with §0 to assume the hypothesis and call its proof §1." -msgstr "§0 を使用して仮定を§1とし、開始します。" +msgstr "§0 を実行して仮定を導入し、その証明を §1 とすることで開始しましょう。" #: Game.Levels.Implication.L06intro #. §0: `apply` @@ -3067,7 +3066,6 @@ msgstr "§0 を使用して仮定を§1とし、開始します。" #. §3: `P` #. §4: `Q` #. §5: `intro` -#, fuzzy msgid "" "We have seen how to §0 theorems and assumptions\n" "of the form §1. But what if our *goal* is of the form §2?\n" @@ -3075,9 +3073,8 @@ msgid "" "§4\"\n" "in Lean. We do this with the §5 tactic." msgstr "" -"私たちは、形式 §1 の定理や仮定の §0 の方法を見ました。\n" -"しかし、もし私たちの *目標* が形式 §2 の場合は、どうすれば良いでしょうか?\n" -"この目標を証明するには、Lean で \"§3 という仮定を設け、 §4 を導く\" という方法を知る必要があります。これを行うためには、§5 " +"これまで、形式 §1 の定理や仮定に対して §0 する方法を見てきました。では、*ゴール* が形式 §2 の場合はどうすればよいでしょうか。\n" +"このゴールを解決するには、Lean で「§3 を仮定して §4 を導く」にはどうすればよいかを知る必要があります。これには §5 " "タクティクを使用します。" #: Game.Levels.Implication.L07intro2 From da73ac6695b132e14da79fefea72d9a2b30aa4df Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 17 Aug 2026 01:02:51 +0900 Subject: [PATCH 143/147] ja_JP: improve Implication.L07 translation --- .i18n/ja/Game.po | 21 +++++++-------------- .i18n/ja/Rules.md | 16 ++++++++++++---- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 8ec3df79..24a563c0 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -3080,23 +3080,20 @@ msgstr "" #: Game.Levels.Implication.L07intro2 #. §0: `apply succ_inj at h` #. §1: `succ` -#, fuzzy msgid "Now §0 to cancel the §1s." -msgstr "`§0` を使用して `§1` を消去します。" +msgstr "§0 を使い、§1 を消去します。" #: Game.Levels.Implication.L07intro2 #. §0: $x+1=y+1\\implies x=y$ -#, fuzzy msgid "" "Let's see if you can use the tactics we've learnt to prove §0.\n" "Try this one by yourself; if you need help then click on \"Show more " "help!\"." msgstr "" -"これまで学んだタクティクを使って、§0の証明が可能か試してみましょう。\n" -"ご自身で試すことをお勧めします。もしお手伝いが必要な場合は、「より多くのヘルプを表示!」をクリックしてください。" +"これまで学んだタクティクを使って、§0 を証明できるか試してみましょう。\n" +"まずはご自身で取り組んでみてください。もし助けが必要な場合は、「助けて!」をクリックしてください。" #: Game.Levels.Implication.L07intro2 -#, fuzzy msgid "intro practice" msgstr "intro 演習" @@ -3107,37 +3104,33 @@ msgstr "intro 演習" #. repeat rw [succ_eq_add_one] #. exact h #. ``` -#, fuzzy msgid "" "Here's a completely backwards proof:\n" "§0" msgstr "" -"以下は、完全に逆順の手順で構成された証明です:\n" +"以下は、完全に逆順の証明です:\n" "§0" #: Game.Levels.Implication.L07intro2 #. §0: `intro h` -#, fuzzy msgid "Start with §0 to assume the hypothesis." -msgstr "まず、 §0 を使用して仮説を提示します。" +msgstr "まずは §0 を使って、仮定を導入しましょう。" #: Game.Levels.Implication.L07intro2 #. §0: `repeat rw [← succ_eq_add_one] at h` #. §1: `h` #. §2: `succ x = succ y` -#, fuzzy msgid "" "Now §0 is the quickest way to\n" "change §1 to §2." -msgstr "現在、§0 は §1 を §2 に変更するための最も効率的な手段です。" +msgstr "§0 を使うのが、§1 を §2 に書き換える一番の近道です。" #: Game.Levels.Implication.L07intro2 #. §0: `rw [h]` #. §1: `rfl` #. §2: `exact h` -#, fuzzy msgid "Now §0 then §1 works, but §2 is quicker." -msgstr "現在、§0 および §1 は正しく機能しますが、§2 の方が高速です。" +msgstr "§0 を実行してから §1 を実行してもゴールを解決できますが、§2 の方が素早く解決できます。" #: Game.Levels.Implication.L08ne #. §0: `x ≠ y` diff --git a/.i18n/ja/Rules.md b/.i18n/ja/Rules.md index 2ac13193..88d23504 100644 --- a/.i18n/ja/Rules.md +++ b/.i18n/ja/Rules.md @@ -14,6 +14,7 @@ * **タクティク名**: * 原文が "the `...` tactic" の場合:「`...` タクティク」と表記。 * 原文がタクティク単体の場合:「`...`」と表記。 + * 原文がタクティク単体の場合は、特別な指示が無ければ *「`...` タクティク」とは表記しない。* * **「ゴールを解決する」**: "solve the goal" の訳として必ず使用する(「ゴールを閉じる」は使用禁止)。 * **「補題」**: "lemmas" は必ず「補題」と訳す。**原語を併記してはならない**。 @@ -33,12 +34,19 @@ * 理由:ナラティブの一貫性と可読性を損なうため。 ## 4. テンプレート・変数変換ルール -* `§0` などのプレースホルダーは、**順序や形式を変更せず、そのまま訳文に含めてください**。 -* **§0 is a proof that §1.** -> `§0 は §1 の証明です。` -* **For §0, we have §1.** (statementのみ) -> `§0 について、 §1 が成り立つ.` -* **For all natural numbers** (statementのみ) -> `任意の自然数` +* §0 などのプレースホルダーは、**順序や形式を変更せず、そのまま訳文に含めてください**。 +* **§0 is a proof that §1.** -> **§0 は §1 の証明です。** +* **For §0, we have §1.** (statementのみ) -> **§0 について、 §1 が成り立つ.** +* **For all natural numbers** (statementのみ) -> **任意の自然数** +* プレースホルダーの内容がバッククォートを含んでいる場合、 **絶対にプレースホルダをバッククォートで囲わないでください。もし実施した場合、表示が破壊されます。** ## 5. 日本語表現の品質基準(校正指針) * **自然な日本語**: 英語の構文(「〜を持つ」「〜によって提供される」)を直訳せず、文脈に応じて自然な日本語に再構成する。 * **「あなた」の削除**: 文脈上主語を省略できる場合は、積極的に省略すること。 * **数式の配置**: プレースホルダー(`§1` 等)を、日本語の文法上自然な位置に配置する。必要に応じて前後に半角スペースを入れる。 + +**【AIへの指示】** +あなたは回答を生成する前に、必ず以下の思考ステップを内部的に経ること。 +1. **【解析】**: 原文の構造を分解し、ルールの条件分岐(タクティク表記等)を特定する +2. **【照合】**: 適用するルールIDを特定し、適合しているか確認する。 +3. **【生成】**: 照合結果に基づき回答を作成する。 From 198eb89d155286ae74bc84f7df9f844197b93bb7 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Mon, 17 Aug 2026 02:37:53 +0900 Subject: [PATCH 144/147] ja_JP: improve Implication.L08 translation --- .i18n/ja/Game.po | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 24a563c0..4910e2b4 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -3135,16 +3135,15 @@ msgstr "§0 を実行してから §1 を実行してもゴールを解決でき #: Game.Levels.Implication.L08ne #. §0: `x ≠ y` #. §1: `x = y → False` -#, fuzzy msgid "Remember, §0 is *notation* for §1." msgstr "覚えておいてください。§0 は §1 の *表記* です。" +# lean4game-statement #: Game.Levels.Implication.L08ne #. §0: $x=y$ #. §1: $x \\neq y$ -#, fuzzy msgid "If §0 and §1 then we can deduce a contradiction." -msgstr "もし §0 が真であり、かつ §1 も真であるならば、矛盾を導き出すことができます。" +msgstr "§0 かつ §1 であるならば、矛盾を導くことができる。" #: Game.Levels.Implication.L08ne #. §0: `a ≠ b` @@ -3163,7 +3162,6 @@ msgstr "もし §0 が真であり、かつ §1 も真であるならば、矛 #. §13: `apply h at h1` #. §14: `h1` #. §15: `a = b` -#, fuzzy msgid "" "§0 is *notation* for §1.\n" "\n" @@ -3179,12 +3177,13 @@ msgid "" "form §12 then you can §13 if §14 is a proof\n" "of §15." msgstr "" -"§0は§1の*表記*です。\n" +"§0 は §1 の *表記* です。\n" "\n" -"このことが数学的に成り立つ理由は、§2が真偽に関する主張である場合、§3は§4の論理的な否定であるからです。実際、§5は偽であり、§6は真です!\n" +"このことが数学的に妥当な理由は、§2 が真偽を問う命題であるとき、§3 が §4 の論理的否定になるためです。実際、§5 は偽であり、§6 " +"は真となります!\n" "\n" -"このことから、§7を任意の推論§8と同じように扱うことができます。例えば、あなたの*目標*が§9のような形であれば、§10" -"を用いて進展できます。また、仮定§11が§12のような形である場合、§13を行うことが可能です(ただし、§14が§15の証明である場合に限ります)。" +"この結果、§7 を任意の含意 §8 と全く同様に扱うことができます。例えば、*ゴール* が §9 の形式であれば、§10 を用いて進むことができ、仮定 " +"§11 が §12 の形式であれば、§14 が §15 の証明であるときに §13 を行うことができます。" #: Game.Levels.Implication.L08ne #. §0: `h2` @@ -3192,18 +3191,13 @@ msgstr "" #. §2: `apply` #. §3: `h2` #. §4: `at h1` -#, fuzzy -#, fuzzy msgid "" "Remember that §0 is a proof of §1. Try\n" "§2ing §3 either §4 or directly to the goal." -msgstr "" -"§0は§1の証明であることを覚えておいてください。\n" -"§2 §3 を、 §4 または直接目標に対して実行できます。" +msgstr "§0 は §1 の証明であることを思い出してください。§2 §3 を、§4 で適用するか、あるいは直接ゴールに適用してみてください。" # no-translate #: Game.Levels.Implication.L08ne -#, fuzzy msgid "≠" msgstr "≠" @@ -3221,7 +3215,6 @@ msgstr "≠" #. §10: `a ≠ b` #. §11: `False` #. §12: `False` -#, fuzzy msgid "" "We still can't prove §0 because we have not talked about the\n" "definition of §1. In Lean, §2 is *notation* for §3.\n" @@ -3238,13 +3231,14 @@ msgid "" "So if your goal is §12 then you had better hope that your hypotheses\n" "are contradictory, which they are in this level." msgstr "" -"まだ §0 の証明はできません。なぜなら、§1 の定義について議論していないからです。Lean では、§2 は §3 の *表記* です。\n" -"ここでは §4 は一般的な偽命題であり、§5 は Lean における \"implies\" の表記です。論理学では §6 " -"が偽であると学習しますが、§7 は真です。したがって §8 は §9 の論理的対偶となります。\n" +"§0 を証明することはまだできません。なぜなら、§1 の定義についてまだ触れていないからです。Lean において §2 は §3 の *表記* です。\n" +"ここで §4 は一般的な偽の命題であり、§5 は Lean における「含意」の表記です。論理学では §6 が偽、§7 " +"が真であると学びます。したがって、§8 は §9 の論理的否定にあたります。\n" "\n" -"§10 は含意のように見えないかもしれませんが、含意として扱うべきです。次の 2 つのレベルでその方法を学びます。\n" +"§10 は一見すると含意の形には見えませんが、含意として扱う必要があります。その方法は次からの 2 つのレベルで示します。\n" "\n" -"§11 は一貫性のある仮定から導き出せない目標です!したがって、目標が §12 の場合、仮定が矛盾していることを期待し、このレベルではそうしています。" +"§11 は、矛盾のない仮定の集合からは導き出せないゴールです!もしゴールが §12 " +"なら、仮定が矛盾していることを願うしかありません。実際、このレベルでは仮定が矛盾しています。" #: Game.Levels.Implication.L09zero_ne_succ #: Game.Levels.AdvMultiplication.L06mul_right_eq_one From 4c70166a979251c513dcfbe3ff454cce93691133 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Tue, 18 Aug 2026 00:11:04 +0900 Subject: [PATCH 145/147] ja_JP: improve Implication.L09 translation --- .i18n/ja/Game.po | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 4910e2b4..c527422b 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -3243,27 +3243,24 @@ msgstr "" #: Game.Levels.Implication.L09zero_ne_succ #: Game.Levels.AdvMultiplication.L06mul_right_eq_one #. §0: `apply zero_ne_succ at h` -#, fuzzy msgid "Now you can §0." -msgstr "§0 を使用できます。" +msgstr "これで §0 が使用できます。" #: Game.Levels.Implication.L09zero_ne_succ #. §0: `2 + 2 ≠ 5` #. §1: `0 ≠ 1` #. §2: `zero_ne_succ n` #. §3: `0 ≠ succ n` -#, fuzzy msgid "" "As warm-up for §0 let's prove §1. To do this we need to\n" "introduce Peano's last axiom §2, a proof that §3.\n" "To learn about this result, click on it in the list of lemmas on the right." msgstr "" -"ウォーミングアップとして、§0 の前に §1 を証明します。これを行うためには、ペアノの最後の公理 §2 と §3 " -"の証明が必要です。この結果について学ぶには、右側の定理一覧から該当する項目をクリックしてください。" +"§0 のウォーミングアップとして、§1 を証明してみましょう。そのためには、ペアノの最後の公理である §2 を導入する必要があります。これは §3 " +"の証明です。この結果について学ぶには、右側に表示されている補題一覧から該当する項目をクリックしてください。" # no-translate #: Game.Levels.Implication.L09zero_ne_succ -#, fuzzy msgid "zero_ne_succ" msgstr "zero_ne_succ" @@ -3271,9 +3268,8 @@ msgstr "zero_ne_succ" #. §0: `1` #. §1: `succ 0` #. §2: `h` -#, fuzzy msgid "Now change §0 to §1 in §2." -msgstr "§2 の §0 を §1 に変更してください。" +msgstr "§2 において、§0 を §1 に置き換えてください。" #: Game.Levels.Implication.L09zero_ne_succ #. §0: `zero_ne_succ n` @@ -3286,7 +3282,6 @@ msgstr "§2 の §0 を §1 に変更してください。" #. §7: `apply zero_ne_succ at h` #. §8: `h` #. §9: `0 = succ n` -#, fuzzy msgid "" "§0 is the proof that §1.\n" "\n" @@ -3295,14 +3290,13 @@ msgid "" "Here §6 is a generic false statement. This means that\n" "you can §7 if §8 is a proof of §9." msgstr "" -"§0 は §1 の証明を示します。\n" +"§0 は §1 の証明です。\n" "\n" -"Lean では、§2 が §3 に *定義されている* ことを意味します。したがって、§4 は実際に §5 の証明です。ここで §6 " -"は一般的な偽の命題です。つまり、§8 が §9 の証明である場合、§7 を実行できます。" +"Lean において、§2 は §3 と *定義されています*。したがって、§4 は実質的に §5 の証明となります。\n" +"ここで §6 は一般的な偽の命題です。これは、§8 が §9 の証明であるならば、§7 を実行できることを意味します。" #: Game.Levels.Implication.L09zero_ne_succ #: Game.Levels.AdvAddition.L01add_right_cancel -#, fuzzy msgid "Nice!" msgstr "素晴らしい!" @@ -3311,9 +3305,8 @@ msgstr "素晴らしい!" #: Game.Levels.AdvMultiplication.L02mul_left_ne_zero #: Game.Levels.AdvMultiplication.L08mul_eq_zero #. §0: `intro h` -#, fuzzy msgid "Start with §0." -msgstr "§0 から開始してください。" +msgstr "§0 を実行して始めてください。" #: Game.Levels.Implication.L10one_ne_zero #. §0: `symm` From d31c7cae8ad837f5cfd4319036f944529e0b4b00 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Tue, 18 Aug 2026 01:01:27 +0900 Subject: [PATCH 146/147] ja_JP: improve Implication.L10 translation --- .i18n/ja/Game.po | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index c527422b..6fa2c6b2 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -3321,7 +3321,6 @@ msgstr "§0 を実行して始めてください。" #. §9: `symm at h` #. §10: `h` #. §11: `5 ≠ 2 + 2` -#, fuzzy msgid "" "## Summary\n" "\n" @@ -3339,19 +3338,18 @@ msgid "" msgstr "" "## 概要\n" "\n" -"タクティク §0 は、目標または仮定が §1 の形式の場合を §2 に変更します。また、§3 および §4 も対象となります。\n" +"§0 タクティクは、§1 の形式を持つゴールや仮定を §2 に変更します。また、§3 や §4 に対しても動作します。\n" "\n" "### 例\n" "\n" -"もし目標が §5 の場合、§6 によってそれを §7 に変更します。\n" +"ゴールが §5 である場合、§6 を実行することで §7 に変更されます。\n" "\n" "### 例\n" "\n" -"もし §8 の場合、§9 によって §10 を §11 に変更します。" +"§8 の場合、§9 を実行することで §10 を §11 に変更できます。" # no-translate #: Game.Levels.Implication.L10one_ne_zero -#, fuzzy msgid "1 ≠ 0" msgstr "1 ≠ 0" @@ -3369,7 +3367,6 @@ msgstr "1 ≠ 0" #. §10: $0 \\neq 1$ #. §11: `zero_ne_one` #. §12: $1 \\neq 0$ -#, fuzzy msgid "" "We know §0 is a proof of §1 -- but what\n" "if we have a hypothesis §2? It's the wrong way around!\n" @@ -3379,11 +3376,10 @@ msgid "" "does the same for a hypothesis §9. We've proved §10 and called\n" "the proof §11; now try proving §12." msgstr "" -"私たちは、§0 が §1 の証明であることを知っています。しかし、もし §2 という仮定がある場合、それは逆になってしまいます。\n" +"§0 が §1 の証明であることは分かっていますが、もし §2 という仮定があったらどうでしょう。これでは向きが逆です!\n" "\n" -"§3 のタクティクは、目標 §4 を §5 に、目標 §6 を §7 に変更します。また、§8 も仮定 §9 に対して同様の操作を行います。\n" -"\n" -"§10 を証明し、その証明を §11 と命名しました。次に §12 を証明してみてください。" +"§3 タクティクはゴール §4 を §5 に、ゴール §6 を §7 に変更します。また、§8 は仮定 §9 に対して同様の操作を行います。§10 " +"を証明し、その証明を §11 と名付けました。それでは §12 の証明に挑戦してみましょう。" #: Game.Levels.Implication.L10one_ne_zero #. §0: ``` @@ -3391,7 +3387,6 @@ msgstr "" #. exact zero_ne_one #. ``` #. §1: `exact` -#, fuzzy msgid "" "What do you think of this two-liner:\n" "§0\n" @@ -3399,10 +3394,10 @@ msgid "" "§1 doesn't just take hypotheses, it will eat any proof which exists\n" "in the system." msgstr "" -"この2行についてどう思いますか:\n" +"以下の2行についてどう思いますか:\n" "§0\n" "\n" -"§1 は、単に仮定を受け取るだけでなく、システム内に存在する任意の証明を評価します。" +"§1 は、単に仮定を受け取るだけではありません。システム内に存在するあらゆる証明を、ゴールを解決するために利用できるのです。" # no-translate #: Game.Levels.Implication.L11two_add_two_ne_five From 5d288fe53ccbc8fd01f3232112dc569dda772c46 Mon Sep 17 00:00:00 2001 From: virus <2017646+virusbb001@users.noreply.github.com> Date: Tue, 18 Aug 2026 01:11:56 +0900 Subject: [PATCH 147/147] ja_JP: improve Implication.L11 translation --- .i18n/ja/Game.po | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/.i18n/ja/Game.po b/.i18n/ja/Game.po index 6fa2c6b2..952a5d0a 100644 --- a/.i18n/ja/Game.po +++ b/.i18n/ja/Game.po @@ -3401,23 +3401,21 @@ msgstr "" # no-translate #: Game.Levels.Implication.L11two_add_two_ne_five -#, fuzzy msgid "2 + 2 ≠ 5" msgstr "2 + 2 ≠ 5" #: Game.Levels.Implication.L11two_add_two_ne_five #. §0: `zero_ne_succ` #. §1: `succ_inj` -#, fuzzy msgid "" "2 + 2 ≠ 5 is boring to prove in full, given only the tools we have " "currently.\n" "To make it a bit less painful, I have unfolded all of the numerals for you.\n" "See if you can use §0 and §1 to prove this." msgstr "" -"現在のツールだけでは、2 + 2 ≠ 5 の完全な証明は困難です。\n" -"より簡単に証明できるよう、すべての数字を展開しました。\n" -"§0 および §1 を使用して、この証明を試みてください。" +"現在のツールだけで 2 + 2 ≠ 5 を完全に証明するのは退屈な作業です。\n" +"少しでも楽ができるよう、すべての数値を展開しておきました。\n" +"§0 と §1 を使って、この証明ができるか試してみてください。" #: Game.Levels.Implication.L11two_add_two_ne_five #. §0: ``` @@ -3444,13 +3442,14 @@ msgid "" "and\n" "decide your route." msgstr "" -"私の証明:\n" +"私の証明は以下の通りです。\n" "§0\n" "\n" -"Leanは定理証明システムですが、現時点では十分な量の理論が開発されておらず、適切な計算機としての機能を十分に備えていません。アルゴリズムワールドでは、" -"よりコンピュータサイエンスに特化した環境で、このような問題を扱うための機械を開発し、§1" -"のような目標を達成することが可能になります。あるいは、不等式の理論を実現するための補題を証明する高度な加算ワールドで、より多くの数学を学ぶこともできます" -"。「ホーム」をクリックして、ご自身のルートを選択してください。" +"Lean " +"は定理証明システムですが、現時点では十分な理論が構築されておらず、適切な計算機として扱うには力不足です。よりコンピュータサイエンスの側面が強いアルゴリズ" +"ムワールドでは、こうした問題をより容易に解くための手法を構築し、§1 " +"のようなゴールを解決できるようにしていきます。あるいは、高度な加算ワールドで不等式の理論を構築するために必要な補題を証明し、さらに数学を進めることも可能" +"です。「ホーム」をクリックして、進むルートを選択してください。" #: Game.Levels.Power #. §0: `37 ^ n`