Публичный URL: https://netkeep80.github.io/aprover/
Ассоциативный прувер для формальной нотации Метатеории Связей (МТС)
aprover — это веб-приложение на Vue.js + TypeScript для парсинга, визуализации и верификации выражений в формальной нотации МТС (Метатеории Связей). Приложение публикуется на GitHub Pages.
Метатеория Связей (МТС) — это онтологически замкнутая система, в которой всё есть связь. В отличие от классических логических систем (ZFC, теория типов, категории), МТС:
- Не допускает онтологического дуализма — нет разделения на "носитель" и "отношение"
- Знак не ссылается на внешний объект, а является запросом по форме в "океане связей"
- Доказательство = резолюция запроса по форме в асети связей
Теоретические основы Метатеории Связей изложены в следующих разделах:
- Введение в МТС — язык паттернов форм связей
- Онтология различения — минимальный онтологический акт
- Знак как запрос по форме — семиотика МТС
- Акорень ∞ как фундамент — условие возможности различения
- Аксиома определения —
:как онтологический акт - Дуальность символа = — тождественность и различение
- Дисциплина рекурсии — ограждённая рекурсия в МТС
- Три нотации МТС — формальная, строковая, абитовая
- Абиты как запросы — четверичная система
- 4-значная логика — структура запросов
- Алгоритм резолюции — резолюция запросов по форме
- Натуральные числа — числа как длины последовательностей
- Сравнение с другими основаниями — ZFC, теория типов, категории
- Система аксиом МТС — финальная форма
- Архитектура прувера — вычислитель различений форм
- Формальная нотация — детальное описание синтаксиса
- Разрыв между знаком и связью — философский анализ
- Спецификация v0.1 — EBNF и ядро прувера
| Нотация | Назначение | Алфавит | Формат файлов |
|---|---|---|---|
| Формальная | Запросы по форме связей | ∞, ->, !->, ♂, ♀, !, :, =, !=, {}, () |
.mtl |
| Строковые ачисла | Человекочитаемая сериализация | Любой UTF-8 символ | .astr |
| Четверичная | Базовая сериализация для апамяти | 0, 1, [, ] |
.anum |
| Аксиома | Формула | Описание |
|---|---|---|
| А0. Определение | (s : F) -> (s = F) |
Знак как запрос по форме |
| А1. Тождественность | x = x, (x = y) -> (y = x), {(x = y), (y = z)} -> (x = z) |
Рефлексивность, симметрия, транзитивность |
| А2. Конгруэнция | {(a = c), (b = d)} -> ((a -> b) = (c -> d)) |
Структурная прозрачность |
| А3. Связь | be : (b -> e) |
Базовый конструктор |
| А4. Смысл (акорень) | ∞ : (∞ -> ∞) |
Полное самозамыкание |
| А5. Самозамыкание начала | ♂x : (♂x -> x) |
Начало замкнуто на связь |
| А6. Самозамыкание конца | x♀ : (x -> x♀) |
Конец замкнут на связь |
| А7. Инверсия | !(a -> b) = (b -> a), !(♂x) = x♀, !(x♀) = ♂x, !∞ = ∞, !!x = x |
Дуальность |
| А8. Единица смысла | 1 : (♂∞ -> ∞♀) |
Направленная связь |
| А9. Нуль смысла | 0 : !1 |
Инверсия единицы |
| А10. Абиты | '[' : ♂∞, ']' : ∞♀, '1' : 1, '0' : 0 |
Четверичная система |
| А11. Левоассоциативность | (a -> b -> c) = ((a -> b) -> c) |
Порядок группировки |
- Фаза 1 — Основная реализация (завершена)
- Фаза 2 — Улучшение UI и расширение функциональности (завершена)
- Фаза 3 — Файловые операции и поддержка всех нотаций МТС (в процессе)
Текущий статус: Фаза 3, Этапы 3.1-3.2 завершены. Предстоящие этапы:
- ✅ Этап 3.1: Файловые операции (загрузка/сохранение .mtl файлов) — завершён
- ✅ Этап 3.2: Поддержка строковых ачисел (.astr) — завершён
- Этап 3.3: Поддержка четверичной нотации (.anum)
- Этап 3.4: Расширение алгоритма резолюции
- Этап 3.5: Улучшение производительности и UX
- Этап 3.6: Тестирование и документация
Приложение поддерживает работу с файлами:
- Ctrl+N — Новый файл
- Ctrl+O — Открыть файл
- Ctrl+S — Сохранить код
- Новый — создать новый файл с шаблоном
- Открыть — открыть файл
.mtlили.astrс диска - Недавние — список последних 10 файлов
- Сохранить — сохранить код в файл
- Результаты — экспорт результатов верификации в текстовый файл
- JSON — экспорт результатов в формате JSON
Файлы .mtl и .astr можно перетащить прямо в редактор для загрузки.
Содержимое редактора автоматически сохраняется в localStorage каждые 30 секунд.
Поддержка строковых ачисел позволяет работать с данными в человекочитаемой форме:
Строковое ачисло — это последовательность UTF-8 символов, интерпретируемая как цепочка связей:
"связь" ≡ (((((∞ -> 'с') -> 'в') -> 'я') -> 'з') -> 'ь')
Каждый символ становится CharLit узлом, связанным с предыдущей частью цепочки левоассоциативной связью ->.
При открытии файла .astr:
- Каждая строка конвертируется в формальную нотацию
- Отображается панель визуализации процесса преобразования
- Результат автоматически верифицируется прувером
// Комментарии поддерживаются
связь
link
Hello, мир!
🌍🔗✨
При загрузке .astr файла можно включить панель визуализации (кнопка "Show Conv"), которая показывает пошаговое преобразование строки в цепочку формальных запросов.
aprover/
├── .github/
│ └── workflows/
│ ├── ci.yml # Линтинг, тесты
│ └── deploy.yml # GitHub Pages
├── docs/
│ ├── mts/ # Документация МТС
│ │ ├── 00-introduction.md
│ │ ├── 01-ontology-of-distinction.md
│ │ ├── ...
│ │ └── specification-v0.1.md
│ └── PHASE1-PLAN.md # План первой фазы
├── src/
│ ├── core/
│ │ ├── lexer.ts # Лексический анализатор
│ │ ├── parser.ts # Синтаксический анализатор
│ │ ├── ast.ts # Типы AST
│ │ ├── normalizer.ts # Нормализация и десахаризация
│ │ ├── prover.ts # Ядро прувера (унификация, modus ponens)
│ │ ├── fileIO.ts # Файловые операции (загрузка, сохранение, история)
│ │ └── stringAnum.ts # Парсер строковых ачисел (.astr)
│ ├── components/
│ │ ├── Editor.vue # Редактор кода с подсветкой синтаксиса
│ │ ├── ASTViewer.vue # Визуализация AST в виде дерева
│ │ ├── ProverPanel.vue # Панель результатов верификации
│ │ └── ErrorPanel.vue # Панель ошибок парсинга
│ ├── App.vue # Главный компонент приложения
│ └── main.ts
├── tests/
│ ├── unit/
│ │ ├── lexer.test.ts
│ │ ├── parser.test.ts
│ │ ├── normalizer.test.ts
│ │ ├── prover.test.ts
│ │ ├── fileIO.test.ts
│ │ └── stringAnum.test.ts
│ ├── integration/
│ │ └── mtl_formulas.test.ts
│ └── e2e/
│ └── editor.spec.ts
├── examples/
│ ├── basic.mtl # Примеры файлов МТС (формальная нотация)
│ └── basic.astr # Примеры строковых ачисел
├── index.html
├── package.json
├── tsconfig.json
├── vite.config.ts
└── README.md
Согласно Best Practices:
- Размер файлов: максимум 1000-1500 строк
- Форматирование: ESLint + Prettier
- Типизация: строгий TypeScript (noImplicitAny, strictNullChecks)
- Тесты: Vitest для unit/интеграционных, Playwright для E2E
- CI/CD: GitHub Actions с автодеплоем
# Установка зависимостей
npm install
# Запуск dev-сервера
npm run dev
# Запуск unit и интеграционных тестов
npm run test
# Запуск E2E тестов (требуется предварительная сборка)
npm run build
npm run test:e2e
# Сборка для production
npm run buildUnlicense