Антирерайт онлайн — проверка уникальности смысла текста. Оценка качества рерайта. Текстовод

{{ info }}

Полный дубль. Такой текст уже написали! =10&&antirewrite[‘uniqueText’]Неудовлетворительно. Текст требует переработки. =30&&antirewrite[‘uniqueText’]Удовлетворительно. Текст желательно доработать. =60&&antirewrite[‘uniqueText’]Хорошо. Подойдет для большинства текстов. =80″>Отлично. Текст уникальный.

Символов всего: {{ сharactersFull }} PRO версия:

{{ sentence[‘sentence’] }}{{ sentence[‘sentence’] }} 

  • {{ error }}

{{ index+1 }}. {{ r[‘info’][‘text’] }}

{{ 100-r[‘unique’] }}% {{ r[‘info’][‘domain’] }}

{{ infoService }}

Проверка уникальности текста Синонимайзер (подбор синонимов) Авторерайт Озаглавить текст Заказать текст Расставить запятые Проверка орфографии Проверка уникальности текста Синтаксический разбор Фонетический разбор слова Выполнить разбор слова по составу Подобрать однокоренные слова Поставить ударение в слове Определить основную мысль

Сервис Текстовод Антирерайт позволяет проверить текст на уникальность смысла. В отличие от классического антиплагиата, сервис определяет переписанные выражения другими словами с сохранением смысла (рерайт). Сервис в первую очередь проверяет смысловое содержание текста, а не оценку уникальности по использованию слов, их расположению или словоформ.

Как пользоваться сервисом

  1. Вставьте исходный текст в поле и нажмите Выполнить. В зависимости от очереди и объема текста, подождите результат. Гости за один раз могут сделать проверку 300 символов, пользователи — 400 символов, при использовании PRO версии — 100000 символов за одну операцию. PRO версия позволяет делать антирерайт больших текстов, имея приоритет в очереди.
  2. Щелкайте по выделенным предложениям для получения более подробной информации по источникам: примеров фраз, % схожести, ссылок на источники.

Особенности Антирерайта:

  1. В качестве источников находит фразы, заимствованные на других языках.
  2. Оценка идет по предложениям и абзацам, поэтому оформляйте правильно разрывы предложений и абзацев для точного отображения результата.
  3. Особое внимание уделяйте красным и желтым участкам.

Результаты хранятся в истории 7 дней

Проверка уникальности контента и рерайт. Методы прогнозирования посещаемости сайта

О важности уникального контента

Здравствуйте, меня зовут Скворцов Вадим, я представляю компанию Netpeak, и сегодня я хотел бы вам рассказать о важности уникального контента, его создании, проверке и защите.

Почему важно знать детали создания и защиты уникального контента? Потому что это позволит защитить ваш сайт от санкций поисковых систем по причине наличия неуникального контента. Если поисковая система определит текстовое содержание вашего сайта как неуникальное и применит свои санкции, то о конкурентной борьбе за потенциальных клиентов в Интернете можно будет забыть до тех пор, пока вы не добьетесь снятия санкций. Разбирательство может занять много времени и сил, а за это время вы упустите немало возможностей, которые предоставляет интернет-маркетинг. Поэтому лучше приложить максимум усилий для предотвращения подобных проблем.

Текстовый контент (содержание) сайта — важнейший инструмент его SEO-оптимизации и раскрутки. Если вы хотите на равных конкурировать в виртуальной сети, то будет недостаточно просто предоставить основную информацию о своей компании, и не заниматься написанием информативных статей.

Современные поисковые системы, к сожалению, далеки от совершенства, поэтому не могут анализировать юзабилити сайта или его дизайн для определения его качества. Другое дело — текстовая составляющая ресурса, с которой даже поисковые роботы могут работать на удовлетворительном уровне распознания и разделения качественного и уникального контента от заимствованного или несоответствующего основным требованиям современного пользователя.

