LLLit: Изучение и практика программирования

Структурирование кода Coq

У меня обычная установка: сначала я определяю какие-то типы, потом какие-то функции из этих типов. Однако, поскольку есть много способов формализовать то, что я делаю, я сделаю это в 3-х вариантах. Для простоты (и для обзора) я хочу, чтобы мой код был в одном файле. Я также хочу свести к минимуму повторяющийся код. С этой целью установка с 3 Modules для конкретных вещей и общими определениями перед ними может работать, но не в ситуации, описанной ниже:

  1. Общий Definition функции f: A -> B, доступный во всех разделах (или модулях)

  2. Специфические для модуля (или раздела) определения A

  3. f должен быть вычислим во всех разделах (или модулях)

Какую установку вы рекомендуете мне использовать?


  • Вы ознакомились с учебником по использованию модулей? 01.05.2017
  • Спасибо, сейчас посмотрел. Похоже, что Module Type может содержать только Axiom и Parameter. Поскольку у f должно быть тело (я определил его с Definition), я не мог поместить его в Module Type. ATM Не знаю, как удовлетворить пункты 1-2 в моем вопросе (еще даже серьезно не рассматривал 3) 01.05.2017

Ответы:


1
  • PS. Вы можете (удобнее) начать вычисление f на nat уже в FTheory -- просто вставьте туда Variable na:> nat -> A. Compute f 3 4. после Import AM. 11.05.2017
  • Идея здесь заключалась в том, чтобы показать, как выделить общие свойства, такие как принадлежность к группе, разрешимость, упорядоченность и т. д., и создать о них общие теории. Позже эти теории могут быть адаптированы к конкретным экземплярам, ​​таким как матрицы, списки, деревья и т. д. Включение лемм, относящихся к конкретному экземпляру (например, nat, которые являются разрешимыми) в общую теорию разрешимых типов, возможно, но нарушает разделение между тем, что верно для всех разрешимых типов, и тем, что верно именно для нац. 12.05.2017
  • Новые материалы

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

    Обработка изображений с помощью Python - размытие и повышение резкости для начинающих
    Как применить ядра свертки к цветным изображениям? В этой статье мы обсудим, как применять ядра размытия и повышения резкости к изображениям. Эти базовые ядра составляют основу многих более..

    Ограничение скорости в .NET Core 7 Web API
    Что такое ограничение скорости? Ограничение скорости — это процесс, используемый для ограничения количества запросов, разрешенных для определенного ресурса в указанном временном окне. .NET..

    Стабильная Diffusion 1.0 выдаёт более красивые картинки, чем SD 2.1?! Почему?
    Удивительные открытия, которые я сделал недавно. Смотрите в видео: https://youtu.be/PakgD6FewoU Есть одно логичное объяснение — что у вас?

    Веб-скрапинг с помощью одной строки кода Pandas
    Честно говоря, вы пытались скопировать таблицу с веб-сайта, чтобы вставить ее в электронную таблицу Excel, и почти всегда эта, казалось бы, простая процедура приводила к беспорядку. Одна из..

    Ориентированная на проект дорожная карта разработки интерфейса с тщательно подобранным плейлистом на YouTube (2022 г.)
    Начните свой путь разработчика по-гиковски Оглавление 👉 Уровень 1 ‹/› HTML Темы, на которых следует сосредоточиться: 🌈 CSS Темы, на которых следует сосредоточиться: ⚙️ JavaScript..

    Реализация простой искусственной нейронной сети с нуля на Python
    Раскрытие математики и логики, стоящих за этим. Что такое нейронная сеть? С точки зрения непрофессионала, нейронная сеть - это просто математическая функция, в которую вы вводите вектор..