Я застрял в проблеме в Coq, было бы здорово, если бы у кого-нибудь были какие-то советы о том, как разбить проблему на более мелкие шаги. Лемма такова:
Lemma gcd_prime : forall (a b : Z), a > 1 -> b > 1 ->
Z.gcd a b = 1 -> Zmod a b <> 0
То есть, если a
и b
взаимно просты и выше, чем 1
, a mod b
не 0
.
Вот где я застрял:
p : positive
p0 : positive
H : Z.pos p > 1
H0 : Z.pos p0 > 1
H1 : Z.gcd (Z.pos p) (Z.pos p0) = 1
============================
Z.pos p mod Z.pos p0 <> 0
После вступления и индукции удалил очевидные случаи.
Может, лучше перефразировать часть mod
на remainder
? Или мне заменить H1
на что-нибудь послабее, например p <> p0
?
Выполнение SearchAbout Zmod.
возвращает множество лемм, но я не уверен, как их адаптировать.
С Уважением
Олле