Skip to content

Conversation

@FrogOfJuly
Copy link
Collaborator

Update on type systems. Rules for simply-typed lambda calculus and lambda cap type system. Little annotation overview.


### Просто типизированное не катит
Основаная идея в том, чтобы приписать контакту тип. Самая простая система типов - это
просто типизированное люямбда исчисление. Далее будет показано почему нам она не подходит и
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Очень категорично и безысходно

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я бы пока не был так уверен

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

### Subtyping
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Тут я подразумевал то, что предлагал Никита. Это какое-то техническое решение больше.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

На сколько я понимаю это укладывается либо в наследование, либо в типы-пересечнеия

G |- \x -> e : a -> b
```

#### Достоинства:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

По-моему нужно писать в формате: что выразимо из контрактов + методы перебора населяющих термов.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

не, это котлеты и мухи мешать. Алгоритм перебора не совсем по этим правилам работает. Те например он не учитывает (I->) и явно наследование или пересечения будут. А тут некоторая теоретическая база

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не совсем понял. У нас два параметра: гибкость перестановки, сложность переборного алгоритма. Вот по этим параметрам и придется сравнивать, а не по рандомным плюсам и минусам.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А, я неправильно понял к чему ты это говорил. Да, тогда ты прав

- Существует алгоритм населения типов
- ?

#### Недостатки:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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


### Лямбда с аркой $\lambda \cap$

Это расширение простого лямбда исчисления, которое позоваляет избавиться от некоторых его недостатков
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Фраза-водичка

2. Проверка аннтоаций на выполнение с помощью SAT-solver'а.

### Просто типизированное $\lambda$-исчисление
Но тут есть некоторая проблема:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Фраза-водичка


### Менее строгая система, а потом проверка контрактов ручками или через Z3

TODO
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ну прям ТУДУ тут никуда и близко пока не девается

### Менее строгая система, а потом проверка контрактов ручками или через Z3

TODO
Добавим к выбранной системе типов возможность аннтирования типов предикатами. А потом будем
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ну к системе типов мы ничего не добавляем, строго говоря

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Да, это правда пожалуй

TODO
Добавим к выбранной системе типов возможность аннтирования типов предикатами. А потом будем
их проверять. Это разделит задачу генерации графов исполнения на две подзадачи:
1. Население желаемого типа. Тут выбранная система типов будет ограничивать свободу перебора
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Идея - позволить системе типов задавать больше графов, но среди которых могут быть некорректные, их надо отсеивать, как-то проверяя контракты.

их проверять. Это разделит задачу генерации графов исполнения на две подзадачи:
1. Население желаемого типа. Тут выбранная система типов будет ограничивать свободу перебора
и защищать от комбинаторного вызрыва.
2. Проверка аннтоаций на выполнение с помощью SAT-solver'а.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Сомневаюсь, что сатсолвер нам нужен, проще написать ручками проверку контрактов в каком-то виде

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants