我想證明nat
的高斯定理。證明Coq的nat的高斯定理
在普通(非精確)語言,它說:如果a
劃分b*c
和無的a
的因素是在b
那麼它們必須全部在c
。
Require Import NPeano.
Theorem Gauss_nat: forall (a b c:nat), gcd a b = 1 -> (a | (b*c)) -> (a | c).
定理已經爲整數Z
定義,見here in the Coq manual。但我需要它的nat
。到目前爲止,我已經得到的建議是使用的Bezout引理其中指出
Lemma Bezout: forall (a b c:Z), Z.gcd a b = c -> exists u v, u*a+v*b=c.
但是,我不能直接使用它nat
小號自從係數u
和v
可能是負值,因此不成立爲nat
。
是否還有另一個證明在證明中不使用整數?
編輯:
正如指出了由Mark Dickinson公司,定理和引理評論已經在勒柯克的圖書館。他們在NPeano
,名爲Nat.gcd_bezout
和Nat.gauss
。
你能證明和使用的Bezout的基於NAT的版本:'FORALL(AB:NAT),存在紫外線,U * A = GCD ab + v * b'。 –
這將是完美的!你能否給出一個「回答」,指出一名基於自然力量的Bezout的Coq教授以及Gauss_nat如何跟隨它? – larsr
(或者至少'bezout_nat',我能夠通過使用它證明Gauss_nat ....) – larsr