موضوع مقاله: استقرای ساختاری | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # استقرای ساختاری | مقدمه: روش بازگشت ساختاری یک روش بازگشتی است که ارتباط آن با استقرای ساختاری همانند ارتباط یک رابطه بازگشتی ساده با یک رابطه استقرای ریاضی ساده است. | ## بخش 1: استقرای ساختاری | استقرای ساختاری برای اثبات برخی گزاره‌های (P(x، که به ازای همهٔ xهای نوعی از ساختارهای تعریف شده به صورت بازگشتی مانند لیست‌ها یا درختان صحیح است، استفاده می‌شود. یک ترتیب جزئی کامل بر ساختارها ("زیرلیست" برای لیست‌ها و "زیر درخت" برای درختان) تعریف شده‌است. روش اثباتی استقرای ساختاری ثابت می‌کند که گزاره برای تمام ساختارهای مینیمال صحیح است، و در صورتی که این روش برای زیرساخت¬های بلافاصله یک ساختار خاص مانند S برقرار باشد آنگاه می¬بایست برای خود S نیز برقرار باشد. (به زبان رسمی، این مسئله موجب صحت فروض اصل استقرای کامل است که ادعا می‌کند که این دو شرط برای گزاره‌ای با هر مقدار x کافی است.) یک تابع بازگشتی ساختاری ازهمان ایده که برای تعریف یک تابع بازگشتی به کار برده می‌شود، استفاده میکند: حالات پایه که هر یک از ساختارهای مینیمال را رسیدگی می‌کنند و یک قانون برای بازگشت. رابطه بازگشتی ساختاری معمولاً بوسیله استقرای ساختاری ثابت می‌شود؛ در موارد خاص آسان ،معمولاً از گام استقرا صرف نظر می‌شود. برای مثال، اگر ساختارها به صورت لیست باشند، لیستی معمولاً ترتیب جزئی '<' را معرفی می‌کند که در آن L <M است، هر زمان که لیست L دم لیست M باشد. اثبات استقرای ساختاری برخی از گزاره‌های (P(l شامل دو بخش است: اثبات این که P درست است، و اثبات این که اگر (P(L برای برخی از لیست‌های L درست باشد، و اگر L دم لیست M باشد، پس (P(M نیز باید درست باشد. در نهایت، ممکن است بیش از یک حالت پایه و/ یا بیش از یک حالت استقرا، بسته به اینکه چگونه تابع یا ساختار ساخته شده است، وجود داشته باشد. در آن موارد، اثبات استقرای ساختاری برخی از گزاره‌های (P(L شامل: الف) اثبات این که (P(BC، برای هر حالت پایه BC درست است. و ب) اثبات این که اگر (P(l برای برخی از موارد l درست باشد، وM بتواند از l با یک بار امتحان کردن هر یک از قواعد بازگشتی به دست بیاید، پس (P(M نیز باید درست باشد، می‌شود. | ## بخش 2: استقرای ساختاری | مثال‌ها شجره نامه باستان، نشان دادن 31 نفر در 5 نسل شجره نامه یک ساختار داده شناخته شده‌است که پدر و مادر، پدربزرگ و مادربزرگ، و اجداد یک فرد را تا آنجا که شناخته شده باشند نشان می دهد و به صورت بازگشتی تعریف می‌شود: در ساده‌ترین حالت، یک شجره نامه فقط یک نفر را نشان می دهد (اگر چیزی در مورد پدر و مادر آن شخص مشخص نباشد). متناوباً، شجره نامه یک نفر را، که توسط شاخه به دو زیر درخت پدر و مادر خود متصل شده است، نشان می دهد(با استفاده از فرضی ساده که اگر :یکی از آن‌ها شناخته شده باشد، پس هر دو شناخته شده اند). به عنوان مثال، ویژگی " یک شجره نامه که بیش از g نسل را گسترش می دهد حداکثر 2g-1 نفر را نشان می دهد" را می‌توان با استقرای ساختاری ثابت کرد که به شرح زیر است: در ساده‌ترین حالت، درخت فقط یک نفر را و از این رو یک نسل را نشان می‌دهد. از آن جا که هر یک از والدین یک زیرساختار از ساختار درخت هستند، می‌توان صحیح بودن ویژگی مذکور را اثبات شده فرض نمود. پس می‌توان فرض کرد، p ≤ 2g – 1 و q ≤ 2h – 1، که در آن g و h نشان دهنده تعداد نسل‌هایی است که زیردرخت‌های پدر و مادر به ترتیب گسترش می دهند، و p و q نشان دهنده تعداد افرادی است که آن‌ها نشان می دهند. در صورتی که g ≤ h، کل درخت، بیش از 1 + hنسل گسترش می یابد و p + q + 1 نفر را نشان می‌دهد. در صورتی که h ≤ g، کل درخت، بیش از 1 + g نسل گسترش می یابد و همینطور p + q + 1 ≤ 2(1 + g) - 1 نفر را با استدلالی مشابه نشان می‌دهد. قرار دهید (h : t) که لیستی را که سر (عنصر اول) آن h و دم (فهرست عناصر باقی مانده) آن T است نشان می دهد، و اجازه دهید نشان دهنده ی لیست خالی باشد. که در واقع برابر است با، EQ درست است برای همه لیستهای M زمانی که L برابر لیست خالی است. EQ برای همه Mها درست است، هنگامی که L برابر است، چرا که سمت چپ و سمت راست برابرند. | ## بخش 3: استقرای ساختاری | خوش ترتیبی همانگونه که استقرای ریاضی استاندارد معادل "اصل خوش ترتیبی" است، استقرای ساختاری نیز معادل یک "اصل خوش ترتیبی" است. اگر مجموعه ی تمام ساختارهای نوعی خاص یک ترتیب جزئی کامل را بپذیرد ، پس هر زیر مجموعه ناتهی باید دارای یک عنصر مینیمال باشد.(این تعریف کامل است.) اهمیت این لم در این زمینه، آن است که به ما اجازه می دهد تا استنباط کنیم که اگر هر گونه مثال نقضی برای قضیه‌ای که می خواهیم اثباتش کنیم وجود داشته باشد، پس باید یک مثال نقض مینیمم وجود داشته باشد. اگر ما بتوانیم نشان دهیم که وجود مثال نقض مینیمم دلالت می‌کند بر وجود مثال نقض‌های حتی کوچکتر، ما یک تناقض (هنگامی که مثال نقض مینیمم، کوچکترین نیست) داریم و در نتیجه مجموعه مثالهای نقض باید خالی باشد. به عنوان مثالی از این نوع استدلال، مجموعه‌ای از تمام درختان دودویی را در نظربگیرید. ما نشان خواهیم داد که تعداد برگ‌ها در یک درخت دودویی کامل یکی بیشتر از تعداد گره‌های داخلی آن است. فرض کنید یک مثال نقض وجود داشته باشد؛ پس باید یک درخت کامل با حداقل تعداد گره‌های داخلی ممکن وجود داشته باشد. علاوه بر این، C باید غیر بدیهی باشد، چرا که درخت بدیهی دارای n = 0 و L = 1 است و بنابراین، این یک مثال نقض نیست. حذف این برگ و پدر آن از درخت، گره برادر برگ را به موقعیت ای که قبلاً توسط پدر گره اشغال شده بود انتقال می‌دهد. این هر دوی n و l را یک واحد کاهش می دهد ، پس درخت جدید نیز دارای n + 1 ≠ l و بنابراین دارای یک مثال نقض کوچکتر است. | ## جمع‌بندی | "ترتیب جزئی که توسط 'کوچکتر' در اینجا گفته شد بیان می‌کند که S <T هر گاه S دارای گره‌های کمتر از T باشد.