Кіріспе
Математикалық логикадағы дәлелдеу әдісі. Структуралық индукция – математикалық логикада (мысалы, Лось теоремасын дәлелдеуде), компьютерлік ғылымда, графтар теориясында және басқа да математикалық салаларда қолданылатын дәлелдеу әдісі. Бұл табиғи сандарға қатысты математикалық индукцияның жалпылауы және оны кез келген Ноэтер индукциясына одан әрі жалпылауға болады. Құрылымдық рекурсия – бұл рекурсия әдісі, ол құрылымдық индукцияға қарапайым рекурсияның қарапайым математикалық индукцияға қатысты болғандай қатынаста болады. Структуралық индукция кейбір P(x) тұжырымының формулалар, тізімдер немесе ағаштар сияқты рекурсивті анықталған құрылымның барлық x үшін орынды екенін дәлелдеу үшін қолданылады. Құрылымдарда жақсы негізделген ішінара тәртіп анықталады («формулалар үшін – «субформула», тізімдер үшін – «субтізім» және ағаштар үшін – «субағаш»). Структуралық индукциялық дәлелдеме – бұл тұжырымның барлық минималды құрылымдар үшін орынды екенін және егер ол белгілі бір құрылымның тікелей субқұрылымдары үшін орынды болса, онда ол S үшін де орынды болуы керек екенін дәлелдеу. (Формальды айтқанда, бұл жақсы негізделген индукция аксиомасының алғышарттарын қанағаттандырады, ол осы екі шарт тұжырымның барлық x үшін орынды болуы үшін жеткілікті екенін көрсетеді.) Құрылымдық рекурсивті функция рекурсивті функцияны анықтау үшін бірдей идеяны қолданады: «базалық жағдайлар» әрбір минималды құрылымды және рекурсия ережесін қамтиды. Құрылымдық рекурсия әдетте структуралық индукция арқылы дұрыс екені дәлелденеді; әсіресе оңай жағдайларда индукциялық қадамды жіберуге болады. Төмендегі мысалдағы ұзындығы және ++ функциялары құрылымдық рекурсивті. Мысалы, егер құрылымдар тізімдер болса, онда әдетте "<" ішінара тәртібін енгізеді, онда L < M тізімі L тізімі M тізімінің соңы болғанда ғана орынды болады. Бұл тәртіп бойынша бос тізім [] бірегей минималды элемент болып табылады. P(L) тұжырымының структуралық индукциялық дәлелі екі бөліктен тұрады: P([]) орынды екенін және егер P(L) кейбір L тізімі үшін орынды болса және егер L M тізімінің соңы болса, онда P(M) да орынды болуы керек екенін дәлелдеу. Соңында, функцияның немесе құрылымның құрылу жолына байланысты, бірнеше базалық және/немесе бірнеше индукциялық жағдайлар болуы мүмкін. Мұндай жағдайларда P(L) тұжырымының структуралық индукциялық дәлелі мыналардан тұрады:
Structural induction is a proof method that is used in mathematical logic (e. g., in the proof of Łoś' theorem), computer science, graph theory, and some other mathematical fields. It is a generalization of mathematical induction over natural numbers and can be further generalized to arbitrary Noetherian induction. Structural recursion is a recursion method bearing the same relationship to structural induction as ordinary recursion bears to ordinary mathematical induction. Structural induction is used to prove that some proposition P(x) holds for all x of some sort of recursively defined structure, such as
formulas, lists, or trees. A well founded partial order is defined on the structures ("subformula" for formulas, "sublist" for lists, and "subtree" for trees). The structural induction proof is a proof that the proposition holds for all the minimal structures and that if it holds for the immediate substructures of a certain structure S, then it must hold for S also. (Formally speaking, this then satisfies the premises of an axiom of well founded induction, which asserts that these two conditions are sufficient for the proposition to hold for all x.) A structurally recursive function uses the same idea to define a recursive function: "base cases" handle each minimal structure and a rule for recursion. Structural recursion is usually proved correct by structural induction; in particularly easy cases, the inductive step is often left out. The length and ++ functions in the example below are structurally recursive. For example, if the structures are lists, one usually introduces the partial order "<", in which L < M whenever list L is the tail of list M. Under this ordering, the empty list [] is the unique minimal element. A structural induction proof of some proposition P(L) then consists of two parts: A proof that P([]) is true and a proof that if P(L) is true for some list L, and if L is the tail of list M, then P(M) must also be true. Eventually, there may exist more than one base case and/or more than one inductive case, depending on how the function or structure was constructed. In those cases, a structural induction proof of some proposition P(L) then consists of:
Жақсы тәртіп
Стандартты математикалық индукция жақсы реттелген принципке тең болғандай, құрылымдық индукция да жақсы реттелген принципке тең. Егер белгілі бір түрдегі барлық құрылымдар жиыны жақсы негізделген ішінара тәртіпті қабылдаса, онда әрбір бос емес ішкі жиынның минималды элементі болуы керек. (Бұл "жақсы негізделген" анықтамасы.) Бұл лемманың маңызы – егер дәлелдегіміз келетін теоремаға қарсы мысалдар болса, онда ең кішкентай қарсы мысал болуы керек деген қорытындыға келуге мүмкіндік береді. Егер ең кішкентай қарсы мысалдың бар екендігін одан да кішкентай қарсы мысалдың бар екендігін көрсете алсақ, онда қарама-қайшылыққа жетеміз (өйткені ең кішкентай қарсы мысал ең кішкентай емес), сондықтан қарсы мысалдар жиыны бос болуы керек. Осы типтегі аргументтің мысалы ретінде барлық екілік ағаштар жиынын қарастырайық. Біз толық екілік ағаштағы жапырақтар саны ішкі түйіндер санынан бірге артық екенін көрсетеміз. Егер қарсы мысал бар деп есептесек, онда ішкі түйіндердің ең аз саны бар қарсы мысал болуы керек. Бұл қарсы мысал, 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-ден аз болса.