theorem gcdcom (a b: nat): $ gcd a b = gcd b a $;
Step | Hyp | Ref | Expression |
1 |
|
id |
{d1 | A. x (x || d1 <-> x || a /\ x || b)} == {d2 | A. y (y || d2 <-> y || b /\ y || a)} ->
{d1 | A. x (x || d1 <-> x || a /\ x || b)} == {d2 | A. y (y || d2 <-> y || b /\ y || a)} |
2 |
1 |
theeqd |
{d1 | A. x (x || d1 <-> x || a /\ x || b)} == {d2 | A. y (y || d2 <-> y || b /\ y || a)} ->
the {d1 | A. x (x || d1 <-> x || a /\ x || b)} = the {d2 | A. y (y || d2 <-> y || b /\ y || a)} |
3 |
2 |
conv gcd |
{d1 | A. x (x || d1 <-> x || a /\ x || b)} == {d2 | A. y (y || d2 <-> y || b /\ y || a)} -> gcd a b = gcd b a |
4 |
|
anr |
d1 = d2 /\ x = y -> x = y |
5 |
|
anl |
d1 = d2 /\ x = y -> d1 = d2 |
6 |
4, 5 |
dvdeqd |
d1 = d2 /\ x = y -> (x || d1 <-> y || d2) |
7 |
|
ancomb |
x || a /\ x || b <-> x || b /\ x || a |
8 |
|
dvdeq1 |
x = y -> (x || b <-> y || b) |
9 |
|
dvdeq1 |
x = y -> (x || a <-> y || a) |
10 |
8, 9 |
aneqd |
x = y -> (x || b /\ x || a <-> y || b /\ y || a) |
11 |
10 |
anwr |
d1 = d2 /\ x = y -> (x || b /\ x || a <-> y || b /\ y || a) |
12 |
7, 11 |
syl5bb |
d1 = d2 /\ x = y -> (x || a /\ x || b <-> y || b /\ y || a) |
13 |
6, 12 |
bieqd |
d1 = d2 /\ x = y -> (x || d1 <-> x || a /\ x || b <-> (y || d2 <-> y || b /\ y || a)) |
14 |
13 |
cbvald |
d1 = d2 -> (A. x (x || d1 <-> x || a /\ x || b) <-> A. y (y || d2 <-> y || b /\ y || a)) |
15 |
14 |
cbvab |
{d1 | A. x (x || d1 <-> x || a /\ x || b)} == {d2 | A. y (y || d2 <-> y || b /\ y || a)} |
16 |
3, 15 |
ax_mp |
gcd a b = gcd b a |
Axiom use
axs_prop_calc
(ax_1,
ax_2,
ax_3,
ax_mp,
itru),
axs_pred_calc
(ax_gen,
ax_4,
ax_5,
ax_6,
ax_7,
ax_10,
ax_11,
ax_12),
axs_set
(elab,
ax_8),
axs_the
(theid,
the0),
axs_peano
(muleq)