Кіріспе

Математикалық логикадағы дәлелдеу әдісі. Структуралық индукция – математикалық логикада (мысалы, Лось теоремасын дәлелдеуде), компьютерлік ғылымда, графтар теориясында және басқа да математикалық салаларда қолданылатын дәлелдеу әдісі. Бұл табиғи сандарға қатысты математикалық индукцияның жалпылауы және оны кез келген Ноэтер индукциясына одан әрі жалпылауға болады. Құрылымдық рекурсия – бұл рекурсия әдісі, ол құрылымдық индукцияға қарапайым рекурсияның қарапайым математикалық индукцияға қатысты болғандай қатынаста болады. Структуралық индукция кейбір P(x) тұжырымының формулалар, тізімдер немесе ағаштар сияқты рекурсивті анықталған құрылымның барлық x үшін орынды екенін дәлелдеу үшін қолданылады. Құрылымдарда жақсы негізделген ішінара тәртіп анықталады («формулалар үшін – «субформула», тізімдер үшін – «субтізім» және ағаштар үшін – «субағаш»). Структуралық индукциялық дәлелдеме – бұл тұжырымның барлық минималды құрылымдар үшін орынды екенін және егер ол белгілі бір құрылымның тікелей субқұрылымдары үшін орынды болса, онда ол S үшін де орынды болуы керек екенін дәлелдеу. (Формальды айтқанда, бұл жақсы негізделген индукция аксиомасының алғышарттарын қанағаттандырады, ол осы екі шарт тұжырымның барлық x үшін орынды болуы үшін жеткілікті екенін көрсетеді.) Құрылымдық рекурсивті функция рекурсивті функцияны анықтау үшін бірдей идеяны қолданады: «базалық жағдайлар» әрбір минималды құрылымды және рекурсия ережесін қамтиды. Құрылымдық рекурсия әдетте структуралық индукция арқылы дұрыс екені дәлелденеді; әсіресе оңай жағдайларда индукциялық қадамды жіберуге болады. Төмендегі мысалдағы ұзындығы және ++ функциялары құрылымдық рекурсивті. Мысалы, егер құрылымдар тізімдер болса, онда әдетте "<" ішінара тәртібін енгізеді, онда L < M тізімі L тізімі M тізімінің соңы болғанда ғана орынды болады. Бұл тәртіп бойынша бос тізім [] бірегей минималды элемент болып табылады. P(L) тұжырымының структуралық индукциялық дәлелі екі бөліктен тұрады: P([]) орынды екенін және егер P(L) кейбір L тізімі үшін орынды болса және егер L M тізімінің соңы болса, онда P(M) да орынды болуы керек екенін дәлелдеу. Соңында, функцияның немесе құрылымның құрылу жолына байланысты, бірнеше базалық және/немесе бірнеше индукциялық жағдайлар болуы мүмкін. Мұндай жағдайларда P(L) тұжырымының структуралық индукциялық дәлелі мыналардан тұрады:

Жақсы тәртіп

Стандартты математикалық индукция жақсы реттелген принципке тең болғандай, құрылымдық индукция да жақсы реттелген принципке тең. Егер белгілі бір түрдегі барлық құрылымдар жиыны жақсы негізделген ішінара тәртіпті қабылдаса, онда әрбір бос емес ішкі жиынның минималды элементі болуы керек. (Бұл "жақсы негізделген" анықтамасы.) Бұл лемманың маңызы – егер дәлелдегіміз келетін теоремаға қарсы мысалдар болса, онда ең кішкентай қарсы мысал болуы керек деген қорытындыға келуге мүмкіндік береді. Егер ең кішкентай қарсы мысалдың бар екендігін одан да кішкентай қарсы мысалдың бар екендігін көрсете алсақ, онда қарама-қайшылыққа жетеміз (өйткені ең кішкентай қарсы мысал ең кішкентай емес), сондықтан қарсы мысалдар жиыны бос болуы керек. Осы типтегі аргументтің мысалы ретінде барлық екілік ағаштар жиынын қарастырайық. Біз толық екілік ағаштағы жапырақтар саны ішкі түйіндер санынан бірге артық екенін көрсетеміз. Егер қарсы мысал бар деп есептесек, онда ішкі түйіндердің ең аз саны бар қарсы мысал болуы керек. Бұл қарсы мысал, C, n ішкі түйін мен l жапырақтан тұрады, мұнда l = n + 1 ≠ l. Сонымен қатар, C тривиалды емес болуы керек, өйткені тривиалды ағашта l = n = 0 және l = 1, сондықтан ол қарсы мысал емес. Демек, C-де кем дегенде бір жапырағы бар, оның аталық түйіні ішкі түйін болып табылады. Бұл жапырақты және оның аталық түйінін ағаштан жойып, жапырақтың туысқан түйінін аталық түйін бұрын тұрған орынға жылжытыңыз. Бұл n және l-ді 1-ге азайтады, сондықтан жаңа ағашта да l = n + 1 ≠ l, яғни ол кішкентай қарсы мысал болады. Бірақ гипотеза бойынша, C – ең кішкентай қарсы мысал еді; демек, бастапқыда қарсы мысалдар бар деген болжам жалған болуы керек. Мұндағы "кішкентай" деген ішінара тәртіп S < T, егер S-тің түйіндері T-ден аз болса.