Презентация 16 (Лекции), страница 3

PDF-файл Презентация 16 (Лекции), страница 3 Математическая логика и логическое программирование (40050): Лекции - 6 семестрПрезентация 16 (Лекции) - PDF, страница 3 (40050) - СтудИзба2019-05-12СтудИзба

Описание файла

Файл "Презентация 16" внутри архива находится в папке "Лекции". PDF-файл из архива "Лекции", который расположен в категории "". Всё это находится в предмете "математическая логика и логическое программирование" из 6 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 3 страницы из PDF

. .Вычисление программы π на оценке θ в интерпретации I — этомаксимальная по длине трасса π на θ в IРезультат конечного вычисления программы π на оценке θ винтерпретации I — это оценка последней пары этого вычисленияИмперативные программыОперационная семантика императивных программТрасса программы π на оценке θ в интерпретации I — этопоследовательность состояний вычисления видаhπ, θi →I hπ1 , θ1 i →I hπ2 , θ2 i →I . . .Вычисление программы π на оценке θ в интерпретации I — этомаксимальная по длине трасса π на θ в IРезультат конечного вычисления программы π на оценке θ винтерпретации I — это оценка последней пары этого вычисленияИными словами, если hπ, θi →∗I h∅, ηi, то η — результатвычисления π на θ в I(→∗I — транзитивное замыкание отношения →I )Императивные программыПримерПусть: π: while x > 0 do x ⇐ x − 1 od;θ = {x/1};I — “естественная” арифметическая интерпретацияИмперативные программыПримерПусть: π: while x > 0 do x ⇐ x − 1 od;θ = {x/1};I — “естественная” арифметическая интерпретацияТогда вычисление π на θ в I выглядит так:hwhile x > 0 do x ⇐ x − 1 od, {x/1}iПояснение:Императивные программыПримерПусть: π: while x > 0 do x ⇐ x − 1 od;θ = {x/1};I — “естественная” арифметическая интерпретацияТогда вычисление π на θ в I выглядит так:hwhile x > 0 do x ⇐ x − 1 od, {x/1}iIhx ⇐ x − 1; while x > 0 do x ⇐ x − 1 od, {x/1}iПояснение:(x > 0) {x/1} = (1 > 0)I |= (1 > 0)Императивные программыПримерПусть: π: while x > 0 do x ⇐ x − 1 od;θ = {x/1};I — “естественная” арифметическая интерпретацияТогда вычисление π на θ в I выглядит так:hwhile x > 0 do x ⇐ x − 1 od, {x/1}iIhx ⇐ x − 1; while x > 0 do x ⇐ x − 1 od, {x/1}iIh∅; while x > 0 do x ⇐ x − 1 od, {x/1 − 1}iПояснение:{x/x − 1} {x/1} = {x/1 − 1}Императивные программыПримерПусть: π: while x > 0 do x ⇐ x − 1 od;θ = {x/1};I — “естественная” арифметическая интерпретацияТогда вычисление π на θ в I выглядит так:hwhile x > 0 do x ⇐ x − 1 od, {x/1}iIhx ⇐ x − 1; while x > 0 do x ⇐ x − 1 od, {x/1}iIh∅; while x > 0 do x ⇐ x − 1 od, {x/1 − 1}iIhwhile x > 0 do x ⇐ x − 1 od, {x/1 − 1}iПояснение:Императивные программыПримерПусть: π: while x > 0 do x ⇐ x − 1 od;θ = {x/1};I — “естественная” арифметическая интерпретацияТогда вычисление π на θ в I выглядит так:hwhile x > 0 do x ⇐ x − 1 od, {x/1}iIhx ⇐ x − 1; while x > 0 do x ⇐ x − 1 od, {x/1}iIh∅; while x > 0 do x ⇐ x − 1 od, {x/1 − 1}iIhwhile x > 0 do x ⇐ x − 1 od, {x/1 − 1}iIh∅, {x/1 − 1}iПояснение:(x > 0) {x/1 − 1} = (1 − 1 > 0)I 6|= (1 − 1 > 0)Императивные программыПримерПусть: π: while x > 0 do x ⇐ x − 1 od;θ = {x/1};I — “естественная” арифметическая интерпретацияТогда вычисление π на θ в I выглядит так:hwhile x > 0 do x ⇐ x − 1 od, {x/1}iIhx ⇐ x − 1; while x > 0 do x ⇐ x − 1 od, {x/1}iIh∅; while x > 0 do x ⇐ x − 1 od, {x/1 − 1}iIhwhile x > 0 do x ⇐ x − 1 od, {x/1 − 1}iIh∅, {x/1 − 1}iПояснение:{x/1 − 1} — результат вычисленияЗадача верификации программА как определить, правильно ли работает программа?Задача верификации программА как определить, правильно ли работает программа?Неформально:Программа частично корректна, если для любых начальныхданных,удовлетворяющихзаданномупредусловиюϕ,её вычисление либо бесконечно, либо имеет результат,удовлетворяющий заданному постусловию ψЗадача верификации программА как определить, правильно ли работает программа?Неформально:Программа частично корректна, если для любых начальныхданных,удовлетворяющихзаданномупредусловиюϕ,её вычисление либо бесконечно, либо имеет результат,удовлетворяющий заданному постусловию ψПрограмма корректна, еслиIIона частично корректналюбое её вычисление на начальных данных,удовлетворяющих предусловию ϕ, конечноЗадача верификации программА как определить, правильно ли работает программа?Неформально:Программа частично корректна, если для любых начальныхданных,удовлетворяющихзаданномупредусловиюϕ,её вычисление либо бесконечно, либо имеет результат,удовлетворяющий заданному постусловию ψПрограмма корректна, еслиIIона частично корректналюбое её вычисление на начальных данных,удовлетворяющих предусловию ϕ, конечноЗадача верификации императивных программ состоит впроверке корректности или частичной корректности программыотносительно заданных предусловия и постусловияЗадача верификации программА как определить, правильно ли работает программа?Формально:Предусловие ϕ и постусловие ψ — это формулы логикипредикатов, а π — императивная программаЗадача верификации программА как определить, правильно ли работает программа?Формально:Предусловие ϕ и постусловие ψ — это формулы логикипредикатов, а π — императивная программаТребование корректности π относительно ϕ, ψ записывается ввиде триплета Хоара (или тройки Хоара):{ϕ} π {ψ}Задача верификации программА как определить, правильно ли работает программа?Формально:Предусловие ϕ и постусловие ψ — это формулы логикипредикатов, а π — императивная программаТребование корректности π относительно ϕ, ψ записывается ввиде триплета Хоара (или тройки Хоара):{ϕ} π {ψ}Триплет Хоара {ϕ} π {ψ} выполним в интерпретации I{ϕ} π {ψ}), если для любых оценок θ, η верно:если I |= ϕ и hπ, θi →∗I h∅, ηi, то I |= ψη(I |=Задача верификации программА как определить, правильно ли работает программа?Формально:Предусловие ϕ и постусловие ψ — это формулы логикипредикатов, а π — императивная программаТребование корректности π относительно ϕ, ψ записывается ввиде триплета Хоара (или тройки Хоара):{ϕ} π {ψ}Триплет Хоара {ϕ} π {ψ} выполним в интерпретации I{ϕ} π {ψ}), если для любых оценок θ, η верно:если I |= ϕ и hπ, θi →∗I h∅, ηi, то I |= ψη(I |=Программа π частично корректна в интерпретацииотносительно предусловия ϕ и постусловия ψ, еслиI |= {ϕ} π {ψ}IЗадача верификации программКак же доказать частичную корректность программы?Задача верификации программКак же доказать частичную корректность программы?Можно придумать систему правил вывода, аналогичнуюправилам табличного вывода для логики предикатовЗадача верификации программКак же доказать частичную корректность программы?Можно придумать систему правил вывода, аналогичнуюправилам табличного вывода для логики предикатовПравила такой системы1 могут иметь следующий вид:ΦΦΦΦ,,,Ψ1ϕΨ1 , Ψ2ϕ, Ψ1 , ψ(ϕ, ψ ∈ Form; Φ, Ψ1 , Ψ2 — триплеты Хоара)1Хоар, 1968Задача верификации программКак же доказать частичную корректность программы?Можно придумать систему правил вывода, аналогичнуюправилам табличного вывода для логики предикатовПравила такой системы1 могут иметь следующий вид:ΦΦΦΦ,,,Ψ1ϕΨ1 , Ψ2ϕ, Ψ1 , ψ(ϕ, ψ ∈ Form; Φ, Ψ1 , Ψ2 — триплеты Хоара)Содержательно эти правила прочитываются так:триплет Φ выполним⇔выполнимо всё, что находится под чертой в правиле1Хоар, 1968Логика ХоараВот эти правила:SKIP:{ϕ} ∅ {ϕ}trueINF:COMP:IF:WHILE:ϕ→AS:{ϕ {x/t}} x ⇐ t {ϕ}true{ϕ} π {ψ}{ψ 0 } , ψ 0 → ψϕ0 , {ϕ0 } π{ϕ} π1 ; π2 {ψ}{ϕ} π1 {χ} , {χ} π2 {ψ}{ϕ} if C then π1 else π2 fi {ψ}{ϕ&C } π1 {ψ} , {ϕ&¬C } π2 {ψ}{ϕ} while C do π od {ϕ&¬C }{ϕ&C } π {ϕ}Логика ХоараВывод триплета {ϕ} π {ψ} — это дерево следующего вида:Логика ХоараВывод триплета {ϕ} π {ψ} — это дерево следующего вида:Iвершины размечены триплетами и формуламиЛогика ХоараВывод триплета {ϕ} π {ψ} — это дерево следующего вида:IIвершины размечены триплетами и формуламикорень помечен триплетом {ϕ} π {ψ}Логика ХоараВывод триплета {ϕ} π {ψ} — это дерево следующего вида:IIIвершины размечены триплетами и формуламикорень помечен триплетом {ϕ} π {ψ}потомки вершины определяются так же, как и в дереветабличного вывода для логики предикатовЛогика ХоараВывод триплета {ϕ} π {ψ} — это дерево следующего вида:IIIIвершины размечены триплетами и формуламикорень помечен триплетом {ϕ} π {ψ}потомки вершины определяются так же, как и в дереветабличного вывода для логики предикатовлистья помечены формуламиЛогика ХоараВывод триплета {ϕ} π {ψ} — это дерево следующего вида:IIIIвершины размечены триплетами и формуламикорень помечен триплетом {ϕ} π {ψ}потомки вершины определяются так же, как и в дереветабличного вывода для логики предикатовлистья помечены формуламиУспешный вывод триплета {ϕ} π {ψ} в интерпретации I — этоконечный вывод, листья которого размечены толькоформулами, истинными в IЛогика ХоараПример: алгоритм ЭвклидаЛогика ХоараПример: алгоритм ЭвклидаРассмотрим такую программу π:while x 6= y do if x > y then x ⇐ x − y else y ⇐ y − x fi odЛогика ХоараПример: алгоритм ЭвклидаРассмотрим такую программу π:while x 6= y do if x > y then x ⇐ x − y else y ⇐ y − x fi odПусть эта программа работает в “естественной” арифметическойинтерпретации IЛогика ХоараПример: алгоритм ЭвклидаРассмотрим такую программу π:while x 6= y do if x > y then x ⇐ x − y else y ⇐ y − x fi odПусть эта программа работает в “естественной” арифметическойинтерпретации IУбедимся, что в результате работы в переменную x будетзаписан наиболее общий делитель чисел x, yЛогика ХоараПример: алгоритм ЭвклидаРассмотрим такую программу π:while x 6= y do if x > y then x ⇐ x − y else y ⇐ y − x fi odПусть эта программа работает в “естественной” арифметическойинтерпретации IУбедимся, что в результате работы в переменную x будетзаписан наиболее общий делитель чисел x, yВведём такие сокращения:Логика ХоараПример: алгоритм ЭвклидаРассмотрим такую программу π:while x 6= y do if x > y then x ⇐ x − y else y ⇐ y − x fi odПусть эта программа работает в “естественной” арифметическойинтерпретации IУбедимся, что в результате работы в переменную x будетзаписан наиболее общий делитель чисел x, yВведём такие сокращения:div (x, z): ∃u (z · u = x)Логика ХоараПример: алгоритм ЭвклидаРассмотрим такую программу π:while x 6= y do if x > y then x ⇐ x − y else y ⇐ y − x fi odПусть эта программа работает в “естественной” арифметическойинтерпретации IУбедимся, что в результате работы в переменную x будетзаписан наиболее общий делитель чисел x, yВведём такие сокращения:div (x, z): ∃u (z · u = x)gcd(x, y , z): div (x, z)&div (y , z)&∀u (div (x, u)&div (y , u) → (u ≤ z))Логика ХоараПример: алгоритм ЭвклидаРассмотрим такую программу π:while x 6= y do if x > y then x ⇐ x − y else y ⇐ y − x fi odПусть эта программа работает в “естественной” арифметическойинтерпретации IУбедимся, что в результате работы в переменную x будетзаписан наиболее общий делитель чисел x, yВведём такие сокращения:div (x, z): ∃u (z · u = x)gcd(x, y , z): div (x, z)&div (y , z)&∀u (div (x, u)&div (y , u) → (u ≤ z))ϕ(x, y , z): (x > 0)&(y > 0)&gcd(x, y , z)Логика ХоараПример: алгоритм ЭвклидаРассмотрим такую программу π:while x 6= y do if x > y then x ⇐ x − y else y ⇐ y − x fi odПусть эта программа работает в “естественной” арифметическойинтерпретации IУбедимся, что в результате работы в переменную x будетзаписан наиболее общий делитель чисел x, yВведём такие сокращения:div (x, z): ∃u (z · u = x)gcd(x, y , z): div (x, z)&div (y , z)&∀u (div (x, u)&div (y , u) → (u ≤ z))ϕ(x, y , z): (x > 0)&(y > 0)&gcd(x, y , z)ψ(x, z): x = zЛогика ХоараПример: алгоритм ЭвклидаРассмотрим такую программу π:while x 6= y do if x > y then x ⇐ x − y else y ⇐ y − x fi odПусть эта программа работает в “естественной” арифметическойинтерпретации IУбедимся, что в результате работы в переменную x будетзаписан наиболее общий делитель чисел x, yВведём такие сокращения:div (x, z): ∃u (z · u = x)gcd(x, y , z): div (x, z)&div (y , z)&∀u (div (x, u)&div (y , u) → (u ≤ z))ϕ(x, y , z): (x > 0)&(y > 0)&gcd(x, y , z)ψ(x, z): x = zПроверим соотношение I |= {ϕ(x, y , z)} π {ψ(x, z)}, построивуспешный вывод последнего триплетаЛогика Хоараπ: while x 6= y do if x > y then x ⇐ x − y else y ⇐ y − x fi od{ϕ(x, y , z)} π {ψ(x, z)}Логика Хоараπ: while x 6= y do if x > y then x ⇐ x − y else y ⇐ y − x fi od{ϕ(x, y , z)} π {ψ(x, z)}ϕ(x, y , z) → ϕ(x, y , z)ϕ(x, y , z)&¬(x 6= y ) → (x = z){ϕ(x, y , z)} π {ϕ(x, y , z)&¬(x 6= y )}Логика Хоараπ: while x 6= y do if x > y then x ⇐ x − y else y ⇐ y − x fi od{ϕ(x, y , z)} π {ψ(x, z)}ϕ(x, y , z) → ϕ(x, y , z)ϕ(x, y , z)&¬(x 6= y ) → (x = z){ϕ(x, y , z)} π {ϕ(x, y , z)&¬(x 6= y )}{ϕ(x, y , z)&(x 6= y )} if x > y then x ⇐ x − y else y ⇐ y − x fi {ϕ(x, y , z)}Логика Хоараπ: while x 6= y do if x > y then x ⇐ x − y else y ⇐ y − x fi od{ϕ(x, y , z)} π {ψ(x, z)}ϕ(x, y , z) → ϕ(x, y , z)ϕ(x, y , z)&¬(x 6= y ) → (x = z){ϕ(x, y , z)} π {ϕ(x, y , z)&¬(x 6= y )}{ϕ(x, y , z)&(x 6= y )} if x > y then x ⇐ x − y else y ⇐ y − x fi {ϕ(x, y , z)}{ϕ(x, y , z)&(x 6= y )&(x > y )} x ⇐ x − y {ϕ(x, y , z)}(∗){ϕ(x, y , z)&(x 6= y )&¬(x > y )} y ⇐ y − x {ϕ(x, y , z)}(∗∗)Логика Хоара(∗){ϕ(x, y , z)&(x 6= y )&(x > y )} x ⇐ x − y {ϕ(x, y , z)}Логика Хоара(∗){ϕ(x, y , z)&(x 6= y )&(x > y )} x ⇐ x − y {ϕ(x, y , z)}ϕ(x, y , z) → ϕ(x, y , z)ϕ(x, y , z)&(x 6= y )&(x > y ) → ϕ(x − y , y , z){ϕ(x − y , y , z)} x ⇐ x − y {ϕ(x, y , z)}Логика Хоара(∗){ϕ(x, y , z)&(x 6= y )&(x > y )} x ⇐ x − y {ϕ(x, y , z)}ϕ(x, y , z) → ϕ(x, y , z)ϕ(x, y , z)&(x 6= y )&(x > y ) → ϕ(x − y , y , z){ϕ(x − y , y , z)} x ⇐ x − y {ϕ(x, y , z)}trueЛогика Хоара(∗∗){ϕ(x, y , z)&(x 6= y )&¬(x > y )} y ⇐ y − x {ϕ(x, y , z)}Логика Хоара(∗∗){ϕ(x, y , z)&(x 6= y )&¬(x > y )} y ⇐ y − x {ϕ(x, y , z)}ϕ(x, y , z) → ϕ(x, y , z)ϕ(x, y , z)&(x 6= y )&¬(x > y ) → ϕ(x, y − x, z){ϕ(x, y − x, z)} y ⇐ y − x {ϕ(x, y , z)}Логика Хоара(∗∗){ϕ(x, y , z)&(x 6= y )&¬(x > y )} y ⇐ y − x {ϕ(x, y , z)}ϕ(x, y , z) → ϕ(x, y , z)ϕ(x, y , z)&(x 6= y )&¬(x > y ) → ϕ(x, y − x, z){ϕ(x, y − x, z)} y ⇐ y − x {ϕ(x, y , z)}trueЛогика Хоара(∗∗){ϕ(x, y , z)&(x 6= y )&¬(x > y )} y ⇐ y − x {ϕ(x, y , z)}ϕ(x, y , z) → ϕ(x, y , z)ϕ(x, y , z)&(x 6= y )&¬(x > y ) → ϕ(x, y − x, z){ϕ(x, y − x, z)} y ⇐ y − x {ϕ(x, y , z)}trueВсе формулы в листьях построенного дерева истинны ввыбранной интерпретации IЛогика ХоараТеорема корректностиДля любой интерпретации I и любого правила выводалогики ХоараΦΦΦΦ,,,Ψ1ϕΨ1 , Ψ2ϕ, Ψ1 , ψесли I |= Ψ1 , I |= Ψ2 , I |= ϕ, I |= ψ, то I |= ΦЛогика ХоараТеорема корректностиДля любой интерпретации I и любого правила выводалогики ХоараΦΦΦΦ,,,Ψ1ϕΨ1 , Ψ2ϕ, Ψ1 , ψесли I |= Ψ1 , I |= Ψ2 , I |= ϕ, I |= ψ, то I |= ΦДоказательство.Очевидно (по определению)Логика ХоараТеорема корректностиДля любой интерпретации I и любого правила выводалогики ХоараΦΦΦΦ,,,Ψ1ϕΨ1 , Ψ2ϕ, Ψ1 , ψесли I |= Ψ1 , I |= Ψ2 , I |= ϕ, I |= ψ, то I |= ΦДоказательство.Очевидно (по определению)СледствиеЕсли существует успешный вывод триплета {ϕ} π {ψ} винтерпретации I, то программа π частично корректна вI относительно предусловия ϕ и постусловия ψЛогика ХоараТеорема корректностиДля любой интерпретации I и любого правила выводалогики ХоараΦΦΦΦ,,,Ψ1ϕΨ1 , Ψ2ϕ, Ψ1 , ψесли I |= Ψ1 , I |= Ψ2 , I |= ϕ, I |= ψ, то I |= ΦДоказательство.Очевидно (по определению)СледствиеЕсли существует успешный вывод триплета {ϕ} π {ψ} винтерпретации I, то программа π частично корректна вI относительно предусловия ϕ и постусловия ψТаким образом, построив успешный табличный вывод впоследнем примере, мы доказали частичную корректностьреализации алгоритма ЭвклидаАвтоматическая проверкаправильности программА полна ли система правил логики Хоара, и можно ли с еёпомощью автоматически проверять корректность императивныхпрограмм?Автоматическая проверкаправильности программА полна ли система правил логики Хоара, и можно ли с еёпомощью автоматически проверять корректность императивныхпрограмм?Нет, и проблема возникает не однаАвтоматическая проверкаправильности программА полна ли система правил логики Хоара, и можно ли с еёпомощью автоматически проверять корректность императивныхпрограмм?Нет, и проблема возникает не однаI.

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5258
Авторов
на СтудИзбе
420
Средний доход
с одного платного файла
Обучение Подробнее