Обратная функция на Агде

Dec 25, 2012 02:36

Как можно конструктивно доказать, что число 4 является полным квадратом некоторого натурального числа? Предъявив такое число n, для которого n * n = 4. ( И мы знаем это число... )

fprog, fp, agda

Leave a comment

Comments 53

thedeemon December 25 2012, 10:03:00 UTC
Занятно, но совершенно бесполезно же - чтобы вычислить обратное значение, надо его же предоставить аргументом.

Вопрос: а можно ли сделать таблицу - массив/список, где n-ный элемент будет содержать Image f ∋ n? В ATS я подобное делал, но через хак по сути.

Reply

deni_ok December 25 2012, 10:12:32 UTC
А что этот массив будет содержать для ненаселенных Image f ∋ n? Например, для Image square ∋ 5?

Reply

thedeemon December 25 2012, 10:21:43 UTC
Тут я плохо сформулировал, имелось в виду скорее Image f ∋ (f n).

Reply

deni_ok December 25 2012, 15:44:28 UTC
Ну проще всего воспользоваться квантором существования (то есть зависимой парой, если размышлять на уровне термов):

list-by-hand : List (∃ λ n → Image square ∋ n)
list-by-hand = (4 , im 2) ∷ (1 , im 1) ∷ (0 , im 0) ∷ []
Теперь обобщаем до заказываемой пользователем длины

list-of-squares : ℕ → List (∃ λ n → Image square ∋ n)
list-of-squares = Data.List.map ( λ x → square x , im x) ∘ downFrom
Ну и, абстрагируясь от square, получим

list-of-images : {Y : Set}(f : ℕ → Y) → ℕ → List (∃ λ n → Image f ∋ n)
list-of-images f = Data.List.map ( λ x → f x , im x) ∘ downFrom

Reply


thedeemon December 25 2012, 10:03:52 UTC
И еще вопрос: как в Агде с линейными типами?

Reply

deni_ok December 25 2012, 10:14:07 UTC
Ничего не слышал. Интересно подумать над тем, как можно было бы реализовать.

Reply

nivanych December 25 2012, 11:22:23 UTC
Вроде, были где-то, надо поискать.

Reply

dima_starosud December 26 2012, 19:49:11 UTC
Я когда-то искал, даже в Агда-мейл-лист писал - глухо:(
Но вы поищите, может я недосмотрел.

Reply


nivanych December 28 2012, 10:20:01 UTC
Агдочковый курс -
http://www.cs.nott.ac.uk/~txa/g53cfr/
Если делать свой курс, то на этот стоит обратить внимание.

Reply

deni_ok December 28 2012, 10:58:51 UTC
Да, спасибо, хороший курс и организован разумно. У нас магистры перегружены, я сомневаюсь, что мне дадут слот под это дело. Может для аспирантов спецкурс удастся сделать, но мне ещё надо некоторое время самому пооттачивать кунг-фу.

Reply

nivanych December 30 2012, 09:12:37 UTC
А у вас есть более несколько народу, кому это интересно?

Reply

deni_ok December 30 2012, 09:19:09 UTC
Несколько, думаю, наберётся, а больше зачем?

Reply


Leave a comment

Up