두 다항식의 나눗셈의 나머지 계수의 int list
을 얻으려고합니다. 나는 int poly
의 두 다항식에서 Polynomial.thy
의 mod
을 사용하려고 시도해 왔습니다.Isabelle에서 int리스트로 다항식 mod의 계수 얻기
Type unification failed: No type arity int :: field
내 기능은 다음과 같습니다 : 그러나, 나는 오류를 얻고있다
int_list
단순히 각 요소 바닥재에 의해 INT의 목록에 실수의 목록을 변환
fun testFunc :: "int poly ⇒ int poly ⇒ int list"
where
"testFunc p q = int_list (coeffs (p mod q))"
:
fun int_list :: "real list ⇒ int list"
where
"int_list [] = []" |
"int_list lst = [floor (hd lst)] @ int_list (tl lst)"
을
내 함수를 다음과 같이 정의하면 작동합니다.
fun testFunc :: "'a::field poly ⇒ 'a poly ⇒ int list"
where
"testFunc p q = int_list (coeffs (p mod q))"
그러나 함수에 전달되는 두 개의 인수는 구체적으로 유형이 int poly
입니다. 두 번째 정의를 사용하여 두 개의 다항식 'a::field poly
과 'a poly
을 전달하면 'a list
이 반환되고 int_list 함수를 실행할 수 없습니다.
int_list
의 서명을 'a list => int list
으로 변경하면 각 요소에 int_of
을 사용해야하며 궁극적으로 내 목록의 정수는 평가하지 않습니다. (즉, 나는 [int_of 2, int_of 3]
보다는 [2, 3]
같은 것을 얻을, 나는 그 목록과 뭔가를하려고 할 때, int_of x
표현보다는 평가를 반환)의 계수의 int list
를 얻을 수
이 가능 두 다항식의 모듈로?
, 감사합니다! –