Степень с целыми показателями в Изабель - PullRequest
0 голосов
/ 08 апреля 2019

Вот мое определение силы для целочисленных показателей после этого сообщения в списке рассылки :

definition 
 "ipow x n = (if n < 0 then (1 / x) ^ n else x ^ n)" 

notation ipow (infixr "^⇩i" 80)
  1. Есть ли лучший способ определить это?
  2. Существует ли в Изабель существующая теория, которая уже включает ее, чтобы я мог повторно использовать ее результаты?

Context

Я имею дело со сложными экспонентами, например, рассмотрим эту теорему:

enter image description here

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

1 Ответ

1 голос
/ 08 апреля 2019

Я не думаю, что что-то подобное существует в библиотеке. Тем не менее, у вас есть опечатка в вашем определении. Я верю, что вы хотите что-то вроде

definition 
 "ipow x n = (if n < 0 then (1 / x) ^ nat (-n) else x ^ nat n)"

Кроме того, все в порядке. Вы могли бы написать inverse x ^ nat (-n), но это не должно иметь большого значения на практике. Я бы предложил название int_power, поскольку соответствующая операция с натуральными показателями называется power.

Лично я бы не стал вводить новую константу, подобную этой, потому что для ее эффективного использования вам также необходим обширный сборник теорем об этом. Это означает немало (утомительной) работы. Вам действительно нужно поговорить о целых числах здесь? Я считаю, что на практике это часто можно обойти (в частности, обратите внимание, что рассматриваемые экспоненты в любом случае являются периодическими). ​​

может быть полезным, тем не менее, для введения такого оператора мощности; все, что я говорю, это то, что вы должны знать о компромиссе.

Примечание: часто пропускаемая функция в Изабель, которая полезна, когда речь идет о таких экспонентах, как cis (как в ‘cosine + i · sine‘). cis x эквивалентно ‘exp (ix)’, где x является действительным.

...