Обращаясь к исследованиям поисковой системы Яндекс, мы можем сразу определить, что качество контента является одним из важнейших показателей ранжирования, иначе подробные исследования в этой области попросту не проводились бы. Итак, по исследованиям специалистов Яндекса, можно выделить следующие интересные факты, касающиеся непосредственно текстового контента:

  • В текстовом формате (без учета дублей) в Рунете размещено более 140 тысяч Гб данных, а с учетом дублей — более 200 тысяч Гб. Следовательно, около 60 тысяч Гб (или приблизительно 33.3%) контента является неуникальным.
  • Информация в сети распределена неравномерно. 88% всего текста находится менее чем на одном проценте сайтов. Впрочем, мы знаем, что в мире многое распределено неравномерно, ведь даже 90% всех денег в мире принадлежит всего лишь 1% людей.
  • Если все слова Рунета записать на бумаге, получится куб высотой с девятиэтажный дом.
  • 89% всех сайтов содержат совсем немного текста — в среднем по 1630 слов, как полторы журнальных страницы. На один большой сайт (таких менее 1%) приходится в среднем 18 миллионов слов — объем текста небольшой домашней библиотеки из 250-300 книг.
  • Орфографических ошибок и опечаток в текстах, размещенных в Интернете, не так много. Даже для тех слов, в которых часто делают ошибки (например, педиатр, агентство, геморрой), средняя доля ошибок не превышает 5-6%. Впрочем, бывает и так, что количество ошибок в одном лишь слове поражает своим количеством.
    Например, по исследованиям опять же Яндекса, зафиксировано около 1 200 ошибок и опечаток в запросе «одноклассники».

Это лишь часть данных исследования Яндекса, но и из них нас интересует, в основном, лишь первый пункт — отношение доли уникального контента к неуникальному. Напомню, что оно составляет приблизительно 67 к 33 процентам в пользу уникального содержания сайтов. Казалось бы, все не так плохо — ведь все еще уникальный контент преобладает. Тем не менее, 60 тысяч Гб информации представляют собой дубликаты уже размещенной информации.

Способы получения уникального контента
  1. Самый очевидный способ получения уникального контента — написание его журналистами (копирайтерами).
  2. Сканирование книг, журналов, газет. Существенные минусы — возможны претензии авторов, либо контент уже есть в сети.
  3. Рерайт контента. Переписывание статьи своими слова, делая их уникальными для ПС и для пользователей.

Рассмотрим понятие рерайта подробнее.

Обычно под термином «рерайтинг» подразумевают работу с текстом, точнее — его литературную обработку с сохранением исходного смысла повествования. «Рерайт» же конечный результат этой работы, т.е. полностью переписанный и уникальный текст.

Несмотря на то, что рерайтинг считается более дешевой и менее творческой работой, чем его собрат — копирайтинг (то есть написание уникальных, авторских текстов), здесь тоже есть правила, которые нужно неукоснительно исполнять.

Следует сделать небольшое отступление и сказать о причинах, по которым рерайт выбирается как метод создания уникального контента. Все дело в разнообразии тематик и невозможности написания одним человеком статей на любую тему.

Если ваш интернет-ресурс предназначен для рекламы и продажи специфического оборудования (например, техники для лесозаготовки), то статьи в информационном разделе не обязательно будут написаны профессионалом в деле лесозаготовки.

Профессиональный копирайтер при написании подобного текста скорее всего воспользуется рерайтом специализированных статей на данную тематику. Но это не означает, что в тексте лишь некоторые слова будут заменены синонимами или переставлены местами.

Как уже упоминалось, процедура рерайтинга имеет немало законов и правил, отступление от которых чревата нарушением логики в подаче материала или полную утраты смысла.

Главное правило рерайта: сначала определяются имеющиеся в тексте факты, фиксируется стиль и тип повествования, и уже на их основе создается статья.

Рассмотрим пример:

Пример рерайта

Здесь мы будем использовать прием трансформации прямой речи в косвенную — один из наиболее распространенных приемов в рерайте:

Оригинальный текст: «Я не могу, когда в доме нет мужчины, — говорила Эдит Пиаф. — Это хуже, чем день без солнечного света. Без него, в конце концов, можно обойтись — есть электричество. Но дом, в котором не висит где-нибудь мужская рубашка или галстук. .. просто убивает!»

Правильный рерайт: «Великая певица Эдит Пиаф утверждала, что отсутствие мужчины в доме переносить тяжелее, чем день без единого лучика солнца. Ведь солнце можно заменить электричеством. А в доме, где нет ни галстука, ни рубашки любимого мужчины — не хочется жить»

