. . . . . "En programmation, une boucle est une instruction qui permet de r\u00E9p\u00E9ter l'ex\u00E9cution d'une partie d'un programme. Un invariant de boucle est une propri\u00E9t\u00E9 qui est vraie avant et apr\u00E8s chaque r\u00E9p\u00E9tition. C'est une propri\u00E9t\u00E9 logique, qui permet d'\u00E9tudier un programme ou un algorithme. En v\u00E9rification formelle, en particulier en logique de Hoare, les invariants de boucles sont des pr\u00E9dicats logiques, qui servent \u00E0 prouver les algorithmes qui les utilisent, en particulier la correction de ces algorithmes."@fr . . . "\u30EB\u30FC\u30D7\u4E0D\u5909\u6761\u4EF6\uFF08\u82F1: Loop invariant\uFF09\u3068\u306F\u3001\u8A08\u7B97\u6A5F\u79D1\u5B66\u306B\u304A\u3044\u3066\u3001\u30EB\u30FC\u30D7\u306E\u4E0D\u5909\u6761\u4EF6\u306E\u3053\u3068\u3002\u30EB\u30FC\u30D7\u3068\u306F\u3001\u7E70\u308A\u8FD4\u3057\u5B9F\u884C\u3055\u308C\u308B\u30B3\u30FC\u30C9\u306E\u3053\u3068\u3002\u30EB\u30FC\u30D7\u306E\u4E0D\u5909\u6761\u4EF6\u3068\u306F\u3001\u30EB\u30FC\u30D7\u5B9F\u884C\u524D\u306B\u3082\u3001\u53CD\u5FA9\u3092\u5B9F\u884C\u3059\u308B\u305F\u3073\u306B\u3082\u6210\u7ACB\u3059\u308B\u6761\u4EF6\u306E\u3053\u3068\u3002\u3053\u308C\u306F\u3001\u8AD6\u7406\u30A2\u30B5\u30FC\u30B7\u30E7\u30F3\u3067\u3042\u308A\u3001\u30A2\u30B5\u30FC\u30B7\u30E7\u30F3\u3092\u4F7F\u3063\u3066\u30B3\u30FC\u30C9\u304C\u66F8\u304B\u308C\u308B\u3053\u3068\u3082\u3042\u308B\u3002\u4E0D\u5909\u6761\u4EF6\u3092\u77E5\u308B\u3053\u3068\u306F\u3001\u30EB\u30FC\u30D7\u306E\u610F\u5473\u3092\u77E5\u308B\u306E\u306B\u91CD\u8981\u3067\u3042\u308B\u3002 \u5F62\u5F0F\u7684\u691C\u8A3C\u306B\u304A\u3044\u3066\u3001\u7279\u306B\u30DB\u30FC\u30A2\u8AD6\u7406\u3092\u4F7F\u3063\u305F\u65B9\u6CD5\u3067\u306F\u3001\u30EB\u30FC\u30D7\u4E0D\u5909\u6761\u4EF6\u306F\u5F62\u5F0F\u7684\u306A\u8FF0\u8A9E\u8AD6\u7406\u3067\u8868\u73FE\u3055\u308C\u3001\u30EB\u30FC\u30D7\u306E\u7279\u5FB4\u3084\u30EB\u30FC\u30D7\u306E\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u3092\u8A3C\u660E\u3059\u308B\u306E\u306B\u4F7F\u308F\u308C\u308B\u3002\u30EB\u30FC\u30D7\u4E0D\u5909\u6761\u4EF6\u306F\u30EB\u30FC\u30D7\u306B\u5165\u308B\u524D\u306E\u6BB5\u968E\u3067\u3082\u771F\u3067\u3042\u308A\u3001\u30EB\u30FC\u30D7\u3092\u7E70\u308A\u8FD4\u3059\u305F\u3073\u306B\u3082\u771F\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308B\u3002\u3053\u308C\u306F\u3001\u30EB\u30FC\u30D7\u304C\u7D42\u4E86\u3059\u308B\u969B\u306B\u306F\u3001\u30EB\u30FC\u30D7\u4E0D\u5909\u6761\u4EF6\u3068\u30EB\u30FC\u30D7\u7D42\u4E86\u6761\u4EF6\u306E\u4E21\u65B9\u304C\u771F\u3067\u3042\u308B\u3053\u3068\u304C\u4FDD\u8A3C\u3055\u308C\u308B\u3002 \u30EB\u30FC\u30D7\u3068\u518D\u5E30\u306E\u57FA\u790E\u7684\u306A\u985E\u4F3C\u6027\u306B\u3088\u308A\u3001\u30EB\u30FC\u30D7\u4E0D\u5909\u6761\u4EF6\u3092\u4F7F\u3044\u30EB\u30FC\u30D7\u306E\u90E8\u5206\u7684\u306A\u6B63\u3057\u3055\u3092\u8A3C\u660E\u3059\u308B\u306E\u3068\u3001\u518D\u5E30\u30D7\u30ED\u30B0\u30E9\u30E0\u3092\u69CB\u9020\u7684\u5E30\u7D0D\u6CD5\u3092\u4F7F\u3044\u8A3C\u660E\u3059\u308B\u306E\u306F\u3001\u975E\u5E38\u306B\u985E\u4F3C\u3057\u3066\u3044\u308B\u3002\u4E8B\u5B9F\u3001\u30EB\u30FC\u30D7\u4E0D\u5909\u6761\u4EF6\u306F\u3001\u305F\u3044\u3066\u3044\u306F\u3001\u30EB\u30FC\u30D7\u3068\u7B49\u4FA1\u306A\u518D\u5E30\u7684\u30D7\u30ED\u30B0\u30E9\u30E0\u3067\u8A3C\u660E\u3057\u306A\u3044\u3068\u3044\u3051\u306A\u3044\u5E30\u7D0D\u6CD5\u306E\u4EEE\u8AAC\u3068\u540C\u3058\u3067\u3042\u308B\u3002"@ja . . "De manera informal, ciclo invariante es alg\u00FAn predicado o condici\u00F3n que se mantiene en cada iteraci\u00F3n de un ciclo. Por ejemplo: int j = 9;for(int i=0; i<10; i++) j--; En este ejemplo se cumple la invariante de ciclo para cada iteraci\u00F3n, ya que se mantiene la condici\u00F3n siguiente: i + j == 9 Otra invariante m\u00E1s d\u00E9bil es: i >= 0 && i < 10 //(condici\u00F3n terminal) //o bien j <= 9 && j >= 0 Las invariantes de ciclo sirven para probar que un algoritmo est\u00E9 correcto."@es . . "\u30EB\u30FC\u30D7\u4E0D\u5909\u6761\u4EF6\uFF08\u82F1: Loop invariant\uFF09\u3068\u306F\u3001\u8A08\u7B97\u6A5F\u79D1\u5B66\u306B\u304A\u3044\u3066\u3001\u30EB\u30FC\u30D7\u306E\u4E0D\u5909\u6761\u4EF6\u306E\u3053\u3068\u3002\u30EB\u30FC\u30D7\u3068\u306F\u3001\u7E70\u308A\u8FD4\u3057\u5B9F\u884C\u3055\u308C\u308B\u30B3\u30FC\u30C9\u306E\u3053\u3068\u3002\u30EB\u30FC\u30D7\u306E\u4E0D\u5909\u6761\u4EF6\u3068\u306F\u3001\u30EB\u30FC\u30D7\u5B9F\u884C\u524D\u306B\u3082\u3001\u53CD\u5FA9\u3092\u5B9F\u884C\u3059\u308B\u305F\u3073\u306B\u3082\u6210\u7ACB\u3059\u308B\u6761\u4EF6\u306E\u3053\u3068\u3002\u3053\u308C\u306F\u3001\u8AD6\u7406\u30A2\u30B5\u30FC\u30B7\u30E7\u30F3\u3067\u3042\u308A\u3001\u30A2\u30B5\u30FC\u30B7\u30E7\u30F3\u3092\u4F7F\u3063\u3066\u30B3\u30FC\u30C9\u304C\u66F8\u304B\u308C\u308B\u3053\u3068\u3082\u3042\u308B\u3002\u4E0D\u5909\u6761\u4EF6\u3092\u77E5\u308B\u3053\u3068\u306F\u3001\u30EB\u30FC\u30D7\u306E\u610F\u5473\u3092\u77E5\u308B\u306E\u306B\u91CD\u8981\u3067\u3042\u308B\u3002 \u5F62\u5F0F\u7684\u691C\u8A3C\u306B\u304A\u3044\u3066\u3001\u7279\u306B\u30DB\u30FC\u30A2\u8AD6\u7406\u3092\u4F7F\u3063\u305F\u65B9\u6CD5\u3067\u306F\u3001\u30EB\u30FC\u30D7\u4E0D\u5909\u6761\u4EF6\u306F\u5F62\u5F0F\u7684\u306A\u8FF0\u8A9E\u8AD6\u7406\u3067\u8868\u73FE\u3055\u308C\u3001\u30EB\u30FC\u30D7\u306E\u7279\u5FB4\u3084\u30EB\u30FC\u30D7\u306E\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u3092\u8A3C\u660E\u3059\u308B\u306E\u306B\u4F7F\u308F\u308C\u308B\u3002\u30EB\u30FC\u30D7\u4E0D\u5909\u6761\u4EF6\u306F\u30EB\u30FC\u30D7\u306B\u5165\u308B\u524D\u306E\u6BB5\u968E\u3067\u3082\u771F\u3067\u3042\u308A\u3001\u30EB\u30FC\u30D7\u3092\u7E70\u308A\u8FD4\u3059\u305F\u3073\u306B\u3082\u771F\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308B\u3002\u3053\u308C\u306F\u3001\u30EB\u30FC\u30D7\u304C\u7D42\u4E86\u3059\u308B\u969B\u306B\u306F\u3001\u30EB\u30FC\u30D7\u4E0D\u5909\u6761\u4EF6\u3068\u30EB\u30FC\u30D7\u7D42\u4E86\u6761\u4EF6\u306E\u4E21\u65B9\u304C\u771F\u3067\u3042\u308B\u3053\u3068\u304C\u4FDD\u8A3C\u3055\u308C\u308B\u3002 \u30EB\u30FC\u30D7\u3068\u518D\u5E30\u306E\u57FA\u790E\u7684\u306A\u985E\u4F3C\u6027\u306B\u3088\u308A\u3001\u30EB\u30FC\u30D7\u4E0D\u5909\u6761\u4EF6\u3092\u4F7F\u3044\u30EB\u30FC\u30D7\u306E\u90E8\u5206\u7684\u306A\u6B63\u3057\u3055\u3092\u8A3C\u660E\u3059\u308B\u306E\u3068\u3001\u518D\u5E30\u30D7\u30ED\u30B0\u30E9\u30E0\u3092\u69CB\u9020\u7684\u5E30\u7D0D\u6CD5\u3092\u4F7F\u3044\u8A3C\u660E\u3059\u308B\u306E\u306F\u3001\u975E\u5E38\u306B\u985E\u4F3C\u3057\u3066\u3044\u308B\u3002\u4E8B\u5B9F\u3001\u30EB\u30FC\u30D7\u4E0D\u5909\u6761\u4EF6\u306F\u3001\u305F\u3044\u3066\u3044\u306F\u3001\u30EB\u30FC\u30D7\u3068\u7B49\u4FA1\u306A\u518D\u5E30\u7684\u30D7\u30ED\u30B0\u30E9\u30E0\u3067\u8A3C\u660E\u3057\u306A\u3044\u3068\u3044\u3051\u306A\u3044\u5E30\u7D0D\u6CD5\u306E\u4EEE\u8AAC\u3068\u540C\u3058\u3067\u3042\u308B\u3002"@ja . . . . . "Begizta inbariante"@eu . . . . . . . . "In computer science, a loop invariant is a property of a program loop that is true before (and after) each iteration. It is a logical assertion, sometimes checked within the code by an assertion call. Knowing its invariant(s) is essential in understanding the effect of a loop."@en . . . . "578460"^^ . . . "\u0418\u043D\u0432\u0430\u0440\u0438\u0430\u043D\u0442 \u0446\u0438\u043A\u043B\u0430 \u2014 \u0432 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0438 \u2014 \u043B\u043E\u0433\u0438\u0447\u0435\u0441\u043A\u043E\u0435 \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u0435, \u0438\u0441\u0442\u0438\u043D\u043D\u043E\u0435 \u043F\u043E\u0441\u043B\u0435 \u043A\u0430\u0436\u0434\u043E\u0433\u043E \u043F\u0440\u043E\u0445\u043E\u0434\u0430 \u0442\u0435\u043B\u0430 \u0446\u0438\u043A\u043B\u0430 (\u043F\u043E\u0441\u043B\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0444\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u0430) \u0438 \u043F\u0435\u0440\u0435\u0434 \u043D\u0430\u0447\u0430\u043B\u043E\u043C \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0446\u0438\u043A\u043B\u0430, \u0437\u0430\u0432\u0438\u0441\u044F\u0449\u0435\u0435 \u043E\u0442 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0445, \u0438\u0437\u043C\u0435\u043D\u044F\u044E\u0449\u0438\u0445\u0441\u044F \u0432 \u0442\u0435\u043B\u0435 \u0446\u0438\u043A\u043B\u0430. \u0418\u043D\u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044E\u0442\u0441\u044F \u0432 \u0442\u0435\u043E\u0440\u0438\u0438 \u0432\u0435\u0440\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u0438 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C \u0434\u043B\u044F \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430 \u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u043E\u0441\u0442\u0438 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043D\u043E\u0433\u043E \u0446\u0438\u043A\u043B\u0438\u0447\u0435\u0441\u043A\u0438\u043C \u0430\u043B\u0433\u043E\u0440\u0438\u0442\u043C\u043E\u043C."@ru . "In der Informatik ist eine Schleifeninvariante eine Sonderform der Invariante, die am Anfang und Ende eines jeden Schleifendurchlaufs und vor und nach der Ausf\u00FChrung der Schleife in einem Algorithmus g\u00FCltig ist. Sie ist damit unabh\u00E4ngig von der Zahl ihrer derzeitigen Durchl\u00E4ufe. Eine Schleifeninvariante wird zur formalen Verifizierung von Algorithmen ben\u00F6tigt und hilft zudem, die Vorg\u00E4nge innerhalb einer Schleife besser zu erfassen. Typischerweise beschreiben Schleifeninvarianten Wertebereiche von Variablen und Beziehungen der Variablen untereinander. Da es sich bei der Schleifeninvariante um einen logischen Ausdruck handelt, kann sie entweder wahr oder falsch sein."@de . . . . . . . "Loop invariant"@en . . . . . . . . . "\u30EB\u30FC\u30D7\u4E0D\u5909\u6761\u4EF6"@ja . "Niezmiennik p\u0119tli \u2013 poj\u0119cie u\u017Cywane w projektowaniu, analizie i dowodzeniu poprawno\u015Bci algorytm\u00F3w. M\u00F3wimy, \u017Ce zdanie P jest niezmiennikiem p\u0119tli, je\u017Celi po ka\u017Cdym jej przebiegu jest ono prawdziwe. W praktyce niezmiennik p\u0119tli traktowany jest jako za\u0142o\u017Cenie indukcyjne, na podstawie kt\u00F3rego wykazuje si\u0119 prawdziwo\u015B\u0107 kroku indukcyjnego."@pl . . . . . "Informatikan, begizta inbariante bat baten begizta bat exekutatu aurretik eta ondoren betetzen den propietatea da. Inbariantea da, batzuetan asertzio dei baten kodea erabiliz egiaztatzen dena. Begizta baten inbariantea ezagutzea ezinbestekoa da begiztak duen efektua ondo ulertu ahal izateko."@eu . . . . . . "\u5728\u8BA1\u7B97\u673A\u79D1\u5B66\u4E2D\uFF0C\u5FAA\u73AF\u4E0D\u53D8\u5F0F\uFF08loop invariant\uFF0C\u6216\u5FAA\u73AF\u4E0D\u53D8\u91CF\u3001\u5FAA\u73AF\u4E0D\u53D8\u6761\u4EF6\uFF0C\u4E5F\u6709\u8BD1\u4F5C\u5FAA\u73AF\u4E0D\u53D8\u6027\uFF09\uFF0C\u662F\u4E00\u7EC4\u5728\u5FAA\u73AF\u4F53\u5185\u3001\u6BCF\u6B21\u8FED\u4EE3\u5747\u4FDD\u6301\u4E3A\u771F\u7684\u6027\u8D28\uFF08\u8868\u8FBE\u5F0F\uFF09\uFF0C\u901A\u5E38\u88AB\u7528\u6765\u8BC1\u660E\u7A0B\u5F0F\u6216\u4F2A\u7801\u7684\u6B63\u786E\u6027\uFF08\u6709\u65F6\u4F46\u8F83\u5C11\u60C5\u51B5\u4E0B\u7528\u4EE5\u8BC1\u660E\u7B97\u6CD5\u7684\u6B63\u786E\u6027\uFF09\u3002\u7B80\u5355\u8BF4\u6765\uFF0C\u201C\u5FAA\u73AF\u4E0D\u53D8\u5F0F\u201D\u662F\u6307\u5728\u5FAA\u73AF\u5F00\u59CB\u548C\u5FAA\u73AF\u4E2D\uFF0C\u6BCF\u4E00\u6B21\u8FED\u4EE3\u65F6\u4E3A\u771F\u7684\u6027\u8D28\u3002\u8FD9\u610F\u5473\u7740\uFF0C\u4E00\u4E2A\u6B63\u786E\u7684\u5FAA\u73AF\u4F53\uFF0C\u5728\u5FAA\u73AF\u7ED3\u675F\u65F6\u201C\u5FAA\u73AF\u4E0D\u53D8\u5F0F\u201D\u548C\u201C\u5FAA\u73AF\u7EC8\u6B62\u6761\u4EF6\u201D\u5FC5\u987B\u540C\u65F6\u6210\u7ACB\u3002 \u7531\u4E8E\u5FAA\u73AF\u548C\u9012\u5F52\u7684\u76F8\u901A\uFF0C\u8BC1\u660E\u5E26\u6709\u4E0D\u53D8\u5F0F\u7684\u5FAA\u73AF\u7684\u90E8\u5206\u6B63\u786E\u6027\u548C\u8BC1\u660E\u901A\u8FC7\u5F52\u7EB3\u7684\u9012\u5F52\u7A0B\u5E8F\u7684\u6B63\u786E\u6027\u6781\u5176\u76F8\u4F3C\u3002 \u5FAA\u73AF\u4E0D\u53D8\u4EE3\u7801\u5916\u63D0\uFF08Loop-invariant code motion\uFF09\u662F\u5C07\u5FAA\u73AF\u5167\u90E8\u4E0D\u53D7\u5FAA\u74B0\u5F71\u97FF\u7684\u8A9E\u53E5\u6216\u8868\u9054\u5F0F\u79FB\u5230\u5FAA\u74B0\u9AD4\u4E4B\u5916\uFF0C\u548C\u6B64\u689D\u76EE\u63D0\u5230\u7684\u5FAA\u73AF\u4E0D\u53D8\u5F0F\u7121\u95DC\u4FC2\u3002"@zh . . . . . . . . . . . "1115859612"^^ . . "Niezmiennik p\u0119tli \u2013 poj\u0119cie u\u017Cywane w projektowaniu, analizie i dowodzeniu poprawno\u015Bci algorytm\u00F3w. M\u00F3wimy, \u017Ce zdanie P jest niezmiennikiem p\u0119tli, je\u017Celi po ka\u017Cdym jej przebiegu jest ono prawdziwe. W praktyce niezmiennik p\u0119tli traktowany jest jako za\u0142o\u017Cenie indukcyjne, na podstawie kt\u00F3rego wykazuje si\u0119 prawdziwo\u015B\u0107 kroku indukcyjnego."@pl . "In der Informatik ist eine Schleifeninvariante eine Sonderform der Invariante, die am Anfang und Ende eines jeden Schleifendurchlaufs und vor und nach der Ausf\u00FChrung der Schleife in einem Algorithmus g\u00FCltig ist. Sie ist damit unabh\u00E4ngig von der Zahl ihrer derzeitigen Durchl\u00E4ufe. Eine Schleifeninvariante wird zur formalen Verifizierung von Algorithmen ben\u00F6tigt und hilft zudem, die Vorg\u00E4nge innerhalb einer Schleife besser zu erfassen. Typischerweise beschreiben Schleifeninvarianten Wertebereiche von Variablen und Beziehungen der Variablen untereinander. Da es sich bei der Schleifeninvariante um einen logischen Ausdruck handelt, kann sie entweder wahr oder falsch sein. Zu jeder Schleife l\u00E4sst sich eine Invariante finden, die vor der Schleife und nach jeder Pr\u00FCfung der Schleifenbedingung gilt, z. B. eine Tautologie wie \u201Ewahr = wahr\u201C. Es l\u00E4sst sich also immer eine Invariante bestimmen, diese ist aber nicht immer daf\u00FCr geeignet, einen formalen Korrektheitsbeweis durchzuf\u00FChren."@de . . . "\u5728\u8BA1\u7B97\u673A\u79D1\u5B66\u4E2D\uFF0C\u5FAA\u73AF\u4E0D\u53D8\u5F0F\uFF08loop invariant\uFF0C\u6216\u5FAA\u73AF\u4E0D\u53D8\u91CF\u3001\u5FAA\u73AF\u4E0D\u53D8\u6761\u4EF6\uFF0C\u4E5F\u6709\u8BD1\u4F5C\u5FAA\u73AF\u4E0D\u53D8\u6027\uFF09\uFF0C\u662F\u4E00\u7EC4\u5728\u5FAA\u73AF\u4F53\u5185\u3001\u6BCF\u6B21\u8FED\u4EE3\u5747\u4FDD\u6301\u4E3A\u771F\u7684\u6027\u8D28\uFF08\u8868\u8FBE\u5F0F\uFF09\uFF0C\u901A\u5E38\u88AB\u7528\u6765\u8BC1\u660E\u7A0B\u5F0F\u6216\u4F2A\u7801\u7684\u6B63\u786E\u6027\uFF08\u6709\u65F6\u4F46\u8F83\u5C11\u60C5\u51B5\u4E0B\u7528\u4EE5\u8BC1\u660E\u7B97\u6CD5\u7684\u6B63\u786E\u6027\uFF09\u3002\u7B80\u5355\u8BF4\u6765\uFF0C\u201C\u5FAA\u73AF\u4E0D\u53D8\u5F0F\u201D\u662F\u6307\u5728\u5FAA\u73AF\u5F00\u59CB\u548C\u5FAA\u73AF\u4E2D\uFF0C\u6BCF\u4E00\u6B21\u8FED\u4EE3\u65F6\u4E3A\u771F\u7684\u6027\u8D28\u3002\u8FD9\u610F\u5473\u7740\uFF0C\u4E00\u4E2A\u6B63\u786E\u7684\u5FAA\u73AF\u4F53\uFF0C\u5728\u5FAA\u73AF\u7ED3\u675F\u65F6\u201C\u5FAA\u73AF\u4E0D\u53D8\u5F0F\u201D\u548C\u201C\u5FAA\u73AF\u7EC8\u6B62\u6761\u4EF6\u201D\u5FC5\u987B\u540C\u65F6\u6210\u7ACB\u3002 \u7531\u4E8E\u5FAA\u73AF\u548C\u9012\u5F52\u7684\u76F8\u901A\uFF0C\u8BC1\u660E\u5E26\u6709\u4E0D\u53D8\u5F0F\u7684\u5FAA\u73AF\u7684\u90E8\u5206\u6B63\u786E\u6027\u548C\u8BC1\u660E\u901A\u8FC7\u5F52\u7EB3\u7684\u9012\u5F52\u7A0B\u5E8F\u7684\u6B63\u786E\u6027\u6781\u5176\u76F8\u4F3C\u3002 \u5FAA\u73AF\u4E0D\u53D8\u4EE3\u7801\u5916\u63D0\uFF08Loop-invariant code motion\uFF09\u662F\u5C07\u5FAA\u73AF\u5167\u90E8\u4E0D\u53D7\u5FAA\u74B0\u5F71\u97FF\u7684\u8A9E\u53E5\u6216\u8868\u9054\u5F0F\u79FB\u5230\u5FAA\u74B0\u9AD4\u4E4B\u5916\uFF0C\u548C\u6B64\u689D\u76EE\u63D0\u5230\u7684\u5FAA\u73AF\u4E0D\u53D8\u5F0F\u7121\u95DC\u4FC2\u3002"@zh . . "Niezmiennik p\u0119tli"@pl . . "Schleifeninvariante"@de . . . . . . . "Invariant de boucle"@fr . . . . . . . "March 2016"@en . . . . . . . "En programmation, une boucle est une instruction qui permet de r\u00E9p\u00E9ter l'ex\u00E9cution d'une partie d'un programme. Un invariant de boucle est une propri\u00E9t\u00E9 qui est vraie avant et apr\u00E8s chaque r\u00E9p\u00E9tition. C'est une propri\u00E9t\u00E9 logique, qui permet d'\u00E9tudier un programme ou un algorithme. En v\u00E9rification formelle, en particulier en logique de Hoare, les invariants de boucles sont des pr\u00E9dicats logiques, qui servent \u00E0 prouver les algorithmes qui les utilisent, en particulier la correction de ces algorithmes. Un invariant de boucle doit \u00EAtre vrai avant de commencer la boucle et il est garanti qu'il restera vrai apr\u00E8s chaque it\u00E9ration de la boucle. En particulier, l'invariant sera toujours vrai \u00E0 la fin de la boucle.Les boucles et la r\u00E9cursivit\u00E9 \u00E9tant fondamentalement similaires, il y a peu de diff\u00E9rence entre d\u00E9montrer un invariant de boucles et prouver qu'un programme est correct en utilisant un raisonnement par r\u00E9currence. En pratique, l'invariant de boucle est souvent la propri\u00E9t\u00E9 induction \u2014 l'hypoth\u00E8se d'induction \u2014 qui sert \u00E0 montrer qu'un programme r\u00E9cursif est \u00E9quivalent \u00E0 une boucle."@fr . . . . . . "\u0418\u043D\u0432\u0430\u0440\u0438\u0430\u043D\u0442 \u0446\u0438\u043A\u043B\u0430"@ru . . . . "17507"^^ . . . . . . . . . . . . . "Informatikan, begizta inbariante bat baten begizta bat exekutatu aurretik eta ondoren betetzen den propietatea da. Inbariantea da, batzuetan asertzio dei baten kodea erabiliz egiaztatzen dena. Begizta baten inbariantea ezagutzea ezinbestekoa da begiztak duen efektua ondo ulertu ahal izateko."@eu . . . "Ciclo invariante"@es . . . . . . . . "De manera informal, ciclo invariante es alg\u00FAn predicado o condici\u00F3n que se mantiene en cada iteraci\u00F3n de un ciclo. Por ejemplo: int j = 9;for(int i=0; i<10; i++) j--; En este ejemplo se cumple la invariante de ciclo para cada iteraci\u00F3n, ya que se mantiene la condici\u00F3n siguiente: i + j == 9 Otra invariante m\u00E1s d\u00E9bil es: i >= 0 && i < 10 //(condici\u00F3n terminal) //o bien j <= 9 && j >= 0 Las invariantes de ciclo sirven para probar que un algoritmo est\u00E9 correcto."@es . . . . . "\u5FAA\u73AF\u4E0D\u53D8\u91CF"@zh . . "I guess, once the notion of 'loop-invariant code' is defined in a sufficiently formal way, it can be proven that loop-invariant code *always* induces a corresponding loop invariant property."@en . . . . "\u0418\u043D\u0432\u0430\u0440\u0438\u0430\u043D\u0442 \u0446\u0438\u043A\u043B\u0430 \u2014 \u0432 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0438 \u2014 \u043B\u043E\u0433\u0438\u0447\u0435\u0441\u043A\u043E\u0435 \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u0435, \u0438\u0441\u0442\u0438\u043D\u043D\u043E\u0435 \u043F\u043E\u0441\u043B\u0435 \u043A\u0430\u0436\u0434\u043E\u0433\u043E \u043F\u0440\u043E\u0445\u043E\u0434\u0430 \u0442\u0435\u043B\u0430 \u0446\u0438\u043A\u043B\u0430 (\u043F\u043E\u0441\u043B\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0444\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E \u043E\u043F\u0435\u0440\u0430\u0442\u043E\u0440\u0430) \u0438 \u043F\u0435\u0440\u0435\u0434 \u043D\u0430\u0447\u0430\u043B\u043E\u043C \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0446\u0438\u043A\u043B\u0430, \u0437\u0430\u0432\u0438\u0441\u044F\u0449\u0435\u0435 \u043E\u0442 \u043F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0445, \u0438\u0437\u043C\u0435\u043D\u044F\u044E\u0449\u0438\u0445\u0441\u044F \u0432 \u0442\u0435\u043B\u0435 \u0446\u0438\u043A\u043B\u0430. \u0418\u043D\u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044E\u0442\u0441\u044F \u0432 \u0442\u0435\u043E\u0440\u0438\u0438 \u0432\u0435\u0440\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u0438 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C \u0434\u043B\u044F \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u0435\u043B\u044C\u0441\u0442\u0432\u0430 \u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u043E\u0441\u0442\u0438 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430, \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043D\u043E\u0433\u043E \u0446\u0438\u043A\u043B\u0438\u0447\u0435\u0441\u043A\u0438\u043C \u0430\u043B\u0433\u043E\u0440\u0438\u0442\u043C\u043E\u043C."@ru . . . . "In computer science, a loop invariant is a property of a program loop that is true before (and after) each iteration. It is a logical assertion, sometimes checked within the code by an assertion call. Knowing its invariant(s) is essential in understanding the effect of a loop. In formal program verification, particularly the Floyd-Hoare approach, loop invariants are expressed by formal predicate logic and used to prove properties of loops and by extension algorithms that employ loops (usually correctness properties).The loop invariants will be true on entry into a loop and following each iteration, so that on exit from the loop both the loop invariants and the loop termination condition can be guaranteed. From a programming methodology viewpoint, the loop invariant can be viewed as a more abstract specification of the loop, which characterizes the deeper purpose of the loop beyond the details of this implementation. A survey article covers fundamental algorithms from many areas of computer science (searching, sorting, optimization, arithmetic etc.), characterizing each of them from the viewpoint of its invariant. Because of the similarity of loops and recursive programs, proving partial correctness of loops with invariants is very similar to proving correctness of recursive programs via induction. In fact, the loop invariant is often the same as the inductive hypothesis to be proved for a recursive program equivalent to a given loop."@en . .