2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Как построить тип данных со указанными свойствами?
Сообщение02.03.2016, 18:32 


26/08/12
45
Необходимо построить тип данных на некотором функциональном языке.
Это тип данных должен содержать параметр - количество его элементов.
Эти элементы соответственно должны быть различными.
Они должны быть линейно упорядочены, должен быть наименьшей и наибольший элемент.
На таком типе данных будут строиться функции для перехода к следующему и предыдущему элементу, доступу к наименьшему и наибольшему элементу.

В общем так сказать список цифр или алфавит.

На Coq я построил такой тип данных:

Definition SS n := {m : nat | m < n}.

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

Вот например доказательство, что 0 входит в это множество:

OelSS10 =
exist (fun m : nat => m < 10) 0
(le_S 1 9
(le_S 1 8
(le_S 1 7
(le_S 1 6
(le_S 1 5
(le_S 1 4
(le_S 1 3
(le_S 1 2
(le_S 1 1 (le_n 1))))))))))
: SS 10
Можно конечно задать просто тип вручную Iductive SS := c0 | c1 | c2 | c3 | c4.

Но тут как минимум отсутствует упорядоченность, а вручную запаришься её описывать.

Прошу помочь, долго уже бьюсь над этой проблемой.

 Профиль  
                  
 
 Re: Как построить тип данных со указанными свойствами?
Сообщение02.03.2016, 22:19 
Аватара пользователя


22/12/10
264
На Idris:
https://github.com/idris-lang/Idris-dev ... ta/Fin.idr
Думаю, в Coq должен быть аналог в стандартной библиотеке.

 Профиль  
                  
 
 Re: Как построить тип данных со указанными свойствами?
Сообщение03.03.2016, 19:36 


26/08/12
45
Благодарю, то, что надо!

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group