Неправильный рерайт: «Если в жилище нет мужчины, то это наводит грусть и сравнимо лишь с отсутствием дневного света. Так говорила актриса Эдит Пиаф о своем муже. Ведь свет можно заменить! Невозможно жить в доме, где нет мужских вещей»

Проанализируем ошибки во втором варианте рерайта, который является не совсем верным.

  1. Отсутствие в доме мужчины сравнивается с отсутствием света, хотя в оригинальном сообщении было сказано: отсутствие мужчины хуже дня без света.
  2. В неправильном тексте говорится про то, что можно заменить свет. Эдит Пиаф уточняла: солнце заменимо электричеством.
  3. Эдит Пиаф не была актрисой, и это — фактическая ошибка.
  4. И кто сказал, что она так говорила о своем муже?

Здесь мы видим две фактически и две более тонкие ошибки, которые часто допускаются при написании рерайта неопытными копирайтерами.

Делаем качественный рерайт: Советы и хитрости

Далее, постараемся рассмотреть процесс написания рерайта более системно и выделим основные этапы работы с ним.

Первая задача — выбрать исходный текст

Тут важны следующие вещи.

  1. Объем. Размер исходного текста должен примерно соответствовать размеру того текста, который должен получиться.
  1. Соответствие заявленной теме. Очень часто рерайтеры пытаются впарить заказчику статьи, которые притянуты к заказанным темам «за уши». Это происходит не из-за того, что рерайт плохой, а из-за того, что неправильно выбран исходный материал. Не жалейте времени — не так много его уйдет на то, чтобы вникнуть в тему, на которую Вы собрались писать. Обратите внимание, самые успешные рерайтеры, в основном, специализируются на весьма ограниченном круге «любимых» тем. Поверьте, это не потому, что они не могут писать на другие. Это потому, что они борются за качество рерайта. Согласитесь, не хочется получать плохие отзывы за неплохие, в общем-то, материалы.
  1. Разберитесь в терминологии. Этот пункт прямо вытекает из предыдущего. Прежде, чем писать на новую тему — въезжайте в неё, разбирайтесь в терминах. Уясните, что холодильная ванна — это «боннета», а не «боннет» или «бонетт», что мощность двигателя измеряют в лошадиных силах, а электрическую мощность — в джоулях. Это поможет избежать совсем уж глупых ошибок, которые могут сгубить всю вашу работу.
  1. Сформулируйте основные вопросы, на которые должна ответить ваша статья. Исходная должна отвечать на все эти вопросы. Логично?

Вторая задача — перетасовать исходный текст

Суть рерайта в том, что результирующий текст не похож на оригинал! Соответственно, давайте для начала хотя бы перекрутим то, из чего мы будем делать свой шедевр.

Самое простое, что можно сделать. Безжалостно отрубаем вступление и развязку! Теперь делим исходный текст на смысловые абзацы и меняем их местами. Также как карты тасуют. До хаотичности. Да, кстати. Рекомендуется исходник сохранить отдельно, на случай, если вы всё-таки запутаетесь в собственном тексте или из него куда-нибудь смоются смысл и логика.

Теперь, приступаем к рерайту. Рерайтить будем те самые смысловые абзацы. Да-да, каждый из них сейчас для вас должен стать отдельным текстом. Со своей логикой, не противоречащей общей. Думаю, несколько строк текста каждый сможет пересказать своими словами.

  • Используйте синонимы.
  • Меняйте конструкции предложений.
  • Разбейте длинные предложения на несколько.
  • Укрупните или объедините короткие.
  • Можно и порядок предложений поменять.

Комбинируйте методы. Не забывайте о том, что превращение фразы «Хлеб — всему голова» во фразу «Булка — всему башня!» — это, как бы помягче сказать-то. .. не совсем рерайт. Точно также, как не совсем рерайт переработка фразы «Ночь. Улица. Фонарь. Аптека» во фразу «Ночь, улица и фонарь с аптекой». Они, как говорится в законе о защите прав потребителя «похожи до степени смешения».

Заменяя слова синонимами, не потеряйте смысл. «Варочная поверхность» и «электроплита» — не всегда тождественны, а то, что все кильки являются рыбами — совсем не значит, что все рыбы — кильки. Кроме того, будет обидно вовсе потерять все умные слова. Да, и «пластиковые окна» на «пластиковые окошки» менять, как минимум, не оригинально.

