equal
deleted
inserted
replaced
339 text {* \medskip @{term xzgcd} linear *} |
339 text {* \medskip @{term xzgcd} linear *} |
340 |
340 |
341 lemma xzgcda_linear_aux1: |
341 lemma xzgcda_linear_aux1: |
342 "(a - r * b) * m + (c - r * d) * (n::int) = |
342 "(a - r * b) * m + (c - r * d) * (n::int) = |
343 (a * m + c * n) - r * (b * m + d * n)" |
343 (a * m + c * n) - r * (b * m + d * n)" |
344 by (simp add: left_diff_distrib right_distrib mult_assoc) |
344 by (simp add: left_diff_distrib distrib_left mult_assoc) |
345 |
345 |
346 lemma xzgcda_linear_aux2: |
346 lemma xzgcda_linear_aux2: |
347 "r' = s' * m + t' * n ==> r = s * m + t * n |
347 "r' = s' * m + t' * n ==> r = s * m + t * n |
348 ==> (r' mod r) = (s' - (r' div r) * s) * m + (t' - (r' div r) * t) * (n::int)" |
348 ==> (r' mod r) = (s' - (r' div r) * s) * m + (t' - (r' div r) * t) * (n::int)" |
349 apply (rule trans) |
349 apply (rule trans) |