Skip to main content
LibreTexts - Ukrayinska

B.4: Індуктивні визначення

  • Page ID
    52727
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)

    У логіці ми дуже часто визначаємо види об'єктів індуктивно, тобто вказуючи правила для того, що вважається об'єктом такого роду, який потрібно визначити, які пояснюють, як отримати нові об'єкти такого роду зі старих об'єктів такого роду. Наприклад, ми часто визначаємо спеціальні види послідовностей символів, таких як терміни та формули мови, шляхом індукції. Для простого прикладу розглянемо рядки, що складаються з букв\(\mathrm{a}\)\(\mathrm{b}\),\(\mathrm{c}\),\(\mathrm{d}\),\(\circ\), символ і дужки\([\) і\(]\), такі як «\([[\mathrm{c} \circ \mathrm{d}][\)»,» \([\mathrm{a}[]\circ]\)», «\(\mathrm{a}\)» або «\([[\mathrm{a} \circ \mathrm{b}]\circ \mathrm{d}]\)». Ви, напевно, відчуваєте, що є щось «неправильне» з першими двома рядками: дужки взагалі не «балансують» в першому, і ви можете відчути, що «\(\circ\)» повинні «з'єднувати» вирази, які самі мають сенс. Третя і четверта рядки виглядають краще: для кожного «\([\)» є закриття «\(]\)» (якщо такі є взагалі), і для будь-якого\(\circ\) ми можемо знайти «приємні» вирази з обох боків, оточені парою дужок.

    Ми хотіли б точно вказати, що вважається «приємним терміном». Перш за все, кожна буква сама по собі приємна. Все, що не просто буква сама по собі має бути форми «\([t \circ s]\)» де\(s\) і самі по собі\(t\) приємні. І навпаки, якщо\(t\) і\(s\) приємні, то ми можемо сформувати новий приємний термін, поставивши\(\circ\) між ними і оточити їх парою дужок. Ми можемо використовувати ці операції для визначення набору приємних термінів. Це індуктивне визначення.

    Визначення\(\PageIndex{1}\): Nice terms

    Набір приємних термінів індуктивно визначається наступним чином:

    1. Будь-який лист\(\mathrm{a}\)\(\mathrm{b}\)\(\mathrm{c}\),\(\mathrm{d}\),, хороший термін.

    2. Якщо\(s_1\) і\(s_2\) є приємними умовами, то так і є\([s_1 \circ s_2]\).

    3. Ніщо інше не є приємним терміном.

    Це визначення говорить нам, що щось вважається приємним терміном, якщо його можна побудувати відповідно до двох умов (1) та (2) за деяку кінцеву кількість кроків. На першому кроці ми будуємо всі приємні терміни, що складаються з букв самі по собі, тобто,\[\mathrm{a}, \mathrm{b}, \mathrm{c}, \mathrm{d}\nonumber\] На другому кроці ми застосовуємо (2) до побудованих нами термінів. Ми отримаємо\[[\mathrm{a} \circ \mathrm{a}], [\mathrm{a} \circ \mathrm{b}], [\mathrm{b} \circ \mathrm{a}], \dots, [\mathrm{d} \circ \mathrm{d}]\nonumber\] для всіх комбінацій двох букв. На третьому кроці ми знову застосовуємо (2) до будь-яких двох приємних термінів, які ми побудували до цих пір. Ми отримуємо новий приємний термін, такий як\([\mathrm{a} \circ [\mathrm{a} \circ \mathrm{a}]]\) —де\(t\)\(\mathrm{a}\) з кроку 1 і\(s\) є\([\mathrm{a} \circ \mathrm{a}]\) з кроку 2 - і\([[\mathrm{b} \circ \mathrm{c}] \circ [\mathrm{d} \circ \mathrm{b}]]\) побудовано з двох термінів\([\mathrm{b} \circ \mathrm{c}]\) і\([\mathrm{d} \circ \mathrm{b}]\) з кроку 2. І так далі. Пункт (3) виключає, що все, що не побудовано таким чином, пробирається до набору приємних термінів.

    Зауважимо, що ми ще не довели, що кожна послідовність символів, яка «відчуває» приємно відповідно до цього визначення. Однак повинно бути зрозуміло, що все, що ми можемо побудувати, насправді «відчувати себе приємно»: дужки збалансовані, і\(\circ\) з'єднують частини, які самі по собі приємні.

    Ключовою особливістю індуктивних визначень є те, що якщо ви хочете довести щось про всі приємні терміни, визначення говорить вам, які випадки ви повинні розглянути. Наприклад, якщо вам кажуть, що\(t\) це хороший термін, індуктивне визначення говорить вам, як\(t\) може виглядати:\(t\) може бути буквою, або це може бути\([s_1 \circ s_2]\) для деякої пари приємних термінів\(s_1\) і\(s_2\) . Через пункт (3) це єдині можливості.

    При доведенні тверджень про всі індуктивно визначені множини, сильна форма індукції стає особливо важливою. Наприклад, припустимо, ми хочемо довести, що для кожного приємного терміну довжини\(n\) число\([\) в ньому є\(< n/2\). Це можна розглядати як претензію про всіх\(n\): для кожного\(n\) кількість\([\) у будь-якому приємному терміні довжини\(n\) є\(< n/2\).

    Пропозиція\(\PageIndex{1}\)

    Для будь-якого\(n\), число\([\) в хороший термін довжини\(n\) є\(< n/2\).

    Доказ. Щоб довести цей результат за допомогою (сильної) індукції, ми повинні показати, що таке умовне твердження є істинним:

    Якщо для кожного\(l < k\), будь-який хороший термін довжини\(l\) має,\(l/2\)\([\) то будь-який хороший термін довжини\(k\) має\(k/2\)\([\).

    Щоб показати це умовне, припустимо, що його попередник є істинним, тобто припустимо, що для будь-яких\(l<k\), приємних термінів довжини\(l\) містять\(< l/2\)\([\)'s. Ми називаємо це припущення індуктивною гіпотезою. Ми хочемо показати те ж саме вірно для приємних умов довжини\(k\).

    Так припустимо,\(t\) це хороший термін довжини\(k\). Оскільки приємні терміни індуктивно визначені, у нас є два випадки: (1)\(t\) це буква сама по собі, або (2)\(t\)\([s_1 \circ s_2]\) для деяких приємних термінів\(s_1\) і\(s_2\).

    1. \(t\)це лист. Потім\(k = 1\), і число\([\) в\(t\) є\(0\). З тих пір\(0 < 1/2\), позов тримається.

    2. \(t\)це\([s_1 \circ s_2]\) для деяких приємних умов\(s_1\) і\(s_2\). Нехай\(l_1\) буде довжина\(s_1\) і\(l_2\) бути довжиною\(s_2\). Тоді\(k\) довжина\(t\) є\(l_1+l_2+3\) (довжини\(s_1\) і\(s_2\) плюс три символи\([\),\(\circ\),\(]\)). Так як\(l_1+l_2+3\) завжди більше\(l_1\), ніж,\(l_1 < k\). Аналогічно,\(l_2 < n\). Це означає, що індукційна гіпотеза застосовується до термінів\(s_1\) і\(s_2\): число\(m_1\)\([\) в\(s_1\) є\(< l_1/2\), і\(m_2\) число\([\) в\(s_2\) є\(< l_2/2\).

      Число\([\) in\(t\) - це число\([\) in\(s_1\), плюс число\([\) in\(s_2\), плюс\(1\), тобто воно є\(m_1 + m_2 + 1\). З тих пір\(m_1 < l_1/2\) і у\(m_2 < l_2/2\) нас є:\[m_1 + m_2 + 1 < \frac{l_1}{2} + \frac{l_2}{2} + 1 = \frac{l_1+l_2+2}{2} < \frac{l_1+l-2+3}{2} = k/2.\nonumber\]

    У кожному випадку ми показали, що число\([\) in\(t\) є\(< k/2\) (на основі індуктивної гіпотези). За сильною індукцією випливає пропозиція. ◻

    Проблема\(\PageIndex{1}\)

    Визначте множину надрядних термінів по

    1. Будь-яка буква\(\mathrm{a}\)\(\mathrm{b}\),\(\mathrm{c}\),,\(\mathrm{d}\) є надзвичайним терміном.

    2. Якщо\(s\) є надзвичайним терміном, то так і є\([s]\).

    3. Якщо\(s_1\) і\(s_2\) є надзвичайними термінами, то так і є\([s_1 \circ s_2]\).

    4. Ніщо інше не є надзвичайним терміном.

    Покажіть, що число\([\) у надрядному\(t\) семестрі довжини\(n\) дорівнює\(\le n/2 +1\).