Третья задача. Введение и развязка

Помните, в предыдущем пункте мы с вами безжалостно отрубили несчастному исходнику начало и конец? Чем же он будет думать? Для лучшего рерайта эти две вещи — введение и послесловие пишем заново. Сами. Когда все будет готово, на всякий случай, проверяем — не получилось ли между вашими мыслями и мыслями авторов исходника опасной близости. Если одно мучительно похоже на другое — переписываем! Теперь у нашего рерайта появилось хоть что-то уникальное.

Что же такое «дубликат» и откуда он появляется в сети?

Несмотря на то, что существует такой прекрасный метод создания уникального контента, как рерайтинг (не говоря уже о создании уникального контента с нуля), в сети интернет все еще присутствует огромное количество дубликатов, нарушающих законные права их создателей на размещение исключительно на своих ресурсах.

Дубликаты разделяют на полные и нечеткие.

Полные дубликаты — это документы (часть контента сайта или весь контент целиком), которые поисковые системы считают уникальными, но каждый пользователь может легко заметить их совпадение.

Нечеткие дубликаты имеют незначительные отличия даже для визуального восприятия пользователя в виде перестановки блоков навигации, новостей или других элементов сайта.

Существует немало подходов к дублированию информации, а, следовательно, можно дифференцировать несколько источников дубликатов контента.

Создание зеркал

Преобразование документа

Редактирование документа

Спамерские рассылки

Смена заголовка и подписи документа (header, footer)

Смена формата документа (DOC, PDF, HTML)

Вставка и удаление абзацев, усечение текста

Вставка случайных наборов символов, значащих слов в случайных позициях

Расположение и наполнение навигационных элементов

Различные версии и копии документа

Перестановка предложений и абзацев местами

Произвольная вставка и удаление пробелов

Различные html-адреса к одному документу

Шаблонные тексты (лицензионные соглашения)

Изменение и форматирование текста, ошибки оператора

Замена символов одной раскладки на символы другой, имеющие аналогичное написание

Как видим, методов создания дублей весьма немало.

Для того, чтобы бороться с дубликатами, нужно сначала научиться определять их, отличать от уникального контента в сети.

Существует немало синтаксических и лексических методов определения дубликатов в сети, на которых основаны современные программы по вычислению копий исходного документа или страницы в Интернете.

Рассмотрим наиболее популярные из них.

Программные методы

1. Advego Plagiatus

Advego Plagiatus — программа поиска в интернете частичных или полных копий текстового документа с интуитивным интерфейсом. Плагиатус показывает степень уникальности текста, источники текста, процент совпадения текста.

Этим сервисом пользуются, наверное, все копирайтеры которые пишут тексты на заказ. Это не сервис, а программа, чем еще даже удобнее. Эта программа пока бесплатная, чем и привлекает огромное количество пользователей.

Есть некоторые нюансы, например если текст хорошо оптимизирован под определенные ключевые слова, то понятное дело что они будут повторяться и добиться уникальности в 100% практически нельзя. Нормальный уникальный текст это от 85-95%.

2. Антиплагиат

Проверить текст достаточно просто, нужно вставить текст в окошко сервиса и нажать «Проверить». В сервисе имеется история проверок. Без регистрации разрешается проверять тексты не более 5000 символов. Есть мнения в Интернете, что база сайтов для проверки у Антиплагиата маловата, и не всегда он может вычислить скопированный текст, поиск неточный. Бывает, что текст, который Антиплагиат определяет, как уникальный, при проверке другими сервисами находится на каком-нибудь сайте.

3. Copyscape

Простенький онлайн-сервис (проверяет только тексты в сети), показывающий копии ваших документов во всемирной паутине WWW. Разрабатывался для европейских пользователей, но вполне успешно пользуется популярностью и в Рунете. Неудобством является предварительная публикация статьи на сайте для проверки, поэтому заказчикам статей у копирайтеров данный сервис может быть не интересен. В адресную строку вводите адрес статьи, а сервис выведет список похожих страниц в сети.

4. Поисковики

Ключевую фразу текста в кавычках вводим в поисковик для точного поиска. Точная цитата (кавычки) поддерживаются почти всеми поисковиками. Далее смотрим, нет ли совпадений на других сайтах. Проделать эту процедуру нужно несколько раз, выбрав разные цитаты текста из статьи, при этом свои запросы следует ограничивать 3-6 словами и 90 символами. Также из текста стоит убрать все разделители (кроме запятой и точки), поисковиками они не учитываются.

