0
與半環的工作這是一個簡單的勒柯克語法新手的問題:)在勒柯克
我想對semi_rings定義簡單的多項式函數:
Require Import Vector.
Import VectorNotations.
Require Import Ring_theory.
Section Polynomial_def.
Variable Asring : Type.
Variable (asr_0 asr_1 : Asring) (asr_add asr_mul: Asring->Asring->Asring).
Variable SRth : semi_ring_theory asr_0 asr_1 asr_add asr_mul eq.
Fixpoint evalPolynomial {n} (a: t Asring n) (x:Asring) : Asring :=
match a with
nil => asr_0
| cons a0 p a' => asr_add a0 (asr_mul x (evalPolynomial a' x))
end.
End Polynomial_def.
當我使用它的實數,例如,我必須做這樣的事情:
Require Import Reals.Rdefinitions.
evalPolynomial R R0 Rplus Rmult a v
我懷疑應該有一個簡單的語法,在那裏我可以只通過單一的數據結構(如comm_ring_1
在伊莎貝爾),這將EN封裝所有類型的R,R0,Rplus,Rmult等字段。
我需要使用'semi_ring_theory'嗎? – krokodil 2014-10-11 01:36:01
下面是代碼,根據您的建議進行了更改:http://ideone.com/YbUW4G – krokodil 2014-10-11 01:56:57
我沒有想到Coq自己的'semi_ring_theory',因爲我不需要那麼多。我的猜測是,這可能是有用的,因爲那些可以與'ring'系列策略一起使用,因此將幫助您自動化證明。 – 2014-10-11 03:43:24