Description: The invariant of the step function E for Euclid's Algorithm is the gcd operator applied to the state. (Contributed by Paul Chapman, 31-Mar-2011) (Revised by Mario Carneiro, 29-May-2014)
Ref | Expression | ||
---|---|---|---|
Hypothesis | eucalgval.1 | |
|
Assertion | eucalginv | |
Step | Hyp | Ref | Expression |
---|---|---|---|
1 | eucalgval.1 | |
|
2 | 1 | eucalgval | |
3 | 2 | fveq2d | |
4 | 1st2nd2 | |
|
5 | 4 | adantr | |
6 | 5 | fveq2d | |
7 | df-ov | |
|
8 | 6 7 | eqtr4di | |
9 | 8 | oveq2d | |
10 | nnz | |
|
11 | xp1st | |
|
12 | 11 | adantr | |
13 | 12 | nn0zd | |
14 | zmodcl | |
|
15 | 13 14 | sylancom | |
16 | 15 | nn0zd | |
17 | gcdcom | |
|
18 | 10 16 17 | syl2an2 | |
19 | modgcd | |
|
20 | 13 19 | sylancom | |
21 | 9 18 20 | 3eqtrd | |
22 | nnne0 | |
|
23 | 22 | adantl | |
24 | 23 | neneqd | |
25 | 24 | iffalsed | |
26 | 25 | fveq2d | |
27 | df-ov | |
|
28 | 26 27 | eqtr4di | |
29 | 5 | fveq2d | |
30 | df-ov | |
|
31 | 29 30 | eqtr4di | |
32 | 21 28 31 | 3eqtr4d | |
33 | iftrue | |
|
34 | 33 | fveq2d | |
35 | 34 | adantl | |
36 | xp2nd | |
|
37 | elnn0 | |
|
38 | 36 37 | sylib | |
39 | 32 35 38 | mpjaodan | |
40 | 3 39 | eqtrd | |