Самое простое — вставить небольшие отрывки из проверяемой статьи последовательно в поисковики. Этот способ самый простой, но самый долгий и нудный. Недостаток у него один — максимальный фрагмент текста для поиска небольшой, 160-255 знаков с пробелами.

5.Allsubmitter

Удобная программа, использующая алгоритм проверки с помощью фрагментов текста по точным вхождениям в строке поисковых систем (предыдущий метод).

Кроме того, может использовать базу приложения Copyscape для проверки дубликатов.

Чрезвычайно удобна автономностью своей работы (достаточно лишь ввести ссылку на сайт, уникальность контента, на котором необходимо проверить), а также гибкими настройками.

Контент можно проверять как в форме текста, так и уже выложенный на веб-страницах.

Как защитить свой контент?

Защита контента — непростая задача, которая требует разумного подхода вебмастера к развитию своего сайта. Несмотря на то, что поисковые системы призваны помогать каждому сайту в его развитии, в ситуации с тотально распространенным копированием информации они могут сыграть злую шутку с авторами уникального контента.

В первую очередь, здесь следует упомянуть трастовость сайтов для поисковых систем. Например, крупные новостные порталы постоянно размещают контент, который в последствии копируется на множество сайтов по всей сети Интернет. Почему же эти крупные новостные сайты не теряют трастовость в поисковых системах?

Все дело в ссылках. Если любой вебмастер менее трастового ресурса поставит ссылку на крупный новостной ресурс после размещения его контента, то это послужит лучшей защитой от копирования в восприятии поисковой системы.

Безусловно, не каждый вебмастер окажется порядочным человеком, который ценит авторские права новостного ресурса, с которого он взял контент.

Как быть в этом случае? Решение лежит на поверхности — необходимо размещать тот же контент на менее трастовых сайтах со ссылкой на оригинал, источник. Чем больше таких ссылок получит источник, тем меньше поисковая система будет сомневаться в его авторском праве на данный контент.

Платное размещение статей на различных ресурсах сегодня не является проблемой для любого вебмастера, поэтому такое решение является оптимальным для многих крупных новостных ресурсов, пример которых мы рассмотрели.

Кроме того что, при такой системе владельцы крупных новостных порталов могут быть уверены, что их репутация не пострадает за счет более мелких и менее добросовестных ресурсов, владельцы менее трастовых ресурсов имеют возможность заработать на платном размещении статей со ссылкой на первоисточник контента.

Существуют и другие методы предотвращения воровства контента вашего сайта, которые можно отнести к программным. Программные методы подразумевают защиту контента от копирования на уровне скрипта сайта, в котором прописываются специальные команды или в который добавляются некоторые плагины. Например, для блогов системы WordPress существует плагин WP-CopyProtect, который попросту запрещает выделение текста на странице, а так же не дает использовать клики правой кнопкой мыши.

Но минус такого подхода состоит в том, что многие пользователи захотят скопировать ваш контент без всякого злого умысла, например, для прочтения в печатном варианте — и в этом случае их ждет разочарование.

Кроме того, современная судебная система Украины предполагает защиту авторских прав пользователей веб-ресурсов. Но и здесь есть существенные минусы:

Во-первых, законодательство Украины не будет рассматривать дело в том случае, если владелец сайта, который продублировал ваш контент, будет зарегистрирован на сервере другой страны.

Во-вторых, судебный процесс может сильно затянуться и отобрать огромное количество средств, в частности направленных на сбор доказательств и наем адвокатов.

В случае, если вы видите обращение к «букве закона» единственно правильным решением, советую обратиться напрямую к владельцу сайта, продублировавшего ваш контент с претензией, в случае невыполнения которой обращаться к его хостеру.

Но так или иначе, размещение контента на менее трастовых сайтах со ссылкой на себя дает самый адекватный результат и лучшие гарантии от санкций от поисковых систем. При этом вам не нужно производить эксперименты на своих посетителях, запрещая им копировать контент.

Суммируя все вышесказанное, хотелось бы напомнить, что работа с контентом вашего сайта — это не только его написание самостоятельно, заказ у профессиональных копирайтеров или качественный рерайт, но и постоянный контроль и защита его от дублирования другими сайтами.

Другими словами, если вы создали новый сайт, который будет представлять вашу компанию в Интернете, то для его конкурентоспособности необходимо постоянно следить за уникальностью контента, обновлять его, а также предпринимать активные меры по продвижению — иначе ваш сайт рискует остаться незамеченным вашими потенциальными клиентами, попав под санкции поисковых систем.


Тестирование шаблонов правил перезаписи | Microsoft Узнайте

Редактировать

Твиттер LinkedIn Фейсбук Электронная почта

  • Статья
  • 2 минуты на чтение

Руслан Якушев

Пользовательский интерфейс модуля перезаписи URL-адресов для IIS 7 и более поздних версий включает инструмент, который можно использовать для проверки шаблонов регулярных выражений и подстановочных знаков, используемых в правилах и условиях перезаписи. С помощью этого инструмента вы сможете очень быстро проверить правильность узора; вы можете проверить, как шаблон применяется к различным входным строкам и какие значения хранятся в обратных ссылках. Кроме того, этот инструмент можно использовать в качестве первого шага при устранении неполадок в правилах перезаписи, проверяя, правильно ли проблемный URL-адрес соответствует шаблонам правил. В этой статье объясняется, как использовать инструмент «Тестовый шаблон».

Запуск диалогового окна «Тестовый шаблон»

Инструмент «Тестовый шаблон» можно использовать для тестирования шаблона правил и шаблонов условий. Чтобы протестировать шаблоны правил, откройте пользовательский интерфейс модуля перезаписи URL, выберите правило в списке правил и нажмите «Изменить…»:

Затем нажмите кнопку «Проверить шаблон…» на странице «Редактировать правило». :

Чтобы протестировать шаблон условия, выберите условие в представлении списка условий и нажмите « Изменить… ». В диалоговом окне «Редактировать условие» нажмите « Тестовый шаблон… Кнопка «:

Использование инструмента «Тестовый шаблон»

В диалоговом окне «Тестовый шаблон» введите строку, которую вы хотите сопоставить с шаблоном. Нажмите кнопку «Тест»:

Будут отображены результаты сопоставления с шаблоном и список обратных ссылок на правило Аналогично, если вы используете инструмент «Проверка шаблона» для тестирования шаблонов, используемых в условиях, в результатах будет показан список обратных ссылок на условие :

Обратите внимание, что вы можете вносить изменения в шаблон, находясь в диалоговом окне «Тестовый шаблон». Если вы внесли какие-либо изменения в шаблон, при нажатии на кнопку «Закрыть» вы можете выбрать, сохранить или проигнорировать изменения в шаблоне.

Сводка

Инструмент «Проверка шаблона» предоставляет простой способ тестирования регулярных выражений и шаблонов подстановочных знаков, используемых в правилах и условиях перезаписи. Инструмент можно использовать для тестирования и корректировки шаблонов, а также для устранения неполадок правил перезаписи с неправильными шаблонами.

Перезапись — документация Agda 2.6.2.2

Правила перезаписи позволяют расширить отношения оценки Agda новыми правила расчета.

Примечание

Эта страница посвящена опции --rewriting и связанный REWRITE встроенный. Вы, возможно вместо этого ищите документацию по конструкции перезаписи.

Переписать правила на примере

Для включения перезаписи правил необходимо запустить Agda с флагом --переписать и импортировать модули Agda.Builtin.Equality и Agda.Builtin.Equality.Rewrite :

 {-# ОПЦИИ --rewriting #-}
модуль language.rewriting где
открытый импорт Agda.Builtin.Equality
открыть импорт Agda.Builtin.Equality.Rewrite
 

Сопоставление перекрывающихся шаблонов

Для начала давайте рассмотрим пример, в котором правила перезаписи могут решить проблема, с которой сталкивается почти каждый новичок в Agda. Этот проблема обычно всплывает как вопрос почему 0 + m вычисляет до m , но m + 0 нет (и аналогично, (suc m) + n вычисляет к suc (m + n) , а m + (suc n) нет). Эта проблема проявляется, например, при попытке доказать коммутативность _+_ :

 +comm : m + n ≡ n + m
+comm {m = ноль} = refl
+comm {m = suc m} = cong suc (+comm {m = m})
 

Здесь Agda жалуется, что n != n + ноль типа Nat . Обычный способ решить эту задачу, доказав уравнения м + 0 ≡ м и m + (suc n) ≡ suc (m + n) и с использованием явного переписывания утверждение в основном доказательстве (примечание: ключевое слово Agda rewrite не должно путать с правилами перезаписи, которые добавляются командой REWRITE pragma.)

Используя правила перезаписи, мы можем смоделировать решение из нашего бумага. Во-первых, нам нужно доказать, что нужные нам уравнения выполняются как пропозициональные равенства:

 + ноль : m + ноль ≡ m
+ ноль {м = ноль} = refl
+ ноль {m = suc m} = cong suc + ноль
+ suc : m + (suc n) ≡ suc (m + n)
+suc {m = ноль} = refl
+suc {m = suc m} = cong suc +suc
 

Затем мы помечаем равенства как правила перезаписи с помощью прагмы REWRITE :

 {-# REWRITE +zero +suc #-}
 

Теперь доказательство коммутативности работает точно так же, как мы писали ранее:

 +comm : m + n ≡ n + m
+comm {m = ноль} = refl
+comm {m = suc m} = cong suc (+comm {m = m})
 

Обратите внимание, что это доказательство невозможно пройти без правила перезаписи: важно, чтобы _+_ вычисляли оба при первом и его второй аргумент, но нет способа определить _+_ в таком способом, используя обычное сопоставление с образцом Agda.

Дополнительные примеры

Дополнительные примеры использования правил перезаписи можно найти в сообщение в блоге Джеспера Кокса.

Общая форма правил перезаписи

В общем, доказательство равенства eq может быть зарегистрировано как переписывание правило, используя прагму {-# REWRITE eq #-} , при условии следующего требования выполнены:

  • Тип eq имеет вид экв : (x₁ : A₁) ... (xₖ : Aₖ) → f p₁ ... pₙ ≡ v
  • f — это постулат, определенный функциональный символ или конструктор. применяется к полностью общим параметрам (т.е. параметры должны быть отдельные переменные)
  • Каждая переменная x₁ , …, xₖ встречается хотя бы один раз в шаблоне позиция в p₁ ... pₙ (см. ниже определение шаблона должности)
  • Левая сторона f p₁ ... pₙ должна быть нейтральной, т.е. не уменьшить.

Поддерживаются следующие шаблоны:

  • x y₁ . .. yₙ , где x — переменная шаблона, а y₁ , …, yₙ — это отдельные переменные, локально связанные в шаблоне
  • f p₁ ... pₙ , где f — постулат, определенная функция, конструктор или тип данных/записи, а p₁ , …, pₙ являются снова выкройки
  • λ x → p , где p это снова шаблон
  • (x : P) → Q , где P и Q снова являются образцами
  • y p₁ ... pₙ , где y — переменная, связанная локально в шаблон и p₁ , …, pₙ снова являются шаблонами
  • Set p или Prop p , где p это снова шаблон
  • Любой другой терм v (здесь переменные в v не учитываются быть в положении шаблона)

После добавления правила перезаписи Agda автоматически перезаписывает все экземпляры левой части к соответствующему экземпляру правая сторона при сокращении. Точнее, термин (определенно равно) f p₁σ ... pₙσ переписывается в , где σ — любая замена переменных шаблона x₁ , … хₖ .

Поскольку перезапись происходит после обычной редукции, правила перезаписи применяется к терминам, которые в противном случае были бы нейтральными.

Проверка слияния

Agda может дополнительно проверять слияние правил перезаписи, включив --confluence-check флаг . Конкретно, он делает это, применяя два свойства:

  1. Для любых двух перекрывающихся левых частей правил перезаписи (либо в корневом положении, либо в подтермине), самый общий объединитель двух левых частей снова является левой частью переписать правило. Например, если есть два правила suc m + n = сук (м + п) и m + suc n = suc (m + n) , то должно также правило suc m + suc n = suc (suc (m + n)) .
  2. Каждое правило перезаписи должно удовлетворять свойству треугольника : Для любого правило перезаписи u = w и любое одношаговое параллельное разворачивание u => v , у нас должна получиться еще одна одношаговая параллельная развертка v => ш .